(57)【特許請求の範囲】
【請求項１】
プロセッサを有するシステムのハードウェアコンポーネントにおけるハードウェア構成を変更するための許可を求めるためのセキュアな許可要求を、前記システムにおける管理エンジンによって生成する段階であって、前記セキュアな許可要求は、前記許可を前記システムと結び付けるための許可認証情報を有する、生成する段階と、
前記セキュアな許可要求を遠隔サーバーに送信する段階と、
前記セキュアな許可要求に応答して前記遠隔サーバーから送信される許可メッセージを前記管理エンジンが受信する段階であって、前記許可メッセージが前記許可認証情報を含む、受信する段階と、
受信した前記許可メッセージに含まれる前記許可認証情報を有効にすることに応じて前記ハードウェア構成におけるレジスタをアップデートすることによって、前記ハードウェアコンポーネントにおける前記ハードウェア構成を、前記管理エンジンによって変更する段階と
を備える、
方法。
【請求項２】
前記セキュアな許可要求および前記許可メッセージは、前記ハードウェアコンポーネントのユーザーのプライバシーを保護する請求項１に記載の方法。
【請求項３】
前記セキュアな許可要求および前記許可メッセージは、前記ハードウェアコンポーネントのプライバシーを保護する請求項１または２に記載の方法。
【請求項４】
前記ハードウェア構成は、チップセットまたはチップセット部品のハードウェア構成である請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記遠隔サーバーとのセキュアな通信を保証するべく１つ以上の暗号化鍵が使用される請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記ハードウェアコンポーネントの製造時に、前記ハードウェアコンポーネントに一意な鍵が永久的に含められており、前記一意な鍵は、前記遠隔サーバーを対象としたセキュアな通信および許可認証を保証するべく使用される請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記一意な鍵は、製造時に前記ハードウェアコンポーネントのヒューズをランダムに飛ばすことにより、製造時に前記ハードウェアコンポーネントに一意にプログラムされる請求項６に記載の方法。
【請求項８】
前記一意な鍵は、前記ハードウェアコンポーネントの外部で実行されるソフトウェアからはアクセスできない請求項６または７に記載の方法。
【請求項９】
前記許可メッセージは、前記遠隔サーバーからの一意な署名を含む請求項１から８のいずれか１項に記載の方法。
【請求項１０】
前記遠隔サーバーに存在する秘密署名鍵に対応する公開鍵を使用して、受信された前記許可を検証する段階をさらに備える請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記遠隔サーバーは、セキュアで信頼されたサーバーである請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記ハードウェア構成の変更は、前記ハードウェアコンポーネントに対する物理的変更なしに実行される請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
前記許可メッセージは、セキュアな許可および／または署名された許可を含む請求項１から１２のいずれか１項に記載の方法。
【請求項１４】
トランザクジョン情報が、将来における返品または交換が有効化されるように、前記許可メッセージ内に結び付けられる請求項１から１３のいずれか１項に記載の方法。
【請求項１５】
特定のハードウェア部品について許可が署名されると、前記許可は別のハードウェア部品に使用できない請求項１から１４のいずれか１項に記載の方法。
【請求項１６】
前記ハードウェアコンポーネントの外部で実行されるソフトウェアは、前記ハードウェアコンポーネントの内部で実行されるソフトウェアの機能をエミュレートできない請求項１から１５のいずれか１項に記載の方法。
【請求項１７】
ブートおよび／または初期化プロセス時にオーバーライドを実行する段階と、前記オーバーライドに応答して前記ハードウェア構成を変更する段階とをさらに備える請求項１から１６のいずれか１項に記載の方法。
【請求項１８】
前記セキュアな許可要求は、一意に識別可能ではない請求項１から１７のいずれか１項に記載の方法。
【請求項１９】
前記ハードウェアコンポーネントおよび／または前記ハードウェアコンポーネントのユーザーのアイデンティティは、前記セキュアな許可要求からは判断できない請求項１から１８のいずれか１項に記載の方法。
【請求項２０】
乱数値を生成する段階と、前記乱数値に応じて前記セキュアな許可要求を生成する段階とをさらに備える請求項１から１９のいずれか１項に記載の方法。
【請求項２１】
前記管理エンジンは、前記システムの前記プロセッサとは別個のハードウェア処理エンジンを有する、請求項１から２０のいずれか１項に記載の方法。
【請求項２２】
前記管理エンジンは、前記システムの前記プロセッサによって実行されるオペレーティングシステムにはアクセスできないハードウェアリソースにアクセスする、請求項１から２１のいずれか１項に記載の方法。
【請求項２３】
前記管理エンジンは、前記ハードウェアコンポーネントにおけるハードウェアヒューズオーバーライドレジスタの値を変更することによって前記ハードウェア構成を設定する、請求項１から２２のいずれか１項に記載の方法。
【請求項２４】
前記オーバーライドに応答して前記ハードウェア構成を変更する段階は、
ハードウェアヒューズマトリックスを読み出して、ハードウェアヒューズ読み出し専用レジスタに書き込む段階と、
フレックスディセーブルヒューズの設定を確認する段階と、
前記設定によって、オーバーライドの機能がイネーブルされている場合に、前記許可メッセージに含まれるオーバーライドヒューズマップをハードウェアヒューズオーバーライドレジスターに書き込む段階と、
を有する、請求項１７に記載の方法。
【請求項２５】
遠隔位置におけるシステムのハードウェアコンポーネントにおけるハードウェア構成を変更するための許可を求めるためのセキュアな許可要求を前記システムから受信する段階と、
前記セキュアな許可要求に応答して許可メッセージを前記システムに送信する段階と
を備え、
前記セキュアな許可要求は、前記許可を前記システムと結び付けるための許可認証情報を有しており、
前記許可メッセージは、前記許可認証情報を含み、
前記許可メッセージは、前記システムにおいて前記許可メッセージに含まれる前記許可認証情報を有効にすることに応じて前記ハードウェア構成におけるレジスタをアップデートすることによって、前記ハードウェアコンポーネントにおける前記ハードウェア構成の変更を前記システムにおいて可能にする方法。
【請求項２６】
前記セキュアな許可要求および前記許可メッセージは、前記ハードウェアコンポーネントのユーザーのプライバシーを保護する請求項２５に記載の方法。
【請求項２７】
前記ハードウェア構成は、チップセットまたはチップセット部品のハードウェア構成である請求項２５または２６に記載の方法。
【請求項２８】
前記システムを対象としたセキュアな通信および許可認証を保証するべく１つ以上の暗号化鍵が使用される請求項２５から２７のいずれか１項に記載の方法。
【請求項２９】
前記許可メッセージは、一意な署名を含む請求項２５から２８のいずれか１項に記載の方法。
【請求項３０】
前記許可メッセージは、前記システムにおいて、前記ハードウェアコンポーネントに対する物理的変更なしに、前記ハードウェア構成を変更することを可能にする請求項２５から２９のいずれか１項に記載の方法。
【請求項３１】
前記許可メッセージは、セキュアな許可および／または署名された許可を含む請求項２５から３０のいずれか１項に記載の方法。
【請求項３２】
前記許可メッセージは、前記システムにおいて、ブートおよび／または初期化プロセス時に実行されるオーバーライド動作に応答して前記ハードウェア構成を変更することを可能にする請求項２５から３１のいずれか１項に記載の方法。
【請求項３３】
前記セキュアな許可要求は、一意に識別可能ではない請求項２５から３２のいずれか１項に記載の方法。
【請求項３４】
前記ハードウェアコンポーネントおよび／または前記ハードウェアコンポーネントのユーザーのアイデンティティは、前記セキュアな許可要求からは判断できない請求項２５から３３のいずれか１項に記載の方法。
【請求項３５】
前記セキュアな許可要求は、乱数値に応じて前記システムで生成された請求項２５から３４のいずれか１項に記載の方法。
【請求項３６】
前記システムにおける前記許可メッセージの検証を支援するべく、前記システムに存在する公開鍵に対応する秘密署名鍵を使用する段階をさらに備える請求項２５から３５のいずれか１項に記載の方法。
【請求項３７】
トランザクジョン情報が、将来における返品または交換が有効化されるように、前記許可メッセージ内に結び付けられる請求項２５から３６のいずれか１項に記載の方法。
【請求項３８】
特定のハードウェア部品について許可が署名されると、前記許可は別のハードウェア部品に使用できない請求項２５から３７のいずれか１項に記載の方法。
【請求項３９】
前記ハードウェアコンポーネントの外部で実行されるソフトウェアは、前記ハードウェアコンポーネントの内部で実行されるソフトウェアの機能をエミュレートできない請求項２５から３８のいずれか１項に記載の方法。
【請求項４０】
前記許可メッセージは、前記システムが有するフレックスディセーブルヒューズによって前記オーバーライド動作がイネーブルされている場合に、前記システムが有するハードウェアヒューズオーバーライドレジスターに書き込まれるべきオーバーライドヒューズマップを含む、請求項３２に記載の方法。
【請求項４１】
遠隔から構成され得るハードウェア構成を有するハードウェアデバイスを備え、
前記ハードウェアデバイスは、ハードウェアコンポーネントにおける前記ハードウェア構成を変更するための許可を求めるためのセキュアな許可要求を生成し、前記セキュアな許可要求を遠隔サーバーに送信し、前記セキュアな許可要求に応答して前記遠隔サーバーから送信される、許可認証情報を含んだ許可メッセージを受信し、受信した前記許可メッセージに含まれる前記許可認証情報を有効にすることに応じて前記ハードウェアコンポーネントにおける前記ハードウェア構成を変更するコントローラーを有し
前記セキュアな許可要求は、前記許可を前記ハードウェアデバイスと結び付けるための前記許可認証情報を有する、
装置。
【請求項４２】
前記ハードウェアデバイスは、チップセットまたはチップセット部品である請求項４１に記載の装置。
【請求項４３】
前記遠隔サーバーを対象としたセキュアな通信および許可認証を保証するための１つ以上の暗号化鍵をさらに備える請求項４１または４２に記載の装置。
【請求項４４】
前記ハードウェアデバイスに永久的に含められる一意な鍵をさらに備え、前記一意な鍵は、前記遠隔サーバーを対象としたセキュアな通信および許可認証を保証するべく使用される請求項４１から４３のいずれか１項に記載の装置。
【請求項４５】
前記一意な鍵は、前記ハードウェアデバイスにおいてランダムに飛ばされたヒューズを含む請求項４４に記載の装置。
【請求項４６】
前記一意な鍵は、前記ハードウェアデバイスの外部で実行されるソフトウェアからはアクセスできない請求項４４または４５に記載の装置。
【請求項４７】
前記許可メッセージは、前記遠隔サーバーからの一意な署名を含む請求項４１から４６のいずれか１項に記載の装置。
【請求項４８】
前記コントローラーは、さらに、前記遠隔サーバーに存在する秘密署名鍵に対応する公開鍵を使用して、受信した前記許可メッセージを検証する請求項４１から４７のいずれか１項に記載の装置。
【請求項４９】
前記遠隔サーバーは、セキュアで信頼されたサーバーである請求項４１から４８のいずれか１項に記載の装置。
【請求項５０】
前記コントローラーは、前記ハードウェアコンポーネントに対する物理的変更なしに、前記ハードウェア構成を変更する請求項４１から４９のいずれか１項に記載の装置。
【請求項５１】
前記許可メッセージは、セキュアな許可および／または署名された許可を含む請求項４１から５０のいずれか１項に記載の装置。
【請求項５２】
トランザクジョン情報が、将来における返品または交換が有効化されるように、前記許可メッセージ内に結び付けられる請求項４１から５１のいずれか１項に記載の装置。
【請求項５３】
特定のハードウェアデバイスについて許可が署名されると、前記許可は別のハードウェアデバイスに使用できない請求項４１から５２のいずれか１項に記載の装置。
【請求項５４】
前記ハードウェアデバイスの外部で実行されるソフトウェアは、前記ハードウェアデバイスの内部で実行されるソフトウェアの機能をエミュレートできない請求項４１から５３のいずれか１項に記載の装置。
【請求項５５】
前記コントローラーは、ブートおよび／または初期化プロセス時にオーバーライドを実行し、前記オーバーライドに応答して前記ハードウェア構成を変更する請求項４１から５４のいずれか１項に記載の装置。
【請求項５６】
前記セキュアな許可要求は、一意に識別可能ではない請求項４１から５５のいずれか１項に記載の装置。
【請求項５７】
前記ハードウェアコンポーネントおよび／または前記ハードウェアコンポーネントのユーザーのアイデンティティは、前記セキュアな許可要求からは判断できない請求項４１から５６のいずれか１項に記載の装置。
【請求項５８】
前記装置は、コードを実行するプロセッサを有しており、
前記コントローラーは、前記プロセッサとは別個のハードウェア処理エンジンを有する、請求項４１から５７のいずれか１項に記載の装置。
【請求項５９】
前記コントローラーは前記プロセッサによって実行されるオペレーティングシステムにはアクセスできないハードウェアリソースにアクセスする、請求項５８に記載の装置。
【請求項６０】
前記コントローラーは、前記ハードウェアコンポーネントにおけるハードウェアヒューズオーバーライドレジスタの値を変更することによって前記ハードウェア構成を設定する、請求項４１から５９のいずれか１項に記載の装置。
【請求項６１】
前記コントローラーは、
ハードウェアヒューズマトリックスが書き込まれるハードウェアヒューズ読み出し専用レジスタと、
前記オーバーライドの機能をイネーブルまたはディセーブル可能なフレックスディセーブルヒューズと、
前記フレックスディセーブルヒューズによって、前記オーバーライドの機能がイネーブルされている場合に、前記許可メッセージに含まれるオーバーライドヒューズマップが書き込まれるハードウェアヒューズオーバーライドレジスターと
を有する、請求項５５に記載の装置。
【請求項６２】
遠隔位置におけるシステムのハードウェアコンポーネントにおけるハードウェア構成を変更するための許可を求めるためのセキュアな許可要求を前記システムから受信し、前記許可要求に応答して許可メッセージを前記システムに送信するサーバーを備え、
前記セキュアな許可要求は、前記許可を前記システムと結び付けるための許可認証情報を有し、
前記許可メッセージは、前記許可認証情報を含み、
前記許可メッセージは、前記システムにおいて当該許可メッセージに含まれる前記許可認証情報を有効にすることに応じて前記ハードウェア構成におけるレジスタをアップデートすることによって、前記ハードウェアコンポーネントにおける前記ハードウェア構成の変更を可能にする装置。
【請求項６３】
前記ハードウェア構成は、チップセットまたはチップセット部品のハードウェア構成である請求項６２に記載の装置。
【請求項６４】
前記システムを対象としたセキュアな通信および許可認証を保証するべく１つ以上の暗号化鍵が使用される請求項６２または６３に記載の装置。
【請求項６５】
前記許可メッセージは、一意な署名を含む請求項６２から６４のいずれか１項に記載の装置。
【請求項６６】
前記許可メッセージは、前記システムにおいて、前記ハードウェアコンポーネントに対する物理的変更なしに、前記ハードウェア構成を変更することを可能にする請求項６２から６５のいずれか１項に記載の装置。
【請求項６７】
前記許可メッセージは、セキュアな許可および／または署名された許可を含む請求項６２から６６のいずれか１項に記載の装置。
【請求項６８】
前記許可メッセージは、前記システムにおいて、ブートおよび／または初期化プロセス時に実行されるオーバーライド動作に応答して前記ハードウェア構成を変更することを可能にする請求項６２から６７のいずれか１項に記載の装置。
【請求項６９】
前記セキュアな許可要求は、一意に識別可能ではない請求項６２から６８のいずれか１項に記載の装置。
【請求項７０】
前記ハードウェアコンポーネントおよび／または前記ハードウェアコンポーネントのユーザーのアイデンティティは、前記セキュアな許可要求からは判断できない請求項６２から６９のいずれか１項に記載の装置。
【請求項７１】
前記セキュアな許可要求は、前記システムにおいて、乱数値に応じて生成された請求項６２から７０のいずれか１項に記載の装置。
【請求項７２】
前記サーバーは、前記システムにおける前記許可の検証を支援するべく、前記システムに存在する公開鍵に対応する秘密署名鍵を使用する請求項６２から７１のいずれか１項に記載の装置。
【請求項７３】
トランザクジョン情報が、将来における返品または交換が有効化されるように、前記許可メッセージ内に結び付けられる請求項６２から７２のいずれか１項に記載の装置。
【請求項７４】
特定のハードウェア部品について許可が署名されると、前記許可は別のハードウェア部品に使用できない請求項６２から７３のいずれか１項に記載の装置。
【請求項７５】
前記ハードウェアコンポーネントの外部で実行されるソフトウェアは、前記ハードウェアコンポーネントの内部で実行されるソフトウェアの機能をエミュレートできない請求項６２から７４のいずれか１項に記載の装置。
【請求項７６】
前記許可メッセージは、前記システムが有するフレックスディセーブルヒューズによって前記オーバーライド動作がイネーブルされている場合に、前記システムが有するハードウェアヒューズオーバーライドレジスターに書き込まれるべきオーバーライドヒューズマップを含む、請求項６８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主に、ハードウェアのプロビジョニング、更新、および／または変更に関する。
【背景技術】
【０００２】
現在、コンピューターシステムのハードウェア（たとえば、ＳＫＵもしくは最小在庫管理単位）を変更する目的で、製造業者は、製造フロアで試験ステーションを利用している。製造フロアで現在の試験プロセスを用いるよりも、ハードウェア（および／またはＳＫＵ）のプロビジョニングもしくは変更を、（たとえばＯＥＭおよび／またはエンドユーザーもしくはエンドユーザーのＩＴ部門により）コンポーネントの消費者に対して直接的に実行可能にすることは便利であろう。
【０００３】
さらに、コンピューター産業においてハードウェア構成を更新するための現在の技術では、ハードウェアの取り替えが必要である。たとえば、従来用いられてきた技術のいくつかでは、ピン、ジャンパー、ストラップ、ヒューズ等のハードウェアを物理的に変更することによるハードウェア構成の変更が含まれる。実際のハードウェアの取り替え、もしくはこのような物理的な変更なしで、ハードウェア構成の変更もしくは更新を提供することは便利であろう。
【０００４】
ネットワークトラフィック下での購入においては、現在、トランザクションのエンドポイントでのプライバシーは保護されていない。たとえば、インターネット上での購入の伝送には、現在、一意な識別子が用いられている。購入者のプライバシーを確保するには、サービスの売り手に対してトランザクションを匿名とすることを可能にすることは便利であろう。
【図面の簡単な説明】
【０００５】
本発明は、以下の詳細な記載および本発明のいくつかの実施形態を示す添付の図面からより十分に理解されるであろうが、図面は、記載される特定の実施形態に発明を限定するものと解釈するべきでなく、単に説明と理解を促進するためのものである。
【図１】本発明のいくつかの実施形態に係るシステムを示す。
【図２】本発明のいくつかの実施形態に係るシステムを示す。
【図３】本発明のいくつかの実施形態に係るシステムを示す。
【図４】本発明のいくつかの実施形態に係るシステムを示す。
【図５】本発明のいくつかの実施形態に係るシステムを示す。
【図６】本発明のいくつかの実施形態に係る許可を示す。
【図７】本発明のいくつかの実施形態に係るフローを示す。
【図８】本発明のいくつかの実施形態に係る鍵位置を示す。
【図９】本発明のいくつかの実施形態に係るフローを示す。
【図１０】本発明のいくつかの実施形態に係るシステムを示す。
【図１１】本発明のいくつかの実施形態に係るフローおよびシステムを示す。
【発明を実施するための形態】
【０００６】
本発明のいくつかの実施形態は、ハードウェアのプロビジョニング、更新、および／または変更に関する。
【０００７】
図１は、いくつかの実施形態に係るシステム１００を示す。いくつかの実施形態では、システム１００は、プロセッサー１０２（および／または中央演算処理装置もしくはＣＰＵ）、グラフィックス／メモリコントローラーハブ１０４（および／またはＧＭＣＨおよび／またはメモリコントローラーハブもしくはＭＣＨ）、および入出力コントローラーハブ１０６（および／またはＩＣＨ）を備える。いくつかの実施形態では、ＧＭＣＨ１０４は、管理エンジン１１２（および／または管理可能性エンジンおよび／またはＭＥ）を有し、これは、マイクロコントローラーおよび／またはハードウェア処理エンジンである。いくつかの実施形態では、ＭＥ１１２は、ファームウェアサービスおよびアプリケーションを実行可能であり、いくつかの実施形態では、以下により詳細に記載されるその他のＭＥ装置と同一であるか類似している。
【０００８】
いくつかの実施形態では、ＧＭＣＨ１０４は、システムメモリへのアクセスを提供するメモリコントローラーを有する。システムメモリのうちの小さい部分が、ＭＥ１１２により、ランタイムにメモリが必要であるときに使用される。このメモリは、オペレーティングシステム（ＯＳ）が特別なハードウェア機構を用いてアクセスするメモリとは隔離されている。いくつかの実施形態では、この隔離状態を生成するアーキテクチャは、統合メモリアーキテクチャ（ＵＭＡ）と呼ばれる。いくつかの実施形態では、ＩＣＨ１０６は、とりわけ、イーサネット（登録商標）ネットワークコントローラー、ネットワークフィルター、および／または不揮発性フラッシュメモリコントローラーを有する。いくつかの実施形態では、無線ローカルエリアネットワーク（ＬＡＮ）またはＷｉＦｉネットワークコントローラーが、たとえばＰＣＩエクスプレスバスを介してＩＣＨ１０６に接続される。ネットワークコントローラー、有線および無線ＬＡＮ、並びにネットワークフィルターによって、いくつかの実施形態では、ＭＥ１１２にアクセスするための帯域外（ＯＯＢ）通信が提供される。ＯＯＢ通信によって、ＭＥ１１２は、自身に常駐するＯＳもしくはドライバーに依存することなく、ネットワークを介して通信を行うことが可能になる。ＯＯＢ通信は、ＯＳが動作しない、もしくはスリープ状態にあるいくつかの状態（たとえば、ＯＳが機能停止したり、待機状態もしくはハイバーネート状態にある状態）にコンピューターが陥ったときでも、機能することができる。ＩＣＨ１０６のフラッシュコントローラーは、コンピューターのマザーボードに設置されるフラッシュメモリ（たとえば、不揮発性メモリもしくはＮＶＭとも呼ばれる）へのアクセスを提供する。いくつかの実施形態では、ＮＶＭは、とりわけ、基本入出力システム（ＢＩＯＳ）コード、ＭＥコード、および／またはデータを格納している。
【０００９】
ＧＭＣＨ１０４およびＩＣＨ１０６は、いくつかの実施形態では、ダイレクトメディアインターフェース（ＤＭＩ）バスおよび／またはコントローラーリンク（ＣＬｉｎｋ）バスを用いて互いに通信する。ＤＭＩバスは、ＩＣＨ１０６とＧＭＣＨ（もしくはＭＣＨ）１０４との間のチップ・ツー・チップ相互接続である。この高速インターフェースによって、入出力（Ｉ／Ｏ）サブシステム（たとえば、ＰＣＩエクスプレス、インテル・ハイ・デフィニション・オーディオ、シリアルエーティーエーもしくはＳＡＴＡ、ユニバーサルシリアルバスもしくはＵＳＢ等）は、最高の性能を発揮するために必要な情報量（ｂａｎｄｗｉｄｔｈ）を受信するようになる。いくつかの実施形態では、ＣＬｉｎｋバスは、ＯＳが動作しているときに用いられるのに加えて、コンピューターがスリープ状態もしくはハイバーネート状態にあるときでさえ用いることができる独自のインターフェース（ｐｒｏｐｒｉｅｔａｒｙ  ｉｎｔｅｒｆａｃｅ）である。
【００１０】
いくつかの実施形態では、ＧＭＣＨ１０４（および／またはＭＣＨ１０４）は、１つ以上のディスプレイおよび／またはディスプレイポート（たとえば、ＣＲＴ、ＨＤＭＩ、ＴＶ、ＬＶＤＳ）、１つ以上のグラフィックス装置および／またはグラフィックスポート、および／または１つ以上のメモリ装置（たとえば、デュアルインラインメモリモジュールもしくはＤＩＭＭ装置）等を含むが、これらに限られない多数の装置に直接および／または間接に接続されている。
【００１１】
いくつかの実施形態では、ＩＣＨ１０６は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）装置および／またはＰＣＩバス、ユニバーサルシリアルバス（ＵＳＢ）装置および／またはＵＳＢバス、シリアルエーティーエー装置、ＳＰＩフラッシュ装置、ディスクリートＴＰＭ装置（ｄｉｓｃｒｅｔｅ  ＴＰＭ  ｄｅｖｉｃｅｓ）、スーパーＩ／Ｏ装置、ＳＭバス装置、ハイ・デフィニション・オーディオ装置、ＰＣＩエクスプレス装置、ローカルエリアネットワーク（ＬＡＮ）装置、ワイドエリアネットワーク（ＷＡＮ）装置、無線ローカルエリアネットワーク（ＷＬＡＮ）装置、無線ワイドエリアネットワーク（ＷＷＡＮ）装置、ＷｉＭＡＸ装置、フラッシュメモリ装置、エクスプレスカード装置等を含むが、これらに限られない多数の装置に直接および／または間接に接続されている。
【００１２】
図２は、いくつかの実施形態に係るシステム２００を示す。いくつかの実施形態では、システム２００は、プロセッサー２０２（および／または中央演算処理装置もしくはＣＰＵ）、およびプラットフォームコントローラーハブ２０４を備える。いくつかの実施形態では、プロセッサー２０２は、２つ以上のコア（たとえば、図２ではコア２２２およびアンコア２２４により示される）を有する。いくつかの実施形態では、ＰＣＨ２０４は、管理エンジン２１２（および／または管理可能性エンジンおよび／またはＭＥ）を有し、これは、マイクロコントローラーおよび／またはハードウェア処理エンジンである。いくつかの実施形態では、ＭＥ２１２は、ファームウェアサービスおよびアプリケーションを実行可能である。いくつかの実施形態では、ＭＥ２１２は、ＭＥ１１２および／または以下により詳細に記載されるその他のＭＥ装置と同一であるか、もしくは類似している。
【００１３】
いくつかの実施形態では、プロセッサー２０２およびＰＣＨ２０４は、ダイレクトメディアインターフェース（ＤＭＩ）バスを用いて互いに通信する。この高速インターフェースによって、入出力（Ｉ／Ｏ）サブシステム（たとえば、ＰＣＩエクスプレス、インテル・ハイ・デフィニション・オーディオ、シリアルエーティーエーもしくはＳＡＴＡ、ユニバーサルシリアルバスもしくはＵＳＢ等）は、最高の性能を発揮するために必要な情報量（ｂａｎｄｗｉｄｔｈ）を受信するようになる。いくつかの実施形態では、ＰＣＨ２０４は、ＩＣＨ１０６に関連して上記した機能および特性の多くもしくは全てを実行し、および／または、同じく上記した装置の多くもしくは全てが接続されている。いくつかの実施形態では、ＧＭＣＨ１０４に関連して上記した機能、特性、および／または接続のいくつかは、プロセッサー２０２に移行され、またいくつかはＰＣＨ２０４に移行されている。
【００１４】
いくつかの実施形態では、プロセッサー２０２は、１つ以上のディスプレイおよび／またはディスプレイポート（たとえば、ＣＲＴ、ＨＤＭＩ、ＴＶ、ＬＶＤＳ）、１つ以上のグラフィックス装置および／またはグラフィックスポート、および／または１つ以上のメモリ装置（たとえば、デュアルインラインメモリモジュールもしくはＤＩＭＭ装置）等を含むが、これらに限られない多数の装置に直接および／または間接に接続されている。
【００１５】
いくつかの実施形態では、ＰＣＨ２０４は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）装置および／またはＰＣＩバス、ユニバーサルシリアルバス（ＵＳＢ）装置および／またはＵＳＢバス、シリアルエーティーエー装置、ＳＰＩフラッシュ装置、ディスクリートＴＰＭ装置（ｄｉｓｃｒｅｔｅ  ＴＰＭ  ｄｅｖｉｃｅｓ）、スーパーＩ／Ｏ装置、ＳＭバス装置、ハイ・デフィニション・オーディオ装置、ＰＣＩエクスプレス装置、ローカルエリアネットワーク（ＬＡＮ）装置、ワイドエリアネットワーク（ＷＡＮ）装置、無線ローカルエリアネットワーク（ＷＬＡＮ）装置、無線ワイドエリアネットワーク（ＷＷＡＮ）装置、ＷｉＭＡＸ装置、フラッシュメモリ装置、エクスプレスカード装置等を含むが、これらに限られない多数の装置に直接および／または間接に接続されている。
【００１６】
図３は、いくつかの実施形態に係る管理可能性エンジン、管理エンジン、および／またはＭＥ３００を示す。いくつかの実施形態では、ＭＥ３００は、本明細書に記載されるその他のＭＥ装置と同一であるか、類似している（たとえば、いくつかの実施形態では、ＭＥ３００は、ＭＥ１１２および／またはＭＥ２１２と同一であるか、類似している）。いくつかの実施形態では、ＭＥ３００は、ＭＥバックボーンバス３３０により互いに接続されたプロセッサー（たとえば、ＡＲＣプロセッサー）３０２、コードキャッシュ３０４、データキャッシュ３０６、ダイレクトメモリアクセス（ＤＭＡ）エンジン３０８、暗号化エンジン３１０、読み出し専用メモリ（ＲＯＭ）３１２、コントローラーリンク（ＣＬｉｎｋ）インターフェース３１４、管理エンジンインターフェース３１６、メモリコントローラーインターフェース３１８、インタラプトコントローラー３２０、高精度および／またはウォッチドッグタイマー３２２、内部ランダムアクセスメモリ（および／またはＳＲＡＭ）３２４、および／またはメインメモリコントローラーへのコネクター３２６を有する。
【００１７】
コードキャッシュ３０４およびデータキャッシュ３０６は、システムメモリへのメモリアクセスを減らすことにより、ＭＥの機能の高速化を促進する。ＤＭＡエンジン３０８は、ＭＥ３００と、ＯＳメモリおよびＭＥ  ＵＭＡ（統合メモリアーキテクチャ）メモリとのデータのやり取りを促進する。ＤＭＡエンジン３０８には、ＭＥ３００によってだけアクセス可能であり、ＯＳによってはアクセスできない。さらに、ＭＥ３００はＯＳがＤＭＡエンジン３０８にアクセスするためのいかなる一般的なインターフェースをも提供しない。暗号化エンジン３１０は、たとえば、無線セキュリティ、ＴＬＳを介したＨＴＴＰセキュリティ等のセキュア通信プロトコル用にＭＥ３００内で実行される暗号化演算を高速化するためのハードウェアオフロード（ｈａｒｄｗａｒｅ  ｏｆｆｌｏａｄｓ）を提供する。ＭＥ３００の初期ブートコードは、ＲＯＭ３１２に存在し、そこから実行される。いくつかの実施形態では、ＣＬｉｎｋインターフェース３１４は、スリープもしくはハイバーネート等の低電力状態でのＧＭＣＨとＩＣＨとの間の通信に用いられ、ＩＣＨの中のいくつかのＭＥ用装置（ＭＥ  ｓｐｅｃｉｆｉｃ  ｄｅｖｉｃｅｓ）はＣＬｉｎｋだけを介してＭＥ３００と通信し、いくつかの装置は、ＣＬｉｎｋだけでなくＤＭＩを介しても通信できる（たとえば、ネットワークコントローラー）。
【００１８】
メインシステムメモリのうちの小さい部分が、ＭＥ３００により、ランタイムにメモリが必要であるときに使用される。この隔離は、ＵＭＡメカニズムによって為される。いくつかの実施形態では、ＧＭＣＨ内の集積グラフィックスコントローラーは、メインシステムメモリの一部を必要時に使用するべく同じメカニズムを利用する。いくつかの実施形態では、このメモリのサイズは１６ＭＢであり、これは、２から３ＧＢのＤＲＡＭを有するコンピューターにおける全システムＲＡＭの１％未満である。ＯＳの視点から見ると、グラフィックスＵＭＡメモリの部分は、ＭＥを備えないコンピューターの同部分よりわずかに大きいように思われる。
【００１９】
いくつかの実施形態では、ＭＥ３００は、コード、設定、データ等を永久記憶するべくマザーボードに存在するＮＯＲフラッシュ不揮発性メモリ（ＮＶＭ）を用いる。ＮＶＭは、ＢＩＯＳコードおよびその他の特定ＯＥＭデータ（ＯＥＭ  ｓｐｅｃｉｆｉｃ  ｄａｔａ）を記憶するためにも用いられる。ＮＶＭは、たとえば、ＭＥ、ＢＩＯＳ、およびネットワークコントローラーのための別々の領域を含む特定の領域に分割されている。ＮＶＭは、ＮＶＭの多様な領域にアクセスするための許可を特定するアクセス制御ディスクリプター（ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ  ｄｉｓｃｒｉｐｔｏｒ）を（たとえば、ＮＶＭの最初の部分および／またはアドレス０に）含む。ＩＣＨハードウェアによって、これらの許可が効力を発揮するようになる。ＩＣＨがフラッシュにアクセスするべく用いるコントローラーは、シリアルペリフェラルインターフェース（ＳＰＩ）に基づいている。フラッシュのＭＥ領域は、さらに、コード、回復コード、内部構成データおよび変数記憶、イベントログ、並びにユーザー／ＩＳＶ関連データ用の領域に分割されている。
【００２０】
いくつかの実施形態では、デスクトッププラットフォームにおいては、イーサネット（登録商標）ネットワークアダプターだけがＭＥ３００に接続されている。いくつかの実施形態では、移動体プラットフォームにおいては、ＭＥ３００は、イーサネット（登録商標）ネットワークコントローラーおよびＷｉＦｉネットワークコントローラーの両方に、（たとえば、ＯＳが動作しているときにも、システムが故障したり、スリープ状態にある等、ＯＳが動作していないときにも）アクセスを有する。イーサネット（登録商標）コントローラーおよびＷｉＦｉコントローラーのようなネットワークコントローラーは、いくつかの実施形態では、ＣＬｉｎｋインターフェースを用いてＭＥ３００と通信し、ＭＥはイーサネット（登録商標）コントローラー（たとえば、ギガビットイーサネット（登録商標）コントローラー）からとＷｉＦｉコントローラーからとでは異なるトラフィックにアクセスする。ＭＥは、ＯＳを用いることなくイーサネット（登録商標）コントローラーを介して直接にトラフィックを送受信する。しかし、ＷｉＦｉのいくつかの実施形態では、ネットワークコントローラーは、単一のマスターを有し、ＯＳが動作しているときは、ＷｉＦｉのトラフィックは、ＯＳの中のＷｉＦｉドライバーを介してＭＥにルーティング（ｒｏｕｔｅｄ）される。しかし、ＯＳが故障したり、スリープ状態に入った場合には、ＭＥはＷｉＦｉネットワークコントローラーの所有主となり、直接に通信を実行する。
【００２１】
コンピューターとの遠隔通信は、これらのインターフェースを介して管理コンソールから（たとえば、ＨＴＴＰおよびその他のプロトコルを用いて）実施してよい。ＭＥファームウェアは、ＯＳと共通のＬＡＮ  ＭＡＣ、ホスト名、およびＩＰアドレスを共有することができ、ＩＴインフラストラクチャーコストの最小化が促される。
【００２２】
いくつかの実施形態では、ＭＥの帯域外（ＯＯＢ）通信アーキテクチャは、たとえば、ＡＲＰ、ＤＨＣＰ、およびＩＰポートフィルターをサポートする。ＯＯＢ通信アーキテクチャは、特定のＩＰアドレスを含むＡＲＰパケットをホストおよび／またはＭＥに転送することによってＡＲＰをサポートする。ＯＯＢ通信アーキテクチャは、ＤＨＣＰオファーおよびＡＣＫパケットをホストおよび／またはＭＥに転送することによりＤＨＣＰをサポートする。ＯＯＢ通信アーキテクチャは、特定のポートにやって来るＩＰパケットをＭＥに出力先変更することによりＩＰポートフィルターをサポートする（たとえば、ＨＴＴＰおよび出力先変更）。
【００２３】
いくつかの実施形態では、ＭＥ  ＲＯＭ（たとえば、ＲＯＭ３１２）は、ＧＭＣＨチップのシリコンの中にマスクされている。ＲＯＭは、リセットベクトル（ＭＥがリセットされた後、最初に実行される命令のセット）を含む。ＲＯＭには、ＭＥによってだけアクセス可能であり、ホストまたはＯＳによってはアクセスできない。ＲＯＭコードは製造時にチップにマスクされるので、変更不可能であり、したがってセキュアである。ＲＯＭは、たとえば、ＭＥメモリ領域を構成して、所定のハードウェアピースを初期化し、フラッシュ上のファームウェア画像のインテグリティおよび署名を確認し、ファームウェア画像に制御を伝える。いくつかの実施形態では、ＲＯＭは、ＭＥファームウェアの信頼性の根幹（ｒｏｏｔ  ｏｆ  ｔｒｕｓｔ）である。
【００２４】
いくつかの実施形態では、ＭＥカーネルモジュールは、ＭＥ環境の基本的機能を提供するサービスおよびドライバーにより構成されている。カーネルによって、任意の汎用的な実行環境に期待される基本的なサービスのセットが提供される。たとえば、いくつかの実施形態では、これらのサービスには、ブートストラップおよび初期化、タスクおよびスレッドの管理、メモリ管理、インタラプト管理、タイマー、メッセージングおよび複数イベント／単数イベントモニタリング、セキュリティおよび暗号化機能、ローカルインターフェースおよびネットワークインターフェースのドライバー、ストレージ等、電力管理、インターフェースの発見（ｉｎｔｅｒｆａｃｅ  ｄｉｓｃｏｖｅｒｙ）、および／またはファームウェアの更新が含まれる。
【００２５】
ＭＥは、いくつかの非常にセキュリティに敏感な技術（たとえば、トラステッドプラットフォームモジュールもしくはＴＰＭ）を搭載しているので、高度にセキュリティに敏感なアプリケーションとその他との間にカーネルレベルで高度な隔離および分離を設ける必要がある。したがって、カーネルは、いくつかの実施形態では、特権的な部分と非特権的な部分とに分割される。特権的な部分は、ＲＯＭと、ローダーおよびブリングアップモジュール（ｂｒｉｎｇ−ｕｐ  ｍｏｄｕｌｅｓ）等の初期化モジュールと、特権的カーネルと呼ばれるカーネルの一部と、ＴＰＭファームウェアとを含む。非特権的部分は、非特権的カーネルと呼ばれるカーネルの残りの部分と、サポートモジュールと、共通サービスモジュールと、その他のファームウェアアプリケーションとを含む。特権的モードで実行されるファームウェアは、所定のメモリ範囲および所定のハードウェアレジスター等の特権的ハードウェアリソースに対するアクセスを有する。特権的リソースにアクセスしようと試みる非特権的ファームウェアによって、エクセプションもしくはインタラプトが生じる。ＭＥのレジスターは、特権的モードに出入りするためのコードのアドレスを含む。
【００２６】
いくつかの実施形態では、ＭＥ３００は、ＯＳによってはアクセスできず、ＭＥによってだけアクセスできる保護リアルタイムクロック（ＰＲＴＣ）と呼ばれるチップセット上の特殊目的用クロックにアクセスを有する。
【００２７】
図４は、いくつかの実施形態に係るシステム４００を示す。いくつかの実施形態では、システム４００は、許可サーバー４０４（たとえば、１つ以上の企業間サーバーまたはＢ２Ｂサーバー）にインターネット４０６を介して接続された管理可能性エンジン（および／または管理エンジンおよび／またはＭＥ）４０２を備える。許可４１２は、ＭＥ４０２と許可サーバー４０２との間で転送される。ＭＥ４０２は、ホスト通信リンク４０８および／または帯域外（ＯＯＢ）ネットワーク通信リンク４１０を介してインターネットに接続される。
【００２８】
いくつかの実施形態では、ＭＥ４０２は、ホスト−組み込みコントローラーインターフェース（ＨＥＣＩ）４２２、ＨＥＣＩドライバー４２４、ネットワークインターフェースカード（ＮＩＣ）４２６、ネットワークスタック４２８、アクティブ管理技術（ＡＭＴ）４３０、フレキシブルＳＫＵ４３２、ケイパビリティおよびライセンシングサービス（ＣＬＳ）、および／またはインテルケイパビリティおよびライセンシングサービス（ｉＣＬＳ）４３４、ヒューズアクセス４３６、ハードウェア識別子（ＨＷＩＤ）４３８、ヒューズ読み出しアクセス４４０、ヒューズオーバーライド４４２、セキュアファイルシステム４４４、シリアルぺリフェラルインターフェース（ＳＰＩ）フラッシュ４４６、暗号化ドライバー４４８、リベスト・シャミール・アドルマン（ＲＳＡ）鍵に基づく暗号化４５０、セキュアハッシングアルゴリズム・バージョン１（ＳＨＡ−１）４５２、真乱数発生器（ＴＲＮＧ）４５４、セキュアタイム４５６、および／または保護リアルタイムクロック（ＰＲＴＣ）４５８を有する。いくつかの実施形態では、ＨＥＣＩ４２２、ＮＩＣ４２６、ＨＷＩＤ４３８、ヒューズ読み出しアクセス４４０、ヒューズオーバーライド４４２、ＳＰＩフラッシュ４４６、ＲＳＡ４５０、ＳＨＡ−１  ４５２、ＴＲＮＧ４５４、および／またはＰＲＴＣ４５８はハードウェアに実装される。いくつかの実施形態では、ＨＥＣＩドライバー４２４、ネットワークスタック４２８、ＡＭＴ４３０、フレキシブルＳＫＵ４３２、ＣＬＳ４３４、ヒューズアクセス４３６、セキュアファイルシステム４４４、暗号化ドライバー４４８、および／またはセキュアタイム４５６はファームウェアに実装される。
【００２９】
いくつかの実施形態では、システム４００は、ＭＥ４０２と、署名サーバー（ｓｉｇｎｉｎｇ  ｓｅｒｖｅｒ）との間でセキュアな動作を実行するべく用いられる構成要素よびデータ構造を示す。いくつかの実施形態によると、許可４１２は、認証特性情報（ａｕｔｈｅｎｔｉｃ  ｆｅａｔｕｒｅ  ｉｎｆｏｒｍａｔｉｏｎ）をＭＥシステムに提供するデータ構造バイナリ（ｄａｔａ  ｓｔｒｕｃｔｕｒｅ  ｂｉｎａｒｙ）である。いくつかの実施形態では、許可サーバー４０４は、許可４１２等の許可を生成可能なバックエンドインフラストラクチャーサーバー（もしくは複数のサーバー）である。いくつかの実施形態では、ＭＥファームウェアは、いくつかの構成要素を含むＭＥ４０２上で動作する。たとえば、いくつかの実施形態では、ＣＬＳ４３４は、フレキシブルＳＫＵ４３２および／またはＳａａＳ／ＳＭＴ（図４では不図示）等のＣＬＳプラグインに情報を提供するべく許可を有効化かつ解析する。いくつかの実施形態では、フレキシブルＳＫＵ等のＣＬＳプラグイン（もしくは、ＳａａＳ等のその他のＣＬＳプラグイン）によって、ＭＥの特定の機能が実現される。いくつかの実施形態では、ＣＬＳ４３４およびＣＬＳプラグインに不可欠なサービスを提供するべくファームウェアサービスおよびドライバーが用いられる。いくつかの実施形態では、外部インターフェースファームウェアコンポーネントによって、ＭＥは、これらの外部インターフェースコンポーネント（たとえば、ＡＭＴ４３０、ＨＥＣＩドライバー４２４、ネットワークスタック４２８等）を介して外部のエンティティとインターフェースを取ることが可能になる。
【００３０】
いくつかの実施形態では、ＨＷＩＤ４３８は、チップセットハードウェアにおけるチップセットの製造プロセスで生成される、各チップセットの一意な識別子である（たとえば、チップセット内にヒューズとして実装される）。いくつかの実施形態では、ヒューズ読み出しアクセス４４０は、チップセット内のヒューズを読み出すために用いられるハードウェアロジックである。いくつかの実施形態では、ヒューズオーバーライド４４２は、チップセットハードウェアの初期化におけるある時点において、供給されたビットマップによりハードウェアが実際のヒューズをオーバーライドする際に従うメカニズムである。いくつかの実施形態では、ヒューズアクセス４３６は、ＣＬＳ４３４ファームウェアコンポーネントに対してヒューズ読み出しおよびヒューズオーバーライドメカニズムを実装するファームウェアロジックである。いくつかの実施形態では、ＳＰＩフラッシュ４４６は、ＳＰＩプロトコルを使用してチップセットからアクセス可能な（したがって、チップセット内のＳＰＩコントローラーに接続された）不揮発性記憶メカニズム（たとえばＮＯＲ型フラッシュ）である。いくつかの実施形態ではＲＳＡ４５０は、ハードウェアに基づいた加算および乗算回路を介してＲＳＡ計算の高速化を促進するチップセット内のハードウェアユニットである（いくつかの実施形態では、ＲＳＡロジックの残りの部分は、ファームウェアに実装される）。いくつかの実施形態では、ＳＨＡ−１  ４５２は、ＳＨＡ−１アルゴリズムを実装するチップセット内のハードウェアユニットである。いくつかの実施形態では、ＴＲＮＧ４５４は、たとえば熱雑音の考え方を用いてチップセット内で一意な乱数を発生するチップセット内のハードウェアユニットである。いくつかの実施形態では、暗号化ドライバー４４８は、利用可能なインターフェースとして、暗号化動作（たとえば、ＲＳＡ−２０４８署名、暗号化、認証、復号、ＳＨＡ−１ハッシュ生成、ＴＲＮＧ発生等）を、たとえばＣＬＳ４３４等のその他のファームウェアコンポーネントに提供するファームウェアドライバーである。
【００３１】
いくつかの実施形態では、ＰＲＴＣ４５８は、ホストのＯＳソフトウェアによっては調整できない時間を計時する保護クロックであり、したがって、ＣＬＳ４３４等のＭＥファームウェアコンポーネントに、より確実な時間的概念が与えられる。いくつかの実施形態では、ＭＥ（たとえば、ＭＥ１１２、ＭＥ２１２、ＭＥ３００、および／またはＭＥ４０２）は、チップセット上の特殊目的用クロック（たとえば、ＰＲＴＣ４５８）へのアクセスを有する。このクロックには、ＭＥによってだけアクセス可能であり、ＯＳによってはアクセスできない。ＭＥは、システムのリアルタイムクロック（ＲＴＣ）に頼るのでなく、このクロックを用いて時間に関連する認証（たとえば、証明書の検証、ケルベロスタイムスタンプの確認等）を行う。ＲＴＣは、ユーザーまたはＯＳ内のマルウェアによって変更する（遅らせる、または進める）ことができる。したがって、ＭＥは、ＲＴＣには頼らない。いくつかの実施形態では、ＰＲＴＣは、コンピューターが完全に電力が切れた状態になっても時間を維持するように、電池によって電源供給される。いくつかの実施形態では、システムがスモールビジネスモードでプロビジョニングされた場合、たとえば、ＭＥクロックはブート時にＢＩＯＳクロックに同期化され、両方は主にローカル時間を表す。いくつかの実施形態では、たとえば、システムがエンタープライズモードでプロビジョニングされた場合、両クロックは分断され、ＭＥ内のＰＲＴＣクロックは、たとえばグリニッジ標準時に設定される。
【００３２】
いくつかの実施形態では、ＭＥは熱雑音変化に基づく真乱数発生器（たとえば、ＴＲＮＧ４５４）を有する。ＴＲＮＧは、ランダムセッション鍵、トークン、ノンス等を生成する等、暗号化トランザクションを支援するのに大変有用である。ＴＲＮＧは、たとえば、一度に３２ビットの乱数を出力する。
【００３３】
多くの暗号化アルゴリズムおよびメカニズムにおいて、乱数が使用されている。乱数発生器（ＲＮＧ）の重要な特性は、エントロピーであり、エントロピーとは、発生器によって以前に発生された全ての乱数を外部閲覧者が知っていたとしても、ＲＮＧによって次に生成される数を閲覧者が予測できない不可能性の測定である。発生器の現在の状態に基づいて次の乱数を生成する決定性アルゴリズムである疑似ＲＮＧ（ＰＲＮＧ）を用いてよい。このようなアルゴリズムによって、ＰＲＮＧの初期状態（もしくは「シード状態」）が知られていない限り、高レベルのエントロピーが維持される。ＰＲＮＧ実装例のいくつかは、プラットフォームクロックのうちの１つの値を用いて、自らをシードする。この値は、クロックが高分解能を有するので、やや予測不可能であり、したがって中レベルのセキュリティが要求されるアプリケーションにとってふさわしい、ＰＲＮＧの合理的なシードが得られる。しかし、多数のプラットフォームが同時（数分もしくは数秒内として知られる）に起動するとすれば、潜在的な攻撃者が可能性を絞り込んでＰＲＮＧのシード状態を破り易くなり、ＰＲＮＧにより次に発生される数の予測が可能になってしまう。攻撃者は、発生された数を、ハッキングした１つのプラットフォームから知得して、エンタープライズ中の別のプラットフォームを破ることも可能である（ＢＯＲＥ攻撃「Ｂｒｅａｋ  Ｏｎｃｅ，Ｒｕｎ  Ｅｖｅｒｙｗｈｅｒｅ（一度突破すれば、どこにでも行く）」 としても知られる）。
【００３４】
いくつかの実施形態では、ＴＲＮＧ４５４等の真乱数発生器（ＴＲＮＧ）は、ＴＲＮＧハードウェア装置であってよい。いくつかの実施形態では、このようなＴＲＮＧは、熱雑音を生じる２つの抵抗器に基づく。雑音は増幅され、周波数変調低周波発振器に入力として供給される。高周波発振器と組み合わされて、ほぼランダムなビットストリームが生成される。電圧レギュレーターによってハードウェアコンポーネントを制御し、電圧に基づいてバイアスを防止してよい。さらに、ロジッククロックによって、標準的なアンチバイアス修正アルゴリズムを用いて、ビットストリームに挿入されたかもしれないバイアス（たとえば、発振器のデューティーサイクルが不完全であるために）を修正する試みがなされる。
【００３５】
いくつかの実施形態では、ＴＲＮＧとしてＰＲＮＧが実装され、ＰＲＮＧの状態が折に触れてリセットされ、ＴＲＮＧにより生成される状態に初期化される。これにより、サブシステムにおける乱数の高い利用率に追いつくことができる強力で高品質のＲＮＧが得られる。
【００３６】
いくつかの実施形態では、チップセットは、対称的暗号化工程およびインテグリティ保護工程においてファームウェアにより使用される鍵（たとえば、１２８ビット鍵）を有する。この鍵は、チップセットの製造時に、この目的専用のヒューズをランダムに飛ばすことによって生成される。ＭＥは、この鍵材（ｋｅｙｉｎｇ  ｍａｔｅｒｉａｌ）にアクセスすることができる唯一のコンポーネントであり、いくつかのＭＥの動作の信頼性の根幹となっている。ＭＥの外部のどの装置も、この鍵の値を知らない。いくつかの実施形態では、たとえば、各システムに一意で、ファームウェアにだけ知られるチップセットヒューズ鍵を使用する。いくつかの実施形態によると、チップセットヒューズ鍵は、チップセットにおける１２８個のヒューズのセットである。値０または１に対応させて、各ヒューズを飛ばし、または飛ばさない。各ヒューズの状態（０または１）は、製造時に決定する。ヒューズのうちのランダムなサブセットを、チップセット製造ラインで飛ばし、残りのヒューズを飛ばさずにおく。したがって、ランダムで一意な値が、各チップセットに生成される。したがって、１２８個のヒューズのセットによって、１２８ビットの鍵（または、ヒューズの数によって、その他のビット数の鍵）が生成される。
【００３７】
いくつかの実施形態では、標準的な暗号化技術を用いて秘密の暗号化を行うが、興味深い特性は、暗号化に用いられる鍵である。暗号化鍵は、なんらかの不揮発な形態で記憶する必要があるが、フラッシュ自体は記憶させるのに良い場所ではない（攻撃者は、まずフラッシュからこの鍵を読み出し、次にそれを用いてフラッシュ内の残りの保護データを復号するであろう）。したがって、いくつかの実施形態では、ファームウェアは、チップセットヒューズ鍵から暗号化鍵を導出し、この暗号化鍵を用いて不揮発性フラッシュに置かれるセンシティブな事項を暗号化する。セキュアなファームウェア（たとえば、ＭＥファームウェア）だけがチップセットヒューズ鍵（したがって、暗号化鍵およびインテグリティ保護鍵）について知っている唯一の存在であるので、攻撃者がシステムのフラッシュ部を取り出して、そこから直接に読み出そうとしても、攻撃者が見つけるのは、暗号化および／またはインテグリティ保護されたデータだけである。
【００３８】
いくつかの実施形態によると、許可サーバー（たとえば、許可サーバー４０４等）は、ネットワークにおいてＭＥ（たとえば、ＭＥ１１２、ＭＥ２１２、ＭＥ３００、および／またはＭＥ４０２）から遠隔に位置する。いくつかの実施形態では、許可サーバー（たとえば、許可サーバー４０４）は、ＭＥ（たとえばＭＥ１１２、ＭＥ２１２、ＭＥ３００、および／またはＭＥ４０２）により用いられる認証された許可を生成する信頼されたプロビジョニングサーバーである。許可サーバーは、（たとえば、１つ以上のハードウェア署名モジュールおよび／またはＨＳＭを介して）、署名されたＭＥファームウェアに公開要素が埋め込まれた暗号化ＲＳＡ（リベスト・シャミール・アドルマン）秘密鍵へのアクセスを有する。いくつかの実施形態では、ハードウェア署名モジュール（ＨＳＭ）は、ＦＩＰＳ−１４０−２のレベル３に準拠している。いくつかの実施形態では、ＨＳＭは、署名サーバーにインストールされたＰＣＩカードである。いくつかの実施形態では、ＨＳＭは、耐タンパー性を有し、能動的なモニタリングを行い、タンパーされた場合には鍵材（ｋｅｙｉｎｇ  ｍａｔｅｒｉａｌ）を破壊し、許可署名鍵を保護し、許可署名コードを実行し、および／または許可購入の説明責任を担う。
【００３９】
いくつかの実施形態では、許可サーバーは、ＭＥによって信頼のおけるエンティティに生成されたと認証することが可能な許可を生成することができる。許可サーバーは、署名した許可（たとえば、許可４１２）に、ハードウェアヒューズオーバーライド情報を埋め込み、ＭＥはこの許可を用いてソフトＳＫＵプロセス（ｓｏｆｔ  ＳＫＵ  ｐｒｏｃｅｓｓ）を実行する。いくつかの実施形態では、たとえば、インフラストラクチャーの実装および転送容量に関する要件によって、１つ以上のサーバーが、許可サーバーに関連して本明細書に記載された動作を実行する。
【００４０】
いくつかの実施形態では、許可（たとえば、許可４１２）は、ハードウェアヒューズオーバーライド情報を含む署名されたデータ構造である。いくつかの実施形態では、１人のエンティティ（たとえば、許可サーバーの所有者）以外の誰も、ＭＥ（たとえばＭＥ１１２、ＭＥ２１２、ＭＥ３００、および／またはＭＥ４０２）による検証が成功する許可を生成することはできない。許可は、たとえば、残りのデータ構造の解釈を示すクラスおよびサブクラス識別子も含む。許可は、たとえば、許可が生成された時間を示すタイムスタンプも（たとえば、「タイムスタンプ」フィールドに）含む。許可は、たとえば、許可がインストールされた直後にシステムをリブートするか否か等のいくつかの許可特性を示すいくつかの属性も（たとえば、「フラッグ」フィールドに）含む。
【００４１】
いくつかの実施形態では、管理可能性エンジン、管理エンジン、および／またはＭＥ（たとえば、ＭＥ１１２、ＭＥ２１２、ＭＥ３００、および／またはＭＥ４０２）は、とりわけ、ヒューズオーバーライドメカニズムのプログラミングを実行するハードウェアエンジンである。ＭＥは、たとえば、署名／認証され、検証されたファームウェアコードを実行する。このＭＥファームウェアは、オペレーティングシステム（ＯＳ）で実行されるユーザーコードとやり取りすることができる。ユーザーコードは、ハードウェアヒューズオーバライドレジスターをプログラムするべくＭＥファームウェアとやり取りすることができる。ＭＥファームウェアは、ハードウェアヒューズオーバーライドレジスターの値を変更する前に、全ての条件が満たされる（たとえば、許可の検証を含む）ようにする。ＭＥは、許可インストールプロトコルの終了も実行する。
【００４２】
いくつかの実施形態では、ＭＥは、許可の署名および検証に、許可署名鍵対（たとえば、対称ＲＳＡ鍵対）を用いる。この鍵対の秘密部分は、ＭＥの製造者等の企業に所有され、その企業のセキュアなデータセンター設備（たとえば、ハードウェア署名モジュールもしくはＨＳＭを使用するコンピューター）に常駐する。鍵の公開部分は、誰によっても変更することができない署名されたＭＥファームウェア画像に保持される。鍵対の秘密部分によって許可に署名し、署名を検証するべく鍵の公開部分をＭＥが使用する。
【００４３】
いくつかの実施形態では、各ＭＥが、一意なＳａｆｅＩＤ秘密鍵を、チップセットの製造プロセスにおいてチップセットにヒューズとして焼き入れられる鍵のＳａｆｅＩＤシステムが実装される。ＭＥは、外部からこの鍵へ絶対にアクセスさせない。鍵のグループ部分は、チップセットの製造者等の企業により所有され、その企業のデータセンターに設置される許可サーバーシステムに常駐する。チップセット内のＳａｆｅＩＤ鍵は、許可サーバーによってグループ鍵を用いて検証される署名を（たとえば、タイムスタンプおよびノンス上に）生成するべく用いられる。これにより、真正かつ合法なＭＥによって署名がされたことを、許可サーバーは保証される。
【００４４】
いくつかの実施形態では、チップセットヒューズ鍵は、各チップセット（および／または各チップセット部品）に一意な対称鍵である。これは、製造プロセス中に、プログラムして忘れる方法（ｐｒｏｇｒａｍ  ａｎｄ  ｆｏｒｇｅｔ  ｍａｎｎｅｒ）でランダムにヒューズを流す（ｆｌｏｗｉｎｇ  ｆｕｓｅｓ）ことにより、各チップセットに一意にプログラムされる。（チップセットもしくはチップセット部品の製造者を含む）誰もこの鍵について知らず、ＭＥは、ＭＥの外部からこの鍵へ絶対にアクセスさせない。
【００４５】
図５は、いくつかの実施形態にかかるシステム５００を示す。システム５００は、顧客位置５０２、許可サーバー５０４（たとえば、いくつかの実施形態では、許可サーバー４０４に類似および／または同一）、登録サーバー５０６、およびネットワーク５０８（たとえば、インターネット）を備える。いくつかの実施形態では、ネットワーク５０８は、顧客位置５０２、許可サーバー５０４、および登録サーバー５０６をつなぐ。いくつかの実施形態では、顧客位置５０２は、顧客、顧客のコンピューティングシステム、登録アプリケーション（ＥＡ）５１２、およびＭＥ５１４有する。いくつかの実施形態では、ＥＡ５１２および／またはＭＥ５１４は、顧客のコンピューティングシステムに常駐する。いくつかの実施形態では、許可サーバー（ＰＳ）５０４は、１つ以上の、企業間（Ｂ２Ｂ）サーバー、および／または１つ以上のバックエンドサーバーを有する。いくつかの実施形態では、登録サーバー５０６は、１つ以上の企業−顧客間（Ｂ２Ｃ）サーバー、１つ以上のＩＳＶサーバー、および／または１つ以上のフロントエンドサーバーを有する。いくつかの実施形態では、点線５２２は、許可注文（ｐｅｒｍｉｔ  ｏｒｄｅｒ）および／または遂行トランザクション（ｆｕｌｆｉｌｌｍｅｎｔ  ｔｒａｎｓａｃｔｉｏｎｓ）（たとえば、許可サーバー５０４と登録サーバー５０６との間のＩＳＶ許可注文および／または遂行トランザクション）を表す。いくつかの実施形態では、点線５２４は、顧客位置５０２と登録サーバー５０６との間の顧客許可注文および／または遂行トランザクションを表す。いくつかの実施形態では、許可サーバー５０４は、許可サーバー４０４に類似しているか、または同一である。いくつかの実施形態では、ＭＥ５１４は、ＭＥ１１２、ＭＥ２１２、ＭＥ３００、および／またはＭＥ４０２と同一であるか、類似している。
【００４６】
上記したように、いくつかの実施形態では、ＥＳ５０６は、１つのＢ２Ｃサーバー（および／または２つ以上のＢ２Ｃサーバー）である。いくつかの実施形態では、ＥＳ５０６は、負荷分散するべく２つ以上のサーバーである。いくつかの実施形態では、ＥＳ５０６は、顧客とやり取りして購入プロセスのフロントエンドを運用し、ＰＳ５０４とやり取りして許可を購入／受信する。
【００４７】
いくつかの実施形態では、登録アプリケーション（ＥＡ）５１２は、登録サーバー（たとえば、ＥＳ５０６）とやり取りして、顧客の購入プロセスを実行し、許可を要求／受信するローカルホストアプリケーションもしくはエージェントである。ＥＡ５１２は、ＭＥ５１４ともやり取りして、帯域内方式（ｉｎ−ｂａｎｄ  ｍａｎｎｅｒ）で許可をインストールする。許可インストールプロトコルの目的においては、いくつかの実施形態では、ＥＡ５１２は、たいていの場合、ＭＥ５１４とバックエンド（たとえば、許可サーバー５０４および登録サーバー５０６）との間でパススルーエージェントとして機能する。ＥＡ５１２は、ユーザー（顧客）とやり取りして、支払いおよびトランザクション情報を生成し、この情報を許可インストールプロトコルで用いる。
【００４８】
いくつかの実施形態では、顧客位置５０２の顧客は、ＥＡエージェント５１２を実行して、顧客のコンピューティングシステムの新しい機能（たとえば、フレキシブルＳＫＵ機能）を購入する。いくつかの実施形態では、顧客は、たとえば、エンドユーザーであってよく、または、企業のＩＴ購入エージェントであってよい。
【００４９】
いくつかの実施形態では、登録サーバー５０６は、顧客（たとえば、エンドユーザー）に対するインターフェースとなって、許可購入およびインストールプロセスの遂行を担うＩＳＶ／ＭＳＰ／ＭＳＰドメインである。いくつかの実施形態では、ＩＳＶ／ＭＳＰを用いて、機能の販売（たとえば、トランザクションの初期化の実行、収益の徴収、管理およびサポート等）を終了する。
【００５０】
いくつかの実施形態では、許可サーバー５０４等の許可サーバーを有する企業は、許可を注文し、発送し、インボイスを送る電子商取引についての支援を提供し、唯一の許可発行元である。いくつかの実施形態では、許可サーバー５０６は、当該企業の直接的な物理的制御下にある（たとえば、許可サーバー５０６は、当該企業の敷地にあり、当該企業は、許可サーバー５０６に支援およびセキュリティを提供する）。
【００５１】
いくつかの実施形態では、ハッキングからの保護が末端顧客（ｅｎｄ  ｃｕｓｔｏｍｅｒ）および／または製品製造現場において設けられており、ユーザーの機密情報の悪用が防止され、一意なデータは露出されず、ＣＬＳファームウェアおよび／または許可データのフィールドアップグレード時にフォールト・トレラント動作が維持され、機能のアップグレード、機能の解除、および／または機能の試用等に関して、返金および交換の支援が与えられる。
【００５２】
図６は、いくかの実施形態に係る許可６００を示す。いくつかの実施形態では、許可６００は、許可メッセージ６０２、および／または許可署名６０４を含む。許可メッセージ６０２は、いくつかの実施形態では、許可ヘッダー６１２、機能ディスクリプター（ｃａｐａｂｉｌｉｔｙ  ｄｅｓｃｒｉｐｔｏｒ）６１４、許可認証識別子６１６、および／または顧客認証識別子６１８を含む。いくつかの実施形態では、許可ヘッダー６１２は、ＩＤストリング６２２、許可バージョン６２４、許可長６２６、メッセージ長６２８、タイムスタンプ６３０、クラス６３２、および／またはフラッグ６３４を含む。いくつかの実施形態では、機能ディスクリプター６１４は、サブクラス６４２、ベンダーＩＤ６４４、装置ＩＤ６４６、および／または、特徴識別子６４８を含む。いくつかの実施形態では、許可署名６０４は、許可メッセージダイジェスト６５２を含む。いくつかの実施形態では、許可署名６０４および／または許可メッセージダイジェスト６５２は、電子商取引秘密鍵（たとえば、ＲＰＳＫ−ｐｒｉｖ）により署名される。
【００５３】
図７は、いくつかの実施形態に係る許可インストールプロトコル７００を示す。図７は、いくつかの実施形態にしたがってそれぞれ許可インストールプロセスに関与する顧客７０２、登録アプリケーション（ＥＡ）７０４、管理エンジン（ＭＥ）７０６、登録サーバー（ＥＳ）７０８、および許可サーバー（ＰＳ）７１０を示す。
【００５４】
いくつかの実施形態では、顧客７０２は、まず、ＥＡ７０４によりアプリケーションを開始する。次に、ＥＡ７０４は、ＭＥ７０６からプラットフォーム情報を取得する。次に、顧客７０２は、金銭的な量等の購入能力（ｐｕｒｃｈａｓｅ  ｃａｐａｂｉｌｉｔｉｅｓ）をＥＡ７０４に送信する。次に、ＥＡ７０４は、ＭＥ７０６に許可要求を生成する。次に、ＭＥ７０６は、ＰＳ７１０に許可要求を生成させる旨のメッセージをＥＡ７０４に送信する。次に、ＥＡ７０４は、許可要求の生成、ＰＳ顧客認証、および／または金銭的な量に関するメッセージをＰＳ７１０に送信する。次に、ＰＳ７１０は、許可要求を生成している旨のメッセージをＭＥ７０６に送信する。次に、ＭＥ７０６は、ＰＳ７１０と協働して許可をインストールする。次に、ＰＳ７１０は、許可がインストールされた旨の応答をＭＥ７０６に送信する。
【００５５】
いくつかの実施形態によると、許可インストールプロトコルは以下のように記述される。
0005526450.tif 000002
0005526450.tif 000003
0005526450.tif 000004
0005526450.tif 000005
【００５６】
以前に記載したように、いくつかの実施形態では、各ＭＥが、一意なＳａｆｅＩＤ秘密鍵を、チップセットの製造プロセスにおいてチップセットにヒューズとして焼き入れられる鍵のＳａｆｅＩＤシステムが実装される。ＭＥは、この鍵に対する外部からのいかなるアクセスも許容しない。鍵のグループ部分は、チップセットの製造者等の企業により所有され、その企業のデータセンターに設置される許可サーバーシステムに常駐する。チップセットの中のＳａｆｅＩＤ鍵は、許可サーバーによりグループ鍵を用いて検証される署名を（たとえば、タイムスタンプおよびノンス上に）生成するべく使用される。これにより、真正かつ合法なＭＥによって署名がされたことを、許可サーバーは保証される。
【００５７】
ＳａｆｅＩＤ鍵システムを用いることにより、許可サーバーは、ＭＥになりすました存在とではなく、真正なＭＥとやり取りしていることを保証される。これは、ＳａｆｅＩＤ秘密鍵について知っているのはＭＥだけであり、たとえばＭ１メッセージにタイムスタンプ値を署名し、後にＭ４に署名（ＲＡＮＤ２｜ＲＡＮＤ３）するのはＭＥだからである。ＰＳは、Ｍ１上のＳａｆｅＩＤ署名を検証するとき、メッセージが直前の４８時間内に再生されていない限り、真正なＭＥとやり取りしていることを知る。しかし、ＰＳは、Ｍ４を受信したときには、（ＲＡＮＤ２｜ＲＡＮＤ３）上のＳａｆｅＩＤ署名の検証に基づいて真正なＭＥとやり取りしていることを確認する。
【００５８】
いくつかの実施形態によると、コンピューターに許可をインストールするプロセスは、以下のように記述される。このプロセスのフローは、いくつかの実施形態によると、顧客により開始されるトランザクション（つまり、たとえば、顧客が特定のアップグレードを選択し、クレジットカードを使ってそれに対する支払いをする）を想定しており、次に、許可がその顧客のコンピューターにインストールされる。いくつかの実施形態によると、管理サービスプロバイダー（ＭＳＰ）により開始されるトランザクションも可能であり、管理アプリケーションが、対応するコンソールアプリケーションと通信して、コンピューターのエンドユーザーを巻き込まない方法で許可インストールプロセスを直接に開始する。
0005526450.tif 000006
【００５９】
いくつかの実施形態では、許可署名鍵対の秘密部分および許可署名鍵対の公開部分は、一緒にＲＳＡ鍵対を構成する。許可署名鍵対の秘密部分は許可サーバーに置かれ、許可署名鍵対の公開部分は、チップセットのＲＯＭに置かれる。
【００６０】
いくつかの実施形態では、ＳａｆｅＩＤ鍵のグループ部分およびＳａｆｅＩＤ鍵の秘密部分は、一緒に、ＥＣＣに基づいたＳａｆｅＩＤ鍵の対を構成する。ＳａｆｅＩＤ鍵のグループ部分は許可サーバーに置かれ、ＳａｆｅＩＤ鍵の秘密部分はチップセットのヒューズに置かれる。いくつかの実施形態では、チップセットヒューズ鍵もチップセットのヒューズに置かれる。
【００６１】
図８は、いくつかの実施形態に係る鍵インフラストラクチャー８００を示す。図８に示すように、許可サーバーに置かれる鍵８０２には、許可署名鍵対の秘密部分とＳａｆｅＩＤ鍵のグループ部分とがあり、チップセットのヒューズに置かれる鍵８０４には、ＳａｆｅＩＤ鍵の秘密部分とチップセットヒューズ鍵とがあり、チップセットのＲＯＭに置かれる鍵８０６には、許可署名鍵対の公開部分がある。
【００６２】
いくつかの実施形態では、ファームウェア署名鍵（ＦＷＳＫ）は、ＲＳＡ  ２０４８ビット鍵対（たとえば、ＦＷＳＫ−ｐｒｉｖおよびＦＷＳＫ−ｐｕｂを含む非対称鍵対）である。ＦＷＳＫは、１つ以上のファームウェア（ＦＷ）モジュールに署名するために使用される。ＲＯＭは、ＦＷモジュールのインテグリティ（つまり、正当な製造会社のものであるか、および改造されていないか）を保証するべく署名を認証する。ＦＷＳＫ−ｐｒｉｖ鍵は、コード署名システム設備（たとえば、製造会社）内の鍵保管室に保管される。ＦＷＳＫ−ｐｕｂ鍵は、ＭＥのマスクＲＯＭに置かれる。ＦＷＳＫ−ｐｕｂ鍵は、届いたファームウェアの署名を、インストールおよび実行の前に検証するために用いられる。
【００６３】
いくつかの実施形態では、ルート許可署名鍵（ＲＰＳＫ）は、許可に署名するべく用いられるＲＳＡ  ２０４８ビット鍵対（たとえば、ＲＰＳＫ−ｐｒｉｖおよびＲＰＳＫ−ｐｕｂを含む非対称鍵対）である。ＲＰＳＫ−ｐｒｉｖ鍵は、会社（たとえば、製造会社）の許可署名設備内の鍵保管室に保管される。ＲＰＳＫ−ｐｕｂ鍵は、ＭＥファームウェアの一部として置かれ、（ＦＷＳＫ−ｐｒｉｖにより署名される）。ＲＰＳＫ−ｐｕｂはＲＰＳＫ−ｐｒｉｖにより署名されて届いた許可の署名を検証する。
【００６４】
いくつかの実施形態では、チップセットヒューズ鍵（ＣＦＫ）は、ランダムな単位当たりの対称鍵（ｒａｎｄｏｍ  ｐｅｒ  ｕｎｉｔ  ｓｙｍｍｅｔｒｉｃ  ｋｅｙ）（たとえば、１２８ビットの）である。ＣＦＫは、製造プロセスの一環として、ヒューズに「焼かれる」。ＣＦＫは、ランタイムにＭＥがその他の対称鍵（チップセット格納鍵もしくはＣＳＫを含む）を生成するためのルート鍵として使用される。いくつかの実施形態では、チップセット格納鍵（ＣＳＫ）は、ランダムな対称鍵（たとえば、１２８ビットの）である。ＣＳＫは、ＭＥにおいてＣＦＫを使用して生成される。ＣＳＫは、フラッシュメモリに記憶されるデータを暗号化するために使用される。
【００６５】
図９は、いくつかの実施形態に係るフロープロトコル９００を示す。図９のフロー９００は、ＭＥ９０２、ＥＡ９０４、およびＰＳ９０６を含む。フロー９００では、ＭＥ９０２は、ＲＳＡ暗号（たとえば、ＲＰＳＫ−ｐｕｂ、現在時間、「私はＭＥである」ことを示すＳａｆｅＩＤ署名、現在時間等）を含めてＭ１を生成する。次に、ＥＡは、認証メッセージを構成し、Ｍ２としてＰＳ９０６に送信する。ＰＳ９０６は、ＳａｆｅＩＤ署名を認証し、時間の値が特定の時間許容限度内（たとえば、４８時間以内）であることを確認する。ＰＳ９０６は、ＲＡＮＤ１およびＲＡＮＤ２を含むＭ３を生成し、ＭＥ９０２に（たとえば、ＥＡ９０４を介して）送信する。ＭＥ９０２は、ＳａｆｅＩＤ署名、ＲＡＮＤ２、およびＲＡＮＤ３を含めて応答Ｍ４を生成し、ＰＳ９０６に（たとえば、ＥＡ９０４および／またはＥＳを介して）送信する。次に、ＰＳ９０６は、ＳａｆｅＩＤ署名を検証することで、相手がＭＥ９０２であって、なりすまし者ではないことを確実に証明する。ＰＳはメッセージＭ５をＭＥ９０２に送信し、次にＭＥ９０２は、許可をインストールする前にＭ５を検証し、製造試験許可または試験許可を置き換え、および／または次のシステムリブート字に次の機能を起動させる。
【００６６】
いくつかの実施形態では、ハードウェア（ＳＫＵ）のアップグレードおよび／または再構成は、リモートプロトコルメカニズムを介して可能となる。いくつかの実施形態では、実装は、ＩＣＨ（Ｉ／Ｏコントローラーハブ）、ＭＣＨ（メモリコントローラーハブ）、ＧＭＣＨ（グラフィックス／メモリコントローラーハブ）、ＰＣＨ（プラットフォームコントローラーハブ）、および／または別のチップセットまたはハードウェア装置になされる。いくつかの実施形態では、ハードウェアは、ユーザーのプライバシーを維持および保証しつつ、遠隔からセキュアにアップグレードしてよい。
【００６７】
いくつかの実施形態では、集積コントローラーをネットワークプロトコルおよび組み込み暗号化機能と組み合わせることで、情報交換するためのセキュアで、内密で、信頼性のある方法を提供するためにクライアントＯＳから帯域外で通信するための堅牢なプロトコルが開発できるようになる。いくつかの実施形態では、システムＯＳの範囲およびマルウェアによる攻撃の外で情報が交換される。いくつかの実施形態では、ＣＬＳ（ケイパビリティライセンシングサービス）によって、ハードウェアの構成状態の変更を可能にする方法についての情報が提供される。
【００６８】
いくつかの実施形態では、コンピューターのハードウェア構成を変更してよい。いくつかの実施形態では、コンピューターのハードウェア構成を、ブート／初期化時にオーバーライド制御メカニズムを用いて変更してよい。いくつかの実施形態では、ソフトウェアに基づくアップグレードメカニズムを用いて、コンピューターを解体したりハードウェアを取り替えたりする必要なしに、ハードウェア自体をアップグレードする。いくつかの実施形態では、これは、組み込みマイクロコントローラー、ファームウェア、およびハードウェアを用いてソフトウェアに基づくハードウェアアップグレードを可能にすることにより実施される。
【００６９】
図１０は、いくつかの実施形態に係るシステム１０００を示す。いくつかの実施形態では、システム１０００は、メモリコントローラーハブ（ＭＣＨ）１００２および入出力（Ｉ／Ｏ）コントローラーハブ（ＩＣＨ）１００４を備える。いくつかの実施形態では、ＭＣＨ１００２は、１つ以上のハードウェアヒューズオーバーライドレジスター１０１２、管理エンジン（および／または管理可能性エンジンおよび／またはＭＥ）１０１４、１つ以上のフレキシブルＳＫＵ（フレックス−ＳＫＵ）ディセーブルヒューズ１０１６、１つ以上のハードウェアヒューズ読み出し専用レジスター１０１８、および／またはファームウェア認証モジュール１０２０を有する。いくつかの実施形態では、ＩＣＨ１００４は、１つ以上のハードウェアヒューズレジスター１０２２、１つ以上のフレキシブルＳＫＵ（フレックス−ＳＫＵ）ディセーブルヒューズ１０２６、および１つ以上のハードウェアヒューズ読み出し専用レジスター１０２８を有する。
【００７０】
いくつかの実施形態では、ハードウェアヒューズオーバーライドレジスター１０１２および／または１０２２によって、フレキシブルＳＫＵソリューションに参与する各コンポーネント（たとえば、ＭＣＨ１００２および／またはＩＣＨ１００４）のハードウェア要素のヒューズの設定にＭＥファームウェアがオーバーライドすることが可能になる。これらのレジスターには、ホストによって書き込むことはできない。したがって、一旦これらのレジスターがＭＥファームウェアによって設定されれば、ホストのソフトウェアによってこれらのレジスターをプログラムすることは不可能となることが保証され、および／または、再プログラムされているレジスターにその他のファームウェアランタイムバグが発生しないようになる。ＭＥファームウェアは、プラットフォームのブート／初期化サイクルの最初期にこれらのレジスターをプログラムしてロックする。
【００７１】
いくつかの実施形態では、ＭＥ１０１４は、図１０に示すヒューズオーバーライド構成のプログラミングを実行するハードウェア処理エンジンである。ＭＥ１０１４は、署名／認証され、検証されたファームウェアコードを実行する。このＭＥファームウェアは、オペレーティングシステム（ＯＳ）で実行されているユーザーコードとやり取りする。ユーザーコードは、ＭＥファームウェアとやり取りして、ハードウェアヒューズオーバーライドレジスター１０１２および／または１０２２をプログラムすることができる。ＭＥファームウェアは、ハードウェアヒューズオーバーライドレジスターの値を変更する前に、全ての条件が満たされているようにする。このようにすることで、ＭＥ１０１４上で実行されるファームウェアだけが、ハードウェアヒューズオーバーライドレジスター１０１２および１０２２をプログラムすることができるようになる。
【００７２】
フレックス−ＳＫＵディセーブルヒューズ１０１６および／またはフレックス−ＳＫＵディセーブルヒューズ１０２６は、図１０のシステム１０００のハードウェアヒューズオーバーライド構成をディセーブルするために使用されるハードウェアヒューズである。ヒューズ１０１６および１０２６は、ファームウェアによって読み出すことが可能であり、フレキシブルＳＫＵファームウェアは、ヒューズ１０１６および／または１０２６がイネーブル状態に設定（たとえば、フレキシブルＳＫＵをイネーブルするように設定）されているときにだけ動作する。ヒューズ１０１６および／または１０２６は、深刻な不具合が発生したときにオーバーライド機能がディセーブルされるようにするので、初期のオーバーライドメカニズムにとっては非常に重要である。このハードウェアディセーブルは、いくつかの実施形態では、オーバーライドメカニズムを備えるチップセットまたは当該メカニズムを備えず出荷されたチップセットのＳＫＵを定義するべく使用してもよい。
【００７３】
いくつかの実施形態では、ハードウェアヒューズ読み出し専用レジスター１０１８および／または１０２８によって、オーバーライドソリューションに参与する各コンポーネントのハードウェア要素ヒューズに対するファームウェア読み出しアクセスをハードウェアによってサポートすることが可能になる。
【００７４】
いくつかの実施形態では、ファームウェア認証１０２０は、ハードウェアオーバーライドレジスターを変更することができるＭＥファームウェアモジュールが、特定の会社（たとえば、そのハードウェアを製造した会社）によって記述されたファームウェアだけであるべきことを認証する方法を提供する。これによって、攻撃者が独自のファームウェアを記述して、ハードウェア上の機能をイネーブルするためにそれを用いることが不可能になる。
【００７５】
いくつかの実施形態では、図１０に示すＭＣＨ１００２は、図１０に示されない追加的な機能を有する。たとえば、いくつかの実施形態では、ＭＣＨ１００２は、チップセット識別子（チップセットＩＤ）、ＭＥデバッグディセーブルメカニズム、チップセットヒューズ鍵、乱数発生器（ＲＮＧ）、モノトニックカウンター、および／またはさらなる特性を有する。
【００７６】
いくつかの実施形態では、チップセットＩＤは、ファームウェアが所定の系統のハードウェア上で実行されていることを認識できるようするためのメカニズムを提供するべくＭＣＨ１００２に含められる。いくつかの実施形態では、ＭＣＨ１００２は、製造ハードウェアに含まれるシステムデバッグ機能が、ＣＬＳシステムを攻撃する手段として用いられるのを防止するべくサポートされたＭＥデバッグディセーブルメカニズムを有する。いくつかの実施形態では、ＭＣＨ１００２は、一意にＣＬＳハードウェアを識別する一組のヒューズに対するファームウェア読み出しアクセスを提供するチップセットヒューズ鍵を有する。チップセットヒューズ鍵は、プラットフォームハードウェアを許可に対応させるために用いられる信号を生成するファームウェアにより使用される。いくつかの実施形態では、ＭＣＨ１００２は、セキュアなＣＬＳおよびフレキシブルＳＫＵシステムを提供するべく、乱数発生器（ＲＮＧ）（たとえば、真ＲＮＧ）を有する。ハードウェアＲＮＧが不可能であるいくつかの実施形態では、疑似乱数発生器をファームウェアにより実装して、セキュリティおよびプライバシー上の懸念に対処する。いくつかの実施形態では、ＭＣＨ１００２は、許可の取消およびアップグレードのフローを支援するためのモノトニックカウンターを有する。
【００７７】
いくつかの実施形態によると、システム初期化／ブート期間においてハードウェアオーバーライドレジスターをプログラムする制御フローは、以下のように進む。まず、ユーザーがシステムを起動し、次にＭＥ１０１４が初期化される。次に、ＭＥ１０１４は、ハードウェアヒューズマトリックスを読み出してハードウェアヒューズ読み出し専用レジスター１０１８および／または１０２８に書き込む。ＭＥ１０１４は、内部レジスターにビットを設定することで、オーバーライドメカニズムに対して自身が実行可能であることを通知する。次に、オーバーライドファームウェアは、メカニズムがオンされているかオフされているかを、フレックス−ＳＫＵディセーブルヒューズ１０１６および／または１０２６を読み出すことによって判定する確認を行う。イネーブルされていない場合、オーバーライドファームウェアは、以降のファームウェアオーバーライド動作を実行することなく、プラットフォームブートプロセスを進行させる。イネーブルされている場合、ＭＥのオーバーライドファームウェアは続行し、この場合、セキュアで／信頼のおける位置から新しいオーバーライドヒューズマップを読み出す。次に、ＭＥのオーバーライドファームウェアは、新しいオーバーライドヒューズマップをハードウェアヒューズオーバーライドレジスター１０１２および／または１０２２に書き込む。
【００７８】
いくつかの実施形態によると、エンドユーザーによって（たとえば、チップセットの）ハードウェア構成を変更することができ、金銭を支払うことで新しい機能を有効化するハードウェアアップグレードサービスが実施される。エンドユーザーと、会社、たとえば、ハードウェアを製造した会社との間でセキュアなトランザクションが実行される。支払いを受けた後、会社はユーザーのコンピューターに（たとえば、ユーザーのコンピューターのチップセットに）セキュアで署名された許可を発行する。ユーザーのコンピューター（および／またはチップセット）は、許可を検証し、許可に含まれる情報を用いてブート時にヒューズオーバーライドレジスターをプログラムし、新しい構成を有効にする。
【００７９】
いくつかの実施形態によると、ハードウェアを一切物理的に変更することなしに、ソフトウェアプログラミングによりハードウェア構成を変更する。
【００８０】
図１１は、いくつかの実施形態に係るプロトコルフロー１１００である。いくつかの実施形態では、図１１は、ＭＥ１１０２（たとえば、いくつかの実施形態では、ＭＥ１１０２は、たとえばＭＥ１１２、ＭＥ２１２、ＭＥ３００、ＭＥ４０２等の、本明細書で記載されたＭＥの全てもしくはいくつかに類似しているか、同一である）、および許可サーバー（ＰＳ）１１０４（たとえば、いくつかの実施形態では、ＰＳ１１０４は、たとえばＰＳ４０４、５０４等の、本明細書で記載されたその他の許可サーバーの全てもしくはいくつかに類似しているか、同一である）を含む。
【００８１】
いくつかの実施形態では、許可署名鍵対は、許可の署名および検証に使用される非対称（ＲＳＡ）鍵対である。対のうちの秘密鍵は、たとえばＰＳ１１０４等の許可サーバーに置かれ、セキュアなデータセンター設備（たとえば、ＨＳＭを備える）に常駐する。鍵対の公開部分は、たとえばチップセットＲＯＭおよび／または署名されたＭＥファームウェアイメージに置かれ、誰によっても変更できない。許可には、この鍵対の秘密部分によって署名がされ、ＭＥ（たとえば、ＭＥ１１０２）は、署名を検証するべく公開部分を用いる。
【００８２】
いくつかの実施形態では、チップセットヒューズにチップセットヒューズ鍵が設けられる。いくつかの実施形態では、チップセットヒューズ鍵は、各チップセット部品に一意である。チップセットヒューズ鍵は、製造プロセスにおいて、プログラムして忘れる方法（ｐｒｏｇｒａｍ  ａｎｄ  ｆｏｒｇｅｔ  ｍａｎｎｅｒ）でランダムにヒューズを流す（ｆｌｏｗｉｎｇ  ｆｕｓｅｓ）ことにより、各チップセットに一意にプログラムされる。（製造者を含む）誰もこの鍵について知らず、ＭＥ（たとえば、ＭＥ１１０２）は、外部からこの鍵へ絶対にアクセスさせない。
【００８３】
いくつかの実施形態では、図１１に示すように、コンピューターのチップセットは、許可認証識別子（もしくはＰＡＩＤ）等の一意な識別子を、識別子が特定のチップセットもしくはチップセット部品に結び付けられるように生成する。いくつかの実施形態によると、これは、ＰＡＩＤを特定のチップセットサンプル（ｃｈｉｐｓｅｔ  ｉｎｓｔａｎｃｅ）に関連付け直すことができないような方法でなされる。識別子を参照することで、チップセットは識別子が特定のチップセットサンプルに結び付けられているか否かを判別することができる。しかし、識別子を参照することでは、識別子が結び付けられている特定のチップセットサンプルに、識別子を関連付け直すことはできない。このような許可認証識別子（ＰＡＩＤ）が、図１１にＰＡＩＤ１１１２として示されている。
【００８４】
いくつかの実施形態では、ＭＥ１１０２は、特定のチップセット、チップセットサンプル、および／またはＭＥ１１０２が常駐するコンピューターに結び付けられる新しいＰＡＩＤ１１１２を生成する。許可サーバー（ＰＳ）１１０４はＭＥ１１０２からＰＡＩＤ１１１２を受信し、次に、許可１１２２を生成して、許可１１２２にＰＡＩＤ１１１２をＰＡＩＤ１１２４として埋め込む。許可１１２２は、ＰＡＩＤ１１２４およびその他の許可データ１１２６を含む。許可１１２２は、署名１１２８も含み、および／または署名１１２８に取り付けられている。
【００８５】
ＭＥ１１０２は、署名１１２８を受信し、許可署名公開鍵（つまり、たとえば、許可署名鍵対の公開部分）を使用して検証する。次に、ＭＥ１１０２は、ＰＡＩＤ１１２４を検証する。ＰＡＩＤ検証が成功した場合、ＭＥ１１０２は、許可１１２２が、ＭＥ１１０２（および／またはＭＥ１１０２が常駐するコンピューター）によってだけ送信され、その他のいかなるＭＥ（および／またはコンピューター）からも送信されていないＰＡＩＤ１１１２に応答するものであると判定する。
【００８６】
いくつかの実施形態によると、ＰＳ１１０４は、ＭＥ１１０２により使用される認証された許可を生成する信頼されたプロビジョニングサーバーである。ＰＳ１１０４は、署名されたＭＥファームウェアに公開部分が埋め込まれている暗号化ＲＳＡ鍵に対して（たとえば、ＨＳＭを介して）セキュアなアクセスを有する。したがって、ＰＳ１１０４は、ＭＥ１１０２等のＭＥによって、信頼されたエンティティによって生成されたと認証することができる許可１１２２等の許可を生成することができる。いくつかの実施形態では、許可サーバー１１０４は、署名した許可にハードウェアヒューズオーバーライド情報を埋め込み、その後、ＭＥ１１０２はその情報を（たとえば、ソフトＳＫＵおよび／またはＭＥ１１０２が常駐するコンピューター内のハードウェアのアップグレードの目的に）用いる。いくつかの実施形態では、ＰＳ１１０４は、これらの動作を実行する１つ以上のサーバーを含む（たとえば、インフラストラクチャーの実装および転送容量に関する要件に依存して）。
【００８７】
いくつかの実施形態では、許可１１２２は、本明細書に記載されたその他の許可（たとえば、いくつかの実施形態では、許可４１２、許可６０２等）と同一であるか、および／または類似した署名されたデータ構造である。許可１１２２は、ハードウェアヒューズオーバーライド情報を（たとえば、「機能ＩＤ」フィールドに）含む署名されたデータ構造である。特定の会社以外の誰も、ＭＥ１１０２による検証が成功するように許可１１２２を生成することはできない。いくつかの実施形態では、その会社とは、たとえば、許可サーバー１１０４の所有者、および／またはＭＥ１１０２の（ＭＥ１１０２を含むチップセット等の）製造者である。いくつかの実施形態では、許可１１２２は、残りのデータ構造の解釈を示すクラスおよびサブクラス識別子をさらに含む。いくつかの実施形態では、許可１１２２は、それが生成された時間を示すタイムスタンプを（たとえば、「タイムスタンプ」フィールドに）含む。許可１１２２は、いくつかの実施形態では、たとえば、許可がインストールされた直後にシステムをリブートするか否か等のいくつかの許可特性を示す属性も（たとえば、「フラッグ」フィールドに）含む。
【００８８】
いくつかの実施形態では、ＭＥ１１０２は、ヒューズオーバーライドメカニズムのプログラミングを実行するハードウェア処理エンジンである。ＭＥ１１０２は、署名／認証され、検証されたファームウェアコードを実行する。このＭＥファームウェアは、オペレーティングシステム（ＯＳ）で実行されているユーザーコードとやり取りすることができる。ユーザーコードは、ＭＥファームウェアコードとやり取りして、ハードウェアオーバーライドレジスターをプログラムすることができる。ＭＥファームウェアは、ハードウェアヒューズオーバーライドレジスターの値を変更する前に、全ての条件が満たされる（許可の検証を含む）ようにする。ＭＥ１１０２は、許可インストールプロトコルの終わりも実行する。
【００８９】
いくつかの実施形態（たとえば、図１１のいくつかの実施形態）では、ＰＡＩＤ登録は、以下の段階にしたがって実行される。
−乱数値「Ｒ」を生成する。
−Ｒをセキュアなフラッシュに記憶する。
−Ｘ、Ｙ、およびＺが以下のように定義され、Ｈが以下に記載されるセキュアなハッシュ関数であるＰＡＩＤ＝Ｈ（Ｘ｜Ｙ｜Ｚ）を生成する。
Ｘ＝許可認証鍵＝Ｈ（Ｒ，ＣＦＫ）
Ｙ＝許可認証メッセージ＝周知のストリング−「許可認証メッセージ」
Ｚ＝アップグレードが必要な顧客により要求された機能ＩＤ
【００９０】
いくつかの実施形態では、セキュアなフラッシュは、不揮発性フラッシュ媒体にデータを永久的に記憶することができるコンピューターのマザーボード上のコンポーネントである。いくつかの実施形態では、このフラッシュ媒体に記憶されたデータは、機密保護され、インテグリティ保護され、および／または再生不可能に保護（ａｎｔｉ−ｒｅｐｌａｙ  ｐｒｏｔｅｃｔｅｄ）されている。
【００９１】
いくつかの実施形態では、セキュアなハッシュ関数（Ｈ）は、暗号処理上セキュアな一方向性ハッシュ関数である。たとえば、いくつの実施形態では、ハッシュ関数（Ｈ）は、ＳＨＡ１、ＳＨＡ−２５６、ＭＤ５等のうちの１つ以上である。
【００９２】
いくつかの実施形態では、ＰＡＩＤ値は、許可要求および許可を特定のコンピューティング機械、ハードウェア装置、ハードウェア部品、チップセット、チップセット部品等に結び付けるべく、ＣＬＳ許可インストールプロトコルで用いられる。ＰＡＩＤは、ＭＥ（たとえば、ＭＥ１１０２）からＰＳ（たとえば、ＰＳ１１０４）に送信される最初のメッセージに含められる。ＰＳは、ＰＡＩＤ値を署名した許可に埋め込み、許可をＰＳからＭＥへの応答メッセージに含めて返送する。ＭＥは、まず許可の署名を検証する。成功した場合、次にＭＥは、許可に含められたＰＡＩＤ値を検証する。ＰＡＩＤを検証するべく、ＭＥは、（たとえば、上記の動作によって）ＰＡＩＤを再生成し、それを許可に含まれるＰＡＩＤ（たとえば、許可１１２２に含まれるＰＡＩＤ１１２４）と比較する。検証が成功したならば、ＭＥは、この許可が、その他のエンティティでなく、当該ＭＥによって送信された要求に応答してＰＳにより送信されたことを保証される。次に、ＭＥは、許可を受諾する。
【００９３】
いくつかの実施形態では、ＭＥ（たとえば、ＭＥ１１０２）は、ＰＳに送信するべき許可要求を生成する必要があるたびに、新しいＰＡＩＤを生成する。ＰＡＩＤの構成要素の１つが乱数（たとえば、「Ｒ」）であるので、乱数が違う限り、２つのＰＡＩＤが同じになることはない。これにより、同一のＭＥにより生成されるいかなる２つのＰＡＩＤ値も、互いに完全に異なる。誰によっても、同一のＭＥまたは別々のＭＥに由来する２つのＰＡＩＤ値を識別できない。したがって、ＰＳから許可を購入および／または取得するとき、ユーザーのプライバシーが守られる。ＰＳは、自身の側で２つのＰＡＩＤ値を相互に関連付けて、２つのＰＡＩＤ値を同一のユーザーに関連付けるように用いることはできない。
【００９４】
いくつかの実施形態では、ネットワークトラフィック下での購入は、トランザクションの末端でのプライバシーが保護される。いくつかの実施形態によると、トランザクションは、サービスの売り手には匿名にされる。いくつかの実施形態では、一意な識別子の必要性なしで、トランザクション（たとえば、インターネット上での購入についての）が保証される。一意なＩＤは、ネットワーク上での購入トランザクションの要求により、取り除かれる。
【００９５】
いくつかの実施形態では、トランザクションが売り手に匿名にされるハードウェアアップグレードサービスを実施する。エンドユーザーは、ハードウェア構成（たとえば、チップセットの）を変更して、支払いと引き換えに新しい機能を有効にすることができる。エンドユーザーとハードウェアアップグレードのプロバイダーとの間でセキュアなトランザクションが可能であり、支払いを受けた後、ハードウェアアップグレードのプロバイダーは、セキュアで署名された許可をユーザーのコンピューターに（たとえば、チップセットに）発行する。ユーザーのコンピューター（および／またはそのコンピューターのチップセット）は、同一のコンピューターに対する異なる許可に埋め込まれたＰＡＩＤが同じにならないようにすることができる。これによって、（ＰＳを含む）いずれのエンティティによっても、許可（またはＰＡＩＤ）を、ＰＡＩＤを生成した同じハードウェアサンプル（ｈａｒｄｗａｒｅ  ｉｎｓｔａｎｃｅ）（たとえば、チップセットサンプル（ｃｈｉｐｓｅｔ  ｉｎｓｔａｎｃｅ））に関連付けることができないので、エンドユーザーのプライバシーが守られる。
【００９６】
いくつかの実施形態は、チップセット、ＭＣＨ、ＧＭＣＨ、ＩＣＨ、ＰＣＨ等で実装されると本明細書に記載されたが、いくつかの実施形態によると、これらの特定的な実装例は必要でない場合がある。たとえば、いくつかの実施形態では、他の装置で実装することもできる（たとえば、本明細書においてＭＣＨまたはＧＭＣＨで行われると記載されたいくつかの実施形態は、いくつかの実施形態によるとＰＣＨで、いくつかの実施形態では、本明細書に記載されていないその他の装置で行うことも可能である）。
【００９７】
いくつかの実施形態は特定の実装例を参照して記載されたが、いくつかの実施形態によると、その他の実装例も可能である。さらに、図示され、および／または本明細書に記載された回路要素またはその他の要素の配置および／または順序は、図示および記載された特定の配列でなくてよい。いくつかの実施形態によると、その他多くの配列が可能である。
【００９８】
図示される各システムにおいて、いくつかの場合における要素は、それぞれ同一の参照番号または異なる参照番号を有し、図示された要素が異なるものである、および／または類似したものであることを示した。しかし、要素はフレキシブルであり、別の様式で実装され、図示または本明細書に記載されたシステムのいくつか、または全てと協働することができる。図示された多様な要素は、同一であってよく、または異なってよい。いずれを第１の要素と呼び、いずれを第２の要素と呼ぶかは任意である。
【００９９】
記載および特許請求の範囲では、「結合された（ｃｏｕｐｌｅｄ）」および「接続された（ｃｏｎｎｅｃｔｅｄ）」という文言が、それらの派生語とともに使用される。これらの文言は、互いに同義語であることを意図されていないことは理解されるべきである。むしろ、特定の実施形態では、「接続された」は、２つ以上の要素が互いに直接的な物理的接触状態もしくは電気的接触状態にあることを示すために使用される。「結合された」は、２つ以上の要素が直接的な物理的接触状態もしくは電気的接触状態にあることを意味しうる。しかし、「結合された」は、２つ以上の要素が互いに直接的な接触状態にはないが、互いに協働したり相互作用したりすることをも意味しうる。
【０１００】
アルゴリズムは、本明細書においては、また一般的には、所望の結果に導かれる行為もしくは動作の自己矛盾のないシーケンスであると考えられている。これらには、物理量の物理的操作が含まれる。通常、必ずしもではないが、これらの量は、記憶、転送、組み合わせ、比較、およびその他の操作が可能な電気的または磁気的信号の形態を取る。主に広く使用されているという理由により、これらの信号を、ビット、値、要素、記号、文字、期間、数字等と呼ぶことには利便性があることが折に触れ明らかになっている。しかし、これらの文言および類似の文言は、適切な物理量に対応付けられているのであり、これらの量に付された便宜的な呼称であることは理解されるべきである。
【０１０１】
いくつかの実施形態は、ハードウェア、ファームウェア、およびソフトウェアのいずれか、またはこれらの組み合わせにより実装される。いくつかの実施形態は、コンピューティングプラットフォームにより読み出されて実行されることで本明細書に記載された動作を実行する、機械可読媒体に格納された命令として実装されてもよい。機械可読媒体は、機械（たとえば、コンピューター）により可読な形態で情報を格納または転送する任意のメカニズムであってよい。たとえば、機械可読媒体としては、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、伝播された信号の電気、光、音声、もしくはその他としての形態（たとえば、搬送波、赤外線信号、デジタル信号、信号を送信および／または受信するインターフェース等）、およびその他が挙げられる。
【０１０２】
実施形態は、発明の実施例または例である。本明細書において「ある実施形態」、「１つの実施形態」、「いくつかの実施形態」、もしくは「その他の実施形態」と言及された箇所は、当該実施形態に関連して記載された特定の特性、構造、または特徴が、本発明の少なくともいくつかの実施形態に含まれるが、必ずしも全ての実施形態に含まれるものではないことを意味する。「ある実施形態」、「１つの実施形態」、もしくは「いくつかの実施形態」等の多様な表現は、必ずしも全てが同一の実施形態を示すものではない。
【０１０３】
本明細書に記載され図示される要素、特性、構造、特徴等は、全てが特定の実施形態または複数の実施形態に含まれる必要はない。本明細書において、要素、特性、構造、または特徴を含めてよい、または含めることができる等と述べられる場合、当該特定の要素、特性、構造、または特徴を含めることは必須でない。本明細書または特許請求の範囲において要素を単数形で示す場合、当該要素が１つだけしかないことを意味するものでない。本明細書または特許請求の範囲において追加要素を単数形で示す場合、当該追加要素が１つより多く存在する場合を除外するものでない。
【０１０４】
フロー図および／または状態図を本明細書で用いて実施形態を記載したが、本発明は、これらの図または本明細書における対応する記載に限定されない。たとえば、フローは、図示された全ボックスもしくは状態を通る必要はなく、図示され本明細書に記載された通りの順序で通る必要もない。
【０１０５】
本発明は、本明細書に挙げられた特定の詳細事項に限定されない。事実、本開示から利益を得る当業者には、本発明の範囲内で、先の記載および図面についてのその他多くの変形が可能であることは理解されよう。したがって、本発明の範囲を規定するのは、以下に提示する特許請求の範囲およびそれに対する修正である。
【図１】
0005526450.tif 000007
【図２】
0005526450.tif 000008
【図３】
0005526450.tif 000009
【図４】
0005526450.tif 000010
【図５】
0005526450.tif 000011
【図６】
0005526450.tif 000012
【図７】
0005526450.tif 000013
【図８】
0005526450.tif 000014
【図９】
0005526450.tif 000015
【図１０】
0005526450.tif 000016
【図１１】
0005526450.tif 000017