(57)【特許請求の範囲】
【請求項１】
論理サブシステムと、
命令を記憶したストレージサブシステムと、を備えるホストコンピューティングデバイスであって、
前記命令は、前記論理サブシステムによって、
アクセサリデバイスとの相互認証セッションの初期部分を実施し、
前記ホストコンピューティングデバイスおよび前記アクセサリデバイスに関する情報をコンピュータネットワークを介してリモートペアリングサービスに送り、
応答として、前記リモートペアリングサービスから、前記ホストコンピューティングデバイスから前記リモートペアリングサービスに送られたペアリング公開鍵、および前記アクセサリデバイスから受け取ったセキュリティチップ証明書のダイジェストを含むペアリング証明書であって、前記リモートペアリングサービスのプライベート鍵を用いて暗号化されたペアリング証明書を受け取り、
前記相互認証セッションの前記初期部分を完了すると、前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可されるかどうかを決定し、
前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可される場合、前記リモートペアリングサービスからの前記ペアリング証明書を使用して、前記アクセサリデバイスとの相互認証セッションを完了する
ように実行可能である、ホストコンピューティングデバイス。
【請求項２】
前記相互認証セッションの前記初期部分を実施することは、
前記アクセサリデバイスとの接続を確立することと、
前記アクセサリデバイスから前記セキュリティチップ証明書を受け取ることと、
前記セキュリティチップ証明書が有効であることを検証することと
を含む、請求項１に記載のホストコンピューティングデバイス。
【請求項３】
前記セキュリティチップ証明書が有効であるかどうかを検証することは、前記セキュリティチップ証明書を発行した認証局と連絡を取ることを含む、請求項２に記載のホストコンピューティングデバイス。
【請求項４】
前記ホストコンピューティングデバイスおよび前記アクセサリデバイスに関する前記情報は、前記ペアリング公開鍵および前記セキュリティチップ証明書を含む、請求項１に記載のホストコンピューティングデバイス。
【請求項５】
前記ペアリング証明書を使用して前記相互認証セッションを完了することは、
前記ペアリング証明書を前記アクセサリデバイスに送ることと、
アクセサリデバイス公開鍵を用いて暗号化されたプリマスターシークレットを、前記アクセサリデバイスに送ることと、
前記ペアリング公開鍵に対応するペアリングプライベート鍵によって暗号化されたペアリング証明書検証メッセージを、前記アクセサリデバイスに送ることと
を含む、請求項４に記載のホストコンピューティングデバイス。
【請求項６】
前記命令は、前記ペアリングプライベート鍵および対応するペアリング公開鍵を生成するようにさらに実行可能である、請求項５に記載のホストコンピューティングデバイス。
【請求項７】
前記ペアリングプライベート鍵および対応するペアリング公開鍵は、事前に構成される、請求項５に記載のホストコンピューティングデバイス。
【請求項８】
前記論理サブシステムによって、
前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可されない場合は、前記相互認証セッションの完了を拒否するように実行可能な命令をさらに含む、請求項１に記載のホストコンピューティングデバイス。
【請求項９】
前記論理サブシステムによって、
前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可されない場合は、前記リモートペアリングサービスを利用しない片方向認証を行うように実行可能な命令をさらに含む、請求項８に記載のホストコンピューティングデバイス。
【請求項１０】
前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可されるかどうかを決定することは、前記相互認証セッションの前記初期部分において前記アクセサリデバイスから受け取ったコンフィギュレーション情報を検査することを含む、請求項１に記載のホストコンピューティングデバイス。
【請求項１１】
論理サブシステムと、前記論理サブシステムによって実行可能な命令を記憶したストレージサブシステムとを備えるホストコンピューティングデバイスにおける方法であって、
アクセサリデバイスとの相互認証セッションの初期部分を実施する工程と、
前記ホストコンピューティングデバイスおよび前記アクセサリデバイスに関する情報を、コンピュータネットワークを介してリモートペアリングサービスに送る工程と、
応答として、前記リモートペアリングサービスから、前記ホストコンピューティングデバイスから前記リモートペアリングサービスに送られたペアリング公開鍵、および前記アクセサリデバイスから受け取ったセキュリティチップ証明書のダイジェストを含むペアリング証明書であって、前記リモートペアリングサービスのプライベート鍵を用いて暗号化されたペアリング証明書を受け取る工程と、
前記相互認証セッションの前記初期部分を完了すると、前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可されるかどうかを決定する工程と、
前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可される場合、前記リモートペアリングサービスからの前記ペアリング証明書を使用して、前記アクセサリデバイスとの相互認証セッションを完了する工程と
を含む方法。
【請求項１２】
前記相互認証セッションの前記初期部分を実施する工程は、
前記アクセサリデバイスとの接続を確立する工程と、
前記アクセサリデバイスから前記セキュリティチップ証明書を受け取る工程と、
前記セキュリティチップ証明書が有効であることを検証する工程と
を含む、請求項１１に記載の方法。
【請求項１３】
前記セキュリティチップ証明書が有効であるかどうかを検証する工程は、前記セキュリティチップ証明書を発行した認証局と連絡を取る工程を含む、請求項１２に記載の方法。
【請求項１４】
前記ホストコンピューティングデバイスおよび前記アクセサリデバイスに関する前記情報は、ペアリング公開鍵および前記セキュリティチップ証明書を含む、請求項１１に記載の方法。
【請求項１５】
前記ペアリング証明書を使用して前記相互認証セッションを完了する工程は、
前記ペアリング証明書を前記アクセサリデバイスに送る工程と、
アクセサリデバイス公開鍵を用いて暗号化されたプリマスターシークレットを、前記アクセサリデバイスに送る工程と、
前記ペアリング公開鍵に対応するペアリングプライベート鍵によって暗号化されたペアリング証明書検証メッセージを、前記アクセサリデバイスに送る工程と
を含む、請求項１４に記載の方法。
【請求項１６】
前記ペアリングプライベート鍵および対応するペアリング公開鍵を生成する工程をさらに含む、請求項１５に記載の方法。
【請求項１７】
前記ペアリングプライベート鍵および対応するペアリング公開鍵は、事前に構成される、請求項１５に記載の方法。
【請求項１８】
前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可されない場合は、前記相互認証セッションの完了を拒否する工程をさらに含む、請求項１１に記載の方法。
【請求項１９】
前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可されない場合は、前記リモートペアリングサービスを利用しない片方向認証を行う工程をさらに含む、請求項１８に記載の方法。
【請求項２０】
前記アクセサリデバイスが前記ホストコンピューティングデバイスと共に使用されることが許可されるかどうかを決定する工程は、前記相互認証セッションの前記初期部分において前記アクセサリデバイスから受け取ったコンフィギュレーション情報を検査する工程を含む、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  偽造コンピューティングデバイスアクセサリは、正当なアクセサリの製造者および／または販売者に悪影響を与えることがある。したがって、コンピュータアクセサリ偽造の防止を支援するために種々の戦略が使用される。たとえば、いくつかの偽造防止策では、各真正なデバイス上のセキュリティチップを利用する（このセキュリティチップは、ホストコンピュータがデバイスを認証することを可能にする）。
【０００２】
[0002]  真正なアクセサリデバイスであっても、不正な使用の形態に対して脆弱なことがある。たとえば、いくつかのアクセサリデバイスでは、より高価なデバイスがより多くの使用可能な付加価値機能を有するように、使用可能な付加価値機能が異なる様々な価格帯で入手可能な場合がある。これにより、消費者がその必要および／または所望に応じて適切なまたは望ましい製品を選ぶことが可能になり得るが、偽造者および／またはハッカーがより低コストのモデルのデバイス上で許可なしに機能をロック解除するための機会を提供することにもなり得る。
【発明の概要】
【０００３】
[0003]  アクセサリデバイスの部品の製造からアクセサリの消費者の使用に至るまで、コンピュータアクセサリデバイスのセキュリティに関する種々の実施形態が開示される。たとえば、１つの非限定的実施形態では、アクセサリデバイスとの相互認証セッションの初期部分を実施し、ホストコンピューティングデバイスおよびアクセサリデバイスに関する情報をコンピュータネットワークを介してリモートペアリングサービスに送るように構成される、ホストコンピューティングデバイスが提供される。ホストコンピューティングデバイスは、リモートペアリングサービスから、リモートペアリングサービスのプライベート鍵を用いて暗号化されたペアリング証明書を受け取り、リモートペアリングサービスからのペアリング証明書を使用して、アクセサリデバイスとの相互認証を完了するようにさらに構成される。
【０００４】
[0004]  この概要は、以下の発明を実施するための形態でさらに説明される概念から選択したものを簡略化した形態で紹介するために設けられている。この概要は、特許請求される主題の主要な特徴または本質的特徴を特定するものではなく、特許請求される主題の範囲を限定するために使用するものでもない。さらに、特許請求される主題は、本開示の任意の部分に記載された任意またはすべての欠点を解決する実装形態に限定されない。
【図面の簡単な説明】
【０００５】
【図１】[0005]コンピューティングデバイスおよびアクセサリデバイスの例示的実施形態を示す図である。
【図２】[0006]アクセサリデバイス部品製造と最終使用との間の種々の例示的工程を概略的に示すブロック図である。
【図３】[0007]部品製造、部品送達、およびデバイス製造においてアクセサリデバイスをセキュアにするための方法の実施形態のフロー図である。
【図４】[0008]アクセサリデバイス組み立て中にアクセサリデバイス上のセキュリティチップをアクティブにするための方法の実施形態を示すフロー図である。
【図５Ａ】[0009]サードパーティリモートペアリングサービスを用いてアクセサリデバイスおよびホストコンピューティングシステムを相互に認証するための方法の実施形態を示すフロー図である。
【図５Ｂ】サードパーティリモートペアリングサービスを介してアクセサリデバイスおよびホストコンピューティングシステムを相互に認証するための方法の実施形態を示すフロー図である。
【図６】[0010]相互認証の際の図５Ａおよび図５Ｂの実施形態のアクセサリデバイス、ホストコンピューティングデバイス、およびリモートペアリングサービスの実施形態を概略的に示すブロック図である。
【図７】[0011]アクセサリデバイスを認証した後にアクセサリデバイスをロック解除するための方法の実施形態を示すフロー図である。
【図８】[0012]図７のアクセサリデバイスの実施形態を概略的に示すブロック図である。
【図９】[0013]コンピューティングシステムの例示的実施形態を示すブロック図である。
【発明を実施するための形態】
【０００６】
[0014]  前述のように、いくつかのコンピュータアクセサリ偽造防止方式は、各真正なデバイス上のセキュリティチップを利用するものであり、このセキュリティチップは、ホストコンピュータがデバイスを認証することを可能にする。しかしながら、そのような偽造防止方式は、アクセサリが接続されるホストコンピューティングデバイスのいかなる知識もなしにアクセサリを認証することがある。さらに、セキュリティチップ自体が盗まれるまたは紛失した場合、セキュリティチップが偽造デバイスを作製するために使用されるおそれがある。
【０００７】
[0015]  さらに、前述のように、真正なアクセサリデバイスであっても、不正な使用の形態に対して脆弱なことがある。たとえば、いくつかのアクセサリデバイスでは、より高価なデバイスがより多くの使用可能な付加価値機能を有することができるように、使用可能な付加価値機能が異なる様々な価格帯で入手可能な場合がある。これにより、消費者がその必要および／または所望に応じて適切なまたは望ましい製品を選ぶことが可能になり得るが、偽造者および／またはハッカーがより低コストのモデルのデバイス上で許可なしに機能をロック解除して支払いなしに付加価値機能を得る機会を提供することにもなり得る。
【０００８】
[0016]  付加価値機能をセキュアにするための以前の解決策は、ファームウェア更新の前にファームウェアイメージの有効性を検査するために秘密鍵の使用に依拠して、不正な更新を防止することがある。しかしながら、各ファームウェアイメージに署名するのに単一の鍵を用いることは、単一の鍵が知られることになった場合、すべてのシステムが危険にさらされることになり得る。
【０００９】
[0017]  したがって、アクセサリの偽造の作製および／または使用の防止に関する種々の問題に対処する実施形態を、本明細書で開示する。たとえば、紛失したまたは盗まれたセキュリティチップの使用を防止するために、いくつかの実施形態は、紛失したまたは盗まれたセキュリティチップが偽造デバイスの作製に使用できないようにセキュリティチップがアクセサリデバイスに組み込まれる工場における個別のセキュリティチップのアクティブ化を対象とする。
【００１０】
[0018]  加えて、実施形態は、コンピューティングデバイスアクセサリおよびホストコンピューティングデバイスの相互認証を対象とする。これは、コンピュータアクセサリのＳＫＵ（stock keeping unit：最小在庫管理単位）の識別を容易にすることができる。たとえば、特定のホストとの使用を意図したＳＫＵを認証するために、相互認証を使用することができる一方、異なるホストを意図した別のＳＫＵを認証するために、片方向認証を使用することができる。これはまた、特定のアクセサリデバイスと特定のホストコンピューティングシステムとの間の「ペアリング」機能を可能にすることができる。より詳細に後述されるように、そのようなペアリングは、許可されていないアクセサリおよび／または危険にさらされたコンソールがエコシステムの他の部分と共に動作することを制限されるように、リモートサードパーティサービスによって制御され得る。
【００１１】
[0019]  さらに他の実施形態は、付加価値機能の不正なロック解除を防止するためのアクセサリデバイスのセキュアなロック解除を対象とする。より詳細に後述されるように、これらの実施形態では、セキュアなハードウェアモジュールをセキュアではないチップ（たとえば、システムオンチップ（ＳＯＣ））上で利用して、ＳＯＣチップ上のファームウェアではなくセキュリティチップがロック解除プロセスを制御するように、セキュリティチップとＳＯＣとの間のセキュアな相互作用を実現することができる。これは、ＳＯＣ設計にハードウェアセキュリティモジュールを組み込むことによって、セキュアなＳＯＣチップを作製するセキュリティの専門知識を持たないＳＯＣの製作者を可能にすることができる。
【００１２】
[0020]  図１は、本開示の実施形態によるコンピューティングシステムおよびアクセサリデバイスのための例示的使用環境１００を示す。使用環境１００は、表示デバイス１０４と通信するビデオゲームコンソールの形態でコンピューティングデバイス１０２を備え、コンピューティングデバイス１０２は、表示デバイス１０４にビデオコンテンツを出力することができるようにされている。ユーザ１０６は、１つまたは複数の使用環境センサを介してユーザ１０６を感知するように構成されたセンサシステムの形態のアクセサリデバイス１０８を介して、コンピューティングデバイス１０２と対話するものとして示されている。アクセサリデバイス１０８は、２次元画像センサ（たとえば、ＲＧＢもしくはグレースケールセンサ）、深度画像センサ（たとえば、飛行時間もしくは構造化光深度センサ）、ステレオカメラシステム、１つまたは複数のマイク（たとえば、指向性マイクアレイ）、および／または任意の他の適切なセンサを含むがこれらに限定されない、任意の適切な１つまたは複数のセンサを含むことができる。本明細書ではホストビデオゲームコンソールおよびアクセサリセンサシステムの文脈で説明しているが、開示される実施形態は、任意の適切なホストおよびアクセサリシステムに適用され得ることは理解されよう。
【００１３】
[0021]  図２は、アクセサリデバイスの製造および使用の例示的方法２００の種々の工程を示すブロック図である。まず、方法２００は、部品製造者において、２０２および２０４でそれぞれ示されるように、アクセサリデバイスのセキュリティチップおよび他の部品を製造することを含む。種々の部品は、異なる場所で作製されてよく、次いで、アクセサリデバイス製作のために組立て施設に輸送され得ることは理解されよう。そして、方法２００は、２０６で示されるように、アクセサリを組立てるために使用されるセキュリティチップおよび他の部品をアクセサリデバイス製造者へ輸送することを含む。前述のように、セキュリティチップは、アクセサリデバイス製造施設でアクティブにされるまで非アクティブであるように製造することができ、したがって、セキュリティチップは、アクセサリデバイス製造の前に紛失したまたは盗まれた場合に偽造アクセサリで使用することができない。
【００１４】
[0022]  アクセサリデバイス製造施設において、部品製造者から受け取られた部品からアクセサリが製造される。後述するように、各アクセサリのためのセキュリティチップは、そのチップを組み込むアクセサリの製造中または製造後にアクティブにすることができる。次いで、製造されたアクセサリは、それぞれ２０８および２１０で、アクセサリの設計者／販売者に移送され、そして消費者に販売される。次いで、消費者が、正規のアクセサリデバイスを適切なホストデバイスに接続することができる。認証およびロック解除されると、使用し楽しむために認証されアクティブにされたアクセサリデバイスが得られる。
【００１５】
[0023]  図３は、アクセサリデバイス製造の前に紛失した、盗まれた、または他の形で不適切に取得されたセキュリティの不正な使用を防止するための方法３００の実施形態を示す。簡単に言えば、方法３００はプライベート／公開鍵を利用し、公開鍵はセキュリティチップ製造者に提供され、プライベート鍵はセキュアな条件下でアクセサリデバイス製造者に提供される。プライベート鍵は、本明細書では「セキュリティモジュール」と呼ばれる、適切なセキュリティ特性を有する（たとえば、リバースエンジニアリングが難しい）スマートカードまたは他のコンピューティングデバイスの形態で、セキュリティチップ製造者へ提供することができる。さらに、セキュリティモジュールは、該セキュリティモジュールによってアクティブにできるセキュリティチップの数を制限するように実行可能なコードを含むことができる。このようにして、たとえばセキュリティモジュールに記憶されたプライベート鍵の違反等によるセキュリティ違反は、許可されたアクティブ化の数に制限することができ、したがってセキュリティ侵害の影響を制限することができる。さらに、いくつかの実施形態では、セキュリティモジュールは、アクセサリデバイスの異なるＳＫＵに対する異なるプライベート鍵（それぞれが対応する公開鍵を伴う）を含むことができる。
【００１６】
[0024]  方法３００は、セキュリティチップ製造者、アクセサリデバイス製造者、およびデバイス設計者／販売者のそれぞれで行われるプロセスを示し、デバイス設計者／販売者は、販売用のアクセサリデバイスを製造するためにアクセサリデバイス製造者を利用する。方法３００は、３０２で、アクセサリデバイスセキュリティチップについて、公開鍵を、またはいくつかの実施形態ではＳＫＵ毎の公開鍵をセキュリティチップ製造者に送ることを含み、３０４で、セキュリティチップ製造者において公開鍵を受け取ることを含む。方法３００は、３０６で、公開鍵毎のプライベート鍵を有するセキュリティモジュールをアクセサリデバイス製造者に送ることをさらに含み、アクセサリデバイス製造者において、３０８でセキュリティモジュールが受け取られる。
【００１７】
[0025]  方法３００は、３１０で、セキュリティチップを製造することをさらに含み、各セキュリティチップは、適切な公開鍵（たとえば、アクセサリデバイスの意図されたＳＫＵに対する適正な公開鍵）を含む。セキュリティチップは、チップファームウェアが当初は「Ａｃｔｉｖａｔｅ（アクティブ化）」コマンドのみに応答するように、非アクティブ状態にあるように製造され、アクティブ化が完了するまで、アクティブ化プロセスで使用される動作以外の他のセキュリティチップ動作を行わない。セキュリティチップを組み込んだアクセサリデバイスは、セキュリティチップがアクティブにされアクセサリデバイスが認証されるまでは動作しないことは理解されよう。
【００１８】
[0026]  適切な公開鍵を有する非アクティブのセキュリティチップを製造すると、方法３００は、３１２で、セキュリティチップをアクセサリデバイス製造者に送ることを含み、アクセサリデバイス製造者において、３１４でセキュリティチップが受け取られる。次に、３１６で、方法３００は、アクセサリデバイスを組み立て、次いでセキュリティチップをアクティブにすることを含む。例示的セキュリティチップアクティブ化プロセスの詳細については、図４を参照して後述する。アクセサリデバイスの製造が完了しセキュリティチップをアクティブにすると、方法３００は、３１８で、アクセサリデバイスを設計者／販売者に送ることを含み、設計者／販売者は、３２０でデバイスを消費者に販売する。
【００１９】
[0027]  前述のように、いくつかの実施形態では、セキュリティモジュールまたは他のプライベート鍵ストレージデバイスは、セキュリティモジュールによって実行できるセキュリティチップロック解除の数を制限する、実行可能コマンドを含むことができる。したがって、許可された数のセキュリティチップをアクティブにした後、方法３００は、３２２で、そのセキュリティモジュールに対する許可されたセキュリティチップアクティブ化の限度に達することを含む。この例では、新しいセキュリティモジュールがアクセサリデバイス設計者／販売者（もしくは、セキュリティチップ公開／プライベート鍵を管理する他の当事者）から取得されるか、または現在のセキュリティモジュールおよび現在の公開／プライベート鍵の限度が増大されない限り、追加のセキュリティチップがアクティブにされることはない。セキュリティモジュール毎のアクティブにできるセキュリティチップの数に限度を課すことにより、セキュリティモジュールに対するプライベート鍵の違反の悪影響を制限するのを助けることができる。
【００２０】
[0028]  いくつかの実施形態では、セキュアな通信チャネルを使用して、セキュリティチップアクティブ化の限度の更新をセキュリティモジュールに送信することができる。したがって、方法３００は、（セキュリティモジュールの違反が発生していないことを想定して）そのセキュリティモジュールに対するチップアクティブ化限度を増大する命令を送信することを含む。次いで、方法３００は、３２６で、セキュリティモジュールにおける限度増大を受け取り、３２８で、追加のセキュリティチップをアクティブにすることを含む。セキュリティモジュール上のプライベート鍵に違反していると決定された場合、違反されたプライベート鍵の代わりに新しい公開／プライベート鍵を生成して、その新しいプライベート鍵を新しいセキュリティモジュールを介してアクセサリデバイス製造者に転送することができることは理解されよう。
【００２１】
[0029]  セキュリティチップは、アクセサリ製造の場所で任意の適切なやり方でアクティブにすることができる。図４は、アクセサリデバイス製造者の場所でセキュリティチップをアクティブにするための方法の例示的実施形態を示すフロー図を示す。図４は、セキュリティチップ、アクセサリデバイス、およびアプリケーションのそれぞれで発生するプロセスを示し、アプリケーション（たとえば、コンピュータ上で実行されているスマートカードインターフェースアプリケーション）は、セキュリティモジュールとの通信を可能にするように構成されている。
【００２２】
[0030]  方法４００は、４０２で、チップ識別番号、およびいくつかの実施形態ではセキュリティチップのＳＫＵを求めて、アプリケーションからの要求をセキュリティチップに送ることを含む。セキュリティチップは、４０４で要求を受け取る。応答して、セキュリティチップは、４０６で乱数を生成し、４０８で、乱数、チップ識別番号、およびＳＫＵをアプリケーションに送る。アプリケーションは、４１０で、この情報を受け取ってセキュリティモジュールに転送し、セキュリティモジュールにおいて、４１２でこの情報が受け取られる。受信すると、セキュリティモジュールは、４１４で、適切なプライベート鍵（ＳＫＵに対応するプライベート鍵）を用いて乱数、チップＩＤ、およびＳＫＵに署名（サイン）し、４１６で、署名した値をアプリケーションに送る。セキュリティモジュールはさらに、４１７で示されるように、アクティブ化限度カウンタを減分（または特定の実装形態によっては増分）することができる。他の実施形態では、アクティブ化限度カウンタは、チップアクティブ化が完了した後に減分され得る。
【００２３】
[0031]  続いて、方法４００は、４１８で、署名された値を受け取り、署名された値をセキュリティチップに転送することを含む。次に、セキュリティチップは、４２０で、製造の際にセキュリティチップ上に含められた公開鍵を使用して、署名された値を検証し、次いで、４２２で、署名された値が、前もってセキュリティモジュールに送られた適正な値と一致するかどうかを決定する。値が適正でない場合、方法４００は、４２４でセキュリティチップをアクティブにすることを含む。他方で、値が一致しない場合、方法４００は、４２６でセキュリティチップをアクティブにしないことを含む。
【００２４】
[0032]  セキュリティチップがアクティブにされた後、アクセサリデバイスは消費者に販売される準備ができる。前述のように、アクセサリデバイスは、追加のセキュリティ条件が満たされるまでアクセサリデバイスが使用されるのを防止するセキュリティ手段を含むことができる。たとえば、アクセサリデバイスは、それが認証されるまでは最初にホストデバイスに接続されたときに機能しないように構成され得る。いくつかの実施形態では、アクセサリデバイスがホストコマンドまたはメッセージに単に応答するように、そのような認証プロセスをホストから駆動することができる。たとえば、コマンドに応じて、アクセサリデバイスは、検証のためにホストにデータを送るか、またはそれが適切な認証プロトコルに正しく従っていることを検証するためにホストから送られたデータを処理する。認証が正常に完了した場合のみ、デバイスは通常の機能を開始することになる。
【００２５】
[0033]  いくつかの例では、認証は、アクセサリデバイスがホストを認証しない片方向認証であり得る。他の実施形態では、認証は、ホストとアクセサリデバイスが互いに認証するように相互であり得る。これは、アクセサリデバイスがそのホストと特定的に関連付けられるように、ホストとアクセサリデバイスの「ペアリング」を確立することを可能にすることができる。
【００２６】
[0034]  図５Ａおよび図５Ｂは、ホストコンピューティングデバイスおよびアクセサリデバイスを相互に認証するための方法５００の実施形態を示すフロー図を示す。適切なホストおよびアクセサリデバイスの例は、請求項１に示されるビデオゲームコンソールおよびセンサシステムを含むが、これらに限定されない。簡単に図６を参照すると、方法５００は、セキュリティチップ６０２を備えるアクセサリデバイス６００と、ホストコンピューティングデバイス６０４と、相互認証を仲介するリモートペアリングサービス６０６とのそれぞれで行われるプロセスを示している。相互認証プロトコルの種々の部分がアクセサリデバイスによって行われるものとして説明され得るが、メッセージを処理するエンティティは実際にはデバイス内部のセキュリティチップとすることができ、アクセサリデバイスファームウェアはホストとセキュリティチップの間で単にメッセージを輸送することは理解されよう。これは、中間者攻撃を防止するのを助けることができる。
【００２７】
[0035]  方法５０２は、５０２で、「ホストハロー（host hello）」メッセージを、ホストコンピューティングデバイスからアクセサリデバイスに送ることを含み、ここで、ホストハローメッセージはランダムノンス（random nonce）を含む。アクセサリデバイスは、５０４で、ホストハローメッセージを受け取り、５０６で、別のランダムノンスを有する「デバイスハロー（device hello）」メッセージを送り、デバイスハローメッセージは、５０８でホストによって受け取られる。さらに、５１０で、アクセサリデバイスはまた、セキュリティチップ証明書をホストデバイスに送り、５１２で、セキュリティチップ証明書は、ホストによって受け取られ、（たとえば、デバイス証明書又はセキュリティチップ証明書を発行した認証局と連絡することにより）検証されて、セキュリティチップ証明書が有効であることが確認される。さらに、いくつかの実施形態では、ホストは、認証のこの初期部分における相互認証セッションの初期部分においてアクセサリデバイスからコンフィギュレーション情報を受け取り、コンフィギュレーション情報を検査することにより、アクセサリデバイスがホストデバイスと共に使用されるのを許可されないことが決定された（たとえば、アクセサリデバイスが不適正なＳＫＵである）場合、認証を拒否することができる。
【００２８】
[0036]  次に、ホストおよびリモートペアリングサービスは、５１３および５１４で示されるように、セキュアな接続を確立してペアリングプロセスを開始する。次いで、ホストは、５１６で示されるように、ペアリング機能を支援するためのペアリングプライベート／公開鍵を取得する。ペアリングプライベート／公開鍵ペアは、ペアリングプロセスの一部として生成する、または事前に構成することができる。プライベート／公開鍵ペアを取得した後、ホストは、５１８で、セキュリティチップ証明書およびペアリングプライベート鍵をリモートペアリングサービスに送り、それらは、５２０で受け取られる。
【００２９】
[0037]  この情報を受信すると、リモートペアリングサービスは、５２２で、ペアリングがホストおよびアクセサリデバイスについて許可されるべきかどうかを決定することができる。たとえば、いずれかのデバイスが危険にさらされていることが知られている場合、アクセサリがホストに対する不適正なＳＫＵである場合、および／または他の潜在的問題が知られている場合、５２４で示されるように、ペアリングを拒否することができる。他方で、５２２で、ホストとアクセサリデバイスの間のペアリングが許可されることが決定された場合、リモートペアリングサービスは、５２６で、ペアリング証明書をホストに送ることができ、ここで、ペアリング証明書は、ペアリング公開鍵、および（５１６でホストによって取得されたペアリング鍵から区別される）ペアリングサービスのプライベート鍵を用いてすべて署名されたセキュリティチップ証明書のダイジェストを含む。リモートペアリングサービスはまた、５２７で示されるように、ホストデバイスおよびアクセサリデバイスの１つまたは複数を伴う将来のペアリングが許可されるかどうかを決定する際に使用するためのホストデバイスおよびアクセサリデバイスに関する識別情報を記憶することができる。
【００３０】
[0038]  ホストは、５２８で、ペアリング証明書を受け取り、次いで５３０で、ペアリング証明書を「ホスト証明書（host certificate）」としてアクセサリデバイスに転送する。アクセサリデバイスは、５３２で、ホスト証明書を受け取り、５３４で、リモートペアリングサービスの公開鍵を用いてホスト証明書を検証する。この公開鍵は、５２６でペアリング証明書を暗号化するために使用されたプライベート鍵に対応する。公開鍵を用いてホスト証明書を検証した後、５３６で示されるように、アクセサリデバイスは、ホスト証明書に含まれる情報を検証することができる。ペアリング証明書内の情報が検証されない場合、ペアリングプロセスを中止することができる。
【００３１】
[0039]  ホストはまた、５３８で、「プリマスターシークレット（pre-master secret）」を生成し、アクセサリデバイス上のセキュリティチップの公開鍵を用いてプリマスターシークレットを暗号化し、したがって、プライベート鍵保有者（たとえば、アクセサリデバイス上のセキュリティチップ）だけがそれを復号することができる。プリマスターシークレットは、乱数など任意の適切な情報を含むことができる。ホストは、５４１で、プリマスターシークレットをアクセサリデバイスに送り、アクセサリデバイスは、５４２で、プリマスターシークレットを受け取る。ホストはさらに、５４４で、プリマスターシークレット、およびホスト／アクセサリ「ハロー（hello）」メッセージ交換中に交換された２つのノンスを用いて、「マスターシークレット（master secret）」を生成する。
【００３２】
[0040]  プリマスターシークレットを受信すると、アクセサリデバイスは、５４８で示されるように、アクセサリデバイスプライベート鍵を用いてプリマスターシークレットを復号することができ、５５０で示されるように、この値および２つの「ハロー」ノンスからマスターシークレットを導き出すことができる。次に、ホストは、５５２で、「ホスト証明書検証（host certificate verify）」メッセージを生成し、５１６で取得したプライベートペアリング鍵を用いてメッセージに署名する。次いで、ホストは、５５４で、ホスト証明書検証メッセージをアクセサリデバイスに送る。アクセサリデバイスは、５５６で、ホスト証明書検証メッセージを受け取り、５５８で、ホスト証明書に含まれたペアリング公開鍵を用いて、ホスト証明書検証メッセージを検証する。これは、ホスト証明書内のペアリング公開鍵が、リモートサービスにペアリング公開鍵を提供した同じデバイスによって送られたということを、アクセサリデバイスによって確認することを可能にする。
【００３３】
[0041]  続けて、５６０で、ホストは、「ホスト完了（host finished）」メッセージを生成してアクセサリデバイスに送り、アクセサリデバイスは、５６２でメッセージを受け取る。同様に、５６４で、アクセサリデバイスは、「デバイス完了（device finished）メッセージ」を生成してアクセサリデバイスに送り、このメッセージは、５６６でホストによって受け取られる。相互認証プロセスが完了すると、アクセサリデバイスは、通常の機能をロック解除して開始する。方法５００の相互認証プロセスは、ＴＬＳ（トランスポート層セキュリティ）相互認証など他の相互認証プロセスに優る利点を提供することができる。たとえば、方法５００を用いると、各ホストおよびデバイスペアはそれ自体の鍵を有するので、１つを危険にさらしても、エコシステムの大規模な破壊につながらない。さらに、ペアリングがオンラインサービスによって制御されるので、オフライン攻撃はプロセスに対して成功することがない。加えて、セキュリティチップそれ自体がアクセサリデバイス側のプロセスを制御するので、セキュリティチップは様々な異なるデバイスで使用することができ、したがって、認証プロセスを他のアクセサリに適合することが可能である。
【００３４】
[0042]  前述のように、いくつかの例では、片方向認証がアクセサリデバイスのロック解除を認証するために利用され得る。そのような認証は、図５Ａ〜５Ｂを参照して説明した認証と類似し得るが、リモートサービスおよびペアリング証明書に関する工程が省略されており、したがって、プリマスターシークレットメッセージが、ホストでセキュリティチップ証明書を受け取り検証した後にホストからアクセサリに送られる最初のメッセージである。さらに、いくつかの実施形態では、異なるアクセサリＳＫＵが異なる認証プロセスを利用することができる。たとえば、特定のホストとの使用を意図したＳＫＵは相互認証を利用することができる一方、より広い範囲のコンピューティングデバイス（たとえば、ＰＣタイプデバイス）との使用を意図したＳＫＵは片方向認証を利用することができる。そのような実施形態では、デバイスが不適正なＳＫＵであるためにホストが相互認証を拒否した場合、ホストは、アクセサリデバイスの使用を可能にするために片方向認証を行うことができる。任意の適切な片方向認証プロセスが使用されてよいことは理解されよう。
【００３５】
[0043]  図７は、認証後にアクセサリデバイスをロック解除するための方法７００の例示的実施形態を示すフロー図を示す。簡単に図８を参照すると、方法７００は、アクセサリデバイス８０４内のセキュリティチップ８００およびシステムオンチップ（ＳＯＣ）８０２で行われるプロセスを示す。ＳＯＣは、セキュアでないファームウェア８０５と、セキュリティチップ８００のセキュアな領域をＳＯＣ８０２内へ拡張するためにＳＯＣ上のハードウェアとして実装されたセキュリティハードウェアモジュール８０６とを備える。セキュリティハードウェアモジュール８０６は、セキュリティ状態情報をセキュリティチップから直接的にセキュリティハードウェアモジュールにセキュアに転送する能力を追加するために、任意の所望の非セキュア部品に組み込まれてよい。そして、セキュリティハードウェアモジュールはセキュリティ状態を使用して、ＳＯＣ内の特定の機能を有効または無効にすることができる。
【００３６】
[0044]  セキュリティハードウェアモジュールを定義することにより、ＳＯＣのセキュリティを確証するための作業の範囲が低減する。ＳＯＣの大部分は、信頼できないと見なされ得るが、一方セキュリティハードウェアモジュール（ＳｅｃｕｒｉｔｙＨａｒｄｗａｒｅＭｏｄｕｌｅ）は信頼される。さらに、セキュリティハードウェアモジュールのハードウェアブロックの使用は、セキュアな製品の開発の技術的能力および／または経験を有することがないベンダーによって定義されたデバイスに、このハードウェアブロックを組み込むことを可能にすることができる。
【００３７】
[0045]  セキュリティハードウェアモジュール８０６は、任意の適切な部品を備えることができる。たとえば、図示の実施形態では、セキュリティハードウェアモジュール８０６は、乱数発生器８０８または他の適切なエントロピー源、ハードウェアスニッフィングインターフェース（hardware sniffing interface）８１０、および不揮発性メモリ８１２を備える。乱数発生器８０８は、セキュリティチップ８００に送るためのチャレンジメッセージを定式化する際に使用することができる。ハードウェアスニッフィングインターフェース８１０は、セキュリティハードウェアモジュール８０６で受け取られたメッセージが、ＳＯＣ上の潜在的に危険にさらされたファームウェアからではなくＳＯＣの外部のセキュリティチップ８００から受け取られたかどうかを決定するために使用することができる。不揮発性メモリ８１２は、セキュリティチップとの通信を暗号化するために使用される鍵を記憶するために使用することができる。いくつかの実施形態では、鍵は、セキュリティチップ上に同じ鍵が記憶されるように、対称鍵にすることができ、また、各アクセサリデバイスがそれ自体の対称鍵ペアを有するように、そのセキュリティチップ／ＳＯＣペアに対して特定的にすることができる。他の実施形態では、任意の他の適切な鍵を使用することができる。
【００３８】
[0046]  図７を参照すると、方法７００は、７０１で、ロック解除要求を（たとえば、認証が完了した後にホストから）受け取り、７０２で、ＳＯＣ上のファームウェアからＳＯＣ上のセキュリティハードウェアモジュールへ乱数の生成を求める要求を送ることを含む。応答して、セキュリティハードウェアモジュールは、７０４で乱数を生成し、７０６で共有鍵を用いて乱数を暗号化する。次いで７０８で、暗号化された乱数はファームウェアに提供され、したがって、ファームウェアには、暗号化されたバージョンの乱数のみが分かる。ファームウェアは、７１０で示されるように、暗号化された乱数を受け取って、暗号化された乱数をセキュリティチップに転送する。セキュリティチップは、７１２で、暗号化された乱数を受け取り、７１４で、共有鍵を用いて乱数を復号し、次いで７１６で、暗号化された乱数に対して演算を行って新しい値を形成する。任意の適切な演算が行われてよい。１つの非限定的例は、２の補数演算である。
【００３９】
[0047]  乱数に対して演算を行って新しい値を生成した後、セキュリティチップは、７１８で、共有鍵を用いて新しい値を暗号化し、７２０で、暗号化された新しい値をＳＯＣに送る。ＳＯＣは、７２２で、暗号化された新しい値を受け取り、セキュリティハードウェアモジュールに転送する。セキュリティハードウェアモジュールは、７２４で、ハードウェアスニッフィングインターフェースを介して、暗号化された新しい値がＳＯＣ上の場所から発生したのではなくＳＯＣの外部から受け取られたことを確認する。次に、セキュリティハードウェアモジュールは、７２８で、暗号化された新しい値を共有鍵を用いて復号し、７１６で行われた演算の逆演算を行って、乱数の元の値を取得する。次いで、セキュリティハードウェアモジュールは、セキュリティチップが真正であることを保証するために逆演算の結果を元の乱数と比較する。比較が正しい場合、セキュリティハードウェアモジュールはＳＯＣをロック解除することができ、それによりアクセサリデバイスが機能することを可能にする。
【００４０】
[0048]  いくつかの実施形態では、セキュリティチップによって送られるロック解除命令は、デバイスがロック解除されるべきであることを示す単一ビットを含むことができる。他の実施形態では、ＳＯＣの様々な機能をロック解除するために複数ビットがセキュリティチップによって送られる（たとえば、各ビットが別々の機能を制御する）ことがある。これにより、ＳＫＵ識別の追加的機構を提供することができる。
【００４１】
[0049]  上記の実施形態は例示のために提示されており、セキュリティチップアクティブ化、相互または片方向認証、およびデバイスロック解除のための任意の他の適切な方法が使用されてもよいことは理解されよう。たとえば、セキュリティチップをアクティブにするための方法の別の例示的実施形態は、以下のようになる。まず、チップ製造時に、セキュリティチップのＳＫＵ毎にランダムマスター鍵が生成される。次に、ランダムマスター鍵を使用し、さらにチップ毎ＩＤを使用し、チップ毎アクティブ化鍵を、ＨＭＡＣ−ＳＨＡ２５６などのＨＭＡＣアルゴリズムを使用して導き出すことができる。
【００４２】
[0050]  ＰｅｒＣｈｉｐＡｃｔｉｖａｔｉｏｎＫｅｙ＝ＨＭＡＣ−ＳＨＡ２５６（ＭａｓｔｅｒＫｅｙ，ＰＵＩＤ）
【００４３】
[0051]  チップ毎アクティブ化鍵は、セキュリティチップにセキュアに記憶され、セキュリティチップの外部では読取り不可能である。これは、セキュリティチップ毎に行われるので、すべてのチップが別々のアクティブ化鍵を記憶している。したがって、特定のチップのアクティブ化鍵が危険にさらされても、他のチップは影響されない。これは、アクティブ化鍵に関する攻撃に対する付加的セキュリティを提供するのを助けることができる。
【００４４】
[0052]  次に、アクセサリデバイス製造時に、マスターキーは、セキュリティモジュール（たとえばスマートカード）を介してセキュリティチップ工場からアクセサリデバイス工場へセキュアに移送される。スマートカードは、セキュリティチップ識別番号を入力として受け入れ、セキュリティチップ製造時に使用された同じアルゴリズムを使用してチップ毎アクティブ化鍵を導き出し、アクティブ化鍵を使用して別のダイジェストを生成することができる。
【００４５】
[0053]  ＡｃｔｉｖａｔｉｏｎＤｉｇｅｓｔ＝ＨＭＡＣ−ＳＨＡ２５６（ＰｅｒＣｈｉｐＡｃｔｉｖａｔｉｏｎＫｅｙ，ＰＵＩＤ＋ＡｄｄｉｔｉｏｎａｌＴｒａｃｋｉｎｇＩｎｆｏ）
【００４６】
[0054]  アクティブ化ダイジェスト（activation digest）は、セキュリティチップに対する「Ａｃｔｉｖａｔｅ（アクティブ化）」コマンドの入力である。セキュリティチップは、この入力を受け取ると、アクティブ化鍵のそれ自体のコピーを使用して同じダイジェストを計算するように構成され得る。ダイジェストが入力に一致した場合、セキュリティチップは、それ自体をアクティブにして通常の機能を開始することができる。
【００４７】
[0055]  ＡｃｔｉｖａｔｉｏｎＤｉｇｅｓｔの計算において、値「ＡｄｄｔｉｏｎａｌＴｒａｃｋｉｎｇＩｎｆｏ」は、各チップのアクティブ化を追跡するために使用することができる。任意の適切な値が使用されてよい。たとえば、いくつかの実施形態では、ＡｄｄｔｉｏｎａｌＴｒａｃｋｉｎｇＩｎｆｏは、いくつのセキュリティチップをセキュリティモジュールがアクティブにしたかを記録するシーケンス番号（ＳｅｑｕｅｎｃｅＮｕｍｂｅｒ）とすることができる。この情報も、以下のようにＡｃｔｉｖａｔｅコマンドの入力としてセキュリティチップに渡すことができる。
【００４８】
[0056]  Ａｃｔｉｖａｔｅ（ＳＭＩＤ，ＳｅｑｕｅｎｃｅＮｕｍｂｅｒ，ＡｃｔｉｖａｔｉｏｎＤｉｇｅｓｔ）。
【００４９】
[0057]  さらに、この情報は、アクティブ化後にチップ内部に安全に記憶することもでき、それにより、後で、セキュリティチップは、任意選択によりこの情報をオンラインシステムに報告することができ、オンラインシステムは、各チップおよびそのアクティブ化ステータスも追跡することができる。これは、セキュリティのさらに別の層を追加することができ、セキュリティモジュールがやはり盗まれ（しかしマスター鍵がまだ開示されていない）場合、オンラインシステムは、盗まれたセキュリティモジュールのいくつのチップがアクティブにされているかを知ることができる。さらに、前述のように、各セキュリティモジュールは、それがいくつかのチップをアクティブにできるかに関して制限することもでき、これは、盗まれたセキュリティモジュールによって引き起こされる損害を減らすために役立つ。セキュリティモジュールは、追加のセキュリティを提供するために保護されたパスワードとすることができる。アクティブ化鍵はこのアクティブ化プロセスについてチップ毎にあるので、盗まれたチップが他のチップを危険にさらすことにならない。
【００５０】
[0058]  いくつかの実施形態では、上述の方法およびプロセスが、１つまたは複数のコンピューティングデバイスのコンピューティングシステムに連結され得る。具体的には、そのような方法およびプロセスは、コンピュータアプリケーションプログラムもしくはサービス、アプリケーションプログラミングインターフェース（ＡＰＩ）、ライブラリ、および／または他のコンピュータプログラム製品として実装することができる。
【００５１】
[0059]  図９は、上述の方法およびプロセスの１つまたは複数を実施することができるコンピューティングシステム９００の非限定的な実施形態を示す。コンピューティングシステム９００は簡略化した形態で示されている。実質的に任意のコンピュータアーキテクチャが本開示の範囲から逸脱することなく使用され得ることは理解されよう。様々な実施形態において、コンピューティングシステム９００は、メインフレームコンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ホームエンターテイメントコンピュータ、アクセサリデバイス、ネットワークコンピューティングデバイス、ゲームデバイス、モバイルコンピューティングデバイス、モバイル通信デバイス（たとえばスマートフォン）、スマートカードなどの形態を取ることができる。コンピューティングシステムの例は、種々のアクセサリデバイス、ホストデバイス、およびスマートカード、ならびに上記の他のコンピューティングデバイスを含むが、これらに限定されない。
【００５２】
[0060]  コンピューティングシステム９００は、論理サブシステム９０２およびストレージサブシステム９０４を含む。コンピューティングシステム９００は、任意選択により、表示サブシステム９０６、入力サブシステム９０８、通信サブシステム９１０、および／または  図９に図示されない他のコンポーネントを含むことができる。
【００５３】
[0061]  論理サブシステム９０２は、命令を実行するように構成された１つまたは複数の物理デバイスを含む。たとえば、論理サブシステムは、１つまたは複数のアプリケーション、サービス、プログラム、ルーチン、ライブラリ、オブジェクト、コンポーネント、データ構造、または他の論理構造の部分である命令を実行するように構成することができる。そのような命令は、タスクを実行し、データ型を実装し、１つもしくは複数のコンポーネントの状態を変化させ、または他の形で所望の結果に到達するように実装することができる。
【００５４】
[0062]  論理サブシステムは、ソフトウェア命令を実行するように構成された１つまたは複数のプロセッサを含むことができる。追加的または代替的に、論理サブシステムは、ハードウェアまたはファームウェア命令を実行するように構成された１つまたは複数のハードウェアまたはファームウェア論理マシンを含むことができる。論理サブシステムのプロセッサは、シングルコアであってもマルチコアであってもよく、そこで実行されるプログラムは、順次、並列、または分散処理されるように構成することができる。論理サブシステムは、任意選択により、２つ以上のデバイスにわたり分散された個別のコンポーネントを含むことができ、それらは、遠隔に配置され、および／または協調処理のために構成され得る。論理サブシステムの態様は、クラウドコンピューティング構成で構成された遠隔でアクセス可能なネットワーク化されたコンピューティングデバイスによって仮想化され実行され得る。
【００５５】
[0063]  ストレージサブシステム９０４は、本明細書に記載の方法およびプロセスを実装するように論理サブシステムによって実行可能なデータおよび／または命令を保持するように構成された、１つまたは複数の物理的な非一時的デバイスを含む。そのような方法およびプロセスが実装されたとき、ストレージサブシステム９０４の状態は、たとえば異なるデータを保持するように、変化することができる。
【００５６】
[0064]  ストレージサブシステム９０４は、取外し可能な媒体および／または内蔵デバイスを含むことができる。ストレージサブシステム９０４は、特に、光メモリデバイス（たとえば、ＣＤ、ＤＶＤ、ＨＤ−ＤＶＤ、ブルーレイディスクなど）、半導体メモリデバイス（たとえば、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなど）、および／または磁気メモリデバイス（たとえば、ハードディスクドライブ、フロッピーディスクドライブ、テープドライブ、ＭＲＡＭなど）を含むことができる。ストレージサブシステム９０４は、揮発性、不揮発性、動的、静的、読取り／書込み、読取り専用、ランダムアクセス、順次アクセス、位置アドレス可能、ファイルアドレス可能、および／またはコンテンツアドレス可能デバイスを含むことができる。
【００５７】
[0065]  ストレージサブシステム９０４が１つまたは複数の物理デバイスを含むことは理解されよう。しかしながら、いくつかの実施形態では、本明細書に記載の命令の態様は、ストレージデバイスではなく通信媒体を介して、純粋な信号（たとえば、電磁気信号、光信号など）によって伝播することができる。さらに、本開示に関するデータおよび／または他の形態の情報も純粋な信号によって伝播されてよい。
【００５８】
[0066]  いくつかの実施形態では、論理サブシステム９０２およびストレージサブシステム９０４の態様は、本明細書に記載された機能が実施され得る１つまたは複数のハードウェア論理コンポーネントと一体化することができる。そのようなハードウェア論理コンポーネントは、たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途およびプログラム向け集積回路（program- and application-specific integrated circuits：ＰＡＳＩＣ／ＡＳＩＣ）、特定用途およびプログラム向け標準品（program- and application-specific standard products：ＰＳＳＰ／ＡＳＳＰ）、システムオンチップ（ＳＯＣ）システム、ならびにコンプレックスプログラマブルロジックデバイス（complex programmable logic device：ＣＰＬＤ）を含むことができる。
【００５９】
[0067]  用語「モジュール」、「プログラム」、および「エンジン」は、特定の機能を実行するように実装されたコンピューティングシステム９００の態様を説明するために使用され得る。いくつかの事例では、モジュール、プログラム、またはエンジンは、ストレージサブシステム９０４によって保持される命令を実行する論理サブシステム９０２によってインスタンス化することができる。異なるモジュール、プログラム、および／またはエンジンが、同じアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、ＡＰＩ、関数などからインスタンス化され得ることは理解されよう。同様に、同じモジュール、プログラム、および／またはエンジンが、異なるアプリケーション、サービス、コードブロック、オブジェクト、ルーチン、関数などによってインスタンス化され得る。用語「モジュール」、「プログラム」、および「エンジン」は、実行可能なファイル、データファイル、ライブラリ、ドライバ、スクリプト、データベースレコードなどの単体またはグループを包含することができる。
【００６０】
[0068]  本明細書で使用される場合、「サービス」は、複数のユーザセッションにわたって実行可能なアプリケーションプログラムであることは理解されよう。サービスは、１つまたは複数のシステムコンポーネント、プログラム、および／または他のサービスに利用可能とすることができる。いくつかの実装形態では、サービスは、１つまたは複数のサーバ−コンピューティングデバイス上で実行することができる。
【００６１】
[0069]  表示サブシステム９０６は、含まれている場合、ストレージサブシステム９０４により保持されるデータの視覚表示を提供するために使用することができる。この視覚表示は、グラフィカルユーザインターフェース（ＧＵＩ）の形態を取ることができる。本明細書に記載の方法およびプロセスがストレージサブシステムによって保持されるデータを変更し、それによりストレージサブシステムの状態を変化させるように、表示サブシステム９０６の状態は、基礎となるデータの変更を視覚的に表すために同様に変化することができる。表示サブシステム９０６は、仮想的に任意のタイプの技術を利用する１つまたは複数の表示デバイスを含むことができる。そのような表示デバイスは、共有の筐体内で論理サブシステム９０２および／またはストレージサブシステム９０４と組み合わせることができ、あるいは表示デバイスは周辺表示デバイスとすることができる。
【００６２】
[0070]  入力サブシステム９０８は、含まれている場合、キーボード、マウス、タッチスクリーン、ゲームコントローラのような１つまたは複数のユーザ入力デバイスを備える、あるいはそれらとインターフェースをとることができる。いくつかの実施形態では、入力サブシステムは、上述のアクセサリデバイス実施形態のような、選択された自然ユーザ入力（natural user input：ＮＵＩ）構成要素を備える、あるいはそれとインターフェースをとることができる。そのような構成要素は、内蔵されても周辺機器であってもよく、入力動作の変換および／または処理はボード上またはボード外で扱われてよい。例示的ＮＵＩ構成要素は、スピーチおよび／または音声認識のためのマイク、機械視覚および／またはジェスチャ認識のための赤外線、色、立体および／または深度カメラ、動き検出および／または意図認識のためのヘッドトラッカ、アイトラッカ、加速度計および／またはジャイロスコープ、ならびに脳活動にアクセスするための電界センシング構成要素を含むことができる。
【００６３】
[0071]  通信サブシステム９１０は、含まれている場合、コンピューティングシステム９００を１つまたは複数の他のコンピューティングデバイスと通信可能に結合するように構成することができる。通信サブシステム９１０は、１つまたは複数の異なる通信プロトコルに適合した有線または無線通信デバイスを含むことができる。非限定的例として、通信サブシステムは、無線電話網、または有線もしくは無線のローカルエリアもしくは広域ネットワークを介する通信のために構成することができる。いくつかの実施形態では、通信サブシステムは、コンピューティングシステム９００が、インターネットなどのネットワークを介して他のデバイスとの間でメッセージを送信および／または受信することを可能にすることができる。
【００６４】
[0072]  本明細書に記載の構成および／または手法は本質的に例示であり、これらの実施形態または例は、多数の変形が可能であるので、限定的な意味で捉えられるべきではないことは理解されよう。本明細書に記載の特定のルーチンまたは方法は、任意の数の処理戦略のうちの１つまたは複数を表し得る。したがって、例示および／もしくは説明された種々の動作は、例示および／もしくは説明された順序で、他の順序で、並列で、または省略されて実施され得る。同様に、上記のプロセスの順序は変更され得る。
【００６５】
[0073]  本開示の主題は、本明細書に開示された種々のプロセス、システムおよび構成、ならびに他の特徴、機能、動作および／または特性、さらにそれらの任意およびすべての均等物のすべての新規で非自明の組み合わせおよび部分的組み合わせを含む。
【図１】
0006364026.tif 000002
【図２】
0006364026.tif 000003
【図３】
0006364026.tif 000004
【図４】
0006364026.tif 000005
【図５Ａ】
0006364026.tif 000006
【図５Ｂ】
0006364026.tif 000007
【図６】
0006364026.tif 000008
【図７】
0006364026.tif 000009
【図８】
0006364026.tif 000010
【図９】
0006364026.tif 000011