JP2004015813A - 相互認証を使用した安全な鍵交換方法およびコンピュータ読取り可能媒体 - Google Patents
相互認証を使用した安全な鍵交換方法およびコンピュータ読取り可能媒体 Download PDFInfo
- Publication number
- JP2004015813A JP2004015813A JP2003165715A JP2003165715A JP2004015813A JP 2004015813 A JP2004015813 A JP 2004015813A JP 2003165715 A JP2003165715 A JP 2003165715A JP 2003165715 A JP2003165715 A JP 2003165715A JP 2004015813 A JP2004015813 A JP 2004015813A
- Authority
- JP
- Japan
- Prior art keywords
- key exchange
- key
- packet
- message
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Lock And Its Accessories (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】ネットワーク上のデバイスが、ネットワークを介した単一のラウンドトリップで交換を実行できるようにするための相互認証を使用した安全な鍵交換を提供すること。
【解決手段】確立される鍵を含まない鍵交換イニシエータパケットが、ネットワークを介して開始デバイスから他のデバイスに送られる。鍵交換イニシエータパケットが妥当性検査され、他方のデバイスが鍵を生成するために開始デバイスからいかなる追加のパケットも受け取る必要なしに鍵を生成する。鍵を含まない鍵交換応答パケットが開始デバイスに戻され、これが鍵交換応答パケットを妥当性検査し、いかなる追加のパケットも他方のデバイスに送るかまたは他方のデバイスから受け取る必要なしに鍵を生成する。
【選択図】 図2
【解決手段】確立される鍵を含まない鍵交換イニシエータパケットが、ネットワークを介して開始デバイスから他のデバイスに送られる。鍵交換イニシエータパケットが妥当性検査され、他方のデバイスが鍵を生成するために開始デバイスからいかなる追加のパケットも受け取る必要なしに鍵を生成する。鍵を含まない鍵交換応答パケットが開始デバイスに戻され、これが鍵交換応答パケットを妥当性検査し、いかなる追加のパケットも他方のデバイスに送るかまたは他方のデバイスから受け取る必要なしに鍵を生成する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、セキュリティおよび安全な(secure)ネットワーク通信に関し、さらに詳細には、相互認証を使用した安全な鍵交換(key exchange)に関する。
【0002】
【従来の技術】
従来の専用コンソールを備えたゲームシステムは、限定数のプレーヤ(たとえば2〜4人)に対処するスタンドアロン型マシンであった。パーソナルコンピュータベースのゲーム人気が高まった原因は、一部には、インターネットを介して多くのリモートプレーヤとオンラインでゲームプレイができることからであった。したがって、専用ゲームシステムの傾向の1つは、インターネットベースのオンラインゲームなどのネットワークを介したゲームを容易にするための機能を提供することである。
【0003】
オンラインゲームは、集中型サーバ方式またはピアツーピア方式で実施可能である。集中型サーバ方式では、ゲームシステムが1つまたは複数の集中型サーバに接続され、この集中型サーバを介して相互に対話する。ピアツーピア方式では、ゲームシステムが相互に接続され、相互に直接対話する。ただしピアツーピア方式の場合でも、ゲームシステムが相手を探すのを助ける初期対戦相手決定サービス(initial match−making service)などのように、集中型サーバを使用して通信を支援することができる。
【0004】
【非特許文献1】
Bruce Schneier, ”Applied Cryptography: Protocols, Algorithms, and Source Code in C,” John Wiley & Sons, copyright 1994 (second edition1996)
【0005】
【非特許文献2】
W. Diffie and M. E. Hellman, ”New directions in Cryptography”,IEEE Transactions on Information Theory v.IT−12, n.6 Nov 1976, pp.644−654
【0006】
【発明が解決しようとする課題】
こうした集中型サーバを使用する際に生じる問題の1つが、サーバとゲームシステムとの間のネットワークトラフィックが、ネットワーク上の他のデバイスによって不正変更または監視されるのを防ぐことである。ゲームをする人というのは、独創的な不正メカニズムを開発し、ネットワークトラフィックをそうしたユーザの絶好のターゲットにしてしまうものである、という悪い評判が広まっている。残念ながら、以前のコンソールベースのゲームシステムは、典型的には集中型サーバとの安全な通信を提供するものではなかった。もう1つの問題は、ゲームシステムのリソースはゲームプレイに充てなければならないため、ネットワークトラフィックの保護に使用されるいかなるメカニズムも、こうしたリソースを大量に必要とするものであってはならないことである。さらに、より少ない集中型サーバでより多くのゲームシステムを処理できるようにするために、メカニズムは集中型サーバのリソースを大量に必要とするものであってもならない。
【0007】
【課題を解決するための手段】
これらおよびその他の問題を解決するのが、本明細書で論じる相互認証を使用した安全な鍵交換である。
【0008】
本発明の一目的は、相互認証を使用した安全な鍵交換を提供することである。
【0009】
ある実施形態によれば、ネットワーク上のデバイスとの鍵交換は、ネットワークを介した単一のラウンドトリップ(roundtrip)で実行され、デバイスとの相互認証およびパーフェクトフォワードシークレシ(perfect forward secrecy)の両方を達成する。
【0010】
ある実施形態によれば、確立される鍵を含まない鍵交換イニシエータパケット(key exchange initiator packet)が、ネットワークを介してデバイスに送られる。同じく鍵を含まない鍵交換応答パケット(key exchange response packet)が、デバイスから受け取られる。鍵交換応答パケットが妥当性検査され、鍵は、少なくとも一部は鍵交換応答パケット中のデータに基づいて、鍵を生成するためにいかなる追加のパケットもデバイスに送るかまたはデバイスから受け取る必要なしに生成される。
【0011】
ある実施形態によれば、確立される鍵を含まない鍵交換イニシエータパケットが、ネットワークを介してデバイスから受け取られ、妥当性検査される。鍵は、少なくとも一部は鍵交換イニシエータパケット中のデータに基づいて、鍵を生成するためにいかなる追加のパケットもデバイスから受け取る必要なしに生成される。さらに、鍵を含まない鍵交換応答パケットが、ネットワークを介してデバイスに送られる。
【0012】
【発明の実施の形態】
本明細書全体にわたり、同じ構成要素および/または特徴を表すには同じ符号が使用される。
【0013】
以下の議論は、ネットワーク化されたデバイスに関する相互認証を使用した安全な鍵交換メカニズムを対象とするものである。この議論では、読者が暗号化、復号、認証、ハッシング、およびデジタル署名などの基本的な暗号法に精通しているものと想定される。基本暗号法入門として、読者はたとえば非特許文献1を対象とする。
【0014】
図1は、相互認証を使用した安全な鍵交換が使用可能な例示的環境100を示す構成図である。クライアントデバイス102は、鍵配布センタ104およびサーバデバイス106に結合される。デバイス102と鍵配布センタ104との結合は、デバイス102とセンタ104との間の通信を可能にする任意の様々な結合が可能である。同様に、デバイス102と106の間の結合も、デバイス102とデバイス106との間の通信を可能にする任意の様々な結合が可能である。一実施では、結合はインターネットを含み、任意選択として1つまたは複数の他のネットワーク(たとえばローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN))を含むこともできる。
【0015】
図1には単一のクライアントデバイス102、単一のセンタ104、および単一のサーバデバイス106のみが示されているが、環境100はこうしたデバイスおよびセンタを複数含むことができる。たとえば、複数のクライアントデバイス102が、1つまたは複数の鍵配布センタ104および1つまたは複数のサーバデバイス106と通信することができる。
【0016】
クライアントデバイス102とサーバデバイス106との間の通信、ならびにクライアントデバイス102と鍵配布センタ104との間の通信は、任意の様々な異なるパケット形式が可能である。一実施例では、通信はユーザデータグラムプロトコル(UDP/User Datagram Protocol)形式である。
【0017】
鍵配布センタ104は鍵およびセキュリティチケットをクライアントデバイス102に配布し、これをサーバデバイス106との安全な鍵交換で使用することができる。サーバデバイス106はクライアントデバイス102にサービスを提供するか、またはクライアントデバイス102にサービスを提供する他のデバイス(図1には図示せず)へのゲートウェイとして動作する。
【0018】
クライアントデバイス102は、任意の多種多様なデバイスであってよい。本明細書の考察の中には、クライアントデバイス102をゲームコンソールと呼ぶものもある。こうしたゲームコンソールは、専用ゲームコンソールであるかまたは追加の機能を含むものであってよい。たとえばゲームコンソールは、デジタルVCRとして動作できるようにデジタルビデオレコーディング機能を含むこと、テレビジョン信号(同報通信信号、ケーブル信号、衛星放送信号などのいずれか)を同調および復号できるようにチャネル同調機能を含むこと、などが可能である。クライアントデバイス102は、デスクトップPC、ポータブルコンピュータ、携帯電話、インターネット機器、サーバコンピュータなどの、他のタイプのコンピュータデバイスであってもよい。
【0019】
環境100では、クライアントデバイス102とサーバデバイス106との間の相互認証を使用した安全な鍵交換が望ましい。これにより、デバイス102および106が互いに認証し合うことが可能になり、さらに1つまたは複数の暗号鍵を確立し、安全でないネットワーク(たとえばインターネット)を介して相互に安全に通信するためにデバイス102および106の基礎として使用することが可能になる。
【0020】
相互認証を使用した安全な鍵交換を実行するために、鍵配布センタ104からセキュリティチケットが取得される。一実施例では、セキュリティチケットは、単一チケットで、特定のクライアントデバイス102のアイデンティティおよびクライアントデバイス102の1つまたは複数のユーザのユーザアイデンティティを認証する、ケルベロスのような認証プロトコルを使用して、クライアントデバイス102によって取得されるケルベロスチケットである。クライアントデバイス102は、ケルベロスチケットを以下のように取得する。
【0021】
考察上、クライアントデバイス102はゲームコンソールであると想定し、さらに4人のゲームコンソールユーザがいると想定する。それぞれのユーザにはアイデンティティU1、U2、U3、およびU4が与えられ、ユーザ鍵K1、K2、K3、およびK4が割り当てられる。ゲームコンソールには、それ自体のアイデンティティCおよびゲームコンソール鍵KCも割り当てられる。さらに、ゲームディスクなどのゲームコンソール上でプレイされるゲームタイトルには、別のアイデンティティGが割り当てられる。同様の方法で、サーバデバイス106にはそれ自体のアイデンティティAおよび鍵KAが割り当てられる。本明細書に記載された認証は、ある程度、鍵K1、K2、K3、およびK4、KC、ならびに鍵KAに依存するものであることに留意されたい。したがって、これらの鍵を選択および格納する際には、それらの鍵を割り当てられたエンティティのみがそれらを使用できることに注意を払わなければならない。
【0022】
ゲームコンソールは、ユーザアイデンティティU1、U2、U3、およびU4ならびにユーザ鍵K1、K2、K3、およびK4に基づいて、妥当性検査済みのユーザアイデンティティを生成する。より具体的に言えば、妥当性検査済みのユーザアイデンティティには、ユーザ鍵から導出されたユーザアイデンティティおよび値が含まれる。妥当性検査済みのユーザアイデンティティは要求と共に鍵配布センタ104に提出され、ゲームコンソールがユーザ鍵の知識を持っているために暗黙的にユーザを認証することを、鍵配布センタに実証するために使用される。
【0023】
様々なメッセージおよび鍵が算出される方法を簡単に説明するために、次の表記法を導入する。
【0024】
H=HKx(M):Hとは、鍵Kxを使用するメッセージMの鍵付き一方向ハッシュ(MAC)である。いかなるMACアルゴリズムも使用できる。こうしたMACアルゴリズムの一例が、IETF RFC2104に従ったHMACアルゴリズムである。
【0025】
EncryptedM=EKx(M):EncryptedMとは、鍵Kxを使用するメッセージMの暗号化形式である。いかなる暗号化アルゴリズムも使用できる。こうした暗号化アルゴリズムの例に、DES、トリプルDES、およびRC4−HMACが含まれる。
【0026】
鍵導出値(key derivative value)を生成する方法の1つが、ゲームコンソールの鍵を使用して、ユーザ鍵の暗号ハッシュを算出することである。鍵K1を持つユーザU1の場合、ハッシュH1は次のように算出される。
H1=HKc(K1)
【0027】
ハッシュH1が鍵導出値を形成する。他の方法は、ユーザ鍵K1を使用して次のように現在時刻を暗号化することである。
H1=EK1(T)
【0028】
結果として生じる値H1が、鍵導出値を再度形成する。妥当性検査済みユーザアイデンティティは、次のように、ユーザアイデンティティU1および対応する鍵導出値H1の組合せである。
Validated User Identity=(U1,H1)
【0029】
ゲームコンソールは、ゲームコンソールアイデンティティC、ゲームタイトルアイデンティティG、サーバデバイス106のサーバアイデンティティA、ならびに複数の妥当性検査済みユーザアイデンティティ(U1,H1)、(U2,H2)、(U3,H3)、および(U4,H4)を含む要求を構築する。要求は、次のようなアイデンティティ文字列を有する。
Request=[C,G,A,(U1,H1),(U2,H2),(U3,H3),(U4,H4)]
【0030】
さらに要求は、あるバージョンの認証プロトコル、およびリプレイ攻撃を阻止するためにゲームコンソールによって生成されるランダムノンス(nonce)を含むことができる。要求は、アイデンティティ文字列全体の受取りを検証するために使用される、チェックサム値も含むことができる。ゲームコンソールは、鍵配布センタ104への結合を介して要求を提出する。
【0031】
鍵配布センタ104は、要求ならびに要求に含まれるアイデンティティを評価する。鍵配布センタ104は、サーバデバイス106用に使用されるランダムセッション鍵を生成する。この例では、鍵配布センタは、ゲームコンソール102がサーバデバイス106と通信しながら使用するためのランダムセッション鍵KCAを生成する。本明細書ではこのランダムセッション鍵KCAをケルベロスセッション鍵とも呼ぶ。
【0032】
鍵配布センタがチケットを生成し、その後そのチケットがゲームコンソールによってサーバデバイス106に提示されることになる。サーバデバイス106向けに発行されるチケットは1つであるが、このチケットは複数のユーザに対して有効である。チケットには、要求で提出されたアイデンティティ文字列が含まれる。さらに、チケットが生成された時間TG、チケットの期間が満了するまでの時間長さを識別する時間TL、およびサーバデバイス106向けにランダムに生成されたケルベロスセッション鍵KCAも含まれる。チケットは、任意選択で、ゲームコンソールのユーザがアクセスを許可されているサーバデバイス106を介して使用可能なサービスおよび/またはサービスデバイスを識別する、サービスマップSmを含むこともできる。鍵配布センタは、どのユーザがどのサービスへのアクセスを許可されているか(たとえばどのユーザが、1つまたは複数の割増料金(premium)サービスにアクセスするための割増料金を払ったか)についての記録を維持するか、あるいは記録を維持する他のデバイスまたはセンタにアクセスする。チケットの内容は、サーバデバイスの鍵KAを以下のように使用する対称鍵暗号(たとえばトリプルDES)を介して暗号化される。
【0033】
【数1】
【0034】
チケットは対応する鍵導出値Hiを搬送するものでないことに留意されたい。鍵配布センタが鍵導出値を読み取り、ゲームコンソールがユーザ鍵を認識していると確信すると、鍵配布センタはユーザのアイデンティティを発行済のチケット内に配置する。その後サーバデバイス106はチケットが伝えるすべての内容を信頼することになるため、鍵導出値Hiを確認する必要はない。
【0035】
鍵配布センタは、生成されたチケットをゲームコンソールに戻す。ゲームコンソールはサーバデバイスの鍵KAを知らないため、ゲームコンソールがチケットを開いて内容を変更することはできない。鍵配布センタは、添付の暗号化メッセージでセッションセキュリティ鍵も戻す。セッション鍵メッセージには、チケット生成時間TG、チケット満了長さTL、およびセッションセキュリティ鍵KC Aが含まれ、すべての内容は以下のようにゲームコンソールの鍵KCを使用して暗号化される。
【0036】
【数2】
【0037】
セッション鍵メッセージはゲームコンソールの鍵KCで暗号化されるため、ゲームコンソールはセッション鍵メッセージを開いて、セッション時間パラメータおよびセッション鍵を回復することができる。
【0038】
さらに図1を参照すると、いったんクライアントデバイス102(たとえばゲームコンソール)が鍵配布センタ104からチケットを受け取ると、クライアントデバイス102はこのチケットを使用してサーバデバイス106との相互認証を使用した安全な鍵交換を実行することができる。相互認証を使用した安全な鍵交換は、クライアントデバイス102およびサーバデバイス106にお互いを認証させることが可能であり、すなわちクライアントデバイス102はサーバデバイス106が自分の要求するサーバデバイスであることを検証可能であり、サーバデバイス106はクライアントデバイス102が自分の要求するクライアントデバイスであることを検証可能である。さらにデバイス102および106は、他方が特定鍵の知識を有することを検証可能である。
【0039】
鍵交換により、2つのデバイス102および106が、これら2つのデバイス間で共用されるが2つのデバイス間で伝送されることはなく、第三者(たとえばデバイス102および106と同じネットワーク上にある他のデバイス)がデバイス間のラウンドトリップトラフィックに基づいて推定することのできない新しい秘密(secret)を、導出できるようにすることも可能である。一実施例では、デバイスは新しい秘密を導出するためにDiffie−Hellman指数演算(exponentiation operations)を使用する。Diffie−Hellmanに関する他の情報を見ることもできる(たとえば、非特許文献2参照)。デバイス102と106との間の通信は、通信を暗号化することによって保護可能であるか、あるいは暗号化なしに実行することができる。
【0040】
図2は、クライアントデバイスとサーバデバイスとの間で相互認証を使用して安全な鍵交換を実行するための、例示的なプロセス150を示す流れ図である。図2のプロセスは、図2の左側に示されたクライアントデバイスによって実行されるオペレーションと、図2の右側に示されたサーバデバイスによって実行されるオペレーションにより、クライアントデバイスおよびサーバデバイスの両方によって実施される。図2のプロセスは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図2のプロセスは、図1の構成要素を参照して論じられる。さらにプロセスは、クライアントデバイスとサーバデバイスとの間のプロセスとして示されているが、互いの間に安全な通信チャネルを確立することが望ましい任意の2つのデバイスによって実行することもできる(たとえば、プロセスは2つのクライアントデバイスまたは2つのサーバデバイスによって実行することができる)。
【0041】
初めに、クライアントデバイス102は鍵交換イニシエータパケットを生成し、このパケットをサーバデバイス106に送信する(動作152)。サーバデバイス106は鍵交換イニシエータパケットを受け取り、受け取ったパケットの妥当性を検査する(動作154)。パケットの妥当性が検査されると、サーバデバイス106は、クライアントデバイス102との通信を安全にするために使用される暗号鍵を生成する(動作156)。一実施例では、これらの暗号鍵は、2つのデバイス間で2地点間通信を安全にするために使用されるセキュリティアソシエーション(security association)鍵である。
【0042】
次いでサーバデバイス106は鍵交換応答パケットを生成し、生成されたパケットをクライアントデバイス102に送信する(動作158)。クライアントデバイス102は鍵交換応答パケットを受け取り、受け取ったパケットの妥当性を検査する(動作160)。パケットの妥当性が検査されると、クライアントデバイス102は、サーバデバイス106との通信を安全にするために使用される暗号鍵を生成する(動作162)。暗号鍵は、動作156でサーバデバイス106によって生成されたものと同じである。したがって、クライアントデバイス102およびサーバデバイス106は最後にはどちらも同じ暗号鍵になるが、それらの間で実際に鍵を伝送しなくても終わる。
【0043】
プロセス150は、パーフェクトフォワードシークレシを維持することに留意されたい。パーフェクトフォワードシークレシとは、たとえ第三者に以前の秘密の知識がある可能性があっても、その第三者は新しい秘密を推定できないことを言う。したがって、たとえば第三者(たとえば他のデバイス)がセッション鍵KCA、またはクライアントデバイス102とサーバデバイス106との間で以前に確立された鍵を発見しても、その第三者は安全な鍵交換プロセス150から生成される新しい鍵を推定できないことになる。これは、たとえば第三者に、プロセス150で使用されるDiffie−Hellman値(以下でより詳細に論じる)の知識がないためである。
【0044】
さらに、クライアントデバイス102とサーバデバイス106との間では、2つのパケット、すなわち鍵交換イニシエータパケットおよび鍵交換応答パケットだけを通信すればよいことがわかる。したがって、相互認証を使用した安全な鍵交換を実行するために必要となるのは、単一のラウンドトリップ(クライアントデバイス102からサーバデバイス106へのパケット、およびサーバデバイス106からクライアントデバイス102への戻りパケット)のみである。この単一のラウンドトリップは、使用されるパケット数を減らすことによって、待ち時間を減らし、鍵の確立およびデバイスの相互認証において帯域幅オーバヘッドを減らす働きをする。
【0045】
プロセス150について、図3〜6を参照しながら以下でより詳細に論じる。図3は動作152をより詳細に示し、図4は動作154をより詳細に示し、図5は動作156および158をより詳細に示し、図6は動作160および162をより詳細に示す。
【0046】
図3は、鍵交換イニシエータパケットを生成および送信するための、例示的なプロセス200を示す流れ図である。図3は、図2の動作152をより詳細に示す図である。図3のプロセスはクライアントデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図3のプロセスは、図1の構成要素を参照して論じられる。
【0047】
初めに、クライアントデバイス102が鍵交換イニシエータメッセージを生成する(動作202)。鍵交換イニシエータメッセージは、以下のように、NonceInitと呼ばれるクライアントデバイス102によって生成されるランダム(または擬似ランダム)値を含み、さらにDiffie−Hellman(gX mod N)値も含み(この式のXもクライアントデバイス102によって生成されるランダム(または擬似ランダム)値である)、さらに鍵交換プロセスが完了するとこのクライアント/サーバ通信チャネルを一意に定義する際に使用されることになる、セキュリティパラメータインデックス値(SPI1)も含む。
InitMess=[NonceInit,SPI1,(gX mod N)]
【0048】
次いでクライアントデバイス102は、鍵配布センタ104から受け取ったケルベロスセッション鍵KCAを使用して、鍵交換イニシエータメッセージのダイジェストを算出する(動作204)。ダイジェストは以下のように生成される。
【0049】
【数3】
【0050】
あるいは、HashInitMessの計算で、包括的一方向ハッシュ(鍵付きではない)を使用することもできる。鍵交換のセキュリティは、このハッシュが鍵付きであるか否かに依拠しない。
【0051】
次いでクライアントデバイス102は、ケルベロス認証子(authenticator)を生成する(動作206)。ケルベロス認証子は、タイムスタンプ(たとえばクライアントデバイス102の現在時刻)と、動作204で算出されたHashInitMessダイジェストを含む。タイムスタンプは、クライアントデバイス102がケルベロス認証子を生成するごとにクライアントデバイス102によって増分され、これにより、サーバデバイス106に再実行攻撃(replay attack)をより良く検出させることができる。クライアントデバイス102は、以下のように、ケルベロスセッション鍵KCAを使用してケルベロス認証子を暗号化する(動作208)。
【0052】
【数4】
【0053】
次いでクライアントデバイス102は、鍵交換イニシエータパケットを生成する(動作210)。鍵交換イニシエータパケットは、鍵交換イニシエータメッセージInitMess、暗号化されたケルベロス認証子AuthT、および鍵配布センタ104から受け取ったサーバデバイス106用のケルベロスチケットを含む。前述のように、ケルベロスチケットは、少なくともケルベロスセッション鍵(KCA)、チケットが有効な期間、およびクライアントデバイス102を識別する一意の番号を含み、これらはすべて、鍵配布センタ104およびサーバデバイス106が共用する秘密鍵を使用して暗号化される。SPI値は、クライアントデバイス102とサーバデバイス106との間のセキュリティアソシエーションまたは通信チャネルを識別する。SPI1値はサーバデバイス106からクライアントデバイス102への通信に関連付けられ、SPI2値はクライアントデバイス102からサーバデバイス106への通信に関連付けられる。したがって、鍵交換イニシエータパケットは以下のようになる。
InitPacket=[InitMess,AuthT,Ticket]
【0054】
認証子とチケットの組合せは、ケルベロス用語でAP Requestと呼ばれることに留意されたい。次いでクライアントデバイス102は、鍵交換イニシエータパケットをサーバデバイス106に送信する(動作212)。
【0055】
図4は、鍵交換イニシエータパケットを受信および妥当性検査するための、例示的なプロセス250を示す流れ図である。図4は、図2の動作154をより詳細に示す図である。図4のプロセスはサーバデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図4のプロセスは、図1の構成要素を参照して論じられる。
【0056】
初めに、サーバデバイス106は鍵交換イニシエータパケットInitPacketを受信する(動作252)。一実施では、サーバデバイス106はすべての鍵交換イニシエータパケットが所定の形式および所定のサイズであることを予測する。サーバデバイス106は、この所定の形式および所定のサイズに当てはまらないいずれの鍵交換イニシエータパケットも無視する。あるいは、サーバデバイス106は、様々な形式および/または様々なサイズの鍵交換イニシエータパケットを可能にすることができる。
【0057】
いったん鍵交換イニシエータパケットが受信されると、サーバデバイス106は、サーバデバイス106が鍵配布センタ104と共用する鍵を使用して、ケルベロスチケットを復号する(動作254)。次いでサーバデバイス106は、復号されたチケットをチェックして、チケットが失効(stale)していないかどうかを判別する(動作256)。現在時刻が(チケットで識別された)チケットの有効な期間内に含まれる場合、チケットは失効していない。ただし、現在時刻がチケットの有効な期間内に含まれない場合、チケットは失効している。ケルベロスチケットが失効している場合、鍵交換プロセスは失敗し(動作258)、その結果、クライアントデバイス102とサーバデバイス106との間にセキュリティアソシエーションは確立されない。動作258の一部として、サーバデバイス106は、鍵交換プロセスが失敗したことをクライアントデバイス102に通知するか、あるいはサーバデバイス106は、受信したInitPacketを削除するだけでクライアントデバイス102に通知しないことができる。
【0058】
ただし、ケルベロスチケットが失効していない場合、サーバデバイス106は、復号されたケルベロスチケットから回復されたケルベロスセッション鍵KCAを使用して、ケルベロス認証子AuthTを復号する(動作260)。次いでサーバデバイス106は、ケルベロス認証子中のタイムスタンプTimeにアクセスし、タイムスタンプが受入れ可能であるかどうかを調べる(動作262)。タイムスタンプは、サーバデバイス106の現在時刻とそれほど同期が外れていなければ、受入れ可能である。一実施例では、タイムスタンプがサーバデバイス106の現在時刻からの時間しきい値(たとえば、推奨されるケルベロス時間スキュー(skew)である5分)の範囲内であれば、タイムスタンプは受入れ可能である。タイムスタンプが受入れ可能でなければ、鍵交換プロセスは失敗する(動作258)。
【0059】
タイムスタンプが受入れ可能な場合、サーバデバイス106は鍵交換メッセージInitMessのダイジェストを算出する(動作264)。サーバデバイス106は、図3の動作204でクライアントデバイス102がダイジェストを算出したのと同じ方法で、ダイジェストを算出する。次いでサーバデバイス106は、動作264で算出したダイジェスト値が、暗号化されたケルベロス認証子AuthTの一部としてクライアントデバイス102から受信したダイジェスト値に一致する(等しい)かどうかを調べる(動作266)。2つのダイジェスト値が同じであれば、クライアントデバイス102とサーバデバイス106との間の鍵交換メッセージInitMessが変更されていない(たとえば、鍵交換メッセージInitMessが不正変更されていない)ことを確認する働きをする。2つのダイジェスト値が一致しない場合(言い換えれば、2つのダイジェスト値が等しくない場合)、鍵交換プロセスは失敗する(動作258)。
【0060】
ただし、受信したダイジェスト値と算出されたダイジェスト値が一致した場合、サーバデバイス106はケルベロス認証子が再実行されたかどうかを調べる(動作268)。サーバデバイス106は、各クライアントデバイスCから受信したそれぞれのケルベロス認証子(ケルベロスチケットに示されている)からのタイムスタンプの記録を維持する。サーバデバイス106が、サーバデバイス106によって記録された最後のタイプスタンプよりも新しくないタイムスタンプTimeの付いたケルベロス認証子を受信すると、サーバデバイス106はケルベロス認証子が再実行されたものであることを知る。ケルベロス認証子が再実行されたものであれば、鍵交換イニシエータパケットは無効であり、鍵交換プロセスは失敗する(動作258)。ただし、ケルベロス認証子が再実行されたものでなければ、鍵交換イニシエータパケットはサーバデバイス106によって妥当性検査されている(動作270)。これらの試験すべてに適合し、動作270で鍵交換イニシエータパケットの妥当性が検査されると、サーバデバイス106はクライアントデバイス102が実際に自分の要求したデバイスであると認証し、サーバデバイス106は、クライアントデバイス102にケルベロスセッション鍵KCAの知識があることを検証し、クライアントにKCの知識があることも(鍵配布センタの信用を通じて間接的に)検証する。
【0061】
図5は、暗号鍵を生成するため、ならびに鍵交換応答パケットを生成および送信するための例示的プロセス300を示す流れ図である。図5は、図2の動作156および158をさらに詳細に示す図である。図5のプロセスはサーバデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図5のプロセスは、図1の構成要素を参照して論じられる。
【0062】
初めに、サーバデバイス106は、鍵交換イニシエータメッセージInitMess、ケルベロスセッション鍵KCA、クライアントデバイス102からのノンス(NonceInit)、およびサーバデバイス106によって生成されたノンス(NonceResp)に基づいて暗号鍵を生成する(動作302)。サーバデバイス106は、ランダム(または擬似ランダム)数Y、ならびにNonceRespと呼ばれるランダム値を生成する。さらにサーバデバイス106は、Diffie−Hellman値(gXY mod N)ならびにDiffie−Hellman値(gY mod N)を算出する。この時点で、サーバデバイス106はセキュリティアソシエーション鍵を算出するのに十分なデータを有する。セキュリティアソシエーション鍵は、2つのコンソール間での2地点間通信を安全にするために使用される。一実施例では、サーバデバイス106は2つのDiffie−Hellman値((gX mod N)および(Y))を使用して関数(gXY mod N)を算出する。次いでサーバデバイス106は、値NonceInit、NonceResp、(gXY mod N)、およびケルベロスセッション鍵KCAに基づいて、様々なアルゴリズムを使用して様々なダイジェストを算出する。次いでこれらのダイジェストは、セキュリティアソシエーション鍵を形成するために使用される。一実施例では、サーバデバイス106が、NonceInit、NonceResp、(gXY mod N)を入力として使用し、ケルベロスセッション鍵KCAを双方向ですべてのセキュアパケットを認証および暗号化/復号するためのセキュリティ鍵として使用して、4つの異なるダイジェスト(1つの鍵を認証用、1つの鍵を暗号用に、それぞれの方向用に2倍して合計4つ)を算出する。
【0063】
次いでサーバデバイス106は、鍵交換応答メッセージを生成する(動作304)。鍵交換応答メッセージは、以下のように、NonceInit、クライアントデバイス102から受信したタイムスタンプTime、NonceResp、Diffie−Hellman値(gY mod N)、およびSPI2値を含む。
RespMess=[NonceInit,SPI2,NonceResp,(gY mod N)]
【0064】
SPI2値はサーバデバイス106によって生成され、クライアントデバイス102からサーバデバイス106へのすべての通信に関連付けられる。次いでサーバデバイス106は、以下のように、ケルベロスセッション鍵を使用して応答メッセージのダイジェストおよびハッシュ関数Hを算出する(動作306)。
【0065】
【数5】
【0066】
動作306のハッシュ関数Hは、動作204のハッシュ関数Hと同じであるか、または異なるハッシュ関数Hであってよい。
【0067】
次いでサーバデバイス106は、以下のように、算出されたハッシュダイジェストおよびケルベロス認証子からのタイムスタンプTimeの両方を含む、ケルベロス回答メッセージを生成する(動作308)。
ReplyMess=[HashRespMess,Time]
【0068】
次いでサーバデバイス106は、以下のように、暗号化アルゴリズムE(たとえばトリプルDES)およびケルベロスセッション鍵KCAを使用してケルベロス回答メッセージReplyMessを暗号化する(動作310)。
【0069】
【数6】
【0070】
動作308の暗号化アルゴリズムEは、図3の動作206で使用される暗号化アルゴリズムと同じであるか、または異なる暗号化アルゴリズムであってよい。
【0071】
次いでサーバデバイス106は、以下のように、鍵交換応答メッセージRespMessおよび暗号化されたケルベロス回答メッセージEncryptedReplyMessを含む、鍵交換応答パケットを生成する。
RespPacket=[RespMess,EncryptedReplyMess]
【0072】
次いでサーバデバイス106は、鍵交換応答パケットRespPacketをクライアントデバイス102に送信する(動作314)。
【0073】
図6は、鍵交換応答パケットを受信および妥当性評価するため、および暗号鍵を生成するための、例示的なプロセス350を示す流れ図である。図6は、図2の動作160および162をより詳細に示す図である。図6のプロセスはクライアントデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図6のプロセスは、図1の構成要素を参照して論じられる。
【0074】
初めに、クライアントデバイス102は、サーバデバイス106から鍵交換応答パケットRespPacketを受信する(動作352)。クライアントデバイス102は、ケルベロスセッション鍵KCAを使用して、ケルベロス回答メッセージEncryptedReplyMessを復号する(動作354)。次いでクライアントデバイス102は、復号された回答メッセージ中のタイムスタンプTimeが、クライアントデバイス102がサーバデバイス106に送信したタイムスタンプTimeと一致するかどうかを調べる(動作356)。タイムスタンプが一致する場合(言い換えれば、タイムスタンプが等しい場合)、その一致により、サーバデバイス106がケルベロスチケット(KAの知識を証明する)およびケルベロス認証子(したがってケルベロスセッション鍵KCAの知識を有する)を復号できたことが確認され、実際にサーバデバイス106が自分の要求したものであることが確認される。したがってこれらのタイムスタンプ値が一致すれば、サーバデバイス106はクライアントデバイス102に対して認証され、この時点で、完全な相互認証が達成された(サーバはクライアントに対してKAの知識を証明し、クライアントはサーバに対してKCの知識を証明した)。
【0075】
タイムスタンプ値が一致しなければ、図4の動作258と同様に、鍵交換プロセスは失敗する(動作358)。ただし、タイムスタンプ値が一致する場合、サーバデバイス106はクライアントデバイス102に対して認証され、続いてクライアントデバイス102は、ケルベロスセッション鍵KCAを使用して鍵交換応答メッセージRespMessのダイジェストを算出する(動作360)。クライアントデバイス102は、図5の動作306でサーバデバイス106がダイジェストを算出したのと同じ方法で、ダイジェストを算出する。次いでクライアントデバイス102は、自分が動作360で算出したダイジェスト値が、暗号化されたケルベロス回答メッセージEncryptedReplyMessの一部としてサーバデバイス106から受信したダイジェスト値と一致する(等しい)かどうかを調べる(動作362)。2つのダイジェスト値が同じであれば、サーバデバイス106とクライアントデバイス102との間の鍵交換応答メッセージRespMessが変更されていない(たとえば、鍵交換応答メッセージRespMessが不正変更されていない)ことを確認する働きをする。2つのダイジェスト値が一致しない場合(言い換えれば、2つのダイジェスト値が等しくない場合)、鍵交換プロセスは失敗する(動作358)。
【0076】
ただし、2つのダイジェスト値が一致すれば、クライアントデバイス102は、ケルベロスセッション鍵KCA、NonceInit、NonceResp、およびgXY mod Nに基づいて暗号鍵を生成する(動作364)。図5の動作302に関して上記で考察したのと同様に、この時点でクライアントデバイス102には、Diffie−Hellman値(gXY mod N)を算出し、セキュリティアソシエーション鍵を算出するのに十分なデータがある。動作364でクライアントデバイス102によって算出されるセキュリティアソシエーション鍵は、図5の動作302でサーバデバイス106によって算出されるものと同じであり、同じ方法で算出される。gXY mod Nは、クライアントデバイスのgY mod NおよびXから算出されることに留意されたい。
【0077】
いったんクライアントデバイス102がセキュリティアソシエーション鍵を持てば、デバイス102は、鍵交換の完了を待っていたいかなるパケットも自由に伝送することができる。ただしサーバデバイス106は、たとえ同じ鍵セットを持っていてもその応答メッセージRespMessが失われたことを確認できないため、自由に伝送することはできない。サーバデバイス106は、算出されたセキュリティアソシエーション鍵で認証されたパケットをクライアントデバイス102から受信するまで、あるいは任意選択でクライアントデバイス102から肯定応答パケット(AckPack)を受信するまで、待機する。
【0078】
一般には、クライアントデバイス102がサーバデバイス106にパケットを送信するため、鍵交換プロセスは2つのパケット、すなわちInitPacketおよびRespPacketのみで構成される。あるいは、クライアントデバイス102がまだパケットを送信していなければ、クライアントデバイス102は人工の肯定応答パケット(「AckPack」と表記される)を送信することになる。このパケットは他の2つの鍵交換パケットとは異なり、ケルベロスセッション鍵KCAの代わりに算出されたセキュリティアソシエーション鍵を使用してAckPackがハッシュされる。
【0079】
これ以降、2つのデバイス102および104はセキュリティアソシエーション鍵を使用して通信を安全にする。他方のデバイスに伝送する必要のあるすべてのネットワークパケットは、任意選択で暗号化された後、受信側デバイスがパケットのコンテンツを復号する前に認証データを検証することによって認証される。デバイス102および104はいずれも、同じノンスを含む他方側からの鍵交換パケットを無視することができる。
【0080】
図7は、例示的なオンラインゲーム環境400を示す構成図である。複数のゲームコンソール402(1)、402(2)、...、402(n)が、ネットワーク406を介してセキュリティゲートウェイ404に結合される。ネットワーク406は、様々な従来のデータ通信ネットワークのうちの任意の1つまたは複数を表したものである。ネットワーク406は、典型的にはパケット交換ネットワークを含むが、回路交換ネットワークを含んでもよい。ネットワーク406は、有線および/または無線部分を含むことができる。一実施例では、ネットワーク406はインターネットを含み、任意選択で1つまたは複数のローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)を含むことができる。ネットワーク406の少なくとも一部は、公然とアクセスできるネットワークを示す、公衆ネットワークである。仮想上はだれでも公衆ネットワークにアクセスすることができる。
【0081】
状況によっては、ネットワーク406は、ゲームコンソール402とセキュリティゲートウェイ404との間に位置する経路指定デバイスを備えたLAN(たとえばホームネットワーク)を含む。この経路指定デバイスはネットワークアドレス変換(NAT)を実行することが可能であり、これによって、LAN上の複数のデバイスがインターネット上で同じIPアドレスを共用し、LAN上のデバイスが悪意のユーザまたは有害なユーザによってインターネットを介してアクセスされるのを防ぐファイアウォールとして動作することもできる。
【0082】
セキュリティゲートウェイ404は、公衆ネットワーク406と私設ネットワーク408との間のゲートウェイとして動作する。私設ネットワーク408は、ローカルエリアネットワークなどの多種多様な従来のネットワークのうちいずれであってもよい。私設ネットワーク408ならびに以下でより詳細に論じる他のデバイスは、セキュアゾーンとして動作するデータセンタ410内にある。データセンタ410は、信頼のある通信を介して通信する信頼のあるデバイスで構成される。したがって、セキュアゾーン410内での暗号および認証は不要である。ネットワーク408の私的な性格はネットワーク408の限られたアクセス可能性と呼ばれ、すなわちネットワーク408へのアクセスは一定の個人にのみ制限される(たとえば、データセンタ410の所有者またはオペレータによって制限される)。
【0083】
セキュリティゲートウェイ404は、1つまたは複数のセキュリティゲートウェイコンピューティングデバイスのクラスタである。これらのセキュリティゲートウェイコンピューティングデバイスがまとまって、セキュリティゲートウェイ404を実施する。セキュリティゲートウェイ404は、任意選択で、セキュリティゲートウェイコンピューティングデバイスによって処理されるように、要求をそれらコンピューティングデバイスのうちの適切なものに向けて送るように動作する、1つまたは複数の従来の負荷バランシングデバイスを含むことが可能である。この送ることまたは負荷バランシングは、様々なセキュリティゲートウェイコンピューティングデバイスにかかる負荷のバランスをほぼ等しくしようとする方法で(あるいは何らかの他の基準に従って)実行される。
【0084】
さらにデータセンタ410内には、1つまたは複数の監視サーバ412と、1つまたは複数のプレゼンス(presence)および通知フロントドア(front door)414、1つまたは複数のプレゼンスサーバ416、ならびに1つまたは複数の通知サーバ418(まとまってプレゼンスおよび通知サービスを実施する)と、1つまたは複数のマッチ(match)フロントドア420および1つまたは複数のマッチサーバ422(まとまってマッチサービスを実施する)と、1つまたは複数の統計フロントドア424および1つまたは複数の統計サーバ426(まとまって統計サービスを実施する)がある。サーバ416、418、422、および426はゲームコンソール402にサービスを提供するため、サービスデバイスと呼ばれることもある。サーバ416、418、422、および426のうち1つまたは複数に加えて、および/またはその代わりに、他のサービスデバイスを含めることもできる。さらに、図7にはデータセンタが1つしか示されていないが、ゲームコンソール402と通信可能な複数のデータセンタが存在する場合もある。これらのデータセンタは独立して動作するか、あるいは集合的に動作する(たとえば、1つの大規模データセンタをゲームコンソール102が使用できるようにするため)ことができる。
【0085】
ゲームコンソール402はデータセンタ410から離れた場所に位置し、ネットワーク406を介してデータセンタ410にアクセスする。データセンタ内の1つまたは複数のデバイスとの通信を希望するゲームコンソール402は、コンソール402とセキュリティゲートウェイ404との間にセキュア通信チャネルを確立する。ゲームコンソール402およびセキュリティゲートウェイ404は、行き来して渡されるデータパケットを暗号化および認証し、それによって、暗号を解読せずにデータパケットを取り込むかまたはコピーすることのできる任意の他のデバイスによって理解されることなく、それらの間でデータパケットを安全に伝送できるようにする。ゲームコンソール402からセキュリティゲートウェイ404へ送られる各データパケットに、データを埋め込むことができる。この埋め込まれたデータが、パケットのコンテンツまたはデータコンテンツと呼ばれる。パケットタイプに基づいて、パケットに追加の情報を固有に含めることもできる。
【0086】
コンソール402とセキュリティゲートウェイ404との間のセキュア通信チャネルは、本明細書に記載された相互認証を使用した安全な鍵交換を使用して確立される。コンソール402はそれ自体および鍵配布センタに対するコンソール402の現在のユーザを認証し、鍵配布センタ428からセキュリティチケットを取得する。次いでコンソール402はこのセキュリティチケットを使用して、セキュリティゲートウェイ404とのセキュア通信チャネルを確立する。セキュリティゲートウェイ404とのセキュア通信チャネルを確立する際に、ゲームコンソール402およびセキュリティゲートウェイ404は、それ自体を他方に対して認証し、その特定のゲームコンソール402およびセキュリティゲートウェイ404のみに知られた1つまたは複数のセッションセキュリティ鍵を確立する。このセッションセキュリティ鍵は、ゲームコンソール402とセキュリティゲートウェイクラスタ404との間で転送されるデータを暗号化するために使用されるので、他のデバイス(他のゲームコンソール402を含む)は一切データを読み取ることができない。セッションセキュリティ鍵は、データパケットを、セキュリティゲートウェイ404からのもの、またはデータパケットが自分の発信元であると主張するゲームコンソール402からのものとして認証するためにも使用される。したがって、こうしたセッションセキュリティ鍵を使用して、セキュリティゲートウェイ404と様々なゲームコンソール402との間にセキュア通信チャネルを確立することができる。
【0087】
ゲームコンソール402とセキュリティゲートウェイ404の間にセキュア通信チャネルが確立されると、暗号化されたデータパケットをこの2つの間で安全に伝送することができる。ゲームコンソール402がデータセンタ410内にある特定のサービスデバイスにデータを送信しようとする場合、ゲームコンソール402はそのデータを暗号化し、これをセキュリティゲートウェイ404に送信して、データパケットのターゲットである特定のサービスデバイスにこれを転送するように要求する。セキュリティゲートウェイ404はデータパケットを受信し、このデータパケットを認証および復号した後、パケットのデータコンテンツを他のメッセージにカプセル化して、私設ネットワーク408を介して適切なサービスに送信する。セキュリティゲートウェイ404は、データパケットのターゲットである要求されたサービスに基づいて、メッセージに適したサービスを決定する。
【0088】
本明細書では、主に、暗号化されたデータパケットをセキュリティゲートウェイ404とゲームコンソール402との間で通信することについて論じたが、データパケットによっては部分的に暗号化する(データパケットの一部を暗号化し、他の部分は暗号化しない)こともできる。データパケットのどの部分を暗号化してどの部分を暗号化しないかは、データセンタ410および/またはゲームコンソール402の設計者の希望に基づいて変えることができる。たとえば設計者は、コンソール402のユーザが互いに会話できるように、コンソール402間で音声データを通信できるようにすることを選択し、さらに音声データは暗号化せずに、パケット内の任意の他のデータを暗号化するように選択することができる。さらに別法として、一部のデータパケットには暗号化された部分がないようにする(すなわち、データパケット全体が暗号化されない)ことができる。たとえデータパケットが暗号化されないかまたは部分的にのみ暗号化される場合でも、依然としてデータパケット全体は認証される。
【0089】
同様に、データセンタ410内のサービスデバイスがゲームコンソール402にデータを送ろうとする場合、データセンタは、ゲームコンソール402に送信するデータコンテンツ、ならびにデータコンテンツの送信先である特定のゲームコンソール402のインジケーションを含むメッセージを、私設ネットワーク408を介してセキュリティゲートウェイ404に送信する。セキュリティゲートウェイ404は、このデータコンテンツをデータパケットに埋め込み、その後データパケットを特定のゲームコンソール402のみが復号できるように暗号化し、さらにそのデータパケットをセキュリティゲートウェイ404からのものとしても認証する。
【0090】
セキュリティゲートウェイ404内のそれぞれのセキュリティゲートウェイデバイスは、典型的には1つまたは複数のゲームコンソール402とのセキュア通信チャネルを担当しているため、それぞれのセキュリティゲートウェイデバイスが1つまたは複数のゲームコンソールの管理または処理を担当しているとみなすことができる。様々なセキュリティゲートウェイデバイスは相互に通信し合い、お互いにメッセージを送ることができる。たとえば、管理を担当していないゲームコンソールにデータパケットを送る必要のあるセキュリティゲートウェイデバイスは、他のすべてのセキュリティゲートウェイデバイスに対して、そのゲームコンソールに送信するデータと共にメッセージを送ることができる。このメッセージが、そのゲームコンソールの管理を担当するセキュリティゲートウェイデバイスによって受信され、このデバイスが適切なデータをそのゲームコンソールに送信する。あるいは、セキュリティゲートウェイデバイスが、どのゲームコンソールがどのセキュリティゲートウェイデバイスによって処理されるかを知っている場合があり、これには、各セキュリティゲートウェイデバイスが他のセキュリティゲートウェイデバイスによって処理されるゲームコンソールのテーブルを維持するなどのように明示的な場合、あるいはゲームコンソールの識別子に基づいて、どのセキュリティゲートウェイデバイスが特定のゲームコンソールの担当であるかを決定するなどのように暗黙的な場合がある。
【0091】
監視サーバ412は、データセンタ410内のデバイスに対して、使用不可能なゲームコンソール402について、またはセキュリティゲートウェイ404の使用不可能なセキュリティゲートウェイデバイスについて通知する働きをする。ゲームコンソール402は、ハードウェアまたはソフトウェアの障害、コンソールの電源がデータセンタ410からログアウトせずに遮断される、コンソール402へのネットワーク接続ケーブルがコンソール402から切断される、他のネットワーク問題(たとえばコンソール402が誤作動しているLAN)などの、様々な異なる理由で使用不可能になる場合がある。同様に、セキュリティゲートウェイ404のセキュリティゲートウェイデバイスが、ハードウェアまたはソフトウェアの障害、デバイスの電源が遮断される、デバイスへのネットワーク接続ケーブルがデバイスから切断される、他のネットワーク問題などの、様々な異なる理由で使用不可能になる場合もある。
【0092】
セキュリティゲートウェイ404内のそれぞれのセキュリティゲートウェイデバイスは、1つまたは複数の監視サーバ412によって監視され、このサーバがセキュリティゲートウェイデバイスのうちの1つが使用不可能になったときを検出する。セキュリティゲートウェイデバイスが使用不可能になった場合、監視サーバ412はデータセンタ410内の他のそれぞれのデバイス(サーバ、フロントドアなど)に対して、セキュリティゲートウェイデバイスがもはや使用不可能であるというメッセージを送信する。他のそれぞれのデバイスは、この情報に基づいて適切と思われる動作を実行する(たとえば、セキュリティゲートウェイデバイスによって管理される特定のゲームコンソールがデータセンタ410ともはや通信していないと想定し、それに応じて様々なクリーンアップオペレーションを実行する)ことができる。あるいは、一定のデバイスのみ(たとえば、セキュリティゲートウェイデバイスが使用可能かどうかに関係するデバイスのみ)が、こうしたメッセージを監視サーバ412から受信する場合もある。
【0093】
セキュリティゲートウェイ404は、個々のゲームコンソール402を監視し、ゲームコンソール402のうちの1つが使用不可能になったときを検出する。セキュリティゲートウェイ104が、ゲームコンソールがもはや使用不可能であることを検出すると、セキュリティゲートウェイ104は、使用不可能なゲームコンソールを識別するメッセージを監視サーバ112に送信する。これに応答して監視サーバ412は、データセンタ410の他のそれぞれのデバイス(または選択されたデバイスのみ)に対して、ゲームコンソールがもはや使用不可能であるというメッセージを送信する。他のそれぞれのデバイスはこの情報に基づいて、適切と思われる動作を実行することができる。
【0094】
プレゼンスサーバ416は、オンラインゲームのためにデータセンタ410にログインした所与のユーザの状況または存在に関するデータを保持し、これを処理する。通知サーバ418は、データセンタ410にログインしたプレーヤに向けて発信されるメッセージの複数の待ち行列を維持する。プレゼンスおよび通知フロントドア414は、セキュリティゲートウェイ404とサーバ416および418との間の仲介として動作する、1つまたは複数のサーバデバイスである。フロントドア414として動作する複数のサーバデバイスの間で負荷のバランスを取るために、プレゼンスおよび通知フロントドア414内に1つまたは複数の負荷バランシングデバイス(図示せず)を含めることができる。セキュリティゲートウェイ404は、サーバ416および418に関するメッセージをフロントドア414に送信し、フロントドア414は特定のサーバ416または特定のサーバ418のどちらにメッセージを送信するのかを識別する。フロントドア414を使用することにより、どのサーバがどのユーザに関するデータの管理を担当しているかなどのサーバ416および418の実際の実施が、セキュリティゲートウェイ404から取り出される。セキュリティゲートウェイ404は、プレゼンスおよび通知サービスをターゲットとするメッセージをプレゼンスおよび通知フロントドア414に転送するだけで、メッセージの経路をサーバ416およびサーバ418のうち適切な1つに指定することに関してはフロントドア414に依拠することができる。
【0095】
マッチサーバ422は、オンラインプレーヤの対戦相手を決めることに関するデータを保持し、これを処理する。オンラインユーザは、プレイできるゲームとそのゲームの様々な特徴(たとえば、サッカーゲームが行われる場所、ゲームがデイゲームかナイトゲームか、ユーザの技能レベルなど)を宣伝することができる。その後これらの様々な特徴を、様々なオンラインユーザの対戦相手を決める際の基準として使用することができる。マッチフロントドア420は1つまたは複数のサーバデバイス(および任意選択で負荷バランシングデバイス)を含み、フロントドア414がサーバ416およびサーバ418を取り出したのと同じ方法で、セキュリティゲートウェイ404からマッチサーバ422を取り出す働きをする。
【0096】
統計サーバ426は、オンラインゲーム用の様々な統計に関するデータを保持し、これを処理する。使用される特定の統計(たとえば、得点または時間の上位10人、ゲームのすべてのオンラインプレーヤの世界ランキング、最も多くのアイテムを発見したユーザまたは最も長くプレイしたユーザのリストなど)は、ゲーム設計者の希望に基づいて変えることができる。統計フロントドア426は、1つまたは複数のサーバデバイス(および任意選択で負荷バランシングデバイス)を含み、フロントドア414がサーバ416およびサーバ418を取り出したのと同じ方法で、セキュリティゲートウェイ404から統計サーバ426を取り出す働きをする。
【0097】
したがってセキュリティゲートウェイ404は、データセンタ410のセキュアゾーン内にあるデバイスを、信頼のない公衆ネットワーク406から保護する働きをするとみなすことができる。データセンタ410のセキュアゾーン内での通信は暗号化する必要がなく、データセンタ410内にあるすべてのデバイスは信頼される。ただし、データセンタ410内のデバイスからゲームコンソール402に送られるいかなる情報も、セキュリティゲートウェイクラスタ404を通過し、ここで情報のターゲットとなるゲームコンソール402のみが復号可能な方法で暗号化される。
【0098】
図8は、本明細書に記載された技法を実施するために使用可能な、汎用コンピュータ環境500を示す図である。コンピュータ環境500は、コンピューティング環境の一例に過ぎず、コンピュータおよびネットワークアーキテクチャの使用または機能の範囲に関するいかなる制限も示唆することを意図するものでない。さらにコンピュータ環境500は、例示的なコンピュータ環境500に示された構成要素のうちのいずれか1つまたはいずれかの組合せに関して、いかなる依存関係または要件も有するものとして解釈されるべきでない。
【0099】
コンピュータ環境500は、コンピュータ502の形式の汎用コンピューティングデバイスを含む。コンピュータ502は、たとえば図1のクライアントデバイス102、サーバデバイス106、および/または鍵配布センタ104の一部であるデバイス、図7のセキュリティゲートウェイデバイス404、サーバ412、416、418、422、および/または426、ならびに/あるいは図7のフロントドア414、420、または424であってよい。コンピュータ502の構成要素には、1つまたは複数の処理装置または処理ユニット504と、システムメモリ506と、処理装置504を含む様々なシステム構成要素をシステムメモリ506に結合するシステムバス508とが含まれるが、これらに限定されるものではない。コンピュータ502は、暗号処理装置またはコプロセッサ(co−processor)(図8には図示せず)を含むこともできる。こうした暗号処理装置またはコプロセッサは、暗号オペレーション(暗号化、復号、およびハッシングなど)を実行し、他の処理装置(たとえば処理ユニット504)の計算コストのかかる暗号化オペレーションを軽減するように設計される。
【0100】
システムバス508は、メモリバスまたはメモリコントローラ、周辺バス、高速グラフィックスポート、および様々なバスアーキテクチャのうちのいずれかを使用する処理装置またはローカルバスを含む、任意のいくつかのタイプのバス構造のうちの1つまたは複数を表す。例を挙げると、こうしたアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびメザニンバスとしても知られるPeripheral Component Interconnects(PCI)バスを含むことができる。
【0101】
コンピュータ502は、典型的には様々なコンピュータ読取り可能媒体を含む。こうした媒体は、コンピュータ502がアクセス可能な任意の使用可能媒体であってよく、揮発性媒体および不揮発性媒体、取外し可能(removable)媒体および取外し不能(non−removable)媒体の両方を含む。
【0102】
システムメモリ506は、ランダムアクセスメモリ(RAM)510などの揮発性メモリ、および/または読取り専用メモリ(ROM)512などの不揮発性メモリの形式の、コンピュータ読取り可能媒体を含む。起動中などにコンピュータ502内の要素間での情報転送を助ける基本ルーチンを含む基本入力/出力システム(BIOS)514が、ROM 512に格納される。RAM 510は典型的には、処理ユニット504に即時アクセス可能であり、かつ/または現在処理ユニット504で動作している、データおよび/またはプログラムモジュールを含む。
【0103】
コンピュータ502は、他の取外し可能/取外し不能、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。例を挙げると、図8には、取外し不能の不揮発性磁気媒体(図示せず)からの読取り用およびこれへの書込み用のハードディスクドライブ516、取外し可能の不揮発性磁気ディスク520(たとえば、「フロッピー(登録商標)ディスク」)からの読取り用およびこれへの書込み用の磁気ディスクドライブ518、ならびにCD−ROM、DVD−ROM、または他の光媒体などの取外し可能の不揮発性光ディスク524からの読取り用およびこれへの書込み用の光ディスクドライブ522が示されている。ハードディスクドライブ516、磁気ディスクドライブ518、および光ディスクドライブ522は、それぞれ1つまたは複数のデータ媒体インターフェース526によって、システムバス508に接続される。あるいは、ハードディスクドライブ516、磁気ディスクドライブ518、および光ディスクドライブ522を、1つまたは複数のインターフェース(図示せず)によってシステムバス508に接続することができる。
【0104】
ディスクドライブおよびそれらの関連するコンピュータ読取り可能媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、およびコンピュータ502に関する他のデータの、不揮発性記憶域を提供する。この例にはハードディスク516、取外し可能磁気ディスク520、および取外し可能光ディスク524が示されているが、例示的コンピューティングシステムおよび環境を実施するために、磁気カセットまたは他の磁気記憶デバイス、フラッシュメモリカード、CD−ROM、デジタル汎用ディスク(DVD)または他の光記憶装置、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能プログラム可能読取り専用メモリ(EEPROM)などの、コンピュータがアクセス可能なデータを格納できる他のタイプのコンピュータ読取り可能媒体も使用可能であることを理解されよう。
【0105】
任意数のプログラムモジュールを、ハードディスク516、磁気ディスク520、光ディスク524、ROM 512、および/またはRAM 510に格納することが可能であり、例を挙げると、オペレーティングシステム526、1つまたは複数のアプリケーションプログラム528、他のプログラムモジュール530、およびプログラムデータ532が含まれる。こうしたオペレーティングシステム526、1つまたは複数のアプリケーションプログラム528、他のプログラムモジュール530、およびプログラムデータ532(またはそれらの何らかの組合せ)がそれぞれ、分散ファイルシステムをサポートする常駐構成要素のすべてまたは一部を実施することができる。
【0106】
ユーザは、キーボード534およびポインティングデバイス536(たとえば「マウス」)などの入力デバイスを介して、コマンドおよび情報をコンピュータ502に入力できる。他の入力デバイス538(具体的には図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、シリアルポート、スキャナなどを含むことができる。これらおよび他の入力デバイスは、システムバス508に結合された入力/出力インターフェース540を介して処理ユニット504に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造によって接続してもよい。
【0107】
モニタ542または他のタイプのディスプレイデバイスを、ビデオアダプタ544などのインターフェースを介してシステムバス508に接続することもできる。他の出力周辺デバイスは、モニタ542に加えて、入力/出力インターフェース540を介してコンピュータ502に接続可能なスピーカ(図示せず)およびプリンタ546などの構成要素を含むこともできる。
【0108】
コンピュータ502は、リモートコンピューティングデバイス548などの1つまたは複数のリモートコンピュータへの論理接続を使用する、ネットワーク環境で動作可能である。例を挙げると、リモートコンピューティングデバイス548は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたは他の共通ネットワークノード、ゲームコンソールなどであってよい。リモートコンピューティングデバイス548は、コンピュータ502に関して本明細書に記載された要素および特徴の多くまたはすべてを含むことができる、ポータブルコンピュータとして示されている。
【0109】
コンピュータ502とリモートコンピュータ548との間の論理接続は、ローカルエリアネットワーク(LAN)550および一般的なワイドエリアネットワーク(WAN)552として示されている。こうしたネットワーキング環境は、事務所や企業規模のコンピュータネットワーク、イントラネット、およびインターネットでよく見られるものである。
【0110】
LANネットワーキング環境で実施される場合、コンピュータ502はネットワークインターフェースまたはアダプタ554を介してローカルネットワーク550に接続される。WANネットワーキング環境で実施される場合、コンピュータ502は典型的にはモデム556またはワイドネットワーク552を介して通信を確立するための他の手段を含む。モデム556はコンピュータ502に内蔵または外付けであってよく、入力/出力インターフェース540または他の適切なメカニズムを介してシステムバス508に接続可能である。図示されたネットワーク接続は例示的なものであり、コンピュータ502と548との間に通信リンクを確立する他の手段が使用できることを理解されよう。
【0111】
コンピューティング環境500で例示されたようなネットワーク環境では、コンピュータ502に関して示されたプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに格納することができる。例を挙げると、リモートアプリケーションプログラム558はリモートコンピュータ548のメモリデバイス上に常駐する。図に示すために、アプリケーションプログラムおよびオペレーティングシステムなどの他の実行可能プログラム構成要素は、本明細書では別個のブロックとして示されているが、こうしたプログラムおよび構成要素は、様々な時点に、コンピューティングデバイス502の様々な記憶構成要素内に常駐するものであり、コンピュータのデータ処理装置によって実行されることを理解されよう。
【0112】
図9は、ゲームコンソール601の機能構成要素をより詳細に示す図である。ゲームコンソール601は、たとえば図1のクライアントデバイス102であってよい。ゲームコンソール601は、中央処理ユニット(CPU)600と、フラッシュROM(読取り専用メモリ)604、RAM(ランダムアクセスメモリ)606、ハードディスクドライバ608、およびポータブルメディアドライブ609を含む様々なタイプのメモリへの処理装置のアクセスを容易にするメモリコントローラ602とを有する。CPU 600には、データを一時的に格納し、メモリアクセスサイクル数を減少させるための、レベル1キャッシュ610およびレベル2キャッシュ612とが備えられており、それによって処理速度およびスループットが向上する。
【0113】
CPU 600、メモリコントローラ602、および様々なメモリデバイスは、シリアルおよびパラレルバス、メモリバス、周辺バス、ならびに任意の様々なバスアーキテクチャを使用する処理装置またはローカルバスを含む、1つまたは複数のバスを介して相互接続される。例を挙げると、こうしたアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびメザニンバスとしても知られるPeripheral Component Interconnects(PCI)バスを含むことができる。
【0114】
好適な一実施として、CPU 600、メモリコントローラ602、ROM 604、およびRAM 606は、共通モジュール614に統合される。この実施では、ROM 604は、PCI(Peripheral Component Interconnect)バスおよびROMバス(どちらも図示せず)を介してメモリコントローラ602に接続されるフラッシュROMとして構成される。RAM 606は、別々のバス(図示せず)を介してメモリコントローラ602によって別個に制御される、多重DDR SDRAM(Double Data Rate Synchronous Dynamic RAM)として構成される。ハードディスクドライブ608およびポータブルメディアドライブ609は、PCIバスおよびATA(AT Attachment)バス616を介してメモリコントローラに接続される。
【0115】
3Dグラフィックス処理ユニット620およびビデオ符号器622は、高速および高解像度のグラフィックス処理のためのビデオ処理パイプラインを形成する。データは、デジタルビデオバス(図示せず)を介して、グラフィックス処理ユニット620からビデオ符号器622に搬送される。オーディオ処理ユニット624およびオーディオコーデック(符号器/復号器)626は、高忠実度およびステレオ処理を備えた対応するオーディオ処理パイプラインを形成する。オーディオデータは、オーディオ処理ユニット624とオーディオコーデック626との間を、通信リンク(図示せず)を介して搬送される。ビデオおよびオーディオ処理パイプラインは、データをテレビジョンまたは他のディスプレイに伝送するために、A/V(オーディオ/ビデオ)ポート628に出力する。図示された実施では、ビデオおよびオーディオ処理構成要素620〜628はモジュール614上に取り付けられる。
【0116】
USBホストコントローラ630およびネットワークインターフェース632も、モジュール614上で実施される。USBホストコントローラ630は、バス(たとえばPCIバス)を介してCPU 600およびメモリコントローラ602に結合され、周辺制御装置636(1)〜636(4)のホストとしての役割を果たす。ネットワークインターフェース632はネットワーク(たとえばインターネット、ホームネットワークなど)へのアクセスを提供し、イーサネット(登録商標)カード、モデム、ブルートゥースモジュール、ケーブルモデムなどを含む多種多様な様々な有線または無線のインターフェース構成要素のうちいずれであってもよい。
【0117】
ゲームコンソール601は、2つのデュアルコントローラ(dual controller)サポートサブアセンブリ640(1)および640(2)を有し、それぞれのサブアセンブリが2つのゲームコントローラ636(1)〜636(4)をサポートする。フロントパネルI/Oサブアセンブリ640は、電源ボタン631およびメディアドライブ取出しボタン633、ならびにゲームコンソールの外部表面に取り付けられた任意のLED(発光ダイオード)または他のインジケータの機能をサポートする。サブアセンブリ640(1)、640(2)、および642は、1つまたは複数のケーブルアセンブリ644を解してモジュール614に結合される。
【0118】
4つのコントローラ636(1)〜636(4)に8つのメモリユニット634(1)〜634(8)が、すなわち各コントローラにつき2つのメモリユニットが接続可能であるように図示されている。各メモリユニット634は、ゲーム、ゲームパラメータ、および他のデータが格納できる追加の記憶装置を提供する。メモリユニット634をコントローラに挿入すると、メモリコントローラ602がアクセスできるようになる。
【0119】
システム電源モジュール650は、ゲームコンソール601の構成要素に電力を提供する。ファン652はゲームコンソール601内の回路を冷却する。
【0120】
コンソールユーザインターフェース(UI)アプリケーション660はハードディスクドライブ608上に格納される。ゲームコンソールの電源を入れると、コンソールアプリケーション660の様々な部分がRAM 606および/またはキャッシュ610、612にロードされ、CPU 600で実行される。コンソールアプリケーション660は、ゲームコンソール上で使用可能な様々なメディアタイプにナビゲートする際に一貫したユーザ体験を提供する、グラフィカルユーザインターフェースを提示する。
【0121】
ゲームコンソール601は、暗号化、復号、認証、デジタル署名、ハッシングなどの一般的な暗号機能を実行するための、暗号エンジンを実施する。暗号エンジンは、CPU 600の一部として、またはCPU上で実行するハードディスクドライブ608上に格納されたソフトウェア内で実施可能であるため、CPUは暗号機能を実行するように構成される。あるいは、暗号機能を実行するように設計された暗号処理装置またはコプロセッサを、ゲームコンソール601に含めることもできる。
【0122】
ゲームコンソール601は、システムをテレビジョンまたは他のディスプレイに接続するだけで、スタンドアロン型システムとして動作可能である。このスタンドアロンモードでは、ゲームコンソール601は1人または複数人のプレーヤがゲームをプレイし、映画を鑑賞し、あるいは音楽を聞くことができるようにする。ただし、ネットワークインターフェース632を介して利用可能なブロードバンド接続が組み込まれていれば、さらにゲームコンソール601は、前述のようにオンラインゲームの参加者として動作することもできる。
【0123】
本明細書では、様々なモジュールおよび技法について、1つまたは複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュールなどのコンピュータ実行可能命令のコンテキストで説明することができる。通常、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。典型的には、プログラムモジュールの機能は、様々な実施形態で希望に応じて組み合わせるかまたは分散させることができる。
【0124】
これらのモジュールおよび技法の実施は、何らかの形式のコンピュータ読取り可能媒体上に格納するか、またはこれらをまたがって伝送することができる。コンピュータ読取り可能媒体は、コンピュータがアクセス可能な任意の使用可能媒体であってよい。例を挙げると、コンピュータ読取り可能媒体は「コンピュータ記憶媒体(computer storage media)」および「通信媒体(communication media)」を含むことができるが、これらに限定されるものではない。
【0125】
「コンピュータ記憶媒体」には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技法で実施された、揮発性および不揮発性、取外し可能および取外し不能な媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル汎用ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を格納するために使用可能でありコンピュータがアクセス可能な任意の他の媒体が含まれるが、これらに限定されるものではない。
【0126】
「通信媒体」は、典型的にはコンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送メカニズムなどの変調データ信号(modulated data signal)で実施する。通信媒体には任意の情報送達媒体も含まれる。「変調データ信号」という用語は、1つまたは複数の特徴を信号中の情報を符号化するように設定または変更した信号を意味する。例を挙げると、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体と、音波、RF、赤外線、および他の無線媒体などの無線媒体とが含まれるが、これらに限定されるものではない。上記のいずれかの組合せも、コンピュータ読取り可能媒体の範囲内に含まれる。
【0127】
本明細書で論じた相互認証を使用した安全な鍵交換は、秘密を導出するためのDiffie−Hellman指数演算を参照しながら論じられた。別法として、Diffie−Hellmanの代わりに他の暗号オペレーションまたは方法を使用することもできる。
【0128】
上記の説明では、構造的特徴および/または方法論的動作に特有の言語を使用したが、特許請求の範囲に定義された本発明は、記載された特有の特徴または動作に限定されるものではないことを理解されよう。むしろ特有の特徴および動作は、本発明を実施するための例示的形式として開示されたものである。
【図面の簡単な説明】
【図1】相互認証を使用した安全な鍵交換が使用可能な例示的環境を示す構成図である。
【図2】クライアントデバイスとサーバデバイスとの間で相互認証を使用して安全な鍵交換を実行するための、例示的なプロセスを示す流れ図である。
【図3】鍵交換イニシエータパケットを生成および送信するための、例示的なプロセスを示す流れ図である。
【図4】鍵交換イニシエータパケットを受信および妥当性検査するための、例示的なプロセスを示す流れ図である。
【図5】暗号鍵を生成し、さらに鍵交換応答パケットを生成および送信するための、例示的なプロセスを示す流れ図である。
【図6】鍵交換応答パケットを受信および妥当性検査するため、および暗号鍵を生成するための、例示的なプロセスを示す流れ図である。
【図7】相互認証を使用した安全な鍵交換が使用可能な例示的オンラインゲーム環境を示す構成図である。
【図8】本明細書に記載された技法を実施するために使用可能な、汎用コンピュータ環境を示す図である。
【図9】本明細書に記載された技法を実施するために使用可能なゲームコンソールの機能構成要素を、より詳細に示す図である。
【符号の説明】
102 クライアントデバイス
104 鍵配布センタ
106 サーバデバイス
404 セキュリティゲートウェイ
406 ネットワーク
408 私設ネットワーク
410 データセンタ(セキュアゾーン)
412 監視サーバ
414 プレゼンスおよび通知フロントドア
416 プレゼンスサーバ
418 通知サーバ
420 マッチフロントドア
422 マッチサーバ
424 統計フロントドア
426 統計サーバ
428 鍵配布センタ
504 処理ユニット
506 システムメモリ
508 システムバス
510 RAM
512 ROM
514 BIOS
526 データ媒体インターフェース
526 オペレーティングシステム
528 アプリケーションプログラム
530 プログラムモジュール
532 プログラムデータ
534 キーボード
536 マウス
538 他のデバイス
540 入出力インターフェース
542 モニタ
544 ビデオアダプタ
546 プリンタ
548 リモートコンピューティングデバイス
550 LAN
552 インターネット
554 ネットワークアダプタ
556 モデム
558 リモートアプリケーションプログラム
600 中央処理ユニット
601 ゲームコンソール
602 メモリコントローラ
604 フラッシュROMメモリ
606 RAMメモリ
608 ハードディスクドライブ
609 ポータブルメディアドライブ
610 レベル1キャッシュ
612 レベル2キャッシュ
616 ATAケーブル
620 3Dグラフィックス処理ユニット
622 ビデオ符号器
624 オーディオ処理ユニット
626 オーディオコーデック
628 A/Vポート
630 USBホストコントローラ
632 ネットワークインターフェース
634(1)〜(8) メモリユニット
636(1)〜(4) コントローラ
640(1)〜(2) デュアルコントローラポートサブアセンブリ
642 フロントパネルI/Oサブアセンブリ
650 システム電源モジュール
652 ファン
【発明の属する技術分野】
本発明は、セキュリティおよび安全な(secure)ネットワーク通信に関し、さらに詳細には、相互認証を使用した安全な鍵交換(key exchange)に関する。
【0002】
【従来の技術】
従来の専用コンソールを備えたゲームシステムは、限定数のプレーヤ(たとえば2〜4人)に対処するスタンドアロン型マシンであった。パーソナルコンピュータベースのゲーム人気が高まった原因は、一部には、インターネットを介して多くのリモートプレーヤとオンラインでゲームプレイができることからであった。したがって、専用ゲームシステムの傾向の1つは、インターネットベースのオンラインゲームなどのネットワークを介したゲームを容易にするための機能を提供することである。
【0003】
オンラインゲームは、集中型サーバ方式またはピアツーピア方式で実施可能である。集中型サーバ方式では、ゲームシステムが1つまたは複数の集中型サーバに接続され、この集中型サーバを介して相互に対話する。ピアツーピア方式では、ゲームシステムが相互に接続され、相互に直接対話する。ただしピアツーピア方式の場合でも、ゲームシステムが相手を探すのを助ける初期対戦相手決定サービス(initial match−making service)などのように、集中型サーバを使用して通信を支援することができる。
【0004】
【非特許文献1】
Bruce Schneier, ”Applied Cryptography: Protocols, Algorithms, and Source Code in C,” John Wiley & Sons, copyright 1994 (second edition1996)
【0005】
【非特許文献2】
W. Diffie and M. E. Hellman, ”New directions in Cryptography”,IEEE Transactions on Information Theory v.IT−12, n.6 Nov 1976, pp.644−654
【0006】
【発明が解決しようとする課題】
こうした集中型サーバを使用する際に生じる問題の1つが、サーバとゲームシステムとの間のネットワークトラフィックが、ネットワーク上の他のデバイスによって不正変更または監視されるのを防ぐことである。ゲームをする人というのは、独創的な不正メカニズムを開発し、ネットワークトラフィックをそうしたユーザの絶好のターゲットにしてしまうものである、という悪い評判が広まっている。残念ながら、以前のコンソールベースのゲームシステムは、典型的には集中型サーバとの安全な通信を提供するものではなかった。もう1つの問題は、ゲームシステムのリソースはゲームプレイに充てなければならないため、ネットワークトラフィックの保護に使用されるいかなるメカニズムも、こうしたリソースを大量に必要とするものであってはならないことである。さらに、より少ない集中型サーバでより多くのゲームシステムを処理できるようにするために、メカニズムは集中型サーバのリソースを大量に必要とするものであってもならない。
【0007】
【課題を解決するための手段】
これらおよびその他の問題を解決するのが、本明細書で論じる相互認証を使用した安全な鍵交換である。
【0008】
本発明の一目的は、相互認証を使用した安全な鍵交換を提供することである。
【0009】
ある実施形態によれば、ネットワーク上のデバイスとの鍵交換は、ネットワークを介した単一のラウンドトリップ(roundtrip)で実行され、デバイスとの相互認証およびパーフェクトフォワードシークレシ(perfect forward secrecy)の両方を達成する。
【0010】
ある実施形態によれば、確立される鍵を含まない鍵交換イニシエータパケット(key exchange initiator packet)が、ネットワークを介してデバイスに送られる。同じく鍵を含まない鍵交換応答パケット(key exchange response packet)が、デバイスから受け取られる。鍵交換応答パケットが妥当性検査され、鍵は、少なくとも一部は鍵交換応答パケット中のデータに基づいて、鍵を生成するためにいかなる追加のパケットもデバイスに送るかまたはデバイスから受け取る必要なしに生成される。
【0011】
ある実施形態によれば、確立される鍵を含まない鍵交換イニシエータパケットが、ネットワークを介してデバイスから受け取られ、妥当性検査される。鍵は、少なくとも一部は鍵交換イニシエータパケット中のデータに基づいて、鍵を生成するためにいかなる追加のパケットもデバイスから受け取る必要なしに生成される。さらに、鍵を含まない鍵交換応答パケットが、ネットワークを介してデバイスに送られる。
【0012】
【発明の実施の形態】
本明細書全体にわたり、同じ構成要素および/または特徴を表すには同じ符号が使用される。
【0013】
以下の議論は、ネットワーク化されたデバイスに関する相互認証を使用した安全な鍵交換メカニズムを対象とするものである。この議論では、読者が暗号化、復号、認証、ハッシング、およびデジタル署名などの基本的な暗号法に精通しているものと想定される。基本暗号法入門として、読者はたとえば非特許文献1を対象とする。
【0014】
図1は、相互認証を使用した安全な鍵交換が使用可能な例示的環境100を示す構成図である。クライアントデバイス102は、鍵配布センタ104およびサーバデバイス106に結合される。デバイス102と鍵配布センタ104との結合は、デバイス102とセンタ104との間の通信を可能にする任意の様々な結合が可能である。同様に、デバイス102と106の間の結合も、デバイス102とデバイス106との間の通信を可能にする任意の様々な結合が可能である。一実施では、結合はインターネットを含み、任意選択として1つまたは複数の他のネットワーク(たとえばローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN))を含むこともできる。
【0015】
図1には単一のクライアントデバイス102、単一のセンタ104、および単一のサーバデバイス106のみが示されているが、環境100はこうしたデバイスおよびセンタを複数含むことができる。たとえば、複数のクライアントデバイス102が、1つまたは複数の鍵配布センタ104および1つまたは複数のサーバデバイス106と通信することができる。
【0016】
クライアントデバイス102とサーバデバイス106との間の通信、ならびにクライアントデバイス102と鍵配布センタ104との間の通信は、任意の様々な異なるパケット形式が可能である。一実施例では、通信はユーザデータグラムプロトコル(UDP/User Datagram Protocol)形式である。
【0017】
鍵配布センタ104は鍵およびセキュリティチケットをクライアントデバイス102に配布し、これをサーバデバイス106との安全な鍵交換で使用することができる。サーバデバイス106はクライアントデバイス102にサービスを提供するか、またはクライアントデバイス102にサービスを提供する他のデバイス(図1には図示せず)へのゲートウェイとして動作する。
【0018】
クライアントデバイス102は、任意の多種多様なデバイスであってよい。本明細書の考察の中には、クライアントデバイス102をゲームコンソールと呼ぶものもある。こうしたゲームコンソールは、専用ゲームコンソールであるかまたは追加の機能を含むものであってよい。たとえばゲームコンソールは、デジタルVCRとして動作できるようにデジタルビデオレコーディング機能を含むこと、テレビジョン信号(同報通信信号、ケーブル信号、衛星放送信号などのいずれか)を同調および復号できるようにチャネル同調機能を含むこと、などが可能である。クライアントデバイス102は、デスクトップPC、ポータブルコンピュータ、携帯電話、インターネット機器、サーバコンピュータなどの、他のタイプのコンピュータデバイスであってもよい。
【0019】
環境100では、クライアントデバイス102とサーバデバイス106との間の相互認証を使用した安全な鍵交換が望ましい。これにより、デバイス102および106が互いに認証し合うことが可能になり、さらに1つまたは複数の暗号鍵を確立し、安全でないネットワーク(たとえばインターネット)を介して相互に安全に通信するためにデバイス102および106の基礎として使用することが可能になる。
【0020】
相互認証を使用した安全な鍵交換を実行するために、鍵配布センタ104からセキュリティチケットが取得される。一実施例では、セキュリティチケットは、単一チケットで、特定のクライアントデバイス102のアイデンティティおよびクライアントデバイス102の1つまたは複数のユーザのユーザアイデンティティを認証する、ケルベロスのような認証プロトコルを使用して、クライアントデバイス102によって取得されるケルベロスチケットである。クライアントデバイス102は、ケルベロスチケットを以下のように取得する。
【0021】
考察上、クライアントデバイス102はゲームコンソールであると想定し、さらに4人のゲームコンソールユーザがいると想定する。それぞれのユーザにはアイデンティティU1、U2、U3、およびU4が与えられ、ユーザ鍵K1、K2、K3、およびK4が割り当てられる。ゲームコンソールには、それ自体のアイデンティティCおよびゲームコンソール鍵KCも割り当てられる。さらに、ゲームディスクなどのゲームコンソール上でプレイされるゲームタイトルには、別のアイデンティティGが割り当てられる。同様の方法で、サーバデバイス106にはそれ自体のアイデンティティAおよび鍵KAが割り当てられる。本明細書に記載された認証は、ある程度、鍵K1、K2、K3、およびK4、KC、ならびに鍵KAに依存するものであることに留意されたい。したがって、これらの鍵を選択および格納する際には、それらの鍵を割り当てられたエンティティのみがそれらを使用できることに注意を払わなければならない。
【0022】
ゲームコンソールは、ユーザアイデンティティU1、U2、U3、およびU4ならびにユーザ鍵K1、K2、K3、およびK4に基づいて、妥当性検査済みのユーザアイデンティティを生成する。より具体的に言えば、妥当性検査済みのユーザアイデンティティには、ユーザ鍵から導出されたユーザアイデンティティおよび値が含まれる。妥当性検査済みのユーザアイデンティティは要求と共に鍵配布センタ104に提出され、ゲームコンソールがユーザ鍵の知識を持っているために暗黙的にユーザを認証することを、鍵配布センタに実証するために使用される。
【0023】
様々なメッセージおよび鍵が算出される方法を簡単に説明するために、次の表記法を導入する。
【0024】
H=HKx(M):Hとは、鍵Kxを使用するメッセージMの鍵付き一方向ハッシュ(MAC)である。いかなるMACアルゴリズムも使用できる。こうしたMACアルゴリズムの一例が、IETF RFC2104に従ったHMACアルゴリズムである。
【0025】
EncryptedM=EKx(M):EncryptedMとは、鍵Kxを使用するメッセージMの暗号化形式である。いかなる暗号化アルゴリズムも使用できる。こうした暗号化アルゴリズムの例に、DES、トリプルDES、およびRC4−HMACが含まれる。
【0026】
鍵導出値(key derivative value)を生成する方法の1つが、ゲームコンソールの鍵を使用して、ユーザ鍵の暗号ハッシュを算出することである。鍵K1を持つユーザU1の場合、ハッシュH1は次のように算出される。
H1=HKc(K1)
【0027】
ハッシュH1が鍵導出値を形成する。他の方法は、ユーザ鍵K1を使用して次のように現在時刻を暗号化することである。
H1=EK1(T)
【0028】
結果として生じる値H1が、鍵導出値を再度形成する。妥当性検査済みユーザアイデンティティは、次のように、ユーザアイデンティティU1および対応する鍵導出値H1の組合せである。
Validated User Identity=(U1,H1)
【0029】
ゲームコンソールは、ゲームコンソールアイデンティティC、ゲームタイトルアイデンティティG、サーバデバイス106のサーバアイデンティティA、ならびに複数の妥当性検査済みユーザアイデンティティ(U1,H1)、(U2,H2)、(U3,H3)、および(U4,H4)を含む要求を構築する。要求は、次のようなアイデンティティ文字列を有する。
Request=[C,G,A,(U1,H1),(U2,H2),(U3,H3),(U4,H4)]
【0030】
さらに要求は、あるバージョンの認証プロトコル、およびリプレイ攻撃を阻止するためにゲームコンソールによって生成されるランダムノンス(nonce)を含むことができる。要求は、アイデンティティ文字列全体の受取りを検証するために使用される、チェックサム値も含むことができる。ゲームコンソールは、鍵配布センタ104への結合を介して要求を提出する。
【0031】
鍵配布センタ104は、要求ならびに要求に含まれるアイデンティティを評価する。鍵配布センタ104は、サーバデバイス106用に使用されるランダムセッション鍵を生成する。この例では、鍵配布センタは、ゲームコンソール102がサーバデバイス106と通信しながら使用するためのランダムセッション鍵KCAを生成する。本明細書ではこのランダムセッション鍵KCAをケルベロスセッション鍵とも呼ぶ。
【0032】
鍵配布センタがチケットを生成し、その後そのチケットがゲームコンソールによってサーバデバイス106に提示されることになる。サーバデバイス106向けに発行されるチケットは1つであるが、このチケットは複数のユーザに対して有効である。チケットには、要求で提出されたアイデンティティ文字列が含まれる。さらに、チケットが生成された時間TG、チケットの期間が満了するまでの時間長さを識別する時間TL、およびサーバデバイス106向けにランダムに生成されたケルベロスセッション鍵KCAも含まれる。チケットは、任意選択で、ゲームコンソールのユーザがアクセスを許可されているサーバデバイス106を介して使用可能なサービスおよび/またはサービスデバイスを識別する、サービスマップSmを含むこともできる。鍵配布センタは、どのユーザがどのサービスへのアクセスを許可されているか(たとえばどのユーザが、1つまたは複数の割増料金(premium)サービスにアクセスするための割増料金を払ったか)についての記録を維持するか、あるいは記録を維持する他のデバイスまたはセンタにアクセスする。チケットの内容は、サーバデバイスの鍵KAを以下のように使用する対称鍵暗号(たとえばトリプルDES)を介して暗号化される。
【0033】
【数1】
【0034】
チケットは対応する鍵導出値Hiを搬送するものでないことに留意されたい。鍵配布センタが鍵導出値を読み取り、ゲームコンソールがユーザ鍵を認識していると確信すると、鍵配布センタはユーザのアイデンティティを発行済のチケット内に配置する。その後サーバデバイス106はチケットが伝えるすべての内容を信頼することになるため、鍵導出値Hiを確認する必要はない。
【0035】
鍵配布センタは、生成されたチケットをゲームコンソールに戻す。ゲームコンソールはサーバデバイスの鍵KAを知らないため、ゲームコンソールがチケットを開いて内容を変更することはできない。鍵配布センタは、添付の暗号化メッセージでセッションセキュリティ鍵も戻す。セッション鍵メッセージには、チケット生成時間TG、チケット満了長さTL、およびセッションセキュリティ鍵KC Aが含まれ、すべての内容は以下のようにゲームコンソールの鍵KCを使用して暗号化される。
【0036】
【数2】
【0037】
セッション鍵メッセージはゲームコンソールの鍵KCで暗号化されるため、ゲームコンソールはセッション鍵メッセージを開いて、セッション時間パラメータおよびセッション鍵を回復することができる。
【0038】
さらに図1を参照すると、いったんクライアントデバイス102(たとえばゲームコンソール)が鍵配布センタ104からチケットを受け取ると、クライアントデバイス102はこのチケットを使用してサーバデバイス106との相互認証を使用した安全な鍵交換を実行することができる。相互認証を使用した安全な鍵交換は、クライアントデバイス102およびサーバデバイス106にお互いを認証させることが可能であり、すなわちクライアントデバイス102はサーバデバイス106が自分の要求するサーバデバイスであることを検証可能であり、サーバデバイス106はクライアントデバイス102が自分の要求するクライアントデバイスであることを検証可能である。さらにデバイス102および106は、他方が特定鍵の知識を有することを検証可能である。
【0039】
鍵交換により、2つのデバイス102および106が、これら2つのデバイス間で共用されるが2つのデバイス間で伝送されることはなく、第三者(たとえばデバイス102および106と同じネットワーク上にある他のデバイス)がデバイス間のラウンドトリップトラフィックに基づいて推定することのできない新しい秘密(secret)を、導出できるようにすることも可能である。一実施例では、デバイスは新しい秘密を導出するためにDiffie−Hellman指数演算(exponentiation operations)を使用する。Diffie−Hellmanに関する他の情報を見ることもできる(たとえば、非特許文献2参照)。デバイス102と106との間の通信は、通信を暗号化することによって保護可能であるか、あるいは暗号化なしに実行することができる。
【0040】
図2は、クライアントデバイスとサーバデバイスとの間で相互認証を使用して安全な鍵交換を実行するための、例示的なプロセス150を示す流れ図である。図2のプロセスは、図2の左側に示されたクライアントデバイスによって実行されるオペレーションと、図2の右側に示されたサーバデバイスによって実行されるオペレーションにより、クライアントデバイスおよびサーバデバイスの両方によって実施される。図2のプロセスは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図2のプロセスは、図1の構成要素を参照して論じられる。さらにプロセスは、クライアントデバイスとサーバデバイスとの間のプロセスとして示されているが、互いの間に安全な通信チャネルを確立することが望ましい任意の2つのデバイスによって実行することもできる(たとえば、プロセスは2つのクライアントデバイスまたは2つのサーバデバイスによって実行することができる)。
【0041】
初めに、クライアントデバイス102は鍵交換イニシエータパケットを生成し、このパケットをサーバデバイス106に送信する(動作152)。サーバデバイス106は鍵交換イニシエータパケットを受け取り、受け取ったパケットの妥当性を検査する(動作154)。パケットの妥当性が検査されると、サーバデバイス106は、クライアントデバイス102との通信を安全にするために使用される暗号鍵を生成する(動作156)。一実施例では、これらの暗号鍵は、2つのデバイス間で2地点間通信を安全にするために使用されるセキュリティアソシエーション(security association)鍵である。
【0042】
次いでサーバデバイス106は鍵交換応答パケットを生成し、生成されたパケットをクライアントデバイス102に送信する(動作158)。クライアントデバイス102は鍵交換応答パケットを受け取り、受け取ったパケットの妥当性を検査する(動作160)。パケットの妥当性が検査されると、クライアントデバイス102は、サーバデバイス106との通信を安全にするために使用される暗号鍵を生成する(動作162)。暗号鍵は、動作156でサーバデバイス106によって生成されたものと同じである。したがって、クライアントデバイス102およびサーバデバイス106は最後にはどちらも同じ暗号鍵になるが、それらの間で実際に鍵を伝送しなくても終わる。
【0043】
プロセス150は、パーフェクトフォワードシークレシを維持することに留意されたい。パーフェクトフォワードシークレシとは、たとえ第三者に以前の秘密の知識がある可能性があっても、その第三者は新しい秘密を推定できないことを言う。したがって、たとえば第三者(たとえば他のデバイス)がセッション鍵KCA、またはクライアントデバイス102とサーバデバイス106との間で以前に確立された鍵を発見しても、その第三者は安全な鍵交換プロセス150から生成される新しい鍵を推定できないことになる。これは、たとえば第三者に、プロセス150で使用されるDiffie−Hellman値(以下でより詳細に論じる)の知識がないためである。
【0044】
さらに、クライアントデバイス102とサーバデバイス106との間では、2つのパケット、すなわち鍵交換イニシエータパケットおよび鍵交換応答パケットだけを通信すればよいことがわかる。したがって、相互認証を使用した安全な鍵交換を実行するために必要となるのは、単一のラウンドトリップ(クライアントデバイス102からサーバデバイス106へのパケット、およびサーバデバイス106からクライアントデバイス102への戻りパケット)のみである。この単一のラウンドトリップは、使用されるパケット数を減らすことによって、待ち時間を減らし、鍵の確立およびデバイスの相互認証において帯域幅オーバヘッドを減らす働きをする。
【0045】
プロセス150について、図3〜6を参照しながら以下でより詳細に論じる。図3は動作152をより詳細に示し、図4は動作154をより詳細に示し、図5は動作156および158をより詳細に示し、図6は動作160および162をより詳細に示す。
【0046】
図3は、鍵交換イニシエータパケットを生成および送信するための、例示的なプロセス200を示す流れ図である。図3は、図2の動作152をより詳細に示す図である。図3のプロセスはクライアントデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図3のプロセスは、図1の構成要素を参照して論じられる。
【0047】
初めに、クライアントデバイス102が鍵交換イニシエータメッセージを生成する(動作202)。鍵交換イニシエータメッセージは、以下のように、NonceInitと呼ばれるクライアントデバイス102によって生成されるランダム(または擬似ランダム)値を含み、さらにDiffie−Hellman(gX mod N)値も含み(この式のXもクライアントデバイス102によって生成されるランダム(または擬似ランダム)値である)、さらに鍵交換プロセスが完了するとこのクライアント/サーバ通信チャネルを一意に定義する際に使用されることになる、セキュリティパラメータインデックス値(SPI1)も含む。
InitMess=[NonceInit,SPI1,(gX mod N)]
【0048】
次いでクライアントデバイス102は、鍵配布センタ104から受け取ったケルベロスセッション鍵KCAを使用して、鍵交換イニシエータメッセージのダイジェストを算出する(動作204)。ダイジェストは以下のように生成される。
【0049】
【数3】
【0050】
あるいは、HashInitMessの計算で、包括的一方向ハッシュ(鍵付きではない)を使用することもできる。鍵交換のセキュリティは、このハッシュが鍵付きであるか否かに依拠しない。
【0051】
次いでクライアントデバイス102は、ケルベロス認証子(authenticator)を生成する(動作206)。ケルベロス認証子は、タイムスタンプ(たとえばクライアントデバイス102の現在時刻)と、動作204で算出されたHashInitMessダイジェストを含む。タイムスタンプは、クライアントデバイス102がケルベロス認証子を生成するごとにクライアントデバイス102によって増分され、これにより、サーバデバイス106に再実行攻撃(replay attack)をより良く検出させることができる。クライアントデバイス102は、以下のように、ケルベロスセッション鍵KCAを使用してケルベロス認証子を暗号化する(動作208)。
【0052】
【数4】
【0053】
次いでクライアントデバイス102は、鍵交換イニシエータパケットを生成する(動作210)。鍵交換イニシエータパケットは、鍵交換イニシエータメッセージInitMess、暗号化されたケルベロス認証子AuthT、および鍵配布センタ104から受け取ったサーバデバイス106用のケルベロスチケットを含む。前述のように、ケルベロスチケットは、少なくともケルベロスセッション鍵(KCA)、チケットが有効な期間、およびクライアントデバイス102を識別する一意の番号を含み、これらはすべて、鍵配布センタ104およびサーバデバイス106が共用する秘密鍵を使用して暗号化される。SPI値は、クライアントデバイス102とサーバデバイス106との間のセキュリティアソシエーションまたは通信チャネルを識別する。SPI1値はサーバデバイス106からクライアントデバイス102への通信に関連付けられ、SPI2値はクライアントデバイス102からサーバデバイス106への通信に関連付けられる。したがって、鍵交換イニシエータパケットは以下のようになる。
InitPacket=[InitMess,AuthT,Ticket]
【0054】
認証子とチケットの組合せは、ケルベロス用語でAP Requestと呼ばれることに留意されたい。次いでクライアントデバイス102は、鍵交換イニシエータパケットをサーバデバイス106に送信する(動作212)。
【0055】
図4は、鍵交換イニシエータパケットを受信および妥当性検査するための、例示的なプロセス250を示す流れ図である。図4は、図2の動作154をより詳細に示す図である。図4のプロセスはサーバデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図4のプロセスは、図1の構成要素を参照して論じられる。
【0056】
初めに、サーバデバイス106は鍵交換イニシエータパケットInitPacketを受信する(動作252)。一実施では、サーバデバイス106はすべての鍵交換イニシエータパケットが所定の形式および所定のサイズであることを予測する。サーバデバイス106は、この所定の形式および所定のサイズに当てはまらないいずれの鍵交換イニシエータパケットも無視する。あるいは、サーバデバイス106は、様々な形式および/または様々なサイズの鍵交換イニシエータパケットを可能にすることができる。
【0057】
いったん鍵交換イニシエータパケットが受信されると、サーバデバイス106は、サーバデバイス106が鍵配布センタ104と共用する鍵を使用して、ケルベロスチケットを復号する(動作254)。次いでサーバデバイス106は、復号されたチケットをチェックして、チケットが失効(stale)していないかどうかを判別する(動作256)。現在時刻が(チケットで識別された)チケットの有効な期間内に含まれる場合、チケットは失効していない。ただし、現在時刻がチケットの有効な期間内に含まれない場合、チケットは失効している。ケルベロスチケットが失効している場合、鍵交換プロセスは失敗し(動作258)、その結果、クライアントデバイス102とサーバデバイス106との間にセキュリティアソシエーションは確立されない。動作258の一部として、サーバデバイス106は、鍵交換プロセスが失敗したことをクライアントデバイス102に通知するか、あるいはサーバデバイス106は、受信したInitPacketを削除するだけでクライアントデバイス102に通知しないことができる。
【0058】
ただし、ケルベロスチケットが失効していない場合、サーバデバイス106は、復号されたケルベロスチケットから回復されたケルベロスセッション鍵KCAを使用して、ケルベロス認証子AuthTを復号する(動作260)。次いでサーバデバイス106は、ケルベロス認証子中のタイムスタンプTimeにアクセスし、タイムスタンプが受入れ可能であるかどうかを調べる(動作262)。タイムスタンプは、サーバデバイス106の現在時刻とそれほど同期が外れていなければ、受入れ可能である。一実施例では、タイムスタンプがサーバデバイス106の現在時刻からの時間しきい値(たとえば、推奨されるケルベロス時間スキュー(skew)である5分)の範囲内であれば、タイムスタンプは受入れ可能である。タイムスタンプが受入れ可能でなければ、鍵交換プロセスは失敗する(動作258)。
【0059】
タイムスタンプが受入れ可能な場合、サーバデバイス106は鍵交換メッセージInitMessのダイジェストを算出する(動作264)。サーバデバイス106は、図3の動作204でクライアントデバイス102がダイジェストを算出したのと同じ方法で、ダイジェストを算出する。次いでサーバデバイス106は、動作264で算出したダイジェスト値が、暗号化されたケルベロス認証子AuthTの一部としてクライアントデバイス102から受信したダイジェスト値に一致する(等しい)かどうかを調べる(動作266)。2つのダイジェスト値が同じであれば、クライアントデバイス102とサーバデバイス106との間の鍵交換メッセージInitMessが変更されていない(たとえば、鍵交換メッセージInitMessが不正変更されていない)ことを確認する働きをする。2つのダイジェスト値が一致しない場合(言い換えれば、2つのダイジェスト値が等しくない場合)、鍵交換プロセスは失敗する(動作258)。
【0060】
ただし、受信したダイジェスト値と算出されたダイジェスト値が一致した場合、サーバデバイス106はケルベロス認証子が再実行されたかどうかを調べる(動作268)。サーバデバイス106は、各クライアントデバイスCから受信したそれぞれのケルベロス認証子(ケルベロスチケットに示されている)からのタイムスタンプの記録を維持する。サーバデバイス106が、サーバデバイス106によって記録された最後のタイプスタンプよりも新しくないタイムスタンプTimeの付いたケルベロス認証子を受信すると、サーバデバイス106はケルベロス認証子が再実行されたものであることを知る。ケルベロス認証子が再実行されたものであれば、鍵交換イニシエータパケットは無効であり、鍵交換プロセスは失敗する(動作258)。ただし、ケルベロス認証子が再実行されたものでなければ、鍵交換イニシエータパケットはサーバデバイス106によって妥当性検査されている(動作270)。これらの試験すべてに適合し、動作270で鍵交換イニシエータパケットの妥当性が検査されると、サーバデバイス106はクライアントデバイス102が実際に自分の要求したデバイスであると認証し、サーバデバイス106は、クライアントデバイス102にケルベロスセッション鍵KCAの知識があることを検証し、クライアントにKCの知識があることも(鍵配布センタの信用を通じて間接的に)検証する。
【0061】
図5は、暗号鍵を生成するため、ならびに鍵交換応答パケットを生成および送信するための例示的プロセス300を示す流れ図である。図5は、図2の動作156および158をさらに詳細に示す図である。図5のプロセスはサーバデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図5のプロセスは、図1の構成要素を参照して論じられる。
【0062】
初めに、サーバデバイス106は、鍵交換イニシエータメッセージInitMess、ケルベロスセッション鍵KCA、クライアントデバイス102からのノンス(NonceInit)、およびサーバデバイス106によって生成されたノンス(NonceResp)に基づいて暗号鍵を生成する(動作302)。サーバデバイス106は、ランダム(または擬似ランダム)数Y、ならびにNonceRespと呼ばれるランダム値を生成する。さらにサーバデバイス106は、Diffie−Hellman値(gXY mod N)ならびにDiffie−Hellman値(gY mod N)を算出する。この時点で、サーバデバイス106はセキュリティアソシエーション鍵を算出するのに十分なデータを有する。セキュリティアソシエーション鍵は、2つのコンソール間での2地点間通信を安全にするために使用される。一実施例では、サーバデバイス106は2つのDiffie−Hellman値((gX mod N)および(Y))を使用して関数(gXY mod N)を算出する。次いでサーバデバイス106は、値NonceInit、NonceResp、(gXY mod N)、およびケルベロスセッション鍵KCAに基づいて、様々なアルゴリズムを使用して様々なダイジェストを算出する。次いでこれらのダイジェストは、セキュリティアソシエーション鍵を形成するために使用される。一実施例では、サーバデバイス106が、NonceInit、NonceResp、(gXY mod N)を入力として使用し、ケルベロスセッション鍵KCAを双方向ですべてのセキュアパケットを認証および暗号化/復号するためのセキュリティ鍵として使用して、4つの異なるダイジェスト(1つの鍵を認証用、1つの鍵を暗号用に、それぞれの方向用に2倍して合計4つ)を算出する。
【0063】
次いでサーバデバイス106は、鍵交換応答メッセージを生成する(動作304)。鍵交換応答メッセージは、以下のように、NonceInit、クライアントデバイス102から受信したタイムスタンプTime、NonceResp、Diffie−Hellman値(gY mod N)、およびSPI2値を含む。
RespMess=[NonceInit,SPI2,NonceResp,(gY mod N)]
【0064】
SPI2値はサーバデバイス106によって生成され、クライアントデバイス102からサーバデバイス106へのすべての通信に関連付けられる。次いでサーバデバイス106は、以下のように、ケルベロスセッション鍵を使用して応答メッセージのダイジェストおよびハッシュ関数Hを算出する(動作306)。
【0065】
【数5】
【0066】
動作306のハッシュ関数Hは、動作204のハッシュ関数Hと同じであるか、または異なるハッシュ関数Hであってよい。
【0067】
次いでサーバデバイス106は、以下のように、算出されたハッシュダイジェストおよびケルベロス認証子からのタイムスタンプTimeの両方を含む、ケルベロス回答メッセージを生成する(動作308)。
ReplyMess=[HashRespMess,Time]
【0068】
次いでサーバデバイス106は、以下のように、暗号化アルゴリズムE(たとえばトリプルDES)およびケルベロスセッション鍵KCAを使用してケルベロス回答メッセージReplyMessを暗号化する(動作310)。
【0069】
【数6】
【0070】
動作308の暗号化アルゴリズムEは、図3の動作206で使用される暗号化アルゴリズムと同じであるか、または異なる暗号化アルゴリズムであってよい。
【0071】
次いでサーバデバイス106は、以下のように、鍵交換応答メッセージRespMessおよび暗号化されたケルベロス回答メッセージEncryptedReplyMessを含む、鍵交換応答パケットを生成する。
RespPacket=[RespMess,EncryptedReplyMess]
【0072】
次いでサーバデバイス106は、鍵交換応答パケットRespPacketをクライアントデバイス102に送信する(動作314)。
【0073】
図6は、鍵交換応答パケットを受信および妥当性評価するため、および暗号鍵を生成するための、例示的なプロセス350を示す流れ図である。図6は、図2の動作160および162をより詳細に示す図である。図6のプロセスはクライアントデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図6のプロセスは、図1の構成要素を参照して論じられる。
【0074】
初めに、クライアントデバイス102は、サーバデバイス106から鍵交換応答パケットRespPacketを受信する(動作352)。クライアントデバイス102は、ケルベロスセッション鍵KCAを使用して、ケルベロス回答メッセージEncryptedReplyMessを復号する(動作354)。次いでクライアントデバイス102は、復号された回答メッセージ中のタイムスタンプTimeが、クライアントデバイス102がサーバデバイス106に送信したタイムスタンプTimeと一致するかどうかを調べる(動作356)。タイムスタンプが一致する場合(言い換えれば、タイムスタンプが等しい場合)、その一致により、サーバデバイス106がケルベロスチケット(KAの知識を証明する)およびケルベロス認証子(したがってケルベロスセッション鍵KCAの知識を有する)を復号できたことが確認され、実際にサーバデバイス106が自分の要求したものであることが確認される。したがってこれらのタイムスタンプ値が一致すれば、サーバデバイス106はクライアントデバイス102に対して認証され、この時点で、完全な相互認証が達成された(サーバはクライアントに対してKAの知識を証明し、クライアントはサーバに対してKCの知識を証明した)。
【0075】
タイムスタンプ値が一致しなければ、図4の動作258と同様に、鍵交換プロセスは失敗する(動作358)。ただし、タイムスタンプ値が一致する場合、サーバデバイス106はクライアントデバイス102に対して認証され、続いてクライアントデバイス102は、ケルベロスセッション鍵KCAを使用して鍵交換応答メッセージRespMessのダイジェストを算出する(動作360)。クライアントデバイス102は、図5の動作306でサーバデバイス106がダイジェストを算出したのと同じ方法で、ダイジェストを算出する。次いでクライアントデバイス102は、自分が動作360で算出したダイジェスト値が、暗号化されたケルベロス回答メッセージEncryptedReplyMessの一部としてサーバデバイス106から受信したダイジェスト値と一致する(等しい)かどうかを調べる(動作362)。2つのダイジェスト値が同じであれば、サーバデバイス106とクライアントデバイス102との間の鍵交換応答メッセージRespMessが変更されていない(たとえば、鍵交換応答メッセージRespMessが不正変更されていない)ことを確認する働きをする。2つのダイジェスト値が一致しない場合(言い換えれば、2つのダイジェスト値が等しくない場合)、鍵交換プロセスは失敗する(動作358)。
【0076】
ただし、2つのダイジェスト値が一致すれば、クライアントデバイス102は、ケルベロスセッション鍵KCA、NonceInit、NonceResp、およびgXY mod Nに基づいて暗号鍵を生成する(動作364)。図5の動作302に関して上記で考察したのと同様に、この時点でクライアントデバイス102には、Diffie−Hellman値(gXY mod N)を算出し、セキュリティアソシエーション鍵を算出するのに十分なデータがある。動作364でクライアントデバイス102によって算出されるセキュリティアソシエーション鍵は、図5の動作302でサーバデバイス106によって算出されるものと同じであり、同じ方法で算出される。gXY mod Nは、クライアントデバイスのgY mod NおよびXから算出されることに留意されたい。
【0077】
いったんクライアントデバイス102がセキュリティアソシエーション鍵を持てば、デバイス102は、鍵交換の完了を待っていたいかなるパケットも自由に伝送することができる。ただしサーバデバイス106は、たとえ同じ鍵セットを持っていてもその応答メッセージRespMessが失われたことを確認できないため、自由に伝送することはできない。サーバデバイス106は、算出されたセキュリティアソシエーション鍵で認証されたパケットをクライアントデバイス102から受信するまで、あるいは任意選択でクライアントデバイス102から肯定応答パケット(AckPack)を受信するまで、待機する。
【0078】
一般には、クライアントデバイス102がサーバデバイス106にパケットを送信するため、鍵交換プロセスは2つのパケット、すなわちInitPacketおよびRespPacketのみで構成される。あるいは、クライアントデバイス102がまだパケットを送信していなければ、クライアントデバイス102は人工の肯定応答パケット(「AckPack」と表記される)を送信することになる。このパケットは他の2つの鍵交換パケットとは異なり、ケルベロスセッション鍵KCAの代わりに算出されたセキュリティアソシエーション鍵を使用してAckPackがハッシュされる。
【0079】
これ以降、2つのデバイス102および104はセキュリティアソシエーション鍵を使用して通信を安全にする。他方のデバイスに伝送する必要のあるすべてのネットワークパケットは、任意選択で暗号化された後、受信側デバイスがパケットのコンテンツを復号する前に認証データを検証することによって認証される。デバイス102および104はいずれも、同じノンスを含む他方側からの鍵交換パケットを無視することができる。
【0080】
図7は、例示的なオンラインゲーム環境400を示す構成図である。複数のゲームコンソール402(1)、402(2)、...、402(n)が、ネットワーク406を介してセキュリティゲートウェイ404に結合される。ネットワーク406は、様々な従来のデータ通信ネットワークのうちの任意の1つまたは複数を表したものである。ネットワーク406は、典型的にはパケット交換ネットワークを含むが、回路交換ネットワークを含んでもよい。ネットワーク406は、有線および/または無線部分を含むことができる。一実施例では、ネットワーク406はインターネットを含み、任意選択で1つまたは複数のローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)を含むことができる。ネットワーク406の少なくとも一部は、公然とアクセスできるネットワークを示す、公衆ネットワークである。仮想上はだれでも公衆ネットワークにアクセスすることができる。
【0081】
状況によっては、ネットワーク406は、ゲームコンソール402とセキュリティゲートウェイ404との間に位置する経路指定デバイスを備えたLAN(たとえばホームネットワーク)を含む。この経路指定デバイスはネットワークアドレス変換(NAT)を実行することが可能であり、これによって、LAN上の複数のデバイスがインターネット上で同じIPアドレスを共用し、LAN上のデバイスが悪意のユーザまたは有害なユーザによってインターネットを介してアクセスされるのを防ぐファイアウォールとして動作することもできる。
【0082】
セキュリティゲートウェイ404は、公衆ネットワーク406と私設ネットワーク408との間のゲートウェイとして動作する。私設ネットワーク408は、ローカルエリアネットワークなどの多種多様な従来のネットワークのうちいずれであってもよい。私設ネットワーク408ならびに以下でより詳細に論じる他のデバイスは、セキュアゾーンとして動作するデータセンタ410内にある。データセンタ410は、信頼のある通信を介して通信する信頼のあるデバイスで構成される。したがって、セキュアゾーン410内での暗号および認証は不要である。ネットワーク408の私的な性格はネットワーク408の限られたアクセス可能性と呼ばれ、すなわちネットワーク408へのアクセスは一定の個人にのみ制限される(たとえば、データセンタ410の所有者またはオペレータによって制限される)。
【0083】
セキュリティゲートウェイ404は、1つまたは複数のセキュリティゲートウェイコンピューティングデバイスのクラスタである。これらのセキュリティゲートウェイコンピューティングデバイスがまとまって、セキュリティゲートウェイ404を実施する。セキュリティゲートウェイ404は、任意選択で、セキュリティゲートウェイコンピューティングデバイスによって処理されるように、要求をそれらコンピューティングデバイスのうちの適切なものに向けて送るように動作する、1つまたは複数の従来の負荷バランシングデバイスを含むことが可能である。この送ることまたは負荷バランシングは、様々なセキュリティゲートウェイコンピューティングデバイスにかかる負荷のバランスをほぼ等しくしようとする方法で(あるいは何らかの他の基準に従って)実行される。
【0084】
さらにデータセンタ410内には、1つまたは複数の監視サーバ412と、1つまたは複数のプレゼンス(presence)および通知フロントドア(front door)414、1つまたは複数のプレゼンスサーバ416、ならびに1つまたは複数の通知サーバ418(まとまってプレゼンスおよび通知サービスを実施する)と、1つまたは複数のマッチ(match)フロントドア420および1つまたは複数のマッチサーバ422(まとまってマッチサービスを実施する)と、1つまたは複数の統計フロントドア424および1つまたは複数の統計サーバ426(まとまって統計サービスを実施する)がある。サーバ416、418、422、および426はゲームコンソール402にサービスを提供するため、サービスデバイスと呼ばれることもある。サーバ416、418、422、および426のうち1つまたは複数に加えて、および/またはその代わりに、他のサービスデバイスを含めることもできる。さらに、図7にはデータセンタが1つしか示されていないが、ゲームコンソール402と通信可能な複数のデータセンタが存在する場合もある。これらのデータセンタは独立して動作するか、あるいは集合的に動作する(たとえば、1つの大規模データセンタをゲームコンソール102が使用できるようにするため)ことができる。
【0085】
ゲームコンソール402はデータセンタ410から離れた場所に位置し、ネットワーク406を介してデータセンタ410にアクセスする。データセンタ内の1つまたは複数のデバイスとの通信を希望するゲームコンソール402は、コンソール402とセキュリティゲートウェイ404との間にセキュア通信チャネルを確立する。ゲームコンソール402およびセキュリティゲートウェイ404は、行き来して渡されるデータパケットを暗号化および認証し、それによって、暗号を解読せずにデータパケットを取り込むかまたはコピーすることのできる任意の他のデバイスによって理解されることなく、それらの間でデータパケットを安全に伝送できるようにする。ゲームコンソール402からセキュリティゲートウェイ404へ送られる各データパケットに、データを埋め込むことができる。この埋め込まれたデータが、パケットのコンテンツまたはデータコンテンツと呼ばれる。パケットタイプに基づいて、パケットに追加の情報を固有に含めることもできる。
【0086】
コンソール402とセキュリティゲートウェイ404との間のセキュア通信チャネルは、本明細書に記載された相互認証を使用した安全な鍵交換を使用して確立される。コンソール402はそれ自体および鍵配布センタに対するコンソール402の現在のユーザを認証し、鍵配布センタ428からセキュリティチケットを取得する。次いでコンソール402はこのセキュリティチケットを使用して、セキュリティゲートウェイ404とのセキュア通信チャネルを確立する。セキュリティゲートウェイ404とのセキュア通信チャネルを確立する際に、ゲームコンソール402およびセキュリティゲートウェイ404は、それ自体を他方に対して認証し、その特定のゲームコンソール402およびセキュリティゲートウェイ404のみに知られた1つまたは複数のセッションセキュリティ鍵を確立する。このセッションセキュリティ鍵は、ゲームコンソール402とセキュリティゲートウェイクラスタ404との間で転送されるデータを暗号化するために使用されるので、他のデバイス(他のゲームコンソール402を含む)は一切データを読み取ることができない。セッションセキュリティ鍵は、データパケットを、セキュリティゲートウェイ404からのもの、またはデータパケットが自分の発信元であると主張するゲームコンソール402からのものとして認証するためにも使用される。したがって、こうしたセッションセキュリティ鍵を使用して、セキュリティゲートウェイ404と様々なゲームコンソール402との間にセキュア通信チャネルを確立することができる。
【0087】
ゲームコンソール402とセキュリティゲートウェイ404の間にセキュア通信チャネルが確立されると、暗号化されたデータパケットをこの2つの間で安全に伝送することができる。ゲームコンソール402がデータセンタ410内にある特定のサービスデバイスにデータを送信しようとする場合、ゲームコンソール402はそのデータを暗号化し、これをセキュリティゲートウェイ404に送信して、データパケットのターゲットである特定のサービスデバイスにこれを転送するように要求する。セキュリティゲートウェイ404はデータパケットを受信し、このデータパケットを認証および復号した後、パケットのデータコンテンツを他のメッセージにカプセル化して、私設ネットワーク408を介して適切なサービスに送信する。セキュリティゲートウェイ404は、データパケットのターゲットである要求されたサービスに基づいて、メッセージに適したサービスを決定する。
【0088】
本明細書では、主に、暗号化されたデータパケットをセキュリティゲートウェイ404とゲームコンソール402との間で通信することについて論じたが、データパケットによっては部分的に暗号化する(データパケットの一部を暗号化し、他の部分は暗号化しない)こともできる。データパケットのどの部分を暗号化してどの部分を暗号化しないかは、データセンタ410および/またはゲームコンソール402の設計者の希望に基づいて変えることができる。たとえば設計者は、コンソール402のユーザが互いに会話できるように、コンソール402間で音声データを通信できるようにすることを選択し、さらに音声データは暗号化せずに、パケット内の任意の他のデータを暗号化するように選択することができる。さらに別法として、一部のデータパケットには暗号化された部分がないようにする(すなわち、データパケット全体が暗号化されない)ことができる。たとえデータパケットが暗号化されないかまたは部分的にのみ暗号化される場合でも、依然としてデータパケット全体は認証される。
【0089】
同様に、データセンタ410内のサービスデバイスがゲームコンソール402にデータを送ろうとする場合、データセンタは、ゲームコンソール402に送信するデータコンテンツ、ならびにデータコンテンツの送信先である特定のゲームコンソール402のインジケーションを含むメッセージを、私設ネットワーク408を介してセキュリティゲートウェイ404に送信する。セキュリティゲートウェイ404は、このデータコンテンツをデータパケットに埋め込み、その後データパケットを特定のゲームコンソール402のみが復号できるように暗号化し、さらにそのデータパケットをセキュリティゲートウェイ404からのものとしても認証する。
【0090】
セキュリティゲートウェイ404内のそれぞれのセキュリティゲートウェイデバイスは、典型的には1つまたは複数のゲームコンソール402とのセキュア通信チャネルを担当しているため、それぞれのセキュリティゲートウェイデバイスが1つまたは複数のゲームコンソールの管理または処理を担当しているとみなすことができる。様々なセキュリティゲートウェイデバイスは相互に通信し合い、お互いにメッセージを送ることができる。たとえば、管理を担当していないゲームコンソールにデータパケットを送る必要のあるセキュリティゲートウェイデバイスは、他のすべてのセキュリティゲートウェイデバイスに対して、そのゲームコンソールに送信するデータと共にメッセージを送ることができる。このメッセージが、そのゲームコンソールの管理を担当するセキュリティゲートウェイデバイスによって受信され、このデバイスが適切なデータをそのゲームコンソールに送信する。あるいは、セキュリティゲートウェイデバイスが、どのゲームコンソールがどのセキュリティゲートウェイデバイスによって処理されるかを知っている場合があり、これには、各セキュリティゲートウェイデバイスが他のセキュリティゲートウェイデバイスによって処理されるゲームコンソールのテーブルを維持するなどのように明示的な場合、あるいはゲームコンソールの識別子に基づいて、どのセキュリティゲートウェイデバイスが特定のゲームコンソールの担当であるかを決定するなどのように暗黙的な場合がある。
【0091】
監視サーバ412は、データセンタ410内のデバイスに対して、使用不可能なゲームコンソール402について、またはセキュリティゲートウェイ404の使用不可能なセキュリティゲートウェイデバイスについて通知する働きをする。ゲームコンソール402は、ハードウェアまたはソフトウェアの障害、コンソールの電源がデータセンタ410からログアウトせずに遮断される、コンソール402へのネットワーク接続ケーブルがコンソール402から切断される、他のネットワーク問題(たとえばコンソール402が誤作動しているLAN)などの、様々な異なる理由で使用不可能になる場合がある。同様に、セキュリティゲートウェイ404のセキュリティゲートウェイデバイスが、ハードウェアまたはソフトウェアの障害、デバイスの電源が遮断される、デバイスへのネットワーク接続ケーブルがデバイスから切断される、他のネットワーク問題などの、様々な異なる理由で使用不可能になる場合もある。
【0092】
セキュリティゲートウェイ404内のそれぞれのセキュリティゲートウェイデバイスは、1つまたは複数の監視サーバ412によって監視され、このサーバがセキュリティゲートウェイデバイスのうちの1つが使用不可能になったときを検出する。セキュリティゲートウェイデバイスが使用不可能になった場合、監視サーバ412はデータセンタ410内の他のそれぞれのデバイス(サーバ、フロントドアなど)に対して、セキュリティゲートウェイデバイスがもはや使用不可能であるというメッセージを送信する。他のそれぞれのデバイスは、この情報に基づいて適切と思われる動作を実行する(たとえば、セキュリティゲートウェイデバイスによって管理される特定のゲームコンソールがデータセンタ410ともはや通信していないと想定し、それに応じて様々なクリーンアップオペレーションを実行する)ことができる。あるいは、一定のデバイスのみ(たとえば、セキュリティゲートウェイデバイスが使用可能かどうかに関係するデバイスのみ)が、こうしたメッセージを監視サーバ412から受信する場合もある。
【0093】
セキュリティゲートウェイ404は、個々のゲームコンソール402を監視し、ゲームコンソール402のうちの1つが使用不可能になったときを検出する。セキュリティゲートウェイ104が、ゲームコンソールがもはや使用不可能であることを検出すると、セキュリティゲートウェイ104は、使用不可能なゲームコンソールを識別するメッセージを監視サーバ112に送信する。これに応答して監視サーバ412は、データセンタ410の他のそれぞれのデバイス(または選択されたデバイスのみ)に対して、ゲームコンソールがもはや使用不可能であるというメッセージを送信する。他のそれぞれのデバイスはこの情報に基づいて、適切と思われる動作を実行することができる。
【0094】
プレゼンスサーバ416は、オンラインゲームのためにデータセンタ410にログインした所与のユーザの状況または存在に関するデータを保持し、これを処理する。通知サーバ418は、データセンタ410にログインしたプレーヤに向けて発信されるメッセージの複数の待ち行列を維持する。プレゼンスおよび通知フロントドア414は、セキュリティゲートウェイ404とサーバ416および418との間の仲介として動作する、1つまたは複数のサーバデバイスである。フロントドア414として動作する複数のサーバデバイスの間で負荷のバランスを取るために、プレゼンスおよび通知フロントドア414内に1つまたは複数の負荷バランシングデバイス(図示せず)を含めることができる。セキュリティゲートウェイ404は、サーバ416および418に関するメッセージをフロントドア414に送信し、フロントドア414は特定のサーバ416または特定のサーバ418のどちらにメッセージを送信するのかを識別する。フロントドア414を使用することにより、どのサーバがどのユーザに関するデータの管理を担当しているかなどのサーバ416および418の実際の実施が、セキュリティゲートウェイ404から取り出される。セキュリティゲートウェイ404は、プレゼンスおよび通知サービスをターゲットとするメッセージをプレゼンスおよび通知フロントドア414に転送するだけで、メッセージの経路をサーバ416およびサーバ418のうち適切な1つに指定することに関してはフロントドア414に依拠することができる。
【0095】
マッチサーバ422は、オンラインプレーヤの対戦相手を決めることに関するデータを保持し、これを処理する。オンラインユーザは、プレイできるゲームとそのゲームの様々な特徴(たとえば、サッカーゲームが行われる場所、ゲームがデイゲームかナイトゲームか、ユーザの技能レベルなど)を宣伝することができる。その後これらの様々な特徴を、様々なオンラインユーザの対戦相手を決める際の基準として使用することができる。マッチフロントドア420は1つまたは複数のサーバデバイス(および任意選択で負荷バランシングデバイス)を含み、フロントドア414がサーバ416およびサーバ418を取り出したのと同じ方法で、セキュリティゲートウェイ404からマッチサーバ422を取り出す働きをする。
【0096】
統計サーバ426は、オンラインゲーム用の様々な統計に関するデータを保持し、これを処理する。使用される特定の統計(たとえば、得点または時間の上位10人、ゲームのすべてのオンラインプレーヤの世界ランキング、最も多くのアイテムを発見したユーザまたは最も長くプレイしたユーザのリストなど)は、ゲーム設計者の希望に基づいて変えることができる。統計フロントドア426は、1つまたは複数のサーバデバイス(および任意選択で負荷バランシングデバイス)を含み、フロントドア414がサーバ416およびサーバ418を取り出したのと同じ方法で、セキュリティゲートウェイ404から統計サーバ426を取り出す働きをする。
【0097】
したがってセキュリティゲートウェイ404は、データセンタ410のセキュアゾーン内にあるデバイスを、信頼のない公衆ネットワーク406から保護する働きをするとみなすことができる。データセンタ410のセキュアゾーン内での通信は暗号化する必要がなく、データセンタ410内にあるすべてのデバイスは信頼される。ただし、データセンタ410内のデバイスからゲームコンソール402に送られるいかなる情報も、セキュリティゲートウェイクラスタ404を通過し、ここで情報のターゲットとなるゲームコンソール402のみが復号可能な方法で暗号化される。
【0098】
図8は、本明細書に記載された技法を実施するために使用可能な、汎用コンピュータ環境500を示す図である。コンピュータ環境500は、コンピューティング環境の一例に過ぎず、コンピュータおよびネットワークアーキテクチャの使用または機能の範囲に関するいかなる制限も示唆することを意図するものでない。さらにコンピュータ環境500は、例示的なコンピュータ環境500に示された構成要素のうちのいずれか1つまたはいずれかの組合せに関して、いかなる依存関係または要件も有するものとして解釈されるべきでない。
【0099】
コンピュータ環境500は、コンピュータ502の形式の汎用コンピューティングデバイスを含む。コンピュータ502は、たとえば図1のクライアントデバイス102、サーバデバイス106、および/または鍵配布センタ104の一部であるデバイス、図7のセキュリティゲートウェイデバイス404、サーバ412、416、418、422、および/または426、ならびに/あるいは図7のフロントドア414、420、または424であってよい。コンピュータ502の構成要素には、1つまたは複数の処理装置または処理ユニット504と、システムメモリ506と、処理装置504を含む様々なシステム構成要素をシステムメモリ506に結合するシステムバス508とが含まれるが、これらに限定されるものではない。コンピュータ502は、暗号処理装置またはコプロセッサ(co−processor)(図8には図示せず)を含むこともできる。こうした暗号処理装置またはコプロセッサは、暗号オペレーション(暗号化、復号、およびハッシングなど)を実行し、他の処理装置(たとえば処理ユニット504)の計算コストのかかる暗号化オペレーションを軽減するように設計される。
【0100】
システムバス508は、メモリバスまたはメモリコントローラ、周辺バス、高速グラフィックスポート、および様々なバスアーキテクチャのうちのいずれかを使用する処理装置またはローカルバスを含む、任意のいくつかのタイプのバス構造のうちの1つまたは複数を表す。例を挙げると、こうしたアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびメザニンバスとしても知られるPeripheral Component Interconnects(PCI)バスを含むことができる。
【0101】
コンピュータ502は、典型的には様々なコンピュータ読取り可能媒体を含む。こうした媒体は、コンピュータ502がアクセス可能な任意の使用可能媒体であってよく、揮発性媒体および不揮発性媒体、取外し可能(removable)媒体および取外し不能(non−removable)媒体の両方を含む。
【0102】
システムメモリ506は、ランダムアクセスメモリ(RAM)510などの揮発性メモリ、および/または読取り専用メモリ(ROM)512などの不揮発性メモリの形式の、コンピュータ読取り可能媒体を含む。起動中などにコンピュータ502内の要素間での情報転送を助ける基本ルーチンを含む基本入力/出力システム(BIOS)514が、ROM 512に格納される。RAM 510は典型的には、処理ユニット504に即時アクセス可能であり、かつ/または現在処理ユニット504で動作している、データおよび/またはプログラムモジュールを含む。
【0103】
コンピュータ502は、他の取外し可能/取外し不能、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。例を挙げると、図8には、取外し不能の不揮発性磁気媒体(図示せず)からの読取り用およびこれへの書込み用のハードディスクドライブ516、取外し可能の不揮発性磁気ディスク520(たとえば、「フロッピー(登録商標)ディスク」)からの読取り用およびこれへの書込み用の磁気ディスクドライブ518、ならびにCD−ROM、DVD−ROM、または他の光媒体などの取外し可能の不揮発性光ディスク524からの読取り用およびこれへの書込み用の光ディスクドライブ522が示されている。ハードディスクドライブ516、磁気ディスクドライブ518、および光ディスクドライブ522は、それぞれ1つまたは複数のデータ媒体インターフェース526によって、システムバス508に接続される。あるいは、ハードディスクドライブ516、磁気ディスクドライブ518、および光ディスクドライブ522を、1つまたは複数のインターフェース(図示せず)によってシステムバス508に接続することができる。
【0104】
ディスクドライブおよびそれらの関連するコンピュータ読取り可能媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、およびコンピュータ502に関する他のデータの、不揮発性記憶域を提供する。この例にはハードディスク516、取外し可能磁気ディスク520、および取外し可能光ディスク524が示されているが、例示的コンピューティングシステムおよび環境を実施するために、磁気カセットまたは他の磁気記憶デバイス、フラッシュメモリカード、CD−ROM、デジタル汎用ディスク(DVD)または他の光記憶装置、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能プログラム可能読取り専用メモリ(EEPROM)などの、コンピュータがアクセス可能なデータを格納できる他のタイプのコンピュータ読取り可能媒体も使用可能であることを理解されよう。
【0105】
任意数のプログラムモジュールを、ハードディスク516、磁気ディスク520、光ディスク524、ROM 512、および/またはRAM 510に格納することが可能であり、例を挙げると、オペレーティングシステム526、1つまたは複数のアプリケーションプログラム528、他のプログラムモジュール530、およびプログラムデータ532が含まれる。こうしたオペレーティングシステム526、1つまたは複数のアプリケーションプログラム528、他のプログラムモジュール530、およびプログラムデータ532(またはそれらの何らかの組合せ)がそれぞれ、分散ファイルシステムをサポートする常駐構成要素のすべてまたは一部を実施することができる。
【0106】
ユーザは、キーボード534およびポインティングデバイス536(たとえば「マウス」)などの入力デバイスを介して、コマンドおよび情報をコンピュータ502に入力できる。他の入力デバイス538(具体的には図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、シリアルポート、スキャナなどを含むことができる。これらおよび他の入力デバイスは、システムバス508に結合された入力/出力インターフェース540を介して処理ユニット504に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造によって接続してもよい。
【0107】
モニタ542または他のタイプのディスプレイデバイスを、ビデオアダプタ544などのインターフェースを介してシステムバス508に接続することもできる。他の出力周辺デバイスは、モニタ542に加えて、入力/出力インターフェース540を介してコンピュータ502に接続可能なスピーカ(図示せず)およびプリンタ546などの構成要素を含むこともできる。
【0108】
コンピュータ502は、リモートコンピューティングデバイス548などの1つまたは複数のリモートコンピュータへの論理接続を使用する、ネットワーク環境で動作可能である。例を挙げると、リモートコンピューティングデバイス548は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたは他の共通ネットワークノード、ゲームコンソールなどであってよい。リモートコンピューティングデバイス548は、コンピュータ502に関して本明細書に記載された要素および特徴の多くまたはすべてを含むことができる、ポータブルコンピュータとして示されている。
【0109】
コンピュータ502とリモートコンピュータ548との間の論理接続は、ローカルエリアネットワーク(LAN)550および一般的なワイドエリアネットワーク(WAN)552として示されている。こうしたネットワーキング環境は、事務所や企業規模のコンピュータネットワーク、イントラネット、およびインターネットでよく見られるものである。
【0110】
LANネットワーキング環境で実施される場合、コンピュータ502はネットワークインターフェースまたはアダプタ554を介してローカルネットワーク550に接続される。WANネットワーキング環境で実施される場合、コンピュータ502は典型的にはモデム556またはワイドネットワーク552を介して通信を確立するための他の手段を含む。モデム556はコンピュータ502に内蔵または外付けであってよく、入力/出力インターフェース540または他の適切なメカニズムを介してシステムバス508に接続可能である。図示されたネットワーク接続は例示的なものであり、コンピュータ502と548との間に通信リンクを確立する他の手段が使用できることを理解されよう。
【0111】
コンピューティング環境500で例示されたようなネットワーク環境では、コンピュータ502に関して示されたプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに格納することができる。例を挙げると、リモートアプリケーションプログラム558はリモートコンピュータ548のメモリデバイス上に常駐する。図に示すために、アプリケーションプログラムおよびオペレーティングシステムなどの他の実行可能プログラム構成要素は、本明細書では別個のブロックとして示されているが、こうしたプログラムおよび構成要素は、様々な時点に、コンピューティングデバイス502の様々な記憶構成要素内に常駐するものであり、コンピュータのデータ処理装置によって実行されることを理解されよう。
【0112】
図9は、ゲームコンソール601の機能構成要素をより詳細に示す図である。ゲームコンソール601は、たとえば図1のクライアントデバイス102であってよい。ゲームコンソール601は、中央処理ユニット(CPU)600と、フラッシュROM(読取り専用メモリ)604、RAM(ランダムアクセスメモリ)606、ハードディスクドライバ608、およびポータブルメディアドライブ609を含む様々なタイプのメモリへの処理装置のアクセスを容易にするメモリコントローラ602とを有する。CPU 600には、データを一時的に格納し、メモリアクセスサイクル数を減少させるための、レベル1キャッシュ610およびレベル2キャッシュ612とが備えられており、それによって処理速度およびスループットが向上する。
【0113】
CPU 600、メモリコントローラ602、および様々なメモリデバイスは、シリアルおよびパラレルバス、メモリバス、周辺バス、ならびに任意の様々なバスアーキテクチャを使用する処理装置またはローカルバスを含む、1つまたは複数のバスを介して相互接続される。例を挙げると、こうしたアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびメザニンバスとしても知られるPeripheral Component Interconnects(PCI)バスを含むことができる。
【0114】
好適な一実施として、CPU 600、メモリコントローラ602、ROM 604、およびRAM 606は、共通モジュール614に統合される。この実施では、ROM 604は、PCI(Peripheral Component Interconnect)バスおよびROMバス(どちらも図示せず)を介してメモリコントローラ602に接続されるフラッシュROMとして構成される。RAM 606は、別々のバス(図示せず)を介してメモリコントローラ602によって別個に制御される、多重DDR SDRAM(Double Data Rate Synchronous Dynamic RAM)として構成される。ハードディスクドライブ608およびポータブルメディアドライブ609は、PCIバスおよびATA(AT Attachment)バス616を介してメモリコントローラに接続される。
【0115】
3Dグラフィックス処理ユニット620およびビデオ符号器622は、高速および高解像度のグラフィックス処理のためのビデオ処理パイプラインを形成する。データは、デジタルビデオバス(図示せず)を介して、グラフィックス処理ユニット620からビデオ符号器622に搬送される。オーディオ処理ユニット624およびオーディオコーデック(符号器/復号器)626は、高忠実度およびステレオ処理を備えた対応するオーディオ処理パイプラインを形成する。オーディオデータは、オーディオ処理ユニット624とオーディオコーデック626との間を、通信リンク(図示せず)を介して搬送される。ビデオおよびオーディオ処理パイプラインは、データをテレビジョンまたは他のディスプレイに伝送するために、A/V(オーディオ/ビデオ)ポート628に出力する。図示された実施では、ビデオおよびオーディオ処理構成要素620〜628はモジュール614上に取り付けられる。
【0116】
USBホストコントローラ630およびネットワークインターフェース632も、モジュール614上で実施される。USBホストコントローラ630は、バス(たとえばPCIバス)を介してCPU 600およびメモリコントローラ602に結合され、周辺制御装置636(1)〜636(4)のホストとしての役割を果たす。ネットワークインターフェース632はネットワーク(たとえばインターネット、ホームネットワークなど)へのアクセスを提供し、イーサネット(登録商標)カード、モデム、ブルートゥースモジュール、ケーブルモデムなどを含む多種多様な様々な有線または無線のインターフェース構成要素のうちいずれであってもよい。
【0117】
ゲームコンソール601は、2つのデュアルコントローラ(dual controller)サポートサブアセンブリ640(1)および640(2)を有し、それぞれのサブアセンブリが2つのゲームコントローラ636(1)〜636(4)をサポートする。フロントパネルI/Oサブアセンブリ640は、電源ボタン631およびメディアドライブ取出しボタン633、ならびにゲームコンソールの外部表面に取り付けられた任意のLED(発光ダイオード)または他のインジケータの機能をサポートする。サブアセンブリ640(1)、640(2)、および642は、1つまたは複数のケーブルアセンブリ644を解してモジュール614に結合される。
【0118】
4つのコントローラ636(1)〜636(4)に8つのメモリユニット634(1)〜634(8)が、すなわち各コントローラにつき2つのメモリユニットが接続可能であるように図示されている。各メモリユニット634は、ゲーム、ゲームパラメータ、および他のデータが格納できる追加の記憶装置を提供する。メモリユニット634をコントローラに挿入すると、メモリコントローラ602がアクセスできるようになる。
【0119】
システム電源モジュール650は、ゲームコンソール601の構成要素に電力を提供する。ファン652はゲームコンソール601内の回路を冷却する。
【0120】
コンソールユーザインターフェース(UI)アプリケーション660はハードディスクドライブ608上に格納される。ゲームコンソールの電源を入れると、コンソールアプリケーション660の様々な部分がRAM 606および/またはキャッシュ610、612にロードされ、CPU 600で実行される。コンソールアプリケーション660は、ゲームコンソール上で使用可能な様々なメディアタイプにナビゲートする際に一貫したユーザ体験を提供する、グラフィカルユーザインターフェースを提示する。
【0121】
ゲームコンソール601は、暗号化、復号、認証、デジタル署名、ハッシングなどの一般的な暗号機能を実行するための、暗号エンジンを実施する。暗号エンジンは、CPU 600の一部として、またはCPU上で実行するハードディスクドライブ608上に格納されたソフトウェア内で実施可能であるため、CPUは暗号機能を実行するように構成される。あるいは、暗号機能を実行するように設計された暗号処理装置またはコプロセッサを、ゲームコンソール601に含めることもできる。
【0122】
ゲームコンソール601は、システムをテレビジョンまたは他のディスプレイに接続するだけで、スタンドアロン型システムとして動作可能である。このスタンドアロンモードでは、ゲームコンソール601は1人または複数人のプレーヤがゲームをプレイし、映画を鑑賞し、あるいは音楽を聞くことができるようにする。ただし、ネットワークインターフェース632を介して利用可能なブロードバンド接続が組み込まれていれば、さらにゲームコンソール601は、前述のようにオンラインゲームの参加者として動作することもできる。
【0123】
本明細書では、様々なモジュールおよび技法について、1つまたは複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュールなどのコンピュータ実行可能命令のコンテキストで説明することができる。通常、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。典型的には、プログラムモジュールの機能は、様々な実施形態で希望に応じて組み合わせるかまたは分散させることができる。
【0124】
これらのモジュールおよび技法の実施は、何らかの形式のコンピュータ読取り可能媒体上に格納するか、またはこれらをまたがって伝送することができる。コンピュータ読取り可能媒体は、コンピュータがアクセス可能な任意の使用可能媒体であってよい。例を挙げると、コンピュータ読取り可能媒体は「コンピュータ記憶媒体(computer storage media)」および「通信媒体(communication media)」を含むことができるが、これらに限定されるものではない。
【0125】
「コンピュータ記憶媒体」には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技法で実施された、揮発性および不揮発性、取外し可能および取外し不能な媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル汎用ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を格納するために使用可能でありコンピュータがアクセス可能な任意の他の媒体が含まれるが、これらに限定されるものではない。
【0126】
「通信媒体」は、典型的にはコンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送メカニズムなどの変調データ信号(modulated data signal)で実施する。通信媒体には任意の情報送達媒体も含まれる。「変調データ信号」という用語は、1つまたは複数の特徴を信号中の情報を符号化するように設定または変更した信号を意味する。例を挙げると、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体と、音波、RF、赤外線、および他の無線媒体などの無線媒体とが含まれるが、これらに限定されるものではない。上記のいずれかの組合せも、コンピュータ読取り可能媒体の範囲内に含まれる。
【0127】
本明細書で論じた相互認証を使用した安全な鍵交換は、秘密を導出するためのDiffie−Hellman指数演算を参照しながら論じられた。別法として、Diffie−Hellmanの代わりに他の暗号オペレーションまたは方法を使用することもできる。
【0128】
上記の説明では、構造的特徴および/または方法論的動作に特有の言語を使用したが、特許請求の範囲に定義された本発明は、記載された特有の特徴または動作に限定されるものではないことを理解されよう。むしろ特有の特徴および動作は、本発明を実施するための例示的形式として開示されたものである。
【図面の簡単な説明】
【図1】相互認証を使用した安全な鍵交換が使用可能な例示的環境を示す構成図である。
【図2】クライアントデバイスとサーバデバイスとの間で相互認証を使用して安全な鍵交換を実行するための、例示的なプロセスを示す流れ図である。
【図3】鍵交換イニシエータパケットを生成および送信するための、例示的なプロセスを示す流れ図である。
【図4】鍵交換イニシエータパケットを受信および妥当性検査するための、例示的なプロセスを示す流れ図である。
【図5】暗号鍵を生成し、さらに鍵交換応答パケットを生成および送信するための、例示的なプロセスを示す流れ図である。
【図6】鍵交換応答パケットを受信および妥当性検査するため、および暗号鍵を生成するための、例示的なプロセスを示す流れ図である。
【図7】相互認証を使用した安全な鍵交換が使用可能な例示的オンラインゲーム環境を示す構成図である。
【図8】本明細書に記載された技法を実施するために使用可能な、汎用コンピュータ環境を示す図である。
【図9】本明細書に記載された技法を実施するために使用可能なゲームコンソールの機能構成要素を、より詳細に示す図である。
【符号の説明】
102 クライアントデバイス
104 鍵配布センタ
106 サーバデバイス
404 セキュリティゲートウェイ
406 ネットワーク
408 私設ネットワーク
410 データセンタ(セキュアゾーン)
412 監視サーバ
414 プレゼンスおよび通知フロントドア
416 プレゼンスサーバ
418 通知サーバ
420 マッチフロントドア
422 マッチサーバ
424 統計フロントドア
426 統計サーバ
428 鍵配布センタ
504 処理ユニット
506 システムメモリ
508 システムバス
510 RAM
512 ROM
514 BIOS
526 データ媒体インターフェース
526 オペレーティングシステム
528 アプリケーションプログラム
530 プログラムモジュール
532 プログラムデータ
534 キーボード
536 マウス
538 他のデバイス
540 入出力インターフェース
542 モニタ
544 ビデオアダプタ
546 プリンタ
548 リモートコンピューティングデバイス
550 LAN
552 インターネット
554 ネットワークアダプタ
556 モデム
558 リモートアプリケーションプログラム
600 中央処理ユニット
601 ゲームコンソール
602 メモリコントローラ
604 フラッシュROMメモリ
606 RAMメモリ
608 ハードディスクドライブ
609 ポータブルメディアドライブ
610 レベル1キャッシュ
612 レベル2キャッシュ
616 ATAケーブル
620 3Dグラフィックス処理ユニット
622 ビデオ符号器
624 オーディオ処理ユニット
626 オーディオコーデック
628 A/Vポート
630 USBホストコントローラ
632 ネットワークインターフェース
634(1)〜(8) メモリユニット
636(1)〜(4) コントローラ
640(1)〜(2) デュアルコントローラポートサブアセンブリ
642 フロントパネルI/Oサブアセンブリ
650 システム電源モジュール
652 ファン
Claims (69)
- 1つまたは複数の処理装置によって実行されると、
ネットワークを介した単一のラウンドトリップで、デバイスとの相互認証およびパーフェクトフォワードシークレシの両方を達成するネットワーク上のデバイスとの鍵交換を前記1つまたは複数の処理装置に実行させる複数の命令を格納したことを特徴とする1つまたは複数のコンピュータ読取り可能媒体。 - 前記相互認証は、ケルベロス認証プロトコルに基づいて達成されることを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記パーフェクトフォワードシークレシは、前記ネットワークを介した前記単一のラウンドトリップに含まれるDiffie−Hellman値に基づいて達成されることを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記ネットワークを介した前記単一のラウンドトリップは鍵交換イニシエータメッセージを含み、前記命令は、前記1つまたは複数の処理装置によって実行されると、前記鍵交換イニシエータメッセージが不正変更されていないことを検証するために前記鍵交換イニシエータメッセージのダイジェストを前記1つまたは複数の処理装置に検証させることを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記命令は、前記1つまたは複数の処理装置によって実行されると、さらに、鍵付きハッシュを使用して前記鍵交換イニシエータメッセージのダイジェストを前記1つまたは複数の処理装置に生成させることを特徴とする請求項4に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記ネットワークを介した前記単一のラウンドトリップは鍵交換応答メッセージを含み、前記命令は前記1つまたは複数の処理装置によって実行されると、前記鍵交換応答メッセージが不正変更されていないことを検証するために前記鍵交換応答メッセージのダイジェストを前記1つまたは複数の処理装置に検証させることを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記命令は、前記1つまたは複数の処理装置によって実行されると、さらに、鍵付きハッシュを使用して前記鍵交換応答メッセージのダイジェストを前記1つまたは複数の処理装置に生成させることを特徴とする請求項6に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記ネットワークを介した前記単一のラウンドトリップは鍵交換イニシエータメッセージを含み、前記命令は前記1つまたは複数の処理装置によって実行されると、前記1つまたは複数の処理装置に、前記鍵交換イニシエータメッセージに含まれたタイムスタンプが現在時刻からの時間しきい値の範囲内であるかどうかを調べさせ、前記タイムスタンプが前記現在時刻からの前記時間しきい値の範囲内である場合にのみ、前記鍵交換イニシエータメッセージに応答させることを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記ネットワークを介した前記単一のラウンドトリップは鍵交換イニシエータメッセージを含み、前記命令は、前記1つまたは複数の処理装置によって実行されると、前記1つまたは複数の処理装置に、前記鍵交換イニシエータメッセージに含まれたタイムスタンプが前記デバイスから受信した最後のタイムスタンプより新しいかどうかを調べさせ、前記タイムスタンプが前記デバイスから受信した前記最後のタイムスタンプより新しい場合にのみ、前記鍵交換イニシエータメッセージに応答させることを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記ネットワークはインターネットを含むことを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記1つまたは複数の処理装置はゲームコンソールで実施されることを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記複数の命令は、前記1つまたは複数の処理装置に、さらに
前記鍵を含まない鍵交換イニシエータパケットを前記デバイスに送信させ、
前記鍵を含まない鍵交換応答パケットを前記デバイスから受信させ、
前記鍵交換応答パケットの妥当性を検査させ、
少なくとも一部は前記鍵交換応答パケット中のデータに基づいて、前記鍵を生成するためにいかなる追加のパケットも前記デバイスに送信するかまたは前記デバイスから受信する必要なしに、前記鍵を生成させることを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。 - 前記複数の命令は、前記1つまたは複数の処理装置に、さらに
前記鍵を含まない鍵交換イニシエータパケットを前記デバイスから受信させ、
前記鍵交換イニシエータパケットの妥当性を検査させ、
少なくとも一部は前記鍵交換イニシエータパケット中のデータに基づいて、前記鍵を生成するためにいかなる追加のパケットも前記デバイスから受信する必要なしに、前記鍵を生成させ、
前記鍵を含まない鍵交換応答パケットを前記デバイスに送信させることを特徴とする請求項1に記載の1つまたは複数のコンピュータ読取り可能媒体。 - デバイス内で実施される方法であって、
セキュリティ鍵を安全に交換し、前記デバイスを相互に認証し、ならびにパーフェクトフォワードシークレシを達成するために、ネットワークを介した単一のラウンドトリップにより他のデバイスと通信するステップを備えることを特徴とする方法。 - 前記方法はゲームコンソール内で実施されることを特徴とする請求項14に記載の方法。
- 前記ネットワーク上の他のデバイスは、前記ネットワークを介した前記単一のラウンドトリップから前記鍵を推定することができないことを特徴とする請求項14に記載の方法。
- ゲームコンソール内で実施される、デバイスとの通信で使用するために相互鍵を確立する方法であって、前記方法は、
前記相互鍵を含まない鍵交換イニシエータパケットをネットワークを介して前記デバイスに送信するステップと、
前記相互鍵を含まない鍵交換応答パケットをネットワークを介して前記デバイスから受信するステップと、
前記鍵交換応答パケットの妥当性を検査するステップと、
少なくとも一部は前記鍵交換応答パケット中のデータに基づいて、前記相互鍵を生成するためにいかなる追加のパケットも前記デバイスに送信するかまたは前記デバイスから受信する必要なしに、前記相互鍵を生成するステップとを備えることを特徴とする方法。 - 前記鍵交換イニシエータパケットは、前記鍵を生成するためにいかなる追加のパケットも前記デバイスに送信する必要なしに、同じ相互鍵を生成するために前記デバイスが前記鍵交換応答パケットを送信できるようにすることを特徴とする請求項17に記載の方法。
- 鍵交換イニシエータメッセージを生成するステップと、
前記鍵交換イニシエータメッセージのダイジェストを算出するステップと、
少なくとも一部は前記ダイジェストに基づいて認証子を生成するステップと、
前記認証子を暗号化するステップと、
前記鍵交換イニシエータメッセージと、前記暗号化された認証子と、セキュリティチケットとを含む鍵交換イニシエータパケットを生成することによって、前記鍵交換イニシエータパケットを生成するステップとをさらに備えることを特徴とする請求項17に記載の方法。 - 前記鍵交換応答パケットを妥当性検査するステップは、
前記デバイスから鍵交換応答パケットを受け取るステップと、
前記鍵交換応答パケットに含まれた回答メッセージを復号するステップと、
前記回答メッセージ中のタイムスタンプが、以前に前記デバイスに送信されたタイプスタンプと同じであるかどうかを調べるステップと、
前記鍵交換応答パケットに含まれた鍵交換応答メッセージのダイジェスト値を算出するステップと、
前記回答メッセージ中の前記タイムスタンプが以前に前記デバイスに送信された前記タイムスタンプと同じである場合、および前記鍵交換応答パケットの前記算出されたダイジェスト値が前記鍵交換応答パケットに含まれたダイジェスト値と同じである場合にのみ前記鍵交換応答パケットが有効であると決定するステップとを含むことを特徴とする請求項17に記載の方法。 - 前記鍵を生成するステップは、
前記鍵交換応答パケットから、Diffie−Hellman値(gY mod N)を取り出すステップと、
以前にランダムに生成された値(X)を取得するステップと、
Diffie−Hellman値(gXY mod N)を算出するステップと、
少なくとも一部はDiffie−Hellman値(gXY mod N)に基づいて前記鍵を生成するステップとを含むことを特徴とする請求項17に記載の方法。 - 前記鍵交換イニシエータパケットおよび前記鍵交換応答パケットは、パーフェクトフォワードシークレシを達成可能にすることを特徴とする請求項17に記載の方法。
- ゲームコンソールとの通信で使用するために鍵を確立する方法であって、
前記鍵を含まない鍵交換イニシエータパケットを、ネットワークを介して前記ゲームコンソールから受信するステップと、
前記鍵交換イニシエータパケットの妥当性を検査するステップと、
少なくとも一部は前記鍵交換イニシエータパケット中のデータに基づいて、前記鍵を生成するためにいかなる追加のパケットも前記ゲームコンソールから受信する必要なしに、前記鍵を生成するステップと、
前記鍵を含まない鍵交換応答パケットを前記ネットワークを介して前記ゲームコンソールに送信するステップとを備えることを特徴とする方法。 - 前記鍵交換応答パケットは、前記ゲームコンソールが前記鍵を生成するためにいかなる追加のパケットも前記ゲームコンソールに送信する必要なしに前記鍵を生成できるようにする情報を含むことを特徴とする請求項23に記載の方法。
- 前記鍵交換イニシエータパケットを妥当性検査するステップは、
前記鍵交換イニシエータパケット中のセキュリティチケットを復号するステップと、
前記鍵交換イニシエータパケット中の認証子を復号するステップと、
前記鍵交換イニシエータパケット中の鍵交換メッセージのダイジェストを算出するステップと、
前記セキュリティチケットが失効していないこと、
前記認証子中のタイムスタンプが受入れ可能であること、
前記鍵交換メッセージの前記算出されたダイジェストが前記認証子の一部として含まれるダイジェスト値に等しいこと、および
前記認証子が再実行されていないこと
という条件をすべて満たしている場合にのみ前記鍵交換イニシエータパケットが有効であると決定するステップとを含むことを特徴とする請求項17に記載の方法。 - 鍵交換応答メッセージを生成するステップと、
前記鍵交換応答メッセージのダイジェストを算出するステップと、
回答メッセージを生成するステップと、
前記回答メッセージを暗号化するステップと、
前記鍵交換応答メッセージおよび前記暗号化された回答メッセージの両方を含む、鍵交換応答パケットを生成することによって、前記鍵交換応答パケットを生成するステップとをさらに備えることを特徴とする請求項23に記載の方法。 - 前記鍵を生成するステップは、
前記鍵交換イニシエータパケットから、Diffie−Hellman値(gX mod N)を取り出すステップと、
ランダムなDiffie−Hellman値(Y)を生成するステップと、
前記鍵交換応答の一部としてgY mod Nを含めるステップと、
Diffie−Hellman値(gXY mod N)を算出するステップと、
少なくとも一部はDiffie−Hellman値(gXY mod N)に基づいて前記鍵を生成するステップとを含むことを特徴とする請求項23に記載の方法。 - 前記鍵交換イニシエータパケットおよび前記鍵交換応答パケットは、パーフェクトフォワードシークレシを達成可能にすることを特徴とする請求項23に記載の方法。
- 前記ゲームコンソールとサーバデバイスとの間で続いて行なわれる安全な通信で使用するための鍵の確立を開始するために、ゲームコンソールで実施される方法であって、前記方法は、
鍵交換イニシエータメッセージを生成するステップと、
前記鍵交換イニシエータメッセージのダイジェストを算出するステップと、
少なくとも一部は前記ダイジェストに基づいて認証子を生成するステップと、
前記認証子を暗号化するステップと、
前記鍵交換イニシエータメッセージと、前記暗号化された認証子と、セキュリティチケットとを含む鍵交換イニシエータパケットを生成するステップと、
前記鍵交換イニシエータパケットを前記サーバデバイスに送信するステップとを備えることを特徴とする方法。 - 前記鍵交換イニシエータメッセージを生成するステップは、
第1の値NonceInitを生成するステップと、
第2の値Xを生成すること、
前記第2の値Xを使用してDiffie−Hellman値(gX mod N)を生成するステップと、
前記鍵交換イニシエータメッセージに前記第1の値NonceInitおよびDiffie−Hellman値(gX mod N)を含めるステップとを含むことを特徴とする請求項29に記載の方法。 - 前記鍵交換イニシエータメッセージの前記ダイジェストを算出するステップは、
前記ダイジェストを算出するために以前に鍵配布センタから受信したケルベロスセッション鍵KCAおよびハッシング機能を使用するステップを含むことを特徴とする請求項29に記載の方法。 - 前記認証子を生成するステップは、
現在のタイムスタンプを生成するステップと、
前記現在のタイムスタンプおよび前記鍵交換イニシエータメッセージの前記ダイジェストを前記認証子に含めるステップとを含むことを特徴とする請求項29に記載の方法。 - 前記認証子を暗号化するステップは、少なくとも一部は以前に鍵配布センタから受信したケルベロスセッション鍵KCAに基づいて、前記認証子を暗号化するステップを含むことを特徴とする請求項29に記載の方法。
- 前記鍵交換イニシエータパケットを生成するステップは、
前記鍵交換イニシエータメッセージと、
新しいセキュリティアソシエーションの確立が開始されたことを示すための所定のセキュリティパラメータインデックス(SPI)値と、
前記暗号化された認証子と、
前記セキュリティチケットとを、前記鍵交換イニシエータパケットに含めるステップを含むことを特徴とする請求項29に記載の方法。 - 前記セキュリティチケットはケルベロスチケットを含むことを特徴とする請求項29に記載の方法。
- 前記鍵交換イニシエータパケットは、パーフェクトフォワードシークレシを達成可能にすることを特徴とする請求項29に記載の方法。
- 前記サーバデバイスとゲームコンソールとの間で続いて行なわれる安全な通信で使用するための鍵を確立するサーバデバイスで実施される方法であって、前記方法は、
鍵交換イニシエータパケットを前記ゲームコンソールから受信するステップと、
前記鍵交換イニシエータパケット中のセキュリティチケットを復号するステップと、
前記鍵交換イニシエータパケット中の認証子を復号するステップと、
前記鍵交換イニシエータパケット中の鍵交換メッセージのダイジェストを算出するステップと、
セキュリティチケットが失効していないこと、
前記認証子中のタイムスタンプが受入れ可能であること、
前記鍵交換メッセージの前記算出されたダイジェストが前記認証子の一部として含まれるダイジェスト値に等しいこと、および
前記認証子が再実行されていないこと
という条件をすべて満たしている場合にのみ前記鍵交換イニシエータパケットが有効であると決定するステップとを備えることを特徴とする方法。 - 前記セキュリティチケットを復号するステップは、
前記サーバデバイスと前記セキュリティチケットを前記ゲームコンソールに提供した鍵配布センタとで共用する鍵を使用して、前記セキュリティチケットを復号するステップを含むことを特徴とする請求項37に記載の方法。 - 現在時刻が前記セキュリティチケットで識別された期間内に含まれていない場合、前記セキュリティチケットが失効していると決定するステップをさらに備えることを特徴とする請求項37に記載の方法。
- 前記タイムスタンプが現在時刻からの時間しきい値の範囲内にある場合、前記認証子中の前記タイムスタンプが受入れ可能であると決定するステップをさらに備えることを特徴とする請求項37に記載の方法。
- 前記タイムスタンプが、前記ゲームコンソールから前記サーバデバイスが受信した最後のタイムスタンプよりも新しくない場合、前記認証子が再実行されたと決定するステップをさらに備えることを特徴とする請求項37に記載の方法。
- 前記鍵交換イニシエータパケットから、Diffie−Hellman値(gX mod N)を取り出すステップと、
ランダムな値(Y)を生成するステップと、
前記鍵交換イニシエータパケットに応答してDiffie−Hellman値(gY mod N)を送信するステップと、
Diffie−Hellman値(gXY mod N)を算出するステップと、
少なくとも一部はDiffie−Hellman値(gXY mod N)に基づいて前記鍵を生成するステップとをさらに備えることを特徴とする請求項37に記載の方法。 - 前記鍵交換イニシエータパケットは、パーフェクトフォワードシークレシを達成可能にすることを特徴とする請求項37に記載の方法。
- 複数の命令を格納した1つまたは複数のコンピュータ読取り可能媒体であって、サーバとゲームコンソールとの間で続いて行なわれる安全な通信で使用するために鍵を確立する際に、サーバデバイスの1つまたは複数の処理装置によって実行されると、前記複数の命令は前記1つまたは複数の処理装置に、
鍵交換イニシエータパケットを受信させ、
前記鍵交換イニシエータパケット中のセキュリティチケットを復号させ、
現在時刻が前記セキュリティチケットで識別された期間内にあるかどうかを調べさせ、前期現在時刻が前記セキュリティチケットで識別された前記期間内にない場合は、前記鍵が確立できないことを表示させ、
前記鍵交換イニシエータパケット中の認証子を復号させ、
前記認証子中のタイムスタンプが前記現在時刻からの時間しきい値の範囲内にあるかどうかを調べさせ、前記タイムスタンプが前記現在時刻からの時間しきい値の範囲内にない場合は、前記鍵が確立できないことを表示させ、
前記鍵交換イニシエータパケット中の鍵交換メッセージのダイジェスト値を算出させ、
前記算出されたダイジェスト値が前記認証子の一部として含められたダイジェスト値に等しいかどうかを調べさせ、前記算出されたダイジェスト値が前記認証子の一部として含められたダイジェスト値に等しくない場合は、前記鍵が確立できないことを表示させることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。 - 前記命令は前記1つまたは複数の処理装置に、さらに
前記タイムスタンプが前記ゲームコンソールから前記サーバデバイスが受信した最後のタイムスタンプよりも新しいかどうかを調べさせ、前記タイムスタンプが前記最後のタイムスタンプよりも新しくない場合は、前記鍵が確立できないことを表示させることを特徴とする請求項44に記載の1つまたは複数のコンピュータ読取り可能媒体。 - 前記命令は前記1つまたは複数の処理装置に、さらに
前記鍵交換イニシエータパケットから、Diffie−Hellman値(gX mod N)を取り出させ、
ランダムな値(Y)を生成させ、
前記鍵交換イニシエータパケットへの応答の一部としてDiffie−Hellman値(gY mod N)を送信させ、
Diffie−Hellman値(gXY mod N)を算出させ、
少なくとも一部はDiffie−Hellman値(gXY mod N)に基づいて前記鍵を生成させることを特徴とする請求項44に記載の1つまたは複数のコンピュータ読取り可能媒体。 - 前記鍵交換イニシエータパケットは、パーフェクトフォワードシークレシを達成可能にすることを特徴とする請求項44に記載の1つまたは複数のコンピュータ読取り可能媒体。
- サーバデバイスとゲームコンソールとの間の今後の安全な通信で使用するための鍵を確立するサーバデバイスで実施される方法であって、前記方法は、
鍵交換応答メッセージを生成するステップと、
前記鍵交換応答メッセージのダイジェストを算出するステップと、
回答メッセージを生成するステップと、
前記回答メッセージを暗号化するステップと、
前記鍵交換応答メッセージおよび前記暗号化された回答メッセージの両方を含む鍵交換応答パケットを生成するステップと、
前記鍵交換応答パケットを前記ゲームコンソールに送信するステップとを備えることを特徴とする方法。 - 前記鍵交換応答メッセージを生成するステップは、
第1の値NonceRespを生成するステップと、
第2の値Yを生成するステップと、
前記第2の値Yを使用してDiffie−Hellman値(gY mod N)を生成するステップと、
前記鍵交換応答メッセージに
前記ゲームコンソールから以前に受信したNonceInit値と、
前記第1の値NonceRespと、
前記Diffie−Hellman値(gY mod N)と、
前記ゲームコンソールから以前に受信したタイムスタンプ値とを含めるステップとを含むことを特徴とする請求項48に記載の方法。 - 前記鍵交換応答メッセージの前記ダイジェストを算出するステップは、
前記ダイジェストを算出するためにケルベロスチケットの一部として前記ゲームコンソールから以前に受信したケルベロスセッション鍵KCAおよびハッシング機能を使用するステップを含むことを特徴とする請求項48に記載の方法。 - 前記回答メッセージを生成するステップは、前記ゲームコンソールから以前に受信したタイムスタンプ、および前記鍵交換応答メッセージの前記ダイジェストの両方を、前記回答メッセージに含めるステップを含むことを特徴とする請求項48に記載の方法。
- 前記回答メッセージを暗号化するステップは、少なくとも一部は以前にケルベロスチケットの一部として前記ゲームコンソールから受信したケルベロスセッション鍵KCAに基づいて、前記回答メッセージを暗号化するステップを含むことを特徴とする請求項48に記載の方法。
- 前記鍵交換応答パケットを生成するステップは、
前記鍵交換応答メッセージと、
前記暗号化された回答メッセージと、
前記サーバデバイスから前記ゲームコンソールへの今後の安全な通信を識別するために使用されるセキュリティパラメータインデックス(SPI)値とを、前記鍵交換応答パケットに含めるステップを含むことを特徴とする請求項48に記載の方法。 - 前記鍵交換応答パケットは、パーフェクトフォワードシークレシを達成可能にすることを特徴とする請求項48に記載の方法。
- 複数の命令を格納した1つまたは複数のコンピュータ読取り可能媒体であって、サーバデバイスとゲームコンソールとの間の今後の安全な通信で使用するために鍵を確立する際に、1つまたは複数の処理装置によって実行されると、前記複数の命令は前記1つまたは複数の処理装置に、
鍵交換応答メッセージを生成させ、
前記鍵交換応答メッセージのダイジェストを算出させ、
前記ダイジェストと前記ゲームコンソールから以前に受信したタイムスタンプとを含む回答メッセージを生成させ、
前記回答メッセージを暗号化させ、
前記鍵交換応答メッセージと前記暗号化された回答メッセージの両方を含む鍵交換応答パケットを生成させ、
前記鍵交換応答パケットを前記ゲームコンソールに送信させることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。 - 前記1つまたは複数の処理装置に前記鍵交換応答メッセージの前記ダイジェストを算出させる前記命令は、前記1つまたは複数の処理装置に少なくとも一部はケルベロスセッション鍵に基づいて前記鍵交換応答メッセージの前記ダイジェストを算出させる命令を含むことを特徴とする請求項55に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記1つまたは複数の処理装置に前記鍵交換応答メッセージを生成させる前記命令は、前記1つまたは複数の処理装置に、
第1の値NonceRespを生成させ、
第2の値Yを生成させ、
前記第2の値Yを使用してDiffie−Hellman値(gY mod N)を生成させ、
前記鍵交換応答メッセージに
前記ゲームコンソールから以前に受信したNonceInit値と、
前記第1の値NonceRespと、
前記Diffie−Hellman値(gY mod N)と、
前記タイムスタンプ値とを含めさせる命令を含むことを特徴とする請求項55に記載の1つまたは複数のコンピュータ読取り可能媒体。 - 前記1つまたは複数の処理装置に前記回答メッセージを暗号化させる前記命令は、前記1つまたは複数の処理装置に少なくとも一部はケルベロスセッション鍵に基づいて前記回答メッセージを暗号化させる命令を含むことを特徴とする請求項55に記載の1つまたは複数のコンピュータ読取り可能媒体。
- 前記1つまたは複数の処理装置に前記鍵交換応答パケットを生成させる前記命令は、前記1つまたは複数の処理装置に、
前記鍵交換応答メッセージと、
前記暗号化された回答メッセージと、
前記サーバデバイスから前記ゲームコンソールへの今後の安全な通信を識別するために使用されるセキュリティパラメータインデックス(SPI)値とを、前記鍵交換応答パケットに含めさせる命令を含むことを特徴とする請求項55に記載の1つまたは複数のコンピュータ読取り可能媒体。 - 前記鍵交換応答パケットは、パーフェクトフォワードシークレシを達成可能にすることを特徴とする請求項55に記載の1つまたは複数のコンピュータ読取り可能媒体。
- ゲームコンソールとサーバデバイスとの間の今後の安全な通信で使用するための鍵を確立するゲームコンソールで実施される方法であって、前記方法は、
前記サーバデバイスから鍵交換応答パケットを受信するステップと、
前記鍵交換応答パケットに含まれた回答メッセージを復号するステップと、
前記回答メッセージ中のタイムスタンプは、以前に前記ゲームコンソールによって前記サーバデバイスに送信されたタイムスタンプと同じであるかどうかを調べるステップと、
前記鍵交換応答パケットに含まれた鍵交換応答メッセージのダイジェスト値を算出するステップと、
前記回答メッセージ中の前記タイムスタンプが以前に前記ゲームコンソールによって前記サーバデバイスに送信された前記タイムスタンプと同じである場合、および前記鍵交換応答パケットの前記算出されたダイジェスト値が前記鍵交換応答パケットに含まれたダイジェスト値と同じである場合にのみ前記鍵交換応答パケットが有効であると決定するステップとを備えることを特徴とする方法。 - 前記回答メッセージを復号するステップは、以前に前記ゲームコンソールによって鍵配布センタから取得されたケルベロスセッション鍵を使用して、前記回答メッセージを復号するステップを含むことを特徴とする請求項61に記載の方法。
- 前記鍵交換応答パケットから、Diffie−Hellman値(gY mod N)を取り出すステップと、
以前に生成された値(X)を使用して、Diffie−Hellman値(gXY mod N)を算出するステップと、
少なくとも一部はDiffie−Hellman値(gXY mod N)に基づいて前記鍵を生成するステップとをさらに備えることを特徴とする請求項61に記載の方法。 - 前記鍵交換応答パケットは、パーフェクトフォワードシークレシを達成可能にすることを特徴とする請求項61に記載の方法。
- 鍵配布センタからセッション鍵を取得するように構成されたクライアントデバイスと、
ネットワークを介して前記クライアントデバイスに結合され、前記クライアントデバイスと通信し、前記ネットワークを介した単一のラウンドトリップで安全に鍵を交換し、相互に認証し合い、ならびにパーフェクトフォワードシークレシを達成するように構成されたサーバデバイスとを備えることを特徴とするシステム。 - 前記クライアントデバイスはゲームコンソールを含むことを特徴とする請求項65に記載のシステム。
- 前記サーバデバイスはデータセンタセキュリティゲートウェイを含むことを特徴とする請求項65に記載のシステム。
- 前記クライアントデバイスは、さらに
前記鍵を含まない鍵交換イニシエータパケットを前記サーバデバイスに送信し、
前記鍵を含まない鍵交換イニシエータパケットを前記サーバデバイスから受信し、
前記鍵交換応答パケットの妥当性を検査し、
少なくとも一部は前記鍵交換応答パケット中のデータに基づいて、前記鍵を生成するためにいかなる追加のパケットも前記サーバデバイスに送信するかまたは前記サーバデバイスから受信する必要なしに、前記鍵を生成するように構成されることを特徴とする請求項65に記載のシステム。 - 前記サーバデバイスは、さらに
前記鍵を含まない鍵交換イニシエータパケットを前記クライアントデバイスから受信し、
前記鍵交換イニシエータパケットの妥当性を検査し、
少なくとも一部は前記鍵交換イニシエータパケット中のデータに基づいて、前記鍵を生成するためにいかなる追加のパケットも前記クライアントデバイスから受信する必要なしに、前記鍵を生成し、
前記鍵を含まない鍵交換応答パケットを前記クライアントデバイスに送信するように構成されることを特徴とする請求項65に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/170,002 US7565537B2 (en) | 2002-06-10 | 2002-06-10 | Secure key exchange with mutual authentication |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004015813A true JP2004015813A (ja) | 2004-01-15 |
Family
ID=29583822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003165715A Pending JP2004015813A (ja) | 2002-06-10 | 2003-06-10 | 相互認証を使用した安全な鍵交換方法およびコンピュータ読取り可能媒体 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7565537B2 (ja) |
EP (1) | EP1372292B1 (ja) |
JP (1) | JP2004015813A (ja) |
AT (1) | ATE339042T1 (ja) |
DE (1) | DE60308099T2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005244988A (ja) * | 2004-02-27 | 2005-09-08 | Microsoft Corp | 装置用セキュリティアソシエーション |
JP2005244594A (ja) * | 2004-02-26 | 2005-09-08 | Sanyo Electric Co Ltd | サーバ装置、ネットワーク対応機器およびプログラム |
WO2010150813A1 (ja) * | 2009-06-23 | 2010-12-29 | パナソニック電工株式会社 | 暗号鍵配布システム |
JP2012511747A (ja) * | 2008-08-08 | 2012-05-24 | マイカ テクノロジーズ インク | デジタル相互作用を管理するシステムおよび方法 |
JP2014527379A (ja) * | 2011-09-12 | 2014-10-09 | クゥアルコム・インコーポレイテッド | 共有エフェメラル・キー・データのセットを用いるエクスチェンジを符号化するためのシステム及び方法 |
US8993645B2 (en) | 2012-06-12 | 2015-03-31 | Nakata Coating Co., Ltd. | Compound containing imido group, solution of compound containing imido group and method for producing of compound containing imido group |
US9143937B2 (en) | 2011-09-12 | 2015-09-22 | Qualcomm Incorporated | Wireless communication using concurrent re-authentication and connection setup |
US9226144B2 (en) | 2011-09-12 | 2015-12-29 | Qualcomm Incorporated | Systems and methods of performing link setup and authentication |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8224985B2 (en) | 2005-10-04 | 2012-07-17 | Sony Computer Entertainment Inc. | Peer-to-peer communication traversing symmetric network address translators |
US8060626B2 (en) | 2008-09-22 | 2011-11-15 | Sony Computer Entertainment America Llc. | Method for host selection based on discovered NAT type |
US8788825B1 (en) * | 2003-01-14 | 2014-07-22 | Digi International Inc. | Method and apparatus for key management for various device-server configurations |
US7712675B2 (en) * | 2003-01-15 | 2010-05-11 | Hewlett-Packard Development Company, L.P. | Physical items for holding data securely, and methods and apparatus for publishing and reading them |
KR100548354B1 (ko) * | 2003-06-14 | 2006-02-02 | 엘지전자 주식회사 | 동기화 프로토콜에서의 사용자 인증 방법 |
JP4617763B2 (ja) * | 2003-09-03 | 2011-01-26 | ソニー株式会社 | 機器認証システム、機器認証サーバ、端末機器、機器認証方法、および機器認証プログラム |
JP3854954B2 (ja) * | 2003-09-05 | 2006-12-06 | キヤノン株式会社 | データ共有装置 |
US7392422B2 (en) * | 2003-10-20 | 2008-06-24 | Sony Computer Entertainment America Inc., | Violations in a peer-to-peer relay network |
US11734393B2 (en) | 2004-09-20 | 2023-08-22 | Warner Bros. Entertainment Inc. | Content distribution with renewable content protection |
US20080208964A1 (en) * | 2005-07-27 | 2008-08-28 | Mikhail Vasilyevich Belyaev | Client-Server Information System and Method for Providing Graphical User Interface |
US8621577B2 (en) * | 2005-08-19 | 2013-12-31 | Samsung Electronics Co., Ltd. | Method for performing multiple pre-shared key based authentication at once and system for executing the method |
US8306918B2 (en) * | 2005-10-11 | 2012-11-06 | Apple Inc. | Use of media storage structure with multiple pieces of content in a content-distribution system |
US7668313B2 (en) * | 2005-10-31 | 2010-02-23 | Texas Instruments Incorporated | Recipient-encrypted session key cryptography |
US8417949B2 (en) * | 2005-10-31 | 2013-04-09 | Microsoft Corporation | Total exchange session security |
US7657754B2 (en) | 2005-12-08 | 2010-02-02 | Agere Systems Inc | Methods and apparatus for the secure handling of data in a microcontroller |
US8622837B2 (en) | 2006-03-20 | 2014-01-07 | Sony Computer Entertainment America Llc | Managing game metrics and authorizations |
US7753795B2 (en) * | 2006-03-20 | 2010-07-13 | Sony Computer Entertainment America Llc | Maintaining community integrity |
US8771061B2 (en) | 2006-03-20 | 2014-07-08 | Sony Computer Entertainment America Llc | Invalidating network devices with illicit peripherals |
US7480656B2 (en) * | 2006-03-20 | 2009-01-20 | Sony Computer Entertainment America Inc. | Active validation of network devices |
IL174494A0 (en) * | 2006-03-22 | 2007-07-04 | Nds Ltd | Period keys |
US8255963B2 (en) * | 2006-04-25 | 2012-08-28 | XOrbit Inc. | System and method for monitoring video data |
US8127135B2 (en) * | 2006-09-28 | 2012-02-28 | Hewlett-Packard Development Company, L.P. | Changing of shared encryption key |
US7942741B2 (en) | 2006-11-15 | 2011-05-17 | Cfph, Llc | Verifying whether a device is communicating with a server |
CA3106530A1 (en) * | 2006-11-15 | 2008-05-22 | Cfph, L.L.C. | Systems and methods for determining that a gaming device is communicating with a gaming server |
US7942739B2 (en) * | 2006-11-15 | 2011-05-17 | Cfph, Llc | Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server |
US7942740B2 (en) | 2006-11-15 | 2011-05-17 | Cfph, Llc | Verifying a first device is in communications with a server by storing a value from the first device and accessing the value from a second device |
US7942742B2 (en) | 2006-11-15 | 2011-05-17 | Cfph, Llc | Accessing identification information to verify a gaming device is in communications with a server |
US8012015B2 (en) | 2006-11-15 | 2011-09-06 | Cfph, Llc | Verifying whether a gaming device is communicating with a gaming server |
US7942738B2 (en) | 2006-11-15 | 2011-05-17 | Cfph, Llc | Verifying a gaming device is in communications with a gaming server |
US10068421B2 (en) * | 2006-11-16 | 2018-09-04 | Cfph, Llc | Using a first device to verify whether a second device is communicating with a server |
CN101202622A (zh) * | 2006-12-15 | 2008-06-18 | 上海交通大学 | 一种减小参数传输带宽的方法和装置以及密钥交换方法 |
US7995478B2 (en) | 2007-05-30 | 2011-08-09 | Sony Computer Entertainment Inc. | Network communication with path MTU size discovery |
US7899188B2 (en) | 2007-05-31 | 2011-03-01 | Motorola Mobility, Inc. | Method and system to authenticate a peer in a peer-to-peer network |
US20100293379A1 (en) * | 2007-05-31 | 2010-11-18 | Beijing Transpacific Ip Technology Development Ltd | method for secure data transmission in wireless sensor network |
US7908393B2 (en) | 2007-12-04 | 2011-03-15 | Sony Computer Entertainment Inc. | Network bandwidth detection, distribution and traffic prioritization |
US7856506B2 (en) | 2008-03-05 | 2010-12-21 | Sony Computer Entertainment Inc. | Traversal of symmetric network address translator for multiple simultaneous connections |
JP2009290329A (ja) * | 2008-05-27 | 2009-12-10 | Toshiba Corp | Ip通信システム、サーバユニット、端末デバイスおよび認証方法 |
ATE546944T1 (de) * | 2008-06-12 | 2012-03-15 | Ericsson Telefon Ab L M | Verfahren und vorrichtung zur kommunikation von maschine zu maschine |
US8862872B2 (en) * | 2008-09-12 | 2014-10-14 | Qualcomm Incorporated | Ticket-based spectrum authorization and access control |
US8548467B2 (en) * | 2008-09-12 | 2013-10-01 | Qualcomm Incorporated | Ticket-based configuration parameters validation |
US9148335B2 (en) * | 2008-09-30 | 2015-09-29 | Qualcomm Incorporated | Third party validation of internet protocol addresses |
KR101089889B1 (ko) * | 2008-11-21 | 2011-12-05 | 한국전자통신연구원 | 다운로더블 제한수신시스템 및 상기 다운로더블 제한수신시스템에서 인증 서버와 단말 간 암호화된 양방향 통신을 위한 세션 제어 방법 |
US9231758B2 (en) * | 2009-11-16 | 2016-01-05 | Arm Technologies Israel Ltd. | System, device, and method of provisioning cryptographic data to electronic devices |
WO2012021729A1 (en) * | 2010-08-11 | 2012-02-16 | Aaron Marking | Simple nonautonomous peering network media |
US9636589B2 (en) | 2010-11-02 | 2017-05-02 | Sony Interactive Entertainment America Llc | Detecting lag switch cheating in game |
EP2697783B1 (en) * | 2011-03-29 | 2014-06-11 | Inventio AG | Distribution of premises access information |
WO2012170800A1 (en) * | 2011-06-08 | 2012-12-13 | Cirque Corporation | Protecting data from data leakage or misuse while supporting multiple channels and physical interfaces |
JP5899687B2 (ja) * | 2011-07-15 | 2016-04-06 | ソニー株式会社 | 通信装置及び通信方法、通信システム、並びにコンピューター・プログラム |
US8914635B2 (en) * | 2011-07-25 | 2014-12-16 | Grey Heron Technologies, Llc | Method and system for establishing secure communications using composite key cryptography |
US10979226B1 (en) * | 2011-10-12 | 2021-04-13 | Cybrsecurity Corporation | Soft-token authentication system with token blocking after entering the wrong PIN |
US9135460B2 (en) * | 2011-12-22 | 2015-09-15 | Microsoft Technology Licensing, Llc | Techniques to store secret information for global data centers |
US9026784B2 (en) * | 2012-01-26 | 2015-05-05 | Mcafee, Inc. | System and method for innovative management of transport layer security session tickets in a network environment |
US8667270B2 (en) | 2012-02-10 | 2014-03-04 | Samsung Electronics Co., Ltd. | Securely upgrading or downgrading platform components |
WO2013119065A1 (en) * | 2012-02-10 | 2013-08-15 | Samsung Electronics Co., Ltd. | Securely upgrading or downgrading platform components |
TWI501614B (zh) | 2012-10-23 | 2015-09-21 | Univ Nat Sun Yat Sen | Symmetric Dynamic Authentication and Key Exchange System and Its |
WO2015184991A1 (en) * | 2014-06-04 | 2015-12-10 | Jintai Ding | Improvements on cryptographic systems using pairing with errors |
US10154032B2 (en) * | 2014-09-09 | 2018-12-11 | Comcast Cable Communications, Llc | Methods for security system-agnostic uniform device identification |
JP2018507646A (ja) | 2015-02-27 | 2018-03-15 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | 通信デバイスとネットワークデバイスとの間の通信におけるセキュリティ構成 |
US10050789B2 (en) | 2015-04-24 | 2018-08-14 | Red Hat, Inc. | Kerberos preauthentication with J-PAKE |
US20160330221A1 (en) * | 2015-05-07 | 2016-11-10 | Cyber-Ark Software Ltd. | Systems and Methods for Detecting and Reacting to Malicious Activity in Computer Networks |
CN106487637B (zh) * | 2015-08-25 | 2020-04-03 | 腾讯科技(深圳)有限公司 | 一种应用消息的处理***、方法及应用设备 |
CN108933757B (zh) * | 2017-05-22 | 2021-09-17 | 北京君泊网络科技有限责任公司 | 一种硬件设备的安全可靠联网接入方法 |
GB201710283D0 (en) * | 2017-06-28 | 2017-08-09 | Nchain Holdings Ltd | Computer-implemented system and method |
CN109802927B (zh) * | 2017-11-17 | 2021-06-11 | 航天信息股份有限公司 | 一种安全服务提供方法及装置 |
CN109994115B (zh) * | 2018-01-03 | 2023-07-07 | 阿里巴巴集团控股有限公司 | 通讯方法及装置、数据处理方法及设备 |
CN108268619B (zh) | 2018-01-08 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 内容推荐方法及装置 |
CN108446817B (zh) | 2018-02-01 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 确定业务对应的决策策略的方法、装置和电子设备 |
CN110569856B (zh) | 2018-08-24 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 样本标注方法及装置、损伤类别的识别方法及装置 |
CN110569696A (zh) | 2018-08-31 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 用于车辆部件识别的神经网络***、方法和装置 |
CN110570316A (zh) | 2018-08-31 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 训练损伤识别模型的方法及装置 |
CN110569864A (zh) | 2018-09-04 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 基于gan网络的车损图像生成方法和装置 |
US11734458B2 (en) * | 2019-02-26 | 2023-08-22 | Intel Corporation | Extensible layered trusted computing base for computing devices |
CN110401666B (zh) * | 2019-07-30 | 2022-05-13 | 四川虹魔方网络科技有限公司 | 一种基于用户身份的网络权限分配方法 |
US11206144B2 (en) | 2019-09-11 | 2021-12-21 | International Business Machines Corporation | Establishing a security association and authentication to secure communication between an initiator and a responder |
US11201749B2 (en) * | 2019-09-11 | 2021-12-14 | International Business Machines Corporation | Establishing a security association and authentication to secure communication between an initiator and a responder |
US11489821B2 (en) | 2020-02-26 | 2022-11-01 | International Business Machines Corporation | Processing a request to initiate a secure data transfer in a computing environment |
US11502834B2 (en) | 2020-02-26 | 2022-11-15 | International Business Machines Corporation | Refreshing keys in a computing environment that provides secure data transfer |
US11405215B2 (en) | 2020-02-26 | 2022-08-02 | International Business Machines Corporation | Generation of a secure key exchange authentication response in a computing environment |
US11546137B2 (en) * | 2020-02-26 | 2023-01-03 | International Business Machines Corporation | Generation of a request to initiate a secure data transfer in a computing environment |
US11184160B2 (en) | 2020-02-26 | 2021-11-23 | International Business Machines Corporation | Channel key loading in a computing environment |
US11310036B2 (en) | 2020-02-26 | 2022-04-19 | International Business Machines Corporation | Generation of a secure key exchange authentication request in a computing environment |
US11652616B2 (en) | 2020-02-26 | 2023-05-16 | International Business Machines Corporation | Initializing a local key manager for providing secure data transfer in a computing environment |
US11502830B2 (en) * | 2020-10-12 | 2022-11-15 | Kyndryl, Inc. | Ultrasound split key transmission for enhanced security |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0677953A (ja) * | 1992-08-27 | 1994-03-18 | Kokusai Denshin Denwa Co Ltd <Kdd> | 相互認証/暗号鍵配送方式 |
JPH088895A (ja) * | 1994-06-10 | 1996-01-12 | Sun Microsyst Inc | インターネット手順のキー管理のための方法ならびにその装置 |
JPH11234263A (ja) * | 1998-02-12 | 1999-08-27 | Fuji Xerox Co Ltd | 相互認証方法および装置 |
JP2002007348A (ja) * | 2000-06-16 | 2002-01-11 | Ntt Communications Kk | ネットワークサービスの利用者管理方法、サーバ及び記録媒体 |
JP2002140300A (ja) * | 2000-10-31 | 2002-05-17 | Funai Electric Co Ltd | ゲーム機に適用されるユーザ認証方法及びそれに用いられるシステム |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4200770A (en) | 1977-09-06 | 1980-04-29 | Stanford University | Cryptographic apparatus and method |
WO1995008885A1 (en) | 1993-09-20 | 1995-03-30 | International Business Machines Corporation | System and method for changing the key or password in a secure distributed communications network |
US5764887A (en) | 1995-12-11 | 1998-06-09 | International Business Machines Corporation | System and method for supporting distributed computing mechanisms in a local area network server environment |
US7010692B2 (en) * | 1996-04-17 | 2006-03-07 | Phoenix Technologies Ltd. | Cryptographic methods for remote authentication |
US6754820B1 (en) * | 2001-01-30 | 2004-06-22 | Tecsec, Inc. | Multiple level access system |
CA2241705C (en) * | 1998-06-26 | 2006-06-20 | Certicom Corp. | A method for preventing key-share attacks |
US6599194B1 (en) | 1998-09-08 | 2003-07-29 | Darren Smith | Home video game system with hard disk drive and internet access capability |
US6330562B1 (en) | 1999-01-29 | 2001-12-11 | International Business Machines Corporation | System and method for managing security objects |
GB9903124D0 (en) | 1999-02-11 | 1999-04-07 | Nokia Telecommunications Oy | An authentication method |
US6468160B2 (en) | 1999-04-08 | 2002-10-22 | Nintendo Of America, Inc. | Security system for video game system with hard disk drive and internet access capability |
CA2370471A1 (en) * | 1999-04-09 | 2000-10-19 | General Instrument Corporation | Built-in manufacturer's certificates for a cable telephony adapter to provide device and service certification |
US6718467B1 (en) * | 1999-10-28 | 2004-04-06 | Cisco Technology, Inc. | Password based protocol for secure communications |
US7089211B1 (en) * | 2000-01-12 | 2006-08-08 | Cisco Technology, Inc. | Directory enabled secure multicast group communications |
US7451312B2 (en) * | 2000-03-07 | 2008-11-11 | General Instrument Corporation | Authenticated dynamic address assignment |
US7047408B1 (en) | 2000-03-17 | 2006-05-16 | Lucent Technologies Inc. | Secure mutual network authentication and key exchange protocol |
US6766453B1 (en) * | 2000-04-28 | 2004-07-20 | 3Com Corporation | Authenticated diffie-hellman key agreement protocol where the communicating parties share a secret key with a third party |
FI115098B (fi) * | 2000-12-27 | 2005-02-28 | Nokia Corp | Todentaminen dataviestinnässä |
US7421083B2 (en) * | 2001-04-05 | 2008-09-02 | General Instrument Corporation | System for seamlessly updating service keys with automatic recovery |
US6993652B2 (en) * | 2001-10-05 | 2006-01-31 | General Instrument Corporation | Method and system for providing client privacy when requesting content from a public server |
US7181620B1 (en) * | 2001-11-09 | 2007-02-20 | Cisco Technology, Inc. | Method and apparatus providing secure initialization of network devices using a cryptographic key distribution approach |
US20030163693A1 (en) * | 2002-02-28 | 2003-08-28 | General Instrument Corporation | Detection of duplicate client identities in a communication system |
US6792534B2 (en) * | 2002-03-22 | 2004-09-14 | General Instrument Corporation | End-to end protection of media stream encryption keys for voice-over-IP systems |
US7499401B2 (en) * | 2002-10-21 | 2009-03-03 | Alcatel-Lucent Usa Inc. | Integrated web cache |
US7908482B2 (en) * | 2005-08-18 | 2011-03-15 | Microsoft Corporation | Key confirmed authenticated key exchange with derived ephemeral keys |
-
2002
- 2002-06-10 US US10/170,002 patent/US7565537B2/en not_active Expired - Lifetime
-
2003
- 2003-04-30 AT AT03009720T patent/ATE339042T1/de not_active IP Right Cessation
- 2003-04-30 EP EP03009720A patent/EP1372292B1/en not_active Expired - Lifetime
- 2003-04-30 DE DE60308099T patent/DE60308099T2/de not_active Expired - Lifetime
- 2003-06-10 JP JP2003165715A patent/JP2004015813A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0677953A (ja) * | 1992-08-27 | 1994-03-18 | Kokusai Denshin Denwa Co Ltd <Kdd> | 相互認証/暗号鍵配送方式 |
JPH088895A (ja) * | 1994-06-10 | 1996-01-12 | Sun Microsyst Inc | インターネット手順のキー管理のための方法ならびにその装置 |
JPH11234263A (ja) * | 1998-02-12 | 1999-08-27 | Fuji Xerox Co Ltd | 相互認証方法および装置 |
JP2002007348A (ja) * | 2000-06-16 | 2002-01-11 | Ntt Communications Kk | ネットワークサービスの利用者管理方法、サーバ及び記録媒体 |
JP2002140300A (ja) * | 2000-10-31 | 2002-05-17 | Funai Electric Co Ltd | ゲーム機に適用されるユーザ認証方法及びそれに用いられるシステム |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005244594A (ja) * | 2004-02-26 | 2005-09-08 | Sanyo Electric Co Ltd | サーバ装置、ネットワーク対応機器およびプログラム |
JP4660100B2 (ja) * | 2004-02-26 | 2011-03-30 | 三洋電機株式会社 | サーバ装置 |
JP2005244988A (ja) * | 2004-02-27 | 2005-09-08 | Microsoft Corp | 装置用セキュリティアソシエーション |
JP2012511747A (ja) * | 2008-08-08 | 2012-05-24 | マイカ テクノロジーズ インク | デジタル相互作用を管理するシステムおよび方法 |
US8817985B2 (en) | 2009-06-23 | 2014-08-26 | Panasonic Corporation | Encryption key distribution system |
JP5432999B2 (ja) * | 2009-06-23 | 2014-03-05 | パナソニック株式会社 | 暗号鍵配布システム |
WO2010150813A1 (ja) * | 2009-06-23 | 2010-12-29 | パナソニック電工株式会社 | 暗号鍵配布システム |
JP2014527379A (ja) * | 2011-09-12 | 2014-10-09 | クゥアルコム・インコーポレイテッド | 共有エフェメラル・キー・データのセットを用いるエクスチェンジを符号化するためのシステム及び方法 |
US9143937B2 (en) | 2011-09-12 | 2015-09-22 | Qualcomm Incorporated | Wireless communication using concurrent re-authentication and connection setup |
US9226144B2 (en) | 2011-09-12 | 2015-12-29 | Qualcomm Incorporated | Systems and methods of performing link setup and authentication |
US9426648B2 (en) | 2011-09-12 | 2016-08-23 | Qualcomm Incorporated | Systems and methods of performing link setup and authentication |
US9439067B2 (en) | 2011-09-12 | 2016-09-06 | George Cherian | Systems and methods of performing link setup and authentication |
US8993645B2 (en) | 2012-06-12 | 2015-03-31 | Nakata Coating Co., Ltd. | Compound containing imido group, solution of compound containing imido group and method for producing of compound containing imido group |
Also Published As
Publication number | Publication date |
---|---|
US7565537B2 (en) | 2009-07-21 |
US20030229789A1 (en) | 2003-12-11 |
DE60308099T2 (de) | 2006-12-21 |
DE60308099D1 (de) | 2006-10-19 |
EP1372292B1 (en) | 2006-09-06 |
ATE339042T1 (de) | 2006-09-15 |
EP1372292A1 (en) | 2003-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7565537B2 (en) | Secure key exchange with mutual authentication | |
US7370194B2 (en) | Security gateway for online console-based gaming | |
JP4708688B2 (ja) | コンテンツに対するアクセスを管理する方法及びシステム | |
EP1310283B1 (en) | Network architecture for secure communications between two console-based gaming systems | |
US7218739B2 (en) | Multiple user authentication for online console-based gaming | |
US7688975B2 (en) | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure | |
JP4617763B2 (ja) | 機器認証システム、機器認証サーバ、端末機器、機器認証方法、および機器認証プログラム | |
JP4219965B2 (ja) | ワンタイムidによる認証 | |
WO2016141856A1 (zh) | 一种用于网络应用访问的验证方法、装置和*** | |
US8417949B2 (en) | Total exchange session security | |
EP2974118B1 (en) | System and method for mitigation of denial of service attacks in networked computing systems | |
KR20130095855A (ko) | 분산 처리 시스템 및 방법 | |
CN111756529B (zh) | 一种量子会话密钥分发方法及*** | |
JP2008250931A (ja) | 分散情報復元システム、情報利用装置、および、検証装置 | |
US20080244698A1 (en) | Authorized Content Verification Method, Content Transmission/Reception System, Transmitter, and Receiver | |
KR20050075676A (ko) | 콘텐츠 송신 장치, 콘텐츠 수신 장치 및 콘텐츠 전송 방법 | |
JP5122225B2 (ja) | サーバとクライアント・システムとの間の通信セッションにおける状態追跡機構を履行する方法 | |
JP2005175992A (ja) | 証明書配布システムおよび証明書配布方法 | |
Schonwalder et al. | Session resumption for the secure shell protocol | |
JP2002247023A (ja) | セッション共有鍵共有方法、ネットワーク端末認証方法、ネットワーク端末および中継装置 | |
JP2005303784A (ja) | サーバ装置、要求発行機器、要求受諾機器、通信システム、通信方法及びプログラム | |
Hong et al. | Secure authentication in group communications using Media Access Control (mac) address | |
JP2005311747A (ja) | サーバ装置、要求発行機器、要求受諾機器、通信システム及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060601 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091106 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100402 |