JP5526450B2 - ハードウェア構成を変更する方法、ハードウェア構成の変更を遠隔位置において可能にする方法、及びそのための装置 - Google Patents

ハードウェア構成を変更する方法、ハードウェア構成の変更を遠隔位置において可能にする方法、及びそのための装置 Download PDF

Info

Publication number
JP5526450B2
JP5526450B2 JP2012546023A JP2012546023A JP5526450B2 JP 5526450 B2 JP5526450 B2 JP 5526450B2 JP 2012546023 A JP2012546023 A JP 2012546023A JP 2012546023 A JP2012546023 A JP 2012546023A JP 5526450 B2 JP5526450 B2 JP 5526450B2
Authority
JP
Japan
Prior art keywords
hardware
authorization
permission
secure
fuse
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.)
Expired - Fee Related
Application number
JP2012546023A
Other languages
English (en)
Other versions
JP2013516003A (ja
Inventor
マルチネズ、アルバート、ジェイ.
エー. スティーブンス、ジュニア、ウィリアム
ゴエル、プルショッタム
ブリッケル、アーニー
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2013516003A publication Critical patent/JP2013516003A/ja
Application granted granted Critical
Publication of JP5526450B2 publication Critical patent/JP5526450B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Communication Control (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本発明は、主に、ハードウェアのプロビジョニング、更新、および/または変更に関する。
現在、コンピューターシステムのハードウェア(たとえば、SKUもしくは最小在庫管理単位)を変更する目的で、製造業者は、製造フロアで試験ステーションを利用している。製造フロアで現在の試験プロセスを用いるよりも、ハードウェア(および/またはSKU)のプロビジョニングもしくは変更を、(たとえばOEMおよび/またはエンドユーザーもしくはエンドユーザーのIT部門により)コンポーネントの消費者に対して直接的に実行可能にすることは便利であろう。
さらに、コンピューター産業においてハードウェア構成を更新するための現在の技術では、ハードウェアの取り替えが必要である。たとえば、従来用いられてきた技術のいくつかでは、ピン、ジャンパー、ストラップ、ヒューズ等のハードウェアを物理的に変更することによるハードウェア構成の変更が含まれる。実際のハードウェアの取り替え、もしくはこのような物理的な変更なしで、ハードウェア構成の変更もしくは更新を提供することは便利であろう。
ネットワークトラフィック下での購入においては、現在、トランザクションのエンドポイントでのプライバシーは保護されていない。たとえば、インターネット上での購入の伝送には、現在、一意な識別子が用いられている。購入者のプライバシーを確保するには、サービスの売り手に対してトランザクションを匿名とすることを可能にすることは便利であろう。
本発明は、以下の詳細な記載および本発明のいくつかの実施形態を示す添付の図面からより十分に理解されるであろうが、図面は、記載される特定の実施形態に発明を限定するものと解釈するべきでなく、単に説明と理解を促進するためのものである。
本発明のいくつかの実施形態に係るシステムを示す。 本発明のいくつかの実施形態に係るシステムを示す。 本発明のいくつかの実施形態に係るシステムを示す。 本発明のいくつかの実施形態に係るシステムを示す。 本発明のいくつかの実施形態に係るシステムを示す。 本発明のいくつかの実施形態に係る許可を示す。 本発明のいくつかの実施形態に係るフローを示す。 本発明のいくつかの実施形態に係る鍵位置を示す。 本発明のいくつかの実施形態に係るフローを示す。 本発明のいくつかの実施形態に係るシステムを示す。 本発明のいくつかの実施形態に係るフローおよびシステムを示す。
本発明のいくつかの実施形態は、ハードウェアのプロビジョニング、更新、および/または変更に関する。
図1は、いくつかの実施形態に係るシステム100を示す。いくつかの実施形態では、システム100は、プロセッサー102(および/または中央演算処理装置もしくはCPU)、グラフィックス/メモリコントローラーハブ104(および/またはGMCHおよび/またはメモリコントローラーハブもしくはMCH)、および入出力コントローラーハブ106(および/またはICH)を備える。いくつかの実施形態では、GMCH104は、管理エンジン112(および/または管理可能性エンジンおよび/またはME)を有し、これは、マイクロコントローラーおよび/またはハードウェア処理エンジンである。いくつかの実施形態では、ME112は、ファームウェアサービスおよびアプリケーションを実行可能であり、いくつかの実施形態では、以下により詳細に記載されるその他のME装置と同一であるか類似している。
いくつかの実施形態では、GMCH104は、システムメモリへのアクセスを提供するメモリコントローラーを有する。システムメモリのうちの小さい部分が、ME112により、ランタイムにメモリが必要であるときに使用される。このメモリは、オペレーティングシステム(OS)が特別なハードウェア機構を用いてアクセスするメモリとは隔離されている。いくつかの実施形態では、この隔離状態を生成するアーキテクチャは、統合メモリアーキテクチャ(UMA)と呼ばれる。いくつかの実施形態では、ICH106は、とりわけ、イーサネット(登録商標)ネットワークコントローラー、ネットワークフィルター、および/または不揮発性フラッシュメモリコントローラーを有する。いくつかの実施形態では、無線ローカルエリアネットワーク(LAN)またはWiFiネットワークコントローラーが、たとえばPCIエクスプレスバスを介してICH106に接続される。ネットワークコントローラー、有線および無線LAN、並びにネットワークフィルターによって、いくつかの実施形態では、ME112にアクセスするための帯域外(OOB)通信が提供される。OOB通信によって、ME112は、自身に常駐するOSもしくはドライバーに依存することなく、ネットワークを介して通信を行うことが可能になる。OOB通信は、OSが動作しない、もしくはスリープ状態にあるいくつかの状態(たとえば、OSが機能停止したり、待機状態もしくはハイバーネート状態にある状態)にコンピューターが陥ったときでも、機能することができる。ICH106のフラッシュコントローラーは、コンピューターのマザーボードに設置されるフラッシュメモリ(たとえば、不揮発性メモリもしくはNVMとも呼ばれる)へのアクセスを提供する。いくつかの実施形態では、NVMは、とりわけ、基本入出力システム(BIOS)コード、MEコード、および/またはデータを格納している。
GMCH104およびICH106は、いくつかの実施形態では、ダイレクトメディアインターフェース(DMI)バスおよび/またはコントローラーリンク(CLink)バスを用いて互いに通信する。DMIバスは、ICH106とGMCH(もしくはMCH)104との間のチップ・ツー・チップ相互接続である。この高速インターフェースによって、入出力(I/O)サブシステム(たとえば、PCIエクスプレス、インテル・ハイ・デフィニション・オーディオ、シリアルエーティーエーもしくはSATA、ユニバーサルシリアルバスもしくはUSB等)は、最高の性能を発揮するために必要な情報量(bandwidth)を受信するようになる。いくつかの実施形態では、CLinkバスは、OSが動作しているときに用いられるのに加えて、コンピューターがスリープ状態もしくはハイバーネート状態にあるときでさえ用いることができる独自のインターフェース(proprietary interface)である。
いくつかの実施形態では、GMCH104(および/またはMCH104)は、1つ以上のディスプレイおよび/またはディスプレイポート(たとえば、CRT、HDMI、TV、LVDS)、1つ以上のグラフィックス装置および/またはグラフィックスポート、および/または1つ以上のメモリ装置(たとえば、デュアルインラインメモリモジュールもしくはDIMM装置)等を含むが、これらに限られない多数の装置に直接および/または間接に接続されている。
いくつかの実施形態では、ICH106は、ペリフェラルコンポーネントインターコネクト(PCI)装置および/またはPCIバス、ユニバーサルシリアルバス(USB)装置および/またはUSBバス、シリアルエーティーエー装置、SPIフラッシュ装置、ディスクリートTPM装置(discrete TPM devices)、スーパーI/O装置、SMバス装置、ハイ・デフィニション・オーディオ装置、PCIエクスプレス装置、ローカルエリアネットワーク(LAN)装置、ワイドエリアネットワーク(WAN)装置、無線ローカルエリアネットワーク(WLAN)装置、無線ワイドエリアネットワーク(WWAN)装置、WiMAX装置、フラッシュメモリ装置、エクスプレスカード装置等を含むが、これらに限られない多数の装置に直接および/または間接に接続されている。
図2は、いくつかの実施形態に係るシステム200を示す。いくつかの実施形態では、システム200は、プロセッサー202(および/または中央演算処理装置もしくはCPU)、およびプラットフォームコントローラーハブ204を備える。いくつかの実施形態では、プロセッサー202は、2つ以上のコア(たとえば、図2ではコア222およびアンコア224により示される)を有する。いくつかの実施形態では、PCH204は、管理エンジン212(および/または管理可能性エンジンおよび/またはME)を有し、これは、マイクロコントローラーおよび/またはハードウェア処理エンジンである。いくつかの実施形態では、ME212は、ファームウェアサービスおよびアプリケーションを実行可能である。いくつかの実施形態では、ME212は、ME112および/または以下により詳細に記載されるその他のME装置と同一であるか、もしくは類似している。
いくつかの実施形態では、プロセッサー202およびPCH204は、ダイレクトメディアインターフェース(DMI)バスを用いて互いに通信する。この高速インターフェースによって、入出力(I/O)サブシステム(たとえば、PCIエクスプレス、インテル・ハイ・デフィニション・オーディオ、シリアルエーティーエーもしくはSATA、ユニバーサルシリアルバスもしくはUSB等)は、最高の性能を発揮するために必要な情報量(bandwidth)を受信するようになる。いくつかの実施形態では、PCH204は、ICH106に関連して上記した機能および特性の多くもしくは全てを実行し、および/または、同じく上記した装置の多くもしくは全てが接続されている。いくつかの実施形態では、GMCH104に関連して上記した機能、特性、および/または接続のいくつかは、プロセッサー202に移行され、またいくつかはPCH204に移行されている。
いくつかの実施形態では、プロセッサー202は、1つ以上のディスプレイおよび/またはディスプレイポート(たとえば、CRT、HDMI、TV、LVDS)、1つ以上のグラフィックス装置および/またはグラフィックスポート、および/または1つ以上のメモリ装置(たとえば、デュアルインラインメモリモジュールもしくはDIMM装置)等を含むが、これらに限られない多数の装置に直接および/または間接に接続されている。
いくつかの実施形態では、PCH204は、ペリフェラルコンポーネントインターコネクト(PCI)装置および/またはPCIバス、ユニバーサルシリアルバス(USB)装置および/またはUSBバス、シリアルエーティーエー装置、SPIフラッシュ装置、ディスクリートTPM装置(discrete TPM devices)、スーパーI/O装置、SMバス装置、ハイ・デフィニション・オーディオ装置、PCIエクスプレス装置、ローカルエリアネットワーク(LAN)装置、ワイドエリアネットワーク(WAN)装置、無線ローカルエリアネットワーク(WLAN)装置、無線ワイドエリアネットワーク(WWAN)装置、WiMAX装置、フラッシュメモリ装置、エクスプレスカード装置等を含むが、これらに限られない多数の装置に直接および/または間接に接続されている。
図3は、いくつかの実施形態に係る管理可能性エンジン、管理エンジン、および/またはME300を示す。いくつかの実施形態では、ME300は、本明細書に記載されるその他のME装置と同一であるか、類似している(たとえば、いくつかの実施形態では、ME300は、ME112および/またはME212と同一であるか、類似している)。いくつかの実施形態では、ME300は、MEバックボーンバス330により互いに接続されたプロセッサー(たとえば、ARCプロセッサー)302、コードキャッシュ304、データキャッシュ306、ダイレクトメモリアクセス(DMA)エンジン308、暗号化エンジン310、読み出し専用メモリ(ROM)312、コントローラーリンク(CLink)インターフェース314、管理エンジンインターフェース316、メモリコントローラーインターフェース318、インタラプトコントローラー320、高精度および/またはウォッチドッグタイマー322、内部ランダムアクセスメモリ(および/またはSRAM)324、および/またはメインメモリコントローラーへのコネクター326を有する。
コードキャッシュ304およびデータキャッシュ306は、システムメモリへのメモリアクセスを減らすことにより、MEの機能の高速化を促進する。DMAエンジン308は、ME300と、OSメモリおよびME UMA(統合メモリアーキテクチャ)メモリとのデータのやり取りを促進する。DMAエンジン308には、ME300によってだけアクセス可能であり、OSによってはアクセスできない。さらに、ME300はOSがDMAエンジン308にアクセスするためのいかなる一般的なインターフェースをも提供しない。暗号化エンジン310は、たとえば、無線セキュリティ、TLSを介したHTTPセキュリティ等のセキュア通信プロトコル用にME300内で実行される暗号化演算を高速化するためのハードウェアオフロード(hardware offloads)を提供する。ME300の初期ブートコードは、ROM312に存在し、そこから実行される。いくつかの実施形態では、CLinkインターフェース314は、スリープもしくはハイバーネート等の低電力状態でのGMCHとICHとの間の通信に用いられ、ICHの中のいくつかのME用装置(ME specific devices)はCLinkだけを介してME300と通信し、いくつかの装置は、CLinkだけでなくDMIを介しても通信できる(たとえば、ネットワークコントローラー)。
メインシステムメモリのうちの小さい部分が、ME300により、ランタイムにメモリが必要であるときに使用される。この隔離は、UMAメカニズムによって為される。いくつかの実施形態では、GMCH内の集積グラフィックスコントローラーは、メインシステムメモリの一部を必要時に使用するべく同じメカニズムを利用する。いくつかの実施形態では、このメモリのサイズは16MBであり、これは、2から3GBのDRAMを有するコンピューターにおける全システムRAMの1%未満である。OSの視点から見ると、グラフィックスUMAメモリの部分は、MEを備えないコンピューターの同部分よりわずかに大きいように思われる。
いくつかの実施形態では、ME300は、コード、設定、データ等を永久記憶するべくマザーボードに存在するNORフラッシュ不揮発性メモリ(NVM)を用いる。NVMは、BIOSコードおよびその他の特定OEMデータ(OEM specific data)を記憶するためにも用いられる。NVMは、たとえば、ME、BIOS、およびネットワークコントローラーのための別々の領域を含む特定の領域に分割されている。NVMは、NVMの多様な領域にアクセスするための許可を特定するアクセス制御ディスクリプター(access control discriptor)を(たとえば、NVMの最初の部分および/またはアドレス0に)含む。ICHハードウェアによって、これらの許可が効力を発揮するようになる。ICHがフラッシュにアクセスするべく用いるコントローラーは、シリアルペリフェラルインターフェース(SPI)に基づいている。フラッシュのME領域は、さらに、コード、回復コード、内部構成データおよび変数記憶、イベントログ、並びにユーザー/ISV関連データ用の領域に分割されている。
いくつかの実施形態では、デスクトッププラットフォームにおいては、イーサネット(登録商標)ネットワークアダプターだけがME300に接続されている。いくつかの実施形態では、移動体プラットフォームにおいては、ME300は、イーサネット(登録商標)ネットワークコントローラーおよびWiFiネットワークコントローラーの両方に、(たとえば、OSが動作しているときにも、システムが故障したり、スリープ状態にある等、OSが動作していないときにも)アクセスを有する。イーサネット(登録商標)コントローラーおよびWiFiコントローラーのようなネットワークコントローラーは、いくつかの実施形態では、CLinkインターフェースを用いてME300と通信し、MEはイーサネット(登録商標)コントローラー(たとえば、ギガビットイーサネット(登録商標)コントローラー)からとWiFiコントローラーからとでは異なるトラフィックにアクセスする。MEは、OSを用いることなくイーサネット(登録商標)コントローラーを介して直接にトラフィックを送受信する。しかし、WiFiのいくつかの実施形態では、ネットワークコントローラーは、単一のマスターを有し、OSが動作しているときは、WiFiのトラフィックは、OSの中のWiFiドライバーを介してMEにルーティング(routed)される。しかし、OSが故障したり、スリープ状態に入った場合には、MEはWiFiネットワークコントローラーの所有主となり、直接に通信を実行する。
コンピューターとの遠隔通信は、これらのインターフェースを介して管理コンソールから(たとえば、HTTPおよびその他のプロトコルを用いて)実施してよい。MEファームウェアは、OSと共通のLAN MAC、ホスト名、およびIPアドレスを共有することができ、ITインフラストラクチャーコストの最小化が促される。
いくつかの実施形態では、MEの帯域外(OOB)通信アーキテクチャは、たとえば、ARP、DHCP、およびIPポートフィルターをサポートする。OOB通信アーキテクチャは、特定のIPアドレスを含むARPパケットをホストおよび/またはMEに転送することによってARPをサポートする。OOB通信アーキテクチャは、DHCPオファーおよびACKパケットをホストおよび/またはMEに転送することによりDHCPをサポートする。OOB通信アーキテクチャは、特定のポートにやって来るIPパケットをMEに出力先変更することによりIPポートフィルターをサポートする(たとえば、HTTPおよび出力先変更)。
いくつかの実施形態では、ME ROM(たとえば、ROM312)は、GMCHチップのシリコンの中にマスクされている。ROMは、リセットベクトル(MEがリセットされた後、最初に実行される命令のセット)を含む。ROMには、MEによってだけアクセス可能であり、ホストまたはOSによってはアクセスできない。ROMコードは製造時にチップにマスクされるので、変更不可能であり、したがってセキュアである。ROMは、たとえば、MEメモリ領域を構成して、所定のハードウェアピースを初期化し、フラッシュ上のファームウェア画像のインテグリティおよび署名を確認し、ファームウェア画像に制御を伝える。いくつかの実施形態では、ROMは、MEファームウェアの信頼性の根幹(root of trust)である。
いくつかの実施形態では、MEカーネルモジュールは、ME環境の基本的機能を提供するサービスおよびドライバーにより構成されている。カーネルによって、任意の汎用的な実行環境に期待される基本的なサービスのセットが提供される。たとえば、いくつかの実施形態では、これらのサービスには、ブートストラップおよび初期化、タスクおよびスレッドの管理、メモリ管理、インタラプト管理、タイマー、メッセージングおよび複数イベント/単数イベントモニタリング、セキュリティおよび暗号化機能、ローカルインターフェースおよびネットワークインターフェースのドライバー、ストレージ等、電力管理、インターフェースの発見(interface discovery)、および/またはファームウェアの更新が含まれる。
MEは、いくつかの非常にセキュリティに敏感な技術(たとえば、トラステッドプラットフォームモジュールもしくはTPM)を搭載しているので、高度にセキュリティに敏感なアプリケーションとその他との間にカーネルレベルで高度な隔離および分離を設ける必要がある。したがって、カーネルは、いくつかの実施形態では、特権的な部分と非特権的な部分とに分割される。特権的な部分は、ROMと、ローダーおよびブリングアップモジュール(bring−up modules)等の初期化モジュールと、特権的カーネルと呼ばれるカーネルの一部と、TPMファームウェアとを含む。非特権的部分は、非特権的カーネルと呼ばれるカーネルの残りの部分と、サポートモジュールと、共通サービスモジュールと、その他のファームウェアアプリケーションとを含む。特権的モードで実行されるファームウェアは、所定のメモリ範囲および所定のハードウェアレジスター等の特権的ハードウェアリソースに対するアクセスを有する。特権的リソースにアクセスしようと試みる非特権的ファームウェアによって、エクセプションもしくはインタラプトが生じる。MEのレジスターは、特権的モードに出入りするためのコードのアドレスを含む。
いくつかの実施形態では、ME300は、OSによってはアクセスできず、MEによってだけアクセスできる保護リアルタイムクロック(PRTC)と呼ばれるチップセット上の特殊目的用クロックにアクセスを有する。
図4は、いくつかの実施形態に係るシステム400を示す。いくつかの実施形態では、システム400は、許可サーバー404(たとえば、1つ以上の企業間サーバーまたはB2Bサーバー)にインターネット406を介して接続された管理可能性エンジン(および/または管理エンジンおよび/またはME)402を備える。許可412は、ME402と許可サーバー402との間で転送される。ME402は、ホスト通信リンク408および/または帯域外(OOB)ネットワーク通信リンク410を介してインターネットに接続される。
いくつかの実施形態では、ME402は、ホスト−組み込みコントローラーインターフェース(HECI)422、HECIドライバー424、ネットワークインターフェースカード(NIC)426、ネットワークスタック428、アクティブ管理技術(AMT)430、フレキシブルSKU432、ケイパビリティおよびライセンシングサービス(CLS)、および/またはインテルケイパビリティおよびライセンシングサービス(iCLS)434、ヒューズアクセス436、ハードウェア識別子(HWID)438、ヒューズ読み出しアクセス440、ヒューズオーバーライド442、セキュアファイルシステム444、シリアルぺリフェラルインターフェース(SPI)フラッシュ446、暗号化ドライバー448、リベスト・シャミール・アドルマン(RSA)鍵に基づく暗号化450、セキュアハッシングアルゴリズム・バージョン1(SHA−1)452、真乱数発生器(TRNG)454、セキュアタイム456、および/または保護リアルタイムクロック(PRTC)458を有する。いくつかの実施形態では、HECI422、NIC426、HWID438、ヒューズ読み出しアクセス440、ヒューズオーバーライド442、SPIフラッシュ446、RSA450、SHA−1 452、TRNG454、および/またはPRTC458はハードウェアに実装される。いくつかの実施形態では、HECIドライバー424、ネットワークスタック428、AMT430、フレキシブルSKU432、CLS434、ヒューズアクセス436、セキュアファイルシステム444、暗号化ドライバー448、および/またはセキュアタイム456はファームウェアに実装される。
いくつかの実施形態では、システム400は、ME402と、署名サーバー(signing server)との間でセキュアな動作を実行するべく用いられる構成要素よびデータ構造を示す。いくつかの実施形態によると、許可412は、認証特性情報(authentic feature information)をMEシステムに提供するデータ構造バイナリ(data structure binary)である。いくつかの実施形態では、許可サーバー404は、許可412等の許可を生成可能なバックエンドインフラストラクチャーサーバー(もしくは複数のサーバー)である。いくつかの実施形態では、MEファームウェアは、いくつかの構成要素を含むME402上で動作する。たとえば、いくつかの実施形態では、CLS434は、フレキシブルSKU432および/またはSaaS/SMT(図4では不図示)等のCLSプラグインに情報を提供するべく許可を有効化かつ解析する。いくつかの実施形態では、フレキシブルSKU等のCLSプラグイン(もしくは、SaaS等のその他のCLSプラグイン)によって、MEの特定の機能が実現される。いくつかの実施形態では、CLS434およびCLSプラグインに不可欠なサービスを提供するべくファームウェアサービスおよびドライバーが用いられる。いくつかの実施形態では、外部インターフェースファームウェアコンポーネントによって、MEは、これらの外部インターフェースコンポーネント(たとえば、AMT430、HECIドライバー424、ネットワークスタック428等)を介して外部のエンティティとインターフェースを取ることが可能になる。
いくつかの実施形態では、HWID438は、チップセットハードウェアにおけるチップセットの製造プロセスで生成される、各チップセットの一意な識別子である(たとえば、チップセット内にヒューズとして実装される)。いくつかの実施形態では、ヒューズ読み出しアクセス440は、チップセット内のヒューズを読み出すために用いられるハードウェアロジックである。いくつかの実施形態では、ヒューズオーバーライド442は、チップセットハードウェアの初期化におけるある時点において、供給されたビットマップによりハードウェアが実際のヒューズをオーバーライドする際に従うメカニズムである。いくつかの実施形態では、ヒューズアクセス436は、CLS434ファームウェアコンポーネントに対してヒューズ読み出しおよびヒューズオーバーライドメカニズムを実装するファームウェアロジックである。いくつかの実施形態では、SPIフラッシュ446は、SPIプロトコルを使用してチップセットからアクセス可能な(したがって、チップセット内のSPIコントローラーに接続された)不揮発性記憶メカニズム(たとえばNOR型フラッシュ)である。いくつかの実施形態ではRSA450は、ハードウェアに基づいた加算および乗算回路を介してRSA計算の高速化を促進するチップセット内のハードウェアユニットである(いくつかの実施形態では、RSAロジックの残りの部分は、ファームウェアに実装される)。いくつかの実施形態では、SHA−1 452は、SHA−1アルゴリズムを実装するチップセット内のハードウェアユニットである。いくつかの実施形態では、TRNG454は、たとえば熱雑音の考え方を用いてチップセット内で一意な乱数を発生するチップセット内のハードウェアユニットである。いくつかの実施形態では、暗号化ドライバー448は、利用可能なインターフェースとして、暗号化動作(たとえば、RSA−2048署名、暗号化、認証、復号、SHA−1ハッシュ生成、TRNG発生等)を、たとえばCLS434等のその他のファームウェアコンポーネントに提供するファームウェアドライバーである。
いくつかの実施形態では、PRTC458は、ホストのOSソフトウェアによっては調整できない時間を計時する保護クロックであり、したがって、CLS434等のMEファームウェアコンポーネントに、より確実な時間的概念が与えられる。いくつかの実施形態では、ME(たとえば、ME112、ME212、ME300、および/またはME402)は、チップセット上の特殊目的用クロック(たとえば、PRTC458)へのアクセスを有する。このクロックには、MEによってだけアクセス可能であり、OSによってはアクセスできない。MEは、システムのリアルタイムクロック(RTC)に頼るのでなく、このクロックを用いて時間に関連する認証(たとえば、証明書の検証、ケルベロスタイムスタンプの確認等)を行う。RTCは、ユーザーまたはOS内のマルウェアによって変更する(遅らせる、または進める)ことができる。したがって、MEは、RTCには頼らない。いくつかの実施形態では、PRTCは、コンピューターが完全に電力が切れた状態になっても時間を維持するように、電池によって電源供給される。いくつかの実施形態では、システムがスモールビジネスモードでプロビジョニングされた場合、たとえば、MEクロックはブート時にBIOSクロックに同期化され、両方は主にローカル時間を表す。いくつかの実施形態では、たとえば、システムがエンタープライズモードでプロビジョニングされた場合、両クロックは分断され、ME内のPRTCクロックは、たとえばグリニッジ標準時に設定される。
いくつかの実施形態では、MEは熱雑音変化に基づく真乱数発生器(たとえば、TRNG454)を有する。TRNGは、ランダムセッション鍵、トークン、ノンス等を生成する等、暗号化トランザクションを支援するのに大変有用である。TRNGは、たとえば、一度に32ビットの乱数を出力する。
多くの暗号化アルゴリズムおよびメカニズムにおいて、乱数が使用されている。乱数発生器(RNG)の重要な特性は、エントロピーであり、エントロピーとは、発生器によって以前に発生された全ての乱数を外部閲覧者が知っていたとしても、RNGによって次に生成される数を閲覧者が予測できない不可能性の測定である。発生器の現在の状態に基づいて次の乱数を生成する決定性アルゴリズムである疑似RNG(PRNG)を用いてよい。このようなアルゴリズムによって、PRNGの初期状態(もしくは「シード状態」)が知られていない限り、高レベルのエントロピーが維持される。PRNG実装例のいくつかは、プラットフォームクロックのうちの1つの値を用いて、自らをシードする。この値は、クロックが高分解能を有するので、やや予測不可能であり、したがって中レベルのセキュリティが要求されるアプリケーションにとってふさわしい、PRNGの合理的なシードが得られる。しかし、多数のプラットフォームが同時(数分もしくは数秒内として知られる)に起動するとすれば、潜在的な攻撃者が可能性を絞り込んでPRNGのシード状態を破り易くなり、PRNGにより次に発生される数の予測が可能になってしまう。攻撃者は、発生された数を、ハッキングした1つのプラットフォームから知得して、エンタープライズ中の別のプラットフォームを破ることも可能である(BORE攻撃「Break Once,Run Everywhere(一度突破すれば、どこにでも行く)」 としても知られる)。
いくつかの実施形態では、TRNG454等の真乱数発生器(TRNG)は、TRNGハードウェア装置であってよい。いくつかの実施形態では、このようなTRNGは、熱雑音を生じる2つの抵抗器に基づく。雑音は増幅され、周波数変調低周波発振器に入力として供給される。高周波発振器と組み合わされて、ほぼランダムなビットストリームが生成される。電圧レギュレーターによってハードウェアコンポーネントを制御し、電圧に基づいてバイアスを防止してよい。さらに、ロジッククロックによって、標準的なアンチバイアス修正アルゴリズムを用いて、ビットストリームに挿入されたかもしれないバイアス(たとえば、発振器のデューティーサイクルが不完全であるために)を修正する試みがなされる。
いくつかの実施形態では、TRNGとしてPRNGが実装され、PRNGの状態が折に触れてリセットされ、TRNGにより生成される状態に初期化される。これにより、サブシステムにおける乱数の高い利用率に追いつくことができる強力で高品質のRNGが得られる。
いくつかの実施形態では、チップセットは、対称的暗号化工程およびインテグリティ保護工程においてファームウェアにより使用される鍵(たとえば、128ビット鍵)を有する。この鍵は、チップセットの製造時に、この目的専用のヒューズをランダムに飛ばすことによって生成される。MEは、この鍵材(keying material)にアクセスすることができる唯一のコンポーネントであり、いくつかのMEの動作の信頼性の根幹となっている。MEの外部のどの装置も、この鍵の値を知らない。いくつかの実施形態では、たとえば、各システムに一意で、ファームウェアにだけ知られるチップセットヒューズ鍵を使用する。いくつかの実施形態によると、チップセットヒューズ鍵は、チップセットにおける128個のヒューズのセットである。値0または1に対応させて、各ヒューズを飛ばし、または飛ばさない。各ヒューズの状態(0または1)は、製造時に決定する。ヒューズのうちのランダムなサブセットを、チップセット製造ラインで飛ばし、残りのヒューズを飛ばさずにおく。したがって、ランダムで一意な値が、各チップセットに生成される。したがって、128個のヒューズのセットによって、128ビットの鍵(または、ヒューズの数によって、その他のビット数の鍵)が生成される。
いくつかの実施形態では、標準的な暗号化技術を用いて秘密の暗号化を行うが、興味深い特性は、暗号化に用いられる鍵である。暗号化鍵は、なんらかの不揮発な形態で記憶する必要があるが、フラッシュ自体は記憶させるのに良い場所ではない(攻撃者は、まずフラッシュからこの鍵を読み出し、次にそれを用いてフラッシュ内の残りの保護データを復号するであろう)。したがって、いくつかの実施形態では、ファームウェアは、チップセットヒューズ鍵から暗号化鍵を導出し、この暗号化鍵を用いて不揮発性フラッシュに置かれるセンシティブな事項を暗号化する。セキュアなファームウェア(たとえば、MEファームウェア)だけがチップセットヒューズ鍵(したがって、暗号化鍵およびインテグリティ保護鍵)について知っている唯一の存在であるので、攻撃者がシステムのフラッシュ部を取り出して、そこから直接に読み出そうとしても、攻撃者が見つけるのは、暗号化および/またはインテグリティ保護されたデータだけである。
いくつかの実施形態によると、許可サーバー(たとえば、許可サーバー404等)は、ネットワークにおいてME(たとえば、ME112、ME212、ME300、および/またはME402)から遠隔に位置する。いくつかの実施形態では、許可サーバー(たとえば、許可サーバー404)は、ME(たとえばME112、ME212、ME300、および/またはME402)により用いられる認証された許可を生成する信頼されたプロビジョニングサーバーである。許可サーバーは、(たとえば、1つ以上のハードウェア署名モジュールおよび/またはHSMを介して)、署名されたMEファームウェアに公開要素が埋め込まれた暗号化RSA(リベスト・シャミール・アドルマン)秘密鍵へのアクセスを有する。いくつかの実施形態では、ハードウェア署名モジュール(HSM)は、FIPS−140−2のレベル3に準拠している。いくつかの実施形態では、HSMは、署名サーバーにインストールされたPCIカードである。いくつかの実施形態では、HSMは、耐タンパー性を有し、能動的なモニタリングを行い、タンパーされた場合には鍵材(keying material)を破壊し、許可署名鍵を保護し、許可署名コードを実行し、および/または許可購入の説明責任を担う。
いくつかの実施形態では、許可サーバーは、MEによって信頼のおけるエンティティに生成されたと認証することが可能な許可を生成することができる。許可サーバーは、署名した許可(たとえば、許可412)に、ハードウェアヒューズオーバーライド情報を埋め込み、MEはこの許可を用いてソフトSKUプロセス(soft SKU process)を実行する。いくつかの実施形態では、たとえば、インフラストラクチャーの実装および転送容量に関する要件によって、1つ以上のサーバーが、許可サーバーに関連して本明細書に記載された動作を実行する。
いくつかの実施形態では、許可(たとえば、許可412)は、ハードウェアヒューズオーバーライド情報を含む署名されたデータ構造である。いくつかの実施形態では、1人のエンティティ(たとえば、許可サーバーの所有者)以外の誰も、ME(たとえばME112、ME212、ME300、および/またはME402)による検証が成功する許可を生成することはできない。許可は、たとえば、残りのデータ構造の解釈を示すクラスおよびサブクラス識別子も含む。許可は、たとえば、許可が生成された時間を示すタイムスタンプも(たとえば、「タイムスタンプ」フィールドに)含む。許可は、たとえば、許可がインストールされた直後にシステムをリブートするか否か等のいくつかの許可特性を示すいくつかの属性も(たとえば、「フラッグ」フィールドに)含む。
いくつかの実施形態では、管理可能性エンジン、管理エンジン、および/またはME(たとえば、ME112、ME212、ME300、および/またはME402)は、とりわけ、ヒューズオーバーライドメカニズムのプログラミングを実行するハードウェアエンジンである。MEは、たとえば、署名/認証され、検証されたファームウェアコードを実行する。このMEファームウェアは、オペレーティングシステム(OS)で実行されるユーザーコードとやり取りすることができる。ユーザーコードは、ハードウェアヒューズオーバライドレジスターをプログラムするべくMEファームウェアとやり取りすることができる。MEファームウェアは、ハードウェアヒューズオーバーライドレジスターの値を変更する前に、全ての条件が満たされる(たとえば、許可の検証を含む)ようにする。MEは、許可インストールプロトコルの終了も実行する。
いくつかの実施形態では、MEは、許可の署名および検証に、許可署名鍵対(たとえば、対称RSA鍵対)を用いる。この鍵対の秘密部分は、MEの製造者等の企業に所有され、その企業のセキュアなデータセンター設備(たとえば、ハードウェア署名モジュールもしくはHSMを使用するコンピューター)に常駐する。鍵の公開部分は、誰によっても変更することができない署名されたMEファームウェア画像に保持される。鍵対の秘密部分によって許可に署名し、署名を検証するべく鍵の公開部分をMEが使用する。
いくつかの実施形態では、各MEが、一意なSafeID秘密鍵を、チップセットの製造プロセスにおいてチップセットにヒューズとして焼き入れられる鍵のSafeIDシステムが実装される。MEは、外部からこの鍵へ絶対にアクセスさせない。鍵のグループ部分は、チップセットの製造者等の企業により所有され、その企業のデータセンターに設置される許可サーバーシステムに常駐する。チップセット内のSafeID鍵は、許可サーバーによってグループ鍵を用いて検証される署名を(たとえば、タイムスタンプおよびノンス上に)生成するべく用いられる。これにより、真正かつ合法なMEによって署名がされたことを、許可サーバーは保証される。
いくつかの実施形態では、チップセットヒューズ鍵は、各チップセット(および/または各チップセット部品)に一意な対称鍵である。これは、製造プロセス中に、プログラムして忘れる方法(program and forget manner)でランダムにヒューズを流す(flowing fuses)ことにより、各チップセットに一意にプログラムされる。(チップセットもしくはチップセット部品の製造者を含む)誰もこの鍵について知らず、MEは、MEの外部からこの鍵へ絶対にアクセスさせない。
図5は、いくつかの実施形態にかかるシステム500を示す。システム500は、顧客位置502、許可サーバー504(たとえば、いくつかの実施形態では、許可サーバー404に類似および/または同一)、登録サーバー506、およびネットワーク508(たとえば、インターネット)を備える。いくつかの実施形態では、ネットワーク508は、顧客位置502、許可サーバー504、および登録サーバー506をつなぐ。いくつかの実施形態では、顧客位置502は、顧客、顧客のコンピューティングシステム、登録アプリケーション(EA)512、およびME514有する。いくつかの実施形態では、EA512および/またはME514は、顧客のコンピューティングシステムに常駐する。いくつかの実施形態では、許可サーバー(PS)504は、1つ以上の、企業間(B2B)サーバー、および/または1つ以上のバックエンドサーバーを有する。いくつかの実施形態では、登録サーバー506は、1つ以上の企業−顧客間(B2C)サーバー、1つ以上のISVサーバー、および/または1つ以上のフロントエンドサーバーを有する。いくつかの実施形態では、点線522は、許可注文(permit order)および/または遂行トランザクション(fulfillment transactions)(たとえば、許可サーバー504と登録サーバー506との間のISV許可注文および/または遂行トランザクション)を表す。いくつかの実施形態では、点線524は、顧客位置502と登録サーバー506との間の顧客許可注文および/または遂行トランザクションを表す。いくつかの実施形態では、許可サーバー504は、許可サーバー404に類似しているか、または同一である。いくつかの実施形態では、ME514は、ME112、ME212、ME300、および/またはME402と同一であるか、類似している。
上記したように、いくつかの実施形態では、ES506は、1つのB2Cサーバー(および/または2つ以上のB2Cサーバー)である。いくつかの実施形態では、ES506は、負荷分散するべく2つ以上のサーバーである。いくつかの実施形態では、ES506は、顧客とやり取りして購入プロセスのフロントエンドを運用し、PS504とやり取りして許可を購入/受信する。
いくつかの実施形態では、登録アプリケーション(EA)512は、登録サーバー(たとえば、ES506)とやり取りして、顧客の購入プロセスを実行し、許可を要求/受信するローカルホストアプリケーションもしくはエージェントである。EA512は、ME514ともやり取りして、帯域内方式(in−band manner)で許可をインストールする。許可インストールプロトコルの目的においては、いくつかの実施形態では、EA512は、たいていの場合、ME514とバックエンド(たとえば、許可サーバー504および登録サーバー506)との間でパススルーエージェントとして機能する。EA512は、ユーザー(顧客)とやり取りして、支払いおよびトランザクション情報を生成し、この情報を許可インストールプロトコルで用いる。
いくつかの実施形態では、顧客位置502の顧客は、EAエージェント512を実行して、顧客のコンピューティングシステムの新しい機能(たとえば、フレキシブルSKU機能)を購入する。いくつかの実施形態では、顧客は、たとえば、エンドユーザーであってよく、または、企業のIT購入エージェントであってよい。
いくつかの実施形態では、登録サーバー506は、顧客(たとえば、エンドユーザー)に対するインターフェースとなって、許可購入およびインストールプロセスの遂行を担うISV/MSP/MSPドメインである。いくつかの実施形態では、ISV/MSPを用いて、機能の販売(たとえば、トランザクションの初期化の実行、収益の徴収、管理およびサポート等)を終了する。
いくつかの実施形態では、許可サーバー504等の許可サーバーを有する企業は、許可を注文し、発送し、インボイスを送る電子商取引についての支援を提供し、唯一の許可発行元である。いくつかの実施形態では、許可サーバー506は、当該企業の直接的な物理的制御下にある(たとえば、許可サーバー506は、当該企業の敷地にあり、当該企業は、許可サーバー506に支援およびセキュリティを提供する)。
いくつかの実施形態では、ハッキングからの保護が末端顧客(end customer)および/または製品製造現場において設けられており、ユーザーの機密情報の悪用が防止され、一意なデータは露出されず、CLSファームウェアおよび/または許可データのフィールドアップグレード時にフォールト・トレラント動作が維持され、機能のアップグレード、機能の解除、および/または機能の試用等に関して、返金および交換の支援が与えられる。
図6は、いくかの実施形態に係る許可600を示す。いくつかの実施形態では、許可600は、許可メッセージ602、および/または許可署名604を含む。許可メッセージ602は、いくつかの実施形態では、許可ヘッダー612、機能ディスクリプター(capability descriptor)614、許可認証識別子616、および/または顧客認証識別子618を含む。いくつかの実施形態では、許可ヘッダー612は、IDストリング622、許可バージョン624、許可長626、メッセージ長628、タイムスタンプ630、クラス632、および/またはフラッグ634を含む。いくつかの実施形態では、機能ディスクリプター614は、サブクラス642、ベンダーID644、装置ID646、および/または、特徴識別子648を含む。いくつかの実施形態では、許可署名604は、許可メッセージダイジェスト652を含む。いくつかの実施形態では、許可署名604および/または許可メッセージダイジェスト652は、電子商取引秘密鍵(たとえば、RPSK−priv)により署名される。
図7は、いくつかの実施形態に係る許可インストールプロトコル700を示す。図7は、いくつかの実施形態にしたがってそれぞれ許可インストールプロセスに関与する顧客702、登録アプリケーション(EA)704、管理エンジン(ME)706、登録サーバー(ES)708、および許可サーバー(PS)710を示す。
いくつかの実施形態では、顧客702は、まず、EA704によりアプリケーションを開始する。次に、EA704は、ME706からプラットフォーム情報を取得する。次に、顧客702は、金銭的な量等の購入能力(purchase capabilities)をEA704に送信する。次に、EA704は、ME706に許可要求を生成する。次に、ME706は、PS710に許可要求を生成させる旨のメッセージをEA704に送信する。次に、EA704は、許可要求の生成、PS顧客認証、および/または金銭的な量に関するメッセージをPS710に送信する。次に、PS710は、許可要求を生成している旨のメッセージをME706に送信する。次に、ME706は、PS710と協働して許可をインストールする。次に、PS710は、許可がインストールされた旨の応答をME706に送信する。
いくつかの実施形態によると、許可インストールプロトコルは以下のように記述される。
Figure 0005526450
Figure 0005526450
Figure 0005526450
Figure 0005526450
以前に記載したように、いくつかの実施形態では、各MEが、一意なSafeID秘密鍵を、チップセットの製造プロセスにおいてチップセットにヒューズとして焼き入れられる鍵のSafeIDシステムが実装される。MEは、この鍵に対する外部からのいかなるアクセスも許容しない。鍵のグループ部分は、チップセットの製造者等の企業により所有され、その企業のデータセンターに設置される許可サーバーシステムに常駐する。チップセットの中のSafeID鍵は、許可サーバーによりグループ鍵を用いて検証される署名を(たとえば、タイムスタンプおよびノンス上に)生成するべく使用される。これにより、真正かつ合法なMEによって署名がされたことを、許可サーバーは保証される。
SafeID鍵システムを用いることにより、許可サーバーは、MEになりすました存在とではなく、真正なMEとやり取りしていることを保証される。これは、SafeID秘密鍵について知っているのはMEだけであり、たとえばM1メッセージにタイムスタンプ値を署名し、後にM4に署名(RAND2|RAND3)するのはMEだからである。PSは、M1上のSafeID署名を検証するとき、メッセージが直前の48時間内に再生されていない限り、真正なMEとやり取りしていることを知る。しかし、PSは、M4を受信したときには、(RAND2|RAND3)上のSafeID署名の検証に基づいて真正なMEとやり取りしていることを確認する。
いくつかの実施形態によると、コンピューターに許可をインストールするプロセスは、以下のように記述される。このプロセスのフローは、いくつかの実施形態によると、顧客により開始されるトランザクション(つまり、たとえば、顧客が特定のアップグレードを選択し、クレジットカードを使ってそれに対する支払いをする)を想定しており、次に、許可がその顧客のコンピューターにインストールされる。いくつかの実施形態によると、管理サービスプロバイダー(MSP)により開始されるトランザクションも可能であり、管理アプリケーションが、対応するコンソールアプリケーションと通信して、コンピューターのエンドユーザーを巻き込まない方法で許可インストールプロセスを直接に開始する。
Figure 0005526450
いくつかの実施形態では、許可署名鍵対の秘密部分および許可署名鍵対の公開部分は、一緒にRSA鍵対を構成する。許可署名鍵対の秘密部分は許可サーバーに置かれ、許可署名鍵対の公開部分は、チップセットのROMに置かれる。
いくつかの実施形態では、SafeID鍵のグループ部分およびSafeID鍵の秘密部分は、一緒に、ECCに基づいたSafeID鍵の対を構成する。SafeID鍵のグループ部分は許可サーバーに置かれ、SafeID鍵の秘密部分はチップセットのヒューズに置かれる。いくつかの実施形態では、チップセットヒューズ鍵もチップセットのヒューズに置かれる。
図8は、いくつかの実施形態に係る鍵インフラストラクチャー800を示す。図8に示すように、許可サーバーに置かれる鍵802には、許可署名鍵対の秘密部分とSafeID鍵のグループ部分とがあり、チップセットのヒューズに置かれる鍵804には、SafeID鍵の秘密部分とチップセットヒューズ鍵とがあり、チップセットのROMに置かれる鍵806には、許可署名鍵対の公開部分がある。
いくつかの実施形態では、ファームウェア署名鍵(FWSK)は、RSA 2048ビット鍵対(たとえば、FWSK−privおよびFWSK−pubを含む非対称鍵対)である。FWSKは、1つ以上のファームウェア(FW)モジュールに署名するために使用される。ROMは、FWモジュールのインテグリティ(つまり、正当な製造会社のものであるか、および改造されていないか)を保証するべく署名を認証する。FWSK−priv鍵は、コード署名システム設備(たとえば、製造会社)内の鍵保管室に保管される。FWSK−pub鍵は、MEのマスクROMに置かれる。FWSK−pub鍵は、届いたファームウェアの署名を、インストールおよび実行の前に検証するために用いられる。
いくつかの実施形態では、ルート許可署名鍵(RPSK)は、許可に署名するべく用いられるRSA 2048ビット鍵対(たとえば、RPSK−privおよびRPSK−pubを含む非対称鍵対)である。RPSK−priv鍵は、会社(たとえば、製造会社)の許可署名設備内の鍵保管室に保管される。RPSK−pub鍵は、MEファームウェアの一部として置かれ、(FWSK−privにより署名される)。RPSK−pubはRPSK−privにより署名されて届いた許可の署名を検証する。
いくつかの実施形態では、チップセットヒューズ鍵(CFK)は、ランダムな単位当たりの対称鍵(random per unit symmetric key)(たとえば、128ビットの)である。CFKは、製造プロセスの一環として、ヒューズに「焼かれる」。CFKは、ランタイムにMEがその他の対称鍵(チップセット格納鍵もしくはCSKを含む)を生成するためのルート鍵として使用される。いくつかの実施形態では、チップセット格納鍵(CSK)は、ランダムな対称鍵(たとえば、128ビットの)である。CSKは、MEにおいてCFKを使用して生成される。CSKは、フラッシュメモリに記憶されるデータを暗号化するために使用される。
図9は、いくつかの実施形態に係るフロープロトコル900を示す。図9のフロー900は、ME902、EA904、およびPS906を含む。フロー900では、ME902は、RSA暗号(たとえば、RPSK−pub、現在時間、「私はMEである」ことを示すSafeID署名、現在時間等)を含めてM1を生成する。次に、EAは、認証メッセージを構成し、M2としてPS906に送信する。PS906は、SafeID署名を認証し、時間の値が特定の時間許容限度内(たとえば、48時間以内)であることを確認する。PS906は、RAND1およびRAND2を含むM3を生成し、ME902に(たとえば、EA904を介して)送信する。ME902は、SafeID署名、RAND2、およびRAND3を含めて応答M4を生成し、PS906に(たとえば、EA904および/またはESを介して)送信する。次に、PS906は、SafeID署名を検証することで、相手がME902であって、なりすまし者ではないことを確実に証明する。PSはメッセージM5をME902に送信し、次にME902は、許可をインストールする前にM5を検証し、製造試験許可または試験許可を置き換え、および/または次のシステムリブート字に次の機能を起動させる。
いくつかの実施形態では、ハードウェア(SKU)のアップグレードおよび/または再構成は、リモートプロトコルメカニズムを介して可能となる。いくつかの実施形態では、実装は、ICH(I/Oコントローラーハブ)、MCH(メモリコントローラーハブ)、GMCH(グラフィックス/メモリコントローラーハブ)、PCH(プラットフォームコントローラーハブ)、および/または別のチップセットまたはハードウェア装置になされる。いくつかの実施形態では、ハードウェアは、ユーザーのプライバシーを維持および保証しつつ、遠隔からセキュアにアップグレードしてよい。
いくつかの実施形態では、集積コントローラーをネットワークプロトコルおよび組み込み暗号化機能と組み合わせることで、情報交換するためのセキュアで、内密で、信頼性のある方法を提供するためにクライアントOSから帯域外で通信するための堅牢なプロトコルが開発できるようになる。いくつかの実施形態では、システムOSの範囲およびマルウェアによる攻撃の外で情報が交換される。いくつかの実施形態では、CLS(ケイパビリティライセンシングサービス)によって、ハードウェアの構成状態の変更を可能にする方法についての情報が提供される。
いくつかの実施形態では、コンピューターのハードウェア構成を変更してよい。いくつかの実施形態では、コンピューターのハードウェア構成を、ブート/初期化時にオーバーライド制御メカニズムを用いて変更してよい。いくつかの実施形態では、ソフトウェアに基づくアップグレードメカニズムを用いて、コンピューターを解体したりハードウェアを取り替えたりする必要なしに、ハードウェア自体をアップグレードする。いくつかの実施形態では、これは、組み込みマイクロコントローラー、ファームウェア、およびハードウェアを用いてソフトウェアに基づくハードウェアアップグレードを可能にすることにより実施される。
図10は、いくつかの実施形態に係るシステム1000を示す。いくつかの実施形態では、システム1000は、メモリコントローラーハブ(MCH)1002および入出力(I/O)コントローラーハブ(ICH)1004を備える。いくつかの実施形態では、MCH1002は、1つ以上のハードウェアヒューズオーバーライドレジスター1012、管理エンジン(および/または管理可能性エンジンおよび/またはME)1014、1つ以上のフレキシブルSKU(フレックス−SKU)ディセーブルヒューズ1016、1つ以上のハードウェアヒューズ読み出し専用レジスター1018、および/またはファームウェア認証モジュール1020を有する。いくつかの実施形態では、ICH1004は、1つ以上のハードウェアヒューズレジスター1022、1つ以上のフレキシブルSKU(フレックス−SKU)ディセーブルヒューズ1026、および1つ以上のハードウェアヒューズ読み出し専用レジスター1028を有する。
いくつかの実施形態では、ハードウェアヒューズオーバーライドレジスター1012および/または1022によって、フレキシブルSKUソリューションに参与する各コンポーネント(たとえば、MCH1002および/またはICH1004)のハードウェア要素のヒューズの設定にMEファームウェアがオーバーライドすることが可能になる。これらのレジスターには、ホストによって書き込むことはできない。したがって、一旦これらのレジスターがMEファームウェアによって設定されれば、ホストのソフトウェアによってこれらのレジスターをプログラムすることは不可能となることが保証され、および/または、再プログラムされているレジスターにその他のファームウェアランタイムバグが発生しないようになる。MEファームウェアは、プラットフォームのブート/初期化サイクルの最初期にこれらのレジスターをプログラムしてロックする。
いくつかの実施形態では、ME1014は、図10に示すヒューズオーバーライド構成のプログラミングを実行するハードウェア処理エンジンである。ME1014は、署名/認証され、検証されたファームウェアコードを実行する。このMEファームウェアは、オペレーティングシステム(OS)で実行されているユーザーコードとやり取りする。ユーザーコードは、MEファームウェアとやり取りして、ハードウェアヒューズオーバーライドレジスター1012および/または1022をプログラムすることができる。MEファームウェアは、ハードウェアヒューズオーバーライドレジスターの値を変更する前に、全ての条件が満たされているようにする。このようにすることで、ME1014上で実行されるファームウェアだけが、ハードウェアヒューズオーバーライドレジスター1012および1022をプログラムすることができるようになる。
フレックス−SKUディセーブルヒューズ1016および/またはフレックス−SKUディセーブルヒューズ1026は、図10のシステム1000のハードウェアヒューズオーバーライド構成をディセーブルするために使用されるハードウェアヒューズである。ヒューズ1016および1026は、ファームウェアによって読み出すことが可能であり、フレキシブルSKUファームウェアは、ヒューズ1016および/または1026がイネーブル状態に設定(たとえば、フレキシブルSKUをイネーブルするように設定)されているときにだけ動作する。ヒューズ1016および/または1026は、深刻な不具合が発生したときにオーバーライド機能がディセーブルされるようにするので、初期のオーバーライドメカニズムにとっては非常に重要である。このハードウェアディセーブルは、いくつかの実施形態では、オーバーライドメカニズムを備えるチップセットまたは当該メカニズムを備えず出荷されたチップセットのSKUを定義するべく使用してもよい。
いくつかの実施形態では、ハードウェアヒューズ読み出し専用レジスター1018および/または1028によって、オーバーライドソリューションに参与する各コンポーネントのハードウェア要素ヒューズに対するファームウェア読み出しアクセスをハードウェアによってサポートすることが可能になる。
いくつかの実施形態では、ファームウェア認証1020は、ハードウェアオーバーライドレジスターを変更することができるMEファームウェアモジュールが、特定の会社(たとえば、そのハードウェアを製造した会社)によって記述されたファームウェアだけであるべきことを認証する方法を提供する。これによって、攻撃者が独自のファームウェアを記述して、ハードウェア上の機能をイネーブルするためにそれを用いることが不可能になる。
いくつかの実施形態では、図10に示すMCH1002は、図10に示されない追加的な機能を有する。たとえば、いくつかの実施形態では、MCH1002は、チップセット識別子(チップセットID)、MEデバッグディセーブルメカニズム、チップセットヒューズ鍵、乱数発生器(RNG)、モノトニックカウンター、および/またはさらなる特性を有する。
いくつかの実施形態では、チップセットIDは、ファームウェアが所定の系統のハードウェア上で実行されていることを認識できるようするためのメカニズムを提供するべくMCH1002に含められる。いくつかの実施形態では、MCH1002は、製造ハードウェアに含まれるシステムデバッグ機能が、CLSシステムを攻撃する手段として用いられるのを防止するべくサポートされたMEデバッグディセーブルメカニズムを有する。いくつかの実施形態では、MCH1002は、一意にCLSハードウェアを識別する一組のヒューズに対するファームウェア読み出しアクセスを提供するチップセットヒューズ鍵を有する。チップセットヒューズ鍵は、プラットフォームハードウェアを許可に対応させるために用いられる信号を生成するファームウェアにより使用される。いくつかの実施形態では、MCH1002は、セキュアなCLSおよびフレキシブルSKUシステムを提供するべく、乱数発生器(RNG)(たとえば、真RNG)を有する。ハードウェアRNGが不可能であるいくつかの実施形態では、疑似乱数発生器をファームウェアにより実装して、セキュリティおよびプライバシー上の懸念に対処する。いくつかの実施形態では、MCH1002は、許可の取消およびアップグレードのフローを支援するためのモノトニックカウンターを有する。
いくつかの実施形態によると、システム初期化/ブート期間においてハードウェアオーバーライドレジスターをプログラムする制御フローは、以下のように進む。まず、ユーザーがシステムを起動し、次にME1014が初期化される。次に、ME1014は、ハードウェアヒューズマトリックスを読み出してハードウェアヒューズ読み出し専用レジスター1018および/または1028に書き込む。ME1014は、内部レジスターにビットを設定することで、オーバーライドメカニズムに対して自身が実行可能であることを通知する。次に、オーバーライドファームウェアは、メカニズムがオンされているかオフされているかを、フレックス−SKUディセーブルヒューズ1016および/または1026を読み出すことによって判定する確認を行う。イネーブルされていない場合、オーバーライドファームウェアは、以降のファームウェアオーバーライド動作を実行することなく、プラットフォームブートプロセスを進行させる。イネーブルされている場合、MEのオーバーライドファームウェアは続行し、この場合、セキュアで/信頼のおける位置から新しいオーバーライドヒューズマップを読み出す。次に、MEのオーバーライドファームウェアは、新しいオーバーライドヒューズマップをハードウェアヒューズオーバーライドレジスター1012および/または1022に書き込む。
いくつかの実施形態によると、エンドユーザーによって(たとえば、チップセットの)ハードウェア構成を変更することができ、金銭を支払うことで新しい機能を有効化するハードウェアアップグレードサービスが実施される。エンドユーザーと、会社、たとえば、ハードウェアを製造した会社との間でセキュアなトランザクションが実行される。支払いを受けた後、会社はユーザーのコンピューターに(たとえば、ユーザーのコンピューターのチップセットに)セキュアで署名された許可を発行する。ユーザーのコンピューター(および/またはチップセット)は、許可を検証し、許可に含まれる情報を用いてブート時にヒューズオーバーライドレジスターをプログラムし、新しい構成を有効にする。
いくつかの実施形態によると、ハードウェアを一切物理的に変更することなしに、ソフトウェアプログラミングによりハードウェア構成を変更する。
図11は、いくつかの実施形態に係るプロトコルフロー1100である。いくつかの実施形態では、図11は、ME1102(たとえば、いくつかの実施形態では、ME1102は、たとえばME112、ME212、ME300、ME402等の、本明細書で記載されたMEの全てもしくはいくつかに類似しているか、同一である)、および許可サーバー(PS)1104(たとえば、いくつかの実施形態では、PS1104は、たとえばPS404、504等の、本明細書で記載されたその他の許可サーバーの全てもしくはいくつかに類似しているか、同一である)を含む。
いくつかの実施形態では、許可署名鍵対は、許可の署名および検証に使用される非対称(RSA)鍵対である。対のうちの秘密鍵は、たとえばPS1104等の許可サーバーに置かれ、セキュアなデータセンター設備(たとえば、HSMを備える)に常駐する。鍵対の公開部分は、たとえばチップセットROMおよび/または署名されたMEファームウェアイメージに置かれ、誰によっても変更できない。許可には、この鍵対の秘密部分によって署名がされ、ME(たとえば、ME1102)は、署名を検証するべく公開部分を用いる。
いくつかの実施形態では、チップセットヒューズにチップセットヒューズ鍵が設けられる。いくつかの実施形態では、チップセットヒューズ鍵は、各チップセット部品に一意である。チップセットヒューズ鍵は、製造プロセスにおいて、プログラムして忘れる方法(program and forget manner)でランダムにヒューズを流す(flowing fuses)ことにより、各チップセットに一意にプログラムされる。(製造者を含む)誰もこの鍵について知らず、ME(たとえば、ME1102)は、外部からこの鍵へ絶対にアクセスさせない。
いくつかの実施形態では、図11に示すように、コンピューターのチップセットは、許可認証識別子(もしくはPAID)等の一意な識別子を、識別子が特定のチップセットもしくはチップセット部品に結び付けられるように生成する。いくつかの実施形態によると、これは、PAIDを特定のチップセットサンプル(chipset instance)に関連付け直すことができないような方法でなされる。識別子を参照することで、チップセットは識別子が特定のチップセットサンプルに結び付けられているか否かを判別することができる。しかし、識別子を参照することでは、識別子が結び付けられている特定のチップセットサンプルに、識別子を関連付け直すことはできない。このような許可認証識別子(PAID)が、図11にPAID1112として示されている。
いくつかの実施形態では、ME1102は、特定のチップセット、チップセットサンプル、および/またはME1102が常駐するコンピューターに結び付けられる新しいPAID1112を生成する。許可サーバー(PS)1104はME1102からPAID1112を受信し、次に、許可1122を生成して、許可1122にPAID1112をPAID1124として埋め込む。許可1122は、PAID1124およびその他の許可データ1126を含む。許可1122は、署名1128も含み、および/または署名1128に取り付けられている。
ME1102は、署名1128を受信し、許可署名公開鍵(つまり、たとえば、許可署名鍵対の公開部分)を使用して検証する。次に、ME1102は、PAID1124を検証する。PAID検証が成功した場合、ME1102は、許可1122が、ME1102(および/またはME1102が常駐するコンピューター)によってだけ送信され、その他のいかなるME(および/またはコンピューター)からも送信されていないPAID1112に応答するものであると判定する。
いくつかの実施形態によると、PS1104は、ME1102により使用される認証された許可を生成する信頼されたプロビジョニングサーバーである。PS1104は、署名されたMEファームウェアに公開部分が埋め込まれている暗号化RSA鍵に対して(たとえば、HSMを介して)セキュアなアクセスを有する。したがって、PS1104は、ME1102等のMEによって、信頼されたエンティティによって生成されたと認証することができる許可1122等の許可を生成することができる。いくつかの実施形態では、許可サーバー1104は、署名した許可にハードウェアヒューズオーバーライド情報を埋め込み、その後、ME1102はその情報を(たとえば、ソフトSKUおよび/またはME1102が常駐するコンピューター内のハードウェアのアップグレードの目的に)用いる。いくつかの実施形態では、PS1104は、これらの動作を実行する1つ以上のサーバーを含む(たとえば、インフラストラクチャーの実装および転送容量に関する要件に依存して)。
いくつかの実施形態では、許可1122は、本明細書に記載されたその他の許可(たとえば、いくつかの実施形態では、許可412、許可602等)と同一であるか、および/または類似した署名されたデータ構造である。許可1122は、ハードウェアヒューズオーバーライド情報を(たとえば、「機能ID」フィールドに)含む署名されたデータ構造である。特定の会社以外の誰も、ME1102による検証が成功するように許可1122を生成することはできない。いくつかの実施形態では、その会社とは、たとえば、許可サーバー1104の所有者、および/またはME1102の(ME1102を含むチップセット等の)製造者である。いくつかの実施形態では、許可1122は、残りのデータ構造の解釈を示すクラスおよびサブクラス識別子をさらに含む。いくつかの実施形態では、許可1122は、それが生成された時間を示すタイムスタンプを(たとえば、「タイムスタンプ」フィールドに)含む。許可1122は、いくつかの実施形態では、たとえば、許可がインストールされた直後にシステムをリブートするか否か等のいくつかの許可特性を示す属性も(たとえば、「フラッグ」フィールドに)含む。
いくつかの実施形態では、ME1102は、ヒューズオーバーライドメカニズムのプログラミングを実行するハードウェア処理エンジンである。ME1102は、署名/認証され、検証されたファームウェアコードを実行する。このMEファームウェアは、オペレーティングシステム(OS)で実行されているユーザーコードとやり取りすることができる。ユーザーコードは、MEファームウェアコードとやり取りして、ハードウェアオーバーライドレジスターをプログラムすることができる。MEファームウェアは、ハードウェアヒューズオーバーライドレジスターの値を変更する前に、全ての条件が満たされる(許可の検証を含む)ようにする。ME1102は、許可インストールプロトコルの終わりも実行する。
いくつかの実施形態(たとえば、図11のいくつかの実施形態)では、PAID登録は、以下の段階にしたがって実行される。
−乱数値「R」を生成する。
−Rをセキュアなフラッシュに記憶する。
−X、Y、およびZが以下のように定義され、Hが以下に記載されるセキュアなハッシュ関数であるPAID=H(X|Y|Z)を生成する。
X=許可認証鍵=H(R,CFK)
Y=許可認証メッセージ=周知のストリング−「許可認証メッセージ」
Z=アップグレードが必要な顧客により要求された機能ID
いくつかの実施形態では、セキュアなフラッシュは、不揮発性フラッシュ媒体にデータを永久的に記憶することができるコンピューターのマザーボード上のコンポーネントである。いくつかの実施形態では、このフラッシュ媒体に記憶されたデータは、機密保護され、インテグリティ保護され、および/または再生不可能に保護(anti−replay protected)されている。
いくつかの実施形態では、セキュアなハッシュ関数(H)は、暗号処理上セキュアな一方向性ハッシュ関数である。たとえば、いくつの実施形態では、ハッシュ関数(H)は、SHA1、SHA−256、MD5等のうちの1つ以上である。
いくつかの実施形態では、PAID値は、許可要求および許可を特定のコンピューティング機械、ハードウェア装置、ハードウェア部品、チップセット、チップセット部品等に結び付けるべく、CLS許可インストールプロトコルで用いられる。PAIDは、ME(たとえば、ME1102)からPS(たとえば、PS1104)に送信される最初のメッセージに含められる。PSは、PAID値を署名した許可に埋め込み、許可をPSからMEへの応答メッセージに含めて返送する。MEは、まず許可の署名を検証する。成功した場合、次にMEは、許可に含められたPAID値を検証する。PAIDを検証するべく、MEは、(たとえば、上記の動作によって)PAIDを再生成し、それを許可に含まれるPAID(たとえば、許可1122に含まれるPAID1124)と比較する。検証が成功したならば、MEは、この許可が、その他のエンティティでなく、当該MEによって送信された要求に応答してPSにより送信されたことを保証される。次に、MEは、許可を受諾する。
いくつかの実施形態では、ME(たとえば、ME1102)は、PSに送信するべき許可要求を生成する必要があるたびに、新しいPAIDを生成する。PAIDの構成要素の1つが乱数(たとえば、「R」)であるので、乱数が違う限り、2つのPAIDが同じになることはない。これにより、同一のMEにより生成されるいかなる2つのPAID値も、互いに完全に異なる。誰によっても、同一のMEまたは別々のMEに由来する2つのPAID値を識別できない。したがって、PSから許可を購入および/または取得するとき、ユーザーのプライバシーが守られる。PSは、自身の側で2つのPAID値を相互に関連付けて、2つのPAID値を同一のユーザーに関連付けるように用いることはできない。
いくつかの実施形態では、ネットワークトラフィック下での購入は、トランザクションの末端でのプライバシーが保護される。いくつかの実施形態によると、トランザクションは、サービスの売り手には匿名にされる。いくつかの実施形態では、一意な識別子の必要性なしで、トランザクション(たとえば、インターネット上での購入についての)が保証される。一意なIDは、ネットワーク上での購入トランザクションの要求により、取り除かれる。
いくつかの実施形態では、トランザクションが売り手に匿名にされるハードウェアアップグレードサービスを実施する。エンドユーザーは、ハードウェア構成(たとえば、チップセットの)を変更して、支払いと引き換えに新しい機能を有効にすることができる。エンドユーザーとハードウェアアップグレードのプロバイダーとの間でセキュアなトランザクションが可能であり、支払いを受けた後、ハードウェアアップグレードのプロバイダーは、セキュアで署名された許可をユーザーのコンピューターに(たとえば、チップセットに)発行する。ユーザーのコンピューター(および/またはそのコンピューターのチップセット)は、同一のコンピューターに対する異なる許可に埋め込まれたPAIDが同じにならないようにすることができる。これによって、(PSを含む)いずれのエンティティによっても、許可(またはPAID)を、PAIDを生成した同じハードウェアサンプル(hardware instance)(たとえば、チップセットサンプル(chipset instance))に関連付けることができないので、エンドユーザーのプライバシーが守られる。
いくつかの実施形態は、チップセット、MCH、GMCH、ICH、PCH等で実装されると本明細書に記載されたが、いくつかの実施形態によると、これらの特定的な実装例は必要でない場合がある。たとえば、いくつかの実施形態では、他の装置で実装することもできる(たとえば、本明細書においてMCHまたはGMCHで行われると記載されたいくつかの実施形態は、いくつかの実施形態によるとPCHで、いくつかの実施形態では、本明細書に記載されていないその他の装置で行うことも可能である)。
いくつかの実施形態は特定の実装例を参照して記載されたが、いくつかの実施形態によると、その他の実装例も可能である。さらに、図示され、および/または本明細書に記載された回路要素またはその他の要素の配置および/または順序は、図示および記載された特定の配列でなくてよい。いくつかの実施形態によると、その他多くの配列が可能である。
図示される各システムにおいて、いくつかの場合における要素は、それぞれ同一の参照番号または異なる参照番号を有し、図示された要素が異なるものである、および/または類似したものであることを示した。しかし、要素はフレキシブルであり、別の様式で実装され、図示または本明細書に記載されたシステムのいくつか、または全てと協働することができる。図示された多様な要素は、同一であってよく、または異なってよい。いずれを第1の要素と呼び、いずれを第2の要素と呼ぶかは任意である。
記載および特許請求の範囲では、「結合された(coupled)」および「接続された(connected)」という文言が、それらの派生語とともに使用される。これらの文言は、互いに同義語であることを意図されていないことは理解されるべきである。むしろ、特定の実施形態では、「接続された」は、2つ以上の要素が互いに直接的な物理的接触状態もしくは電気的接触状態にあることを示すために使用される。「結合された」は、2つ以上の要素が直接的な物理的接触状態もしくは電気的接触状態にあることを意味しうる。しかし、「結合された」は、2つ以上の要素が互いに直接的な接触状態にはないが、互いに協働したり相互作用したりすることをも意味しうる。
アルゴリズムは、本明細書においては、また一般的には、所望の結果に導かれる行為もしくは動作の自己矛盾のないシーケンスであると考えられている。これらには、物理量の物理的操作が含まれる。通常、必ずしもではないが、これらの量は、記憶、転送、組み合わせ、比較、およびその他の操作が可能な電気的または磁気的信号の形態を取る。主に広く使用されているという理由により、これらの信号を、ビット、値、要素、記号、文字、期間、数字等と呼ぶことには利便性があることが折に触れ明らかになっている。しかし、これらの文言および類似の文言は、適切な物理量に対応付けられているのであり、これらの量に付された便宜的な呼称であることは理解されるべきである。
いくつかの実施形態は、ハードウェア、ファームウェア、およびソフトウェアのいずれか、またはこれらの組み合わせにより実装される。いくつかの実施形態は、コンピューティングプラットフォームにより読み出されて実行されることで本明細書に記載された動作を実行する、機械可読媒体に格納された命令として実装されてもよい。機械可読媒体は、機械(たとえば、コンピューター)により可読な形態で情報を格納または転送する任意のメカニズムであってよい。たとえば、機械可読媒体としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、伝播された信号の電気、光、音声、もしくはその他としての形態(たとえば、搬送波、赤外線信号、デジタル信号、信号を送信および/または受信するインターフェース等)、およびその他が挙げられる。
実施形態は、発明の実施例または例である。本明細書において「ある実施形態」、「1つの実施形態」、「いくつかの実施形態」、もしくは「その他の実施形態」と言及された箇所は、当該実施形態に関連して記載された特定の特性、構造、または特徴が、本発明の少なくともいくつかの実施形態に含まれるが、必ずしも全ての実施形態に含まれるものではないことを意味する。「ある実施形態」、「1つの実施形態」、もしくは「いくつかの実施形態」等の多様な表現は、必ずしも全てが同一の実施形態を示すものではない。
本明細書に記載され図示される要素、特性、構造、特徴等は、全てが特定の実施形態または複数の実施形態に含まれる必要はない。本明細書において、要素、特性、構造、または特徴を含めてよい、または含めることができる等と述べられる場合、当該特定の要素、特性、構造、または特徴を含めることは必須でない。本明細書または特許請求の範囲において要素を単数形で示す場合、当該要素が1つだけしかないことを意味するものでない。本明細書または特許請求の範囲において追加要素を単数形で示す場合、当該追加要素が1つより多く存在する場合を除外するものでない。
フロー図および/または状態図を本明細書で用いて実施形態を記載したが、本発明は、これらの図または本明細書における対応する記載に限定されない。たとえば、フローは、図示された全ボックスもしくは状態を通る必要はなく、図示され本明細書に記載された通りの順序で通る必要もない。
本発明は、本明細書に挙げられた特定の詳細事項に限定されない。事実、本開示から利益を得る当業者には、本発明の範囲内で、先の記載および図面についてのその他多くの変形が可能であることは理解されよう。したがって、本発明の範囲を規定するのは、以下に提示する特許請求の範囲およびそれに対する修正である。

Claims (76)

  1. プロセッサを有するシステムのハードウェアコンポーネントにおけるハードウェア構成を変更するための許可を求めるためのセキュアな許可要求を、前記システムにおける管理エンジンによって生成する段階であって、前記セキュアな許可要求は、前記許可を前記システムと結び付けるための許可認証情報を有する、生成する段階と、
    セキュアな許可要求を遠隔サーバーに送信する段階と、
    前記セキュアな許可要求に応答して前記遠隔サーバーから送信される許可メッセージ前記管理エンジンが受信する段階であって、前記許可メッセージが前記許可認証情報を含む、受信する段階と、
    受信した前記許可メッセージに含まれる前記許可認証情報を有効にすることに応じて前記ハードウェア構成におけるレジスタをアップデートすることによって、前記ハードウェアコンポーネントにおける前記ハードウェア構成を、前記管理エンジンによって変更する段階と
    を備える、
    方法。
  2. セキュアな許可要求および前記許可メッセージは、前記ハードウェアコンポーネントのユーザーのプライバシーを保護する請求項1に記載の方法。
  3. セキュアな許可要求および前記許可メッセージは、前記ハードウェアコンポーネントのプライバシーを保護する請求項1または2に記載の方法。
  4. 前記ハードウェア構成は、チップセットまたはチップセット部品のハードウェア構成である請求項1から3のいずれか1項に記載の方法。
  5. 前記遠隔サーバーとのセキュアな通信を保証するべく1つ以上の暗号化鍵が使用される請求項1から4のいずれか1項に記載の方法。
  6. 前記ハードウェアコンポーネントの製造時に、前記ハードウェアコンポーネントに一意な鍵が永久的に含められており、前記一意な鍵は、前記遠隔サーバーを対象としたセキュアな通信および許可認証を保証するべく使用される請求項1から5のいずれか1項に記載の方法。
  7. 前記一意な鍵は、製造時に前記ハードウェアコンポーネントのヒューズをランダムに飛ばすことにより、製造時に前記ハードウェアコンポーネントに一意にプログラムされる請求項6に記載の方法。
  8. 前記一意な鍵は、前記ハードウェアコンポーネントの外部で実行されるソフトウェアからはアクセスできない請求項6または7に記載の方法。
  9. 前記許可メッセージは、前記遠隔サーバーからの一意な署名を含む請求項1から8のいずれか1項に記載の方法。
  10. 前記遠隔サーバーに存在する秘密署名鍵に対応する公開鍵を使用して、受信された前記許可を検証する段階をさらに備える請求項1から9のいずれか1項に記載の方法。
  11. 前記遠隔サーバーは、セキュアで信頼されたサーバーである請求項1から10のいずれか1項に記載の方法。
  12. 前記ハードウェア構成の変更は、前記ハードウェアコンポーネントに対する物理的変更なしに実行される請求項1から11のいずれか1項に記載の方法。
  13. 前記許可メッセージは、セキュアな許可および/または署名された許可を含む請求項1から12のいずれか1項に記載の方法。
  14. トランザクジョン情報が、将来における返品または交換が有効化されるように、前記許可メッセージ内に結び付けられる請求項1から13のいずれか1項に記載の方法。
  15. 特定のハードウェア部品について許可が署名されると、前記許可は別のハードウェア部品に使用できない請求項1から14のいずれか1項に記載の方法。
  16. 前記ハードウェアコンポーネントの外部で実行されるソフトウェアは、前記ハードウェアコンポーネントの内部で実行されるソフトウェアの機能をエミュレートできない請求項1から15のいずれか1項に記載の方法。
  17. ブートおよび/または初期化プロセス時にオーバーライドを実行する段階と、前記オーバーライドに応答して前記ハードウェア構成を変更する段階とをさらに備える請求項1から16のいずれか1項に記載の方法。
  18. セキュアな許可要求は、一意に識別可能ではない請求項1から17のいずれか1項に記載の方法。
  19. 前記ハードウェアコンポーネントおよび/または前記ハードウェアコンポーネントのユーザーのアイデンティティは、セキュアな許可要求からは判断できない請求項1から18のいずれか1項に記載の方法。
  20. 乱数値を生成する段階と、前記乱数値に応じて前セキュアな許可要求を生成する段階とをさらに備える請求項1から19のいずれか1項に記載の方法。
  21. 前記管理エンジンは、前記システムの前記プロセッサとは別個のハードウェア処理エンジンを有する、請求項1から20のいずれか1項に記載の方法。
  22. 前記管理エンジンは、前記システムの前記プロセッサによって実行されるオペレーティングシステムにはアクセスできないハードウェアリソースにアクセスする、請求項1から21のいずれか1項に記載の方法。
  23. 前記管理エンジンは、前記ハードウェアコンポーネントにおけるハードウェアヒューズオーバーライドレジスタの値を変更することによって前記ハードウェア構成を設定する、請求項1から22のいずれか1項に記載の方法。
  24. 前記オーバーライドに応答して前記ハードウェア構成を変更する段階は、
    ハードウェアヒューズマトリックスを読み出して、ハードウェアヒューズ読み出し専用レジスタに書き込む段階と、
    フレックスディセーブルヒューズの設定を確認する段階と、
    前記設定によって、オーバーライドの機能がイネーブルされている場合に、前記許可メッセージに含まれるオーバーライドヒューズマップをハードウェアヒューズオーバーライドレジスターに書き込む段階と、
    を有する、請求項17に記載の方法。
  25. 隔位置におけるシステムのハードウェアコンポーネントにおけるハードウェア構成を変更するための許可を求めるためのセキュアな許可要求を前記システムから受信する段階と、
    前記セキュアな許可要求に応答して許メッセージを前記システムに送信する段階と
    を備え、
    前記セキュアな許可要求は、前記許可を前記システムと結び付けるための許可認証情報を有しており、
    前記許可メッセージは、前記許可認証情報を含み、
    前記許可メッセージは、前記システムにおいて前記許可メッセージに含まれる前記許可認証情報を有効にすることに応じて前記ハードウェア構成におけるレジスタをアップデートすることによって、前記ハードウェアコンポーネントにおける前記ハードウェア構成の変更を前記システムにおいて可能にする方法。
  26. セキュアな許可要求および前記許可メッセージは、前記ハードウェアコンポーネントのユーザーのプライバシーを保護する請求項25に記載の方法。
  27. 前記ハードウェア構成は、チップセットまたはチップセット部品のハードウェア構成である請求項25または26に記載の方法。
  28. 前記システムを対象としたセキュアな通信および許可認証を保証するべく1つ以上の暗号化鍵が使用される請求項25から27のいずれか1項に記載の方法。
  29. 前記許可メッセージは、一意な署名を含む請求項25から28のいずれか1項に記載の方法。
  30. 前記許可メッセージは、前記システムにおいて、前記ハードウェアコンポーネントに対する物理的変更なしに、前記ハードウェア構成を変更することを可能にする請求項25から29のいずれか1項に記載の方法。
  31. 前記許可メッセージは、セキュアな許可および/または署名された許可を含む請求項25から30のいずれか1項に記載の方法。
  32. 前記許可メッセージは、前記システムにおいて、ブートおよび/または初期化プロセス時に実行されるオーバーライド動作に応答して前記ハードウェア構成を変更することを可能にする請求項25から31のいずれか1項に記載の方法。
  33. セキュアな許可要求は、一意に識別可能ではない請求項25から32のいずれか1項に記載の方法。
  34. 前記ハードウェアコンポーネントおよび/または前記ハードウェアコンポーネントのユーザーのアイデンティティは、前セキュアな許可要求からは判断できない請求項25から33のいずれか1項に記載の方法。
  35. セキュアな許可要求は、乱数値に応じて前記システムで生成された請求項25から34のいずれか1項に記載の方法。
  36. 前記システムにおける前記許可メッセージの検証を支援するべく、前記システムに存在する公開鍵に対応する秘密署名鍵を使用する段階をさらに備える請求項25から35のいずれか1項に記載の方法。
  37. トランザクジョン情報が、将来における返品または交換が有効化されるように、前記許可メッセージ内に結び付けられる請求項25から36のいずれか1項に記載の方法。
  38. 特定のハードウェア部品について許可が署名されると、前記許可は別のハードウェア部品に使用できない請求項25から37のいずれか1項に記載の方法。
  39. 前記ハードウェアコンポーネントの外部で実行されるソフトウェアは、前記ハードウェアコンポーネントの内部で実行されるソフトウェアの機能をエミュレートできない請求項25から38のいずれか1項に記載の方法。
  40. 前記許可メッセージは、前記システムが有するフレックスディセーブルヒューズによって前記オーバーライド動作がイネーブルされている場合に、前記システムが有するハードウェアヒューズオーバーライドレジスターに書き込まれるべきオーバーライドヒューズマップを含む、請求項32に記載の方法。
  41. 遠隔から構成され得るハードウェア構成を有するハードウェアデバイスを備え、
    前記ハードウェアデバイスは、ハードウェアコンポーネントにおける前記ハードウェア構成を変更するための許可を求めるためのセキュアな許可要求を生成し、前セキュアな許可要求を遠隔サーバーに送信し、前記セキュアな許可要求に応答して前記遠隔サーバーから送信される、許可認証情報を含んだ許可メッセージを受信し、受信した前記許可メッセージに含まれる前記許可認証情報を有効にすることに応じて前記ハードウェアコンポーネントにおける前記ハードウェア構成を変更するコントローラーを有
    前記セキュアな許可要求は、前記許可を前記ハードウェアデバイスと結び付けるための前記許可認証情報を有する、
    装置。
  42. 前記ハードウェアデバイスは、チップセットまたはチップセット部品である請求項41に記載の装置。
  43. 前記遠隔サーバーを対象としたセキュアな通信および許可認証を保証するための1つ以上の暗号化鍵をさらに備える請求項41または42に記載の装置。
  44. 前記ハードウェアデバイスに永久的に含められる一意な鍵をさらに備え、前記一意な鍵は、前記遠隔サーバーを対象としたセキュアな通信および許可認証を保証するべく使用される請求項41から43のいずれか1項に記載の装置。
  45. 前記一意な鍵は、前記ハードウェアデバイスにおいてランダムに飛ばされたヒューズを含む請求項44に記載の装置。
  46. 前記一意な鍵は、前記ハードウェアデバイスの外部で実行されるソフトウェアからはアクセスできない請求項44または45に記載の装置。
  47. 前記許可メッセージは、前記遠隔サーバーからの一意な署名を含む請求項41から46のいずれか1項に記載の装置。
  48. 前記コントローラーは、さらに、前記遠隔サーバーに存在する秘密署名鍵に対応する公開鍵を使用して、受信した前記許可メッセージを検証する請求項41から47のいずれか1項に記載の装置。
  49. 前記遠隔サーバーは、セキュアで信頼されたサーバーである請求項41から48のいずれか1項に記載の装置。
  50. 前記コントローラーは、前記ハードウェアコンポーネントに対する物理的変更なしに、前記ハードウェア構成を変更する請求項41から49のいずれか1項に記載の装置。
  51. 前記許可メッセージは、セキュアな許可および/または署名された許可を含む請求項41から50のいずれか1項に記載の装置。
  52. トランザクジョン情報が、将来における返品または交換が有効化されるように、前記許可メッセージ内に結び付けられる請求項41から51のいずれか1項に記載の装置。
  53. 特定のハードウェアデバイスについて許可が署名されると、前記許可は別のハードウェアデバイスに使用できない請求項41から52のいずれか1項に記載の装置。
  54. 前記ハードウェアデバイスの外部で実行されるソフトウェアは、前記ハードウェアデバイスの内部で実行されるソフトウェアの機能をエミュレートできない請求項41から53のいずれか1項に記載の装置。
  55. 前記コントローラーは、ブートおよび/または初期化プロセス時にオーバーライドを実行し、前記オーバーライドに応答して前記ハードウェア構成を変更する請求項41から54のいずれか1項に記載の装置。
  56. セキュアな許可要求は、一意に識別可能ではない請求項41から55のいずれか1項に記載の装置。
  57. 前記ハードウェアコンポーネントおよび/または前記ハードウェアコンポーネントのユーザーのアイデンティティは、前セキュアな許可要求からは判断できない請求項41から56のいずれか1項に記載の装置。
  58. 前記装置は、コードを実行するプロセッサを有しており、
    前記コントローラーは、前記プロセッサとは別個のハードウェア処理エンジンを有する、請求項41から57のいずれか1項に記載の装置。
  59. 前記コントローラーは前記プロセッサによって実行されるオペレーティングシステムにはアクセスできないハードウェアリソースにアクセスする、請求項58に記載の装置。
  60. 前記コントローラーは、前記ハードウェアコンポーネントにおけるハードウェアヒューズオーバーライドレジスタの値を変更することによって前記ハードウェア構成を設定する、請求項41から59のいずれか1項に記載の装置。
  61. 前記コントローラーは、
    ハードウェアヒューズマトリックスが書き込まれるハードウェアヒューズ読み出し専用レジスタと、
    前記オーバーライドの機能をイネーブルまたはディセーブル可能なフレックスディセーブルヒューズと、
    前記フレックスディセーブルヒューズによって、前記オーバーライドの機能がイネーブルされている場合に、前記許可メッセージに含まれるオーバーライドヒューズマップが書き込まれるハードウェアヒューズオーバーライドレジスターと
    を有する、請求項55に記載の装置。
  62. 隔位置におけるシステムのハードウェアコンポーネントにおけるハードウェア構成を変更するための許可を求めるためのセキュアな許可要求を前記システムから受信し、前記許可要求に応答してメッセージを前記システムに送信するサーバーを備え、
    前記セキュアな許可要求は、前記許可を前記システムと結び付けるための許可認証情報を有し、
    前記許可メッセージは、前記許可認証情報を含み、
    前記許可メッセージは、前記システムにおいて当該許可メッセージに含まれる前記許可認証情報を有効にすることに応じて前記ハードウェア構成におけるレジスタをアップデートすることによって、前記ハードウェアコンポーネントにおける前記ハードウェア構成の変更を可能にする装置。
  63. 前記ハードウェア構成は、チップセットまたはチップセット部品のハードウェア構成である請求項62に記載の装置。
  64. 前記システムを対象としたセキュアな通信および許可認証を保証するべく1つ以上の暗号化鍵が使用される請求項62または63に記載の装置。
  65. 前記許可メッセージは、一意な署名を含む請求項62から64のいずれか1項に記載の装置。
  66. 前記許可メッセージは、前記システムにおいて、前記ハードウェアコンポーネントに対する物理的変更なしに、前記ハードウェア構成を変更することを可能にする請求項62から65のいずれか1項に記載の装置。
  67. 前記許可メッセージは、セキュアな許可および/または署名された許可を含む請求項62から66のいずれか1項に記載の装置。
  68. 前記許可メッセージは、前記システムにおいて、ブートおよび/または初期化プロセス時に実行されるオーバーライド動作に応答して前記ハードウェア構成を変更することを可能にする請求項62から67のいずれか1項に記載の装置。
  69. セキュアな許可要求は、一意に識別可能ではない請求項62から68のいずれか1項に記載の装置。
  70. 前記ハードウェアコンポーネントおよび/または前記ハードウェアコンポーネントのユーザーのアイデンティティは、前セキュアな許可要求からは判断できない請求項62から69のいずれか1項に記載の装置。
  71. セキュアな許可要求は、前記システムにおいて、乱数値に応じて生成された請求項62から70のいずれか1項に記載の装置。
  72. 前記サーバーは、前記システムにおける前記許可の検証を支援するべく、前記システムに存在する公開鍵に対応する秘密署名鍵を使用する請求項62から71のいずれか1項に記載の装置。
  73. トランザクジョン情報が、将来における返品または交換が有効化されるように、前記許可メッセージ内に結び付けられる請求項62から72のいずれか1項に記載の装置。
  74. 特定のハードウェア部品について許可が署名されると、前記許可は別のハードウェア部品に使用できない請求項62から73のいずれか1項に記載の装置。
  75. 前記ハードウェアコンポーネントの外部で実行されるソフトウェアは、前記ハードウェアコンポーネントの内部で実行されるソフトウェアの機能をエミュレートできない請求項62から74のいずれか1項に記載の装置。
  76. 前記許可メッセージは、前記システムが有するフレックスディセーブルヒューズによって前記オーバーライド動作がイネーブルされている場合に、前記システムが有するハードウェアヒューズオーバーライドレジスターに書き込まれるべきオーバーライドヒューズマップを含む、請求項68に記載の装置。
JP2012546023A 2009-12-31 2010-12-13 ハードウェア構成を変更する方法、ハードウェア構成の変更を遠隔位置において可能にする方法、及びそのための装置 Expired - Fee Related JP5526450B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/655,579 US8966657B2 (en) 2009-12-31 2009-12-31 Provisioning, upgrading, and/or changing of hardware
US12/655,579 2009-12-31
PCT/US2010/060115 WO2011081890A2 (en) 2009-12-31 2010-12-13 Provisioning, upgrading and/or changing of hardware

Publications (2)

Publication Number Publication Date
JP2013516003A JP2013516003A (ja) 2013-05-09
JP5526450B2 true JP5526450B2 (ja) 2014-06-18

Family

ID=44188912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012546023A Expired - Fee Related JP5526450B2 (ja) 2009-12-31 2010-12-13 ハードウェア構成を変更する方法、ハードウェア構成の変更を遠隔位置において可能にする方法、及びそのための装置

Country Status (7)

Country Link
US (1) US8966657B2 (ja)
JP (1) JP5526450B2 (ja)
CN (1) CN102667802A (ja)
DE (1) DE112010005069B4 (ja)
GB (1) GB2509479B (ja)
TW (1) TW201145041A (ja)
WO (1) WO2011081890A2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075958B2 (en) * 2009-06-24 2015-07-07 Uniloc Luxembourg S.A. Use of fingerprint with an on-line or networked auction
US8578161B2 (en) * 2010-04-01 2013-11-05 Intel Corporation Protocol for authenticating functionality in a peripheral device
US8484474B2 (en) * 2010-07-01 2013-07-09 Rockwell Automation Technologies, Inc. Methods for firmware signature
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
EP2503482A1 (en) * 2011-03-23 2012-09-26 ST-Ericsson SA Electronic device with flash memory component
US20120331290A1 (en) * 2011-06-24 2012-12-27 Broadcom Corporation Method and Apparatus for Establishing Trusted Communication With External Real-Time Clock
US9203617B2 (en) * 2011-08-17 2015-12-01 Vixs Systems, Inc. Secure provisioning of integrated circuits at various states of deployment, methods thereof
US9411748B2 (en) 2011-12-20 2016-08-09 Intel Corporation Secure replay protected storage
US9405707B2 (en) 2011-12-20 2016-08-02 Intel Corporation Secure replay protected storage
WO2013100992A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Context-state management
US9262340B1 (en) 2011-12-29 2016-02-16 Cypress Semiconductor Corporation Privileged mode methods and circuits for processor systems
AU2012100460B4 (en) 2012-01-04 2012-11-08 Uniloc Usa, Inc. Method and system implementing zone-restricted behavior of a computing device
US8863273B2 (en) * 2012-01-30 2014-10-14 Mediatek Inc. Method of using an account agent to access superuser account shell of a computer device
AU2012100462B4 (en) 2012-02-06 2012-11-08 Uniloc Usa, Inc. Near field authentication through communication of enclosed content sound waves
US8949818B2 (en) * 2012-06-29 2015-02-03 Intel Corporation Mechanism for facilitating dynamic and trusted cloud-based extension upgrades for computing systems
CN103840937A (zh) * 2012-11-23 2014-06-04 许丰 虚拟量子加密系统
AU2013100355B4 (en) 2013-02-28 2013-10-31 Netauthority, Inc Device-specific content delivery
US9819661B2 (en) * 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US9297559B2 (en) * 2013-09-25 2016-03-29 Intel Corporation Adaptive thermoelectric cooling in a processor
US20150242597A1 (en) * 2014-02-24 2015-08-27 Google Inc. Transferring authorization from an authenticated device to an unauthenticated device
US11030122B2 (en) 2014-04-08 2021-06-08 Micron Technology, Inc. Apparatuses and methods for securing an access protection scheme
CN104317613A (zh) * 2014-10-15 2015-01-28 广西大学 广播电视发射台远程监控系统的采集控制器软件升级方法
US9735968B2 (en) 2014-10-20 2017-08-15 Microsoft Technology Licensing, Llc Trust service for a client device
US20160180095A1 (en) * 2014-12-23 2016-06-23 Nitin V. Sarangdhar Measured boot capability
US10585673B2 (en) 2015-02-10 2020-03-10 Hewlett Packard Enterprise Development Lp Chipset reconfiguration based on device detection
WO2016159935A1 (en) 2015-03-27 2016-10-06 Intel Corporation Dynamic configuration of input/output controller access lanes
US9930050B2 (en) 2015-04-01 2018-03-27 Hand Held Products, Inc. Device management proxy for secure devices
US9882934B2 (en) * 2015-06-29 2018-01-30 Synopsys, Inc. Simple trusted transfer to internet of things devices
US10067770B2 (en) 2015-12-21 2018-09-04 Hewlett-Packard Development Company, L.P. Platform key hierarchy
US10778435B1 (en) * 2015-12-30 2020-09-15 Jpmorgan Chase Bank, N.A. Systems and methods for enhanced mobile device authentication
US20190305927A1 (en) * 2016-03-18 2019-10-03 University Of Florida Research Foundation Incorporated Bitstream security based on node locking
US10318748B2 (en) * 2016-09-30 2019-06-11 Intel Corporation Techniques to protect fuses against non-destructive attacks
US10762006B2 (en) * 2017-03-31 2020-09-01 Intel Corporation Techniques to dynamically enable memory channels on a compute platform
WO2018213624A1 (en) * 2017-05-19 2018-11-22 Swfl, Inc. D/B/A "Filament" Systems and methods securing an autonomous device
CN107179911B (zh) * 2017-05-19 2020-08-18 苏州浪潮智能科技有限公司 一种重启管理引擎的方法和设备
US10467416B2 (en) 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
CN110062016B (zh) 2018-01-18 2023-05-09 阿里巴巴集团控股有限公司 用于可信服务管理的方法及装置
EP3791304A4 (en) * 2018-05-11 2022-03-30 Lattice Semiconductor Corporation FAILURE CHARACTERIZATION SYSTEMS AND METHODS FOR PROGRAMMABLE LOGIC DEVICES
CN111382433B (zh) * 2018-12-29 2022-12-13 龙芯中科技术股份有限公司 模块加载方法、装置、设备以及存储介质
US11627049B2 (en) * 2019-01-31 2023-04-11 Hewlett Packard Enterprise Development Lp Failsafe firmware upgrade for cloud-managed devices
US11283635B2 (en) * 2019-09-28 2022-03-22 Intel Corporation Dynamic sharing in secure memory environments using edge service sidecars
US11416639B2 (en) * 2020-06-29 2022-08-16 Nuvoton Technology Corporation PQA unlock
US11574079B2 (en) 2021-05-27 2023-02-07 Nuvoton Technology Corporation Multi-stage provisioning of secret data
US11494330B2 (en) * 2021-06-22 2022-11-08 Intel Corporation Fuse recipe update mechanism

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5960464A (ja) * 1982-09-30 1984-04-06 株式会社東芝 プログラムの暗号化方式
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
JP3486043B2 (ja) * 1996-03-11 2004-01-13 株式会社東芝 ソフトウエア流通システムの動作方法及びソフトウエアシステム
US5948101A (en) * 1996-12-02 1999-09-07 The Foxboro Company Methods and systems for booting a computer in a distributed computing system
US6789135B1 (en) * 1998-09-09 2004-09-07 Matsushita Electric Industrial Co., Ltd. Apparatus function change system having an apparatus service center containing customer information and setting information for a reconfigurable chip
US6304831B1 (en) * 1998-11-09 2001-10-16 Crystal Group Inc. Computer having multiple alarm function communication paths
US6510513B1 (en) * 1999-01-13 2003-01-21 Microsoft Corporation Security services and policy enforcement for electronic data
US6683954B1 (en) * 1999-10-23 2004-01-27 Lockstream Corporation Key encryption using a client-unique additional key for fraud prevention
US7278016B1 (en) * 1999-10-26 2007-10-02 International Business Machines Corporation Encryption/decryption of stored data using non-accessible, unique encryption key
US7213152B1 (en) 2000-02-14 2007-05-01 Intel Corporation Modular bios update mechanism
US20010051928A1 (en) * 2000-04-21 2001-12-13 Moshe Brody Protection of software by personalization, and an arrangement, method, and system therefor
FR2810759A1 (fr) * 2000-06-26 2001-12-28 Radoslaw Galka Procede pour effectuer une transaction commerciale en ligne par l'intermediaire d'un reseau de communication et dispositif electronique pour passer des commandes commerciales en ligne
KR20020005929A (ko) 2000-07-11 2002-01-18 정재용 통신망을 이용한 컴퓨터 a/s 시스템 및 방법
US6621293B2 (en) * 2001-05-31 2003-09-16 Koninklijke Philips Electronics N.V. Integrated circuit arrangement with feature control
GB0114317D0 (en) * 2001-06-13 2001-08-01 Kean Thomas A Method of protecting intellectual property cores on field programmable gate array
DE10130786C1 (de) 2001-06-26 2003-02-13 Infineon Technologies Ag Laser-Programmierung integrierter Schaltkreise sowie zugehöriger integrierter Schaltkreis
US20040010643A1 (en) 2002-07-09 2004-01-15 Thomas William John Method for providing multiple configurations in a computer system with multiple components
JP2004086392A (ja) 2002-08-26 2004-03-18 Hitachi Ltd 計算機構成変更方法およびシステム
US7353543B2 (en) * 2003-01-10 2008-04-01 Matsushita Electric Industrial Co., Ltd. Contents distribution system
US20050039016A1 (en) 2003-08-12 2005-02-17 Selim Aissi Method for using trusted, hardware-based identity credentials in runtime package signature to secure mobile communications and high-value transaction execution
CA2455043A1 (en) 2004-01-09 2005-07-09 Digital Multitools Inc. Method and apparatus for facilitating control of a target computer by a remote computer
JP2005202503A (ja) 2004-01-13 2005-07-28 Hitachi Ltd 車載情報装置、車載機器管理システム、車両の制御機器のプログラムのバージョンアップ情報の配信方法、車両の制御機器のプログラムのバージョンアップ方法及び車両の制御機器のプログラムのバージョンアップシステム
US7802085B2 (en) * 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
JP2006295872A (ja) * 2005-03-18 2006-10-26 Matsushita Electric Ind Co Ltd 機器固有鍵の生成方法、これを用いた機密情報処理機能を備えた機密情報lsi、これを搭載したホスト機器、これに用いられる認証機能付き記録媒体、および認証機能を備えた記録媒体付き携帯端末
US9436804B2 (en) * 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
CN100454250C (zh) 2005-10-25 2009-01-21 北京飞天诚信科技有限公司 信息安全设备固件程序的远程升级方法
CN101133420B (zh) 2005-12-19 2011-04-13 日本电信电话株式会社 终端识别方法、认证方法、认证系统、服务器、终端、无线基站、程序以及记录介质
US8429406B2 (en) * 2007-06-04 2013-04-23 Qualcomm Atheros, Inc. Authorizing customer premise equipment into a network
US20080320263A1 (en) 2007-06-20 2008-12-25 Daniel Nemiroff Method, system, and apparatus for encrypting, integrity, and anti-replay protecting data in non-volatile memory in a fault tolerant manner
EP2026266B1 (en) 2007-07-27 2011-02-16 NTT DoCoMo, Inc. Method and apparatus for performing delegated transactions
US7978850B2 (en) * 2007-07-31 2011-07-12 Lsi Corporation Manufacturing embedded unique keys using a built in random number generator
EP2058974A1 (en) * 2007-08-28 2009-05-13 Panasonic Corporation Key terminal apparatus, lsi for encryption process, unique key producing method, and content system
US9069990B2 (en) 2007-11-28 2015-06-30 Nvidia Corporation Secure information storage system and method
US8693692B2 (en) * 2008-03-18 2014-04-08 Cisco Technology, Inc. Direct delivery of content descrambling keys using chip-unique code
US8001380B2 (en) * 2008-07-01 2011-08-16 Verizon Patent And Licensing Inc. System and method for providing unique encryption key
US7795899B1 (en) * 2009-04-08 2010-09-14 Oracle America, Inc. Enabling on-chip features via efuses

Also Published As

Publication number Publication date
GB2509479A (en) 2014-07-09
JP2013516003A (ja) 2013-05-09
DE112010005069B4 (de) 2021-08-26
WO2011081890A3 (en) 2011-11-03
CN102667802A (zh) 2012-09-12
US8966657B2 (en) 2015-02-24
TW201145041A (en) 2011-12-16
GB2509479B (en) 2016-06-15
WO2011081890A2 (en) 2011-07-07
US20110161672A1 (en) 2011-06-30
DE112010005069T5 (de) 2012-11-29
GB201209890D0 (en) 2012-07-18

Similar Documents

Publication Publication Date Title
JP5526450B2 (ja) ハードウェア構成を変更する方法、ハードウェア構成の変更を遠隔位置において可能にする方法、及びそのための装置
EP3805968B1 (en) Technologies for secure hardware and software attestation for trusted i/o
US11360784B2 (en) Integrity manifest certificate
KR101662618B1 (ko) 단일 신뢰 플랫폼 모듈을 가진 플랫폼 컴포넌트의 측정
US9602282B2 (en) Secure software and hardware association technique
US8677144B2 (en) Secure software and hardware association technique
AU2011332180B2 (en) Secure software licensing and provisioning using hardware based security engine
US10771264B2 (en) Securing firmware
CN109328352A (zh) 靶向安全软件部署
US20090086981A1 (en) Methods and Apparatus for Batch Bound Authentication
CN106716957A (zh) 高效且可靠的认证
US20230237155A1 (en) Securing communications with security processors using platform keys
KR20130101964A (ko) 플랫폼 컴포넌트들의 보안 업그레이드 또는 다운그레이드를 위한 방법 및 시스템
CN112955888A (zh) 保护节点组
US11909882B2 (en) Systems and methods to cryptographically verify an identity of an information handling system
US11822669B2 (en) Systems and methods for importing security credentials for use by an information handling system
US11822668B2 (en) Systems and methods for authenticating configurations of an information handling system
WO2013044384A1 (en) System and method for providing hardware-based security
CN113966510A (zh) 可信设备和计算系统
US11843707B2 (en) Systems and methods for authenticating hardware of an information handling system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140328

R150 Certificate of patent or registration of utility model

Ref document number: 5526450

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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