JP2004056793A - コンテンツに対するアクセスを管理する方法及びシステム - Google Patents

コンテンツに対するアクセスを管理する方法及びシステム Download PDF

Info

Publication number
JP2004056793A
JP2004056793A JP2003183593A JP2003183593A JP2004056793A JP 2004056793 A JP2004056793 A JP 2004056793A JP 2003183593 A JP2003183593 A JP 2003183593A JP 2003183593 A JP2003183593 A JP 2003183593A JP 2004056793 A JP2004056793 A JP 2004056793A
Authority
JP
Japan
Prior art keywords
content
key
access
game console
source
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.)
Granted
Application number
JP2003183593A
Other languages
English (en)
Other versions
JP2004056793A5 (ja
JP4708688B2 (ja
Inventor
Banjamin O Zotto
ベンジャミン オー.ゾット
Steven D Lamb
スティーブン ディー.ラム
Boyd C Multerer
ボイド シー.マルタラー
Michio Nikaido
ミチオ ニカイドウ
Keith K Lau
キース ケー.ラウ
Brent E Curtis
ブレント イー.カーティス
Mark D Vanantwerp
マーク ディー.バンアントワープ
Van C Van
バン シー.バン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004056793A publication Critical patent/JP2004056793A/ja
Publication of JP2004056793A5 publication Critical patent/JP2004056793A5/ja
Application granted granted Critical
Publication of JP4708688B2 publication Critical patent/JP4708688B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/201Playing authorisation given at platform level
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • A63F2300/208Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards for storing personal settings or data of the player
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/209Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/401Secure communication, e.g. using encryption or authentication
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/532Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing using secure communication, e.g. by encryption, authentication
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/609Methods for processing data by generating or executing the game program for unlocking hidden game elements, e.g. features, items, levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】コンテンツを受け取る資格のあるデバイスだけが、コンテンツを受け取り、使用することができるようにする。
【解決手段】コンテンツアクセス管理は、コンテンツ要求をデバイス102から受信可能とする。そのコンテンツ要求に応答して、コンテンツのソースの識別子と、デバイス102がそのコンテンツを解読することを可能にする1つまたは複数の鍵がともに、照会ソース104からデバイス102に送信される。次に、デバイス102は、所望に応じて、コンテンツソース106からコンテンツ116を取得し、そのコンテンツ116を解読して使用することができる。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
本発明は、コンテンツに対するアクセスを管理する方法及びシステム関し、より詳細には、アプリケーションコンテンツに係るコンテンツに対するアクセスを管理する方法、記録媒体、コンピューティングデバイスにおいて実施される方法、及びシステムに関する。
【0002】
【従来の技術】
専用ゲームコンソールが、ますます普及している。ゲームコンソールの記憶容量が大きくなり、コンソール上に大量のデータを記憶することが可能になるものと予期されている。例えば、最近、発売されたXbox(商標)ビデオゲームシステムは、ローカルハードドライブ上に大量のデータを記憶することを可能にしている。そのような増加した記憶容量により、ローカルのプレーヤ間(例えば、同一のゲームシステムを使用する1〜4名のプレーヤ)で、またはリモートのプレーヤ間(例えば、インターネットベースのオンラインゲームなどのネットワークを介する)でゲームを行っている際、ビデオゲームコンソールに追加のコンテンツをダウンロードすることが可能になる。
【0003】
しかし、ビデオゲームコンソールおよびその他のデバイスにコンテンツをダウンロードすることにおいて直面する1つの問題は、コンテンツを受け取る資格のあるコンソール(またはデバイス)だけ(例えば、適切な料金を支払ったものだけ)が、コンテンツを受け取り、使用することができるようにするのを確実にするよう注意が払われなければならないことである。残念ながら、以前のコンソールベースのゲームコンソールは、通常、そのようなコンテンツをダウンロードする機能を提供しておらず、まして、コンテンツをダウンロードし、そのコンテンツを使用する資格があるコンソールだけにダウンロードおよび使用を行うことを限定する機能を提供することはなかった。
【0004】
尚、本明細書では、読者は、暗号化、解読、認証、ハッシング(hashing)、およびデジタル署名などの基本的な暗号法の原理に精通しているものと想定する。いくつかの文献に暗号法の基本的な概説に関連した技術内容が開示されている(例えば、非特許文献1を参照)。
【0005】
【非特許文献1】
Bruce Schneier, ”Applied Cryptography: Protocols,Algorithms,and Source Code in C”, published by John Wiley & Sons, copyright 1994 (second edition 1996)
【0006】
【発明が解決しようとする課題】
従来のシステムには上述のような問題があり、その解決のためにコンテンツに対するアクセスの管理が必要であるという点において、上述した従来技術には未だ改善の余地が残っている。
【0007】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、コンテンツを受け取る資格のあるデバイスだけが、コンテンツを受け取り、使用することができるようにする、コンテンツに対するアクセスを管理する方法及びシステムを提供することにある。
【0008】
【課題を解決するための手段】
コンテンツに対するアクセスの管理を本明細書で説明する。
【0009】
一態様によれば、コンテンツ照会(referral)要求がデバイスから受信される。コンテンツ参照要求に応答して、コンテンツのソースの識別子と、デバイスがそのコンテンツを解読することを可能にする1つまたは複数の鍵がともに、そのデバイスに送信される。
【0010】
別の態様によれば、複数のコンテンツパッケージがどこに記憶されているかのレコードが保持される。複数のコンテンツパッケージの少なくとも1つを解読するのにそれぞれを使用することができる複数の鍵のレコードも保持される。複数のコンテンツパッケージの特定の1つに関して、複数の要求側デバイスのどれが、コンテンツパッケージが記憶されている場所の指示、ならびにそのコンテンツパッケージを解読するのに使用することができる複数の鍵のなかの1つを受け取ることができるかが制限される。
【0011】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。本明細書全体で同様の構成要素および/または同様の特徴を指すのに同じ符号を使用する。
【0012】
以下の解説では、読者は、暗号化、解読、認証、ハッシング(hashing)、およびデジタル署名などの基本的な暗号法の原理に精通しているものと想定する。
【0013】
コンテンツに対するアクセスの管理を本明細書で説明する。照会ソースが、デバイス(例えば、ゲームコンソール)にダウンロードするのに利用可能な様々なコンテンツ、ならびにどのデバイスおよび/またはユーザが、そのコンテンツをダウンロードすることが許可されているか、およびそのコンテンツを解読するのに使用することができる1つまたは複数の暗号鍵のレコードを保持する。デバイスが、自らに(および/またはデバイスのユーザに)ダウンロードすることが許可されているコンテンツに関する照会を要求したとき、照会ソースは、デバイスがそのコンテンツを解読するのに使用することができる1つまたは複数の鍵と、そのコンテンツのソースの識別子をともに返す。次に、デバイスは、コンテンツソースからコンテンツを取得し、照会ソースから取得された1つまたは複数の鍵を使用して取得されたコンテンツを解読する。
【0014】
図1は、コンテンツアクセス管理を使用することができる例示的な環境100を示すブロック図である。ゲームコンソール102、照会ソース104、およびコンテンツソース106は、環境100の一部である。ゲームコンソール102は、ゲームコンソール102と照会ソース104の間の通信を可能にする様々な結合の任意のものを介して照会ソース104に結合される。同様に、ゲームコンソール102は、ゲームコンソール102とコンテンツソース106の間の通信を可能にする様々な結合の任意のものを介してコンテンツソース106に結合される。一実施形態では、結合には、インターネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)などの1つまたは複数のネットワークが含まれることが可能である。単一のゲームコンソール102、単一の照会ソース104、および単一のコンテンツソース106を図1に示しているが、複数のコンソール102、複数の照会ソース104、および/または複数のコンテンツソース106が環境100に含まれることが可能である。
【0015】
コンテンツソース106は、リモートのデバイス、あるいはローカルのデバイスであることが可能であることに留意されたい。リモートのコンテンツソース106は、例えば、ネットワーク(インターネット、LAN、WANなどの)を介してゲームコンソール102がアクセスすることができるサーバデバイスであることが可能である。リモートのコンテンツソース106は、ゲームコンソール102にコンテンツを提供することができる任意のタイプのコンピューティングデバイスであることが可能である。そのようなコンピューティングデバイスは、例えば、サーバデバイス、ワークステーション、デスクトップPC(personal computer)、別のゲームコンソール等であることが可能である。ローカルのコンテンツソース106は、ゲームコンソール102がローカルでアクセスすることができるソースである。例えば、ローカルのコンテンツソース106は、取外し可能な光ディスク、取外し可能な磁気ディスク、取外し可能な不揮発性のメモリデバイス(フラッシュメモリデバイスなどの)等であることが可能である。
【0016】
通常、環境100において、ゲームコンソール102が、コンテンツ照会要求を照会ソース104に送信する。照会ソース104は、要求側(ゲームコンソール102、および/またはゲームコンソール102のユーザ)の認証を行い、要求側が要求のコンテンツにアクセスすることが許されていることを検証する。要求側が認証され、検証されると、照会ソース104は、ゲームコンソール102が要求のコンテンツを獲得することができる場所を選択する。照会ソース104は、この場所の識別子、ならびにコンテンツを解読するのに使用することができる1つまたは複数の鍵をゲームコンソール102に送信する。次に、ゲームコンソール102は、特定された場所においてソースからコンテンツを取得し、照会ソース104から受け取られた1つまたは複数の鍵を使用してコンテンツを解読する。
【0017】
照会ソース104は、認証モジュール108、検証モジュール110、および選択モジュール112を含む。照会ソース104は、モジュール108、110、および112をそれぞれが含むことが可能な複数のサーバを含むことが可能であり、あるいはモジュール108、110、および112が、異なるサーバ上に配置されることも可能である。照会ソース104が複数のサーバを含む状況では、複数のサーバが、インターネット、LAN、およびWANなどの様々なネットワークを介して互いに結合されることが可能である。
【0018】
認証モジュール108は、コンテンツの要求側が、実際に、自ら主張するとおりのユーザおよび/またはゲームコンソールであることを認証することを担う。認証モジュール108は、自らこの認証を行うための、構成要素を含みデータへのアクセスを有し、あるいはこの認証のために別のデバイスにアクセスし、そのデバイスを頼りにすることが可能である。1つの例示的な実施形態では、以下により詳細に説明するとおり、セキュリティゲートウェイが、照会ソース104とゲームコンソール102の間に配置され、前述の認証を行うのに認証モジュール108が頼りにする。
【0019】
検証モジュール110は、特定の要求側が要求のコンテンツにアクセスすることが許されているのを検証することを担う。この検証を行う際に、いくつかの異なる基準が、検証モジュール110によって使用されることが可能である。そのような基準の例には、次のものが含まれる。すなわち、要求側が適切な料金を支払っているかどうか、要求側が、コンテンツを使用するのが可能な地域に関連しているかどうか、要求の時点にゲームコンソール上で実行されているアプリケーションが、コンテンツにアクセスすることが許されているかどうか、要求側が、要求のコンテンツのレイティングrating)(例えば、周知のESRB(Entertainment Software Rating Board)評定に基づく)を有するコンテンツにアクセスすることが許されているかどうか、要求側が、コンテンツにアクセスするのに十分な年齢に達しているかどうか、要求側が、コンテンツに対する権利の交付を受けている(例えば、別のユーザにより、トーナメントで勝った結果や競技の賞等として)かどうか等である。
【0020】
選択モジュール112は、特定の要求側が、特定のコンテンツを複数のソースのどれから取得すべきかを判定することを担う。同一のコンテンツが、複数の異なるコンテンツソース106から入手可能である可能性がある。そのような状況において、選択モジュール112は、様々な基準を使用して、特定の要求側が、そのコンテンツを複数の異なるコンテンツソースのどれから取得すべきかを判定する。そのような基準の例には、次のものが含まれる。すなわち、その他のソースとの対比でそのソースに与えられるべき選好度を示す各ソースに割り当てられたランク、要求側の地理的場所(例えば、要求側に最も近く位置しているソースが選択される)、異なるソースの現在の対応可能性、異なるソースにおける現在のトラフィック、またはかかっている負荷、異なるソースを使用することの費用、要求側の加入レベル(例えば、より高い料金を支払うプレミアム加入者(ゲームコンソール、および/またはゲームコンソールの所有者)が、より高速のサーバを使用する、またはより軽い負荷がかかっているソースに誘導されることが可能である)、サービス品質(例えば、地理的近さ、ネットワークパフォーマンス、参照された加入者ステータス等の1つまたは複数を含む)等である。
【0021】
したがって、照会ソース104が、様々なコンテンツが記憶されている場所のレコードを保持し、どの要求側がコンテンツにアクセスすることが許されているかのレコードを保持し、またコンテンツを解読するのに必要な様々な鍵の配布の制御も行う。照会ソース104によって保持される様々なレコードおよび情報は、ソース104がアクセスすることができるデータベース114の中に保存される。
【0022】
コンテンツソース106は、1つまたは複数のコンテンツ116を記憶することができる。コンテンツのそれぞれは、同一の鍵で暗号化されることが可能であり、あるいは異なる鍵で暗号化されることが可能である。コンテンツは、データベースの中、ファイルディレクトリの中、異なる取外し可能なディスク上等に記憶するなどの様々な形の任意の形で記憶することができる。コンテンツ116のそれぞれは、アプリケーションのための(例えば、ゲーム、オーディオおよび/またはビデオ再生アプリケーション、参照アプリケーションまたは生産性アプリケーション等のための)実質的にあらゆるタイプのコンテンツであることが可能である。そのようなコンテンツの例には、次のものが含まれる。すなわち、ゲーム全体(またはその他のアプリケーション全体)のそれ自体、ゲームのセグメント(例えば、ゲームのための新しいエピソード)、ゲームに関する統計(例えば、フットボールシーズン中の今週の最新NFL(National Football League)統計)、ゲームに関するフィーチャ(feature)(例えば、武器、キャラクタ、レベル、走路、乗り物等)、アプリケーションとともに最初に出荷されたモジュールにおける問題またはバグを修正するモジュール、以上の組合せ等である。さらに、どれだけの量のコンテンツが1つのコンテンツとして記憶されるかは、異なる可能性がある(例えば、コンテンツ開発者および/またはゲーム設計者の所望に基づき)。例えば、1つのコンテンツが、新しい武器だけを含み、別の1つのコンテンツが、新しいキャラクタだけを含み、さらに別の1つのコンテンツが、新しい走路と新しい乗り物をともに含むことが可能である。
【0023】
本明細書では、コンテンツに対するアクセスを管理することについて、主にゲームコンソールに関連して述べているが、ゲームコンソールは、さらなる機能も含む可能性があることに留意されたい。例えば、ゲームコンソールが、デジタルVCR(video cartridge [cassette] recorder)として動作することができるようにデジタルビデオ記録機能を含むこと、ゲームコンソールが、テレビジョン信号(放送信号であれ、ケーブル信号であれ、サテライト信号等であれ)に同調し、復号化することができるようにチャネル同調機能を含むこと等が可能である。さらに、本明細書で説明するコンテンツに対するアクセスの管理は、デスクトップコンピュータ、ワークステーション、サーバ、ノートブックコンピュータ、ポータブルコンピュータまたはハンドヘルドコンピュータ、インターネット機器、携帯電話機、パーソナルデジタルアシスタント(PDA)などのゲームコンソール以外のデバイスで使用することも可能である。
【0024】
さらに、ゲームコンソール、および/またはゲームタイトルに関連する本明細書の解説は、その他のタイプの機器にも同様に当てはまることに留意されたい。
【0025】
図2は、コンテンツアクセスを管理するための例示的なプロセス140を示すフローチャートである。図2のプロセスは、照会ソース(例えば、図1のソース104)、ゲームコンソール(例えば、図1のゲームコンソール102)、およびコンテンツソース(例えば、図1のソース106)によって実施される。照会ソースによって行われる動作を図2の左側に示し、ゲームコンソールによって行われる動作を図2の中央に示し、またコンテンツソースによって行われる動作を図2の右側に示している。図2のプロセスについて図1の構成要素を参照して述べる。
【0026】
最初、ゲームコンソール102が、コンテンツ照会要求を発行する(動作142)。コンテンツ照会要求は、特定のコンテンツのソースを照会する要求である。あるいは、ゲームコンソール102は、単に照会ソース104からコンテンツ自体を要求し、代わりに、コンテンツのソースへの照会を受け取ることが可能である。コンテンツ照会要求は、その要求が行われた時点におけるゲームコンソール102のユーザの識別子、その要求が行われた時点におけるゲームコンソール102上で実行されているアプリケーション(例えば、ゲームタイトル)の識別子、その要求を行っているゲームコンソール102の識別子、要求されているコンテンツの識別子、およびゲームコンソールの最高ESRB評定の現在の設定を含む。
【0027】
照会ソース104が、コンテンツ照会要求を受け取り(動作144)、認証モジュール108が、要求側の認証を行う(動作146)。前述したとおり、この認証は、ゲームコンソール102および/またはゲームコンソール102のユーザの認証であることが可能である。要求側を認証することができない場合、プロセス140は、動作146で停止する。要求側を認証することができないという指示を要求側に返すことが可能であり、あるいは照会要求を無視して、そのことの指示が要求側に戻されないことが可能である。
【0028】
要求側が認証されたものと想定すると、検証モジュール110が、要求側が要求のコンテンツにアクセスできることを検証する(動作148)。前述したとおり、この検証を行う際、様々な基準(例えば、適切な料金が支払われているかどうか、要求側が、特定の地理的区域に関連しているかどうか等)を使用することができる。要求側が、コンテンツにアクセスすることが許されていない場合、プロセス140は、動作148で停止する。要求側がコンテンツにアクセスすることが許されていないことをその要求側に知らせる指示を要求側に返すことが可能であり、この指示は、オプションとして、なぜ要求側がそのコンテンツにアクセスすることが許されていないかについての指示を含む。あるいは、そのような指示が全く要求側に戻されないことが可能である。
【0029】
要求側が、コンテンツにアクセスすることが許されているものとして検証されたと想定すると、選択モジュール112が、そのコンテンツのソースを判定する(動作150)。前述したとおり、この判定を行う際、様々な基準を使用することができる。コンテンツのソースが判定されると、選択モジュール112は、そのソースの識別子、ならびに(コンテンツがソースから受信された後)そのコンテンツを解読するのに使用することができる1つまたは複数の鍵をゲームコンソールに送信する(動作152)。ゲームコンソール102は、ソース識別子および鍵を受信し(動作154)、特定されたソースにコンテンツを要求する(動作156)。
【0030】
そのコンテンツ要求が、コンテンツソース106において受信される(動作158)。この要求に応答して、コンテンツソース106は、要求のコンテンツにアクセスし、要求のコンテンツをゲームコンソール102に送信する(動作160)。ゲームコンソール102は、要求のコンテンツを受信し(動作162)、受信されたコンテンツが、実際にコンテンツソース106からのものであることを検証する(動作164)。
【0031】
一実施形態では、動作164におけるこの検証は、公開鍵/秘密鍵暗号化およびダイジェストを使用して行われる。コンテンツソース106は、自らが記憶する各コンテンツに関して、そのコンテンツのダイジェストを記憶する。コンテンツのダイジェストは、従来のハッシングアルゴリズム(例えば、メッセージダイジェスト2(MD2)、MD5、セキュアハッシュアルゴリズム(SHA)、SHA−1等)を使用することによるなど、様々な従来のやり方の任意のやり方で生成することができる。コンテンツに関するダイジェストは、コンテンツソース106によって生成されることが可能であり、あるいは別のデバイスによって生成されて、コンテンツソース106に通信される(例えば、コンテンツとともに)ことが可能である。また、コンテンツソース106は、関連する公開鍵/秘密鍵ペアも有し、そのペアの秘密鍵を使用して各ダイジェストを暗号化する。
【0032】
要求のコンテンツをゲームコンソールに送信する際、コンテンツソース106は、そのコンテンツの暗号化されたダイジェストも送信する。動作164における検証の一環として、ゲームコンソール102は、コンテンツソース106に関連する公開鍵を使用して、自らがコンテンツソース106から受信した暗号化されたダイジェストを解読する。次に、ゲームコンソール102は、受信されたコンテンツに関するダイジェストを生成し(コンテンツソース106によって記憶されたダイジェストを生成するのに使用されたのと同じアルゴリズムを使用して)、その生成されたダイジェストを解読されたダイジェストと比較する。2つのダイジェストが同一である場合、そのコンテンツは、コンテンツソース106からのものとして検証される(コンテンツを認証するとも言う)。というのは、コンテンツソース106の公開鍵を使用してダイジェストを解読することを可能にするようにダイジェストを暗号化することができる他のデバイスは存在しないものと考えられるからである。2つのダイジェストが同一であることにより、要求のコンテンツが変更されていないことがさらに検証される。というのは、そのコンテンツが、コンテンツソース106から転送されているからである。
【0033】
ゲームコンソール102は、コンテンツソース106の公開鍵/秘密鍵ペアの公開鍵と、コンテンツのダイジェストを生成している場合、コンテンツのダイジェストを生成するのに使用されたアルゴリズムをともに認知している。ゲームコンソール102は、様々な仕方でダイジェストを生成するように公開鍵およびアルゴリズムを認知させられることが可能である。例えば、公開鍵およびアルゴリズムが、照会ソースからの応答の中に含められ(例えば、図2の動作152および154において)、ゲームコンソール102が、周知の場所にアクセスして公開鍵およびアルゴリズムを獲得すること等が可能である。
【0034】
受信されたコンテンツが検証されなかった場合、そのコンテンツは、ゲームコンソール102によって使用されない。ゲームコンソール102は、ソースに対するコンテンツの要求を繰り返すことが可能であり、あるいは異なるソースを試みることが可能である(オプションとして、動作142で要求を繰り返すが、前に特定されたソース以外のソースを所望するという照会ソース104に対する指示を添えて)。しかし、受信されたコンテンツが検証された場合、ゲームコンソール102は、受信されたコンテンツを解読し、インストールする(動作166)。インストールは、解読されたコンテンツの単なる記憶であることが可能であり、あるいは解読されたコンテンツに対してその他の処理を行って記憶の準備をすることが可能である。このインストールの厳密な性質は、アプリケーション(例えば、ゲームタイトル)により、コンテンツの性質により、および/またはアプリケーション(例えば、ゲームタイトル)開発者の所望により異なることが可能である。
【0035】
コンテンツは、ローカルのハードドライブに、ローカルの不揮発性メモリ(例えば、フラッシュメモリ)に、書換え可能な光ディスクおよび/または記録可能な光ディスクに記憶するなどの様々な形の任意の形で記憶することができる。要求のコンテンツが動作166で解読されると、動作154で照会ソース104から受信された鍵は、もはや必要ないことに留意されたい。ゲームコンソール102は、オプションとして、独自の暗号化鍵を使用して自らが記憶するコンテンツを暗号化することができ、かつ/または自らが記憶するコンテンツを保護する他のセキュリティ策を課すことができる。
【0036】
一実施形態では、コンテンツを解読するのに使用される鍵は、対称鍵であり、他方、コンテンツのダイジェストを解読するのに使用される鍵は、公開鍵/秘密鍵ペアの公開鍵である。別法では、公開鍵/秘密鍵ペアを使用してコンテンツ自体の暗号化および解読を行うこと、または対称鍵を使用してコンテンツのダイジェストの暗号化および解読を行うことが可能である。
【0037】
プロセス140は、照会ソース104が、ゲームコンソール102がコンテンツを複数のソースのどれから取得すべきかを判定する(動作150において)ものとして示されている。別法では、可能なソース(およびオプションとしてソースのランク)のすべての識別子をゲームコンソール102に返すことが可能である。次に、ゲームコンソール102が、どのソースにアクセスするかを判定することができ、そのソースが何らかの理由で(例えば、ソースにおけるハードウェア障害、またはネットワーク障害に起因して)アクセス可能ではない場合、別のソースを選択して試みることができる。
【0038】
図3は、ゲームコンソールとデバイス(例えば、図1の照会ソース104、または図5に関連して以下に述べるセキュリティゲートウェイなどの中間デバイス)の間でセキュアな通信チャネルを確立するための例示的なプロセス200を示すフローチャートである。ゲームコンソールとデバイスの間でセキュアな通信チャネルを確立することにより、ゲームコンソール識別子、およびゲームコンソールの現在のユーザの識別子の認証を行うことができる(例えば、図2の動作146において)。図3のプロセスは、ソフトウェアで、ファームウェアで、ハードウェアで、または以上の組合せで行うことが可能である。セキュアな通信チャネルを確立するための特定のプロセスについて図3に関連して述べるが、別法として、様々な他の従来のプロセスの任意のプロセスを使用してセキュアな通信チャネルを確立することも可能であることに留意されたい。
【0039】
最初、セキュリティチケットが、デバイスにおいて受信される(動作202)。1つの例示的な実施形態では、セキュリティチケットは、鍵配信センタ(図5で以下に示す)から獲得されるケルベロス(Kerberos)チケットである。ケルベロスチケットは、単一のチケットの中で、特定のゲームコンソール102の識別、およびそのゲームコンソール102においてゲームを行っている1名または複数名のユーザの識別を認証するケルベロス様式の認証プロトコルを使用してゲームコンソール102によって獲得される。ゲームコンソール102は、ケルベロスチケットを以下のように獲得する。
【0040】
解説のため、ゲームコンソール102の4名のユーザが存在するものと想定する。各ユーザには、識別U、U、U、およびUが与えられており、ユーザ鍵K、K、K、およびKが割り当てられている。またゲームコンソール102にも独自の識別C、およびゲームコンソール鍵Kが割り当てられている。さらに、ゲームディスクなどのゲームタイトルに、別個の識別Gが割り当てられている。同様に、デバイス(例えば、照会ソース104またはセキュリティゲートウェイ)に、独自の識別A、および鍵Kが割り当てられている。ユーザ、ゲームコンソール、およびセキュリティゲートウェイの認証は、ある程度、鍵K、K、K、K、K、および鍵Kに依存することに留意されたい。したがって、以上の鍵を選択し、記憶する際、その鍵が割り当てられたエンティティだけがその鍵を使用することができるように注意が払われなければならない。
【0041】
ゲームコンソール102は、ユーザ識別U、U、U、およびU、ならびにユーザ鍵K、K、K、Kに基づき、検証されたユーザ識別を生成する。より具体的には、検証されたユーザ識別は、ユーザ鍵から導出されたユーザ識別、および値を含む。検証されたユーザ識別は、鍵配信センタに要求とともにサブミットされ、ゲームコンソールがユーザ鍵の知識を有することを鍵配信センタに実証するのに使用され、したがって、ユーザを暗黙的に認証する。
【0042】
H=HKy(M):Hは、鍵Kを使用するメッセージMの鍵付き一方向ハッシュ(MAC(message authentication code))である。任意のMACアルゴリズムを使用することができる。そのようなMACの一例が、IETF(Internet Engineering Task Force)RFC(Request For Comments) 2104に準拠するHMAC(hash based MAC)アルゴリズムである。
【0043】
EncryptedM=EKy(M):EncryptedMは、鍵Kを使用して暗号化された形態のメッセージMである。任意の暗号化アルゴリズムを使用することができる。そのような暗号化アルゴリズムの例には、DES(Data Encryption Standard)、トリプルDES、およびRC4−HMACが含まれる。
【0044】
M=DKy(EncryptedM):Mは、同一の鍵Kを使用して暗号化される前のEncryptedMの元のメッセージである。
【0045】
鍵導出値(key derivative value)を生成する1つのやり方は、ゲームコンソールの鍵を使用してユーザ鍵の暗号ハッシュをコンピューティングすることである。鍵Kを有するユーザUの場合、ハッシュHは、以下のとおりコンピューティングされる。
=HKc(K
ハッシュHが鍵導出値を成す。別のやり方は、ユーザ鍵Kを使用して現在時刻を暗号化することである。
=EK1(T)
この場合も、もたらされる値Hが鍵導出値を成す。検証されたユーザ識別は、以下のとおり、ユーザ識別Uと対応する鍵導出値Hの組合せである。
検証されたユーザ識別=(U,H
【0046】
ゲームコンソール102は、ゲームコンソール識別C、ゲームタイトル識別G、デバイスのオンラインサービス識別A、および複数の検証されたユーザ識別(U,H)、(U,H)、(U,H)、および(U,H)を含む要求を構成する。要求は、以下の識別文字列を有する。
要求 = [C, G, A, (U, H), (U, H), (U, H), (U, H)]
【0047】
さらに、要求は、あるバージョンの認証プロトコル、およびゲームコンソールによって生成されたランダムなナンス(nonce)を含み、リプライ攻撃に抗することが可能である。要求は、識別文字列全体の受信を検証するのに使用されるチェックサム値をさらに含むことが可能である。ゲームコンソール102は、ネットワーク(例えば、図1のネットワーク106)を介して要求を鍵配信センタにサブミットする。
【0048】
鍵配信センタは、要求、ならびにその要求に含まれる識別を評価する。鍵配信センタは、デバイス使用されるランダムなセッション鍵を生成する。この例では、鍵配信センタは、デバイスと通信する際にゲームコンソール102によって使用されるランダムなセッション鍵KCAを生成する(動作202において)。
【0049】
鍵配信センタは、ゲームコンソール102によってデバイスに後に提示されるチケットを生成する。デバイスに関して発行される1つのチケットが存在するが、チケットは、複数のユーザに関して有効である。チケットは、要求の中でサブミットされた識別文字列を含む。また、チケットは、チケットが生成された時刻T、チケットの失効までの時間の長さを特定する時間T、デバイスに関するランダムに生成されたセッション鍵KCA、およびゲームコンソール102のユーザがアクセスすることが許されたデータセンタ内のサービスデバイス(図1では示さず)を特定するサービスマップSも含む。鍵配信センタは、どのユーザがどのサービスにアクセスすることが許されているか(例えば、どのユーザが、1つまたは複数の有料サービスにアクセスする料金を支払済みであるか)についてのレコードを維持するか、そのレコードを維持する別のデバイス、または別のセンタにアクセスする。チケット内容は、以下のとおり、セキュリティゲートウェイデバイスの鍵Kを利用する対称鍵暗号(例えば、トリプルDES)を介して暗号化される。
【0050】
チケット = EKA [T, T, KCA, S, C, G, A, U ,U ,U ,U
チケットは、対応する鍵導出値Hを担持しないことに注目されたい。鍵配信センタは、鍵導出値を読み取り、ゲームコンソールがユーザ鍵を知っていると確信すると、ユーザの識別を発行されるチケットの中に入れる。デバイスは、その後、チケットが知らせることはなんでも信頼し、したがって、鍵導出値Hを見る必要がない。
【0051】
鍵配信センタは、生成されたチケットをゲームコンソール102に返す。ゲームコンソール102は、デバイスの鍵Kを知らないので、そのチケットを開くことができず、その内容を変更することができない。また、鍵配信センタは、添付された暗号化されたメッセージの中でセッションセキュリティ鍵も返す。セッション鍵メッセージは、チケット生成時刻T、チケット失効までの期間T、およびセッションセキュリティ鍵KCAを含み、メッセージのすべての内容は、以下のとおり、ゲームコンソールの鍵Kを使用して暗号化される。
【0052】
セッション鍵メッセージ = EKC [T, T, KCA
セッション鍵メッセージは、ゲームコンソールの鍵Kで暗号化されているので、ゲームコンソール102は、セッション鍵メッセージを開き、セッション時間パラメータおよびセッション鍵を回復することができる。
【0053】
ゲームコンソール102は、チケットを受け取ると、そのチケットを使用して、デバイスと相互認証を伴うセキュアな鍵交換を行うことができる(動作204)。セキュアな鍵交換に関するさらなる情報は、本明細書に組み込まれている米国特許出願10/170,002号で見ることができる。米国特許出願10/170,002号の内容は後述される。
【0054】
鍵交換により、ゲームコンソール102およびデバイスが、コンソール102とデバイスの間で共有されるが、2つのデバイス間で伝送されることなく、コンソール102とデバイスの間で往復するトラフィックに基づいて第三者(例えば、コンソール102およびデバイスと同じネットワーク上の別のデバイス)が推論することができない新しい秘密を導出することが可能になる。1つの例示的な実施では、2つのデバイスは、ディフィ−ヘルマン指数演算(Diffie−Hellman exponentiation operation)を使用して新しい秘密を導出する。ディフィ−ヘルマンに関するさらなる情報は、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に見ることができる。
【0055】
一般に、セキュアな鍵交換は、鍵交換イニシエータ(initiator)パケットを生成し、そのパケットをデバイスに送信するゲームコンソール102によって行われる。デバイスは、鍵交換イニシエータパケットを受信し、受信されたパケットを検証する。パケットが検証されると、デバイスは、ゲームコンソール102との通信をセキュアにするのに使用される暗号鍵を生成する。例示的な実施形態では、この暗号鍵は、2つのデバイス間のポイントツーポイント通信をセキュアにするのに使用されるセキュリティ関係鍵である。次に、デバイスは、鍵交換応答パケットを生成し、生成されたパケットをゲームコンソール102に送信する。ゲームコンソール102は、鍵交換応答パケットを受信し、その受信されたパケットを検証する。パケットが検証されると、ゲームコンソール102は、デバイスとの通信をセキュアにするのに使用される暗号鍵を生成する。暗号鍵は、デバイスによって生成されるものと同じである。したがって、ゲームコンソール102とデバイスはともに、同じ暗号鍵を有することになるが、双方の間で鍵を実際に伝送することなしにそうなる。
【0056】
ゲームコンソール102は、鍵交換イニシエータメッセージを最初に生成することによって鍵交換イニシエータパケットを生成し、送信する。鍵交換イニシエータメッセージは、以下のとおり、NonceInitと呼ばれるゲームコンソール102によって生成されたランダム(または擬似ランダム)値を含み、またXがやはり、ゲームコンソール102によって生成されたランダムな(または擬似ランダムな)数であるディフィ−ヘルマン(g mod N)値、ならびに鍵交換プロセスが完了した後、このコンソール/セキュリティデバイス通信チャネルを一意的に定義するのに使用されるセキュリティパラメータインデックス値(SPI)を含む。
InitMess = [NonceInit, SPI, (g mod N)]
【0057】
次に、ゲームコンソール102は、鍵配信センタから受信されたケルベロスセッション鍵KCAを使用して鍵交換イニシエータメッセージのダイジェストをコンピューティングする。ダイジェストは、次のとおりコンピューティングされる。
【0058】
【数1】
Figure 2004056793
【0059】
あるいは、一般的な一方向ハッシュ(鍵付きでない)も、HashInitMessのコンピューティングにおいて使用することが可能である。鍵のセキュリティは、このハッシュが鍵付きであるか否かに依拠しない。
【0060】
次に、ゲームコンソール102は、ケルベロスオーセンティケータ(authenticator)を生成する。ケルベロスオーセンティケータは、タイムスタンプ(例えば、ゲームコンソール102の現在時刻)、およびHashInitMessダイジェストを含む。タイムスタンプは、ゲームコンソール102がケルベロスオーセンティケータを生成するたびに毎回、そのデバイス102によって増分され、これにより、デバイスが、リプレイ攻撃をよりよく検出することが可能になる。ゲームコンソール102は、以下のとおり、ケルベロスセッション鍵KCAを使用してケルベロスオーセンティケータを暗号化する。
【0061】
【数2】
Figure 2004056793
【0062】
次に、ゲームコンソール102は、鍵交換イニシエータパケットを生成する。鍵交換イニシエータパケットは、鍵交換イニシエータメッセージInitMess、暗号化されたケルベロスオーセンティケータAuth、および鍵配信センタから受信されたデバイスに関するケルベロスチケットを含む。前述したとおり、ケルベロスチケットは、少なくとも、ケルベロスセッション鍵(KCA)、チケットが有効でありつづけるある範囲の時間、ゲームコンソール102を識別する一意的な番号を含み、以上のすべてが、鍵配信センタとデバイスによって共用される秘密の鍵を使用して暗号化される。SPI値は、ゲームコンソール102とデバイスの間のセキュリティ関係、すなわち、通信チャネルを識別する。SPI値は、デバイスからゲームコンソール102への通信に関連し、またSPI値は、ゲームコンソール102からデバイスへの通信に関連する。したがって、鍵交換イニシエータパケットは、以下のとおりである。
InitPacket = [InitMess, Auth, Ticket]
【0063】
オーセンティケータとチケットの組合せは、ケルベロス用語においてAP要求と呼ばれていることに留意されたい。次に、ゲームコンソール102は、鍵交換イニシエータパケットをセキュリティゲートウェイデバイス150に送信する。
【0064】
デバイスは、鍵交換イニシエータパケットInitPacketを受信する。一実施では、デバイスは、すべての鍵交換イニシエータパケットが所定の形式になっており、かつ所定のサイズであることを予期している。その所定の形式でない、またはその所定のサイズでないあらゆる鍵交換イニシエータパケットは、デバイスによって無視される。あるいは、デバイスは、鍵交換イニシエータパケットが、様々な形式になっており、かつ/または様々なサイズになっていることを許すことが可能である。
【0065】
鍵交換イニシエータパケットが受信されると、デバイスは、そのデバイスが鍵配信センタと共有する鍵を使用してケルベロスチケットを解読する。次に、デバイスは、解読されたチケットをチェックして、チケットが失効しているかどうかを判定する。現在時刻が、チケットが有効でありつづける時間の範囲(チケットの中で特定される)内に含まれる場合、そのチケットは、失効していない。しかし、現在時刻が、チケットが有効でありつづける時間の範囲内に含まれない場合、そのチケットは、失効している。ケルベロスチケットが失効している場合、鍵交換プロセスは失敗し、ゲームコンソール102とデバイスの間でセキュリティ関係が全く確立されないことがもたらされる。デバイスは、鍵交換プロセスが失敗したことをゲームコンソール102に通知することができ、あるいは、デバイスは、受信されたInitPacketを単に削除して、ゲームコンソール102に通知を行わないことが可能である。
【0066】
しかし、ケルベロスチケットが失効していない場合、デバイスは、解読されたケルベロスチケットから回復されたケルベロスセッション鍵KCAを使用してケルベロスオーセンティケータAuthを解読する。次に、デバイスは、ケルベロスオーセンティケータの中のタイムスタンプTimeにアクセスし、そのタイムスタンプが受入れ可能であるかどうかをチェックする。タイムスタンプは、デバイス上の現在時刻との同期が離れすぎていない場合、受入れ可能である。例示的な実施では、タイムスタンプは、デバイス上の現在時間からある閾値時間(例えば、推奨されるケルベロス時間スキューである5分間)の範囲内にある場合、受入れ可能である。タイムスタンプが受入れ可能ではない場合、鍵交換プロセスは失敗である。
【0067】
タイムスタンプが受入れ可能である場合、デバイスは、鍵交換メッセージInitMessのダイジェストをコンピューティングする。デバイスは、ゲームコンソール102がダイジェストHashInitMessをコンピューティングしたのと同じ仕方でダイジェストをコンピューティングする。次に、デバイスは、コンピューティングしたダイジェスト値が、暗号化されたケルベロスオーセンティケータAuthの一部としてゲームコンソール102から受け取られたダイジェスト値と一致する(等しい)かどうかをチェックする。2つのダイジェスト値が同じである場合、そのことは、鍵交換メッセージInitMessが、ゲームコンソール102とデバイスの間で変更されていない(例えば、鍵交換メッセージInitMessが不正変更されていない)ことを確認する役割をする。2つのダイジェスト値が一致しない場合(言い換えれば、2つのダイジェスト値が等しくない場合)、鍵交換プロセスは失敗である。
【0068】
しかし、受け取られたダイジェスト値とコンピューティングされたダイジェスト値が一致する場合、デバイスは、ケルベロスオーセンティケータが再生されているかどうかをチェックする。デバイスは、各ゲームコンソールCから受け取った各ケルベロスオーセンティケータからのタイムスタンプのレコード(これは、ケルベロスチケットの中で明らかにされる)を維持する。デバイスは、そのデバイスによって記録された最新のタイムスタンプより新しくないタイムスタンプTimeを伴うケルベロスオーセンティケータを受け取った場合、そのケルベロスオーセンティケータが再生されていることを知る。ケルベロスオーセンティケータが再生されている場合、鍵交換イニシエータパケットは有効ではなく、鍵交換プロセスは失敗である。しかし、ケルベロスオーセンティケータが再生されていない場合、鍵交換イニシエータパケットは、デバイスによって検証されたことになる。以上すべての試験が満たされ、かつ鍵交換イニシエータパケットが検証された場合、デバイスは、ゲームコンソール102を、実際にゲームコンソール102による主張どおりのデバイスであるものとして認証した、すなわち、デバイスは、ゲームコンソール102がケルベロスセッション鍵KCAの知識を有すること検証したことになる。
【0069】
最初、デバイスは、鍵交換イニシエータメッセージInitMess、ケルベロスセッション鍵KCA、ゲームコンソール102からのナンス(NonceInit)、およびデバイスによって生成されたナンス(NonceResp)に基づいて暗号鍵を生成する。デバイスは、ランダムな(または擬似ランダムな)数Y、ならびにNonceRespと呼ばれるランダム値を生成する。デバイスは、ディフィ−ヘルマン値(gXY mod N)、およびディフィ−ヘルマン値(g mod N)をさらにコンピューティングする。この時点で、デバイスは、セキュリティ関係鍵をコンピューティングするのに十分なデータを有する。セキュリティ関係鍵は、2つのコンソール間のポイントツーポイント通信をセキュアにするのに使用される。例示的な実施では、デバイスは、2つのディフィ−ヘルマン値((g mod N)および(Y))を使用して関数(gXY mod N)をコンピューティングする。次に、デバイスは、NonceInit、NonceResp、(gXY mod N)、およびケルベロスセッション鍵KCAに基づく様々なアルゴリズムを使用して様々なダイジェストをコンピューティングすることができる。次に、そのダイジェストを使用してセキュリティ関係鍵を形成する。1つの例示的な実施では、デバイスは、NonceInit、NonceResp、および(gXY mod N)を入力として使用し、またケルベロスセッション鍵KCAも使用して、両方向ですべてのセキュアなパケットを認証し、かつ暗号化/解読するためのセキュリティ関係鍵として使用される4つの異なるダイジェストをコンピューティングする(認証のための1つの鍵、暗号化のための1つの鍵にそれぞれの方向として2を掛けて、合計で4になる)。あるいは、セッション鍵KCA自体を両方向でセキュアなパケットを認証し、かつ/または暗号化/解読するために使用することができる。
【0070】
次に、デバイスは、鍵交換応答メッセージを生成する。鍵交換応答メッセージは、以下のとおり、NonceInit、ゲームコンソール102から受信されたタイムスタンプTime、NonceResp、ディフィ−ヘルマン値(g
mod N)、およびSPI値を含む。
RespMess = [NonceInit, SPI, NonceResp, (g mod N)]
SPI値は、デバイスによって生成され、ゲームコンソール102からデバイスへのすべての通信に関連付けられる。次に、デバイスは、以下のとおり、ケルベロスセッション鍵およびハッシュ関数Hを使用して応答メッセージのダイジェストをコンピューティングする。
【0071】
【数3】
Figure 2004056793
【0072】
HashRespMessを生成するのに使用されるハッシュ関数Hは、HashInitMess(前述した)を生成するのに使用されるハッシュ関数Hと同一であること、あるいは異なるハッシュ関数であることが可能である。
【0073】
次に、デバイスは、以下のとおり、コンピューティングされたハッシュダイジェストと、ケルベロスオーセンティケータからのタイムスタンプTimeをともに含むケルベロス応答メッセージを生成する。
ReplyMess = [HashRespMess, Time]
【0074】
次に、デバイスは、以下のとおり、暗号化アルゴリズムE(例えば、トリプルDES)およびケルベロスセッション鍵KCAを使用してケルベロス応答メッセージReplyMessを暗号化する。
【0075】
【数4】
Figure 2004056793
【0076】
EncryptedReplyMessを生成するのに使用される暗号化アルゴリズムEは、Auth(前述した)を生成するのに使用されたのと同一の暗号化アルゴリズムであること、あるいは異なる暗号化アルゴリズムであることが可能である。
【0077】
次に、デバイスは、以下のとおり、鍵交換応答メッセージRespMess、および暗号化されたケルベロス応答メッセージEncryptedReplyMessを含む鍵交換応答パケットを生成する。
RespPacket = [RespMess, EncryptedReplyMess]
【0078】
次に、デバイスは、鍵交換応答パケットRespPacketをゲームコンソール102に送信する。
【0079】
ゲームコンソール102は、デバイスから鍵交換応答パケットRespPacketを受信する。ゲームコンソール102は、ケルベロスセッション鍵KCAを使用してケルベロス応答メッセージEncryptedReplyMessを解読する。次に、ゲームコンソール102は、解読された応答メッセージの中のタイムスタンプTimeが、ゲームコンソール102がデバイスに送信したタイムスタンプTimeと一致するかどうかをチェックする。両タイムスタンプが一致する場合(言い換えれば、タイムスタンプが等しい場合)、その一致により、デバイスが、ケルベロスチケットおよびケルベロスオーセンティケータを解読する(したがって、ケルベロスセッション鍵KCAの知識を有する)ことができ、したがって、現実に、自ら主張するとおりのデバイスであることが確認される。したがって、デバイスは、以上のタイムスタンプ値が一致する場合、ゲームコンソール102に対して認証される。
【0080】
タイムスタンプ値が一致しない場合、鍵交換プロセスは失敗であり、ゲームコンソール102とデバイスの間で全くセキュリティ関係が確立されないことがもたらされる(前述したのと同様に、ゲームコンソール102は、鍵交換プロセスが失敗したことをデバイスに通知することも、通知しないことも可能である)。ただし、タイムスタンプ値が一致した場合、デバイスは、ゲームコンソール102に対して認証され、ゲームコンソール102は、ケルベロスセッション鍵KCAを使用して鍵交換応答メッセージRespMessのダイジェストをコンピューティングすることにとりかかる。ゲームコンソール102は、デバイスがHashRespMess(前述した)をコンピューティングしたのと同じやり方でダイジェストをコンピューティングする。次に、ゲームコンソール102は、自らがコンピューティングしたダイジェスト値が、暗号化されたケルベロス応答メッセージEncryptedReplyMessの一部としてデバイスから受け取られたダイジェスト値と一致する(等しい)かどうかをチェックする。2つのダイジェスト値が同じである場合、そのことは、鍵交換応答メッセージRespMessが、デバイスとゲームコンソール102の間で変更されていない(例えば、鍵交換応答メッセージRespMessが不正変更されていない)ことを確認する役割をする。2つのダイジェスト値が一致しない場合(言い換えれば、2つのダイジェスト値が等しくない場合)、鍵交換プロセスは、失敗である。
【0081】
ただし、2つのダイジェスト値が一致した場合、ゲームコンソール102は、ケルベロスセッション鍵KCA、NonceInit、NonceResp、およびgXY mod Nに基づいて暗号鍵を生成する。デバイスが暗号鍵を生成することに関して前述したのと同様に、この時点で、ゲームコンソール102は、ディフィ−ヘルマン値(gXY mod N)をコンピューティングし、またセキュリティ関係鍵をコンピューティングするのに十分なデータを有している。ゲームコンソール102によってコンピューティングされるセキュリティ関係鍵は、デバイスによって生成されるものと同じであり、同じやり方でコンピューティングされる。gXY mod Nは、ゲームコンソール上のg mod N、およびXからコンピューティングされることに留意されたい。また、前述したのと同様に、別法として、セッション鍵KCA自体を両方向でセキュアなパケットを認証し、かつ/または暗号化/解読するために使用できることにも留意されたい。
【0082】
ゲームコンソール102は、セッション関連鍵を有すると、鍵交換が完了するのを待っていたあらゆるパケットを自由に伝送することができる。ただし、デバイスは、同一のセットの鍵を有していても、それを自由に行うことができない。というのは、自らの応答メッセージRespMessが失われていないと確信することができないからである。デバイスは、ゲームコンソール102からのコンピューティングされたセキュリティ関係鍵で認証されたパケットを受信するまで待つか、またはオプションとして、ゲームコンソール102から肯定応答パケット(AckPack)を受信するまで待つ。
【0083】
一般的なケースでは、ゲームコンソール102は、パケットをデバイスに送信し、したがって、鍵交換プロセスは、2つのパケットだけから、すなわち、InitPacketおよびRespPacketだけから成る。あるいは、ゲームコンソール102が、送信するパケットを有さない場合、ゲームコンソール102は、擬似の肯定応答パケット(「AckPack」として表される)を送信する。AckPackは、ケルベロスセッション鍵KCAではなく、コンピューティングされたセキュリティ関係鍵を使用してハッシングされることで、このパケットは、他の2つの鍵交換パケットと異なる。
【0084】
以降、ゲームコンソール102およびデバイスは、セキュリティ関係鍵を使用して通信をセキュアにする。相手側に伝送される必要のあるすべてのネットワークパケットは、オプションとして、暗号化された後、認証され、受信側のデバイスが、認証データを検証してから、パケット内容を解読する。コンソール102とデバイスのどちらも、同じNonceを含む相手側からの鍵交換パケットを無視することができる。
【0085】
デバイスは、ゲームコンソール102に関するセキュリティ関係情報のレコード172を維持する(動作206)。このレコードは、ゲームコンソール102に送信されるデータパケットを暗号化する際、およびゲームコンソール102から受信されたデータパケットを解読する際に使用されるセキュリティ鍵(セキュリティ関係鍵、および/またはセッション鍵KCA)、データセンタ110内のどのサービスデバイスにゲームコンソール102がアクセスすることが許可されているかを特定するサービスマッピング、完全に適格な(fully qualified)ゲームコンソールアドレス(XNADDRとも呼ばれる)、およびセキュリティパラメータインデックス(SPI)値を含む。
【0086】
動作204の相互認証の一環として、ゲームコンソール102は、自らがデバイスに送信する鍵交換パケットの中に含める、SPIと呼ばれるSPI値を生成する。同様に、デバイスは、自らが、ゲームコンソール102に送信される鍵交換応答パケットの中に含める値SPIを生成する。SPI値により、ゲームコンソール102が、ゲームコンソール102とデバイスの間のセキュアな通信チャネルを、ゲートウェイデバイスによって送信されるデータパケットが対応する特定のチャネルとして特定することが可能になる。ゲートウェイデバイスからゲームコンソール102へのすべてのセキュアなチャネルのパケット(鍵交換後の)は、そのチャネルを特定するSPI値を含む。同様に、SPI値により、デバイスが、ゲームコンソール102とデバイスの間のセキュアな通信チャネルを、セキュリティゲームコンソール102によって送信されるデータパケットが対応する特定のチャネルとして特定することが可能になる。ゲームコンソール102からゲートウェイデバイスへのすべてのセキュアなチャネルのパケット(鍵交換後の)は、そのチャネルを特定するSPI値を含む。それぞれのセキュアな通信チャネルは、同一のゲームコンソール102とデバイスの間であっても、通常、2つの異なるSPI値(各方向で1つ)を有する。
【0087】
一実施では、デバイスへのすべてのパケット、およびデバイスからのすべてのパケットが、常に、パケットの先頭にSPI値を含み、どのセキュリティチャネルにそのパケットが向けられているかを指定している(セキュリティゲートウェイデバイス150またはゲームコンソール102がこの値を使用して、パケットを解読する対応する鍵をルックアップすることができるように)。鍵交換イニシエータパケット、および鍵交換応答パケットの場合、この先頭のSPIは、ゼロの値に設定されて、パケットが、対応するSPI番号がまだ確立されていない鍵交換パケットであることを示す。ただし、鍵交換パケット自体の内部には、鍵交換が完了した後に使用される新しい提案のSPI値(ゼロではない)が含まれる。したがって、鍵交換パケットは、実際には、2つのSPI値、つまり外部のSPI値(ゼロである)、および内部のSPI値(ゼロではない)を含む。
【0088】
ゲームコンソール102に関する完全に適格なアドレスは、次のものを含む。すなわち、ゲームコンソール102に関するイーサネット(登録商標)MAC(media access control)アドレス、ゲームコンソール102のローカルIPアドレス(これは、ゲームコンソール102が自ら有すると信じるIPアドレスであり、デバイスがデータパケットをゲームコンソール102から受信する送信元のIPアドレスとは異なる可能性がある(例えば、ゲームコンソール102とデバイスの間に位置する、ルータなどのNATデバイスに起因して))、デバイスがデータパケットをゲームコンソール102から受信する送信元のIPアドレスおよびポート(これは、ゲームコンソール102のローカルIPアドレスと同じであることが可能であり、あるいは異なることが可能である(例えば、NATデバイスのアドレス))、論理上のセキュリティゲートウェイデバイス番号(セキュリティゲートウェイクラスタの中のセキュリティゲートウェイデバイスを一意的に識別するようにセキュリティゲートウェイデバイスに割り当てられた識別子)、SPI値(例えば、SPIおよび/またはSPI)、およびゲームコンソールid(前述したゲームコンソール識別C)である。完全に適格なアドレスの内容は、ゲームコンソール102から受け取られたセキュリティチケットに基づき、またゲームコンソール102から受信されたデータパケットに組み込まれた情報に基づいて判定することができる。
【0089】
デバイスが、セキュリティゲートウェイデバイス(図5に関連して以下に述べる)である一実施形態では、動作204における認証の一環として、固有データセンタ可視IPアドレス(データセンタによって内部で使用されるアドレス))が、セキュリティゲートウェイデバイスに利用可能なアドレスのプールから、ゲームコンソールに割り当てられる。固有データセンタ可視IPアドレスは、公共/専用ネットワーク境界を越えてパケットを転送する際、セキュリティゲートウェイデバイスによって使用される。パケットが、ゲームコンソールから受信されて、データセンタ内部で(専用ネットワークを介して)転送され、送信元IPアドレスが、上記のデータセンタ可視IPアドレスとしてリストされる。データセンタ内のサーバがこのトラフィックに応答する際、応答は、その応答の目標IPアドレスを含むアドレス範囲が割り当てられたセキュリティゲートウェイデバイスに戻るようにルーティングされる。セキュリティゲートウェイデバイスは、目標IPアドレスが割り当てられたゲームコンソールに関するセキュリティ関係をルックアップすることによってNATプロセスを逆転し、応答が指定されたゲームコンソールに戻るように転送し、応答の送信元アドレスは、セキュリティゲートウェイのインターネットアドレスであるように変更される。
【0090】
デバイスは、ゲームコンソールがもはや使用不可能になるまで(ゲームコンソール102が、データセンタ110から自発的にログアウトしたか、または別の形で応答不可になったかに関わらず)、ゲームコンソール102に関するセキュリティ関係情報を維持し、使用不可能になった時点で、デバイスは、ゲームコンソール102に関するセキュリティ関係情報を削除する(動作208)。デバイスは、以下により詳細に述べるとおり、ゲームコンソール102と通信する際に、この維持されたセキュリティ関係情報を使用する。したがって、セッションセキュリティ鍵および/またはセキュリティ関係鍵を含むセキュリティ関係情報は、各セッションの間にだけ維持される。すなわち、ゲームコンソール102がデバイスにログインするたびに毎回、新しいセキュリティ関係が生成される。
【0091】
図3のプロセス200は、ゲームコンソールとセキュリティゲートウェイデバイスの間で相互に認証されたセキュアな通信チャネルを確立する、ケルベロスチケットなどのセキュリティチケットの使用について述べている。あるいは、他のプロセスを使用してセキュアな通信チャネルを確立することができる。セキュアな通信チャネルの目的は、特定のゲームコンソール、および特定のデバイスが、チャネル内で通信されているデータを他のデバイスが解釈する、または変更するのを防止する仕方で互いに通信することを可能にすることである。
【0092】
図4は、図1の例示的なデータベースをさらに詳細に示すブロック図である。データベース114は、提供(offers)テーブル240、タイトル_提供(title_offers)テーブル242、提供_場所(offer_locations)テーブル244、加入(subscriptions)テーブル246、国(countries)テーブル248、および提供_地域(offer_regions)テーブル250を含む。以上の様々なテーブル240〜250を使用して、図1の照会ソース104によって保持される様々な情報を記憶する。代替の実施形態では、データベース114は、さらなる情報を記憶することができるが、そのようなさらなる情報は、図面が分かりにくくなるのを避けるために示していない。
【0093】
テーブル240〜250は、提供_idを参照する。提供_idにより、本明細書でコンテンツパッケージとも呼ぶ特定のコンテンツが識別される。コンテンツパッケージは、単にコンテンツ自体であること、あるいはコンテンツの暗号化されたダイジェストを含むことが可能である。一実施形態では、提供_idは、上位の32ビットが、コンテンツを供与することを最初に担うゲームタイトル(例えば、コンテンツの設計が最初に、または主に向けられたゲームタイトル)の識別子である64ビットの値である。この32ビットのゲームタイトル識別子は、世界中でそのゲームを一意的に特定する。提供_idの下位の32ビットのうち、27ビットがゲームタイトルに供与される。すなわち、ゲーム開発者は、その27ビットを使用して、自らが所望するあらゆる仕方でコンテンツを識別することができる。提供_idの下位32ビットの残りの5ビットは、システム使用のために取っておかれる。一実施形態では、5ビットのうち1ビットは、コンテンツが無料であるか、または代金が支払われるべきかを示すのに使用される。コンテンツが無料である場合、要求側がコンテンツにアクセスすることができるかどうかの検証(例えば、図2の動作148)は、要求側が適切な料金を支払ったかどうかについての検査を含む必要がない。別法では、提供_idの下位32ビットのすべてが、ゲーム開発者が所望に応じて使用するように、ゲームタイトルに供与される(オプションとして、コンテンツが無料であるか、または代金が支払われるべきかを示す1ビットを含め)ことが可能である。
【0094】
提供テーブル240は、照会ソース104が管理する各コンテンツを記述する情報を含む。照会ソース104によって管理される各コンテンツに関して、提供テーブル240の中で個別のエントリが存在する。タイトル_提供テーブル242は、どのゲームタイトルが特定のコンテンツにアクセスすることが許されているかを記述する情報を含む。ソース104によって管理される各コンテンツ、およびそのコンテンツにアクセスすることが許されている各ゲームタイトルに関して、タイトル_提供テーブル242の中で個別のエントリが存在する。提供_場所テーブル244は、特定のコンテンツの異なるソース、およびその異なるソースのランキングを記述する情報を含む。ソース104によって管理される各コンテンツに関して、提供_場所テーブル244の中で個別のエントリが存在する。加入テーブル246は、異なる要求側、およびどのコンテンツにその要求側がアクセスする資格があるか(例えば、そのコンテンツにアクセスする権利の代金を支払ったことにより)を記述する情報を含む。ソース104によって管理される各コンテンツに関し、そのコンテンツにアクセスする資格のある各要求側に関する個別のエントリが、加入テーブル246の中に存在する。
【0095】
国テーブル248は、国コードを含み、また提供_地域テーブル250は、特定のコンテンツを特定の国に国コードでマップする情報を含む。コンテンツへのアクセスの起点となることが照会ソース104によって許される各国に関して、個別のエントリが、国テーブル248の中に存在する。ソース104によって管理される各コンテンツに関して、またコンテンツごとに、そのコンテンツにアクセスすることが国内で許される各国に関して、個別のエントリが、提供_地域テーブル250の中で存在する。本明細書では、国ごとで述べているが、地域は、任意の地理的境界(例えば、複数の国のグループ、1つまたは複数の国、州、県の部分等)であることが可能である。以上の様々なテーブル240〜250の中に保持される情報を以下のテーブルに示している。
【0096】
【表1】
Figure 2004056793
【0097】
【表2】
Figure 2004056793
【0098】
【表3】
Figure 2004056793
【0099】
【表4】
Figure 2004056793
【0100】
【表5】
Figure 2004056793
【0101】
【表6】
Figure 2004056793
【0102】
テーブル240〜250を使用して、図1の検証モジュール110は、特定の要求側が要求のコンテンツにアクセスすることが許されているかどうかを検証することができる。検証モジュール110は、加入テーブル246を検査して、要求側が要求のコンテンツに関する有効な加入契約を有することを検証する(あるいは、要求のコンテンツが無料である場合、加入テーブル246を検査しなくてもよい)。加入テーブル246の中で、要求側の識別子(例えば、puid)の要求のコンテンツ(例えば、提供_id)へのマッピングが存在しない場合、その要求側は、そのコンテンツを取得することが許されていない。さらに、加入テーブル246の中でそのようなマッピングが存在する場合、検証モジュール110は、要求側の加入契約が現在、有効であることを確かめる検査も行う(例えば、現在の日付/時刻が、エントリの中の開始日前でなく、かつエントリの中の終了日後でなく、かつ加入ステータスは、その要求側の加入契約がアクセスを許さないことを示していない(例えば、ユーザの加入契約がキャンセルされていないこと、使用の条項の違反が行われていないこと等))。
【0103】
前述したとおり、要求側は、マシン(ゲームコンソール)および/またはユーザであることが可能である。したがって、検証モジュール110は、マシン別に、ユーザ別に、またはマシン別とユーザ別の組合せでコンテンツに対するアクセスを制限することができる。検証モジュール110がどのようにコンテンツへのアクセスを制限するかは、検証モジュール110にプログラミングすることが可能であり、また別法では、コンテンツごとに(per−piece basis)どのように検証モジュール110がアクセスを制限するかを特定する追加のエントリを提供テーブル240(あるいは作成される新しいテーブル)の中に含めることができる。単一の識別子(例えば、マシン識別子、または単一のユーザ識別子)だけが加入テーブル246の中にあればよい状況では、その単一の識別子が探索される。あるいは、複数の識別子(例えば、ゲームコンソールの複数のユーザ、つまりゲームコンソールの識別子、および1名または複数名のユーザ識別子)が存在する場合、その識別子のそれぞれが、加入テーブル246の中にある必要があり、また別法では、すべての識別子が存在しなくてもよい(例えば、識別子の多数、少なくとも1つの識別子等)。したがって、4名のユーザが、特定のゲームコンソールを使用しており、コンテンツを要求した場合、検証モジュール110は、4名すべてのユーザのユーザ識別子、およびゲームコンソール識別子が加入テーブル246の中にある場合にだけコンテンツに対するアクセスを許すこと、あるいはゲームコンソール識別子が加入テーブル246の中にある限り、コンテンツに対するアクセスを許すこと、あるいはユーザ識別子の少なくとも1つが加入テーブル246の中にある限り、コンテンツに対するアクセスを許すこと等が可能である。
【0104】
また、検証モジュール110は、提供_地域テーブル250を検査して、要求側がそのコンテンツにアクセスすることが許されている国に関連していることも検証する。異なる国は、しばしば、ゲームコンテンツに関して異なる法律を有する(例えば、ある語またはある記号が、ある国において禁止されている可能性があり、ある国では、血を赤くすることが禁止されている可能性がある等)。したがって、コンテンツにアクセスすることが許されている(例えば、ゲーム開発者が、コンテンツを供与することを所望し、そのコンテンツが法律に違反しないと確信する)各国(またはその他の地理的区域)が、提供_地域テーブル250の中でそのコンテンツにマップされる。提供_地域テーブル250の中で、要求側が関連している国の要求のコンテンツへのマッピングが存在しない場合、その要求側は、そのコンテンツを取得することが許されていない。
【0105】
要求側は、様々な形で特定の国、または特定の地理的地域に関連付けられることが可能である。一実施形態では、追加のフィールドが加入テーブル246の中に含められ、あるいは要求側が関連している国(例えば、要求側が自らの所在を主張する国(例えば、使用上の合意の条項の一部として合意された)、および/またはコンテンツ加入契約に関する料金請求先アドレスが所在する国)を特定する追加のテーブルが使用される。
【0106】
また、検証モジュール110は、タイトル_提供テーブル242の検査を行って、コンテンツを要求しているゲームタイトル(要求側がコンテンツを要求する際にゲームコンソール上で実行されているゲームタイトル)がコンテンツにアクセスすることが許されていることも検証する。コンテンツを要求しているゲームタイトルの識別子(例えば、タイトル_id)のコンテンツ識別子(例えば、提供_id)へのマッピングが存在しない場合、要求側は、そのコンテンツを取得することが許可されていない。
【0107】
別法では、どの要求側がコンテンツにアクセスすることが許されるかにさらなる制限を課すことを可能にする追加の情報が、データベース114の中で保持される。例えば、提供_加入_レベルテーブルを含めて、加入アクセスの異なるレベル(例えば、より多くを支払うものがより多くのコンテンツへのアクセスを有する)、ユーザベースのチーム(例えば、特定のコンテンツへのアクセスが許されたユーザのグループ)、アプリケーションのバージョン(例えば、最新バージョンの特定のアプリケーションだけが、特定のコンテンツにアクセスすることが許される)などの様々なクラスの要求側に基づいてコンテンツに対するアクセスを制限することができる。
【0108】
テーブル240〜250には、様々なやり方のうちの任意のやり方でデータを埋めることができる。通常、新しいコンテンツが供与されるたびに毎回、どの要求側がそのコンテンツにアクセスすることが許されるかを記述する適切なエントリが、適切なテーブル240〜250に追加される。さらに、テーブルに以前に追加されたコンテンツに関連してテーブル240〜250に変更を行うことができる。例えば、新しい加入契約が、異なる潜在的な要求側によって購入され、加入テーブル246の中に新しい(かつ/または変更された)エントリをもたらし、誰がコンテンツにアクセスを有するかが変化する可能性がある。
【0109】
別の例として、コンテンツを暗号化するのに使用された対称鍵が、漏洩している(または漏洩したと考えられる)状況が生じる可能性がある。そのような状況では、新しい対称鍵を容易に生成することができ、その新しい対称鍵を使用してコンテンツを暗号化し、その新たに暗号化されたコンテンツを適切なソースに記憶することができる。また、そのコンテンツに関する提供テーブル240内のエントリも、その新しい対称鍵を含むように更新される。したがって、以降のあらゆる要求側は、その新しい対称鍵を受け取り、新たに暗号化されたコンテンツを解読することができ、これにより、前の鍵が漏洩したことに対処が行われる。
【0110】
さらに別の例として、コンテンツのソースが変わる状況が生じる可能性がある。これは、あるソースが信頼できないこと、および/または障害を生じていること、コンテンツを記憶するのに様々なソースによって課される料金、ソースの地理的場所などの様々な異なる理由によることが可能である。提供_場所テーブル244において適切なエントリを追加すること、削除すること、かつ/または変更することにより、そのようなあらゆる変更に容易に対処することができる。
【0111】
ゲームコンソール102は、自らが要求する特定のコンテンツの提供_idを様々な異なるやり方のうちの任意のやり方で獲得することができる。一実施形態では、ゲームコンソール102は、あるパラメータを満足させる1組の提供_id(例えば、特定のタイトル_idに(例えば、タイトル_提供テーブルの中の対応するエントリに基づいて)関連する提供_id、提供_idの下位32ビットが特定の範囲内(例えば、新しい走路、新しい武器、新しいキャラクタなどの何か特定のものを意味するものとしてゲーム開発者に定義された)にある提供_id)を求めて照会ソース104にクエリを行うことができる。別の実施形態では、ゲームコンソール102に、オンラインゲームソースから提供_idが与えられ、ゲームコンソールが、特定のオンラインゲームを行うのに適切なコンテンツ(例えば、ロールプレーイングゲームが行われている特定の世界の新しいバージョン)を獲得できるようになることが可能である。さらに別の実施形態では、ゲームコンソール102に、ゲームコンソールに挿入される取外し可能なディスク(例えば、雑誌とともに配布されるディスク)、ユーザによって手作業で入力される(例えば、インターネットや雑誌の記事等からユーザによって獲得され)などの別のソースから提供_idが与えられることが可能である。
【0112】
一実施形態では、ゲームタイトルが、コンテンツを取得してインストールすることを可能にする複数のアプリケーションプログラミングインターフェース(API)が、ゲームコンソール上で実行されるゲームタイトルに公開される。1組の例示的なAPIを以下に説明し、これには、次のものが含まれる。
・XOnlineContentInstall
・XOnlineContentInstallGetProgress
・XOnlineTaskContinue
・XLoadContentSignatures
・XLocateSignatureByName
・XLocateSignatureByIndex
・XCalculateContentSignature
【0113】
XOnlineContentInstall
指定されたコンテンツのダウンロードおよびインストールを開始する。このファンクションは、ダウンロードおよびインストールを行う非同期タスクを生成する。
Figure 2004056793
【0114】
パラメータ:
OfferingId
[入力]コンテンツに関連する固有識別子。
hWorkEvent
[入力、オプション]インストールタスクに関して作業を行う必要があるとき通知されるイベントに対するハンドル。このパラメータは、そのようなイベントが必要ない場合、NULLであることが可能である。
phTask
[出力]インストール要求を表すタスクハンドルを受け取るXONLINETASK_HANDLEタイプの変数に対するポインタ。このハンドルをXOnlineTaskContinueの呼出しで使用してそのタスクに関連する作業を行うことができる。
【0115】
戻り値:
ファンクションが成功した場合、戻り値は、S_OKである。
【0116】
注釈:
XOnlineContentInstallは、コンテンツをダウンロードし、インストールし、確認するのに必要なすべてのステップを行う。XOnlineContentInstallは、OfferingIdで指定されたコンテンツのダウンロードおよびインストールを開始する。このファンクションは、非同期タスクを生成し、phTaskパラメータでそのタスクに対するハンドルを返す。この非同期タスクに関して作業を行うため(または最終的にタスクを完了するため)、XOnlineTaskContinueは、XONLINETASK_S_RUNNING以外の値を返すまで、タスクハンドルを使用して繰り返し呼び出すことができる。XOnlineTaskContinueは、XONLINETASK_S_SUCCESSを戻してタスクが成功裏に完了したことを示すか、または誤り戻り値を戻してコンテンツインストールが失敗したことを示す。
【0117】
XOnlineContentInstallGetProgress
XOnlineContentInstallで開始された提供ダウンロード(offering download)の現在の進行を取り出す。
Figure 2004056793
【0118】
パラメータ:
hTask
[入力]コンテンツのダウンロードおよびインストールを開始するXOnlineContentInstallの呼出しによって戻されるオンラインタスクハンドル。
pdwPercentDone
[出力、オプション]0から100までのダウンロードの完了パーセンテージを受け取る変数に対するポインタ。このパラメータは、その情報が必要ない場合、NULLであることが可能である。
pqwNumerator
[出力、オプション]これまでにダウンロードされたバイトの総数を示すULONGLONGを受け取る変数に対するポインタ。このパラメータは、その情報が必要ない場合、NULLであることが可能である。
pqwDenominator
[出力、オプション]ダウンロードされる提供物のバイト単位での合計サイズを示すULONGLONGを受け取る変数に対するポインタ。このパラメータは、その情報が必要ない場合、NULLであることが可能である。
【0119】
戻り値:
ファンクションが成功した場合、戻り値は、S_OKである。
【0120】
注釈:
このファンクションは、ダウンロードおよびインストールに関して実際の作業は全く行わず、単にそのダウンロードの進行を示す。
【0121】
XOnlineTaskContinue
XOnlineTaskContinueファンクションは、待ち状態の非同期タスクに関して単一のタイムスライスの作業を行う。
Figure 2004056793
【0122】
パラメータ:
hTask
[入力]作業が行われるタスクのタスクハンドル。このハンドルは、非同期タスクを生成したファンクションの以前の呼出しによって戻されていなければならない。
【0123】
戻り値:
このファンクションは、タスクが完了したとき、または誤りが生じたとき、タスクのステータスを示す汎用コードか、またはタスク特有の結果コードを返す。汎用結果コードは、以下のとおりである。
Figure 2004056793
【0124】
完了したタスク、または誤りに遭遇したタスクに関して、タスク特有の戻りコードが存在することが可能である。さらなる情報については、注釈を参照されたい。
【0125】
注釈:
いくつかのオンラインファンクションが、作業をブロッキングして同期に行うのではなく、非同期タスクを生成して作業を行う。これらのファンクションは、タスクハンドルを戻し、次に、タスクハンドルは、タイトルがいくつかの予備のサイクルを有し、いくらかのオンライン作業を行うことを望むとき(例えば、タイトルが、次のフリップ(flip)を待っているとき、またはタイトルが、グラフィックスプッシュバッファが消去されるのを待って停止している間)、XOnlineTaskContinueに送られる。さらに、XOnlineTaskContinueに複数回の呼出しを行うことにより、タイトルは、ネットワーク活動のバーストをいくつかのビデオフレームにわたって拡散させて、フレームレートを安定させるのを助けることができる。また、複数の待ち状態の非同期タスクが、各タスクに関して順にXOnlineTaskContinueを呼び出す単一のセクションのコードによって処理されることが可能である。
【0126】
タスクに必要な作業が完了したとき、XOnlineTaskContinueは、XONLINETASK_S_SUCCESSを戻し、タスクが終了したこと、およびそのタスクに関してXOnlineTaskContinueのさらなる呼出しは行われるべきでないことが示される。関与する特定のオンラインタスクに依存して、その時点で追加のタスク特有のファンクションを呼び出して、タスクの結果を取得することが可能である。
【0127】
いくつかのタスクに関して、XOnlineTaskContinueは、XONLINETASK_S_RESULTS_AVAILを戻して、タスクは完了していないが、部分的結果の用意ができていることを示す。この時点で、タスク特有のファンクションが呼び出されて結果が取得される。次に、タイトルは、XOnlineTaskContinueのさらなる呼出しを使用してタスクを処理することを続ける。
【0128】
タスクがまだ実行されている場合、XOnlineTaskContinueは、XONLINETASK_S_RUNNINGを返す。この場合、時間が許すので、タイトルは、XOnlineTaskContinueの呼出しを続けてタスクを処理することを続けなければならない。
【0129】
いくつかのタスクは、その他の戻りコードを提供して成功、または進行状態を示す。
【0130】
タスクが処理されている最中に誤りが生じた場合、XOnlineTaskContinueがそのタスクに関して作業を行うようにタイトルによって呼び出されたとき、その誤りが、XOnlineTaskContinueによって戻される。特定のエラーコードはタスクごとに異なることがある。
【0131】
意図的に、いくつかのタスクは、完了まで実行されることが決してなく、代わりに、定期的に呼び出されて更新または他の処理を行う。通常、XOnlineTaskContinueは、それらのタスクに関して毎フレーム1回、呼び出されなければならず、XONLINETASK_S_RUNNINGを戻しつづける。
【0132】
XOnlineTaskContinueの各呼出しに関して行われる厳密な時間と作業の量は、タスクごとに異なる。時間の割振りは、過度の遅延を生じさせることなしにタスクを進展させるのに十分であるように図られる。
【0133】
周期的にXOnlineTaskContinueを呼び出すことを、しばしば、タスクをポンピング(pumping)すると言い、また非同期タスクアーキテクチャをオンラインタスクポンプと呼ぶ。
【0134】
XLoadContentSignatures
指定されたコンテンツに関する署名をロードし、署名データに対するハンドルを返す。
Figure 2004056793
【0135】
パラメータ:
TitleID
[入力]コンテンツをインストールしたタイトルのタイトル識別子を指定する。TitleIDがゼロである場合、呼出し側タイトルのタイトル識別子を使用する。
DirectoryName
[入力]コンテンツのインストールディレクトリを指定する。
【0136】
戻り値:
このファンクションが成功した場合、戻り値は、指定されたコンテンツに関する署名データに対するハンドルである。ファンクションが失敗した場合、戻り値は、NULLである。
【0137】
注釈:
XLoadContentSignaturesは、指定されたコンテンツに属するコンテンツ署名(例えば、前述したダイジェスト)をロードし、署名データの完全性を検証し、その署名データに対するハンドルを返す。このハンドルは、XLocateSignatureByIndexおよびXLocateSignatureByNameの後の呼出しで使用してコンテンツ署名を取得し、次に、その署名を、コンテンツデータに関してコンピューティングされた署名と比較することができる。
【0138】
XCalculateContentSignaturesを使用してコンテンツデータを対象に署名をコンピューティングして、戻された署名と比較する。別法では、署名は、タイトル特有の仕方で生成され、タイトルは、独自のアルゴリズムを使用してコンテンツを対象に署名をコンピューティングして、戻された署名と比較する。
【0139】
XLocateSignatureByName
ファイル、またはファイル内のデータのブロックに関して、指定された署名データからコンテンツ署名を取得する。
Figure 2004056793
【0140】
パラメータ:
SignatureHandle
[入力]XLoadContentSignaturesを使用して開かれる署名データに対するハンドル。
FileName
[入力]署名が取得されるべき対象のデータブロックを含むファイルを指定する空白(null)で終了するストリングに対するポインタ。
FileOffset
[入力]データブロックのオフセットをバイト数でファイルの中で指定する。
DataSize
「入力」データブロックのサイズをバイト数で指定する。
SignatureData
「出力」指定された署名のアドレスを受け取るLPBYTE変数に対するポインタ。
SignatureSize
[出力]SignatureDataによって指し示された署名のサイズをバイト数で受け取るDWORD変数に対するポインタ。
【0141】
戻り値:
このファンクションが成功した場合、戻り値は、真である。ファンクションが失敗した場合、戻り値は、偽である。
【0142】
注釈:
XLocateSignatureByNameが、指定されたブロックのデータに関する署名を取得する。所与のコンテキストファイルは、単一の署名(そのファイル全体を表す)を有することが可能であり、またはファイルがより小さいデータブロックに分割されて、各データブロックを対象に署名が別々にコンピューティングされることが可能である。複数の署名により、例えば、大きいリソースファイルからより小さいコンテンツをロードし、ロードされたデータの部分だけを対象に署名をコンピューティングし、署名を比較することが可能になる。
【0143】
ファイル全体に関して署名を取得するため、FileOffsetおよびDataSizeとしてゼロが指定される。ファイル内で特定のデータブロックに関する署名を取得するため、データブロックの最初のオフセットおよびサイズが指定される。指定されたデータ範囲にマッチする署名が、署名データの中で探索され、見出された場合、戻される。いずれの場合も、データブロックに関する署名は、署名データが最初に生成された際に指定され、コンピューティングされていることに留意されたい。
【0144】
XLocateSignatureByIndex
指定された署名データから索引によりコンテンツ署名を取得する
Figure 2004056793
【0145】
パラメータ
SignatureHandle
[入力]XLoadContentSignaturesで開かれる署名データに対するハンドル。
SignatureIndex
[入力]取得すべき署名の索引を指定する。
SignatureData
[出力]指定された署名のアドレスを受け取るLPBYTE変数に対するポインタ。
SignatureSize
[出力]SignatureDataで指し示される署名のサイズをバイト数で受け取るDWORD変数に対するポインタ。
【0146】
戻り値:
このファンクションが成功した場合、戻り値は、真である。ファンクションが失敗した場合、戻り値は、偽である。
【0147】
注釈:
XLocateSignatureByIndexは、指定の開かれた署名データから指定された索引において署名を取得する。
【0148】
XCalculateContentSignature
指定されたデータを対象に署名をコンピューティングし、受け取られたコンテンツ署名とマッチングを行う。
Figure 2004056793
【0149】
パラメータ:
Data
[入力]署名のコンピューティングが行われた対象のデータを含むバッファに対するポインタ。
DataSize
[入力]Dataバッファのサイズをバイト数で指定する。
Signature
[出力]コンピューティングされた署名を受け取るバッファに対するポインタ。
SignatureSize
[入力、出力]Signatureで指し示されるバッファのサイズをバイト数で指定するDWORD変数に対するポインタ。戻りで、SignatureSizeは、Signatureバッファに書き込まれる実際のバイト数を受け取る。
【0150】
戻り値:
このファンクションが成功した場合、戻り値は、真である。ファンクションが失敗した場合、戻り値は、偽である。
【0151】
注釈:
XCalculateContentSignatureは、コンテンツとともに記憶される署名を生成するのに使用されるのと同じアルゴリズムを使用して、指定されたコンテンツを対象に署名(例えば、前述したダイジェスト)をコンピューティングする。インストールされたコンテンツデータを検証するため、XCalculateContentSignatureを使用してそのデータを対象に署名をコンピューティングし、XLocateSignatureNameファンクションまたはXLocateSignatureByIndexファンクションによって戻された同じデータに関する署名と比較することができる。
【0152】
別法では、XCalculateContentSignatureを呼び出すのではなく、ゲームタイトルは、自らがコンテンツ署名を生成するのに最初に使用したタイトル特有のアルゴリズムを、どのようなものであれ使用することができる。
【0153】
署名を保持するのに必要なバッファサイズを判定するため(署名コンピューティングを実際に行うことなしに)、SignatureSizeとしてゼロを指定する。必要とされるサイズが、SignatureSizeで戻される。
【0154】
図5は、例示的なオンラインゲーム環境300を示すブロック図である。複数のゲームコンソール302−1、302−2、...302−nが、ネットワーク306を介してセキュリティゲートウェイ304に結合されている。ネットワーク306は、様々な従来のデータ通信網の任意の1つまたは複数を表す。ネットワーク306は、通常、パケット交換網を含むが、回線交換網も含むことが可能である。ネットワーク306は、有線部分および/または無線部分を含むことが可能である。1つの例示的な実施では、ネットワーク306は、インターネットを含むが、オプションとして、1つまたは複数のローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)を含むことが可能である。ネットワーク306の少なくとも一部分は、公衆ネットワークであり、これは、ネットワークが公共アクセス可能であることを指す。実質的に、誰でも公衆ネットワークにアクセスできる。
【0155】
一部の状況では、ネットワーク306は、ゲームコンソール302−1〜302−nとセキュリティゲートウェイ304の間にルーティングデバイスが位置しているLAN(例えば、ホームネットワーク)を含む。このルーティングデバイスは、ネットワークアドレス変換(NAT)を行うことができ、LAN上の複数のデバイスが、インターネット上で同一のIPアドレスを共有することを可能にし、また悪意のあるユーザ、または性悪な(mischievous)ユーザによるインターネットを介してのアクセスに対してLAN上のデバイスを保護するファイアウォールとして動作する。
【0156】
セキュリティゲートウェイ304は、公衆ネットワーク306と専用ネットワーク308の間のゲートウェイとして動作する。専用ネットワーク308は、ローカルエリアネットワークなどの多種多様な従来のネットワークの任意のものであることが可能である。専用ネットワーク308、ならびに以下にさらに詳述する他のデバイスは、セキュアゾーンとして動作するデータセンタ310の内部にある。データセンタ310は、信頼される通信を介して通信する信頼されるデバイスから構成される。したがって、セキュアゾーン310内における暗号化および認証は必要ない。ネットワーク308の専用性が指しているのは、ネットワーク308の限定されたアクセス可能性、すなわち、ネットワーク308に対するアクセスが、ある個人だけに限定されている(例えば、データセンタ310の所有者または運用者によって制限されている)ことである。
【0157】
セキュリティゲートウェイ304は、1つまたは複数のセキュリティゲートウェイコンピューティングデバイスのクラスタである。このセキュリティゲートウェイコンピューティングデバイスは、集合としてセキュリティゲートウェイ304を実現する。セキュリティゲートウェイ304は、オプションとして、セキュリティゲートウェイコンピューティングデバイスによって扱われるべき要求が、そのコンピューティングデバイスの適切なものに向けられるように動作する1つまたは複数の従来のロードバランシングデバイス(load balancing device)を含むことが可能である。この誘導、つまりロードバランシングは、様々なセキュリティゲートウェイコンピューティングデバイスにかかる負荷をほぼ平等に平衡させようと試みる形で(あるいは、何らかの他の基準に従って)行われる。
【0158】
またデータセンタ310内に、次のものが存在する。すなわち、1つまたは複数の監視サーバ312、1つまたは複数の存在−通知フロントドア(presence and notification front doors)314と、1つまたは複数の存在サーバ316と、1つまたは複数の通知サーバ318(集合として、存在−通知サービスを実施する)、1つまたは複数のマッチフロントドア320と、1つまたは複数のマッチサーバ322(集合として、マッチサービスを実施する)、1つまたは複数の統計フロントドア324と、1つまたは複数の統計サーバ326(集合として、統計サービスを実施する)、ならびに1つまたは複数の照会フロントドア330と、サーバ104である。サーバ316、318、322、および326は、ゲームコンソール302−1〜302−nにサービスを提供し、したがって、サービスデバイスと呼ぶことができる。サーバ316、318、322、および326に加えて、かつ/またはその代わりに、他のサービスデバイスも含まれることが可能である。さらに、図5では、1つのデータセンタだけを示しているが、別法では、ゲームコンソール302−1〜302−nが通信することができる複数のデータセンタが存在してもよい。これらのデータセンタ群は、独立に動作することが可能であり、あるいは、集合として(例えば、1つの大型のデータセンタをゲームコンソール302−1〜302−nに供与するように)動作することが可能である。
【0159】
ゲームコンソール302−1〜302−nは、データセンタ310からリモートに位置し、ネットワーク306を介してデータセンタ310にアクセスする。データセンタ内の1つまたは複数のデバイスと通信することを望むゲームコンソール302−1〜302−nは、コンソール302−1〜302−nとセキュリティゲートウェイ304の間でセキュアな通信を確立する。ゲームコンソール302−1〜302−nおよびセキュリティゲートウェイ304は、やり取りされるデータパケットの暗号化および認証を行い、これにより、暗号化を破ることなしにデータパケットをキャプチャすること、またはコピーすることができる何らかの他のデバイスによって理解されることなく、ゲームコンソール302−1〜302−nとセキュリティゲートウェイ304の間でデータパケットがセキュアに伝送されることが可能になる。ゲームコンソール302−1〜302−nからセキュリティゲートウェイ304に通信される、またはセキュリティゲートウェイ304からゲームコンソール302−1〜302−nに通信される各データパケットには、データが組み込まれていることが可能である。この組み込まれたデータは、パケットの内容、またはパケットのデータ内容と呼ばれる。また、追加の情報も、パケットタイプに基づき、本質的にパケットに含まれることが可能である。
【0160】
前述したとおり、コンソール302−1〜302−nとセキュリティゲートウェイ304の間のセキュアな通信チャネルは、セキュリティチケットに基づく。コンソール302−1〜302−nは、鍵配信センタ328に対してコンソール302−1〜302−n自体、および現行のユーザを認証して、鍵配信センタ328からセキュリティチケットを獲得する。次に、コンソール302−1〜302−nは、このセキュリティチケットを使用してセキュリティゲートウェイ304とのセキュアな通信チャネルを確立する。セキュリティゲートウェイ304とセキュアな通信チャネルを確立する際、ゲームコンソール302−1〜302−nとセキュリティゲートウェイ304は、互いに対して自らを認証し、その特定のゲームコンソール302−1〜302−nおよびセキュリティゲートウェイ304だけに知られたセッションセキュリティ鍵を確立する。このセッションセキュリティ鍵は、ゲームコンソール302−1〜302−nとセキュリティゲートウェイ304のクラスタの間で転送されるデータを暗号化するのに使用され、したがって、その他のデバイス(他のゲームコンソール302−1〜302−nを含め)はどれも、そのデータを読み取ることができない。また、セッションセキュリティ鍵は、データパケットが、データパケットの起点とされるセキュリティゲートウェイ304、またはゲームコンソール302−1〜302−nからのものであることを認証するのにも使用される。したがって、そのようなセッションセキュリティ鍵を使用することにより、セキュリティゲートウェイ304と様々なゲームコンソール302−1〜302−nの間でセキュアな通信チャネルを確立することができる。
【0161】
ゲームコンソール302−1〜302−nとセキュリティゲートウェイ304の間でセキュアな通信チャネルが確立されると、暗号化されたデータパケットをその2つの間でセキュアに伝送することができる。ゲームコンソール302−1〜302−nが、データをデータセンタ310内の特定のサービスデバイスに送信することを望むとき、ゲームコンソール302−1〜302−nは、そのデータを暗号化してセキュリティゲートウェイ304に送信し、そのデータが、データパケットによって目標とされる特定のサービスデバイスに転送されることを要求する。セキュリティゲートウェイ304は、そのデータパケットを受信して、そのデータパケットを認証し、解読した後、パケットのデータ内容を、専用ネットワーク308を介して適切なサービスに送信される別のメッセージの中にカプセル化する。セキュリティゲートウェイ304は、データパケットによって目標とされる要求されたサービスに基づき、そのメッセージに適切なサービスを決定する。
【0162】
セキュリティゲートウェイ304とゲームコンソール302−1〜302−nの間で暗号化されたデータパケットが主に通信されるものとして本明細書では述べているが、別法では、一部のデータパケットは、部分的に暗号化されることが可能である(データパケットのある部分は暗号化され、他の部分は暗号化されない)。データパケットのどの部分が暗号化され、どの部分が暗号化されないかは、データセンタ110および/またはゲームコンソール302−1〜302−nの設計者の所望に基づいて異なる可能性がある。例えば、設計者は、コンソール302−1〜302−nのユーザが互いに話すことができるようにコンソール302−1〜302−n間で音声データが通信されるのを許すことを選択することができ、設計者は、パケットの中のあらゆる他のデータは暗号化されているが、音声データは暗号化されていないのを許すことをさらに選択することができる。さらに、または別の代案として、一部のデータパケットが、暗号化された部分を全く有さない(すなわち、データパケット全体が暗号化されていない)ことが可能である。データパケットが暗号化されていない、または部分的にだけ暗号化されている場合でも、そのデータパケットは、認証されることに留意されたい。
【0163】
同様に、データセンタ310内のサービスデバイスが、ゲームコンソール302−1〜302−nにデータを通信することを望むとき、データセンタは、ゲームコンソール302−1〜302−nに送信されるべきデータ内容、ならびにそのデータ内容が送信されるべき先の特定のゲームコンソール302−1〜302−nの指示を含むメッセージを、専用ネットワーク308を介してセキュリティゲートウェイ304に送信する。セキュリティゲートウェイ304は、データ内容をデータパケットに組み込み、次に、データパケットを暗号化して、その特定のゲームコンソール302−1〜302−nだけしか解読することができないようにし、また、セキュリティゲートウェイ304を送信元とするものとしてデータパケットを認証する。
【0164】
セキュリティゲートウェイ304の中の各セキュリティゲートウェイデバイスは、通常、1つまたは複数のゲームコンソール302−1〜302−nとのセキュアな通信チャネルに責任を負い、したがって、各セキュリティゲートウェイデバイスは、1つまたは複数のゲームコンソールを管理すること、または扱うことに責任を負っているものと見なすことができる。種々のセキュリティゲートウェイデバイスは、2つが互いに通信中で、3つ以上が互いにメッセージを通信することが可能である。例えば、自らが管理することに責任を負っていないゲームコンソールにデータパケットを送信する必要があるセキュリティゲートウェイデバイスは、そのゲームコンソールに送信されるべきデータを伴うメッセージをすべての他のセキュリティゲートウェイデバイスに送信することができる。このメッセージが、そのゲームコンソールを管理することに責任を負うセキュリティゲートウェイデバイスによって受信され、適切なデータをそのゲームコンソールに送信する。あるいは、セキュリティゲートウェイデバイスが、どのゲームコンソールがどのセキュリティゲートウェイデバイスによって扱われているかを認知していることが可能であり、この認知は、各セキュリティゲートウェイデバイスが、その他のセキュリティゲートウェイデバイスによって扱われるゲームコンソールのテーブルを維持しているなど、明示的であることが可能であり、あるいは、ゲームコンソールの識別子に基づき、どのセキュリティゲートウェイデバイスが、ある特定のゲームコンソールに責任を負うかを判定するなど、暗黙的であることが可能である。
【0165】
監視サーバ312は、データセンタ310内のデバイスに使用不可能なゲームコンソール302−1〜302−n、またはセキュリティゲートウェイ304の使用不可能なセキュリティゲートウェイデバイスについて知らせるように動作する。ゲームコンソール302−1〜302−nは、ハードウェアまたはソフトウェアの障害、コンソールが、データセンタ310からログアウトすることなしに電源遮断されたこと、コンソール302−1〜302−nに対するネットワーク接続ケーブルが、コンソール302−1〜302−nから接続解除されたこと、その他のネットワーク問題(例えば、コンソール302−1〜302−nが配置されているLANに動作不良が起きていること)などの様々な異なる理由で使用不可能になる可能性がある。同様に、セキュリティゲートウェイ304のセキュリティゲートウェイデバイスも、ハードウェアまたはソフトウェアの障害、デバイスが電源遮断されていること、デバイスに対するネットワーク接続ケーブルが、デバイスから接続解除されていること、その他のネットワーク問題などの様々な異なる理由で使用不可能になる可能性がある。
【0166】
セキュリティゲートウェイ304の中のセキュリティゲートウェイデバイスのそれぞれは、セキュリティゲートウェイデバイスのどれかが使用不可能になったときそれを検出する1つまたは複数の監視サーバ312によって監視される。あるセキュリティゲートウェイデバイスが利用不可になった場合、監視サーバ312は、データセンタ310内のその他のデバイスのそれぞれ(サーバ、フロントドア等)に、そのセキュリティゲートウェイデバイスをもはや使用不可能であるというメッセージを送信する。その他のデバイスのそれぞれは、この情報に基づき、適切と考えられる仕方で動作することができる(例えば、デバイスは、セキュリティゲートウェイデバイスによって管理されているその特定のゲームコンソールが、データセンタ310ともはや通信していないものと考え、それに応じて様々なクリーンアップ動作を行うことが可能である)。あるいは、あるデバイスだけ(例えば、セキュリティゲートウェイデバイスが応答可能であるかどうかに関心があるデバイスだけ)が、監視サーバ312からそのようなメッセージを受信することが可能である。
【0167】
セキュリティゲートウェイ304は、個々のゲームコンソール302−1〜302−nを監視し、ゲームコンソール302−1〜302−nのどれかが使用不可能になったときそれを検出する。セキュリティゲートウェイ304は、ゲームコンソールがもはや使用不可能であることを検出したとき、応答不可なゲームコンソールについてのメッセージを監視サーバ312に送信する。これに応答して、監視サーバ312は、データセンタ310内のその他のデバイスのそれぞれに(あるいは、選択されたデバイスだけに)、そのゲームコンソールがもはや使用不可能であるというメッセージを送信する。次に、その他のデバイスのそれぞれは、この情報に基づき、適切であると考えられる仕方で動作することができる。
【0168】
存在サーバ316が、オンラインゲームのためにデータセンタ310にログインした所与のユーザのステータスまたは存在に関するデータを維持し、処理する。通知サーバ318が、データセンタ310にログインしたプレーヤを宛先として発信されるメッセージの複数の待ち行列を維持する。存在−通知フロントドア314は、セキュリティゲートウェイ304とサーバ316および318の間の仲介役として動作する1つまたは複数のサーバデバイスである。1つまたは複数のロードバランシングデバイス(図示せず)が、フロントドア314として動作する複数のサーバデバイス間で負荷の平衡をとるように存在−通知フロントドア314内に含まれることが可能である。セキュリティゲートウェイ304は、サーバ316および318に向けられたメッセージをフロントドア314に通信し、フロントドア314は、サーバ316または318のどの特定のサーバにメッセージが通信されるべきかを特定する。フロントドア314を使用することにより、どちらのサーバが、どのユーザに関するデータを管理することに責任を負うかなどの、サーバ316および318の実際の実施が、セキュリティゲートウェイ304から抽出される。セキュリティゲートウェイ304は、単に、存在−通知サービスを目標とするメッセージを存在−通知フロントドア314に転送し、フロントドア314が、そのメッセージをサーバ316およびサーバ318の適切なものにルーティングすることに頼ることができる。
【0169】
マッチサーバ322が、オンラインプレーヤの互いとのマッチングに関するデータを維持し、処理する。オンラインユーザは、行われる用意のあるゲーム、ならびにゲームの様々な特性(例えば、フットボールゲームが行われる場所、ゲームが日中におこなわれるか、または夜に行われるか、ユーザの技能レベル等)を公示することができる。以上の様々な特性を基準として使用して、一緒にゲームを行うように様々なオンラインユーザを組み合わせることができる。マッチフロントドア320は、1つまたは複数のサーバデバイス(および、オプションとして、ロードバランシングデバイス)を含み、フロントドア314が、サーバ316およびサーバ318を抽出するのと同じ仕方で、セキュリティゲートウェイ304からマッチサーバ322を抽出するように動作する。
【0170】
統計サーバ326は、オンラインゲームに関する様々な統計に関するデータを維持し、処理する。使用される特定の統計は、ゲーム設計者の所望に基づき、様々である可能性がある(例えば、上位の第10位までのスコアまたは時間、ゲームのすべてのオンラインプレーヤに関する世界ランキング、最も多くのアイテムを見出した、または最も多くの時間をゲームをして過ごしたユーザのリスト)。統計フロントドア326は、1つまたは複数のサーバデバイス(および、オプションとして、ロードバランシングデバイス)を含み、フロントドア314が、サーバ316およびサーバ318を抽出するのと同じような仕方でセキュリティゲートウェイ304から統計サーバ326を抽出するように動作する。
【0171】
照会フロントドア330は、セキュリティゲートウェイ304と照会ソース104の間で仲介役として動作する1つまたは複数のサーバデバイスである。1つまたは複数のロードバランシングデバイス(図示せず)が、照会フロントドア330内に含まれて、フロントドア330として動作する複数のサーバデバイスの間で負荷の平衡をとることが可能である。照会ソース104は、ゲームタイトルに用意されているコンテンツに関する様々な情報を保持し、前述したとおり、ゲームコンソールによるそのコンテンツへのアクセスを管理する(例えば、コンテンツを取得することができる源のコンテンツソース106を特定して)。ゲームコンソール識別子、ユーザ識別子、およびゲームタイトルが、前述したとおり、セキュリティゲートウェイ304によって認証される。したがって、照会ソースは、ゲームコンソール、ゲームコンソールユーザ、および/またはゲームタイトルを特定するコンテンツ要求を受け取ったとき、その要求の中で示されるゲームコンソール、ユーザ識別子、および/またはゲームタイトルが、実際に、セキュリティゲートウェイ304によって認証されているゲームコンソール、ユーザ識別子、および/またはゲームタイトルであるかどうかについて、セキュリティゲートウェイ304にクエリを行うことができる。
【0172】
したがって、セキュリティゲートウェイ304が、信頼されない公衆ネットワーク306から、データセンタ310のセキュアゾーン内にデバイスを遮蔽するように動作するのを見て取ることができる。データセンタ310内の通信は、データセンタ310内のすべてのデバイスが信頼されるものであるので、暗号化される必要がない。しかし、データセンタ310内のデバイスからゲームコンソール302−1〜302−nに通信されるあらゆる情報は、セキュリティゲートウェイ304のクラスタを通過し、その情報によって目標とされるゲームコンソール302−1〜302−nだけが解読できるような仕方で暗号化される。
【0173】
以上に述べたことから、コンテンツソースの場所、およびコンテンツパッケージに関する暗号鍵をセキュリティ確保されたチャネルを介して配信することができ、したがって、コンテンツソース自体のセキュリティ確保を行わなくてもよいことを見て取ることができる。例えば、ゲームコンソールが、前述したセキュアな通信チャネルを介して照会ソースと対話して、コンテンツ場所および暗号鍵を獲得する。その後、ゲームコンソールは、コンテンツソースに対してセキュリティ確保されていない接続(例えば、インターネットを介する)を開始して要求のコンテンツをダウンロードする。コンテンツパッケージは、暗号化され、認証されているので、許可されていない、または不正変更されているあらゆるコンテンツパッケージは、ゲームコンソールによって検出され、拒否される。
【0174】
図6は、本明細書で説明する技術を実施するのに使用することができる一般的なコンピュータ環境400を示している。コンピュータ環境400は、コンピューティング環境の一例に過ぎず、コンピュータアーキテクチャおよびネットワークアーキテクチャの使用または機能の範囲に関する何らかの限定を示唆するものではない。また、コンピュータ環境400が、例示的なコンピュータ環境400に図示した構成要素のいずれか1つ、または組合せに関連する何らかの依存性または要件を有するものと解釈すべきでもない。
【0175】
コンピュータ環境400は、コンピュータ402の形態で汎用コンピューティングデバイスを含む。コンピュータ402は、例えば、図1の照会ソース104(または照会ソース104におけるサーバ)または106のコンテンツソース、または図5のサーバ312、316、318、322、および/または326、または図5のフロントドア314、320、324、および/または330であることが可能である。コンピュータ402の構成要素には、1つまたは複数のプロセッサまたはプロセッサ404(オプションとして、暗号プロセッサまたは暗号コプロセッサを含む)、システムメモリ406、ならびにプロセッサ404からシステムメモリ406までを含む様々なシステム構成要素を結合するシステムバス408が含まれることが可能であるが、以上には限定されない。
【0176】
システムバス408は、様々なバスアーキテクチャの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート(accelerated graphics port)、およびプロセッサバスまたはローカルバスを含むいくつかのタイプのバス構造の任意のものの1つまたは複数を表す。例として、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(Industry Standard Architecture)(ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture)(MCA)バス、エンハンストISA(Enhanced ISA)(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(Video Electronics Standards Association)(VESA)ローカルバス、およびメザニン(Mezzanine)バスとしても知られるペリフェラルコンポーネントインターコネクツ(Peripheral Component Interconnects)(PCI)バスが含まれることが可能である。
【0177】
コンピュータ402は、通常、様々なコンピュータ可読媒体を含む。この媒体は、コンピュータ402によってアクセス可能な任意の利用可能な媒体であることが可能であり、揮発性の媒体と不揮発性の媒体、取外し可能な媒体と取外し不可能な媒体がともに含まれる。
【0178】
システムメモリ406は、ランダムアクセスメモリ(RAM)410などの揮発性メモリ、および/または読取り専用メモリ(ROM)412などの不揮発性メモリの形態でコンピュータ可読媒体を含む。始動中など、コンピュータ402内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力/出力システム(BIOS)414が、ROM412の中に記憶される。RAM410は、通常、プロセッサ404が即時にアクセスすることができ、かつ/または現在、演算を行っているデータ、および/またはプログラムモジュールを含む。
【0179】
また、コンピュータ402は、その他の取外し可能な/取外し不可能な、揮発性/不揮発性のコンピュータ記憶媒体も含む。例として、図7が、取外し不可能な不揮発性の磁気媒体(図示せず)に対して読取りおよび書込みを行うためのハードディスクドライブ416、取外し可能な不揮発性の磁気ディスク420(例えば、「フロッピー(登録商標)ディスク」)に対して読取りおよび書込みを行うための磁気ディスクドライブ418、およびCD(compact disc [disk])−ROM、DVD(digital versatile disk)−ROM、またはその他の光媒体などの取外し可能な不揮発性の光ディスク424に対して読取りおよび/または書込みを行うための光ディスクドライブ422を示している。ハードディスクドライブ416、磁気ディスクドライブ418、および光ディスクドライブ422はそれぞれ、1つまたは複数のデータ媒体インタフェース425でシステムバス408に接続される。あるいは、ハードディスクドライブ416、磁気ディスクドライブ418、および光ディスクドライブ422は、1つまたは複数のインタフェース(図示せず)でシステムバス408に接続することも可能である。
【0180】
以上のディスクドライブおよび関連するコンピュータ可読媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストーレッジがコンピュータ402に提供される。この例は、ハードディスク416、取外し可能な磁気ディスク420、および取外し可能な光ディスク424を示しているが、磁気カセットまたはその他の磁気記憶デバイス、フラッシュメモリカード、CD−ROM、デジタルバーサタイルディスク(DVD)またはその他の光ストーレッジ、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、EEPROM(electrically erasable programmable read−only memory)などの、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体を利用して例示的なコンピューティングシステムおよびコンピューティング環境を実施することも可能であることを理解されたい。
【0181】
例として、オペレーティングシステム426a、426b、1つまたは複数のアプリケーションプログラム428a、428b、その他のプログラムモジュール430a、430b、およびプログラムデータ432a、432bを含む任意の数のプログラムモジュールをハードディスク416、磁気ディスク420、光ディスク424、ROM412、および/またはRAM410に記憶することができる。そのようなオペレーティングシステム426a、426b、1つまたは複数のアプリケーションプログラム428a、428b、その他のプログラムモジュール430a、430b、およびプログラムデータ432a、432bのそれぞれが(または何らかの組合せが)、分散されたファイルシステムをサポートする常駐の構成要素のすべて、または一部を実施することができる。
【0182】
ユーザは、キーボード434やポインティングデバイス436(例えば、「マウス」)などの入力デバイスを介してコマンドおよび情報をコンピュータ402に入力することができる。その他の入力デバイス438(特に示さず)には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、シリアルポート、スキャナ、および/または以上に類するものが含まれることが可能である。以上の入力デバイス、およびその他の入力デバイスは、システムバス408に結合された入力/出力インタフェース440を介してプロセッサ404に接続されているが、パラレルポート、ゲームポート、またはUSB(universal serial bus)などのその他のインタフェースおよびバス構造で接続してもよい。
【0183】
また、モニタ442、またはその他のタイプの表示デバイスも、ビデオアダプタ444などのインタフェースを介してシステムバス408に接続することができる。モニタ442に加え、その他の出力周辺デバイスには、入力/出力インタフェース440を介してコンピュータ402に接続することができるスピーカ(図示せず)やプリンタ446などの構成要素が含まれることが可能である。
【0184】
コンピュータ402は、リモートコンピューティングデバイスコンピューティングデバイス448などの1つまたは複数のリモートコンピュータに対する論理接続を使用するネットワーク化された環境において動作することが可能である。例として、リモートコンピューティングデバイス448は、パーソナルコンピュータ、可搬コンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたはその他の一般的なネットワークノード、ゲームコンソール等であることが可能である。リモートコンピューティングデバイス448は、コンピュータ402に関連して本明細書で説明した要素および特徴の多く、またはすべてを含むことが可能な可搬コンピュータとして示されている。
【0185】
コンピュータ402とリモートコンピュータ448の間の論理接続は、ローカルエリアネットワーク(LAN)450、および一般的なワイドエリアネットワーク(WAN)452として描かれている。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットにおいて一般的である。
【0186】
LANネットワーキング環境において実施されるとき、コンピュータ402は、ネットワークインタフェースまたはネットワークアダプタ454を介してローカルネットワーク450に接続される。WANネットワーキング環境において実施されるとき、コンピュータ402は、通常、ワイドネットワーク452を介して通信を確立するためのモデム456、またはその他の手段を含む。コンピュータ402の内部にあることも、外部にあることも可能なモデム456は、入力/出力インタフェース440、またはその他の適切な機構を介してシステムバス408に接続することができる。図示したネットワーク接続は、例示的なものであり、コンピュータ402と448の間で通信リンクを確立する他の手段も使用できることを理解されたい。
【0187】
コンピューティング環境400で例示するようなネットワーク化された環境では、コンピュータ402に関連して描いたプログラムモジュール、またはプログラムモジュールの部分が、リモートメモリ記憶デバイスの中に記憶されることが可能である。例として、リモートアプリケーションプログラム458が、リモートコンピュータ448のメモリデバイス上に常駐する。例示のため、オペレーティングシステムなどのアプリケーションプログラムおよびその他の実行可能プログラム構成要素は、本明細書では別々のブロックとして示されているが、そのようなプログラムおよび構成要素は、様々な時点で、コンピューティングデバイス402の異なる記憶構成要素の中に存在し、コンピュータのデータプロセッサによって実行されることが認識されている。
【0188】
本明細書では、様々なモジュールおよび技術は、1つまたは複数のコンピュータまたは他のデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。通常、プログラムモジュールの機能は、様々な実施形態において、所望に応じて結合する、または分散させることが可能である。
【0189】
以上のモジュールおよび技術の実施を何らかの形態のコンピュータ可読媒体に記憶する、またはコンピュータ可読媒体を介して伝送することが可能である。コンピュータ可読媒体は、コンピュータがアクセスすることができる任意の利用可能な媒体であることが可能である。例として、限定としてではなく、コンピュータ可読媒体は、「コンピュータ記憶媒体」および「通信媒体」を含むことが可能である。
【0190】
「コンピュータ記憶媒体」には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実装された揮発性の媒体および不揮発性の媒体、取外し可能な媒体および取外し不可能な媒体が含まれる。コンピュータ記憶媒体には、限定するものとしてではなく、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)またはその他の光ストーレッジ、磁気カセット、磁気テープ、磁気ディスクストーレッジまたはその他の磁気記憶デバイス、あるいは所望の情報を記憶するのに使用することができ、コンピュータがアクセスすることができる任意の他の媒体が含まれる。
【0191】
「通信媒体」は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波またはその他のトランスポート機構などの変調されたデータ信号として実現する。また、通信媒体には、あらゆる情報デリバリ媒体が含まれる。「変調されたデータ信号」という用語は、情報を信号の中に符号化するような仕方で特定の1つまたは複数が設定されている、または変更されている信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線ネットワークなどの有線媒体、および音響媒体、RF(radio frequencies)媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。以上の媒体の任意のものの組合せも、コンピュータ可読媒体の範囲に含まれる。
【0192】
図7は、例示的なゲームコンソール102の機能構成要素をより詳細に示している。ゲームコンソール102は、中央処理装置(CPU)500、ならびにフラッシュROM(読取り専用メモリ)504、RAM(ランダムアクセスメモリ)506、ハードディスクドライブ508、およびポータブルメディアドライブ509を含む様々なタイプのメモリに対するプロセッサアクセスを円滑にするメモリコントローラ502を有する。CPU500は、データを一時的に記憶し、したがって、メモリアクセスサイクルの回数を減らすレベル1キャッシュ510およびレベル2キャッシュ512を備え、これにより、処理速度およびスループットが向上する。
【0193】
CPU500、メモリコントローラ502、および様々なメモリデバイスは、様々なバスアーキテクチャの任意のものを使用するシリアルバスおよびパラレルバス、メモリバス、周辺バス、およびプロセッサバスまたはローカルバスを含む1つまたは複数のバスを介して互いに接続される。例として、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、およびメザニンバスとしても知られるペリフェラルコンポーネントインターコネクツ(PCI)バスが含まれることが可能である。
【0194】
1つの適切な実施として、CPU500、メモリコントローラ502、ROM504、およびRAM506が、共通モジュール514上に統合される。この実施では、ROM504は、PCI(ペリフェラルコンポーネントインターコネクツ)バスおよびROMバス(どちらも図示せず)を介してメモリコントローラ502に接続されたフラッシュROMとして構成される。RAM506は、別個のバス(図示せず)を介してメモリコントローラ502によって独立に制御される複数のDDR SDRAM(Double Data Rate Synchronous Dynamic RAM)として構成される。ハードディスクドライブ508およびポータブルメディアドライブ509は、PCIバスおよびATA(ATアタッチメント)バス516を介してメモリコントローラに接続される。
【0195】
3Dグラフィックスプロセッサ520およびビデオエンコーダ522が、高速かつ高解像度のグラフィックス処理のためのビデオ処理パイプラインを形成する。データは、デジタルビデオバス(図示せず)を介してグラフィックスプロセッサ520からビデオエンコーダ522に搬送される。オーディオプロセッサ524およびオーディオコーデック(エンコーダ/復号器)526が、高忠実度、かつステレオの処理を備えた対応するオーディオ処理パイプラインを形成する。オーディオデータは、通信リンク(図示せず)を介してオーディオプロセッサ524とオーディオコーデック526の間で搬送される。ビデオ処理パイプラインおよびオーディオ処理パイプラインは、テレビジョンまたはその他のディスプレイに伝送するためにデータをA/V(オーディオ/ビデオ)ポート528に出力する。図示した実施形態では、ビデオ処理構成要素およびオーディオ処理構成要素520〜528は、モジュール514上に実装される。
【0196】
やはりモジュール514上に実装されるのが、USBホストコントローラ530およびネットワークインタフェース532である。USBホストコントローラ530は、バス(例えば、PCIバス)を介してCPU500およびメモリコントローラ502に結合され、周辺コントローラ536−1〜536−4に対するホストの役割をする。ネットワークインタフェース232は、ネットワーク(例えば、インターネット、ホームネットワーク等)に対するアクセスを提供し、イーサネット(登録商標)カード、モデム、ブルートゥース(登録商標)モジュール、ケーブルモデム等を含む多種多様な有線または無線のインタフェース構成要素の任意のものであることが可能である。
【0197】
ゲームコンソール102は、2つのゲームコントローラ536−1〜536−4)をそれぞれがサポートする2つのデュアルコントローラサポートサブアセンブリ540−1および540−2を有する。フロントパネルI/Oサブアセンブリ542が、電源ボタン531および媒体ドライブ取出しボタン533の機能、ならびにゲームコンソールの外面上に露出したあらゆるLED(発光ダイオード)またはその他のインディケータをサポートする。サブアセンブリ540−1、540−2、および542は、1つまたは複数のケーブルアセンブリ544を介してモジュール514に結合される。
【0198】
8つのメモリユニット534−1〜534−8が、4つのコントローラ536−1〜536−4に、すなわち、各コントローラに対して2つのメモリユニットが、接続可能であるものとして示されている。各メモリユニット534は、ゲーム、ゲームパラメータ、およびその他のデータを記憶することができるさらなるストーレッジを提供する。コントローラに挿入されたとき、メモリユニット534−1〜534−8は、そのメモリコントローラ502によってアクセスされることが可能である。
【0199】
システム電源モジュール550が、ゲームコンソール102の構成要素に電力を供給する。ファン552が、ゲームコンソール102内部の回路を冷却する。
【0200】
コンソールユーザインタフェース(UI)アプリケーション560が、ハードディスクドライブ508に記憶される。ゲームコンソールに電源が投入されたとき、コンソールアプリケーション560の様々な部分が、RAM506および/またはキャッシュ510、512にロードされ、CPU500上で実行される。コンソールアプリケーション560は、ゲームコンソール上で利用可能な異なる媒体タイプにナビゲートする際に、整合性を有するユーザ体験を提供するグラフィカルユーザインタフェースを提示する。
【0201】
ゲームコンソール102は、暗号化、解読、認証、デジタル署名、ハッシングなどの一般的な暗号機能を行う暗号エンジンを実装する。暗号エンジンは、CPU500の一部として、またはCPU上で実行されるハードディスクドライブ508に記憶されたソフトウェアとして実装され、したがって、CPUが、暗号化機能を行うように構成されることが可能である。あるいは、暗号機能を行うように設計された暗号プロセッサまたは暗号コプロセッサが、ゲームコンソール102内に含まれることが可能である。
【0202】
ゲームコンソール102は、単にシステムをテレビジョンまたはその他のディスプレイに接続することにより、独立型システムとして動作させることが可能である。この独立型モードでは、ゲームコンソール102により、1名または複数名のプレーヤが、ゲームを行うこと、映画を観ること、または音楽を聴くことが可能になる。ただし、ネットワークインタフェース532を介して利用可能になるブロードバンド接続が統合されることで、ゲームコンソール102を、さらに、前述したとおり、オンラインゲームの参加者として動作させることが可能である。
【0203】
また、以下に、米国特許出願10/170,002号の内容を説明する。
【0204】
以下の解説は、ネットワーク化されたデバイスに関する相互認証を使用したセキュアな鍵交換メカニズムを対象とするものである。この解説では、読者が暗号化、解読、認証、ハッシング、およびデジタル署名などの基本的な暗号法に精通しているものと想定される。
【0205】
図8は、相互認証を使用したセキュアな鍵交換が使用可能な例示的環境9100を示す構成図である。クライアント装置9102は、鍵配布センタ9104およびサーバ装置9106に結合される。デバイス9102と鍵配布センタ9104との結合は、デバイス9102とセンタ9104との間の通信を可能にする任意の様々な結合が可能である。同様に、デバイス9102と9106の間の結合も、デバイス9102とデバイス9106との間の通信を可能にする任意の様々な結合が可能である。一実施では、結合はインターネットを含み、任意選択として1つまたは複数の他のネットワーク(たとえばローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN))を含むこともできる。
【0206】
図8には単一のクライアント装置9102、単一のセンタ9104、および単一のサーバ装置9106が示されているが、環境9100はこうしたデバイスおよびセンタを複数含むことができる。たとえば、複数のクライアント装置9102が、1つまたは複数の鍵配布センタ9104および1つまたは複数のサーバ装置と通信することができる。
【0207】
クライアント装置9102とサーバ装置9106との間の通信、ならびにクライアント装置9102と鍵配布センタ9104との間の通信は、任意の様々な異なるパケット形式が可能である。一実施例では、通信はユーザデータグラムプロトコル(UDP/User Datagram Protocol)形式である。
【0208】
鍵配布センタ9104は鍵およびセキュリティチケットをクライアント装置9102に配布し、これをサーバ装置9106とのセキュアな鍵交換で使用することができる。サーバ装置9106はクライアント装置9102にサービスを提供するか、またはクライアント装置9102にサービスを提供する他のデバイス(図8には図示せず)へのゲートウェイとして動作する。
【0209】
クライアント装置9102は、任意の多種多様なデバイスであってよい。本明細書の解説の中には、クライアント装置9102をゲームコンソールと呼ぶものもある。こうしたゲームコンソールは、専用ゲームコンソールであるかまたは追加の機能を含むものであってよい。たとえばゲームコンソールは、デジタルVCRとして動作できるようにデジタルビデオレコーディング機能を含むこと、テレビジョン信号(同報通信信号、ケーブル信号、衛星放送信号などのいずれか)を同調およびデコードできるようにチャネル同調機能を含むこと、などが可能である。クライアント装置9102は、デスクトップPC、ポータブルコンピュータ、セルラー式電話、インターネット機器、サーバコンピュータなどの、他のタイプのコンピュータデバイスであってもよい。
【0210】
環境9100では、クライアント装置9102とサーバ装置9106との間の相互認証を使用したセキュアな鍵交換が望ましい。これにより、デバイス9102および9106が互いに認証し合うことが可能になり、さらに1つまたは複数の暗号鍵を確立し、セキュアでないネットワーク(たとえばインターネット)を介して相互にセキュアに通信するためにデバイス9102および9106の基礎として使用することが可能になる。
【0211】
相互認証を使用したセキュアな鍵交換を実行するために、鍵配布センタ9104からセキュリティチケットが取得される。一実施例では、セキュリティチケットは、単一チケットで、特定のクライアント装置9102の識別およびクライアント装置9102の1つまたは複数のユーザのユーザ識別を認証する、ケルベロスのような認証プロトコルを使用して、クライアント装置9102によって取得されるケルベロスチケットである。クライアント装置9102は、ケルベロスチケットを以下のように取得する。
【0212】
解説上、クライアント装置9102はゲームコンソールであると想定し、さらに4人のゲームコンソールユーザがいると想定する。それぞれのユーザには識別U、U、U、およびUが与えられ、ユーザ鍵K、K、K、およびKが割り当てられる。ゲームコンソールには、それ自体の識別Cおよびゲームコンソール鍵Kも割り当てられる。さらに、ゲームディスクなどのゲームコンソール上でプレイされるゲームタイトルには、別の識別Gが割り当てられる。同様の方法で、サーバ装置9106にはそれ自体の識別Aおよび鍵Kが割り当てられる。本明細書に記載された認証は、ある程度、鍵K、K、K、およびK、K、ならびに鍵Kに依存するものであることに留意されたい。したがって、これらの鍵を選択および格納する際には、それらの鍵を割り当てられたエンティティのみがそれらを使用できることに注意を払わなければならない。
【0213】
ゲームコンソールは、ユーザ識別U、U、U、およびUならびにユーザ鍵K、K、K、およびKに基づいて、検証されたユーザ識別を生成する。より具体的に言えば、検証されたユーザ識別には、ユーザ鍵から導出されたユーザ識別および値が含まれる。検証されたユーザ識別は要求と共に鍵配布センタ9104にサブミットされ、ゲームコンソールがユーザ鍵の知識を持っていることを、鍵配布センタに実証するために使用され、暗黙的にユーザを認証する。
【0214】
様々なメッセージおよび鍵が算出される方法を簡単に説明するために、次の表記法を導入する。
【0215】
H=HKx(M):Hとは、鍵Kを使用するメッセージMの鍵付き一方向ハッシュ(MAC)である。どんなMACアルゴリズムも使用できる。こうしたMACアルゴリズムの一例が、IETF RFC29104に従ったHMACアルゴリズムである。
【0216】
EncryptedM=EKx(M):EncryptedMとは、鍵Kを使用するメッセージMの暗号化形式である。どんな暗号化アルゴリズムも使用できる。こうした暗号化アルゴリズムの例に、DES、トリプルDES、およびRC4−HMACが含まれる。
【0217】
鍵導出値を生成する方法の1つが、ゲームコンソールの鍵を使用して、ユーザ鍵の暗号ハッシュを算出することである。鍵Kを持つユーザUの場合、ハッシュHは次のように算出される。
=HKc(K
【0218】
ハッシュHが鍵導出値を形成する。他の方法は、ユーザ鍵Kを使用して次のように現在時刻を暗号化することである。
=EK1(T)
【0219】
結果として生じる値Hが、鍵導出値を再度形成する。検証されたユーザ識別は、次のように、ユーザ識別Uおよび対応する鍵導出値Hの組合せである。
検証されたユーザ識別=(U,H
【0220】
ゲームコンソールは、ゲームコンソール識別C、ゲームタイトル識別G、サーバ装置9106のサーバ識別A、ならびに複数の検証されたユーザ識別(U,H)、(U,H)、(U,H)、および(U,H)を含む要求を構築する。要求は、次のような識別文字列を有する。
要求=[C,G,A,(U,H),(U,H),(U,H),(U,H)]
【0221】
さらに要求は、あるバージョンの認証プロトコル、およびゲームコンソールによって生成されるランダムナンス(nonce)を含みリプレイ攻撃を阻止することができる。要求は、識別文字列全体の受取りを検証するために使用される、チェックサム値も含むことができる。ゲームコンソールは、鍵配布センタ9104への結合を介して要求をサブミットする。
【0222】
鍵配布センタ9104は、要求ならびに要求に含まれる識別を評価する。鍵配布センタ9104は、サーバ装置9106用に使用されるランダムセッション鍵を生成する。この例では、鍵配布センタは、ゲームコンソール9102がサーバ装置9106と通信しながら使用するためのランダムセッション鍵KCAを生成する。本明細書ではこのランダムセッション鍵KCAをケルベロスセッション鍵とも呼ぶ。
【0223】
鍵配布センタがチケットを生成し、その後そのチケットがゲームコンソールによってサーバ装置9106に提示されることになる。サーバ装置9106向けに発行されるチケットは1つであるが、このチケットは複数のユーザに対して有効である。チケットには、要求で提出された識別文字列が含まれる。さらに、チケットが生成された時間T、チケットが満了するまでの時間長さを識別する時間T、およびサーバ装置9106向けにランダムに生成されたケルベロスセッション鍵KCAも含まれる。チケットは、任意選択で、ゲームコンソールのユーザがアクセスを許可されているサーバ装置9106を介して使用可能なサービスおよび/またはサービスデバイスを識別する、サービスマップSを含むこともできる。鍵配布センタは、どのユーザがどのサービスへのアクセスを許可されているか(たとえばどのユーザが、1つまたは複数の割増料金(premium)サービスにアクセスするための割増料金を払ったか)についての記録を維持するか、あるいは記録を維持する他のデバイスまたはセンタにアクセスする。チケットの内容は、サーバ装置の鍵Kを以下のように使用する対称鍵暗号(たとえばトリプルDES)を介して暗号化される。
【0224】
【数5】
Figure 2004056793
【0225】
チケットは対応する鍵導出値Hを搬送するものでないことに留意されたい。鍵配布センタが鍵導出値を読み取り、ゲームコンソールがユーザ鍵を認識していると確信すると、鍵配布センタはユーザの識別を発行済のチケット内に配置する。その後サーバ装置9106はチケットが伝えるすべての内容を信頼することになるため、鍵導出値Hを確認する必要はない。
【0226】
鍵配布センタは、生成されたチケットをゲームコンソールに返す。ゲームコンソールはサーバ装置の鍵Kを知らないため、ゲームコンソールがチケットを開いて内容を変更することはできない。鍵配布センタは、添付の暗号化メッセージでセッションセキュリティ鍵も返す。セッション鍵メッセージには、チケット生成時間T、チケット満了長さT、およびセッションセキュリティ鍵KCAが含まれ、すべての内容は以下のようにゲームコンソールの鍵Kを使用して暗号化される。
【0227】
Session Key Message=EKC[T,T,KCA]セッション鍵メッセージはゲームコンソールの鍵Kで暗号化されるため、ゲームコンソールはセッション鍵メッセージを開いて、セッション時間パラメータおよびセッション鍵を回復することができる。
【0228】
さらに図8を参照すると、いったんクライアント装置9102(たとえばゲームコンソール)が鍵配布センタ9104からチケットを受け取ると、クライアント装置9102はこのチケットを使用してサーバ装置9106との相互認証を使用したセキュア鍵交換を実行することができる。相互認証を使用したセキュア鍵交換は、クライアント装置9102およびサーバ装置9106にお互いを認証させることが可能であり、すなわちクライアント装置9102はサーバ装置9106が自分の要求するサーバ装置であることを検証可能であり、サーバ装置9106はクライアント装置9102が自分の要求するクライアント装置であることを検証可能である。さらにデバイス9102および9106は、他方が特定鍵の知識を有することを検証可能である。
【0229】
鍵交換により、2つのデバイス9102および9106が、これら2つのデバイス間で共用されるが2つのデバイス間で伝送されることはなく、第三者(たとえばデバイス9102および9106と同じネットワーク上にある他のデバイス)がデバイス間の往復するトラフィックに基づいて推定することのできない新しい秘密を、導出できるようにすることも可能である。一実施例では、2つのデバイスは新しい秘密を導出するためにディフィ−ヘルマン指数演算(Diffie−Hellman exponentiation operation)を使用する。ディフィ−ヘルマンに関するさらなる情報は、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に見ることができる。デバイス9102と9106との間の通信は、通信を暗号化することによって保護可能であるか、あるいは暗号化なしに実行することができる。
【0230】
図9は、クライアント装置とサーバ装置との間で相互認証を使用してセキュアな鍵交換を実行するための、例示的なプロセス10150を示すフローチャートである。図9のプロセスは、図9の左側に示されたクライアント装置によって実行されるオペレーションと、図9の右側に示されたサーバ装置によって実行されるオペレーションにより、クライアント装置とサーバ装置の両方によって実施される。図9のプロセスは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図9のプロセスは、図8の構成要素を参照して論じられる。さらにプロセスは、クライアント装置とサーバ装置との間のプロセスとして示されているが、互いの間にセキュアな通信チャネルを確立することが望ましい任意の2つのデバイスによって実行することもできる(たとえば、プロセスは2つのクライアント装置または2つのサーバ装置によって実行することができる)。
【0231】
初めに、クライアント装置9102は鍵交換イニシエータパケットを生成し、このパケットをサーバ装置9106に送信する(動作10152)。サーバ装置9106は鍵交換イニシエータパケットを受け取り、受け取ったパケットの妥当性を検査する(動作10154)。パケットの妥当性が検査されると、サーバ装置9106は、クライアント装置9102との通信をセキュアにするために使用される暗号鍵を生成する(動作10156)。一実施例では、これらの暗号鍵は、2つのデバイス間で2地点間通信をセキュアにするために使用されるセキュリティアソシエーション(security association)鍵である。
【0232】
次いでサーバ装置9106は鍵交換応答パケットを生成し、生成されたパケットをクライアント装置9102に送信する(動作10158)。クライアント装置9102は鍵交換応答パケットを受け取り、受け取ったパケットの妥当性を検査する(動作10160)。パケットの妥当性が検査されると、クライアント装置9102は、サーバ装置9106との通信をセキュアにするために使用される暗号鍵を生成する(動作10162)。暗号鍵は、動作10156でサーバ装置9106によって生成されたものと同じである。したがって、クライアント装置9102とサーバ装置9106はどちらも同じ暗号鍵で終わるが、それらの間で実際に鍵を伝送しなくても終わる。
【0233】
プロセス10150は、パーフェクトフォワードシークレシ(secrecy)を維持することに留意されたい。パーフェクトフォワードシークレシとは、たとえ第三者に以前の秘密の知識がある可能性があっても、その第三者は新しい秘密を推定できないことを言う。したがって、たとえば第三者(たとえば他のデバイス)がセッション鍵、またはクライアント装置9102とサーバ装置9106との間で以前に確立された鍵を発見しても、その第三者はセキュアな鍵交換プロセス10150から生成される新しい鍵を推定できないことになる。これは、たとえば第三者に、プロセス10150で使用されるDiffie−Hellman値(以下でより詳細に論じる)の知識がないためである。
【0234】
さらに、クライアント装置9102とサーバ装置9106との間では、2つのパケット、すなわち鍵交換イニシエータパケットおよび鍵交換応答パケットだけを通信すればよいことがわかる。したがって、相互認証を使用したセキュアな鍵交換を実行するために必要となるのは、単一の往復(クライアント装置9102からサーバ装置9106へのパケット、およびサーバ装置9106からクライアント装置9102への戻りパケット)のみである。この単一の往復は、使用されるパケット数を減らすことによって、待ち時間を減らし、鍵の確立およびデバイスの相互認証において帯域幅オーバヘッドを減らす働きをする。
【0235】
プロセス10150について、図10〜13を参照しながら以下でより詳細に論じる。図10は動作10152をより詳細に示し、図11は動作10154をより詳細に示し、図12は動作10156および10158をより詳細に示し、図13は動作10160および10162をより詳細に示す。
【0236】
図10は、鍵交換イニシエータパケットを生成および送信するための、例示的なプロセス11200を示すフローチャートである。図10は、図9の動作10152をより詳細に示す図である。図10のプロセスはクライアント装置によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図10のプロセスは、図8の構成要素を参照して論じられる。
【0237】
初めに、クライアント装置9102が鍵交換イニシエータメッセージを生成する(動作11202)。鍵交換イニシエータメッセージは、以下のように、NonceInitと呼ばれるクライアント装置9102によって生成されるランダム(または擬似ランダム)値を含み、さらにDiffie−Hellman(g mod N)値も含み、この式のXもクライアント装置9102によって生成されるランダム(または擬似ランダム)値であって、さらに鍵交換プロセスが完了するとこのクライアント/サーバ通信チャネルを一意に定義する際に使用されることになる、セキュリティパラメータインデックス値(SPI)も含む。InitMess=[NonceInit,SPI,(g mod N)]
【0238】
次いでクライアント装置9102は、鍵配布センタ9104から受け取ったケルベロスセッション鍵KCAを使用して、鍵交換イニシエータメッセージのダイジェストを算出する(動作11204)。ダイジェストは以下のように生成される。
【0239】
【数6】
Figure 2004056793
【0240】
あるいは、HashInitMessのコンピューティングで、総称的一方向ハッシュ(鍵付きではない)を使用することもできる。鍵交換のセキュリティは、このハッシュが鍵付きであるか否かに依拠しない。
【0241】
次いでクライアント装置9102は、ケルベロス認証符号(authenticator)を生成する(動作11206)。ケルベロス認証符号は、タイムスタンプ(たとえばクライアント装置9102の現在時刻)と、動作11204で算出されたHashInitMessダイジェストを含む。タイムスタンプは、クライアント装置9102がケルベロス認証符号を生成するごとにクライアント装置9102によって増分され、これにより、サーバ装置9106にリプレイ攻撃をより良く検出させることができる。クライアント装置9102は、以下のように、ケルベロスセッション鍵KCAを使用してケルベロス認証符号を暗号化する(動作11208)。
【0242】
【数7】
Figure 2004056793
【0243】
次いでクライアント装置9102は、鍵交換イニシエータパケットを生成する(動作11210)。鍵交換イニシエータパケットは、鍵交換イニシエータメッセージInitMess、暗号化されたケルベロス認証符号Auth、および鍵配布センタ9104から受け取ったサーバ装置9106用のケルベロスチケットを含む。前述のように、ケルベロスチケットは、少なくともケルベロスセッション鍵(KCA)、チケットが有効な期間、およびクライアント装置9102を識別する一意の番号を含み、これらはすべて、鍵配布センタ9104およびサーバ装置9106が共用する秘密鍵を使用して暗号化される。SPI値は、クライアント装置9102とサーバ装置9106との間のセキュリティアソシエーションまたは通信チャネルを識別する。SPI値はサーバ装置9106からクライアント装置9102への通信に関連付けられ、SPI値はクライアント装置9102からサーバ装置9106への通信に関連付けられる。したがって、鍵交換イニシエータパケットは以下のようになる。
【0244】
InitPacket=[InitMess,Auth,Ticket]
認証符号とチケットの組合せは、ケルベロス用語でAP Requestと呼ばれることに留意されたい。次いでクライアント装置9102は、鍵交換イニシエータパケットをサーバ装置9106に送信する(動作11212)。
【0245】
図11は、鍵交換イニシエータパケットを受信および妥当性を検査するための、例示的なプロセス12250を示すフローチャートである。図11は、図9の動作10154をより詳細に示す図である。図11のプロセスはサーバ装置によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図11のプロセスは、図8の構成要素を参照して論じられる。
【0246】
初めに、サーバ装置9106は鍵交換イニシエータパケットInitPacketを受信する(動作12252)。一実施では、サーバ装置9106はすべての鍵交換イニシエータパケットが所定の形式および所定のサイズであることを予測する。サーバ装置9106は、この所定の形式および所定のサイズに当てはまらないいずれの鍵交換イニシエータパケットも無視する。あるいは、サーバ装置9106は、様々な形式および/または様々なサイズの鍵交換イニシエータパケットを可能にすることができる。
【0247】
いったん鍵交換イニシエータパケットが受信されると、サーバ装置9106は、サーバ装置9106が鍵配布センタ9104と共用する鍵を使用して、ケルベロスチケットを解読する(動作12254)。次いでサーバ装置9106は、解読されたチケットをチェックして、チケットが失効(stale)していないかどうかを判別する(動作12256)。現在時刻が(チケットで識別された)チケットの有効な期間内に含まれる場合、チケットは失効していない。ただし、現在時刻がチケットの有効な期間内に含まれない場合、チケットは失効している。ケルベロスチケットが失効している場合、鍵交換プロセスは失敗し(動作12258)、その結果、クライアント装置9102とサーバ装置9106との間にセキュリティアソシエーションは確立されない。動作12258の一部として、サーバ装置9106は、鍵交換プロセスが失敗したことをクライアント装置9102に通知するか、あるいはサーバ装置9106は、受信したInitPacketを削除するだけでクライアント装置9102に通知しないことができる。
【0248】
ただし、ケルベロスチケットが失効していない場合、サーバ装置9106は、解読されたケルベロスチケットから回復されたケルベロスセッション鍵KCAを使用して、ケルベロス認証符号Authを解読する(動作12260)。次いでサーバ装置9106は、ケルベロス認証符号中のタイムスタンプTimeにアクセスし、タイムスタンプが受入れ可能であるかどうかを調べる(動作12262)。タイムスタンプは、サーバ装置9106の現在時刻とそれほど同期が外れていなければ、受入れ可能である。一実施例では、タイムスタンプがサーバ装置9106の現在時刻からの時間しきい値(たとえば、推奨されるケルベロス時間スキュー(skew)である5分)の範囲内であれば、タイムスタンプは受入れ可能である。タイムスタンプが受入れ可能でなければ、鍵交換プロセスは失敗する(動作12258)。
【0249】
タイムスタンプが受入れ可能な場合、サーバ装置9106は鍵交換メッセージInitMessのダイジェストを算出する(動作12264)。サーバ装置9106は、図10の動作11204でクライアント装置9102がダイジェストを算出したのと同じ方法で、ダイジェストを算出する。次いでサーバ装置9106は、動作12264で算出したダイジェスト値が、暗号化されたケルベロス認証符号Authの一部としてクライアント装置9102から受信したダイジェスト値に一致する(等しい)かどうかを調べる(動作12266)。2つのダイジェスト値が同じであれば、クライアント装置9102とサーバ装置9106との間の鍵交換メッセージInitMessが変更されていない(たとえば、鍵交換メッセージInitMessが不正変更されていない)ことを確認する働きをする。2つのダイジェスト値が一致しない場合(言い換えれば、2つのダイジェスト値が等しくない場合)、鍵交換プロセスは失敗する(動作12258)。
【0250】
ただし、受信したダイジェスト値と算出されたダイジェスト値が一致した場合、サーバ装置9106はケルベロス認証符号が再実行(replay)されたかどうかを調べる(動作12268)。サーバ装置9106は、各クライアント装置Cから受信したそれぞれのケルベロス認証符号(ケルベロスチケットに示されている)からのタイムスタンプの記録を維持する。サーバ装置9106が、サーバ装置9106によって記録された最後のタイプスタンプよりも新しくないタイムスタンプTimeの付いたケルベロス認証符号を受信すると、サーバ装置9106はケルベロス認証符号が再実行されたものであることを知る。ケルベロス認証符号が再実行されたものであれば、鍵交換イニシエータパケットは無効であり、鍵交換プロセスは失敗する(動作12258)。ただし、ケルベロス認証符号が再実行されたものでなければ、鍵交換イニシエータパケットはサーバ装置9106によって妥当性検査されている(動作12270)。これらの試験すべてに適合し、動作12270で鍵交換イニシエータパケットの妥当性が検査されると、サーバ装置9106はクライアント装置9102が実際に自分の要求したデバイスであると認証し、サーバ装置9106は、クライアント装置9102にケルベロスセッション鍵KCAの知識があることを検証し、クライアントにKの知識があることも(鍵配布センタの信用を通じて間接的に)検証する。
【0251】
図12は、暗号鍵を生成するため、ならびに鍵交換応答パケットを生成および送信するための例示的プロセス13300を示すフローチャートである。図12は、図9の動作10156および10158をさらに詳細に示す図である。図12のプロセスはサーバ装置によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図12のプロセスは、図8の構成要素を参照して論じられる。
【0252】
初めに、サーバ装置9106は、鍵交換イニシエータメッセージInitMess、ケルベロスセッション鍵KCA、クライアント装置9102からのナンス(NonceInit)、およびサーバ装置9106によって生成されたナンス(NonceResp)に基づいて暗号鍵を生成する(動作13302)。サーバ装置9106は、ランダム(または擬似ランダム)数Y、ならびにNonceRespと呼ばれるランダム値を生成する。さらにサーバ装置9106は、Diffie−Hellman値(gXY mod N)ならびにDiffie−Hellman値(g mod N)を算出する。この時点で、サーバ装置9106はセキュリティアソシエーション鍵を算出するのに十分なデータを有する。セキュリティアソシエーション鍵は、2つのコンソール間での2地点間通信をセキュアにするために使用される。一実施例では、サーバ装置9106は2つのDiffie−Hellman値((g mod N)および(Y))を使用して関数(gXY mod N)を算出する。次いでサーバ装置9106は、値NonceInit、NonceResp、(gXY mod N)、およびケルベロスセッション鍵KCAに基づいて、様々なアルゴリズムを使用して様々なダイジェストを算出する。次いでこれらのダイジェストは、セキュリティアソシエーション鍵を形成するために使用される。一実施例では、サーバ装置9106が、NonceInit、NonceResp、(gXY mod N)を入力として使用し、ケルベロスセッション鍵KCAを双方向ですべてのセキュアパケットを認証および暗号化/解読するためのセキュリティ鍵として使用して、4つの異なるダイジェスト(1つの鍵を認証用、1つの鍵を暗号用に、それぞれの方向用に2倍して合計4つ)を算出する。
【0253】
次いでサーバ装置9106は、鍵交換応答メッセージを生成する(動作13304)。鍵交換応答メッセージは、以下のように、NonceInit、クライアント装置9102から受信したタイムスタンプTime、NonceResp、Diffie−Hellman値(g mod N)、およびSPI値を含む。
RespMess=[NonceInit,SPI,NonceResp,(g mod N)]
【0254】
SPI値はサーバ装置9106によって生成され、クライアント装置9102からサーバ装置9106へのすべての通信に関連付けられる。次いでサーバ装置9106は、以下のように、ケルベロスセッション鍵を使用して応答メッセージのダイジェストおよびハッシュ関数Hを算出する(動作13306)。
【0255】
【数8】
Figure 2004056793
【0256】
動作13306のハッシュ関数Hは、動作11204のハッシュ関数Hと同じであるか、または異なるハッシュ関数Hであってよい。
【0257】
次いでサーバ装置9106は、以下のように、算出されたハッシュダイジェストおよびケルベロス認証符号からのタイムスタンプTimeの両方を含む、ケルベロス回答メッセージを生成する(動作13308)。
ReplyMess=[HashRespMess,Time]
【0258】
次いでサーバ装置9106は、以下のように、暗号化アルゴリズムE(たとえばトリプルDES)およびケルベロスセッション鍵KCAを使用してケルベロス回答メッセージReplyMessを暗号化する(動作13310)。
【0259】
【数9】
Figure 2004056793
【0260】
動作13308の暗号化アルゴリズムEは、図10の動作11206で使用される暗号化アルゴリズムと同じであるか、または異なる暗号化アルゴリズムであってよい。
【0261】
次いでサーバ装置9106は、以下のように、鍵交換応答メッセージRespMessおよび暗号化されたケルベロス回答メッセージEncryptedReplyMessを含む、鍵交換応答パケットを生成する。
RespPacket=[RespMess,EncryptedReplyMess]
【0262】
次いでサーバ装置9106は、鍵交換応答パケットRespPacketをクライアント装置9102に送信する(動作13314)。
【0263】
図13は、鍵交換応答パケットを受信および妥当性評価するため、および暗号鍵を生成するための、例示的なプロセスを示すフローチャートである。図13は、図9の動作10160および10162をより詳細に示す図である。図13のプロセスはクライアント装置によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実行可能である。図13のプロセスは、図8の構成要素を参照して論じられる。
【0264】
初めに、クライアント装置9102は、サーバ装置9106から鍵交換応答パケットRespPacketを受信する(動作14352)。クライアント装置9102は、ケルベロスセッション鍵KCAを使用して、ケルベロス回答メッセージEncryptedReplyMessを解読する(動作14354)。次いでクライアント装置9102は、解読された回答メッセージ中のタイムスタンプTimeが、クライアント装置9102がサーバ装置9106に送信したタイムスタンプTimeと一致するかどうかを調べる(動作14356)。タイムスタンプが一致する場合(言い換えれば、タイムスタンプが等しい場合)、その一致により、サーバ装置9106がケルベロスチケット(Kの知識を証明する)およびケルベロス認証符号(したがってケルベロスセッション鍵KCAの知識を有する)を解読できたことが確認され、実際にサーバ装置9106が自分の要求したものであることが確認される。したがってこれらのタイムスタンプ値が一致すれば、サーバ装置9106はクライアント装置9102に対して認証され、この時点で、完全な相互認証が達成された(サーバはクライアントに対してKの知識を証明し、クライアントはサーバに対してKの知識を証明した)。
【0265】
タイムスタンプ値が一致しなければ、図11の動作12258と同様に、鍵交換プロセスは失敗する(動作14358)。ただし、タイムスタンプ値が一致する場合、サーバ装置9106はクライアント装置9102に対して認証され、続いてクライアント装置9102は、ケルベロスセッション鍵KCAを使用して鍵交換応答メッセージRespMessのダイジェストを算出する(動作14360)。クライアント装置9102は、図12の動作13306でサーバ装置9106がダイジェストを算出したのと同じ方法で、ダイジェストを算出する。次いでクライアント装置9102は、自分が動作14360で算出したダイジェスト値が、暗号化されたケルベロス回答メッセージEncryptedReplyMessの一部としてサーバ装置9106から受信したダイジェスト値と一致する(等しい)かどうかを調べる(動作14362)。2つのダイジェスト値が同じであれば、サーバ装置9106とクライアント装置9102との間の鍵交換応答メッセージRespMessが変更されていない(たとえば、鍵交換応答メッセージRespMessが不正変更されていない)ことを確認する働きをする。2つのダイジェスト値が一致しない場合(言い換えれば、2つのダイジェスト値が等しくない場合)、鍵交換プロセスは失敗する(動作14358)。
【0266】
ただし、2つのダイジェスト値が一致すれば、クライアント装置9102は、ケルベロスセッション鍵KCA、NonceInit、NonceResp、およびgXY mod Nに基づいて暗号鍵を生成する(動作14364)。図12の動作13302に関して上記で解説したのと同様に、この時点でクライアント装置9102には、Diffie−Hellman値(gXY mod N)を算出し、セキュリティアソシエーション鍵を算出するのに十分なデータがある。動作14364でクライアント装置9102によって算出されるセキュリティアソシエーション鍵は、図12の動作13302でサーバ装置9106によって算出されるものと同じであり、同じ方法で算出される。gXY mod Nは、クライアント装置のg mod NおよびXから算出されることに留意されたい。
【0267】
いったんクライアント装置9102がセキュリティアソシエーション鍵を持てば、デバイス9102は、鍵交換の完了を待っていたどんなパケットも自由に伝送することができる。ただしサーバ装置9106は、たとえ同じ鍵セットを持っていてもその応答メッセージRespMessが失われたことを確認できないため、自由に伝送することはできない。サーバ装置9106は、算出されたセキュリティアソシエーション鍵で認証されたパケットをクライアント装置9102から受信するまで、あるいは任意選択でクライアント装置9102から肯定応答パケット(AckPack)を受信するまで、待機する。
【0268】
一般には、クライアント装置9102がサーバ装置9106にパケットを送信するため、鍵交換プロセスは2つのパケット、すなわちInitPacketおよびRespPacketのみで構成される。あるいは、クライアント装置9102がまだパケットを送信していなければ、クライアント装置9102は人工の肯定応答パケット(「AckPack」と表記される)を送信することになる。このパケットは他の2つの鍵交換パケットとは異なり、ケルベロスセッション鍵KCAの代わりに算出されたセキュリティアソシエーション鍵を使用してAckPackがハッシュされる。
【0269】
これ以降、2つのデバイス9102および9104はセキュリティアソシエーション鍵を使用して通信をセキュアにする。他方のデバイスに伝送する必要のあるすべてのネットワークパケットは、任意選択で暗号化された後、受信側デバイスがパケットのコンテンツを解読する前に認証データを検証することによって認証される。デバイス9102および9104はいずれも、同じナンスを含む他方側からの鍵交換パケットを無視することができる。
【0270】
本明細書で論じた相互認証を使用したセキュア鍵交換は、秘密を導出するためのDiffie−Hellman指数演算を参照しながら論じられた。別法として、Diffie−Hellmanの代わりに他の暗号オペレーションまたは方法を使用することもできる。
【0271】
(結び)
以上の説明は、構造上の特徴および/または方法上の動作に特有の言い回しを使用したが、特許請求の範囲で定義される本発明は、説明した特定の特徴または動作に限定されないことを理解されたい。むしろ、以上の特定の特徴および動作は、本発明を実施する例示的な形態として開示している。
【0272】
【発明の効果】
以上説明したように本発明によれば、コンテンツを受け取る資格のあるデバイスだけが、コンテンツを受け取り、使用することができるように限定する機能を提供できる。
【図面の簡単な説明】
【図1】本発明の実施形態のコンテンツアクセス管理を使用することができる例示的な環境を示すブロック図である。
【図2】本発明の実施形態のコンテンツアクセスを管理するための例示的なプロセスを示すフローチャートの図である。
【図3】本発明の実施形態のゲームコンソールとセキュリティゲートウェイデバイスの間でセキュアな通信を確立するための例示的なプロセスを示すフローチャートの図である。
【図4】本発明の実施形態の図1の例示的なデータベースをさらに詳細に示すブロック図である。
【図5】本発明の実施形態の例示的なオンラインゲーム環境を示すブロック図である。
【図6】本発明の実施形態の一般的なコンピュータ環境を示す図である。
【図7】本発明の実施形態のゲームコンソールの機能上の構成要素をより詳細に示す図である。
【図8】本発明の実施形態の相互認証を使用したセキュアな鍵交換が使用可能な例示的環境を示す構成図である。
【図9】本発明の実施形態のクライアント装置とサーバ装置との間で相互認証を使用してセキュアな鍵交換を実行するための、例示的なプロセスを示すフローチャートの図である。
【図10】本発明の実施形態の鍵交換イニシエータパケットを生成および送信するための、例示的なプロセスを示すフローチャートの図である。
【図11】本発明の実施形態の鍵交換イニシエータパケットを受信および妥当性を検査するための、例示的なプロセスを示すフローチャートの図である。
【図12】本発明の実施形態の暗号鍵を生成し、さらに鍵交換応答パケットを生成および送信するための、例示的なプロセスを示すフローチャートの図である。
【図13】本発明の実施形態の鍵交換応答パケットを受信および妥当性を検査するため、および暗号鍵を生成するための、例示的なプロセスを示すフローチャートの図である。
【符号の説明】
100 コンテンツアクセス管理の環境
102 ゲームコンソール
104 照会ソース
106 コンテンツソース
108 認証モジュール
110 検証モジュール
112 選択モジュール
114 データベース
116 コンテンツ
140 コンテンツアクセスを管理するプロセス
200 セキュアな通信チャネルを確立するプロセス
240 提供(offers)テーブル
242 タイトル_提供(title_offers)テーブル
244 提供_場所(offer_locations)テーブル
246 加入(subscriptions)テーブル
248 国(countries)テーブル
250 提供_地域(offer_regions)テーブル
302−1〜302−n ゲームコンソール
304 セキュリティゲートウェイ
306 公衆ネットワーク
308 専用ネットワーク
310 データセンタ
312 監視サーバ
314 存在−通知フロントドア
316 存在サーバ
318 通知サーバ
320 マッチフロントドア
322 マッチサーバ
324 統計フロントドア
326 統計サーバ
328 鍵配信センタ
330 照会フロントドア
9102 クライアント装置
9104 鍵配布センタ
9106 サーバ装置
10150  鍵交換プロセス

Claims (62)

  1. コンテンツに対するアクセスを管理する方法であって、
    デバイスからコンテンツ照会要求を受信するステップと、
    前記コンテンツ照会要求に応答して、前記コンテンツのソースの識別子と、前記デバイスが前記コンテンツを解読することを可能にする1つまたは複数の鍵をともに前記デバイスに送信するステップと
    を備えたことを特徴とする方法。
  2. 前記識別子と前記1つまたは複数の鍵を送信するステップに先立って、前記コンテンツ照会要求の要求側が前記コンテンツにアクセスすることが許されていることを検証するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  3. 前記検証するステップは、前記デバイス上で実行されているアプリケーションが前記コンテンツにアクセスすることが許されていることを検証するステップをさらに備えたことを特徴とする請求項2に記載の方法。
  4. 前記要求側は、前記デバイスを含み、かつ前記検証するステップは、前記デバイスが前記コンテンツにアクセスすることが許されていることを検証するステップをさらに含むことを特徴とする請求項2に記載の方法。
  5. 前記要求側は、前記デバイスのユーザを含み、かつ前記検証するステップは、前記ユーザが前記コンテンツにアクセスすることが許されていることを検証するステップをさらに含むことを特徴とする請求項2に記載の方法。
  6. 前記検証するステップは、前記要求側が、前記コンテンツにアクセスすることが許されている国に関連していることを検証するステップをさらに含むことを特徴とする請求項2に記載の方法。
  7. 前記検証するステップは、前記要求側が、前記コンテンツにアクセスすることが許されている地理的区域に関連していることを検証するステップをさらに含むことを特徴とする請求項2に記載の方法。
  8. 前記コンテンツ照会要求の要求側を検証するステップと、
    前記要求側が検証された場合にだけ、前記識別子、および前記1つまたは複数の鍵を送信するステップと
    をさらに備えた方法であって、
    前記検証するステップは、
    前記デバイスが前記コンテンツにアクセスすることが許されていることを検証するステップと、
    前記デバイス上で実行されるアプリケーションが前記コンテンツにアクセスすることが許されていることを検証するステップと、
    前記デバイスが、前記コンテンツにアクセスすることが許されている地理的区域に関連していることを検証するステップとを含む
    ことを特徴とする請求項1に記載の方法。
  9. 前記コンテンツ照会要求の要求側を検証するステップと、
    前記要求側が検証された場合にだけ、前記識別子、および前記1つまたは複数の鍵を送信するステップと
    をさらに備えた方法であって、
    前記検証するステップは、
    前記デバイスのユーザが前記コンテンツにアクセスすることが許されていることを検証するステップと、
    前記デバイス上で実行されるアプリケーションが前記コンテンツにアクセスすることが許されていることを検証するステップと、
    前記ユーザが、前記コンテンツにアクセスすることが許されている国に関連していることを検証するステップとを含む
    ことを特徴とする請求項1に記載の方法。
  10. 前記識別子と前記1つまたは複数の鍵を送信するステップに先立って、前記コンテンツの複数のソースを特定し、該複数のソースの1つを選択するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  11. 前記複数のソースのそれぞれは、関連するランキングを有し、かつ前記選択するステップは、最高のランキングを有する前記複数のソースの1つを選択するステップを含むことを特徴とする請求項10に記載の方法。
  12. 前記選択するステップは、少なくともある程度、前記複数のソースのそれぞれに係る現在の負荷に基づくことを特徴とする請求項10に記載の方法。
  13. 前記選択するステップは、少なくともある程度、前記デバイスの地理的区域に基づくことを特徴とする請求項10に記載の方法。
  14. 前記選択するステップは、少なくともある程度、前記デバイスの加入レベルに基づくことを特徴とする請求項10に記載の方法。
  15. 前記選択するステップは、少なくともある程度、前記デバイスのユーザの加入レベルに基づくことを特徴とする請求項10に記載の方法。
  16. 前記選択するステップは、少なくともある程度、前記複数のソースのそれぞれの現在の対応可能性に基づくことを特徴とする請求項10に記載の方法。
  17. 前記識別子と前記1つまたは複数の鍵を送信するステップに先立って、前記コンテンツの複数のソースを特定するステップをさらに含む方法であって、
    前記送信するステップは、前記複数のソースの識別子を前記デバイスに送信するステップを含むことを特徴とする請求項1に記載の方法。
  18. 前記コンテンツ照会要求の要求側の認証を行い、前記要求側が認証された場合にだけ、前記識別子と前記1つまたは複数の鍵を送信するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  19. 前記要求側は、前記デバイスを含むことを特徴とする請求項18に記載の方法。
  20. 前記要求側は、前記デバイスのユーザを含むことを特徴とする請求項18に記載の方法。
  21. 前記要求側は、前記デバイスの複数のユーザを含むことを特徴とする請求項18に記載の方法。
  22. 前記1つまたは複数の鍵は、対称鍵、および公開鍵/秘密鍵ペアの公開鍵を含むことを特徴とする請求項1に記載の方法。
  23. 前記対称鍵は、前記デバイスが前記コンテンツを解読することを可能にし、かつ前記公開鍵は、前記デバイスが前記コンテンツの認証を行うことを可能にすることを特徴とする請求項22に記載の方法。
  24. 前記ソースは、リモートのサーバデバイスを含むことを特徴とする請求項1に記載の方法。
  25. 前記ソースは、ローカルの記憶デバイスを含むことを特徴とする請求項1に記載の方法。
  26. 前記コンテンツは、ゲーム全体を含むことを特徴とする請求項1に記載の方法。
  27. 前記コンテンツは、ゲームのセグメントを含むことを特徴とする請求項1に記載の方法。
  28. 前記コンテンツは、ゲームタイトルに関する新しいフィーチャを含むことを特徴とする請求項1に記載の方法。
  29. 前記コンテンツは、ゲームタイトルの以前に出荷されたモジュールにおける問題を修正する1つまたは複数の新しいモジュールを含むことを特徴とする請求項1に記載の方法。
  30. 前記デバイスは、ゲームコンソールを含むことを特徴とする請求項1に記載の方法。
  31. コンテンツに対するアクセスを管理する方法であって、
    複数のコンテンツパッケージが記憶されている場所のレコードを保持するステップと、
    前記複数のコンテンツパッケージの少なくとも1つを解読するのにそれぞれを使用することができる複数の鍵のレコードを保持するステップと、
    前記複数のコンテンツパッケージの特定の1つに関して、複数の要求側のデバイスのどれが、前記コンテンツパッケージが記憶されている場所の指示、ならびに前記コンテンツパッケージを解読するのに使用することができる前記複数の鍵の1つを受け取ることができるかを制限するステップと
    を備えたことを特徴とする方法。
  32. 前記制限するステップは、少なくともある程度、前記デバイス上で実行されるゲームタイトルに基づき、前記複数の要求側のデバイスのどれが、前記指示を受け取ることができるかを制限するステップを含むことを特徴とする請求項31に記載の方法。
  33. 前記制限するステップは、少なくともある程度、前記デバイスの識別子に基づき、前記複数の要求側のデバイスのどれが、前記指示を受け取ることができるかを制限するステップを含むことを特徴とする請求項31に記載の方法。
  34. 前記制限するステップは、少なくともある程度、前記デバイスのユーザに基づき、前記複数の要求側のデバイスのどれが、前記指示を受け取ることができるかを制限するステップを含むことを特徴とする請求項31に記載の方法。
  35. 前記制限するステップは、少なくともある程度、前記デバイスに関連する地理的区域に基づき、前記複数の要求側のデバイスのどれが、前記指示を受け取ることができるかを制限するステップを含むことを特徴とする請求項31に記載の方法。
  36. 前記複数のコンテンツパッケージのそれぞれが、複数のソースに記憶されることが可能な方法であって、
    特定のデバイスに関して、前記複数のソースのどれの指示を前記デバイスが受け取るべきかを選択するステップをさらに備えたことを特徴とする請求項31に記載の方法。
  37. 1つまたは複数のプロセッサによって実行されたとき、該1つまたは複数のプロセッサが、
    コンテンツが記憶されている複数の場所のレコードを保持するステップと、
    前記コンテンツを解読するのに使用することができる鍵のレコードを保持するステップと、
    デバイスから前記コンテンツを照会する要求を受信するステップと、
    前記コンテンツを解読するのに使用することができる前記鍵と、前記コンテンツが記憶されている前記複数の場所の1つの識別子とをともに前記デバイスに送信するステップと
    を行うようにさせる複数の命令を記憶したことを特徴とする1つまたは複数のコンピュータ読み取り可能な記録媒体。
  38. 前記命令は、前記デバイス上で実行されるアプリケーションが前記コンテンツにアクセスすることが許されている場合にだけ、前記1つまたは複数のプロセッサが、前記鍵と前記識別子とをともに前記デバイスに送信するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  39. 前記命令は、前記デバイスが前記コンテンツにアクセスすることが許されている場合にだけ、前記1つまたは複数のプロセッサが、前記鍵と前記識別子とをともに前記デバイスに送信するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  40. 前記命令は、前記デバイスのユーザが前記コンテンツにアクセスすることが許されている場合にだけ、前記1つまたは複数のプロセッサが、前記鍵と前記識別子とをともに前記デバイスに送信するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  41. 前記命令は、前記要求側が、前記コンテンツにアクセスすることが許されている地理的区域に関連している場合にだけ、前記1つまたは複数のプロセッサが、前記鍵と前記識別子とをともに前記デバイスに送信するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  42. 前記命令は、前記1つまたは複数のプロセッサが、少なくともある程度、前記複数の場所のそれぞれに関連するランキングに基づいて前記複数の場所の1つを特定するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  43. 前記命令は、前記1つまたは複数のプロセッサが、少なくともある程度、前記複数の場所のそれぞれに係る現在の負荷に基づいて前記複数の場所の1つを特定するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  44. 前記命令は、前記1つまたは複数のプロセッサが、少なくともある程度、前記デバイスの地理的場所に基づいて前記複数の場所の1つを特定するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  45. 前記命令は、前記1つまたは複数のプロセッサが、少なくともある程度、前記デバイスの加入レベルに基づいて前記複数の場所の1つを特定するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  46. 前記命令は、前記1つまたは複数のプロセッサが、少なくともある程度、前記デバイスのユーザの加入レベルに基づいて前記複数の場所の1つを特定するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  47. 前記命令は、前記1つまたは複数のプロセッサが、少なくともある程度、前記複数のソースのそれぞれの現在の対応可能性に基づいて前記複数の場所の1つを特定するステップをさらに行うようにさせることを特徴とする請求項37に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  48. デバイスの1つまたは複数のプロセッサによって実行されたとき、該1つまたは複数のプロセッサが、
    1つのコンテンツのソースを照会する要求をリモートデバイスに送信するステップと、
    前記1つのコンテンツを解読するのに使用することができる鍵と、前記1つのコンテンツのソースの識別子とをともに前記リモートデバイスから受信するステップと、
    前記ソースから前記1つのコンテンツを取得するステップと、
    前記鍵を使用して前記1つのコンテンツを解読するステップと、
    前記1つのコンテンツを前記デバイス上にローカルで保存するステップと
    を行うようにさせる複数の命令を記憶したことを特徴とする1つまたは複数のコンピュータ読み取り可能な記録媒体。
  49. 前記命令は、前記1つまたは複数のプロセッサが、前記ソースに関連する公開鍵を使用して前記1つのコンテンツに関連するダイジェストを解読し、前記1つのコンテンツに関するダイジェストを生成し、当該生成されたダイジェストを解読されたダイジェストと比較し、生成されたダイジェストと解読されたダイジェストが同一である場合、前記1つのコンテンツは前記ソースからのものであり、かつ変更されていないと検証することによって、前記ソースから取得された前記1つのコンテンツを検証するステップをさらに行わせることを特徴とする請求項48に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  50. 前記1つまたは複数のプロセッサが前記コンテンツを保存するステップを行うようにさせる前記命令は、前記1つまたは複数のプロセッサが、前記デバイスのローカルなハードドライブに前記コンテンツを保存するようにさせる命令を含むことを特徴とする請求項48に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  51. 前記ソースは、前記リモートデバイスからの前記ソースの前記識別子の受信前に、前記デバイスに知られていないことを特徴とする請求項48に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  52. 前記命令は、前記1つまたは複数のプロセッサが、複数のソースの識別子を受信し、前記1つのコンテンツを取得する源の前記複数のソースの1つを選択するステップをさらに行うようにさせることを特徴とする請求項48に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  53. 前記複数のソースのそれぞれは、関連するランキングを有し、かつ前記1つまたは複数のプロセッサが前記複数のソースの1つを選択するステップを行うようにさせる前記命令は、前記1つまたは複数のプロセッサが、前記1つまたは複数のソースの最高のランキングを有する1つを選択するようにさせる命令を含むことを特徴とする請求項52に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  54. 前記デバイスは、ゲームコンソールを含むことを特徴とする請求項48に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  55. コンピューティングデバイスにおいて実施される方法であって、
    前記コンピューティングデバイスが、別のデバイスによってゲームコンソールに対して特定されており、コンテンツの要求を前記ゲームコンソールから受信するステップと、
    要求された前記コンテンツが、前記別のデバイスによって前記ゲームコンソールに通信される鍵を使用して暗号化されており、要求された前記コンテンツを前記ゲームコンソールに送信するステップと
    を備えたことを特徴とする方法。
  56. 前記コンピューティングデバイスに関連する公開鍵/秘密鍵ペアの秘密鍵を使用して暗号化された前記コンテンツのダイジェストを前記ゲームコンソールに送信するステップをさらに備えたことを特徴とする請求項55に記載の方法。
  57. デバイスから1つのコンテンツの要求を受信するように構成された選択モジュールと、
    前記デバイスが前記1つのコンテンツにアクセスする許可を有するかどうかを判定するように構成された検証モジュールと
    を備えたシステムであって、
    前記選択モジュールは、前記検証モジュールが、前記デバイスが前記1つのコンテンツにアクセスする許可を有すると判定した場合、前記コンテンツのソースと、前記デバイスが前記1つのコンテンツを解読することを可能にする1つまたは複数の鍵とをともに前記デバイスに送るようにさらに構成されていることを特徴とするシステム。
  58. 前記要求は、前記1つのコンテンツを獲得することができる源のソースを照会する要求を含むことを特徴とする請求項57に記載のシステム。
  59. 前記検証モジュールは、前記要求の中の情報に少なくともある程度基づき、前記デバイスが前記1つのコンテンツにアクセスする許可を有するかどうかを判定することを特徴とする請求項57に記載のシステム。
  60. 前記検証モジュールは、前記要求が受信された送信元の前記デバイスの識別子に少なくともある程度基づき、前記デバイスが前記1つのコンテンツにアクセスする許可を有するかどうかを判定することを特徴とする請求項57に記載のシステム。
  61. 前記検証モジュールは、前記要求が受信された送信元の前記デバイスの1名または複数名のユーザの識別子に少なくともある程度基づき、前記デバイスが前記1つのコンテンツにアクセスする許可を有するかどうかを判定することを特徴とする請求項57に記載のシステム。
  62. デバイスからコンテンツ照会要求を受信するための手段と、
    前記デバイスが前記コンテンツにアクセスする許可を有するかどうかを判定するための手段と
    を備えたシステムであって、
    前記要求を受信するための手段は、判定するための手段が前記デバイスが前記コンテンツにアクセスする許可を有すると判定した場合、前記コンテンツのソースと、前記デバイスが前記コンテンツを解読することを可能にする1つまたは複数の鍵とをともに前記デバイスに送るための手段をさらに含む
    ことを特徴とするシステム。
JP2003183593A 2002-06-26 2003-06-26 コンテンツに対するアクセスを管理する方法及びシステム Expired - Fee Related JP4708688B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/180,872 US20040009815A1 (en) 2002-06-26 2002-06-26 Managing access to content
US10/180,872 2002-06-26

Publications (3)

Publication Number Publication Date
JP2004056793A true JP2004056793A (ja) 2004-02-19
JP2004056793A5 JP2004056793A5 (ja) 2006-08-10
JP4708688B2 JP4708688B2 (ja) 2011-06-22

Family

ID=29717925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003183593A Expired - Fee Related JP4708688B2 (ja) 2002-06-26 2003-06-26 コンテンツに対するアクセスを管理する方法及びシステム

Country Status (3)

Country Link
US (1) US20040009815A1 (ja)
EP (1) EP1376301A3 (ja)
JP (1) JP4708688B2 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235225A (ja) * 2004-02-20 2005-09-02 Hewlett-Packard Development Co Lp スタンドアロンメモリ装置並びにその装置を使用するシステム及び方法
JP2006221470A (ja) * 2005-02-10 2006-08-24 Sony Corp 情報処理装置、コンテンツ管理システム、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
KR20080069327A (ko) * 2007-01-23 2008-07-28 주식회사 알티캐스트 Iptv에서 콘텐츠 보호유통에 관한 방법
JP2008541637A (ja) * 2005-05-20 2008-11-20 マクロビジョン・コーポレーション デジタル的に署名された実行可能体のヘッダーに補助的情報を埋め込むためのコンピュータで実行される方法とシステム。
JP2010026547A (ja) * 2008-07-15 2010-02-04 Fujitsu Ltd ファイアウォール負荷分散方法及びファイアウォール負荷分散システム
JP2010530101A (ja) * 2007-06-08 2010-09-02 サンディスク コーポレイション エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法
JP2012512470A (ja) * 2008-12-15 2012-05-31 中国移▲動▼通信集▲団▼公司 データ・ファイル復号方法、復号装置及びデータ・ブロードキャスト・システム
JP2012518832A (ja) * 2009-02-20 2012-08-16 テレフオンアクチーボラゲット エル エム エリクソン(パブル) リモートソースからのdlnaデータ配信
US8448009B2 (en) 2009-08-17 2013-05-21 Sandisk Il Ltd. Method and memory device for generating a time estimate
US8484476B2 (en) 2005-05-20 2013-07-09 Rovi Technologies Corporation Computer-implemented method and system for embedding and authenticating ancillary information in digitally signed content
US8688588B2 (en) 2007-06-08 2014-04-01 Sandisk Technologies Inc. Method for improving accuracy of a time estimate used in digital rights management (DRM) license validation
US8688924B2 (en) 2007-06-08 2014-04-01 Sandisk Technologies Inc. Method for improving accuracy of a time estimate from a memory device
US8869288B2 (en) 2007-06-08 2014-10-21 Sandisk Technologies Inc. Method for using time from a trusted host device

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080214300A1 (en) * 2000-12-07 2008-09-04 Igt Methods for electronic data security and program authentication
EP1291094B1 (en) * 2001-10-02 2003-03-26 FABBRICA MACCHINE CURVATUBI CRIPPA AGOSTINO S.p.A. Draw-bending machine
US6993393B2 (en) * 2001-12-19 2006-01-31 Cardiac Pacemakers, Inc. Telemetry duty cycle management system for an implantable medical device
US6985773B2 (en) 2002-02-07 2006-01-10 Cardiac Pacemakers, Inc. Methods and apparatuses for implantable medical device telemetry power management
EP1383327B1 (en) * 2002-06-11 2013-12-25 Panasonic Corporation Content distributing system and data-communication controlling device
US7803052B2 (en) * 2002-06-28 2010-09-28 Microsoft Corporation Discovery and distribution of game session information
AU2003260951A1 (en) * 2002-09-03 2004-03-29 Matsushita Electric Industrial Co., Ltd. Region restrictive playback system
US8083585B2 (en) 2002-09-10 2011-12-27 Igt Apparatus and method for copying gaming machine configuration settings
US7020750B2 (en) * 2002-09-17 2006-03-28 Sun Microsystems, Inc. Hybrid system and method for updating remote cache memory with user defined cache update policies
US7918734B2 (en) * 2002-09-30 2011-04-05 Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. Gaming server providing on demand quality of service
US20040204247A1 (en) * 2003-04-10 2004-10-14 Walker Jay S. System and method for providing products to game players
US7690989B2 (en) * 2003-04-10 2010-04-06 Walker Digital, Llc System and method for awarding prizes in a local edition of an online game
US7155290B2 (en) * 2003-06-23 2006-12-26 Cardiac Pacemakers, Inc. Secure long-range telemetry for implantable medical device
US20070124750A1 (en) * 2003-09-22 2007-05-31 Koninklijke Philips Electronics N.V. Method and device for digital broadcasting
US20050080898A1 (en) * 2003-10-08 2005-04-14 Block Jerald J. System and method for managing computer usage
US20050132226A1 (en) * 2003-12-11 2005-06-16 David Wheeler Trusted mobile platform architecture
US20050132186A1 (en) * 2003-12-11 2005-06-16 Khan Moinul H. Method and apparatus for a trust processor
US20050192939A1 (en) * 2004-02-27 2005-09-01 International Business Machines Corporation System and method for providing classification security in a database management system
US8583739B2 (en) * 2004-03-02 2013-11-12 International Business Machines Corporation Facilitating the sending of mail from a restricted communications network
US7228182B2 (en) * 2004-03-15 2007-06-05 Cardiac Pacemakers, Inc. Cryptographic authentication for telemetry with an implantable medical device
US7359753B2 (en) 2004-04-07 2008-04-15 Cardiac Pacemakers, Inc. System and method for RF wake-up of implantable medical device
US20060084504A1 (en) * 2004-04-30 2006-04-20 Chan Andy K Wireless communication systems
US7890180B2 (en) * 2004-08-09 2011-02-15 Cardiac Pacemakers, Inc. Secure remote access for an implantable medical device
JP2006155332A (ja) * 2004-11-30 2006-06-15 Toshiba Corp コンテンツ出力装置及びコンテンツ出力方法、コンテンツ取得装置及びコンテンツ取得方法
US7094154B2 (en) * 2004-12-30 2006-08-22 Mmjk Llc Computer networked game system utilizing subscription based membership and alternative methods of entry
US8369795B2 (en) 2005-01-12 2013-02-05 Microsoft Corporation Game console notification system
US9289678B2 (en) 2005-01-12 2016-03-22 Microsoft Technology Licensing, Llc System for associating a wireless device to a console device
WO2006095726A1 (ja) * 2005-03-11 2006-09-14 Brother Kogyo Kabushiki Kaisha 情報配信システム、ノード装置、及び解除データ発行方法等
US7878907B2 (en) 2005-05-13 2011-02-01 Microsoft Corporation Real-time HD TV/video IP streaming to a game console
US20070011138A1 (en) * 2005-07-07 2007-01-11 Boucard John C System and method for interactive data management
JP4901164B2 (ja) * 2005-09-14 2012-03-21 ソニー株式会社 情報処理装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
US8088011B2 (en) * 2005-11-08 2012-01-03 Microsoft Corporation Dynamic debugging dump for game console
US20070111796A1 (en) * 2005-11-16 2007-05-17 Microsoft Corporation Association of peripherals communicatively attached to a console device
US20070260572A1 (en) * 2006-05-03 2007-11-08 Boucard John C Interactive data management system
EP1855438A1 (en) 2006-05-09 2007-11-14 THOMSON Licensing Device, system and method for service delivery with anti-emulation mechanism
US7779147B1 (en) * 2006-06-30 2010-08-17 Amazon Technologies, Inc. Method and system for advertisement placement based on network trail proximity
US7809801B1 (en) * 2006-06-30 2010-10-05 Amazon Technologies, Inc. Method and system for keyword selection based on proximity in network trails
JP2008030386A (ja) * 2006-07-31 2008-02-14 Tokai Rubber Ind Ltd 低透過樹脂ホース
US20080270913A1 (en) * 2007-04-26 2008-10-30 Howard Singer Methods, Media, and Devices for Providing a Package of Assets
US10778417B2 (en) 2007-09-27 2020-09-15 Clevx, Llc Self-encrypting module with embedded wireless user authentication
US10783232B2 (en) * 2007-09-27 2020-09-22 Clevx, Llc Management system for self-encrypting managed devices with embedded wireless user authentication
US10181055B2 (en) 2007-09-27 2019-01-15 Clevx, Llc Data security system with encryption
US11190936B2 (en) 2007-09-27 2021-11-30 Clevx, Llc Wireless authentication system
US8566960B2 (en) * 2007-11-17 2013-10-22 Uniloc Luxembourg S.A. System and method for adjustable licensing of digital products
CN101527632B (zh) * 2008-03-06 2011-12-28 华为技术有限公司 响应消息认证方法、装置及系统
US8858341B2 (en) * 2008-08-21 2014-10-14 Jeff Weiland Multi video game changer
US8086692B2 (en) * 2008-08-27 2011-12-27 Satyam Computer Services Limited System and method for efficient delivery in a multi-source, multi destination network
GB2469033B (en) * 2009-03-30 2014-10-01 Sony Corp Distribution system and method of distributing content files
US20100323790A1 (en) * 2009-06-19 2010-12-23 Etchegoyen Craig S Devices and Methods for Auditing and Enforcing Computer Game Licenses
US9633183B2 (en) * 2009-06-19 2017-04-25 Uniloc Luxembourg S.A. Modular software protection
JP2012152354A (ja) * 2011-01-25 2012-08-16 Sony Computer Entertainment Inc 情報処理装置
US8747201B2 (en) * 2011-10-28 2014-06-10 Microsoft Corporation Talent identification within an advisory services network
CA2854562A1 (en) * 2011-11-03 2013-05-10 Trivie, Inc. Network multi-player trivia-based game and contest
US9590959B2 (en) 2013-02-12 2017-03-07 Amazon Technologies, Inc. Data security service
US10075471B2 (en) 2012-06-07 2018-09-11 Amazon Technologies, Inc. Data loss prevention techniques
US9286491B2 (en) 2012-06-07 2016-03-15 Amazon Technologies, Inc. Virtual service provider zones
US10084818B1 (en) 2012-06-07 2018-09-25 Amazon Technologies, Inc. Flexibly configurable data modification services
US9705674B2 (en) 2013-02-12 2017-07-11 Amazon Technologies, Inc. Federated key management
US9300464B1 (en) 2013-02-12 2016-03-29 Amazon Technologies, Inc. Probabilistic key rotation
US9367697B1 (en) 2013-02-12 2016-06-14 Amazon Technologies, Inc. Data security with a security module
US10211977B1 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Secure management of information using a security module
US10210341B2 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Delayed data access
US10467422B1 (en) 2013-02-12 2019-11-05 Amazon Technologies, Inc. Automatic key rotation
US9547771B2 (en) 2013-02-12 2017-01-17 Amazon Technologies, Inc. Policy enforcement with associated data
US9317813B2 (en) 2013-03-15 2016-04-19 Apple Inc. Mobile device with predictive routing engine
US9857193B2 (en) 2013-06-08 2018-01-02 Apple Inc. Mapping application with turn-by-turn navigation mode for output to vehicle display
US9303997B2 (en) 2013-03-15 2016-04-05 Apple Inc. Prediction engine
US20140365459A1 (en) 2013-06-08 2014-12-11 Apple Inc. Harvesting Addresses
US9832171B1 (en) * 2013-06-13 2017-11-28 Amazon Technologies, Inc. Negotiating a session with a cryptographic domain
US9300639B1 (en) 2013-06-13 2016-03-29 Amazon Technologies, Inc. Device coordination
US9397835B1 (en) 2014-05-21 2016-07-19 Amazon Technologies, Inc. Web of trust management in a distributed system
US9438421B1 (en) 2014-06-27 2016-09-06 Amazon Technologies, Inc. Supporting a fixed transaction rate with a variably-backed logical cryptographic key
US10296391B2 (en) * 2014-06-30 2019-05-21 Microsoft Technology Licensing, Llc Assigning a player to a machine
US9866392B1 (en) 2014-09-15 2018-01-09 Amazon Technologies, Inc. Distributed system web of trust provisioning
US9940304B2 (en) * 2014-11-05 2018-04-10 Google Llc Methods and systems for inserting content in a mobile application
US10469477B2 (en) 2015-03-31 2019-11-05 Amazon Technologies, Inc. Key export techniques
US10402072B2 (en) * 2015-05-04 2019-09-03 Graphisoft Se Predictive background updating
US20170061348A1 (en) * 2015-08-31 2017-03-02 Salesforce.com. inc. Platform architecture planning process utilizing platform architecture type unit definitions
US9962614B1 (en) * 2016-06-16 2018-05-08 Activision Publishing, Inc. Validating toy genuineness
CN108366296B (zh) * 2018-03-08 2020-07-28 四川泰立科技股份有限公司 视频加密方法及装置
US11443048B2 (en) * 2019-05-06 2022-09-13 Microsoft Technology Licensing, Llc Install-time procedural content generation for encrypted packages
US11750393B2 (en) * 2021-03-30 2023-09-05 Ford Global Technologies, Llc Secure broadcast delivery and verification
JP2024003390A (ja) * 2022-06-27 2024-01-15 任天堂株式会社 システム、プログラム、方法、および情報処理装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01307341A (ja) * 1988-06-06 1989-12-12 Fujitsu Ltd 移動体データ暗号化通信方式
JPH11265317A (ja) * 1998-03-16 1999-09-28 Nippon Telegr & Teleph Corp <Ntt> 著作権保護システム
JP2001077806A (ja) * 1999-09-02 2001-03-23 Matsushita Electric Ind Co Ltd データ管理カード
JP2001147899A (ja) * 1999-11-22 2001-05-29 Hitachi Ltd コンテンツ配布システム
JP2001230768A (ja) * 2000-02-15 2001-08-24 Sony Corp 情報取り引きシステムおよび情報取り引き方法、並びにプログラム提供媒体
JP2001306528A (ja) * 2000-04-18 2001-11-02 Ntt Communications Kk コンテンツ配信方法およびシステムとコンテンツ配信プログラムを記録した記録媒体
JP2002007733A (ja) * 2000-06-19 2002-01-11 Yamaha Corp コンテンツの機能規制解除方法、コンテンツの機能規制解除装置および記録媒体
JP2002014739A (ja) * 2000-04-28 2002-01-18 Fujitsu Ltd 課金システム、課金方法、コンテンツ実行装置、課金監視装置、及び課金制御装置並びにそれに用いられるプログラム及び記録媒体
JP2002163858A (ja) * 2000-11-24 2002-06-07 Nec Corp 情報再生装置のリージョンコード管理方法
JP2002182770A (ja) * 2000-12-18 2002-06-26 Matsushita Electric Ind Co Ltd 正規ユーザ認証機能付き記録媒体

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) * 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
JPH0695879A (ja) * 1992-05-05 1994-04-08 Internatl Business Mach Corp <Ibm> コンピュータシステム
EP0720796B1 (en) * 1993-09-20 1997-07-16 International Business Machines Corporation System and method for changing the key or password in a secure distributed communications network
US5779549A (en) * 1996-04-22 1998-07-14 Walker Assest Management Limited Parnership Database driven online distributed tournament system
US5706507A (en) * 1995-07-05 1998-01-06 International Business Machines Corporation System and method for controlling access to data located on a content server
US5872588A (en) * 1995-12-06 1999-02-16 International Business Machines Corporation Method and apparatus for monitoring audio-visual materials presented to a subscriber
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
US5673316A (en) * 1996-03-29 1997-09-30 International Business Machines Corporation Creation and distribution of cryptographic envelope
US6240555B1 (en) * 1996-03-29 2001-05-29 Microsoft Corporation Interactive entertainment system for presenting supplemental interactive content together with continuous video programs
US5857190A (en) * 1996-06-27 1999-01-05 Microsoft Corporation Event logging system and method for logging events in a network system
US6179713B1 (en) * 1997-06-18 2001-01-30 Circadence Corporation Full-time turn based network multiplayer game
US6230268B1 (en) * 1997-09-12 2001-05-08 International Business Machines Corporation Data control system
US6141754A (en) * 1997-11-28 2000-10-31 International Business Machines Corporation Integrated method and system for controlling information access and distribution
US6219788B1 (en) * 1998-05-14 2001-04-17 International Business Machines Corporation Watchdog for trusted electronic content distributions
US6282653B1 (en) * 1998-05-15 2001-08-28 International Business Machines Corporation Royalty collection method and system for use of copyrighted digital materials on the internet
US6611812B2 (en) * 1998-08-13 2003-08-26 International Business Machines Corporation Secure electronic content distribution on CDS and DVDs
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
US7383205B1 (en) * 1999-03-27 2008-06-03 Microsoft Corporation Structure of a digital content package
US6728713B1 (en) * 1999-03-30 2004-04-27 Tivo, Inc. Distributed database management system
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
EP1206876A1 (en) * 1999-08-17 2002-05-22 General Instrument Corporation Impulse pay per use method and system for data and multimedia services
IL135555A0 (en) * 2000-04-09 2001-05-20 Vidius Inc Preventing unauthorized access to data sent via computer networks
FR2813804B1 (fr) * 2000-09-08 2004-01-23 Sylvius Plateforme-ecran electronique multi-utilisateurs, notamment pour jeux

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01307341A (ja) * 1988-06-06 1989-12-12 Fujitsu Ltd 移動体データ暗号化通信方式
JPH11265317A (ja) * 1998-03-16 1999-09-28 Nippon Telegr & Teleph Corp <Ntt> 著作権保護システム
JP2001077806A (ja) * 1999-09-02 2001-03-23 Matsushita Electric Ind Co Ltd データ管理カード
JP2001147899A (ja) * 1999-11-22 2001-05-29 Hitachi Ltd コンテンツ配布システム
JP2001230768A (ja) * 2000-02-15 2001-08-24 Sony Corp 情報取り引きシステムおよび情報取り引き方法、並びにプログラム提供媒体
JP2001306528A (ja) * 2000-04-18 2001-11-02 Ntt Communications Kk コンテンツ配信方法およびシステムとコンテンツ配信プログラムを記録した記録媒体
JP2002014739A (ja) * 2000-04-28 2002-01-18 Fujitsu Ltd 課金システム、課金方法、コンテンツ実行装置、課金監視装置、及び課金制御装置並びにそれに用いられるプログラム及び記録媒体
JP2002007733A (ja) * 2000-06-19 2002-01-11 Yamaha Corp コンテンツの機能規制解除方法、コンテンツの機能規制解除装置および記録媒体
JP2002163858A (ja) * 2000-11-24 2002-06-07 Nec Corp 情報再生装置のリージョンコード管理方法
JP2002182770A (ja) * 2000-12-18 2002-06-26 Matsushita Electric Ind Co Ltd 正規ユーザ認証機能付き記録媒体

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235225A (ja) * 2004-02-20 2005-09-02 Hewlett-Packard Development Co Lp スタンドアロンメモリ装置並びにその装置を使用するシステム及び方法
JP2006221470A (ja) * 2005-02-10 2006-08-24 Sony Corp 情報処理装置、コンテンツ管理システム、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4703723B2 (ja) * 2005-05-20 2011-06-15 ロヴィ・ソリューションズ・コーポレーション デジタル的に署名された実行可能体のヘッダーに補助的情報を埋め込むためのコンピュータで実行される方法とシステム。
JP2008541637A (ja) * 2005-05-20 2008-11-20 マクロビジョン・コーポレーション デジタル的に署名された実行可能体のヘッダーに補助的情報を埋め込むためのコンピュータで実行される方法とシステム。
US8892894B2 (en) 2005-05-20 2014-11-18 Rovi Solutions Corporation Computer-implemented method and system for embedding and authenticating ancillary information in digitally signed content
US8397072B2 (en) 2005-05-20 2013-03-12 Rovi Solutions Corporation Computer-implemented method and system for embedding ancillary information into the header of a digitally signed executable
US8484476B2 (en) 2005-05-20 2013-07-09 Rovi Technologies Corporation Computer-implemented method and system for embedding and authenticating ancillary information in digitally signed content
KR20080069327A (ko) * 2007-01-23 2008-07-28 주식회사 알티캐스트 Iptv에서 콘텐츠 보호유통에 관한 방법
JP2010530101A (ja) * 2007-06-08 2010-09-02 サンディスク コーポレイション エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法
US8688588B2 (en) 2007-06-08 2014-04-01 Sandisk Technologies Inc. Method for improving accuracy of a time estimate used in digital rights management (DRM) license validation
US8869288B2 (en) 2007-06-08 2014-10-21 Sandisk Technologies Inc. Method for using time from a trusted host device
US8688924B2 (en) 2007-06-08 2014-04-01 Sandisk Technologies Inc. Method for improving accuracy of a time estimate from a memory device
JP2010026547A (ja) * 2008-07-15 2010-02-04 Fujitsu Ltd ファイアウォール負荷分散方法及びファイアウォール負荷分散システム
KR101284823B1 (ko) 2008-12-15 2013-07-10 차이나 모바일 커뮤니케이션즈 코포레이션 데이터 파일 복호화 방법, 복호화 장치 및 및 데이터 방송 시스템
JP2012512470A (ja) * 2008-12-15 2012-05-31 中国移▲動▼通信集▲団▼公司 データ・ファイル復号方法、復号装置及びデータ・ブロードキャスト・システム
JP2012518832A (ja) * 2009-02-20 2012-08-16 テレフオンアクチーボラゲット エル エム エリクソン(パブル) リモートソースからのdlnaデータ配信
US8924305B2 (en) 2009-02-20 2014-12-30 Telefonaktiebolaget L M Ericsson (Publ) DLNA data distribution from a remote source
US8448009B2 (en) 2009-08-17 2013-05-21 Sandisk Il Ltd. Method and memory device for generating a time estimate
US8751855B2 (en) 2009-08-17 2014-06-10 Sandisk Il Ltd. Method and memory device for generating a time estimate

Also Published As

Publication number Publication date
EP1376301A3 (en) 2014-04-09
US20040009815A1 (en) 2004-01-15
EP1376301A2 (en) 2004-01-02
JP4708688B2 (ja) 2011-06-22

Similar Documents

Publication Publication Date Title
JP4708688B2 (ja) コンテンツに対するアクセスを管理する方法及びシステム
EP1372292B1 (en) Secure key exchange with mutual authentication
JP7364674B2 (ja) 安全な無線ファームウェアアップグレード
US7949703B2 (en) Group admission system and server and client therefor
US11128477B2 (en) Electronic certification system
JP2004056784A (ja) セキュリティゲートウェイで実行する方法、記録媒体及びシステム
KR101525292B1 (ko) 자산 리스 관리용 시스템 및 방법
AU2004201602B2 (en) Method and apparatus for associating game data
US7836121B2 (en) Dynamic executable
US8554680B2 (en) Method and system for secure distribution of subscription-based game software
US20150172283A1 (en) Method of Authentication by Token
WO2016141856A1 (zh) 一种用于网络应用访问的验证方法、装置和系统
JP4219965B2 (ja) ワンタイムidによる認証
US20100317430A1 (en) Discovery and Distribution of Game Session Information
US20070078929A1 (en) Distributed processing system and method
KR101452708B1 (ko) Ce 장치 관리 서버, ce 장치 관리 서버를 이용한drm 키 발급 방법, 및 그 방법을 실행하기 위한프로그램 기록매체
JP2003224560A (ja) ゲーミングシステム用のネットワークアーキテクチャの方法、そのゲームコンソール、そのシステム及び記録媒体
WO2012037897A1 (zh) 绑定、运行安全数码卡的方法、系统及设备
WO2022100356A1 (zh) 身份认证系统、方法、装置、设备及计算机可读存储介质
JP5122225B2 (ja) サーバとクライアント・システムとの間の通信セッションにおける状態追跡機構を履行する方法
WO2024031868A1 (zh) 一种基于属性加密的设备安全认证方法及其相关装置
KR20150135032A (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
JP2017525236A (ja) 増強メディア・プラットフォームによる通信の安全確保
JP4344783B2 (ja) シード配信型ワンタイムid認証
JP4470573B2 (ja) 情報配信システム、情報配信サーバ、端末機器、情報配信方法、情報受信方法、情報処理プログラム、及び記憶媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060623

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110317

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees