(57)【要約】      （修正有）【課題】コンピューティングエンティティ間のセキュアな通信を容易にするシステムを提供する。【解決手段】システムは、コンテンツ消費デバイスによって、第１の消費者共有鍵および以前に受信された生成者共有鍵に基づいて、第１の鍵を生成する。システムは、第１の消費者共有鍵と、以前に生成された第１のノンスの原像として使用されるノンストークンとを含む第１のインタレストパケットを構築し、第１のノンスは、コンテンツ消費デバイスとコンテンツ生成デバイスとの間のセッションを確立するために使用される。ノンストークンがコンテンツ生成デバイスによって検証されたのに応答して、システムは、第２の鍵に基づいて暗号化されている第１の再開指示子を含むペイロードを有する第１のコンテンツオブジェクトパケットを受信する。システムは、第２の消費者共有鍵および第１のコンテンツオブジェクトパケットに基づいて第２の鍵を生成する。【選択図】図３Ａ
2017085558.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングエンティティ間のセキュアな通信を容易にするためのコンピュータシステムであって、前記システムは、
プロセッサと、
前記プロセッサによって実行されると、前記プロセッサに方法を実施させる命令を記憶している記憶デバイスとを備え、前記方法は、
コンテンツ消費デバイスによって、第１の消費者共有鍵および以前に受信された生成者共有鍵に基づいて、第１の鍵を生成するステップと、
前記第１の消費者共有鍵、および、以前に生成された第１のノンスの原像として使用されるノンストークンを含む第１のインタレストパケットを構築するステップであって、前記第１のインタレストは第１のプレフィックスを含む名前を有し、前記第１のノンスは、前記コンテンツ消費デバイスとコンテンツ生成デバイスとの間のセッションを確立するために使用される、構築するステップと、
ノンストークンがコンテンツ生成デバイスによって検証されたのに応答して、第２の鍵に基づいて暗号化されている第１の再開指示子を含むペイロードを有する第１のコンテンツオブジェクトパケットを受信するステップと、
第２の消費者共有鍵および前記第１のコンテンツオブジェクトパケットに基づいて前記第２の鍵を生成するステップと
を含む、コンピュータシステム。
【請求項２】
前記ノンストークンは、前記第１の鍵および前記第１のノンスに基づいて検証される、請求項１に記載のコンピュータシステム。
【請求項３】
前記第１の鍵を生成するステップは、前記第１の消費者共有鍵および前記第１の生成者共有鍵に基づく鍵導出関数の実施にさらに基づき、
前記第２の鍵を生成するステップは、前記第２の消費者共有鍵および前記第１のコンテンツオブジェクトパケット内で指示される第２の生成者共有鍵に基づく前記導出関数の実施にさらに基づき、
前記方法は、前記第２の鍵に基づく拡張関数の実施に基づいて、
消費者特有の第２の鍵、
生成者特有の第２の鍵、
消費者特有の初期化ベクトル、および
生成者特有の初期化ベクトル
のうちの１つまたは複数を生成するステップをさらに含む、請求項１に記載のコンピュータシステム。
【請求項４】
前記方法は、
前記第１のプレフィックスおよび前記第１のノンスを含む名前と、初期ｈｅｌｌｏを指示するペイロードとを有する初期インタレストパケットを構築するステップと、
前記初期インタレストパケットに応答して、構成情報および前記第２のノンスを含むペイロードを有する初期コンテンツオブジェクトパケットを受信するステップであって、前記構成情報は前記第１の消費者共有鍵を指示し、前記第２のノンスは前記セッションを確立するために使用される、受信するステップと
をさらに含む、請求項１に記載のコンピュータシステム。
【請求項５】
前記初期コンテンツオブジェクトパケットの前記ペイロードは、前記第１のプレフィックスとは異なる第２のプレフィックスを含み、前記方法は、
前記第１のインタレストパケットの名前および前記セッションと関連付けられる後続のインタレストパケットの名前において前記第１のプレフィックスを前記第２のプレフィックスに置き換えるステップをさらに含む、請求項４に記載のコンピュータシステム。
【請求項６】
コンピューティングエンティティ間のセキュアな通信を容易にするためのコンピュータシステムであって、前記システムは、
プロセッサと、
前記プロセッサによって実行されると、前記プロセッサに方法を実施させる命令を記憶している記憶デバイスとを備え、前記方法は、
コンテンツ生成デバイスによって、第１の消費者共有鍵、および、以前に受信された第１のノンスの原像として使用されるノンストークンを含む第１のインタレストパケットを受信するステップであって、前記第１のインタレストは第１のプレフィックスを含む名前を有し、前記第１のノンスは、コンテンツ消費デバイスと前記コンテンツ生成デバイスとの間のセッションを確立するために使用される、受信するステップと、
前記第１の消費者共有鍵および第１の生成者共有鍵に基づいて第１の鍵を生成するステップと、
前記第１の鍵および前記第１のノンスに基づいて前記ノンストークンを検証するステップと、
前記第１のインタレストパケットおよび第２の生成者共有鍵に基づいて第２の鍵を生成するステップと、
前記第２の鍵に基づいて暗号化されている第１の再開指示子を含むペイロードを有する第１のコンテンツオブジェクトパケットを構築するステップと
を含む、コンピュータシステム。
【請求項７】
前記第１の鍵を生成するステップは、前記第１の消費者共有鍵および前記第１の生成者共有鍵に基づく鍵導出関数の実施にさらに基づき、
前記第２の鍵を生成するステップは、前記第１のインタレストパケット内で指示される第２の消費者共有鍵および前記第２の生成者共有鍵に基づく前記導出関数の実施にさらに基づき、
前記方法は、前記第２の鍵に基づく拡張関数の実施に基づいて、
消費者特有の第２の鍵、
生成者特有の第２の鍵、
消費者特有の初期化ベクトル、および
生成者特有の初期化ベクトル
のうちの１つまたは複数を生成するステップをさらに含む、請求項６に記載のコンピュータシステム。
【請求項８】
前記方法は、
前記第１のプレフィックスおよび前記第１のノンスを含む名前と、初期ｈｅｌｌｏを指示するペイロードとを有する初期インタレストパケットを受信するステップと、
前記初期インタレストパケットに応答して、構成情報および第２のノンスを含むペイロードを有する初期コンテンツオブジェクトパケットを構築するステップであって、前記構成情報は前記第１の消費者共有鍵を指示し、前記第２のノンスは前記セッションを確立するために使用される、構築するステップと
をさらに含む、請求項６に記載のコンピュータシステム。
【請求項９】
前記方法は、
前記初期コンテンツオブジェクトパケットの前記ペイロード内に、前記第１のプレフィックスとは異なる第２のプレフィックスを含めるステップをさらに含み、
前記第１のインタレストパケットの前記名前は前記第２のプレフィックスを含み、前記第２のプレフィックスは前記第１のプレフィックスに置き換わり、
前記セッションと関連付けられる後続のインタレストパケットの名前は、前記第２のプレフィックスを含む、請求項８に記載のコンピュータシステム。
【請求項１０】
前記第１のインタレストパケットの前記名前は、以前に生成された第２のノンスをさらに含み、前記第２のノンスは前記セッションを確立するために使用される、請求項６に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概してデジタルコンテンツの配信に関する。より詳細には、本開示は、鍵交換プロトコルに基づいてコンテンツ指向ネットワーク内にエンティティ間のセキュアな通信を容易にするためのシステムに関する。
【背景技術】
【０００２】
インターネットおよび電子商取引の広がりによって、膨大な量のデジタルコンテンツが生成され続けている。そのようなデジタルコンテンツへのアクセスおよびその処理を容易にするために、コンテンツ指向ネットワーク（ＣＣＮ）アーキテクチャが設計されている。ＣＣＮは、様々なコンテンツアイテムのインターネットパケットを送信し、引き換えにコンテンツオブジェクトパケットを受信することによって互いに通信するネットワーククライアント、転送器（たとえば、ルータ）、コンテンツ生成器のようなエンティティまたはノードを含む。ＣＣＮインタレストおよびコンテンツオブジェクトは、一般的には階層構造可変長識別子（ＨＳＶＬＩ）であるそれらの固有の名前によって識別される。ＨＳＶＬＩは、最も一般的なレベルから最も特定的なレベルへと順序付けされた連続する複数の名前構成要素を含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＴＣＰおよびＵＤＰのようなＩＰベースの通信において、２つの通信エンティティが、それらの個々のそれぞれのＩＰアドレスに基づいてセキュアなセッションを確立し、後続のメッセージを検証することができる。対照的に、ＣＣＮにおける通信は、ＩＰアドレスに基づかない。代わりにＣＣＮデータパケット（インタレストまたはコンテンツオブジェクトなど）が、パケットの名前に基づいてルーティングされる。したがって、ＣＣＮ内で通信するエンティティは、一時的セッションを安全に確立し、そのセッション内でデータを交換するために、ＩＰアドレスに依拠することができない。
【課題を解決するための手段】
【０００４】
一実施形態は、コンピューティングエンティティ間のセキュアな通信を容易にするシステムを提供する。動作中、システムは、コンテンツ消費デバイスによって、第１の消費者共有鍵および以前に受信された生成者共有鍵に基づいて、第１の鍵を生成する。システムは、第１の消費者共有鍵と、以前に生成された第１のノンスの原像として使用されるノンストークンとを含む第１のインタレストパケットを構築し、第１のインタレストは、第１のプレフィックスを含む名前を有し、第１のノンスは、コンテンツ消費デバイスとコンテンツ生成デバイスとの間のセッションを確立するために使用される。ノンストークンがコンテンツ生成デバイスによって検証されたのに応答して、システムは、第２の鍵に基づいて暗号化されている第１の再開指示子を含むペイロードを有する第１のコンテンツオブジェクトパケットを受信する。システムは、第２の消費者共有鍵および第１のコンテンツオブジェクトパケットに基づいて第２の鍵を生成する。
【０００５】
いくつかの実施形態において、ノンストークンは、第１の鍵および第１のノンスに基づいて検証される。
【０００６】
いくつかの実施形態において、第１の鍵の生成は、第１の消費者共有鍵および第１の生成者共有鍵に基づく鍵導出関数の実施にさらに基づき、第２の鍵の生成は、第２の消費者共有鍵および第１のコンテンツオブジェクトパケット内で指示される第２の生成者共有鍵に基づく導出関数の実施にさらに基づく。システムはまた、第２の鍵に基づく拡張関数の実施に基づいて、消費者特有の第２の鍵、生成者特有の第２の鍵、消費者特有の初期化ベクトル、および、生成者特有の初期化ベクトルのうちの１つまたは複数をも生成する。
【０００７】
いくつかの実施形態において、システムは、第１のプレフィックスおよび第１のノンスを含む名前と、初期ｈｅｌｌｏを指示するペイロードとを有する初期インタレストパケットを構築する。初期インタレストパケットに応答して、システムは、構成情報および第２のノンスを含むペイロードを有する初期コンテンツオブジェクトパケットを受信し、構成情報は、第１の消費者共有鍵を指示し、第２のノンスは、セッションを確立するために使用される。
【０００８】
いくつかの実施形態において、初期コンテンツオブジェクトパケットのペイロードは、第１のプレフィックスとは異なる第２のプレフィックスを含む。システムは、第１のインタレストパケットの名前およびセッションと関連付けられる後続のインタレストパケットの名前において、第１のプレフィックスを第２のプレフィックスに置き換える。
【０００９】
いくつかの実施形態において、第１のインタレストパケットの名前は、以前に受信された第２のノンスをさらに含み、第２のノンスはセッションを確立するために使用される。
【００１０】
いくつかの実施形態において、システムは、以前に受信されたセッション識別子を含む名前と、消費者特有の第２の鍵に基づいて暗号化されているペイロードとを有する第２のインタレストパケットを構築する。第２のインタレストパケットに応答して、システムは、生成者特有の第２の鍵に基づいて暗号化されているペイロードを有する第２のコンテンツオブジェクトパケットを受信し、消費者特有の第２の鍵および生成者特有の第２の鍵は、第２の鍵に対する拡張関数の実施に基づいて生成される。
【００１１】
いくつかの実施形態において、第１のコンテンツオブジェクトパケットのペイロードは、ｍｏｖｅトークンおよび第１のプレフィックスとは異なる第３のプレフィックスを指示する。システムは、第２のインタレストパケットの名前およびセッションと関連付けられる後続のインタレストパケットの名前において、第１のプレフィックスを第３のプレフィックスに置き換え、第２のインタレストパケットのペイロードにおいてｍｏｖｅトークンを指示する。
【００１２】
いくつかの実施形態において、第２のコンテンツオブジェクトパケットのペイロードは、消費者と生成者との間の後に再開されるセッションのための第２の再開指示子を含む。
【００１３】
いくつかの実施形態において、システムは、第１のコンテンツオブジェクトパケットのペイロードを解読する。解読されたペイロードが拒絶を指示しないという判定に応答して、システムは、肯定応答および第２の生成者共有鍵を得る。
【００１４】
別の実施形態は、コンピューティングエンティティ間のセキュアな通信を容易にするシステムを提供する。動作中、システムは、コンテンツ生成デバイスによって、第１の消費者共有鍵と、以前に受信された第１のノンスの原像として使用されるノンストークンとを含む第１のインタレストパケットを受信し、第１のインタレストは、第１のプレフィックスを含む名前を有し、第１のノンスは、コンテンツ消費デバイスとコンテンツ生成デバイスとの間のセッションを確立するために使用される。システムは、第１の消費者共有鍵および第１の生成者共有鍵に基づいて第１の鍵を生成する。システム、第１の鍵および第１のノンスに基づいてノンストークンを検証する。システムはその後、第１のインタレストパケットおよび第２の生成者共有鍵に基づいて第２の鍵を生成する。システムはまた、第２の鍵に基づいて暗号化されている第１の再開指示子を含むペイロードを有する第１のコンテンツオブジェクトパケットをも構築する。
【００１５】
いくつかの実施形態において、システムは、第１のプレフィックスおよび第１のノンスを含む名前と、初期ｈｅｌｌｏを指示するペイロードとを有する初期インタレストパケットを受信する。初期インタレストパケットに応答して、システムは、構成情報および第２のノンスを含むペイロードを有する初期コンテンツオブジェクトパケットを構築し、構成情報は、第１の消費者共有鍵を指示し、第２のノンスは、セッションを確立するために使用される。
【００１６】
いくつかの実施形態において、システムは、初期コンテンツオブジェクトパケットのペイロード内に、第１のプレフィックスとは異なる第２のプレフィックスを含め、第１のインタレストパケットの名前は第２のプレフィックスを含み、第２のプレフィックスは第１のプレフィックスに置き換わる。さらに、セッションと関連付けられる後続のインタレストパケットの名前は、第２のプレフィックスを含む。
【００１７】
いくつかの実施形態において、システムは、第２の鍵に基づいてセッション識別子を生成する。システムは、セッション識別子を含む名前と、消費者特有の第２の鍵に基づいて暗号化されているペイロードとを有する第２のインタレストパケットを受信する。第２のインタレストパケットに応答して、システムは、生成者特有の第２の鍵に基づいて暗号化されているペイロードを有する第２のコンテンツオブジェクトパケットを構築し、消費者特有の第２の鍵および生成者特有の第２の鍵は、第２の鍵に対する拡張関数の実施に基づいて生成される。
【００１８】
いくつかの実施形態において、システムは、第１のコンテンツオブジェクトパケットのペイロード内で、ｍｏｖｅトークンおよび第１のプレフィックスとは異なる第３のプレフィックスを指示し、第２のインタレストパケットの名前は第１のプレフィックスの代わりに第３のプレフィックスを含み、第２のインタレストパケットのペイロードはｍｏｖｅトークンを指示する。
【００１９】
いくつかの実施形態において、新たな再開指示子の必要性の識別に応答して、システムは、消費者と生成者との間の後に再開されるセッションにおいて使用するための新たな再開指示子を生成する。システムは、第２のコンテンツオブジェクトパケットのペイロード内に、生成者特有の第２の鍵に基づいて暗号化されている新たな再開指示子を含める。
【００２０】
いくつかの実施形態において、ノンストークンの検証は、第１の鍵に基づく第１のインタレストパケットのペイロードの解読と、結果を得るためのノンストークンに対するハッシュ関数の実施と、結果が第１のノンスに一致するか否かの検証とをさらに含む。
【００２１】
いくつかの実施形態において、結果が第１のノンスに一致するという判定に応答して、システムは、第１のコンテンツオブジェクトパケットのペイロード内に、肯定応答および第２の生成者共有鍵を含める。結果が第１のノンスに一致しないという判定に応答して、システムは、第１のコンテンツオブジェクトパケットのペイロード内に、拒絶および拒絶の理由を含める。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明の一実施形態による、コンテンツ指向ネットワークにおけるコンピューティングエンティティ間のセキュアな通信を容易にする例示的なネットワークを示す図である。
【図２Ａ】図２Ａは、本発明の一実施形態による、消費者と生成者との間の例示的な通信を提示する図である。
【図２Ｂ】図２Ｂは、本発明の一実施形態による、生成者がリダイレクトプレフィックスを提供する、消費者と生成者との間の例示的な通信を提示する図である。
【図２Ｃ】図２Ｃは、本発明の一実施形態による、生成者がセッションリダイレクトプレフィックスおよびｍｏｖｅトークンを提供する、消費者と生成者との間の例示的な通信を提示する図である。
【図２Ｄ】図２Ｄは、本発明の一実施形態による、生成者が更新済み再開クッキーを提供する、消費者と生成者との間の例示的な通信を提示する図である。
【図３Ａ】図３Ａは、本発明の一実施形態による、コンテンツ生成デバイスとのセキュアな通信を容易にするためのコンテンツ消費デバイスによる方法を示す流れ図である。
【図３Ｂ】図３Ｂは、本発明の一実施形態による、コンテンツ生成デバイスとのセキュアな通信を容易にするためのコンテンツ消費デバイスによる方法を示す流れ図である。
【図４Ａ】図４Ａは、本発明の一実施形態による、コンテンツ消費デバイスとのセキュアな通信を容易にするためのコンテンツ生成デバイスによる方法を示す流れ図である。
【図４Ｂ】図４Ｂは、本発明の一実施形態による、コンテンツ消費デバイスとのセキュアな通信を容易にするためのコンテンツ生成デバイスによる方法を示す流れ図である。
【図５Ａ】図５Ａは、本発明の一実施形態による、最初のｈｅｌｌｏを指示するインタレストパケットの例示的なペイロードフォーマットを示す図である。
【図５Ｂ】図５Ｂは、本発明の一実施形態による、最初のｈｅｌｌｏのインタレストパケットに応答したコンテンツオブジェクトパケットの例示的なペイロードフォーマットを示す図である。
【図５Ｃ】図５Ｃは、本発明の一実施形態による、生成者の構成情報を指示するデータ構造の例示的なフォーマットを示す図である。
【図５Ｄ】図５Ｄは、本発明の一実施形態による、将来の通信のためのフォワードセキュア鍵を確立するための全ｈｅｌｌｏを指示するインタレストパケットの例示的なペイロードフォーマットを示す図である。
【図５Ｅ】図５Ｅは、本発明の一実施形態による、将来の通信のためのフォワードセキュア鍵を確立するための全ｈｅｌｌｏインタレストパケットに応答したコンテンツオブジェクトパケットの例示的なペイロードフォーマットを示す図である。
【図６Ａ】図６Ａは、本発明の一実施形態による、コンテンツ指向ネットワークにおけるコンピューティングエンティティ間のセキュアな通信を容易にする例示的なコンピュータシステムを示す図である。
【図６Ｂ】図６Ｂは、本発明の一実施形態による、コンテンツ指向ネットワークにおけるコンピューティングエンティティ間のセキュアな通信を容易にする例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【００２３】
図面において、同様の参照符号は同じ図面要素を指す。
【００２４】
以下の説明は、任意の当業者が、本実施形態を作成および使用することを可能にするために提示され、特定の用途およびその要件の文脈において提供されている。開示される実施形態の様々な改変が当業者には容易に諒解され、本明細書において定義されている一般原理は、本発明の精神および範囲から逸脱することなく、他の実施形態および用途に適用することができる。したがって、本発明は、示されている実施形態には限定されず、本明細書において開示されている原理および特徴と一致する最も広い範囲を与えられるべきである。
【００２５】
概説
本発明の実施形態は、鍵交換プロトコルに基づいてＣＣＮ内の２つのエンティティ間のデータの認証付き暗号化のためのセキュアセッション鍵を確立するシステムを提供する。従来のＩＰベースの通信（たとえば、ＴＣＰおよびＵＤＰ）においては、２つの通信エンティティが、それらの個々のＩＰアドレスに基づいてセッションを確立し、後続の通信を検証することができる。対照的に、ＣＣＮにおいては、通信はＩＰアドレスに基づかない。代わりに、ＣＣＮデータパケットがパケット名に基づいてルーティングされる。２つの通信するＣＣＮエンティティは、一時的セッションを安全に確立し、後続のメッセージが同じセッションに属することを保証するために、ＩＰアドレスに依拠することができない。
【００２６】
本発明の実施形態は、鍵交換プロトコルに基づいて２つのＣＣＮエンティティ（たとえば、消費者および生成者）間の安全な一時的セッションを確立し、すべてのメッセージをこの安全なセッションにバインドするシステムを提供することによって、この問題に対処する。このプロトコルは、相互認証を可能にし、エンティティ間の通信のプライバシーおよび完全性を保護する対称フォワードセキュアセッション鍵（「ＦＳＫ」）を確立する。ＦＳＫは、たとえ長期鍵のうちの１つが危険に晒されるとしても、ＦＳＫが危険に晒されることを防止するように、短期鍵および長期鍵のセットから導出される共有対称鍵である。言い換えれば、ＦＳＫは、将来秘密鍵が危険に晒されることに対して過去のセッションを保護する。したがって、暗号化された過去の通信は、たとえ長期秘密鍵が将来危険に晒されるとしても、取り出し解読することはできない。短期鍵および長期鍵に基づくＦＳＫ生成の詳細な説明は、図２Ａおよび図５Ａ〜図５Ｅに関連して下記に与えられる。
【００２７】
ＴＣＰまたはＵＤＰオーバＩＰに基づく以前のトランスポートネットワーク層プロトコルは、トランスポート層セキュリティ（ＴＬＳ）およびクイックＵＤＰインターネット接続（ＱＵＩＣ）を含む。ＴＬＳは、Ｒｅｓｃｏｒｌａ，Ｅ．「Ｔｈｅ  Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ（ＴＬＳ）Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  １．３」（２０１５年８月）に記載されており、ＱＵＩＣは、Ｉｙｅｎｇａｒ，Ｊ．およびＩ．Ｓｗｅｔｔ「ＱＵＩＣ：Ａ  ＵＤＰ−Ｂａｓｅｄ  Ｓｅｃｕｒｅ  ａｎｄ  Ｒｅｌｉａｂｌｅ  Ｔｒａｎｓｐｏｒｔ  ｆｏｒ  ＨＴＴＰ／２」（２０１５年１２月）に記載されている。以前のＴＣＰベースのプロトコルＴＬＳは、単一の継続したメッセージ交換であることの証明を与えるためにＴＣＰ３方向ハンドシェイクを使用し、一方で、以前のＵＤＰベースのプロトコルＱＵＩＣは、鍵交換手順の間にアドレスの所有権を証明するために、消費者によって提示されなければならないセッションアドレストークンを使用する。対照的に、本発明の実施形態は、単一の継続したメッセージ交換であることの証明として、インタレスト名内に逆ハッシュ連結ノンスを提供する。
【００２８】
本発明の鍵交換プロトコルは、初期ブートストラップが必要とされるとき、最大２ラウンドトリップタイム（「ＲＴＴ」）を必要とする。いくつかの事例においては、１ＲＴＴしか必要とされない場合がある（たとえば、特定のブートストラップがすでに実施されているとき）。鍵交換プロトコルは、加速された開始（たとえば、ＦＳＫを導出するために必要な情報が以前に交換されているとき）およびセッション再開（たとえば、消費者が中断されたセッションを後に再開することを所望するとき）の事例においては、ゼロＲＴＴをも可能にする場合がある。たとえば、生成者は、その裁量において、消費者が後に再開されるセッションにおいて使用するための新たな再開クッキーを生成および提供することができ、したがって、ゼロＲＴＴセッション再開が可能になる。加えて、鍵交換プロトコルは、エンドツーエンドマイグレーションおよびセッションマイグレーションを可能にする。エンドツーエンドマイグレーションは、生成者が、消費者を異なるエンティティにリダイレクトする（たとえば、鍵交換を、異なる名前プレフィックスを有する異なるサービスに引き渡す）ことを可能にする。セッションマイグレーションは、生成者が、最初に確立されたセキュリティコンテキストを新たなサービスに移行する（たとえば、セッションセキュリティおよび後続のコンテンツの通信を、異なる名前プレフィックスを有する異なるサービスに引き渡す）ことを可能にする。
【００２９】
以下の用語は、ＣＣＮアーキテクチャの要素を説明する。
【００３０】
コンテンツオブジェクトまたは「ｃｏｎｔｅｎｔ  ｏｂｊｅｃｔ」：固有の名前に結びつけられる単一の名前付きデータ片。コンテンツオブジェクトは「持続性」であり、これは、コンテンツオブジェクトがコンピューティングデバイス内を、または、複数の異なるコンピューティングデバイスにわたって移動することができるが、変化はしないことを意味する。コンテンツオブジェクトの任意の構成要素が変化する場合、変更を行ったエンティティが、更新されたコンテンツを含む新たなコンテンツオブジェクトを生成し、新たなコンテンツオブジェクトを新たな固有の名前に結びつける。
【００３１】
固有の名前：ＣＣＮにおける名前は一般的に位置独立であり、コンテンツオブジェクトを一意に識別する。データ転送デバイスは、この名前または名前プレフィックスを使用して、コンテンツオブジェクトのネットワークアドレスまたは物理的位置にかかわりなく、コンテンツオブジェクトを生成または記憶するネットワークノードに向けてパケットを転送することができる。いくつかの実施形態において、名前は、階層構造可変長識別子（ＨＳＶＬＩ）であってもよい。ＨＳＶＬＩは、様々な方法で構造化することができるいくつかの階層構成要素に分割することができる。たとえば、個々の名前構成要素ｐａｒｃ、ｈｏｍｅ、ｃｃｎ、およびｔｅｓｔ．ｔｘｔは、左にいくほど上位プレフィックスとなるように構造化して、名前「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」を形成することができる。したがって、名前「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」は、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」の「親」または「プレフィックス」とすることができる。追加の構成要素を使用して、協同文書のようなコンテンツアイテムの複数の異なる文書間で区別を行うことができる。
【００３２】
いくつかの実施形態において、名前は、コンテンツオブジェクトのデータ（たとえば、チェックサム値）および／またはコンテンツオブジェクトの名前の要素から導き出されるハッシュ値のような非階層識別子を含むことができる。名前は、フラットなラベルとすることもできる。以降、「名前」は、階層型の名前または名前プレフィックス、フラットな名前、固定長の名前、任意長の名前、またはラベル（たとえば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）のような、名前データネットワーク内のデータ片の任意の名前を指すのに使用される。
【００３３】
インタレストまたは「ｉｎｔｅｒｅｓｔ」：データ片を求める要求を示し、そのデータ片の名前（または名前プレフィックス）を含むパケット。データ消費者は、情報指向ネットワークにわたって要求またはインタレストを広めることができ、この要求またはインタレストは、ＣＣＮルータが要求またはインタレストを満たすために、記憶デバイス（たとえば、キャッシュサーバ）、または、要求されているデータを提供することができるデータ生成者に向けて伝搬することができる。
【００３４】
本明細書に開示する方法は、ＣＣＮネットワークには限定されず、他のアーキテクチャにも同様に適用可能である。ＣＣＮアーキテクチャの説明は、米国特許出願第１２／３３８，１７５号明細書に記載されている。
【００３５】
例示的なネットワークおよび例示的な通信の概説
図１は、本発明の一実施形態による、コンテンツ指向ネットワークにおけるコンピューティングエンティティ間のセキュアな通信を容易にする例示的なネットワーク１００を示す。ネットワーク１００は、消費者またはコンテンツ消費デバイス１１６と、生成者またはコンテンツ生成デバイス１１８と、ノード１０２、１０４、１０６、１０８、１１０、１１２、および１１４にあるルータまたは他の転送デバイスとを含むことができる。ノードは、コンピュータシステム、ユーザを表すエンドポイント、および／または、インタレストを生成しもしくはコンテンツを創出することができるデバイスであってもよい。ノードはまた、エッジルータ（たとえば、ＣＣＮノード１０２、１０４、１１２、および１１４）またはコアルータ（たとえば、中間ＣＣＮルータ１０６〜１１０）であってもよい。動作中、消費者（たとえば、デバイス１１６）は、鍵交換プロトコルに基づいて生成者（たとえば、デバイス１１８）との一時的セッションの確立を開始することができる。全交換は、消費者と生成者との間で３回の通信を必要とし得る。第１の回において、エンティティは、生成者の公開パラメータおよび構成情報を得るために、初期ｈｅｌｌｏ交換を実施する。構成情報は、生成者によって生成される長期暗号材料を含むことができ、第１の短期秘密鍵（「ＳＳ鍵」）を生成するために使用される。第２の回において、エンティティは、全ｈｅｌｌｏハンドシェイクを交換し、フォワードセキュア鍵（「ＦＳＫ」）を確立する。第３の回において、エンティティは、ＦＳＫに基づいて暗号化されているアプリケーションデータの交換を開始することができる。
【００３６】
各回の簡潔な概説は、図１に関連して下記に説明され、各回の詳細な説明は、図２Ａに関連して下記に説明される。第１の回において、消費者１１６は、「／ｐｒｅｆｉｘ／ｎｏｎｃｅ１」の名前を有するインタレスト２１１を生成し、インタレスト２１１をノード１０４に送信することができる。ノード１０４は、インタレスト２１１のエントリをそのペンディングインタレストテーブル（ＰＩＴ）内に追加し、インタレスト２１１をノード１０８および１１２に送信することができ、それらのノードの各々は、同様の動作を実施する。ノード１１２は、インタレスト２１１を生成者１１８に送信することができる。生成者１１８は、同じ名前と、第１の秘密鍵の作成に使用するための暗号長期鍵を含むデータ構造であるＣＯＮＦＩＧ２１２．１（たとえば、ＳＳ鍵）、セッションの後続のインタレストにおける検証に使用されることになる第２のノンスであるｎｏｎｃｅ２  ２１２．２、および、後続の要求のための別のサーバへのリダイレクトを指示するために使用することができる任意選択のｐｒｅｆｉｘ２  ２１２．３を含むペイロードとを有するコンテンツオブジェクト２１２を返信することによって、初期ｈｅｌｌｏを確定し、インタレスト２１１を満足することができる。コンテンツオブジェクト２１２は、インタレスト２１１と逆の経路を進み（たとえば、ノード１１２、１０８、および１０４を介して消費者１１６に戻る）、各中間ノードはそれに従ってそのＰＩＴを更新する。
【００３７】
第２の回において、消費者１１６は、「／ｐｒｅｆｉｘ／ｎｏｎｃｅ２」の名前を有するインタレスト２１３（生成者１１８から以前に受信されたｎｏｎｃｅ２  ２１２．２を含む）を生成することができる。インタレスト２１３は、インタレスト２１１の名前において与えられている、以前に生成された「ｎｏｎｃｅ１」の原像であるＮｏｎｃｅＴｏｋｅｎ２１３．１を含むことができる。たとえば、ＮｏｎｃｅＴｏｋｅｎをハッシュすることによって、ｎｏｎｃｅ１：Ｈ（ＮｏｎｃｅＴｏｋｅｎ）＝ｎｏｎｃｅ１が生成される。生成者１１８は、インタレスト２１３を受信し、ＮｏｎｃｅＴｏｋｅｎを検証し、ＳｅｓｓｉｏｎＩＤ２１４．１を生成すること、および、任意選択的にｐｒｅｆｉｘ３  ２１４．２およびＭｏｖｅＴｏｋｅｎ２１４．３を生成することによってコンテンツオブジェクト２１４を作成することができる。Ｐｒｅｆｉｘ３  ２１４．２およびＭｏｖｅＴｏｋｅｎ２１４．３は、後続のデータ交換のためのセキュリティコンテキストの認証のための別のサーバへのマイグレーションを指示するために使用することができる。生成者１１８は、図２Ａに関連して下記に説明されるように、ＦＳＫを生成し、ＦＳＫに基づいてデータの暗号化を開始することができる。消費者１１６はその後、コンテンツオブジェクト２１４を受信し、同じくＦＳＫを生成することができる。
【００３８】
第３の回において、消費者１１６および生成者１１８は、ＦＳＫに基づいて暗号化されているアプリケーションデータの交換を開始することができる。たとえば、消費者１１６は、「／ｐｒｅｆｉｘ／ｓｅｓｓｉｏｎＩＤ」の名前（生成者１１８から以前に受信されたＳｅｓｓｉｏｎＩＤ２１４．１を含む）およびＦＳＫを用いて暗号化されているデータを有するインタレストを作成することができる。生成者１１８は、インタレスト２１５を受信し、ＦＳＫを用いて暗号化されているデータ２１６．１を含むコンテンツオブジェクト２１６を生成することができる。生成者１１８は、任意選択的に、コンテンツオブジェクト２１６内に、消費者が後続のセッションを効率的に再開するために使用されるための再開クッキー２１６．２を含めることができる。
【００３９】
例示的な通信の詳細な説明
図２Ａは、本発明の一実施形態による、消費者と生成者との間の例示的な通信２００を提示する。「｛ｘ｝＿ＫＥＹ」は、ｘがＫＥＹに基づいて暗号化されていることを指示することに留意されたい。動作中、消費者１１６および生成者１１８は、相互認証を可能にし、共有対称ＦＳＫを生成する安全な一時的セッションを確立する。通信２００は、３回のインタレストパケットおよびコンテンツオブジェクトパケットの交換、すなわち、１回目（２０１）、２回目（２０２）、および３回目（２０３）を含む。１回目において、消費者１１６は、「／ｐｒｅｆｉｘ／ｎｏｎｃｅ１」の名前を有するインタレスト２１１を作成し、「ｐｒｅｆｉｘ」は生成者１１８のためのルーティング可能なプレフィックスであり、「ｎｏｎｃｅ１」は、ＳＨＡ−２５６を使用してランダム入力ＮｏｎｃｅＴｏｋｅｎ（後に使用される）にわたって計算される３２バイトのハッシュダイジェストである。インタレスト２１１のペイロードは、ｈｅｌｌｏメッセージを指示する。インタレスト２１１の受信に応答して、生成者１１８は、同じ名前（「／ｐｒｅｆｉｘ／ｎｏｎｃｅ１」）と、以下のデータ、すなわち、第１の生成者共有鍵を含む生成者１１８の構成ファイル（「ＣＯＮＦＩＧ」）、そのセッションにおいて後続するメッセージ内で使用することができる「ｎｏｎｃｅ２」、および、短期秘密（「ＳＳ」）鍵を導出するときに使用するための任意選択の３２バイトのソルトである「ｐｓａｌｔ」を有するペイロードとを有するコンテンツオブジェクト２１２を生成する。インタレスト２１１およびコンテンツオブジェクト２１２のすべての可能なフィールドの説明は、図５Ａ、図５Ｂ、および図５Ｃに関連して下記に記載される。
【００４０】
コンテンツオブジェクト２１２が受信されると、消費者１１６は、「／ｐｒｅｆｉｘ／ｎｏｎｃｅ２」（「ｎｏｎｃｅ２」はコンテンツオブジェクト２１２において生成者１１８によって以前に与えられている）の名前と、第１の消費者共有鍵（ＳＳ鍵の生成において使用するための「ＣｌｉｅｎｔＳｈａｒｅ１」）、ならびに、以前に受信されたＣＯＮＦＩＧファイルに基づいて使用するための消費者によって選択されるアルゴリズムを指示するＡｌｇｏｒｉｔｈｍＯｐｔｉｏｎｓ、以前に生成された「ｎｏｎｃｅ１」の原像であるＮｏｎｃｅＴｏｋｅｎ、および、ＦＳＫの生成において使用するための第２の消費者共有鍵（「ＣｌｉｅｎｔＳｈａｒｅ２」）のような暗号化消費者パラメータを含むペイロードとを有するインタレスト２１３を生成することによって、２回目を開始する。消費者１１６は、第１の消費者共有鍵および第１の生成者共有鍵（ＣＯＮＦＩＧファイル内に含まれている）に対して実施される鍵導出関数に基づいてＳＳ鍵を生成し、ＳＳ鍵に基づいてクライアントパラメータを暗号化する。鍵導出関数は、Ｋｒａｗｃｚｙｋ，Ｈ．およびＰ．Ｅｒｏｎｅｎ「ＨＭＡＣ−ｂａｓｅｄ  Ｅｘｔｒａｃｔ−ａｎｄ−Ｅｘｐａｎｄ  Ｋｅｙ  Ｄｅｒｉｖａｔｉｏｎ  Ｆｕｎｃｔｉｏｎ（ＨＫＤＦ）」（ＲＦＣ  ５８６９，ＤＯＩ  １０．１７４８７，Ｍａｙ  ２０１０）（以下「ＲＦＣ  ５８６９」）に記載されているようなハッシュベース鍵導出関数（ＨＫＤＦ）であってもよい。
【００４１】
生成者１１８はインタレスト２１３を受信し、第１の消費者共有鍵（インタレスト２１３のペイロード内にクリアテキストとして含まれている）および第１の生成者共有鍵（生成者が保持しており、ＣＯＮＦＩＧファイル内にも含まれている）に対して実施される同じ鍵導出関数に基づいてＳＳ鍵を生成する。生成者１１８は、ＡｌｇｏｒｉｔｈｍＯｐｔｉｏｎｓ、ＮｏｎｃｅＴｏｋｅｎ、およびＣｌｉｅｎｔＳｈａｒｅ２を得るために、クライアントパラメータを解読する。いくつかの実施形態において、生成者１１８は、ｎｏｎｃｅ２のｎｏｎｃｅ１に対するマッピングを維持し、受信されたインタレスト２１３内のｎｏｎｃｅ２がこのマッピングに対応することを確認する。生成者１１８は、ＮｏｎｃｅＴｏｋｅｎに対して実施されるハッシュ関数が、結果として、“ｎｏｎｃｅ１”：Ｈ（ＮｏｎｃｅＴｏｋｅｎ）＝ｎｏｎｃｅ１をもたらすことを検証する。そうでない場合、生成者１１８は拒絶および拒絶の理由を有するコンテンツオブジェクト２１４を返す。そうである場合、生成者１１８は、第２の消費者共有鍵（たとえば、ＣｌｉｅｎｔＳｈａｒｅ２）および生成者が保持している第２の生成者共有鍵（たとえば、ＳｅｒｖｅｒＳｈａｒｅ２）に対して実施される鍵導出関数に基づいてＦＳＫ鍵を生成する。生成者１１８は、ＦＳＫに対して拡張関数を実施することによって、消費者特有のＦＳＫ（ＦＳＫ−Ｃ）および生成者特有のＦＳＫ（ＦＳＫ−Ｐ）をさらに生成する。たとえば、拡張関数は、ＲＦＣ５８６９に記載されているＨＫＤＦ拡張関数であってもよい。生成者１１８は、ＦＳＫ−Ｐを用いて再開クッキーを暗号化することができ、セッション識別子を生成することもできる。生成者１１８は、コンテンツオブジェクト２１４のペイロード内に、ＦＳＫ−Ｐに基づいて暗号化されている再開クッキー、ならびに、ＳＳ鍵に基づいて暗号化されているＡＣＫおよび第２の生成者共有鍵を含めることができる。インタレスト２１３およびコンテンツオブジェクト２１４のすべての可能なフィールドの説明は、図５Ｄおよび図５Ｅに関連して下記に記載される。
【００４２】
最後に、コンテンツオブジェクト２１４が受信されると、消費者１１６は、３回目を開始することができる。消費者１１６は、ＳＳ鍵に基づいてＡＣＫおよび第２の生成者共有鍵（ＳｅｒｖｅｒＳｈａｒｅ２）を解読して得ることができ、その後、第２の消費者共有鍵（ＣｌｉｅｎｔＳｈａｒｅ２）および得られた第２の生成者共有鍵（ＳｅｒｖｅｒＳｈａｒｅ２）を使用してＨＫＤＦに基づいてＦＳＫを生成することができる。消費者１１６はまた、ＦＳＫ−ＣおよびＦＳＫ−Ｐを得るために同じ拡張関数を実施することもできる。消費者１１６は、その後、後に再開されるセッションにおいて後に使用するために、ＦＳＫ−Ｐに基づいて第１の再開クッキーを解読して得ることができる。この時点において、消費者１１６は、生成者１１８から以前に受信されたセッション識別子、および、任意選択的に、ＦＳＫ−Ｃに基づいて暗号化されている１つまたは複数の名前構成要素を含む「ｐｒｅｆｉｘ／ｓｅｓｓｉｏｎＩＤ／｛・・・｝＿ＦＳＫ−Ｃ」の名前を有するインタレスト２１５を生成することができる。消費者１１６は、ＦＳＫ−Ｃに基づいてインタレスト２１５のペイロード（「ＣｏｎｓｕｍｅｒＤａｔａ」）をさらに暗号化し、インタレスト２１５を生成者１１８に送信することができる。生成者１１８は、インタレスト２１５を受信し、ＦＳＫ−Ｃに基づいてペイロード（および任意の暗号化名前構成要素）を解読し、ＦＳＫ−Ｐに基づいて暗号化されている「ＰｒｏｄｕｃｅｒＤａｔａ」を含むペイロードを有する応答コンテンツオブジェクト２１６を作成することができる。生成者１１８は、コンテンツオブジェクト２１６を消費者１１６に送信することができ、消費者１１６は、ＦＳＫ−Ｐに基づいてペイロードを解読することができる。
【００４３】
図２Ｂは、本発明の一実施形態による、生成者がリダイレクトプレフィックスを提供する、消費者１１６と生成者１１８との間の例示的な通信２２０を提示する。通信２２０は、図２Ａの通信２００と類似しており、差異が太字で記載されている。動作中、１回目（２２１）において、インタレスト２３１の受信に応答して、生成者１１８は、セッションを異なるエンドポイントにマイグレーションすることを決定することができる。生成者１１８は、２回目（２２２）においてセッション確立を継続するとき、消費者１１６によって生成者１１８のルーティング可能な「ｐｒｅｆｉｘ」の代わりに使用されることになる「ｐｒｅｆｉｘ２」を含むコンテンツオブジェクト２３２を生成することができる。２回目およびすべての後続する回（たとえば、３回目（２２３））において、消費者１１６は、それぞれインタレスト２３３およびインタレスト２３５において、生成者１１８のルーティング可能なプレフィックスとして「ｐｒｅｆｉｘ２」を使用する。生成者１１８は、消費者１１６を異なるプレフィックスにリダイレクトし、したがって、エンドツーエンドマイグレーションが可能になる。
【００４４】
図２Ｃは、本発明の一実施形態による、生成者がセッションリダイレクトプレフィックスおよびｍｏｖｅトークンを提供する、消費者１１６と生成者１１８との間の例示的な通信２４０を提示する。通信２４０は、図２Ａの通信２００と類似しており、差異が太字で記載されている。動作中、１回目（２４１）は、図２Ａの１回目（２０１）と同じである。２回目（２４２）において、インタレスト２５３の受信に応答して、生成者１１８は、セッションセキュリティを異なるコンテンツ生成者ピアに引き渡すことによって、セッションを移行することを決定することができる。生成者１１８は、コンテンツオブジェクト２５４の暗号化消費者パラメータ内に、（たとえば、３回目（２４３）において）さらなるインタレストを送信するときに、消費者１１６によって生成者１１８のルーティング可能な「ｐｒｅｆｉｘ」の代わりに使用するための「ｐｒｅｆｉｘ３」を含めることができる。加えて、生成者１１８は、３回目（２４３）のインタレスト２５５におけるように、必要なセキュリティコンテキストを、マイグレーションされる生成者ピアに提供するために消費者１１６が使用するための「ＭｏｖｅＴｏｋｅｎ」を含めることができる。生成者１１８は、消費者１１６を異なるプレフィックスにリダイレクトし、消費者が認証され、鍵材料が交換された後に、セッションを生成者ピアに引き渡し、したがって、セッションマイグレーションが可能になる。
【００４５】
図２Ｄは、本発明の一実施形態による、生成者が更新済み再開クッキーを提供する、消費者１１６と生成者１１８との間の例示的な通信２６０を提示する。通信２６０は、図２Ａの通信２００と類似しており、差異が太字で記載されている。動作中、１回目（２６１）および２回目（２６２）はそれぞれ、図２Ａの１回目（２０１）および２回目（２０２）と同じである。３回目（２６３）において、インタレスト２７５の受信に応答して、生成者１１８は、その裁量において、新たな再開クッキーを生成することを決定し、コンテンツオブジェクト２７６内に、ＦＳＫ−Ｐに基づいて暗号されている新たな再開クッキーを含めることができる。セッションが中断された（たとえば、ウェブブラウザが閉じられた、または、ユーザのアプリケーションがフリーズしたかもしくは他の様態で中断された）場合、消費者１１６はその後、新たな再開クッキーを使用することによって、ゼロＲＴＴでセッションを再開することができる。
【００４６】
ＳＳ鍵およびＦＳＫの導出
ＳＳ鍵およびＦＳＫは両方とも、ＲＦＣ  ５８６９に記載されているように、ＨＫＤＦに基づいて導出することができる。より詳細には、ＳＳ鍵は以下のように導出することができる。
ＳＳ＝ＨＫＤＦ（Ｓａｌｔ，ＩＫＭ）  （１）
Ｓａｌｔ＝ＣＳＡＬＴ１｜｜ＰＳＡＬＴ１｜｜“ｓｓ  ｇｅｎｅｒａｔｉｏｎ”  （２）
ＩＫＭ＝ＤＨ（ＣｌｉｅｎｔＳｈａｒｅ１，ＳｅｒｖｅｒＳｈａｒｅ１）  （３）
【００４７】
入力鍵材料（ＩＫＭ）は、入力として第１の消費者共有鍵（ＣｌｉｅｎｔＳｈａｒｅ１）および第１の生成者共有鍵（ＳｅｒｖｅｒＳｈａｒｅ１）をとるディフィー・ヘルマン関数に基づき、Ｓａｌｔは、任意選択的に与えられる第１の消費者ソルト（たとえば、図５Ｄのアイテム５３２．２）および第１の生成者ソルト（たとえば、図５Ｂのアイテム５１２．５および図５Ｄのアイテム５３２．３）、ならびに、消費者または生成者のいずれからもソルトが与えられない場合は固定文字列（たとえば、「ｓｓ  ｇｅｎｅｒａｔｉｏｎ」）の連結である。それゆえ、ＳＳ鍵（式１）は、Ｓａｌｔ（式２）およびＩＫＭ（式３）に対してＨＫＤＦを実施した結果である。
【００４８】
さらにＦＳＫは、以下のように導出することができる。
ＦＳＫ＝ＨＫＤＦ（Ｓａｌｔ，ＩＫＭ）  （４）
Ｓａｌｔ＝ＣＳＡＬＴ２｜｜ＰＳＡＬＴ２｜｜“ｆｓｋ  ｇｅｎｅｒａｔｉｏｎ”  （５）
ＩＫＭ＝ＤＨ（ＣｌｉｅｎｔＳｈａｒｅ２，ＳｅｒｖｅｒＳｈａｒｅ２）  （６）
【００４９】
この事例において、入力鍵材料（ＩＫＭ）は、入力として第２の消費者共有鍵（ＣｌｉｅｎｔＳｈａｒｅ２）および第２の生成者共有鍵（ＳｅｒｖｅｒＳｈａｒｅ２）をとるディフィー・ヘルマン関数に基づき、Ｓａｌｔは、任意選択的に与えられる第２の消費者ソルト（たとえば、図５Ｄのアイテム５３２．１０）および第２の生成者ソルト（たとえば、図５Ｅのアイテム５４２．５）、ならびに、消費者または生成者のいずれからもソルトが与えられない場合は固定文字列（たとえば、「ｆｓｋ  ｇｅｎｅｒａｔｉｏｎ」）の連結である。それゆえ、ＦＳＫ（式４）は、Ｓａｌｔ（式５）およびＩＫＭ（式６）に対してＨＫＤＦを実施した結果である。
【００５０】
ＦＳＫが導出されると、消費者または生成者はその後、ＲＦＣ  ５８６９に記載されているように、ＦＳＫに対してＨＫＤＦ拡張関数を実施することによって、鍵材料を導出することができる。鍵材料は、以下の、すなわち、消費者特有の書き込み鍵（ＦＳＫ−Ｃ）、生成者特有の書き込み鍵（ＦＳＫ−Ｐ）、消費者特有の書き込み初期化ベクトル（ＩＶ−Ｃ）、および、生成者特有の書き込み初期化ベクトル（ＩＶ−Ｐ）の順序で、拡張関数から生成される。
【００５１】
セッション識別子および再開クッキー
生成者は、２回目において（たとえば、図２Ａの２回目（２０２）のコンテンツオブジェクト２１４内に含まれるものとしての）セッション識別子（「ＳｅｓｓｉｏｎＩＤ」）を生成することができる。セッション識別子の目的は生成者および消費者の単一のセッションを識別することである。生成者は、ランダムビットストリング、本明細書において記載されているような方法、または別の方法を使用してもよい。ＳｅｓｓｉｏｎＩＤは、生成者の秘密（「ｓｅｃｒｅｔ」）、ＦＳＫ、および任意選択のプレフィックス（「Ｐｒｅｆｉｘ３」など）のハッシュダイジェストの暗号化として導出される。暗号化は、この目的のためにのみ使用される、生成者によって所有される長期秘密鍵（「ｋ１」）に基づいて実施される、すなわち、長期秘密鍵は、消費者トラフィックの暗号化には使用されない。
ＳｅｓｓｉｏｎＩＤ＝Ｅｎｃ（ｋ１，Ｈ（ｓｅｃｒｅｔ｜｜ＦＳＫ｜｜（Ｐｒｅｆｉｘ３｜“”））  （７）
【００５２】
ＳＳ鍵およびＦＳＫは、正確なセッション通信を可能にする鍵である。したがって、本明細書において記載されている鍵交換プロトコルにおいて使用される再開クッキー（「ＲＣ」）は、所与のセッションのためのＳＳ鍵およびＦＳＫを復元するために使用されることが可能でなければならない。再開クッキーは、生成者の秘密（「ｓｅｃｒｅｔ」）、ＳＳ鍵、ＦＳＫ、および任意選択の「（Ｐｒｅｆｉｘ３，ＭｏｖｅＴｏｋｅｎ）」タプル（そのセッションについて作成されている場合）のハッシュダイジェストの暗号化として導出される。暗号化は、この目的のためにのみ使用され、消費者トラフィックの暗号化には使用されない、生成者によって所有される長期秘密鍵（「ｋ２」）に基づいて実施される。
ＲＣ＝Ｅｎｃ（ｋ２，ＳＳ｜｜ＦＳＫ｜｜（（Ｐｒｅｆｉｘ３｜｜ＭｏｖｅＴｏｋｅｎ）｜“”））  （８）
必須ではないが、ｋ１がｋ２に等しいことが可能であることに留意されたい。
【００５３】
コンテンツ消費デバイスの役割
図３Ａは、本発明の一実施形態による、コンテンツ生成デバイスとのセキュアな通信を容易にするためのコンテンツ消費デバイスによる方法を示す流れ図３００を提示する。動作中、システムは、コンテンツ消費デバイスまたは消費者によって、第１のプレフィックスおよび第１のノンスを含む名前と、初期ｈｅｌｌｏを指示するペイロードとを有する初期インタレストパケットを構築する（動作３０２）。初期インタレストパケットに応答して、消費者デバイスは、構成情報および第２のノンスを含むペイロードを有する初期コンテンツオブジェクトパケットを受信する（動作３０４）。ペイロードはまた、生成者ソルトをも含むことができ、構成情報は、第１の生成者共有鍵を含むことができる。第２のノンスは、セッションを確立するために使用される。消費者は、構成ファイル内に含まれている第１の生成者共有鍵、および、第１の消費者共有鍵に基づいて短期秘密（「ＳＳ」）鍵を生成する（動作３０６）。いくつかの実施形態において、ＳＳ鍵は、ＲＦＣ  ５８６９に記載されているようなハッシュベース鍵導出関数に基づいて生成される。消費者は、アルゴリズム選択肢、第１のノンスの原像として使用されるノンストークン、および、第２の消費者共有鍵を含む消費者パラメータを決定する（動作３０８）。第１のノンスは、コンテンツ消費デバイスとコンテンツ生成デバイスとの間のセッションを確立するために使用される（動作３０８）。アルゴリズム選択肢は、図５Ｃに関連して下記に説明される。消費者はその後、ＳＳ鍵に基づいて消費者パラメータを暗号化する（動作３１０）。消費者は、第１のプレフィックスおよび第２のノンスを含む名前と、第１の消費者共有鍵および暗号化消費者パラメータを含むペイロードとを有する第１のインタレストパケットを構築する（動作３１２）。生成者によるノンストークンおよび検証アルゴリズムの検証に成功した場合（判断３１４）、動作は図３ＢのラベルＡに示すように継続する。そうでない場合、消費者は、拒絶および拒絶の理由を含むペイロードを有する第１のコンテンツオブジェクトパケットを受信する（動作３１６）。
【００５４】
図３Ｂは、本発明の一実施形態による、コンテンツ生成デバイスとのセキュアな通信を容易にするためのコンテンツ消費デバイスによる方法を示す流れ図３５０を提示する。ノンストークンおよびアルゴリズム選択肢が生成者によって検証されたのに応答して、消費者は、セッション識別子、生成者特有のフォワードセキュア鍵（ＦＳＫ−Ｐ）に基づいて暗号化されている再開クッキー、ならびに、ＳＳ鍵に基づいて暗号化されている肯定応答および第２の生成者共有鍵を含むペイロードを有する第１のコンテンツオブジェクトパケットを受信する（動作３１８）。消費者は、第２の生成者共有鍵を得るためにＳＳ鍵に基づいて第１のコンテンツオブジェクトパケットのペイロードを解読する（動作３２０）。消費者はその後、第２の消費者共有鍵および解読された第２の生成者共有鍵に基づいてフォワードセキュア鍵（ＦＳＫ）を生成する（動作３２２）。消費者は、フォワードセキュア鍵に対する拡張関数の実施に基づいて、コンテンツ消費デバイスのための消費者特有のフォワードセキュア鍵（ＦＳＫ−Ｃ）およびコンテンツ生成デバイスのための生成者特有のフォワードセキュア鍵（ＦＳＫ−Ｐ）をさらに生成する（動作３２４）。いくつかの実施形態において、ＦＳＫはＨＫＤＦに基づいて生成され、ＦＳＫ−ＣおよびＦＳＫ−ＰはＨＫＤＦ拡張関数に基づいて生成され、これらの関数はＲＦＣ  ５８６９に記載されている。
【００５５】
その後、消費者は、第１のプレフィックスおよびセッション識別子を含む名前と、ＦＳＫ−Ｃに基づいて暗号化されているペイロードとを有する第２のインタレストパケットを構築する（動作３２６）。第２のインタレストパケットに応答して、消費者は、ＦＳＫ−Ｐに基づいて暗号化されているペイロードを有する第２のコンテンツオブジェクトパケットを受信する（動作３２８）。最後に、消費者は、ＦＳＫ−Ｐに基づいて第２のコンテンツオブジェクトパケットのペイロードを解読する（動作３３０）。
【００５６】
いくつかの実施形態（図２Ｂに関連して説明されているような）において、初期コンテンツオブジェクトパケットのペイロード（動作３０４におけるような）は、第１のプレフィックスとは異なり、生成者からのリダイレクトを指示する第２のプレフィックスを含む。消費者は、第１のインタレストパケットの名前において、第１のプレフィックスを第２のプレフィックスに置き換え、また、セッションと関連付けられる任意の後続のインタレストパケットの名前において、第１のプレフィックスを第２のプレフィックスに置き換える。
【００５７】
いくつかの実施形態（図２Ｃに関連して説明されているような）では、ＡＣＫおよび第２の生成者共有鍵を得るための第１のコンテンツオブジェクトパケットのペイロードの解読（動作３２０におけるような）において、消費者はまた、第３のプレフィックスおよびｍｏｖｅトークンをも得る。消費者は、第２のインタレストパケットの名前において、第１のプレフィックスを第３のプレフィックスに置き換え（動作３２６におけるように）、セッションと関連付けられる任意の後続のインタレストパケットの名前において、第１のプレフィックスを第３のプレフィックスに置き換える。さらに、消費者は、（動作３２６におけるように）第２のインタレストパケットのペイロード内でｍｏｖｅトークンを指示する。
【００５８】
他の実施形態（図２Ｄに関連して説明されているような）において、受信された第２のコンテンツオブジェクトパケットのペイロード（動作３２８におけるような）は、消費者と生成者との間の後に再開されるセッションのための新たな再開クッキーを含み、新たな再開クッキーは、ＦＳＫ−Ｐに基づいて暗号化される。
【００５９】
コンテンツ生成デバイスの役割
図４Ａは、本発明の一実施形態による、コンテンツ消費デバイスとのセキュアな通信を容易にするためのコンテンツ生成デバイスによる方法を示す流れ図４００を提示する。動作中、システムは、コンテンツ生成デバイスまたは生成者によって、第１のプレフィックスおよび第１のノンスを含む名前と、初期ｈｅｌｌｏを指示するペイロードとを有する初期インタレストパケットを受信する（動作４０２）。初期インタレストパケットに応答して、生成者は、構成情報および第２のノンスを含むペイロードを有する初期コンテンツオブジェクトパケットを生成する（動作４０４）。構成情報は第１の生成者共有鍵を指示し、第２のノンスは、消費者と生成者との間のセッションを確立するために使用される。生成者は、第１のプレフィックスおよび第２のノンスを含む名前と、第１の消費者共有鍵、および、短期秘密（「ＳＳ」）鍵に基づいて暗号化されている消費者パラメータを含むペイロードとを有する第１のインタレストパケットを受信する（動作４０６）。消費者パラメータは、アルゴリズム選択肢、第１のノンスの原像として使用されるノンストークン、および、第２の消費者共有鍵を含む（動作４０６）。
【００６０】
生成者は、第１の生成者共有鍵および第１の消費者共有鍵に基づいてＳＳ鍵を生成する（動作４０８）。第１の生成者共有鍵は構成情報内に含まれ、ＳＳ鍵生成は、ＲＦＣ  ５８６９に記載されているようなＨＫＤＦ関数に基づくことができる。生成者は、ＳＳ鍵に基づいて消費者パラメータを解読し（動作４１０）、ノンストークンおよび第２の消費者共有鍵を得る。生成者は、ＳＳ鍵および第１のノンスに基づいてノンストークンを検証し、また、アルゴリズム選択肢をも検証する（動作４１２）。いくつかの実施形態において、生成者は、ノンストークンに対してハッシュ関数を実施し、結果が“ｎｏｎｃｅ１”：  Ｈ（ＮｏｎｃｅＴｏｋｅｎ）＝ｎｏｎｃｅ１に一致することを検証する。アルゴリズム選択肢は、図５Ｃにおいて下記に説明されるように、生成者の構成情報からエコーされるタグのリストであってもよい。生成者はその後、ノンス検証およびアルゴリズム検証に成功するか否かを判定する（判断４１４）。そうである場合、動作は図４ＢのラベルＢに示すように継続する。そうでない場合、生成者は、拒絶および拒絶の理由を含むペイロードを有する第１のコンテンツオブジェクトパケットを構築する（動作４１６）。生成者は、第１のコンテンツオブジェクトパケットを消費者に送信することができ、動作は戻る。
【００６１】
図４Ｂは、本発明の一実施形態による、コンテンツ消費デバイスとのセキュアな通信を容易にするためのコンテンツ生成デバイスによる方法を示す流れ図４５０を提示する。生成者は、解読された第２の消費者共有鍵および第２の生成者共有鍵に基づいてフォワードセキュア鍵（ＦＳＫ）を生成する（動作４１８）。生成者は、フォワードセキュア鍵に対して拡張関数を実施することによって、コンテンツ消費デバイスのための消費者特有のフォワードセキュア鍵（ＦＳＫ−Ｃ）およびコンテンツ生成デバイスのための生成者特有のフォワードセキュア鍵（ＦＳＫ−Ｐ）をさらに生成する（動作４２０）。いくつかの実施形態において、ＦＳＫはＨＫＤＦに基づいて生成され、ＦＳＫ−ＣおよびＦＳＫ−ＰはＨＫＤＦ拡張関数に基づいて生成され、これらの関数はＲＦＣ  ５８６９に記載されている。
【００６２】
生成者は、ＦＳＫ−Ｐに基づいて第１の再開クッキーを暗号化し（動作４２２）、セッション識別子を生成する（動作４２４）。第１のインタレストパケットに応答して、生成者は、セッション識別子、暗号化されている再開クッキー、および、ＳＳ鍵に基づいて暗号化されている生成者パラメータを含むペイロードを有する第１のコンテンツオブジェクトパケットを構築する（動作４２６）。生成者パラメータは、肯定応答および第２の生成者共有鍵を含む（動作４２６）。その後、生成者は、第１のプレフィックスおよびセッション識別子を含む名前と、ＦＳＫ−Ｃに基づいて暗号化されているペイロードとを有する第２のインタレストパケットを受信する（動作４２８）。生成者は、ＦＳＫ−Ｃに基づいて第２のインタレストパケットのペイロードを解読する（動作４３０）。第２のインタレストパケットに応答して、生成者は、ＦＳＫ−Ｐに基づいて暗号化されているペイロードを有する第２のコンテンツオブジェクトパケットを構築する（動作４３２）。
【００６３】
いくつかの実施形態（図２Ｂに関連して説明されているような）において、初期コンテンツオブジェクトパケットのペイロード（動作４０４におけるような）は、第１のプレフィックスとは異なり、生成者からのリダイレクトを指示する第２のプレフィックスを含む。第１のインタレストパケットの名前（動作４０６におけるような）は第２のプレフィックスを含み、第２のプレフィックスは第１のプレフィックスに置き換わる。加えて、セッションと関連付けられる任意の後続のインタレストパケットの名前も、（動作４２８におけるように）第１のプレフィックスの代わりに第２のプレフィックスを含む。
【００６４】
いくつかの実施形態（図２Ｃに関連して説明されているような）では、ＡＣＫおよび第２の生成者共有鍵を、第１のコンテンツオブジェクトパケットのペイロード内に含める（動作４２６におけるように）のに加えて、生成者はまた、第３のプレフィックスおよびｍｏｖｅトークンをも含める。第２のインタレストパケットの名前は、第１のプレフィックスの代わりに第３のプレフィックスを含み、第２のインタレストパケットのペイロードは、ｍｏｖｅトークンを含む（動作４２８におけるように）。加えて、第２のコンテンツオブジェクトパケットの名前も、第３のプレフィックスを含む（動作４３２におけるように）。
【００６５】
他の実施形態（図２Ｄに関連して説明されているような）において、第２のコンテンツオブジェクトパケットのペイロード（動作４３２におけるような）は、消費者と生成者との間の後に再開されるセッションのための新たな再開クッキーを含み、新たな再開クッキーは、ＦＳＫ−Ｐに基づいて暗号化される。
【００６６】
例示的なペイロードフォーマット
図５Ａ〜図５Ｅは、本明細書において記載されている鍵交換プロトコルに関与するパケットの例示的なペイロードフォーマットを示す。パケットフォーマットは、通信するＣＣＮエンティティ（たとえば、消費者および生成者）によって合意されているコード化方式に基づいて暗号化され得る。たとえば、ペイロードは、ＪａｖａＳｃｒｉｐｔ（登録商標）オブジェクト表記（ＪＳＯＮ）オブジェクトとして構築および符号化されてもよい。図５Ａは、本発明の一実施形態による、最初のｈｅｌｌｏを指示するインタレストパケット５００の例示的なペイロードフォーマットを示す。パケット５００は、タグ５０２フィールドと、説明５０４フィールドと、タグが任意選択であるか否かを指示する任意選択指示子５０６とを含むことができる。パケット５００は、ＣＣＳ  ５０２．１と、ＣＣＲＴ  ５０２．２とＶＥＲ  ５０２．３と、ＰＲＯＯＦ  ５０２．４と、ＮＯＮＣＥ１  ５０２．５とを含むことができ、これらは図示されているような対応する説明および任意選択指示子を有する。
【００６７】
図５Ｂは、本発明の一実施形態による、最初のｈｅｌｌｏのインタレストパケットに応答したコンテンツオブジェクトパケット５１０の例示的なペイロードフォーマットを示す図である。パケット５１０は、タグ５１２フィールドと、説明５１４フィールドと、タグが任意選択であるか否かを指示する任意選択指示子５１６とを含むことができる。パケット５１０は、ＲＥＪ  ５１２．１とＲＥＡＳＯＮ  ５１２．２と、ＣＯＮＦＩＧ  ５１２．３と、ＮＯＮＣＥ２  ５１２．４と、ＰＳＡＬＴ１  ５１２．５と、ＰＲＥＦＩＸ２  ５１２．６とを含むことができ、これらは図示されているような対応する説明および任意選択指示子を有する。注記５１１によって指示されているように、「｛ｘ｝」はＳＳ鍵によって暗号化されている値を示す。パケット５１０はまた、（図３Ａの判断３１４および図４Ａの判断４１４に関連して説明されているように）アルゴリズム選択肢の検証およびノンストークンの検証が成功しなかったことに応答して生成または受信されるコンテンツオブジェクトパケットでもあり得る。
【００６８】
図５Ｃは、本発明の一実施形態による、生成者の構成情報を指示するデータ構造５２０の例示的なフォーマットを示す図である。パケット５２０は、タグ５２２フィールドと、説明５２４フィールドと、タグが任意選択であるか否かを指示する任意選択指示子５２６とを含むことができる。パケット５２０は、ＳＣＩＤ  ５２２．１と、ＫＥＸＳ  ５２２．２と、ＡＥＡＤ  ５２２．３と、ＰＵＢＳ  ５２２．４と、ＥＸＰＲＹ  ５２２．５と、ＶＥＲ  ５２２．６とを含むことができ、これらは図示されているような対応する説明および任意選択指示子を有する。
【００６９】
データ構造５２０内に図示されているような構成情報は、消費者が生成者との将来の鍵交換を完了するために使用することができる情報の半静的なカタログである。ＫＥＸＳ  ５２２．２は、Ｃｕｒｖｅ２５５１９およびＰ−２５６のような、生成者によってサポートされている楕円曲線鍵交換アルゴリズムを列挙しているデータ構造である。これらの曲線の選択基準は、ｈｔｔｐ：／／ｓａｆｅｃｕｒｖｅｓ．ｃｒ．ｙｐ．ｔｏに記載されている。ＡＥＡＤ  ５２２．３は、ＡＥＳ−ＧＣＭ−（１２８，１９２，２５６）およびＳａｌｓａ２０のような、セッションが確立された後の対称鍵認証付き暗号化に使用される、サポートされている認証付き暗号化（ＡＥＡＤ）アルゴリズムを列挙しているデータ構造である。ＡＥＳ−ＧＣＭは、  Ｄｗｏｒｋｉｎ，Ｍ．「Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ｆｏｒ  Ｂｌｏｃｋ  Ｃｉｐｈｅｒ  Ｍｏｄｅｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎ：Ｇａｌｏｉｓ／Ｃｏｕｎｔｅｒ  Ｍｏｄｅ  （ＧＣＭ）  ａｎｄ  ＧＭＡＣ」（ＮＩＳＴ  Ｓｐｅｃｉａｌ  Ｐｕｂｌｉｃａｔｉｏｎ  ８００−３８Ｄ，  Ｎｏｖｅｍｂｅｒ  ２００７）に記載されており、Ｓａｌｓａ２０は、ｈｔｔｐ：／／ｃｒ．ｙｐ．ｔｏ．ｓｎｕｆｆｌｅ／ｓｐｅｃ．ｐｄｆにあるＢｅｒｎｓｔｅｉｎ，Ｄ「Ｓａｌｓａ２０  ｓｐｅｃｉｆｉｃａｔｉｏｎ」に記載されている。構成情報は、鍵サイズおよびＡＥＡＤタグを有する関連パラメータを与える。加えて、ＰＵＢＳ  ５２２．４は、初期鍵交換のための公開鍵を含むデータ構造である。Ｃｕｒｖｅ２５５１９とＰ−２５６は両方とも、許容されるパラメータのそれら自体のセットを提供する。したがって、構成情報内に与えられている値のみが、ＤＨ演算において使用されるランダム曲線要素である。
【００７０】
図５Ｄは、本発明の一実施形態による、将来の通信のためのフォワードセキュア鍵を確立するための全ｈｅｌｌｏを指示するインタレストパケット５３０の例示的なペイロードフォーマットを示す。パケット５３０は、タグ５３２フィールドと、説明５３４フィールドと、タグが任意選択であるか否かを指示する任意選択指示子５３６とを含むことができる。パケット５３０は、ＣＬＩＥＮＴ−ＳＨＡＲＥ１  ５３２．１と、ＣＳＡＬＴ１  ５３２．２と、ＰＳＡＬＴ１  ５３２．３と、ＰＲＯＯＦ  ５３２．４と、ＣＣＳ  ５３２．５と、ＣＨＡＬＬＥＮＧＥ  ５３２．６と、ＣＨＯＩＣＥ  ５３２．７と、ＮＯＮＣＥ−ＴＯＫＥＮ  ５３２．８と、ＣＬＩＥＮＴ−ＳＨＡＲＥ２  ５３２．９と、ＣＳＡＬＴ２  ５３２．１０とを含むことができ、これらは図示されているような対応する説明および任意選択指示子を有する。注記５３１によって指示されているように、「｛ｘ｝」はＳＳ鍵によって暗号化されている値を示す。
【００７１】
図５Ｅは、本発明の一実施形態による、将来の通信のためのフォワードセキュア鍵を確立するための全ｈｅｌｌｏインタレストパケットに応答したコンテンツオブジェクトパケット５４０の例示的なペイロードフォーマットを示す。パケット５４０は、タグ５４２フィールドと、説明５４４フィールドと、タグが任意選択であるか否かを指示する任意選択指示子５４６フィールドとを含むことができる。パケット５４０は、ＳｅｓｓｉｏｎＩＤ  ５４２．１と、ＲＣ  ５４２．２と、ＡＣＫ  ５４２．３と、ＲＥＳＰＯＮＳＥ  ５４２．４と、ＰＳＡＬＴ２  ５４２．５と、ＳＥＲＶＥＲ−ＳＨＡＲＥ２  ５４２．６と、（Ｐｒｅｆｉｘ３，ＭｏｖｅＴｏｋｅｎ）タプル  ５４２．７とを含むことができ、これらは図示されているような対応する説明および任意選択指示子を有する。注記５４１によって指示されているように、「｛ｘ｝」はＳＳ鍵によって暗号化されている値を示し、「［ｙ］」はＦＳＫによって暗号化されている値を示す。
【００７２】
例示的なコンピュータシステム
図６Ａは、本発明の一実施形態による、コンテンツ指向ネットワークにおけるコンピューティングエンティティ間のセキュアな通信を容易にする例示的なコンピュータシステム６０２を示す図である。コンピュータシステム６０２は、プロセッサ６０４と、メモリ６０６と、記憶デバイス６０８とを含む。メモリ６０６は、管理メモリとしての役割を果たす揮発性メモリ（たとえば、ＲＡＭ）を含むことができ、１つまたは複数のメモリプールを記憶するのに使用することができる。さらに、コンピュータシステム６０２は、表示デバイス６１０、キーボード６１２、およびポインティングデバイス６１４に結合することができる。記憶デバイス６０８は、オペレーティングシステム６１６、コンテンツ処理システム６１８、およびデータ６３０を記憶することができる。
【００７３】
コンテンツ処理システム６１８は、コンピュータシステム６０２によって実行されると、コンピュータシステム６０２に、本開示に記載されている方法および／またはプロセスを実施させることができる命令を含むことができる。具体的には、コンテンツ処理システム６１８は、コンテンツ指向ネットワークのようなコンピュータネットワークにわたって他のネットワークノードへ／からデータパケットを送信および／または受信するための命令を含むことができ、データパケットは、名前およびペイロードを有するインタレストまたはコンテンツオブジェクトパケットに対応することができる。コンテンツ処理システム６１８は、コンテンツ消費デバイスによって、第１の消費者共有鍵および以前に受信された生成者共有鍵に基づいて、第１の鍵を生成するための命令を含むことができる（鍵生成モジュール６２２）。コンテンツ処理システム６１８は、第１の消費者共有鍵、および、以前に生成された第１のノンスの原像として使用されるノンストークンを含む第１のインタレストパケットを構築するための命令を含むことができる（パケット構築モジュール６２４）。コンテンツ処理システム６１８は、ノンストークンがコンテンツ生成デバイスによって検証されたのに応答して、第２の鍵に基づいて暗号化されている第１の再開指示子を含むペイロードを有する第１のコンテンツオブジェクトパケットを受信するための命令を含むことができる（通信モジュール６２０）。
【００７４】
コンテンツ処理システム６１８は、第１の消費者共有鍵および第１の生成者共有鍵に基づいて鍵導出関数を実施することによって第１の鍵を生成し、第２の消費者共有鍵および第１のコンテンツオブジェクトパケット内で指示される第２の生成者共有鍵に基づいて導出関数を実施することによって第２の鍵を生成し、ＦＳＫ−Ｃ、ＦＳＫ−Ｐ、ＩＶ−Ｃ、および／またはＩＶ−Ｐを生成するために第２の鍵に基づいて拡張関数を実施するための命令をさらに含むことができる（鍵生成モジュール６２２）。
【００７５】
コンテンツ処理システム６１８は、第１のプレフィックスおよび第１のノンスを含む名前と、初期ｈｅｌｌｏを指示するペイロードとを有する初期インタレストパケットを構築するための命令をさらに含むことができる（パケット構築モジュール６２４）。コンテンツ処理システム６１８は、初期インタレストパケットに応答して、構成情報および第２のノンスを含むペイロードを有する初期コンテンツオブジェクトパケットを受信するための命令をさらに含むことができる（通信モジュール６２０）。コンテンツ処理システム６１８は、以前に受信されたセッション識別子を含む名前と、消費者特有の第２の鍵に基づいて暗号化されているペイロードとを有する第２のインタレストパケットを構築するための命令を含むことができる（パケット構築モジュール６２４）。コンテンツ処理システム６１８は、第２のインタレストパケットに応答して、生成者特有の第２の鍵に基づいて暗号化されているペイロードを有する第２のコンテンツオブジェクトパケットを受信するための命令をも含むことができる（通信モジュール６２０）。コンテンツ処理システム６１８は、第１のコンテンツオブジェクトパケットのペイロードを解読し、解読されたペイロードが拒絶を指示していないという判定に応答して、肯定応答および第２の生成者共有鍵を得るための命令を含むことができる（パケット処理モジュール６２８）。
【００７６】
コンテンツ処理システム６１８は、第１のインタレストパケットの名前およびそのセッションと関連付けられる後続のインタレストパケットの名前において第１のプレフィックスを第２のプレフィックスに置き換え、第２のインタレストパケットの名前およびそのセッションと関連付けられる後続のインタレストパケットの名前において第１のプレフィックスを第３のプレフィックスに置き換え、第２のインタレストパケットのペイロード内でｍｏｖｅトークンを指示するための命令をさらに含むことができる（プレフィックスマイグレーションモジュール６２６）。
【００７７】
図６Ｂは、本発明の一実施形態による、コンテンツ指向ネットワークにおけるコンピューティングエンティティ間のセキュアな通信を容易にする例示的なコンピュータシステム６５２を示す図である。コンピュータシステム６５２は、プロセッサ６５４と、メモリ６５６と、記憶デバイス６５８とを含む。メモリ６５６は、管理メモリとしての役割を果たす揮発性メモリ（たとえば、ＲＡＭ）を含むことができ、１つまたは複数のメモリプールを記憶するのに使用することができる。さらに、コンピュータシステム６５２は、表示デバイス６６０、キーボード６６２、およびポインティングデバイス６６４に結合することができる。記憶デバイス６５８は、オペレーティングシステム６６６、コンテンツ処理システム６６８、およびデータ６８２を記憶することができる。
【００７８】
コンテンツ処理システム６６８は、コンピュータシステム６５２によって実行されると、コンピュータシステム６５２に、本開示に記載されている方法および／またはプロセスを実施させることができる命令を含むことができる。具体的には、コンテンツ処理システム６６８は、コンテンツ指向ネットワークのようなコンピュータネットワークにわたって他のネットワークノードへ／からデータパケットを送信および／または受信するための命令を含むことができ、データパケットは、名前およびペイロードを有するインタレストまたはコンテンツオブジェクトパケットに対応することができる。コンテンツ処理システム６６８は、コンテンツ生成デバイスによって、第１の消費者共有鍵、および、以前に受信された第１のノンスの原像として使用されるノンストークンを含む第１のインタレストパケットを受信するための命令を含むことができる（通信モジュール６７０）。コンテンツ処理システム６６８は、第１の消費者共有鍵および第１の生成者共有鍵に基づいて、第１の鍵を生成するための命令を含むことができる（鍵生成モジュール６７２）。コンテンツ処理システム６６８はまた、第１の鍵および第１のノンスに基づいてノンストークンを検証するための命令（検証モジュール６８０）と、第１のインタレストパケットおよび第２の生成者共有鍵に基づいて第２の鍵を生成するための命令（鍵生成モジュール６７２）とをも含むことができる。コンテンツ処理システム６６８は、第２の鍵に基づいて暗号化されている第１の再開指示子を含むペイロードを有する第１のコンテンツオブジェクトパケットを構築するための命令をさらに含むことができる（パケット構築モジュール６７４）。
【００７９】
コンテンツ処理システム６６８は、第１の消費者共有鍵および第１の生成者共有鍵に基づいて鍵導出関数を実施することによって第１の鍵を生成し、第２の消費者共有鍵および第１のコンテンツオブジェクトパケット内で指示される第２の生成者共有鍵に基づいて導出関数を実施することによって第２の鍵を生成し、ＦＳＫ−Ｃ、ＦＳＫ−Ｐ、ＩＶ−Ｃ、および／またはＩＶ−Ｐを生成するために第２の鍵に基づいて拡張関数を実施するための命令をさらに含むことができる（鍵生成モジュール６７２）。
【００８０】
コンテンツ処理システム６６８は、第１のプレフィックスおよび第１のノンスを含む名前と、初期ｈｅｌｌｏを指示するペイロードとを有する初期インタレストパケットを受信するための命令（通信モジュール６７０）と、初期インタレストパケットに応答して、構成情報および第２のノンスを含むペイロードを有する初期コンテンツオブジェクトパケットを構築するための命令（パケット構築モジュール６７４）とをさらに含むことができる。コンテンツ処理システム６６８は、初期コンテンツオブジェクトパケットのペイロード内に、第１のプレフィックスとは異なる第２のプレフィックスを含めるための命令と、第１のコンテンツオブジェクトパケットのペイロード内で、ｍｏｖｅトークン、および、第１のプレフィックスとは異なる第３のプレフィックスを指示するための命令とをさらに含むことができる（プレフィックスマイグレーションモジュール６７６）。
【００８１】
コンテンツ処理システム６６８は、第２の鍵に基づいてセッション識別子を生成するための命令（パケット構築モジュール６７４）と、セッション識別子を含む名前と、消費者特有の第２の鍵に基づいて暗号化されているペイロードとを有する第２のインタレストパケットを受信するための命令（通信モジュール６７０）をさらに含むことができる。コンテンツ処理システム６６８は、第２のインタレストパケットに応答して、生成者特有の第２の鍵に基づいて暗号化されているペイロードを有する第２のコンテンツオブジェクトパケットを構築するための命令を含むことができる（パケット構築モジュール６７４）。コンテンツ処理システム６６８は、新たな再開指示子の必要性の識別に応答して、消費者と生成者との間の後に再開されるセッションに使用するための新たな再開指示子を生成するための命令と、第２のコンテンツオブジェクトパケットのペイロード内に、生成者特有の第２の鍵に基づいて暗号化されている新たな再開指示子を含めるための命令とを含むことができる（パケット構築モジュール６７４）。コンテンツ処理システム６６８は、第１の鍵に基づいて第１のインタレストパケットのペイロードを解読するための命令をも含むことができる（パケット処理モジュール６７８）。
【００８２】
コンテンツ処理システム６６８は、結果を得るためにノンストークンに対してハッシュ関数を実施するための命令と、結果が第１のノンスに一致するか否かを検証するための命令とをさらに含むことができる（検証モジュール６８０）。コンテンツ処理システム６６８は、結果が第１のノンスに一致するという検証に応答して、第１のコンテンツオブジェクトパケットのペイロード内に、肯定応答および第２の生成者共有鍵を含め、結果が第１のノンスに一致しないという検証に応答して、第１のコンテンツオブジェクトパケットのペイロード内に、拒絶および拒絶の理由を含めるための命令をも含むことができる（パケット処理モジュール６７８および検証モジュール６８０）。
【００８３】
データ６８２は、本開示に記載されている方法および／またはプロセスによって、入力として要求されるか、または、出力として生成される任意のデータを含むことができる。具体的には、データ６８２は少なくとも、インタレストパケット、コンテンツオブジェクトパケット、第１の消費者共有鍵、第２の消費者共有鍵、生成者構成ファイルまたは構成情報、第１の生成者共有鍵、第２の生成者共有鍵、第１の消費者共有鍵および第１の生成者共有鍵に基づく第１の短期秘密鍵、第２の消費者共有鍵および第２の生成者共有鍵に基づく第２のフォワードセキュア鍵（ＦＳＫ）、第１のノンス、第２のノンス、第１のノンスの原像であるノンストークン、第１の再開指示子、第２の再開指示子、鍵導出関数、鍵拡張関数、アルゴリズム選択肢、１つまたは複数のソルト、ＦＳＫ−Ｃ、ＦＳＫ−Ｐ、ＩＶ−Ｃ、ＩＶ−Ｐ、互いと異なる少なくとも３つのプレフィックス、ｍｏｖｅトークン、肯定応答または拒絶の指示子、拒絶の理由、初期ｈｅｌｌｏの指示子、名前、階層構造可変長識別子、ならびにペイロードを記憶することができる。
【００８４】
この詳細な説明に記載されているデータ構造およびコードは一般的に、コンピュータシステムによって使用するためにコードおよび／またはデータを記憶することができる任意のデバイスまたは媒体であってもよいコンピュータ可読記憶媒体上に記憶される。コンピュータ可読記憶媒体は、限定ではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスクまたはデジタルビデオディスク）のような磁気および光学記憶デバイス、または、現在既知であるかまたは後に開発されるコンピュータ可読媒体を記憶することが可能な他の媒体を含む。
【００８５】
詳細な説明の節に記載されている方法およびプロセスは、上述したようにコンピュータ可読記憶媒体内に記憶することができるコードおよび／またはデータとして具現化することができる。コンピュータシステムが、コンピュータ可読記憶媒体上に記憶されているコードおよび／またはデータを読み出し実行すると、コンピュータシステムは、データ構造およびコードとして具現化されており、コンピュータ可読記憶媒体内に記憶されている方法およびプロセスを実施する。
【００８６】
さらに、上述した方法およびプロセスは、ハードウェアモジュールに含めることができる。たとえば、ハードウェアモジュールは、限定ではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および、現在既知であるかまたは後に開発される他のプログラム可能論理デバイスを含むことができる。ハードウェアモジュールが起動されると、ハードウェアモジュールは、ハードウェアモジュール内に含まれている方法およびプロセスを実施する。
【図１】
2017085558.tif 000003
【図２Ａ】
2017085558.tif 000004
【図２Ｂ】
2017085558.tif 000005
【図２Ｃ】
2017085558.tif 000006
【図２Ｄ】
2017085558.tif 000007
【図３Ａ】
2017085558.tif 000008
【図３Ｂ】
2017085558.tif 000009
【図４Ａ】
2017085558.tif 000010
【図４Ｂ】
2017085558.tif 000011
【図５Ａ】
2017085558.tif 000012
【図５Ｂ】
2017085558.tif 000013
【図５Ｃ】
2017085558.tif 000014
【図５Ｄ】
2017085558.tif 000015
【図５Ｅ】
2017085558.tif 000016
【図６Ａ】
2017085558.tif 000017
【図６Ｂ】
2017085558.tif 000018