CCNでは、ユーザの端末装置がコンテンツデータを取得するために、コンテンツデータが存在する場所でなく、コンテンツデータ自体の名前を指定したリクエストパケットをネットワークに送出する。そして、コンテンツを提供するコンテンツ提供装置は、リクエストパケットを受け取ると、その名前に対応するコンテンツデータのデータパケットを送出する。
リクエストパケットを中継する中継装置は、FIB(Forwarding Information Base)と呼ばれる経路情報を持ち、この経路情報に従って、端末装置もしくは他の中継装置から送信されるリクエストパケットをコンテンツ提供装置もしくは他の中継装置に転送する。また、中継装置はPIT(Pending Interest Table)と呼ばれるリクエスト記憶部と、Content Storeと呼ばれるデータ記憶部を持ち、コンテンツ提供装置もしくは他の中継装置から送信されるデータパケットを、リクエストパケットを送信した端末装置もしくは他の中継装置に転送する。
ここで、中継装置は、リクエストパケットを受信したとき、データ記憶部(Content Store)に上記リクエストパケットに記載された名前を含むデータパケットが存在した場合、上記リクエストは経路情報に従い転送せず、上記リクエストパケットを受信したインタフェースから上記データパケットを送信する。一方、中継装置は、データ記憶部(Content Store)に、受信したリクエストパケットに記載された名前を含むデータパケットが存在しない場合、かつリクエスト記憶部(PIT)に上記リクエストパケットに記載された名前に対応するエントリーが存在しない場合、リクエスト記憶部(PIT)に上記リクエストパケットに記載された名前と、上記リクエストパケットを受信したインタフェースの情報とを記憶する。そして、中継装置は、受信したリクエストパケットを、経路情報に従い、コンテンツ提供装置もしくは他の中継装置に転送する。ただし、中継装置は上記リクエストパケットに記載された名前と同一の名前がリクエスト記憶部(PIT)に存在した場合、上記リクエストパケットは経路情報に従い転送せず、既に存在する同一の名前と同じエントリーに上記リクエストパケットを受信したインタフェースの情報を記憶する。
また、中継装置は、データパケットを受信すると、データ記憶部(Content Store)にデータパケットを記憶する。ただし、データ記憶部(Content Store)に新たなデータパケットを記憶する領域がない場合、データ記憶部(Content Store)に記憶した時刻から時間が経過したデータパケットはデータ記憶領域から消去される。
そして、中継装置は、リクエスト記憶部(PIT)の情報に従い、上記データパケットの持つ名前と同一の名前が記載された複数のリクエストパケットを受信した1つ以上のインタフェースに応じてデータパケットを複製して、複製したデータパケットをその1つ以上のインタフェースを介して転送する。その後、中継装置は、上記データパケットが持つ名前とその名前に一致するリクエストパケットを受信したインタフェースの情報をリクエスト記憶部(PIT)から消去する。
CCNでは、このように、中継装置にリクエスト記憶部(PIT)とデータ記憶部(Content Store)とを最大限に活用させることによりデータ配信を行うことができる。
しかしながら、特許文献1および非特許文献1では、コンテンツデータを取得しようとするリクエストパケットおよびコンテンツデータを伝送するためのデータパケットに記載されるコンテンツデータの名前が平文(以下、表現上平文のコンテンツデータの名前と指称する)で記載されていることについて開示されるに留まる。このため、リクエストパケットやデータパケットに記載された平文のコンテンツデータの名前とパケットのMACアドレス等から、どの端末装置がどのコンテンツデータに対してリクエストを送信したか、もしくはどの端末装置がどのコンテンツデータを受信したかについて中継装置およびコンテンツ提供装置が把握できてしまう。つまり、従来の技術では、端末装置に対する通信の秘匿性は考慮されていないという問題がある。
このような問題を解決するために、本発明の一態様に係る端末装置は、コンテンツ指向型のネットワークに接続される端末装置であって、コンテンツデータの名前を所定の暗号鍵で暗号化した第1文字列に変換し、ゲートウェイ装置の名前を示す第2文字列および前記第1文字列を含む文字列を前記コンテンツデータの名前として記載したリクエストパケットを生成するリクエスト変換部と、前記リクエスト変換部が生成した前記リクエストパケットを前記ネットワークに送信するリクエスト送信部と、を備える。
本態様によれば、通信の秘匿性を考慮したリクエストパケットを用いることのできる端末装置、ゲートウェイ装置、中継装置およびこれらの送信方法を実現することができる。
具体的には、端末装置とゲートウェイ装置との間では、端末装置が取得したい平文のコンテンツデータの名前は暗号化された状態のリクエストパケットがやり取りされる。このため、どの端末装置がどのコンテンツデータに対してリクエストを送信したか、ゲートウェイ装置以外は判別できなくなり、端末装置に対する通信の秘匿性を確保することができる。
また、さらに、前記第2文字列および前記第1文字列を含む文字列が名前として記載されたデータパケットを、前記コンテンツデータのデータパケットとして受信するデータ受信部を備えるとしてもよい。
本態様によれば、端末装置とゲートウェイ装置との間では、端末装置が取得したい平文のコンテンツデータの名前は暗号化された状態のデータパケットがやり取りされる。このため、どの端末装置がどのコンテンツデータを取得したか、ゲートウェイ装置以外は判別できなくなり、端末装置に対する通信の秘匿性を確保することができる。
また、前記データ受信部が受信した前記データパケットは、暗号化されており、前記端末装置は、さらに、前記データ受信部が受信した前記データパケットを復号するデータ変換部を備えるとしてもよい。
また、前記所定の暗号鍵は、公開鍵暗号方式の公開鍵であって、前記ゲートウェイ装置が発行する秘密鍵および公開鍵のうちの公開鍵であるとしてもよい。
本態様によれば、端末装置とゲートウェイ装置との通信において、それぞれ公開鍵暗号方式の公開鍵と秘密鍵とを用いることで、同じ公開鍵を使用する複数の端末装置において、同一の平文のコンテンツデータの名前に対する暗号化結果は同じになる。このため、ゲートウェイ装置を示す名前が同じであれば、同一コンテンツデータに対して、複数の端末装置とゲートウェイ装置で使用される名前は同一になる。それにより、CCNの特徴である中継装置のリクエスト記憶部とデータ記憶部とによる効率よいデータ配信を維持しつつも、端末装置に対する通信の秘匿性を確保することができる。
また、前記所定の暗号鍵は、前記ゲートウェイ装置により定期的に更新されるとしてもよい。
また、前記リクエスト変換部は、前記第2文字列および前記第1文字列を含む文字列をさらに、前記所定の暗号鍵と異なる暗号鍵で暗号化した第3文字列に変換し、前記ゲートウェイ装置と異なる他のゲートウェイ装置の名前を示す第4文字列および前記第3文字列を含む文字列を前記コンテンツデータの名前として記載したリクエストパケットを生成するとしてもよい。
また、上記問題を解決するために、本発明の一態様に係るゲートウェイ装置は、コンテンツ指向型のネットワークに接続されるゲートウェイ装置であって、コンテンツデータの名前として、前記ゲートウェイ装置の名前を示す第2文字列と暗号化された第1文字列とを含む文字列を含むリクエストパケットを受信するリクエスト受信部と、前記リクエスト受信部が受信したリクエストパケットから前記暗号化された第1文字列を抽出し、抽出した前記暗号化された第1文字列を所定の復号鍵で復号化し、復号した前記第1文字列を、前記コンテンツデータの名前として含むリクエストパケットを生成することで、前記リクエスト受信部が受信したリクエストパケットを変換するリクエスト変換部と、前記リクエスト変換部により変換されたリクエストパケットを前記ネットワークに送信するリクエスト送信部とを備える。
また、さらに、前記リクエスト送信部が送信したリクエストパケットに対するコンテンツデータを含むデータパケットを受信するデータ受信部と、前記データ受信部が受信した前記データパケットにおいて、前記第2文字列および第1文字列を含む文字列を前記コンテンツデータの名前として含めることで、前記データ受信部が受信した前記データパケットを変換するデータ変換部と、前記データ変換部により変換された前記データパケットを前記リクエスト受信部が受信したリクエストパケットを送信した端末装置に向けて送信するデータ送信部と、を備えるとしてもよい。
また、さらに、前記リクエスト送信部が送信した前記リクエストパケットの送信時刻を保持するリクエスト状態保持部を備え、前記リクエスト送信部は、前記データ受信部が、前記送信時刻から所定の時間、前記リクエスト送信部が送信した前記リクエストパケットに対するコンテンツデータを含むデータパケットを受信しなかった場合、当該リクエストパケットを再送するとしてもよい。
また、さらに、データパケットを記憶するデータ保持部を備え、前記データ保持部が、前記リクエスト変換部により復号された前記第1文字列を、前記コンテンツデータの名前として含むデータパケットを記憶している場合、前記リクエスト送信部は、前記リクエスト変換部により変換されたリクエストパケットを前記ネットワークに送信せず、前記データ送信部は、前記データ保持部により記憶されている前記データパケットを前記第2文字列および前記第1文字列を含む文字列が記載されたデータパケットとして前記端末装置に向けて送信するとしてもよい。
また、さらに、前記所定の復号鍵と前記所定の復号鍵に対応する暗号鍵とを管理する鍵管理部を備え、前記鍵管理部は、前記暗号鍵を前記ネットワークに接続される端末装置に発行し、前記暗号鍵は、公開鍵暗号方式の公開鍵であって、前記鍵管理部が発行する秘密鍵および公開鍵のうちの公開鍵であり、前記所定の復号鍵は、公開鍵暗号方式の秘密鍵であって、前記鍵管理部が発行する秘密鍵および公開鍵のうちの秘密鍵であるとしてもよい。
また、前記鍵管理部は、前記暗号鍵と前記所定の復号鍵とを、定期的に更新するとしてもよい。
また、本発明の一態様に係る中継装置は、コンテンツ指向型のネットワークに接続され、リクエストパケットおよびデータパケットを中継する中継装置であって、コンテンツデータの名前として、前記中継装置の名前を示す第2文字列と第1文字列とを含む文字列を含むリクエストパケットを受信するリクエスト受信部と、前記リクエスト受信部が受信したリクエストパケットから前記第1文字列を抽出し、抽出した前記第1文字列を所定の復号鍵で復号化し、復号した前記第1文字列を、前記コンテンツデータの名前として含むリクエストパケットを生成することで、前記リクエスト受信部が受信したリクエストパケットを変換するリクエスト変換部と、前記リクエスト変換部により変換されたリクエストパケットを前記ネットワークに送信するリクエスト送信部とを備える。
また、さらに、前記リクエスト送信部が送信したリクエストパケットに対するコンテンツデータを含むデータパケットを受信するデータ受信部と、前記データ受信部が受信した前記データパケットにおいて、前記第2文字列および第1文字列を含む文字列を前記コンテンツデータの名前として含めることで、前記データ受信部が受信した前記データパケットを変換するデータ変換部と、前記データ変換部により変換された前記データパケットを前記リクエスト受信部が受信したリクエストパケットを送信した端末装置に向けて送信するデータ送信部と、を備えるとしてもよい。
また、本発明の一態様に係る端末装置の通信方法は、コンテンツ指向型のネットワークに接続されており、コンテンツデータの名前を記載したリクエストパケットを送信し、コンテンツデータを含むデータパケットを受信する端末装置の通信方法であって、前記コンテンツデータの名前を所定の暗号鍵で暗号化した第1文字列に変換し、ゲートウェイ装置の名前を示す第2文字列と前記第1文字列とを含む文字列を前記コンテンツデータの名前として記述したリクエストパケットを生成するリクエスト変換ステップと、前記リクエスト変換ステップにおいて生成された前記リクエストパケットを前記ネットワークに送信するリクエスト送信ステップと、を含む。
また、本発明の一態様に係るゲートウェイ装置の通信方法は、コンテンツ指向型のネットワークに接続されるゲートウェイ装置の通信方法であって、コンテンツデータの名前として、前記ゲートウェイ装置の名前を示す第2文字列と第1文字列とを含む文字列を含むリクエストパケットを受信するリクエスト受信ステップと、前記リクエスト受信ステップにおいて受信されたリクエストパケットから前記第1文字列を抽出し、抽出した前記第1文字列を所定の復号鍵で復号化し、復号した前記第1文字列を、前記コンテンツデータの名前として含むリクエストパケットを生成することで、前記リクエスト受信部が受信したリクエストパケットを変換するリクエスト変換ステップと、前記リクエスト変換ステップにおいて変換されたリクエストパケットを前記ネットワークに送信するリクエスト送信ステップとを含む。
また、本発明の一態様に係る中継装置の通信方法は、コンテンツ指向型のネットワークに接続され、リクエストパケットおよびデータパケットを中継する中継装置の通信方法であって、コンテンツデータの名前として、前記ゲートウェイ装置の名前を示す第2文字列と第1文字列とを含む文字列を含むリクエストパケットを受信するリクエスト受信ステップと、前記リクエスト受信ステップにおいて受信されたリクエストパケットから前記第1文字列を抽出し、抽出した前記第1文字列を所定の復号鍵で復号化し、復号した前記第1文字列を、前記コンテンツデータの名前として含むリクエストパケットを生成することで、前記リクエスト受信部が受信したリクエストパケットを変換するリクエスト変換ステップと、前記リクエスト変換ステップにおいて変換されたリクエストパケットを前記ネットワークに送信するリクエスト送信ステップとを含む。
以下、本発明の実施の形態に係る端末装置、ゲートウェイ装置および中継装置等について、図面を参照しながら具体的に説明する。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
(実施の形態1)
[コンテンツ配信システムの構成]
図1は、実施の形態1におけるコンテンツ配信システムの構成の一例を示す図である。
図1に示すコンテンツ配信システムは、複数の端末装置11と、複数の中継装置12と、コンテンツ提供装置13と、ゲートウェイ装置14とを備え、これらはCCN網10を介して接続されている。ここで、端末装置11aおよび端末装置11bは、端末装置11の一例であり、中継装置12a、中継装置12b、中継装置12cおよび中継装置12dは、中継装置12の一例である。
CCN網10は、コンテンツ指向型のネットワークの一例である。
中継装置12は、CCN網10に接続され、リクエストパケットおよびデータパケットを中継する。
端末装置11は、CCN網10に接続されており、CCN網10を介して、コンテンツデータを取得しようとするリクエストパケットを送信し、コンテンツデータを含むデータパケットを受信する。本実施の形態では、図1に示すように、端末装置11aおよび端末装置11bは、中継装置12aおよび中継装置12bによって、CCN網10に接続され、リクエストパケットとデータパケットとを交換することができる。
コンテンツ提供装置13は、CCN網10に接続され、コンテンツを提供する。より具体的には、コンテンツ提供装置13は、リクエストパケットを受け取ると、リクエストパケットに含まれるコンテンツの名前に対応するコンテンツデータのデータパケットを送出する。
ゲートウェイ装置14は、CCN網10に接続され、端末装置11が送信するリクエストパケット、コンテンツ提供装置13が送信するデータパケットおよび中継装置12が送信するデータパケットを中継する。本実施の形態では、図1に示すように、ゲートウェイ装置14は、中継装置12cによって、CCN網10に接続され、リクエストパケットとデータパケットとを交換することができる。なお、本実施の形態のように端末装置の代替として端末装置からのリクエストパケット等を中継するゲートウェイ装置はプロキシ(Proxy)と呼ばれることもある。
[端末装置の構成]
図2は、実施の形態1における端末装置の詳細構成の一例を示す図である。図3は、実施の形態1における端末装置が保持するリクエスト状態の一例を示す図である。図4A〜図4Dは、実施の形態1における端末装置が用いる平文のコンテンツデータの名前を含む名前の一例を示す図である。
図2に示す端末装置11は、リクエスト状態保持部110と、暗号鍵/復号鍵管理部111と、1つ以上のインタフェース112(図ではインタフェース112aおよび112b)と、リクエスト送信部113と、リクエスト変換部114と、リクエスト入力部115と、データ受信部116と、データ変換部117と、データ出力部118とを備える。端末装置11は、端末装置11上のアプリケーション119から指示されたコンテンツデータを取得するために、コンテンツデータの名前(暗号化されたコンテンツデータの名前)を記載したリクエストパケットを送信し、コンテンツデータを含むデータパケットを受信する。
リクエスト状態保持部110は、リクエスト状態を保持する。具体的には、リクエスト状態保持部110は、図3に示すような複数の項目を含むエントリーを有する。例えば、リクエスト状態保持部110は、リクエスト変換部114により生成(変換)されたリクエストパケットに含む暗号化されたコンテンツデータの名前(Encrypt content name)を含む文字列を、Requested Content Nameとしてエントリーの項目1102に保持する。また、例えば、リクエスト状態保持部110は、リクエスト変換部114により生成(変換)される前の元の平文のコンテンツデータの名前(Content name)を、Original Content Nameとして項目1101に保持する。また、例えば、リクエスト状態保持部110は、リクエスト送信部113がリクエストパケットを送信した送信時刻を、Time Stampとしてエントリーの項目1103に保持する。
暗号鍵/復号鍵管理部111は、暗号鍵および復号鍵を管理する。暗号鍵は、所定のゲートウェイ装置に関連付けられている。本実施の形態では、暗号鍵/復号鍵管理部111は、ゲートウェイ装置14に関連付けられた暗号鍵を管理する。例えば、暗号鍵は、公開鍵暗号方式の公開鍵であって、ゲートウェイ装置14が発行する秘密鍵および公開鍵のうちの公開鍵である。なお、所定の暗号鍵は、ゲートウェイ装置14により定期的に更新される。
リクエスト入力部115は、ユーザのリクエスト(所望)するコンテンツの名前が平文で入力される。リクエスト入力部115は、入力された平文のコンテンツデータの名前をリクエスト変換部114に通知する。本実施の形態では、アプリケーション119がコンテンツデータを取得するために、平文のコンテンツデータの名前をリクエスト入力部115に入力する。例えば、アプリケーション119は、コンテンツデータを取得するため、コンテントデータの名前(Content name)として例えば図4Aに示す「/abc.com/videos/xxx.mpg」をリクエスト入力部115に入力する。そして、リクエスト入力部115は、平文のコンテンツデータの名前(Content name)として「/abc.com/videos/xxx.mpg」をリクエスト変換部に通知する。
リクエスト変換部114は、平文のコンテンツデータの名前を所定の暗号鍵で暗号化した第1文字列に変換し、ゲートウェイ装置の名前を示す第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記述したリクエストパケットを生成する。
より具体的には、リクエスト変換部114は、暗号鍵/復号鍵管理部111からゲートウェイ装置14に関連付けられた暗号鍵を取り出して、取り出した暗号鍵を用いて平文のコンテンツデータの名前(Content name)を暗号化して、暗号化されたコンテンツデータの名前である第1文字列(Encrypt content name)を生成する。さらに、リクエスト変換部114は、ゲートウェイ装置14の名前を示す第2文字列(Gateway prefix)の後に第1文字列(Encrypt content name)を付与した文字列をリクエストパケットに含まれるコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載する。そして、リクエスト変換部114は平文のコンテンツデータの名前(Content name)と、第2文字列の後に第1文字列が記載された文字列とをリクエスト状態保持部110エントリーにおける項目に記録する。
本実施の形態では、リクエスト変換部114は、暗号鍵/復号鍵管理部111から取り出した暗号鍵を用いて、例えば図4Aに示す平文のコンテンツデータの名前(Content name)の文字列である「/abc.com/videos/xxx.mpg」を、暗号化されたコンテンツデータの名前(Encrypt content name)である第1文字列として、例えば図4Cに示す「akjgakgpqkagv_3&alvfaaa5a」を生成する。さらに、リクエスト変換部114は、ゲートウェイ装置14の名前を示す第2文字列(Gateway prefix)として、例えば図4Bに示す「/gateway.com/」の後に第1文字列を付与した例えば図4Dに示す文字列「/gateway.com/akjgakgpqkagv_3&alvfaaa5a」を、リクエストパケットに含まれるコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載する。そして、リクエスト変換部114は平文のコンテンツデータの名前(Content name)である「/abc.com/videos/xxx.mpg」をリクエスト状態保持部110のエントリーにおける項目1101にOriginal Content Nameとして記録し、第2文字列の後に第1文字列が記載された文字列「/gateway.com/akjgakgpqkagv_3&alvfaaa5a」をリクエスト状態保持部110のエントリーにおける項目1102にRequested Content Nameとして記録する。
リクエスト送信部113は、リクエスト変換部114が生成したリクエストパケットをCCN網10に送信する。本実施の形態では、リクエスト送信部113は、コンテンツデータの名前(暗号化されたコンテンツデータの名前)として「/gateway.com/akjgakgpqkagv_3&alvfaaa5a」(第2文字列の後に第1文字列が記載された文字列)が記載されたリクエストパケットを、インタフェース112を介して、CCN網10に送信する。
また、リクエスト送信部113は、CCN網10の送信したリクエストパケットの送信時刻をリクエスト状態保持部110に記録する。そして、リクエスト送信部113は、リクエスト状態保持部110が保持する送信時刻から所定の時間経過したときに、上記リクエストパケットを再送するとしてもよい。
より具体的には、リクエスト送信部113は、上記送信時刻を、リクエスト状態保持部110が保持するエントリーの項目1103にTime Stampとして記録する。ここで、当該送信時刻は、1以上のエントリーのうち、第2文字列の後に第1文字列が記載された文字列「/gateway.com/akjgakgpqkagv_3&alvfaaa5a」と一致するエントリーの項目1103に記録される。リクエスト送信部113は、リクエスト状態保持部110のエントリーの項目1103(Time Stamp)を参照し、前回のリクエスト送信時刻から所定の時間経過していた場合に、エントリーの項目1102(Requested Content Name)を記載したリクエストパケットを再送して、項目1103(Time Stamp)を更新するとしてもよい。
なお、端末装置11からCCN網10に送信されたリクエストパケットは、上記リクエストパケットに記載されたコンテンツデータの名前(暗号化されたコンテンツデータの名前)に含まれるゲートウェイ装置14の名前(Gateway prefix)に基づいて、中継装置12(中継装置12a~12c等)が持つ経路制御情報に従って、ゲートウェイ装置14に転送される。
データ受信部116は、第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載されたデータパケットを、コンテンツデータのデータパケットとして受信する。本実施の形態では、データ受信部116は、インタフェース112を介して、第2文字列の後に第1文字列を加えた文字列を名前として有するデータパケットを受信する。
データ変換部117は、リクエスト状態保持部110が保持するエントリーの項目1102(Requested Content Name)を参照する。データ変換部117は、第2文字列の後に第1文字列を加えた文字列に対応する項目1102(Requested Content Name)を含むエントリーの項目1101(Original Content Name)に基づいて、データ受信部116が受信したデータパケットを、項目1101(Original Content Name)に示す平文のコンテンツデータの名前を記載したデータパケットに変換する。そして、データ変換部117は、リクエスト状態保持部110から、上記の項目1102(Requested Content Name)を含むエントリーを削除する。
なお、データ変換部117は、データ受信部116が受信したデータパケットが暗号化されていた場合、暗号鍵/復号鍵管理部111からゲートウェイ装置14に関連付けられた復号鍵を取得し、データパケットを復号する。このようにして、データ変換部117は、データ受信部116により受信したコンテンツデータが暗号化されていた場合、ゲートウェイ装置14に関連付けられた復号鍵を用いて、コンテンツデータを復号することができる。
データ出力部118は、データ変換部117で変換された平文のコンテンツデータの名前に対応するデータパケットをアプリケーション119に出力する。
[ゲートウェイ装置の構成]
図5は、実施の形態1におけるゲートウェイ装置の詳細構成の一例を示す図である。図6は、実施の形態1におけるゲートウェイ装置が保持するリクエスト状態の一例を示す図である。
図5に示すゲートウェイ装置14は、1つ以上のインタフェース132(インタフェース132aおよび132b)と、リクエスト受信部133と、リクエスト変換部134と、リクエスト送信部135と、データ受信部136と、データ変換部137と、データ送信部138と、暗号鍵/復号鍵管理部139と、リクエスト状態保持部140と、キャッシュデータ保持部141と、経路制御情報保持部142とを備える。ゲートウェイ装置14は、上述したように、端末装置11が送信するリクエストパケット、コンテンツ提供装置13が送信するデータパケット、および中継装置が送信するデータパケットを中継する。
リクエスト状態保持部140は、リクエスト状態を保持する。例えば、リクエスト状態保持部140は、リクエスト送信部135が送信したリクエストパケットの送信時刻を保持する。より具体的には、リクエスト状態保持部140は、図6に示すような複数の項目を含むエントリーを有する。例えば、リクエスト状態保持部140は、リクエスト変換部134により復号されたリクエストパケットに含む平文のコンテンツデータの名前(Content name)を、Original Content Nameをキー情報としてエントリーの項目1401に保持する。また、例えば、リクエスト状態保持部140は、リクエスト受信部133が受信したリクエストパケットに含まれ、リクエスト受信部133により受信したリクエストパケットに含まれる名前を、Encrypted Content Nameとしてエントリーの項目1403に保持する。また、リクエスト状態保持部140は、リクエストパケットを受信したインタフェース132の情報をIncomming Interfaceとしてエントリーの項目1404に保持する。また、リクエスト状態保持部140は、リクエスト送信部135がリクエストパケットを送信した送信時刻を、Time Stampとしてエントリーの項目1402に保持する。
暗号鍵/復号鍵管理部139は、所定の復号鍵と所定の復号鍵に対応する暗号鍵とを管理する。暗号鍵/復号鍵管理部139は、所定の暗号鍵をCCN網10に接続される端末装置11に発行する。暗号鍵/復号鍵管理部139は、この所定の暗号鍵および復号鍵を、定期的に更新する。ここで、所定の暗号鍵は、公開鍵暗号方式の公開鍵であって、暗号鍵/復号鍵管理部139が発行する秘密鍵および公開鍵のうちの公開鍵であり、所定の復号鍵は、公開鍵暗号方式の秘密鍵であって、暗号鍵/復号鍵管理部139が発行する秘密鍵および公開鍵のうちの秘密鍵であるとしてもよい。
リクエスト受信部133は、コンテンツデータの名前(暗号化されたコンテンツデータの名前)として、ゲートウェイ装置14(自装置)の名前を示す第2文字列と第1文字列を含む文字列を含むリクエストパケットを受信する。本実施の形態では、リクエスト受信部133は、インタフェース132を介して、第2文字列の後に第1文字列を加えた文字列を名前として記載されたリクエストパケットを受信する。
リクエスト変換部134は、リクエスト受信部133が受信したリクエストパケットから第1文字列を抽出し、抽出した第1文字列を所定の復号鍵で復号化し、復号した第1文字列を、コンテンツデータの名前(平文のコンテンツデータの名前)として含むリクエストパケットを生成することで、リクエスト受信部133が受信したリクエストパケットを変換する。
本実施の形態では、リクエスト変換部134は、リクエスト受信部133が受信したリクエストパケットに記載された名前である第2文字列の後に第1文字列を加えた文字列「/gateway.com/akjgakgpqkagv_3&alvfaaa5a」から、暗号化されたコンテンツデータの名前(Encrypt content name)として第1文字列「akjgakgpqkagv_3&alvfaaa5a」を抽出する。リクエスト変換部134は、暗号鍵/復号鍵管理部139から取り出した所定の復号鍵を用いて、第1文字列「akjgakgpqkagv_3&alvfaaa5a」を復号して、平文のコンテンツデータの名前(Content name)を示す文字列として「/abc.com/videos/xxx.mpg」を取得する。ここで、上記の所定の復号鍵はゲートウェイ装置14(自装置)の名前(Gateway prefix)やリクエストを送信した端末装置11になんらかの形で関連付けられている。そして、リクエスト変換部134は、文字列「/abc.com/videos/xxx.mpg」を平文のコンテンツデータの名前(Content name)として記載した新しいリクエストパケットを生成する。このようにして、リクエスト変換部134は、リクエスト受信部133が受信したリクエストパケットを変換する。
さらに、リクエスト変換部134は、復号した平文のコンテンツデータの名前(Content name)である文字列「/abc.com/videos/xxx.mpg」を、リクエスト状態保持部140のエントリーにおける項目1401にOriginal Content Nameとして記録し、リクエストパケットに記載された暗号化されたコンテンツデータの名前(Encrypt content name)を示す文字列「akjgakgpqkagv_3&alvfaaa5a」を、リクエスト状態保持部140のエントリーにおける項目1403にEncrypted Content Nameとして記録する。また、リクエスト変換部134は、上記リクエストパケットを受信したインタフェース132の情報をリクエスト状態保持部140のエントリーにおける項目1404にIncomming Interfaceとして記録する。
経路制御情報保持部142は、経路情報を保持している。
リクエスト送信部135は、リクエスト変換部134により変換されたリクエストパケットをCCN網10に送信する。本実施の形態では、リクエスト送信部135は、復号した平文のコンテンツデータの名前(Content name)である文字列「/abc.com/videos/xxx.mpg」を記載したリクエストパケットを、インタフェース132を介して、CCN網10に送信する。ここで、リクエスト送信部135は、平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットを、経路制御情報保持部142が保持する経路情報に従って選択したインタフェース132を介してCCN網10に送信する。
リクエスト送信部135は、CCN網10に送信したリクエストパケットの送信時刻をリクエスト状態保持部140に記録する。ここで、リクエスト送信部135は、リクエスト状態保持部110が保持する送信時刻から所定の時間経過したときに、上記リクエストパケットを再送するとしてもよい。また、リクエスト送信部135は、データ受信部136が、上記送信時刻から所定の時間、リクエスト送信部135が送信したリクエストパケットに対するコンテンツデータを含むデータパケットを受信しなかった場合、当該リクエストパケットを再送するとしてもよい。
より具体的には、リクエスト送信部135は、上記送信時刻を、リクエスト状態保持部140が保持するエントリーの項目1402にTime Stampとして記録する。また、リクエスト送信部135は、リクエスト状態保持部140が保持するエントリーの項目1402(Time Stamp)を参照し、前回のリクエスト送信時刻から所定の時間経過していた場合またはデータ受信部136が、前回のリクエスト送信時刻から所定の時間、そのリクエストパケットに対応するデータパケットを受信しなかった場合、エントリーの項目1401(Original Content Name)を記載したリクエストパケットを再送して、項目1402(Time Stamp)を更新するとしてもよい。
なお、ゲートウェイ装置14からCCN網10に送信されたリクエストパケットは、中継装置12(中継装置12a〜中継装置12d等)が持つ経路制御情報に従って、CCN網10上で転送される。このコンテンツ提供装置13、もしくは、このリクエストパケットに対応するデータパケットをキャッシュ(記憶)している中継装置12は、上記リクエストパケットを受け取ると、ゲートウェイ装置14に向けて、このリクエストパケットに含まれる平文のコンテンツデータの名前(Content name)に対応するコンテンツデータ(データパケット)を送信する。
データ受信部136は、リクエスト送信部135が送信したリクエストパケットに対するコンテンツデータを含むデータパケットを受信する。本実施の形態では、データ受信部136は、インタフェース132を介して、リクエスト送信部135が送信したリクエストパケットに含まれる平文のコンテンツデータの名前(Content name)である文字列「/abc.com/videos/xxx.mpg」が記載されたデータパケットを受信する。
データ変換部137は、データ受信部136が受信したデータパケットにおいて、第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含めることで、データ受信部136が受信したデータパケットを変換する。より具体的には、データ変換部137は、リクエスト状態保持部140が保持するエントリーの項目1401(Original Content Name)を参照する。データ変換部137は、データ受信部136が受信したデータパケットに含まれる平文のコンテンツデータの名前(Content name)に対応するエントリーの項目1403(Encrypted Content Name)と項目1404(Incomming Interface)とから、第2文字列の後に第1文字列を加えた文字列「/gateway.com/akjgakgpqkagv_3&alvfaaa5a」とリクエストパケットを受信した1つ以上のインタフェース132の情報とを取得する。次に、データ変換部137は、平文のコンテンツデータの名前(Content name)が記載されたデータパケットを、第2文字列の後に第1文字列を加えた文字列「/gateway.com/akjgakgpqkagv_3&alvfaaa5a」が記載されたデータパケットに変換する。そして、データ変換部137は、リクエスト状態保持部140から、データ受信部136が受信したデータパケットに含まれる平文のコンテンツデータの名前(Content name)に一致する項目1401(Original Content Name)を含むエントリーを削除する。
データ送信部138は、データ変換部137により変換されたデータパケットを、リクエスト受信部133の受信したリクエストパケットを送信した端末装置11に向けて送信する。より具体的には、データ送信部138は、データ変換部137により変換され、第2文字列の後に第1文字列を加えた文字列「/gateway.com/akjgakgpqkagv_3&alvfaaa5a」をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットを、エントリーの項目1404(Incomming Interface)に記載されていた1つ以上のインタフェース132を介して端末装置11に送信する。ゲートウェイ装置14からCCN網10に送信されたデータパケットは、データパケットに記載された名前に基づいて、中継装置12が持つリクエスト記憶部(PIT)に従って、端末装置11に転送される。
なお、データ変換部137は、データ受信部136が受信した平文のコンテンツデータの名前を有するデータパケットをキャッシュデータ保持部141に記憶させるとしてもよい。
また、データ変換部137は、暗号鍵/復号鍵管理部139から所定の暗号鍵を取得し、端末装置11に向けて送信するデータパケットに含まれるコンテンツデータをこの暗号鍵で暗号化してもよい。これにより、端末装置11とゲートウェイ装置14との間の通信の秘匿性をさらに高めることができる。ただし、この暗号鍵は、ゲートウェイ装置14を示す名前や端末装置11になんらかの形で関連付けられているものとする。
また、リクエスト送信部135は、当該平文のコンテンツデータの名前(Content name)が記載されたデータパケットがキャッシュデータ保持部141に存在した場合、その平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットを送信しなくてよい。この場合には、データ送信部138が、直ちに端末装置11に第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットを送信すればよい。
より具体的には、リクエスト変換部134は当該平文のコンテンツデータの名前(Content name)の記載されたデータパケットがキャッシュデータ保持部141に存在した場合、リクエスト状態保持部140に受信したリクエストの情報を記憶させず、データ変換部に、受信したリクエストパケットに含まれる第2文字列および第1文字列を含む文字列および第一の文字列を復号した当該平文のコンテンツデータの名前(Content name)、上記リクエストパケットを受信したインタフェースの情報を通知する。データ変換部137は、リクエスト変換部134から受け取った情報から、キャッシュデータ保持部141に記憶されている上記平文のコンテンツデータの名前(Content name)を含むデータパケットをもとに、第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットを生成する。第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットはデータ送信部138から上記リクエストパケットを受信したインタフェース132を介して端末装置11に送信する。これにより、複数の端末装置11が同一のコンテンツデータの名前(Content name)が記載されたコンテンツデータを取得しようとした場合、ゲートウェイ装置14は、送信されるリクエストパケットの数を削減でき、かつデータパケットをすばやく端末装置11に送信することができる。
また、データ受信部136が受信したデータパケットに含まれる平文のコンテンツデータの名前(Content name)に対応する、第2文字列および第1文字列を含む文字列が複数ある場合には、データ変換部137は、データ受信部136が受信したデータパケットをそれら複数の文字列それぞれが記載されたデータパケットに変換する。そして、データ送信部138は、それら複数の文字列を含むエントリーの項目1404(Incomming Interface)に記載されていた1つ以上のインタフェース132を介して端末装置11に送信する。なお、データ変換部117は、リクエスト状態保持部110から、データ受信部136が受信したデータパケットに含まれる平文のコンテンツデータの名前(Content name)に一致する項目1401(Encrypted Content Name)を含む全てのエントリーを削除する。
また、リクエスト変換部134が、リクエスト受信部133で受信したリクエストパケットを、平文のコンテンツデータの名前(Content name)の記載されたリクエストパケットに変換する前に平文のコンテンツデータの名前を取得した際、リクエスト状態保持部140は、例えば図6に示す項目1401(Original Content Name)に、当該平文のコンテンツデータの名前(Content name)が記憶されたエントリーを既に保持している場合もある。この場合、リクエスト変換部134は、当該平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットが既にリクエスト送信部135により送信されており、当該平文のコンテンツデータの名前(Content name)が記載されたデータパケットの受信を待っている状態であるとして、リクエスト受信部133で受信したリクエストパケットを平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットに変換しなくてよい。すなわち、リクエスト送信部135は、上記の平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットを新たに送信せず、データ受信部136は、当該平文のコンテンツデータの名前(Content name)が記載されたデータパケットの受信を待ってもよい。これにより、複数の端末装置11が、同一の平文のコンテンツデータの名前(Content name)が記載されたコンテンツデータを取得しようとして、ほぼ同じ時刻にリクエストパケットを送信した場合、ゲートウェイ装置14から送信されるリクエストパケットの数を削減できる。つまり、CNN網10のトラフィックを削減することができる。
なお、リクエスト状態保持部140のメモリ量を削減するため、リクエスト状態保持部140は項目1401(Original Content Name)をキー情報として扱い、項目1401(Original Content Name)と項目1403(Encrypted Content Name)と項目1404(Incomming Interface)とに保持する情報と同じ情報が記録される場合には、既に同一のエントリーが存在するとして何も記録されないとしてもよい。また、項目1401(Original Content Name)と項目1403(Encrypted Content Name)とに同じ情報が記録される場合には、項目1403(Encrypted Content Name)と対になる項目1404(Incomming Interface)にリクエストパケットを受信したインタフェース132の情報を追加するだけでもよい。さらに、項目1401(Original Content Name)のみに同じの情報が記録される場合は、項目1403(Encrypted Content Name)と、項目1403(Encrypted Content Name)と対になる項目1404(Incomming Interface)とにリクエストパケットに記載された名前とリクエストパケットを受信したインタフェース132の情報を追加するだけとしてもよい。
[端末装置の動作]
次に、上記のように構成された端末装置11の動作について説明する。
図7は、実施の形態1における端末装置の動作を示すフローチャートである。図7には、端末装置11の特徴的な動作であるリクエストパケットの送信までの動作について示されている。
まず、ユーザまたはアプリケーションは、所望のコンテンツ名を指定する。本実施の形態では、アプリケーション119が、端末装置11のリクエスト入力部115に、所望する平文のコンテンツデータの名前を入力する(S101)。
次に、端末装置11(リクエスト変換部114)は、平文のコンテンツデータの名前を所定の暗号鍵で暗号化し、暗号化コンテンツ名(第1文字列)とゲートウェイ装置14の名前を示す文字列(第2文字列)とを含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記述したリクエストパケットを生成する(S102)。
次に、端末装置11(リクエスト送信部113)は、生成したリクエストパケットをCCN網10に送信する(S103)。
このようにして、端末装置11は、通信の秘匿性を考慮したリクエストパケットを生成することができる。
[ゲートウェイ装置の動作]
次に、上記のように構成されたゲートウェイ装置14の動作について説明する。
図8は、実施の形態1におけるゲートウェイ装置の動作を示すフローチャートである。図8には、ゲートウェイ装置14の特徴的な動作であるリクエストパケットの受信から送信までの動作について示されている。
まず、ゲートウェイ装置14は、自装置の名前を示す第2文字列を含むリクエストパケットを受信する(S201)。本実施の形態では、ゲートウェイ装置14(リクエスト受信部133)は、コンテンツデータの名前(暗号化されたコンテンツデータの名前)として、ゲートウェイ装置14(自装置)の名前を示す第2文字列および第1文字列を含む文字列を含むコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記述したリクエストパケットを受信する。
次に、ゲートウェイ装置14は、S201において受信したリクエストパケットから、第1文字列を抽出し(S202)、抽出した第1文字列を所定の復号鍵で復号し(S203)、復号した第1文字列を、平文のコンテンツデータの名前として含むリクエストパケットを生成する(S204)。
次に、ゲートウェイ装置14は、S204において生成されたリクエストパケットをCCN網10に送信する(S205)。
このようにして、ゲートウェイ装置14は、通信の秘匿性を考慮し、暗号化されたコンテンツデータの名前が記述されたリクエストパケットを平文のコンテンツデータの名前に変換して、CCN網10に送信することができる。
[コンテンツ配信システムの動作]
図9は、実施の形態1におけるコンテンツ配信システムの処理フローを示すシーケンスである。図9には、端末装置11がリクエストパケットを送信してコンテンツデータを取得するまで動作について示されている。
まず、端末装置11は、コンテンツ名が暗号化されたリクエストパケットを生成する(S301)。より具体的には、端末装置11は、平文のコンテンツデータの名前を所定の暗号鍵で暗号化し、暗号化コンテンツ名(第1文字列)をゲートウェイ装置14の名前を示す文字列(第2文字列)の後に加えた文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記述したリクエストパケットを生成する。
次に、端末装置11は、生成したリクエストパケットをCCN網10に送信する(S302)。ここで、図9の「Int_Proxy:ID_Proxy+Enc(ID_a)」において、「Int_Proxy」は、ゲートウェイ装置14に対するリクエストパケットを意味する。「ID_Proxy」は、ゲートウェイ装置14の名前を示す第2文字列を意味し、「Enc(ID_a)」は、平文のコンテンツデータの名前を所定の暗号鍵で暗号化した第1文字列を意味する。したがって、「ID_Proxy+Enc(ID_a)」は、暗号化コンテンツ名(第1文字列)をゲートウェイ装置14の名前を示す文字列(第2文字列)の後に加えた文字列を意味する。
次に、ゲートウェイ装置14は、自装置の名前を示す第2文字列を含むリクエストパケットを受信し、受信したリクエストパケットから第1文字列を抽出し、抽出した第1文字列を所定の復号鍵で復号化する(S303)。
次に、ゲートウェイ装置14は、復号した第1文字列を、平文のコンテンツデータの名前として含むリクエストパケットを生成する(S304)。
次に、ゲートウェイ装置14は、生成したリクエストパケットをCCN網10に送信する(S305)。ここで、図9の「Int_ID_a」において、「ID_a」は、平文のコンテンツデータの名前を意味し、「Int_ID_a」は、平文のコンテンツデータの名前が記載されたリクエストパケットを意味する。
次に、コンテンツ提供装置13は、平文のコンテンツデータの名前が記載されたリクエストパケットを受信し、受信したリクエストパケットに対応するコンテンツデータをCCN網10に返送する(S306)。ここで、図9の「Data_ID_a」において、「ID_a」は、平文のコンテンツデータの名前を意味し、「Data_ID_a」は、平文のコンテンツデータの名前が記載されたデータパケットを意味する。
次に、ゲートウェイ装置14は、送信したリクエストパケットに対するデータパケットを受信し、コンテンツ名が暗号化されたリクエストパケットに対するコンテンツデータを送信する(S307)。具体的には、ゲートウェイ装置14は、送信したリクエストパケットに対するコンテンツデータを含むデータパケットを受信し、受信したデータパケットにおいて、第2文字列の後に第1文字列を加えた文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含めることで、データ受信部が受信したデータパケットを変換する。そして、ゲートウェイ装置14は、コンテンツデータの名前が変換された(平文のコンテンツデータの名前の)データパケットを端末装置11に向けて送信する。
ここで、「Data_Proxy:ID_Proxy+Enc(ID_a)」において、「Data_Proxy」は、ゲートウェイ装置14からのデータパケットを意味する。「ID_Proxy」は、ゲートウェイ装置14の名前を示す第2文字列を意味し、「Enc(ID_a)」は、平文のコンテンツデータの名前を所定の暗号鍵で暗号化した第1文字列を意味する。したがって、「ID_Proxy+Enc(ID_a)」は、暗号化コンテンツ名(第1文字列)をゲートウェイ装置14の名前を示す文字列(第2文字列)の後に加えた文字列を意味する。
[実施の形態1の効果等]
以上のように、本実施の形態によれば、通信の秘匿性を考慮したリクエストパケットを用いることのできる端末装置、ゲートウェイ装置およびこれらの通信方法を実現することができる。
具体的には、本実施の形態によれば、端末装置11とゲートウェイ装置14との間では、端末装置11が取得したい平文のコンテンツデータの名前が秘匿(暗号化)された状態のリクエストパケットでやり取りされる。このため、どの端末装置11がどのコンテンツデータに対してリクエストを送信したか、ゲートウェイ装置14以外は判別できなくなり、端末装置に対する通信の秘匿性を確保することができる。
また、本実施の形態によれば、端末装置11とゲートウェイ装置14との間では、端末装置11が取得したい平文のコンテンツデータの名前が秘匿(暗号化)された状態のデータパケットでやり取りされる。このため、どの端末装置11がどのコンテンツデータを取得したか、ゲートウェイ装置14以外は判別できなくなり、端末装置に対する通信の秘匿性を確保することができる。
さらに、本実施の形態によれば、端末装置11とゲートウェイ装置14との通信において、それぞれ公開鍵暗号方式の公開鍵と秘密鍵とを用いることで、同じ公開鍵を使用する複数の端末装置11において、同一の平文のコンテンツデータの名前(Content name)に対する暗号化結果(Encrypt content name)は同じになる。このため、ゲートウェイ装置14を示す名前(Gateway Prefix)が同じであれば、同一コンテンツデータに対して、複数の端末装置11とゲートウェイ装置14で使用される名前は同一になる。それにより、CCNの特徴である中継装置12のリクエスト記憶部とデータ記憶部とによる効率よいデータ配信を維持しつつも、通信の秘匿性を確保することができる。
なお、端末装置11とゲートウェイ装置との間では、第2文字列の後に第1文字列が記載された文字列が使用されるとしたが、それに限らない。第2文字列と第1文字列とが含まれる文字列で記載されていればよい。
また、ゲートウェイ装置14の名前を示す文字として、Gateway prefixを例に挙げたがそれに限らない。リクエストパケットに記載された場合にゲートウェイ装置14に届く文字列であれば、ゲートウェイ装置14を示す名前の一部でもゲートウェイ装置14に関連付けられる文字列でもよい。
(実施の形態2)
実施の形態1では、CCN網10にゲートウェイ装置14を導入する場合の例について説明したがそれに限られない。中継装置が、実施の形態1におけるゲートウェイ装置の機能を備えるとしてもよい。本実施の形態では、この場合について説明する。
[コンテンツ配信システムの構成]
図10は、実施の形態2におけるコンテンツ配信システムの構成の一例を示す図である。図1と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図10に示すコンテンツ配信システムは、実施の形態1に係る図1に示すコンテンツ配信システムに対して、中継装置22の構成が異なる。なお、中継装置12は、実施の形態1で説明した通りであるため、ここでの説明は省略する。
中継装置22は、CCN網10に接続され、リクエストパケットおよびデータパケットを中継する。また、中継装置22は、実施の形態1のゲートウェイ装置14の機能を備える。
本実施の形態では、図10に示すように、中継装置22は、端末装置11や他の中継装置(中継装置12)、コンテンツ提供装置13とリクエストパケットおよびデータパケットを交換することができる。
本実施の形態では、端末装置11は、平文のコンテンツデータの名前(Content name)に対応するコンテンツデータを取得するため、第2文字列の後に第1文字列を加えた文字列が記載されたリクエストパケットを送信する。そして、リクエストパケットは、リクエストパケットに記載された第2文字列に基づいて、中継装置22に転送される。
[中継装置の構成]
図11は、実施の形態2における中継装置の詳細構成の一例を示す図である。図12は、実施の形態2における中継装置が保持するリクエスト状態の一例を示す図である。
図11に示す中継装置22は、ゲートウェイ装置14の機能を備える。具体的には、中継装置22は、1つ以上のインタフェース222(インタフェース222a〜22d)と、データ処理部223と、リクエスト処理部224と、経路情報処理部225と、データ記憶部226と、暗号鍵/復号鍵管理部227と、リクエスト記憶部228と、経路制御情報記憶部229とを備える。中継装置22は、端末装置11が送信するリクエストパケット、コンテンツ提供装置13が送信するデータパケット、または、他の中継装置が送信するリクエストパケットもしくはデータパケットを中継する。以下では、従来の中継装置22とは異なる点を中心に説明する。なお、他の中継装置等は、ゲートウェイ装置14の名前を示す文字(図4BのGateway prefix)を含む全てのリクエストパケットを、中継装置22に転送するとする。
リクエスト記憶部228は、PIT(Pending Interest Table)としての機能を有し、さらに、図12に示すようなリクエスト状態を記憶する。PITは従来技術であるので、ここではリクエスト状態について説明する。リクエスト記憶部228は、図12に示すような複数の項目を含むエントリーを有する。例えば、リクエスト記憶部228は、リクエスト処理部224により復号されたリクエストパケットに含む平文のコンテンツデータの名前(Content name)を、Original Content Nameとしてエントリーの項目2281に保持する。また、例えば、リクエスト記憶部228は、リクエスト処理部224で受信したリクエストパケットに含まれ、リクエスト処理部224により復号される前における暗号化されたコンテンツデータの名前(Encrypt content name)を、Encrypted Content Nameとしてエントリーの項目2283に保持する。また、リクエスト記憶部228は、リクエストパケットを受信したインタフェース222の情報をIncomming Interfaceとしてエントリーの項目2284に保持する。また、リクエスト記憶部228は、リクエスト処理部224がリクエストパケットを送信した送信時刻を、Time Stampとしてエントリーの項目2282に記憶する。
なお、リクエスト記憶部228のメモリ量を削減するため、実施の形態1と同様に、リクエスト記憶部228は項目2281(Original Content Name)をキー情報として扱い、項目2281(Original Content Name)と項目2283(Encrypted Content Name)と項目2284(Incomming Interface)とに記憶する情報と同じ情報が記録される場合には、既に同一のエントリーが存在するとして何も記録されないとしてもよい。また、項目2281(Original Content Name)と項目2283(Encrypted Content Name)とに同じ情報が記録される場合には、項目2283(Encrypted Content Name)と対になる項目2284(Incomming Interface)にリクエストパケットを受信したインタフェース222の情報を追加するだけでもよい。さらに、項目2281(Original Content Name)のみに同じ情報が記録される場合は、項目2283(Encrypted Content Name)と、項目2283(Encrypted Content Name)と対になる項目2284(Incomming Interface)とにリクエストパケットに記載された名前とリクエストパケットを受信したインタフェース222の情報を追加するだけとしてもよい。
暗号鍵/復号鍵管理部227は、所定の復号鍵と所定の復号鍵に対応する暗号鍵とを管理する。暗号鍵/復号鍵管理部227は、所定の暗号鍵をCCN網10に接続される端末装置11に発行する。暗号鍵/復号鍵管理部227は、この所定の暗号鍵および復号鍵を、定期的に更新する。ここで、所定の暗号鍵は、公開鍵暗号方式の公開鍵であって、暗号鍵/復号鍵管理部227が発行する秘密鍵および公開鍵のうちの公開鍵であり、所定の復号鍵は、公開鍵暗号方式の秘密鍵であって、暗号鍵/復号鍵管理部227が発行する秘密鍵および公開鍵のうちの秘密鍵であるとしてもよい。
経路制御情報記憶部229は、FIB(Forwarding Information Base)と呼ばれる経路情報記憶部が持つ経路情報を持つ。中継装置22は、この経路情報に従って、端末装置11もしくは他の中継装置から送信されるリクエストパケットを転送する。
リクエスト処理部224は、従来の中継装置のリクエスト転送処理に加えて、実施の形態1のゲートウェイ装置14のリクエスト受信部133、リクエスト変換部134およびリクエスト送信部135の機能を備える。すなわち、リクエスト処理部224は、コンテンツデータの名前(暗号化されたコンテンツデータの名前)として、ゲートウェイ装置14(自装置)の名前を示す第2文字列およびに第1文字列を含む文字列を含むリクエストパケットを受信する。また、リクエスト処理部224は、受信したリクエストパケットから第1文字列を抽出し、抽出した第1文字列を所定の復号鍵で復号化し、復号した第1文字列を、平文のコンテンツデータの名前として含むリクエストパケットを生成することで、受信したリクエストパケットを変換する。また、リクエスト処理部224は、変換したリクエストパケットをCCN網10に送信する。
本実施の形態では、リクエスト処理部224は、インタフェース222を介して、第2文字列の後に第1文字列を加えた文字列を名前として記載されたリクエストパケットを受信する。リクエスト処理部224は、受信したリクエストパケットに記載されているコンテンツデータの名前(暗号化されたコンテンツデータの名前)を示す文字列に、ゲートウェイ装置14の名前を示す文字(図4BのGateway prefix)が含まれていた場合、第2文字列の後に第1文字列を加えた文字列から暗号化されたコンテンツデータの名前(Encrypt content name)を示す第1文字列を抽出する。リクエスト処理部224は、暗号鍵/復号鍵管理部227から取り出した所定の復号鍵を用いて、第1文字列を復号して、平文のコンテンツデータの名前(Content name)を示す文字列を取得する。ここで、上記復号鍵は図4Bに示すGateway prefixやリクエストを送信した端末装置11になんらかの形で関連付けられているものとする。
そして、リクエスト処理部224は、復号した平文のコンテンツデータの名前(Content name)である文字列と、上記リクエストパケットに記載された暗号化されたコンテンツデータの名前(Encrypt content name)を示す文字列と、リクエストパケットを受信したインタフェース222の情報とを、リクエスト記憶部228のエントリーにおける項目2281、項目2283および項目2284に、Original Content Name、Encrypted Content NameおよびIncomming Interfaceとして記録する。
また、リクエスト処理部224は、復号した平文のコンテンツデータの名前(Content name)である文字列を記載した新しいリクエストパケットを、インタフェース222を介して、CCN網10に送信する。より具体的には、リクエスト処理部224は、平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットを、経路制御情報記憶部229が持つ経路情報に従って選択したインタフェースを222介してCCN網10に送信する。
リクエスト処理部224は、CCN網10に送信したリクエストの送信時刻を、リクエスト記憶部228が保持する平文のコンテンツデータの名前(Content name)と一致するエントリーの項目2282にTime Stampとして記録する。また、リクエスト処理部224は、リクエスト記憶部228が保持するエントリーの項目2282(Time Stamp)を参照し、前回のリクエスト送信時刻から所定の時間経過していた場合または前回のリクエスト送信時刻から所定の時間、そのリクエストパケットに対応するデータパケットを受信しなかった場合、エントリーの項目2281(Original Content Name)を記載したリクエストパケットを再送して、項目2282(Time Stamp)を更新してもよい。
なお、中継装置22からCCN網10に送信されたリクエストパケットは、中継装置22(中継装置22aや中継装置22b)が持つ経路制御情報に従って、CCN網10上で転送される。コンテンツ提供装置13、もしくはリクエストパケットに対応するデータパケットをデータ記憶部226にキャッシュ(記憶)している他の中継装置は、上記リクエストパケットを受け取ると、中継装置22向けて、このリクエストパケットに含まれる平文のコンテンツデータの名前(Content name)に対応するコンテンツデータ(データパケット)を送信する。
データ処理部223は、実施の形態1のゲートウェイ装置14のデータ受信部136、データ変換部137およびデータ送信部138の機能を備える。すなわち、データ処理部223は、リクエスト処理部224が送信したリクエストパケットに対するコンテンツデータを含むデータパケットを受信する。データ処理部223は、受信したデータパケットにおいて、第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含めることで、受信したデータパケットを変換する。また、データ処理部223は、コンテンツデータの名前(暗号化されたコンテンツデータの名前)が変換されたデータパケットを、端末装置11に向けて送信する。
より具体的には、データ処理部223は、インタフェース222を介して、リクエスト処理部224が送信したリクエストパケットに含まれる平文のコンテンツデータの名前(Content name)が記載されたデータパケットを受信する。
また、データ処理部223は、リクエスト記憶部228が保持するエントリーの項目2281(Original Content Name)を参照する。データ処理部223は、受信したデータパケットに含まれる平文のコンテンツデータの名前(Content name)に対応するエントリーの項目2283(Encrypted Content Name)と項目2284(Incomming Interface)とから、第2文字列の後に第1文字列を加えた文字列とこの文字列が記載されたリクエストパケットを受信した1つ以上のインタフェース222の情報とを取得する。そして、データ処理部223は、平文のコンテンツデータの名前(Content name)が記載されたデータパケットを、第2文字列の後に第1文字列を加えた文字列が記載されたデータパケットに変換する。ここで、第2文字列の後に第1文字列を加えた文字列には、エントリーの項目2283(Encrypted Content Name)に記載されていた文字列が用いられている。そして、データ処理部223は、変換したデータパケットを、上記エントリーの項目2284(Incomming Interface)に記載されていた1つ以上のインタフェース222を介して、端末装置11に送信する。
中継装置22からCCN網10に送信されたデータパケットは、データパケットに記載された名前を元に、中継装置22が持つリクエスト記憶部(PIT)に従って、端末装置11に転送される。
なお、データ処理部223が受信したデータパケットに含まれる平文のコンテンツデータの名前(Content name)に対応する第2文字列の後に第1文字列を加えた文字列が複数ある場合には、データ処理部223は、受信したデータパケットをそれら複数の文字列それぞれが記載されたデータパケットに変換する。例えば、データ処理部223は、エントリーの項目2281(Original Content Name1101)に関連した、複数の項目2283(Encrypted Content Name)と項目2283(Encrypted Content Name)と対になる項目2284(Incomming Interface)が存在した場合は、複数の項目2283(Encrypted Content Name)に対応する複数のデータパケットを生成し、項目2283(Encrypted Content Name)に対になる項目2284(Incomming Interface)に記載されていた1つ以上のインタフェース222を介して端末装置11に送信する。
そして、データ処理部223は、送信した平文のコンテンツデータの名前(Content name)と一致する項目2281(Original Content Name)が記憶されている全てのエントリーをリクエスト記憶部228から消去する。
また、データ処理部223は、受信した平文のコンテンツデータの名前を有するデータパケットをデータ記憶部226に記憶させる。
また、データ処理部223は、暗号鍵/復号鍵管理部227から所定の暗号鍵を取得し、端末装置11に向けて送信するデータパケットに含まれるコンテンツデータをこの暗号鍵で暗号化してもよい。これにより、端末装置11と中継ゲートウェイ装置22との間の通信の秘匿性をさらに高めることができる。ただし、この暗号鍵は、ゲートウェイ装置14を示す名前や端末装置11になんらかの形で関連付けられているものとする。
また、リクエスト処理部224は、受信したリクエストパケットに対応する平文のコンテンツデータの名前(Content name)が記載されたデータパケットがデータ記憶部226に存在した場合、その平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットを送信しなくてよい。この場合には、データ処理部223は、直ちに端末装置11に第2文字列の後に第1文字列を加えた文字列が記載されたデータパケットを送信すればよい。
より具体的には、リクエスト処理部224は、受信したリクエストパケットに対応する平文のコンテンツデータの名前(Content name)が記載されたデータパケットがデータ記憶部226に存在した場合、リクエスト記憶部228に受信したリクエストの情報を記憶させず、データ処理部223に受信したリクエストパケットに含まれる第2文字列の後に第1文字列を加えた文字列および第一の文字列を復号した当該平文のコンテンツデータの名前(Content name)、上記リクエストパケットを受信したインタフェースの情報を通知する。データ処理部223は、リクエスト処理部224から受け取った情報から、データ記憶部226に記憶されている上記平文のコンテンツデータの名前(Content name)に対応するデータパケットをもとに、第2文字列の後に第1文字列を加えた文字列に対応するデータパケットを生成する。第2文字列の後に第1文字列を加えた文字列に対応するデータパケットはデータ処理223から上記リクエストパケットを受信したインタフェース222を介して端末装置11に送信する。これにより、複数の端末装置11が同一のコンテンツデータの名前(Content name)が記載されたコンテンツデータを取得しようとした場合、中継装置22は、送信されるリクエストパケットの数を削減でき、かつデータパケットをすばやく端末装置11に送信することができる。
また、リクエスト記憶部228は、リクエスト処理部224が、受信したリクエストパケットを、平文のコンテンツデータの名前(Content name)の記載されたリクエストパケットに変換する前に平文のコンテンツデータの名前(Content name)を取得した際、例えば図12に示す項目2281(Original Content Name)に、受信したリクエストパケットに対応する平文のコンテンツデータの名前(Content name)が記憶されたエントリーを保持している場合がある。この場合、リクエスト処理部224は、上記の平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットは既に送信されており、上記の平文のコンテンツデータの名前(Content name)が記載されたデータパケットの受信を待っている状態であるとして、受信したリクエストパケットを平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットに変換しなくてよい。すなわち、リクエスト処理部224は、上記の平文のコンテンツデータの名前(Content name)が記載されたリクエストパケットを新たに送信せず、上記の平文のコンテンツデータの名前(Content name)が記載されたデータパケットの受信を待ってもよい。これにより、複数の端末装置11が同一の平文のコンテンツデータの名前(Content name)が記載されたコンテンツデータを取得しようとして、ほぼ同じ時刻にリクエストパケットを送信した場合でも、中継装置22が送信するリクエストパケットの数を削減できる。つまり、CNN網10のトラフィックを削減することができる。
このようにして、端末装置11は、第2文字列の後に第1文字列を加えた文字列がコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載されたデータパケットを受信して、平文のコンテンツデータの名前(Content name)に対応するコンテンツデータを取得することができる。
[実施の形態2の効果等]
以上のように、本実施の形態によれば、通信の秘匿性を考慮したリクエストパケットを用いることのできる中継装置およびこれらの通信方法を実現することができる。
具体的には、本実施の形態によれば、ゲートウェイ装置14の機能を備える中継装置22と端末装置11との間では、端末装置11が取得したい平文のコンテンツデータの名前が(秘匿)暗号化された状態のリクエストパケットでやり取りされる。このため、どの端末装置11がどのコンテンツデータに対してリクエストを送信したか、ゲートウェイ装置14の機能を備える中継装置22以外は判別できなくなり、端末装置に対する通信の秘匿性を確保することができる。
また、本実施の形態によれば、ゲートウェイ装置14の機能を備える中継装置22と端末装置11との間では、端末装置11が取得したい平文のコンテンツデータの名前が秘匿(暗号化)された状態のデータパケットでやり取りされる。このため、どの端末装置11がどのコンテンツデータを取得したか、ゲートウェイ装置14の機能を備える中継装置22以外は判別できなくなり、端末装置に対する通信の秘匿性を確保することができる。
さらに、本実施の形態によれば、ゲートウェイ装置14の機能を備える中継装置22と端末装置11との通信において、それぞれ公開鍵暗号方式の公開鍵と秘密鍵とを用いることで、同じ公開鍵を使用する複数の端末装置11において、同一の平文のコンテンツデータの名前(Content name)に対する暗号化結果(Encrypt content name)は同じになる。このため、ゲートウェイ装置14を示す名前(Gateway Prefix)が同じであれば、同一コンテンツデータに対して、ゲートウェイ装置14の機能を備える中継装置22と複数の端末装置11とで使用される名前は同一になる。それにより、CCNの特徴である中継装置のリクエスト記憶部とデータ記憶部とによる効率よいデータ配信を維持しつつも、通信の秘匿性を確保することができる。
(実施の形態3)
実施の形態1では、一台のゲートウェイ装置を利用して、通信の秘匿性を向上させる場合の例について説明したがそれに限らない。複数のゲートウェイ装置を多段的に利用してもよい。本実施の形態では、この場合について説明する。
[コンテンツ配信システムの構成]
図13は、実施の形態3におけるコンテンツ配信システムの構成の一例を示す図である。
図13に示すコンテンツ配信システムは、中継装置12(中継装置12a〜12e)と、コンテンツ提供装置13と、複数の端末装置31(端末装置31a、端末装置31b)と、第1のゲートウェイ装置34と、第2のゲートウェイ装置35とを備え、これらはCCN網10に接続されている。
[端末装置の構成]
図14は、実施の形態3における端末装置の詳細構成の一例を示す図である。図15A〜図15Gは、実施の形態3における端末装置が用いるコンテンツデータの名前を含む名前の一例を示す図である。図1と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図14に示す端末装置31は、例えば図2に示す実施の形態1に係る端末装置11に対して、リクエスト状態保持部310と、暗号鍵/復号鍵管理部311と、リクエスト変換部314と、データ変換部317との構成が異なる。以下では、実施の形態1と異なるところを中心に説明する。
リクエスト状態保持部310は、リクエスト状態を保持する。具体的には、リクエスト状態保持部310は、図3に示すような複数の項目を含むエントリーを有する。
暗号鍵/復号鍵管理部311は、暗号鍵および復号鍵を管理する。暗号鍵は、所定のゲートウェイ装置に関連付けられている。本実施の形態では、暗号鍵/復号鍵管理部311は、第1のゲートウェイ装置34に関連付けられた暗号鍵(第1暗号鍵)と第2のゲートウェイ装置35に関連付けられた暗号鍵(第2暗号鍵)とを管理する。例えば、第1暗号鍵は、公開鍵暗号方式の公開鍵であって、第1のゲートウェイ装置34が発行する秘密鍵および公開鍵のうちの公開鍵である。なお、所定の暗号鍵は、第1のゲートウェイ装置34により定期的に更新される。同様に、第2暗号鍵は、公開鍵暗号方式の公開鍵であって、第2のゲートウェイ装置35が発行する秘密鍵および公開鍵のうちの公開鍵である。なお、所定の暗号鍵は、第2のゲートウェイ装置35により定期的に更新される。
本実施の形態では、リクエスト変換部314は、平文のコンテンツデータの名前を所定の暗号鍵(第1暗号鍵)で暗号化した第1文字列に変換し、第1のゲートウェイ装置34の名前を示す第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記述したリクエストパケットを生成する。リクエスト変換部314は、第2文字列および第1文字列を含む文字列をさらに、所定の暗号鍵と異なる暗号鍵(第2暗号鍵)で暗号化した第3文字列に変換し、第1のゲートウェイ装置34と異なる第2のゲートウェイ装置35の名前を示す第4文字列の後に、第3文字列を加えた文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載したリクエストパケットを生成する。
より具体的には、リクエスト変換部314は、暗号鍵/復号鍵管理部311から第1のゲートウェイ装置34と第2のゲートウェイ装置35に関連付けられた暗号鍵をそれぞれ取り出して、第1のゲートウェイ装置34の暗号鍵(第1暗号鍵)を用いて、平文のコンテンツデータの名前(Content name)を暗号化して、暗号化されたコンテンツデータの名前である第1文字列(第一のEncrypt content name)を生成する。さらに、リクエスト変換部314は第1のゲートウェイ装置34の名前を示す第2文字列(Gateway prefix(1))の後に第1文字列(第一のEncrypt content name)を付与した文字列を生成する。さらに、リクエスト変換部314は、第2のゲートウェイ装置35の暗号鍵(第2暗号鍵)を用いて、第2文字列の後に第1文字列を付与した文字列を暗号化した第3文字列(第二のEncrypt content name)を生成する。リクエスト変換部314は、第2のゲートウェイ装置35の名前を示す第4文字列(Gateway prefix(2))の後に第3文字列(第二のEncrypt content name)を付与した文字列をリクエストパケットに含まれるコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載する。そして、リクエスト変換部314は、平文のコンテンツデータの名前(Content name)と第4文字列の後に第3文字列が記載された文字列とを、リクエスト状態保持部310のエントリーにおける項目1101(Oridinal Content Name)と項目1102(Requested Content Name)に記録する。
本実施の形態では、リクエスト変換部314は、第1暗号鍵を用いて、例えば図15Aに示す平文のコンテンツデータの名前(Content name)の文字列である「/abc.com/videos/xxx.mpg」を、暗号化されたコンテンツデータの名前(第一のEncrypt content name)である第1文字列として、例えば図15Dに示す「akjgakgpqkagv_3&alvfaaa5a」を生成する。次に、リクエスト変換部314は、第1のゲートウェイ装置34の名前を示す第2文字列(Gateway prefix(1))として例えば図15Bに示す「/gateway1.com/」の後に第1文字列を付与した、例えば図15Eに示す「/gateway1.com/akjgakgpqkagv_3&alvfaaa5a」を生成する。さらに、リクエスト変換部314は、第2暗号鍵を用いて、例えば図15Eに示す第2文字列の後に第1文字列を付与した文字列「/gateway1.com/akjgakgpqkagv_3&alvfaaa5a」を暗号化して、第3文字列(第二のEncrypt content name)である、例えば図15Fに示す「kara13mgam_a_aljain5la540ialanaia」を生成する。次に、リクエスト変換部314は、第2のゲートウェイ装置35の名前を示す第4文字列(Gateway prefix(2))として、例えば図15Cに示す「/gateway2.com/」の後に第3文字列を付与した例えば図15Gに示す文字列「/gateway2.com/kara13mgam_a_aljain5la540ialanaia」を生成する。
なお、端末装置31からCCN網10に送信されたリクエストパケットは、上記リクエストパケットに記載された第4文字列の後に第3文字列が記載された文字列に含まれる第2のゲートウェイ装置35の名前に基づいて、中継装置12(中継装置12a〜12e)が持つ経路制御情報に従って、第2のゲートウェイ装置35に転送される。
データ受信部116は、インタフェース112を介して、第4文字列の後に第3文字列が記載された文字列に対応するデータパケットを受信する。その他の処理については実施の形態1で説明した通りであるため、ここでの説明を省略する。
データ変換部317は、リクエスト状態保持部310が保持するエントリーの項目1102(Requested Content Name)を参照する。データ変換部117は、第4文字列の後に第3文字列が記載された文字列に対応する項目1102(Requested Content Name)を含むエントリーの項目1101(Original Content Name)に基づいて、データ受信部116が受信したデータパケットを、項目1101(Original Content Name)に示す平文のコンテンツデータの名前を記載したデータパケットに変換する。そして、データ変換部317は、リクエスト状態保持部310から、上記の項目1102(Requested Content Name)を含むエントリーを削除する。
なお、データ変換部317は、データ受信部116が受信したデータパケットが暗号化されていた場合、暗号鍵/復号鍵管理部311から第1のゲートウェイ装置34および第2のゲートウェイ装置35に関連付けられた復号鍵を取得し、データパケットを復号する。このようにして、データ変換部317は、データ受信部116により受信したコンテンツデータが暗号化されていた場合、第1のゲートウェイ装置34や第2のゲートウェイ装置35に関連付けられた復号鍵を用いて、コンテンツデータを復号することができる。
[ゲートウェイ装置の構成]
第1のゲートウェイ装置34は、実施の形態1におけるゲートウェイ装置14と同様であるので、本実施の形態では、第2のゲートウェイ装置35を中心に説明する。
[第2のゲートウェイ装置の構成]
図16は、実施の形態3における第2のゲートウェイ装置の詳細構成の一例を示す図である。図5と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図16に示す第2のゲートウェイ装置35は、例えば図5に示す実施の形態1に係るゲートウェイ装置14に対して、経路制御情報保持部352と、リクエスト受信部353と、リクエスト変換部354と、データ受信部356と、データ変換部357と、暗号鍵/復号鍵管理部359との構成が異なる。以下では、実施の形態1と異なるところを中心に説明する。
暗号鍵/復号鍵管理部359は、第2復号鍵とこの復号鍵に対応する暗号鍵(第2暗号鍵)とを管理する。暗号鍵/復号鍵管理部359は、暗号鍵(第2暗号鍵)をCCN網10に接続される端末装置31に発行する。暗号鍵/復号鍵管理部359は、第2暗号鍵および第2復号鍵を、定期的に更新する。ここで、第2暗号鍵は、公開鍵暗号方式の公開鍵であって、暗号鍵/復号鍵管理部359が発行する秘密鍵および公開鍵のうちの公開鍵であり、第2復号鍵は、公開鍵暗号方式の秘密鍵であって、暗号鍵/復号鍵管理部359が発行する秘密鍵および公開鍵のうちの秘密鍵であるとしてもよい。
リクエスト受信部353は、コンテンツデータの名前(暗号化されたコンテンツデータの名前)として、第2のゲートウェイ装置35(自装置)の名前を示す第4文字列の後に第3文字列を加えた文字列を含むリクエストパケットを受信する。本実施の形態では、リクエスト受信部353は、インタフェース132を介して、第4文字列の後に第3文字列を加えた文字列が記載されたリクエストパケットを受信する。
リクエスト変換部354は、リクエスト受信部353が受信したリクエストパケットから第3文字列を抽出し、抽出した第4文字列を所定の第2復号鍵で復号化し、復号した第4文字列を、コンテンツデータの名前として含むリクエストパケットを生成することで、リクエスト受信部353が受信したリクエストパケットを変換する。
本実施の形態では、リクエスト変換部134は、リクエスト受信部353が受信したリクエストパケットに記載された第4文字列の後に第3文字列を加えた文字列「/gateway2.com/kara13mgam_a_aljain5la540ialanaia」から、第3文字列(第二のEncrypt content name)である「kara13mgam_a_aljain5la540ialanaia」を抽出する。リクエスト変換部354は、暗号鍵/復号鍵管理部359から取り出した所定の復号鍵を用いて、第3文字列(第二のEncrypt content name)を復号して、第2文字列の後に第1文字列を加えた文字列「/gateway1.com/akjgakgpqkagv_3&alvfaaa5a」を取得する。そして、リクエスト変換部354は、第2文字列の後に第1文字列を加えた文字列「/gateway1.com/akjgakgpqkagv_3&alvfaaa5a」をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載した新しいリクエストパケットを生成する。このようにして、リクエスト変換部354は、リクエスト受信部343が受信したリクエストパケットを変換する。ここで、上記復号鍵は、第2のゲートウェイ装置35(自装置)の名前(Gateway prefix(2))やリクエストを送信した端末装置31になんらかの形で関連付けられている。
さらに、リクエスト変換部354は、第2文字列の後に第1文字列を加えた文字列「/gateway1.com/akjgakgpqkagv_3&alvfaaa5a」と、リクエストパケットに記載された第4文字列の後に第3文字列を加えた文字列「/gateway2.com/kara13mgam_a_aljain5la540ialanaia」と、リクエストパケットを受信したインタフェース132の情報とを、リクエスト状態保持部140のエントリーの項目1401(Original Content Name)と項目1403(Encrypted Content Name)と項目1404(Incomming Interface904)とにそれぞれ記録する。
リクエスト送信部355は、リクエスト変換部354により変換されたリクエストパケットをCCN網10に送信する。本実施の形態では、リクエスト送信部355は、復号した第2文字列の後に第1文字列を加えた文字列「/gateway1.com/akjgakgpqkagv_3&alvfaaa5a」をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載されたリクエストパケットを、インタフェース132を介してCCN網10に送信する。その他の処理については実施の形態1で説明した通りであるので、説明を省略する。
なお、第2のゲートウェイ装置35からCCN網10に送信されたリクエストパケットは中継装置12が持つ経路制御情報に従って、第1のゲートウェイ装置34に転送される。
データ受信部356は、リクエスト送信部355が送信したリクエストパケットに対するコンテンツデータを含むデータパケットを受信する。本実施の形態では、データ受信部356は、インタフェース132を介して、リクエスト送信部355が送信したリクエストパケットに含まれる第2文字列および第1文字列を含む文字列がコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載されたデータパケットを受信する。
データ変換部357は、データ受信部356が受信したデータパケットにおいて、第2文字列および第1文字列を含む文字列に代えて第4文字列および第3文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含めることで、データ受信部356が受信したデータパケットを変換する。
より具体的には、データ変換部357は、リクエスト状態保持部140が保持するエントリーの項目1401(Original Content Name)を参照する。データ変換部357は、データ受信部356が受信したデータパケットに含まれる第2文字列の後に第1文字列を加えた文字列「/gateway1.com/akjgakgpqkagv_3&alvfaaa5a」に対応するエントリーの項目1403(Encrypted Content Name)と項目1404(Incomming Interface)とから、第4文字列の後に第3文字列を加えた文字列「/gateway2.com/kara13mgam_a_aljain5la540ialanaia」とリクエストパケットを受信した1つ以上のインタフェース132の情報とを取得する。次に、データ変換部357は、第2文字列の後に第1文字列を加えた文字列「/gateway.com/akjgakgpqkagv_3&alvfaaa5a」が記載された記載されたデータパケットを、第4文字列の後に第3文字列を加えた文字列「/gateway2.com/kara13mgam_a_aljain5la540ialanaia」が記載されたデータパケットに変換する。そして、データ変換部357は、リクエスト状態保持部140から、データ受信部356が受信したデータパケットに含まれる第2文字列の後に第1文字列を加えた文字列に一致する項目1401(Original Content Name)を含むエントリーを削除する。 第2のゲートウェイ装置35からCCN網10に送信されたデータパケットは、上記データパケットに記載された名前を元に、中継装置12が持つリクエスト記憶部(PIT)に従って、端末装置11に転送される。
なお、データ変換部357は、データ受信部356が受信した第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットをキャッシュデータ保持部141に記憶させるとしてもよい。また、データ変換部357は、暗号鍵/復号鍵管理部359から所定の暗号鍵を取得し、端末装置31に向けて送信するデータパケットに含まれるコンテンツデータをこの暗号鍵で暗号化してもよい。これにより、端末装置31と第2のゲートウェイ装置35との間の通信の秘匿性をさらに高めることができる。ただし、この暗号鍵は、第2のゲートウェイ装置35を示す名前や端末装置31になんらかの形で関連付けられているものとする。
また、リクエスト送信部355は、当該第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットがキャッシュデータ保持部141に存在した場合、当該第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むリクエストパケットを送信しなくてよい。この場合には、データ送信部138が、直ちに端末装置11に第4文字列および第3文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットを送信すればよい。
より具体的には、当該第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットがキャッシュデータ保持部141に存在した場合、データ変換部357は、リクエスト状態保持部140のエントリーにおける項目1401(Original Content Name)を参照する。データ変換部357は、当該第2文字列および第1文字列を含む文字列に対応するエントリーの項目1403(Encrypted Content Name)と項目1404(Incomming Interface)とから、第4文字列および第3文字列を含む文字列とこの文字列が記載されたリクエストパケットを受信した1つ以上のインタフェース132の情報とを取得する。そして、データ変換部357はキャッシュデータ保持部141に記憶されている当該第2文字列および第1文字列を含む文字列に対応するデータパケットをもとに、上記エントリーの項目1103(Encrypted Content Name)に記載されていた第4文字列および第3文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットを生成する。第4文字列および第3文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットはデータ送信部138から上記エントリーの項目1104(Incomming Interface)に記載されていた1つ以上のインタフェース132を介して端末装置11に送信する。さらに、データ変換部357は、リクエスト状態保持部140に記憶された当該第2文字列および第1文字列を含む文字列に関連する全てのエントリーを消去する。これにより、複数の端末装置11が同一のコンテンツデータの名前(Content name)が記載されたコンテンツデータを取得しようとした場合、第2のゲートウェイ装置35から送信されるリクエストパケットの数を削減でき、かつデータパケットをすばやく端末装置11に送信することができる。
また、リクエスト状態保持部140のメモリ量を削減するために、実施の形態1と同様の処理を行うとしてもよい。この処理については上述した通りであるので、ここでの説明は省略する。
また、リクエスト変換部354が、リクエスト受信部353で受信したリクエストパケットを、第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むリクエストパケットに変換する前に第2文字列および第1文字列を含む文字列を取得した際、リクエスト状態保持部140は、例えば図6に示す項目1401(Original Content Name)に、当該第2文字列および第1文字列を含む文字列が記憶されたエントリーを既に保持している場合もある。この場合、リクエスト変換部354は、当該第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むリクエストパケットが既に送信されており、当該第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットの受信を待っている状態であるとして、リクエスト受信部353で受信したリクエストパケットを第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むリクエストパケットに変換しなくてよい。すなわち、リクエスト変換部354は、第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むリクエストパケットを新たに送信せず、データ受信部136は、当該第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むデータパケットの受信を待ってもよい。これにより、複数の端末装置11が同一の平文のコンテンツデータの名前(Content name)が記載されたコンテンツデータを取得しようとして、ほぼ同じ時刻にリクエストパケットを送信した場合でも、第2のゲートウェイ装置35から送信されるリクエストパケットの数を削減できる。
[第1のゲートウェイ装置の構成]
第1のゲートウェイ装置34は、実施の形態1で説明したゲートウェイ装置14に相当する。すなわち、リクエスト受信部133は、コンテンツデータの名前(暗号化されたコンテンツデータの名前)として、第1のゲートウェイ装置34(自装置)の名前を示す第2文字列および第1文字列を含む文字列を含むリクエストパケットを受信する。本実施の形態では、リクエスト受信部133は、インタフェース132を介して、第2文字列および第1文字列を含む文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むリクエストパケットを受信する。リクエスト変換部134は、リクエスト受信部133が受信したリクエストパケットから第1文字列を抽出し、抽出した第1文字列を所定の復号鍵で復号化し、復号した第1文字列を、コンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むリクエストパケットを生成することで、リクエスト受信部133が受信したリクエストパケットを変換する。リクエスト送信部135は、リクエスト変換部134により変換されたリクエストパケットをCCN網10に送信する。データ受信部136は、リクエスト送信部135が送信したリクエストパケットに対するコンテンツデータを含むデータパケットを受信する。データ送信部138は、データ変換部137により変換された第2文字列および第1文字列を含む文字列を名前として含むデータパケットを、リクエスト受信部133の受信したリクエストパケットを送信した第2のゲートウェイ装置35に向けて送信する。
なお、個々の構成要素の詳細な処理についても実施の形態1で説明した通りであるため、説明を省略する。
第1のゲートウェイ装置34からCCN網10に送信されたリクエストパケットは、中継装置12が持つ経路制御情報に従って、CCN網上で転送される。このコンテンツ提供装置13、もしくは、このリクエストパケットに対応するデータパケットをキャッシュ(記憶)している中継装置12は、上記リクエストパケットを受け取ると、第1のゲートウェイ装置34に向けて、このリクエストパケットに含まれる平文のコンテンツデータの名前(Content name)に対応するコンテンツデータ(データパケット)を送信する。
また、第1のゲートウェイ装置34からCCN網10に送信されたデータパケットは、データパケットに記載された名前を元に、中継装置12が持つリクエスト記憶部(PIT)に従って、第2のゲートウェイ装置35に転送される。
[端末装置の動作]
次に、上記のように構成された端末装置31の動作について説明する。
図17は、実施の形態3における端末装置の動作を示すフローチャートである。図17には、端末装置31の特徴的な動作であるリクエストパケットの送信までの動作について示されている。
まず、ユーザまたはアプリケーションは、所望のコンテンツ名を指定する。本実施の形態では、アプリケーション119が、端末装置31のリクエスト入力部115に、所望する平文のコンテンツデータの名前を入力する(S401)。
次に、端末装置31(リクエスト変換部354)は、平文のコンテンツデータの名前を第1暗号鍵で暗号化し、暗号化コンテンツ名(第1文字列)と、第1のゲートウェイ装置34の名前を示す文字列(第2文字列)とを含む文字列を生成する(S402)。
さらに、端末装置31(リクエスト変換部354)は、生成した文字列(第1文字列および第2文字列を含む文字列)を第2暗号鍵で暗号化した暗号化文字列(第3文字列)を、第2のゲートウェイ装置35の名前を示す文字列(第4文字列)の後に加えた文字列をコンテンツデータの名前(暗号化されたコンテンツデータの名前)として記載したリクエストパケットを生成する(S403)。
次に、端末装置31(リクエスト送信部113)は、生成したリクエストパケットをCCN網10に送信する(S403)。
このようにして、端末装置31は、通信の秘匿性を考慮したリクエストパケットを生成することができる。
[第2のゲートウェイ装置の動作]
次に、上記のように構成された第2のゲートウェイ装置35の動作について説明する。
図18は、実施の形態3における第2のゲートウェイ装置の動作を示すフローチャートである。図18には、第2のゲートウェイ装置35の特徴的な動作であるリクエストパケットの受信から送信までの動作について示されている。
まず、第2のゲートウェイ装置35は、自装置の名前を示す第4文字列を含むリクエストパケットを受信する(S501)。本実施の形態では、第2のゲートウェイ装置35(リクエスト受信部353)は、コンテンツデータの名前(暗号化されたコンテンツデータの名前)として、第2のゲートウェイ装置35(自装置)の名前を示す第4文字列の後に第3文字列を加えた文字列を含むリクエストパケットを受信する。
次に、第2のゲートウェイ装置35は、S501において受信したリクエストパケットから、第3文字列を抽出し(S502)、抽出した第3文字列を所定の復号鍵で復号化し(S503)、復号した第3文字列を、コンテンツデータの名前(暗号化されたコンテンツデータの名前)として含むリクエストパケットを生成する(S504)。
次に、第2のゲートウェイ装置35は、S504において生成されたリクエストパケットをCCN網10に送信する。
なお、以降の第1のゲートウェイ装置34での動作は、実施の形態1で説明した通りであるので、説明を省略する。
[実施の形態3の効果等]
以上のように、本実施の形態によれば、通信の秘匿性を考慮したリクエストパケットを用いることのできる端末装置、ゲートウェイ装置およびこれらの通信方法を実現することができる。
具体的には、本実施の形態によれば、端末装置と複数のゲートウェイ装置との間では、端末装置が取得したい平文のコンテンツデータの名前は暗号化された状態のリクエストパケットがやり取りされる。このため、どの端末装置がどのコンテンツデータに対してリクエストを送信したか、ゲートウェイ装置以外は判別できなくなり、端末装置に対する通信の秘匿性を確保することができる。
さらに、本実施の形態によれば、複数のゲートウェイ装置を多段的に経由することで、より通信の秘匿性を高めることができる。また、本実施の形態によれば、端末装置が送信するリクエストパケットに記載する名前の生成方法を工夫することで、ゲートウェイ装置同士が特別な連携をしなくても容易に通信の秘匿性を高められる効果を奏する。
さらに、本実施の形態によれば、端末装置31が行う平文のコンテンツデータの名前(Content name)に対する暗号化と、第1のゲートウェイ装置34が行う、暗号化されたコンテンツデータの名前である第1文字列(第一のEncrypt content name)の復号化や第2のゲートウェイ装置35が行う、第2文字列の後に第1文字列を付与した文字列を暗号化した第3文字列(第二のEncrypt content name)の復号化に、それぞれ公開鍵暗号方式の公開鍵と秘密鍵とを使いる。これによって、同じ公開鍵を使用する複数の端末装置31において、同一の平文のコンテンツデータの名前(Content name)に対する暗号化結果(第一のEncrypt content name)や第2文字列の後に第1文字列を付与した文字列に対する暗号化結果(第二のEncrypt content name)は同じになる。このため、第1のゲートウェイ装置34を示す名前(Gateway Prefix(1))や第2のゲートウェイ装置35を示す名前(Gateway Prefix(2))が同じであれば、同一コンテンツデータに対して、複数の端末装置31と第2のゲートウェイ装置35との間で使用される第4文字列の後に第3文字列が記載された文字列と、第1のゲートウェイ装置34と第2のゲートウェイ装置35の間で使用される第2文字列の後に第1文字列を付与した文字列とは同一になる。したがって、CCNの特徴である中継装置のリクエスト記憶部とデータ記憶部による効率よいデータ配信を維持しつつも、通信の秘匿性を確保することができる。
以上、本発明の一つまたは複数の態様に係る端末装置、ゲートウェイ装置および中継装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。
例えば、複数の端末装置31と第2のゲートウェイ装置35との間では、第4文字列の後に第3文字列が記載された文字列が使用されるとしたが、それに限らない。第4文字列と第3文字列とを含む文字列が記載されていればよい。また、第1のゲートウェイ装置34と第2のゲートウェイ装置35との間では、第2文字列の後に第1文字列を付与した文字列が使用されるとしたが、それに限らない。第2文字列と第1文字列とを含む文字列が記載されていればよい。
また、第1ゲートウェイ装置34の名前を示す文字として、Gateway prefix(1)を例に挙げたがそれに限らない。リクエストパケットに記載された場合に第1のゲートウェイ装置34に届く文字列であれば、第1のゲートウェイ装置34を示す名前の一部でも第1のゲートウェイ装置34に関連付けられる文字列でもよい。同様に、第2ゲートウェイ装置35の名前を示す文字として、Gateway prefix(2)を例に挙げたがそれに限らない。リクエストパケットに記載された場合に第2のゲートウェイ装置35に届く文字列であれば、第2のゲートウェイ装置35を示す名前の一部でも第2のゲートウェイ装置35に関連付けられる文字列でもよい。
また、例えば、以下のような場合も本発明に含まれる。
(1)上記のサーバ、ルータおよび受信端末(以下では各装置と総称)は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。