JP2013251016A - 複数の認証済みコードモジュールを利用するプロセッサ、方法、及びシステム - Google Patents

複数の認証済みコードモジュールを利用するプロセッサ、方法、及びシステム Download PDF

Info

Publication number
JP2013251016A
JP2013251016A JP2013194105A JP2013194105A JP2013251016A JP 2013251016 A JP2013251016 A JP 2013251016A JP 2013194105 A JP2013194105 A JP 2013194105A JP 2013194105 A JP2013194105 A JP 2013194105A JP 2013251016 A JP2013251016 A JP 2013251016A
Authority
JP
Japan
Prior art keywords
master
processor
authenticated code
code module
header
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013194105A
Other languages
English (en)
Other versions
JP2013251016A5 (ja
JP5752767B2 (ja
Inventor
Sham M Datta
エム. ダッタ、シャム
Ernie F Brickell
エフ. ブリッケル、アーニー
Mohan J Kumar
ジェー. クマー、モハン
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 JP2013251016A publication Critical patent/JP2013251016A/ja
Publication of JP2013251016A5 publication Critical patent/JP2013251016A5/ja
Application granted granted Critical
Publication of JP5752767B2 publication Critical patent/JP5752767B2/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
    • 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
    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】複数の認証済みコードモジュールを利用してセキュアなシステム環境に入るシステム、装置、および方法を提供する。
【解決手段】プロセッサはデコーダと制御論理とを含む。デコーダは、セキュアなエントリ命令を復号する。制御論理は、セキュアなエントリ命令が復号されると、マスタ認証済みコードモジュールの整合テーブルから、プロセッサに対応するエントリを見つけ、マスタ認証済みコードモジュールからマスタヘッダおよび個々の認証済みコードモジュールを読み出す。
【選択図】図1

Description

本開示は情報処理分野に係り、より詳しくは情報処理システムのセキュリティに係る。
インテルコーポレーション社製のインテル(登録商標)ペンティアム(登録商標)プロセッサファミリーのプロセッサ等のような情報処理システムでは、セキュアなシステム環境における動作をサポートすることができる。セキュアなシステム環境には、トラステッドパーティションおよびアントラステッドパーティションの両方が含まれうる。システムのベアプラットフォームハードウェアおよびトラステドッドソフトウェアがトラステッドパーティションに含まれうる。システムが含みうる機密を発見または改ざんから守るべく、アントラステッドパーティションからトラステッドパーティションのリソースへの直接アクセスは禁止されている。これら機密には、情報処理システムで生成、格納されるパスワード、鍵、プライベート情報または機密情報が含まれてよい。
システムのベアプラットフォームハードウェアは、トラステッドパーティションまたはドメインに、セキュアなシステムエントリプロトコルの実行により含まれてよい。例えば、始動するプロセッサはセキュアなエントリ(「SENTER」)命令を実行することができ、プロトコルを成功させるには、これに対してシステムの全てのエージェントが適切に応答する必要がある。応答するエージェントは、セキュアなエントリ処理中にはプログラム命令の実行または外部トランザクションの処理を実行できないようになっているので、始動するプロセッサは、署名を有するコードモジュールを正当で信頼がおけるとして有効化(validate)し、署名を有するコードモジュールを実行して、システムを、トラステッドオペレーションをサポートし、計測し(ハッシュ拡張関数による暗号化を利用して)、その後、計測された仮想マシンモニタ(「MVMM」)の実行を開始するよう構成する。MVMMは、アントラステッドソフトウェアを実行する1以上の仮想マシン環境を生成して、アントラステッドソフトウェアがシステムリソースに直接アクセスしないようにする。
本発明を、添付図面における限定ではない例により示す。
本発明の一実施形態における情報処理システムを示す。 本発明の一実施形態におけるプロセッサを示す。 本発明の一実施形態におけるチップセットを示す。 本発明の一実施形態におけるマスタ認証済みコードモジュールを示す。 本発明の一実施形態における、複数の認証済みコードモジュールを利用してセキュアなコンピューティング環境に入る方法を示す。
本発明の実施形態における、複数の認証済みコードモジュール(それぞれ「ACM」と称する)を利用してセキュアなコンピューティング環境に入るシステム、装置、および方法を記載する。本記載において、プロセッサおよびシステムの構成といった特定の詳細を示すことで、本発明の完全な理解を促す。しかし、当業者であれば本発明がこれら特定の詳細なしに実行可能であることを理解する。加えて、公知の構造、回路等は詳細に示さないことで、本発明を不当に曖昧にしないようにしている箇所もある。さらに、本記載の一実施形態である命令をある呼称で呼ぶ場合であっても(例えば「SENTER」)、他の実施形態では、これら命令または類似した命令が異なる呼称で呼ばれる場合もある。
本発明の実施形態は、複数のACMを利用してセキュアなコンピューティング環境に入る方法を提供する。複数のACMを利用すると好適である理由は、情報処理システムが複数のプロセッサまたはプロセッサパッケージを含み、これらプロセッサまたはプロセッサパッケージが同一ではない場合に、単一のACMだけでは、これらプロセッサまたはプロセッサパッケージ全てを始動させて、セキュアな環境に入らせることができない場合がありうるからである。
図1は、本発明の一実施形態における情報処理システム100を示す。情報処理システム100はパソコン、メインフレームコンピュータ、ポータブルコンピュータ、ハンドヘルドデバイス、セットトップボックス、サーバ、その他のコンピューティングシステムであってよい。本実施形態では、システム100は、ベアプラットフォームハードウェア110を含み、このベアプラットフォームハードウェア110が、プロセッサ120、130、および140、システムメモリ150、チップセット160、トークン170、デバイス180、および不揮発性格納装置190を含む。
各プロセッサ120、130、および140は、1以上の実行コアを有するコンポーネントを表してよく、各実行コアは、インテル(登録商標)ペンティアム(登録商標)プロセッサファミリ、アイテニアム(登録商標)プロセッサファミリ、その他インテル(登録商標)コーポレーション社製のその他のプロセッサファミリのプロセッサ、または別の会社製の別のプロセッサ等の汎用マイクロプロセッサ、または専用プロセッサまたはマイクロコントローラ等を含む様々な異なる種類のプロセッサに基づいてよく、または、再構成可能なコア(例えばフィールドプログラマブルゲートアレイ)であってもよい。図1にはこれらプロセッサが3つしか示されていないが、システム100は任意の数のプロセッサを含むことができ、その各々が任意の数の実行コアおよび実行スレッドを任意の組み合わせで含むことができる。一部の実施形態では、プロセッサ120、130、140のいずれかまたは全てが、1以上の物理プロセッサで動作する別個のハードウェア実行スレッドまたは「論理プロセッサ」を表してよい。
システムメモリ150は、データおよび/またはプログラムコード等の情報を格納可能な任意の媒体(例えばDRAM、またはプロセッサ120、130、140により可読である任意の他の媒体、またはこれら媒体の任意の組み合わせ)であってよい。
チップセット160は、メモリ動作、入出力(I/O)動作、構成、制御、内部または外部のインタフェース、接続、または通信機能(たとえば「グルー」論理およびバスブリッジ)、および/または、プロセッサ120、130、140、および/または、システム100の任意の類似した機能をサポートする任意の回路および論理群を表すことができる。チップセット160の個々の要素は、単一のチップ、一対のチップにグループ化されてもよいし、複数のチップ間で分散されてもよいし、および/または、1以上のプロセッサ(プロセッサ120、130、および/または、140)に部分的、全体的、重複的に統合されても、任意の分散法により統合されてもよい。
トークン170は、トラステッドプラットフォームモジュール(「TPM」)172およびプラットフォーム構成レジスタ(「PCR」)174を含んでよい。TPM172は、マイクロコントローラを含むコンポーネントであってよく、セキュリティ構築および維持に利用される鍵、パスワード、デジタル証書、その他の情報をセキュアに格納することができる。PCR174は、システム構成情報を格納する任意の数のレジスタおよび/またはその他の格納位置を含むことができる。TPM172および/またはPCR174は、一定のエージェントに対して、および/または一定の条件においてのみ、アクセスを可能とするよう構成されている。トークン170、および/または、TPM172およびPCR174のいずれかまたは両方を、チップセット160に、または、システム100のその他のコンポーネントに含めることができる。
デバイス180は、任意の数の任意の種類のI/O、周辺デバイス、その他のデバイス(例えばキーボード、マウス、トラックボール、ポインティングデバイス、モニタ、プリンタ、メディアカード、ネットワークインタフェース、情報格納デバイス等)を表してよい。デバイス180は、別個のコンポーネントに具現化されても、任意のその他のデバイスを有する集積コンポーネントに含められてもよい。一実施形態では、デバイス180が、多機能I/O、周辺デバイス、その他のデバイスの単一の機能を表してもよい。
プロセッサ120、130、140、システムメモリ150、チップセット160、トークン170、およびデバイス180は、任意の公知の方法で互いに連結、通信してよい。この任意の公知の方法には、1以上の並列、連続、パイプライン式、非同期、同期、有線、無線、その他のバスまたはポイントツーポイント接続等が含まれる。システム100はさらに、任意の数の追加デバイス、エージェント、コンポーネント、または接続を含んでよい。
図2は、本発明の一実施形態における図1のプロセッサ120、130、または140のいずれか、または任意の他のプロセッサを表してよいプロセッサ200を示す。
プロセッサ200は、SRAM、またはその他の形態の情報(例えばシステムメモリ150からコピーされるデータ等)の格納装置であってよいキャッシュ210を含んでよい。プロセッサ200(またはキャッシュ210)は、さらに、キャッシュ210を通常モードまたは「RAMに準じるキャッシュ「(「CRAM」)モードのいずれで動作させるかを制御するキャッシュ制御論理220を含んでよい。通常モードでは、キャッシュ210は、キャッシュヒットするとメモリ要求を満たし、キャッシュミスするとキャッシュラインを置き換え、スヌープ要求を受けるとキャッシュラインを無効化する、あるいは、置き換えてよい。一方、CRAMモードでは、キャッシュ210は、キャッシュメモリのメモリ範囲内の要求がキャッシュメモリにより満たされ、スヌープ要求を受けてもキャッシュのラインが置き換えられたり無効化されたりしないようなRAMとして機能する。
プロセッサ200はさらに命令ユニット230、制御ユニット240、実行ユニット250、およびメッセージングユニット260を含むことができる。命令ユニット230は、デコーダ等の任意の回路、論理、その他のハードウェアまたは構造を含み、命令に、受信、認識、復号、その他の処理を行うことができる。制御ユニット240は、マイクロコード、状態マシン論理、プログラム可能論理、その他の形態の制御論理等の任意の回路、論理、その他のハードウェアまたは構造を含み、命令ユニット230が受信する命令および/またはメッセージングユニット260が受信するメッセージに応じて制御プロセッサ200のための制御信号その他を生成することができる。
実行ユニット250は、命令ユニット230が受信する命令を実行する任意の回路、論理、その他のハードウェアまたは構造を含むことができる。実行ユニット250は、制御ユニット240が生成する制御信号に基づき動作することができる。メッセージングユニット260は、プロセッサ200からシステム100の他のコンポーネントまたはエージェントに送信するべきメッセージを生成して、システム100の他のコンポーネントまたはエージェントがプロセッサ200に送信するメッセージを受信する任意の回路、論理、その他のハードウェアまたは構造を含むことができる。
プロセッサ200の一実施形態では、命令ユニット210は、システム100にセキュアな環境を構築する処理(「SENTER」処理)をプロセッサ200に開始させる命令(「SENTER」命令)を受信することができる。SENTER命令を受信すると、制御ユニット240は、他のプロセッサおよびエージェントのメッセージングユニットによりSENTERバスメッセージとして認識される「SENTER」バスメッセージ(または、プロセッサその他のエージェントがバス以外の手段により通信を行うシステム内のその他の種類のメッセージ)をメッセージングユニット260に生成させる。SENTER命令を実行し、SENTERバスメッセージを送信するプロセッサまたは実行スレッドは、「始動論理プロセッサ」(「ILP」)と称される。
SENTERバスメッセージを受信する、システム内の各プロセッサ、実行スレッド、その他のエージェントは、「応答論理プロセッサ」(「RLP」)と称される。SENTERバスメッセージに応じて、各RLPは、セキュアな環境の構築の準備を行うアクションを行い、ILPにセキュアな環境を起動させる。これらアクションのいずれかは、自身のメッセージングユニットに「ACK」バスメッセージを生成させ、SENTERバスメッセージの受領確認を行うことができてよい。
図3は、本発明の一実施形態における、チップセット160、またはチップセット160の機能を行う任意のその他のチップセットまたはコンポーネントを表してよいチップセット300を示す。チップセット300は、メッセージングユニット310、制御ユニット320、「EXISTS」格納位置330、「JOINS」格納位置340、および、「ALL_JOINED」格納位置350を含んでよい。
メッセージングユニット310は、チップセット300からシステム100の他のコンポーネントまたはエージェントに送信するべきメッセージを生成して、システム100の他のコンポーネントまたはエージェントが送信するメッセージを受信する任意の回路、論理、その他のハードウェアまたは構造を含むことができる。制御ユニット320は、マイクロコード、状態マシン論理、プログラム可能論理、その他の形態の制御論理等の任意の回路、論理、その他のハードウェアまたは構造を含み、メッセージングユニット310が受信するメッセージに応じて制御チップセット200のための制御信号を生成することができる。
「EXISTS」格納位置330、「JOINS」格納位置340、および「ALL_JOINED」格納位置350の各々は、レジスタまたは任意の他の形態の情報格納装置を含んでよく、任意の数のビット用の格納装置を含んでよい。一実施形態においては、制御ユニット320は、EXISTS格納位置330を利用してシステム100で動作する全ての論理プロセッサその他のエージェントを追跡し、JOINS格納位置340を利用してSENTERバスメッセージを承認した全ての論理プロセッサその他のエージェントを追跡してよい。EXISTS格納位置330に反映されるシステム100の全てのプロセッサその他のエージェントが、JOINS格納位置340に反映されるSENTERバスメッセージを承認した場合に、制御ユニット320は、「ALL_JOINED」格納位置350にインジケータを設定して、ILPに対して、セキュアな環境の起動を進めてよいことを示すことができる。SENTER処理のこの記載において(本記載の残りの部分においても同様であるが)、本発明の実施形態を記載およびイネーブルする目的には不要である多くの詳細は省かれており、処理に関しては多くの変形例が可能である。例えば、ILPおよびRLPがフロント側プロセッサバス(「FSB」)により接続される場合には、FSBトランザクションは、各トランザクションのイニシエータの識別子を含むことができ、チップセット300をFSBに接続して全てのFSB論理プロセッサその他のバスエージェントを追跡することができる。
図1の説明に戻ると、不揮発性格納装置190は、システム100における任意の数の個々の不揮発性格納媒体を表すことができる(例えば、半導体フラッシュメモリまたは磁気または光学ディスク)。不揮発性格納装置190は、本発明の実施形態で利用されるソフトウェアコンポーネントを格納する目的に利用することができる。例えば、不揮発性格納装置190は、承認済みのコードモジュール(「ACM」)192および計測された仮想マシンモニタ(「MVMM」)194を格納してよい。
ACM192は、SENTER処理中にプロセッサ(1または複数)により実行されることで、セキュアな環境の構築に関る任意の数のアクションを実行することができる。例えばACM192は、システム100内のコンポーネントを初期化、構成、およびテストして、セキュアな環境に参加させる目的に利用することができる。一実施形態では、ACM192を利用して、システム100の任意のプロセッサ、チップセットその他のコンポーネントのメモリコントローラ機能により制御されて、システム100のメモリ構成をテストして、確実にシステムメモリ150内の一定のページまたは部分に対するアクセスを制限または制御することで、システム100をセキュアにするMVMM194および/またはその他のソフトウェアをシステムメモリ150への格納に際して保護してよい。別の実施形態では、ACM192は、MVMM194、および、セキュアな環境内で利用される任意の他のソフトウェアを認証して、MVMM194の実行を起動させる目的に利用することもできる。
MVMM194は1以上の仮想マシンを制御して他のソフトウェアプログラムを実行させるSENTER処理中に起動されるトラステッド実体である任意の仮想マシンモニタ、ハイパーバイザ、その他の同様のソフトウェアプログラムであってよく(しばしば、計測起動環境、あるいは「MLE」と称される)、トラステッドであるものも、そうではないものも含まれる。
システム100にセキュアな環境を構築するべく、任意のプロセッサ120、130、140、またはシステム100の任意の他のプロセッサの上で動作するオペレーティングシステム(「OS」)、基本入出力システム(「BIOS」)等のシステムソフトウェアは、ACM192およびMVMM194を、不揮発性格納装置190からシステムメモリ150へ送信して、これらプロセッサのいずれか(例えばプロセッサ120)に、SENTER命令を実行させてよい。SENTER命令の実行により、全てのRLPがSENTERバスメッセージを承認し、キャッシュ122をCRAMモードで動作するよう構成し、ACM192を(あるいは、後述するように本発明の一実施形態においてはACM192の一部を)キャッシュ122にロードするまで、ILP等のプロセッサ120は、SENTERバスメッセージを発行して、ALL_JOINED格納位置350に対してポーリングを行うことができる。キャッシュ122はCRAMモードで動作するよう構成することができ、CRAMモードにおいてキャッシュ122は、プロセッサ120がACM192を(あるいは、後述するように本発明の一実施形態においてはACM192の一部を)承認することのできるプライベートでセキュアなメモリとして機能することができる。
ACMは、特定のプロセッサおよび/またはチップセットについて書き込むことができ、プロセッサおよび/またはチップセットの製造業者またはベンダによってデジタル署名を施されてよい。システムの各プロセッサを安定した状態にしてSENTER処理に参加できるようにするための様々なアクションは複雑であることから、ILPに加えてRLPも、ACMあるいはACMの一部を実行することが望ましい。さらに、システム100等のシステムが、異なるステッピング、バージョン、または種類の2以上のプロセッサを含みうる。従って、異なるプロセッサ用のコードを1つのACMに組み合わせて、異なるプロセッサのいずれもがILPとして機能することができるよう、および/または、RLPがACMあるいはACMの一部を実行することができるようにすることが望ましい。しかし、ACMのサイズは、認証のためにロードされる可能性のあるキャッシュメモリのサイズ(例えば64キロバイト)に制限される場合がある。従って本発明の実施形態では、SENTER処理において、2以上のACMを利用する、あるいは利用可能とする。
図4は、本発明の一実施形態におけるマスタACM400を示し、これはシステム100のACM192として利用可能である。マスタACM400は、マスタヘッダ410、ACM420、ACM430、およびACM440を含む。各ACM420、430、および440は、異なるステッピング、バージョン、またはタイプのプロセッサについて書き込むことができる。例えば、ACM420、ACM430、およびACM440は、システム100内のプロセッサ120、130、および140についてそれぞれ書き込まれてよい。
ACM420、430、および440の各々は、コードおよびデータを含むセクション(例えば各セクション424、432、および442)と、ヘッダを含むセクション(例えば各セクション424、434、および444)を含んでよい。各コードおよびデータのセクションは、SENTER処理中にプロセッサが実行するコードを、このコードの実行中に利用されるデータおよび/またはこのコードの実行中に生成されるデータのスクラッチパッド位置とともに含むことができる。各ヘッダセクションは、ハッシュおよび/または他の暗号関数により生成される、対応するACMから導出される、または対応するACMを表すダイジェストおよび/またはデジタル署名(「ハッシュ値」)、および/または、その他の値を含む。各ヘッダセクションは、さらに、ACMの著者、サイズ、バージョン等に関する情報を含むことができる。これらヘッダセクションの情報を利用して、対応するACMを認証することができる(つまり、正当性を確認することができる)。
マスタヘッダ410は、整合テーブル412およびマスタハッシュ414を含んでよい。整合テーブル412は、例えばレジスタその他の格納位置から可読である各プロセッサ内の、または各プロセッサに関連付けられた固有のプロセッサ識別子(「CPU ID」)に基づいてシステム100に含まれる各プロセッサを識別するテーブルを含んでよい。各CPU IDについて、整合テーブルは、プロセッサに関するステッピング、バージョン、種類その他の情報に基づいて、マスタACM400に含まれるどのACMがそのプロセッサにより実行されるかを示す。
マスタハッシュ414は、整合テーブル412およびヘッダ424、434、および444(または各ヘッダ424、434、および444の一部)の連結により導出される、または連結を表すハッシュ値を含む。マスタハッシュ414は、整合テーブル412およびACM420、430、および440のハッシュ値の連結に対してハッシュおよび/または他の暗号関数を行うことにより生成されてよい。従ってマスタハッシュ414を利用して、マスタACM400に含まれる全ての情報を認証することができる。
図5は、本発明の方法の実施形態を示し、特に、複数の認証済みコードモジュールを利用してセキュアなコンピューティング環境に入る方法500を示す。本発明の方法の実施形態はこの点に限定はされないが、図5の方法500の説明において、システム100、プロセッサ200、チップセット300、またはマスタACM400の各エレメントについて説明する場合がある。さらに、方法500は、各々が潜在的に異なる位置で異なる実体または人により、あるいは自動的に実行されうる個別の方法を集めたものを表してもよい。
さらに、方法500で実行される特定のアクションは、制御ユニット240(例えばボックス550から558)が生成する制御信号に呼応してプロセッサ200が実行する、または、制御ユニット320が生成する制御信号に呼応してチップセット300により実行されてよい。そして、命令ユニット230の1つの命令の1以上のマイクロ命令またはマイクロオペレーションへの復号に呼応して、および/または、メッセージングユニット260のバスメッセージその他のトランザクションの受信に呼応して、プロセッサ200の制御信号を生成してよく、それから、メッセージングユニット310のバスメッセージその他のトランザクションの受信に呼応して、チップセット300の制御信号を生成してよい。
方法500は、図5のボックス502から開始することができる。
ボックス510で、任意の数の個々のACM(例えばACM420、430、および440)が、例えばプロセッサその他の情報処理システムコンポーネントの製造業者またはベンダにより、書き込まれる、または生成されてよい。ボックス512で、各ACMについて、ハッシュその他のアルゴリズムを該ACMのコード、データ、および/または、その他のセクションに適用することで、ハッシュ値を生成する。ボックス514で、例えば公開/秘密鍵の対を利用して暗号化アルゴリズムを適用することにより、各ハッシュ値を暗号化することができる。ボックス516で、各ハッシュ値を対応するACMのヘッダに追加してよい。
ボックス520で、マスタACM(例えばマスタACM400)を、情報処理システム(例えばシステム100)に対して生成してよい。マスタACMは、例えばシステム製造業者またはベンダにより、任意の数の個々のACM(例えばACM420、430、および440)を利用することにより生成されてよい。ボックス522で、システム100の各プロセッサその他のエージェントについてエントリ(各プロセッサの識別子およびどのACMがそのプロセッサにより実行されるかの指示を含む)を生成することにより、整合テーブル(例えば整合テーブル412)が生成されてよい。
ボックス524で、整合テーブルを、マスタACMに含まれる個々のACMのハッシュ値それぞれと連結してよい。ボックス526で、整合テーブルおよび個々のACMハッシュ値の連結に対してハッシュその他の同様のアルゴリズムを適用することにより、マスタハッシュ(例えばマスタハッシュ414)を生成することができる。ボックス528で、例えば公開/秘密鍵の対を利用して暗号化アルゴリズムを適用することにより、マスタハッシュを暗号化することができる。
ボックス530で、マスタハッシュおよびマスタテーブルをマスタヘッダに連結して、マスタヘッダと個々のACMとを連結することにより、マスタACMを完成させることができる。ボックス532で、マスタACMは、システムの例えば不揮発性格納装置(例えば不揮発性格納装置190)にロードされてよい、またはインストールされてよい。
ボックス540で、マスタACMは、不揮発性格納装置からシステムメモリ(例えばシステムメモリ150)に、例えばシステム100のBIOS、ブートローダ、またはOSによりコピーされてよい。ボックス542で、セキュアなシステム環境へのシステム100のエントリが、例えばBIOS、ブートローダ、OSがプロセッサ120にSENTER命令を発行することにより始動される。ボックス544で、プロセッサ120は、SENTERバスメッセージを送信してよい。ボックス546で、システム100の各RLP(例えばプロセッサ130および140)は、ACKバスメッセージを送信してよい。ボックス548で、全てのRLPがSENTER処理に参加した旨を示す情報を、例えばALL_JOINED格納位置350に設定することができる。
ボックス550で、システム100のプロセッサ(例えばILPまたはRLP)は、対応するエントリを見つけるべく、マスタACMの整合テーブルを読み出す。整合するものが見つからない場合には、ボックス552で、プロセッサは、不揮発性メモリにエラーコード値を書き込んで、システムをリセットすることができる。一方で整合するものが見つかった場合には、ボックス554で、プロセッサは自身のキャッシュをCRAMモードで動作するよう構成して、マスタヘッダおよび整合する個々のACMを自身のキャッシュにロードする。
ボックス556で、プロセッサは、マスタヘッダおよび整合するACMそれぞれをハッシュして、結果生じるハッシュ値を、マスタハッシュ、および、マスタACMから読み出した個々のACMハッシュと比較することにより、該マスタヘッダおよび整合するACMの認証を試みることができる。比較結果が整合しない場合には、ボックス552で、プロセッサは、不揮発性メモリにエラーコード値を書き込んで、システムをリセットすることができる。一方でマスタヘッダおよび整合するACMの両方の認証に成功した場合には、ボックス558で、マスタハッシュをトークン(例えばトークン170)に送信して、PCRに格納させ、後に計測起動環境またはセキュアなシステム環境における機密の情報の封印または封印を解くために備えさせることができる。
ボックス560では、ボックス550からボックス558までの処理を、システム100の各他のプロセッサにより繰り返させてよい。ボックス562で、システム100の1以上のプロセッサが、自身のACMの実行を開始してよい。ボックス564で、ACMを実行しているプロセッサがMVMMを起動してよい。ボックス566で、計測起動環境(「MLE」)またはセキュアなシステム環境へのシステム100のエントリが完了してよい。
ボックス598で方法500が終了してよい。
方法500を異なる順序で実行すること、示されたブロックを同時に実行すること、示されたブロックを省くこと、ブロックを追加すること、またはこれら順序を変えること、ブロックの組み合わせ、省略、ブロックの追加を組み合わせること全てが本発明の範囲に含まれることに留意されたい。本発明の方法の実施形態には数多くの変形例が可能であるが、方法500の説明からは明らかではない場合もある。例えば、ボックス520から530のマスタACMの生成は、システム100内外いずれで行われてもよい。
以上のように、複数の認証済みコードモジュールを利用してセキュアなコンピューティング環境に入るシステム、装置、および方法を記載してきた。特定の実施形態に限って説明、および図示してきたが、これら実施形態は広義の発明の例示であり限定は意図しておらず、当業者であれば様々な他の変形例を想到することが明らかであり、記載、図示してきた特定の構成および配置に本発明を限定することは意図されていないことに留意されたい。本技術分野は急速な進歩を遂げており、未来の技術進化を予測することは難しく、未来の技術進歩如何によって、本開示の原理または添付請求項の範囲を逸脱することなく、開示されている実施形態の配置、詳細等を修正可能になるであろうことは容易に予想がつく。

Claims (16)

  1. セキュアなエントリ命令を復号するデコーダと、
    前記セキュアなエントリ命令が復号されると、
    1以上のプロセッサのための1以上の認証済みコードモジュール、及び、前記認証済みコードモジュールと前記認証済みコードモジュールを実行するプロセッサとの対応関係を示すエントリを有する整合テーブル、並びに、マスタハッシュを含むマスタヘッダ、を有するマスタ認証済みコードモジュール中における整合テーブルから、自身のプロセッサに対応するエントリを見つけ、前記マスタ認証済みコードモジュールから前記マスタヘッダおよび見つけた前記エントリに示される個々の認証済みコードモジュールを読み出す制御論理と、
    を備え、
    前記認証済みコードモジュールの各々は対応するハッシュと、コード及びデータとを含み、前記マスタハッシュは、前記整合テーブル、及び、前記複数の認証済みコードモジュールの複数の前記対応するハッシュに基づいて生成される、
    プロセッサ。
  2. セキュアなモードに構成されるキャッシュをさらに備え、
    前記制御論理は、前記マスタヘッダおよび前記個々の認証済みコードモジュールを、前記セキュアなモードに構成された前記キャッシュへと読み込む請求項1に記載のプロセッサ。
  3. 前記制御論理はさらに、前記マスタヘッダおよび前記個々の認証済みコードモジュールを前記キャッシュ内で認証する請求項2に記載のプロセッサ。
  4. 前記制御論理はさらに、前記マスタヘッダおよび前記個々の認証済みコードモジュールを認証した後で、前記マスタハッシュをトークンに送信する請求項3に記載のプロセッサ。
  5. 第1のプロセッサにより、
    1以上のプロセッサのための1以上の認証済みコードモジュール、及び、認証済みコードモジュールと前記認証済みコードモジュールを実行するプロセッサとの対応関係を示すエントリを有する整合テーブル、並びに、マスタハッシュを含むマスタヘッダ、を有するマスタ認証済みコードモジュール中における整合テーブルから、前記第1のプロセッサに対応する第1のエントリを見つける段階と、
    前記第1のプロセッサにより、前記マスタヘッダを、前記マスタ認証済みコードモジュールから第1のセキュアなメモリにロードする段階と、
    前記第1のプロセッサにより、見つけた前記エントリに示される前記第1のプロセッサの第1の個々の認証済みコードモジュールを、マスタコードモジュールから前記第1のセキュアなメモリにロードする段階と
    を備え、
    前記認証済みコードモジュールの各々は対応するハッシュと、コード及びデータとを含み、前記マスタハッシュは、前記整合テーブル、及び、前記複数の認証済みコードモジュールの複数の前記対応するハッシュに基づいて生成される、
    方法。
  6. 前記第1のプロセッサにより、セキュアなエントリ命令を受信する段階をさらに備え、
    前記第1のエントリを見つける段階、前記マスタヘッダをロードする段階、および前記第1の個々の認証済みコードモジュールをロードする段階は、前記セキュアなエントリ命令を発行する段階が行われると行われる請求項5に記載の方法。
  7. 前記第1のセキュアなメモリは、前記第1のプロセッサのキャッシュメモリである請求項5又は6に記載の方法。
  8. 前記第1のプロセッサにより、前記マスタヘッダおよび前記第1の個々の認証済みコードモジュールを前記第1のセキュアなメモリ内で認証する段階をさらに備える請求項5から7のいずれか1項に記載の方法。
  9. 前記第1のプロセッサにより、前記マスタヘッダおよび前記第1の個々の認証済みコードモジュールを認証する段階の後で、前記マスタハッシュをトークンに送信する段階をさらに備える請求項8に記載の方法。
  10. 第2のプロセッサにより、前記マスタ認証済みコードモジュールの前記整合テーブルから、前記第2のプロセッサに対応する第2のエントリを見つける段階と、
    前記第2のプロセッサにより、前記マスタヘッダを、前記マスタ認証済みコードモジュールから第2のセキュアなメモリにロードする段階と、
    前記第2のプロセッサにより、前記第2のプロセッサの第2の個々の認証済みコードモジュールを、前記マスタコードモジュールから前記第2のセキュアなメモリにロードする段階とをさらに備える請求項5から9のいずれか1項に記載の方法。
  11. 前記第2のセキュアなメモリは、前記第2のプロセッサのキャッシュメモリである請求項10に記載の方法。
  12. 前記第2のプロセッサにより、前記マスタヘッダおよび前記第2の個々の認証済みコードモジュールを前記第2のセキュアなメモリ内で認証する段階をさらに備える請求項10又は11に記載の方法。
  13. 第1のプロセッサと第2のプロセッサとを備えるシステムであって、
    前記第1のプロセッサは、
    セキュアなエントリ命令を復号するデコーダと、
    セキュアなエントリメッセージを送信するメッセージング論理と、
    前記セキュアなエントリ命令が復号されると、
    1以上のプロセッサのための1以上の認証済みコードモジュール、及び、認証済みコードモジュールと前記認証済みコードモジュールを実行するプロセッサとの対応関係を示すエントリを有する整合テーブル、並びに、マスタハッシュを含むマスタヘッダ、を有するマスタ認証済みコードモジュール中における整合テーブルから、前記第1のプロセッサに対応する第1のエントリを見つけ、前記マスタ認証済みコードモジュールから前記マスタヘッダおよび見つけた前記第1のエントリに示される第1の個々の認証済みコードモジュールを読み出す第1の制御論理とを有し、
    前記第2のプロセッサは、
    前記セキュアなエントリメッセージを受信するメッセージング論理と、
    前記セキュアなエントリメッセージが受信されると、前記マスタ認証済みコードモジュールの前記整合テーブルから、前記第2のプロセッサに対応する第2のエントリを見つけ、前記マスタ認証済みコードモジュールから前記マスタヘッダおよび見つけた前記第2のエントリに示される第2の個々の認証済みコードモジュールを読み出す第2の制御論理とを有し、
    前記認証済みコードモジュールの各々は対応するハッシュと、コード及びデータとを含み、前記マスタハッシュは、前記整合テーブル及び前記複数の認証済みコードモジュールの複数の前記対応するハッシュに基づいて生成される、
    システム。
  14. 前記マスタ認証済みコードモジュールを格納する不揮発性格納装置をさらに備える請求項13に記載のシステム。
  15. 前記マスタ認証済みコードモジュールが前記不揮発性格納装置からロードされるシステムメモリをさらに備える請求項14に記載のシステム。
  16. 前記マスタヘッダおよび前記第1の個々の認証済みコードモジュールを前記第1のプロセッサのセキュアなメモリ内で認証した後で、前記マスタ認証済みコードモジュールのマスタハッシュをロードするトークンをさらに備える請求項15に記載のシステム。
JP2013194105A 2009-12-31 2013-09-19 複数の認証済みコードモジュールを利用するプロセッサ、方法、及びシステム Expired - Fee Related JP5752767B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/650,579 2009-12-31
US12/650,579 US9202015B2 (en) 2009-12-31 2009-12-31 Entering a secured computing environment using multiple authenticated code modules

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010277703A Division JP5373753B2 (ja) 2009-12-31 2010-12-14 複数の認証済みコードモジュールを利用するプロセッサ、方法、及びシステム

Publications (3)

Publication Number Publication Date
JP2013251016A true JP2013251016A (ja) 2013-12-12
JP2013251016A5 JP2013251016A5 (ja) 2014-01-30
JP5752767B2 JP5752767B2 (ja) 2015-07-22

Family

ID=44188915

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010277703A Expired - Fee Related JP5373753B2 (ja) 2009-12-31 2010-12-14 複数の認証済みコードモジュールを利用するプロセッサ、方法、及びシステム
JP2013194105A Expired - Fee Related JP5752767B2 (ja) 2009-12-31 2013-09-19 複数の認証済みコードモジュールを利用するプロセッサ、方法、及びシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010277703A Expired - Fee Related JP5373753B2 (ja) 2009-12-31 2010-12-14 複数の認証済みコードモジュールを利用するプロセッサ、方法、及びシステム

Country Status (6)

Country Link
US (2) US9202015B2 (ja)
JP (2) JP5373753B2 (ja)
CN (1) CN102122327B (ja)
BR (1) BRPI1005586A2 (ja)
DE (1) DE102010054614A1 (ja)
TW (1) TWI582632B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202015B2 (en) * 2009-12-31 2015-12-01 Intel Corporation Entering a secured computing environment using multiple authenticated code modules
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US9596082B2 (en) * 2011-12-15 2017-03-14 Intel Corporation Secure debug trace messages for production authenticated code modules
US9930066B2 (en) 2013-02-12 2018-03-27 Nicira, Inc. Infrastructure level LAN security
US20150082006A1 (en) * 2013-09-06 2015-03-19 Futurewei Technologies, Inc. System and Method for an Asynchronous Processor with Asynchronous Instruction Fetch, Decode, and Issue
CN105335672B (zh) * 2014-06-16 2020-12-04 华为技术有限公司 一种安全模式提示方法及装置
US9734313B2 (en) 2014-06-16 2017-08-15 Huawei Technologies Co., Ltd. Security mode prompt method and apparatus
US10747888B2 (en) 2014-06-30 2020-08-18 Nicira, Inc. Method and apparatus for differently encrypting data messages for different logical networks
US10181027B2 (en) * 2014-10-17 2019-01-15 Intel Corporation Interface between a device and a secure processing environment
US10079880B2 (en) * 2015-06-07 2018-09-18 Apple Inc. Automatic identification of invalid participants in a secure synchronization system
US10798073B2 (en) 2016-08-26 2020-10-06 Nicira, Inc. Secure key management protocol for distributed network encryption
DE102018120347A1 (de) * 2018-08-21 2020-02-27 Pilz Gmbh & Co. Kg Automatisierungssystem zur Überwachung eines sicherheitskritischen Prozesses

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62128354A (ja) * 1985-11-29 1987-06-10 Fuji Electric Co Ltd マルチプロセツサシステムの起動方式
US20030055840A1 (en) * 1999-01-27 2003-03-20 Yoshiki Kawaoka Image file apparatus and method
JP2005535005A (ja) * 2002-03-29 2005-11-17 インテル コーポレイション 安全な環境を初期化する命令を実行するシステムおよび方法
JP2006507548A (ja) * 2001-12-28 2006-03-02 インテル コーポレイション 認証コード方法及び装置
JP2006221631A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置
US20060224878A1 (en) * 2005-03-31 2006-10-05 Intel Corporation System and method for trusted early boot flow
US20090144754A1 (en) * 2007-12-03 2009-06-04 Zimmer Vincent J Bios routine avoidance
JP2009532783A (ja) * 2006-03-30 2009-09-10 シリコン イメージ,インコーポレイテッド 共用不揮発性メモリ・アーキテクチャ

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62126451A (ja) * 1985-11-27 1987-06-08 Mitsubishi Electric Corp 分散処理装置のイニシヤルプログラムロ−ド方式
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7360076B2 (en) 2001-06-13 2008-04-15 Itt Manufacturing Enterprises, Inc. Security association data cache and structure
TW583568B (en) 2001-08-27 2004-04-11 Dataplay Inc A secure access method and system
US7627753B2 (en) 2002-03-19 2009-12-01 Microsoft Corporation Secure digital data format and code enforced policy
CN1307503C (zh) * 2002-04-23 2007-03-28 松下电器产业株式会社 服务器装置及程序管理系统
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7103779B2 (en) 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US7698552B2 (en) * 2004-06-03 2010-04-13 Intel Corporation Launching a secure kernel in a multiprocessor system
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
FR2918830B1 (fr) 2007-07-13 2009-10-30 Viaccess Sa Verification de code mac sans revelation.
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
US9202015B2 (en) * 2009-12-31 2015-12-01 Intel Corporation Entering a secured computing environment using multiple authenticated code modules

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62128354A (ja) * 1985-11-29 1987-06-10 Fuji Electric Co Ltd マルチプロセツサシステムの起動方式
US20030055840A1 (en) * 1999-01-27 2003-03-20 Yoshiki Kawaoka Image file apparatus and method
JP2006507548A (ja) * 2001-12-28 2006-03-02 インテル コーポレイション 認証コード方法及び装置
JP2005535005A (ja) * 2002-03-29 2005-11-17 インテル コーポレイション 安全な環境を初期化する命令を実行するシステムおよび方法
JP2006221631A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置
US20060224878A1 (en) * 2005-03-31 2006-10-05 Intel Corporation System and method for trusted early boot flow
JP2009532783A (ja) * 2006-03-30 2009-09-10 シリコン イメージ,インコーポレイテッド 共用不揮発性メモリ・アーキテクチャ
US20090144754A1 (en) * 2007-12-03 2009-06-04 Zimmer Vincent J Bios routine avoidance

Also Published As

Publication number Publication date
US20130212673A1 (en) 2013-08-15
US20110161676A1 (en) 2011-06-30
DE102010054614A1 (de) 2011-07-07
CN102122327B (zh) 2016-05-25
CN102122327A (zh) 2011-07-13
JP5752767B2 (ja) 2015-07-22
TWI582632B (zh) 2017-05-11
US9202015B2 (en) 2015-12-01
US9208292B2 (en) 2015-12-08
JP5373753B2 (ja) 2013-12-18
TW201140367A (en) 2011-11-16
BRPI1005586A2 (pt) 2012-02-28
JP2011141870A (ja) 2011-07-21

Similar Documents

Publication Publication Date Title
JP5752767B2 (ja) 複数の認証済みコードモジュールを利用するプロセッサ、方法、及びシステム
JP6026462B2 (ja) ポイントツーポイント相互接続システム上のセキュアな環境初期化命令の実行
US11843705B2 (en) Dynamic certificate management as part of a distributed authentication system
EP3582129B1 (en) Technologies for secure hardware and software attestation for trusted i/o
RU2599340C2 (ru) Использование аутентифицированных манифестов для обеспечения внешней сертификации многопроцессорных платформ
EP3646223B1 (en) Remote attestation for multi-core processor
TWI528281B (zh) 平臺韌體防護方法、設備、系統以及相關的機器可讀媒體
US8799673B2 (en) Seamlessly encrypting memory regions to protect against hardware-based attacks
US10013041B2 (en) Directed wakeup into a secured system environment
US20180113715A1 (en) Providing a trustworthy indication of the current state of a multi-processor data processing apparatus
US20210243030A1 (en) Systems And Methods To Cryptographically Verify An Identity Of An Information Handling System
TW201220040A (en) Method to ensure platform silicon configuration integrity
US9202056B2 (en) Inter-processor attestation hardware
JP2018029267A (ja) プログラマブルロジック装置、情報処理装置、処理方法、及び処理プログラム
Muramoto et al. Improving Hardware Security on Talos II Architecture Through Boot Image Encryption
GB2412465A (en) Resetting a register on receipt of a locality confirming message

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131203

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141202

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: 20150421

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150520

R150 Certificate of patent or registration of utility model

Ref document number: 5752767

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees