JP2006221632A - プロセッサ内にセキュアな起動シーケンスを提供する方法および装置 - Google Patents

プロセッサ内にセキュアな起動シーケンスを提供する方法および装置 Download PDF

Info

Publication number
JP2006221632A
JP2006221632A JP2006024771A JP2006024771A JP2006221632A JP 2006221632 A JP2006221632 A JP 2006221632A JP 2006024771 A JP2006024771 A JP 2006024771A JP 2006024771 A JP2006024771 A JP 2006024771A JP 2006221632 A JP2006221632 A JP 2006221632A
Authority
JP
Japan
Prior art keywords
processor
activation code
encrypted
local memory
function
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
JP2006024771A
Other languages
English (en)
Other versions
JP4489030B2 (ja
Inventor
Akiyuki Hatakeyama
明之 畠山
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2006221632A publication Critical patent/JP2006221632A/ja
Application granted granted Critical
Publication of JP4489030B2 publication Critical patent/JP4489030B2/ja
Active 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/575Secure boot
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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/2105Dual mode as a secondary aspect
    • 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/2107File encryption
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】起動コードが改ざんされた可能性があるという事実により、起動後に施された任意のセキュリティ対策の効力が低減してしまう。
【解決手段】暗号化された起動コードを起動ROM114から読み出し、複数のプロセッサ102のうちの第1のプロセッサ102Aに関連付けられたローカルメモリ104A内に読み込むステップと、その第1のプロセッサ102Aの信頼性の高い復号化機能を用いてその暗号化された起動コードを復号化し、その起動コードが真正であることを確認するステップと、1以上の他のプロセッサ102が起動する前に、その第1のプロセッサ102A内に存在する、1以上の他のプロセッサ102の起動コードを認証するステップと、を含む方法および当該方法を用いる装置を提供する。
【選択図】 図3

Description

本発明は、プロセッサ内に、さらに好適にはマルチプロセッサシステム内に、セキュアな起動シーケンスを提供する方法および装置に関する。
最先端のコンピュータアプリケーションがますます複雑になり、処理システム(プロセッサシステム)に対する需要は絶えず増大しているため、近年、より速いコンピュータによる処理データスループットについて強い要望がある。そうした中、特にグラフィックスアプリケーションは、望ましい視覚結果を実現するために、比較的短い時間内で膨大な数のデータアクセス、データ計算、およびデータ操作を必要とし、処理システムに対する要求は最も高い。リアルタイムのマルチメディアアプリケーションもまた、処理システムに対する高い要求は高い。実際に、このようなアプリケーションは毎秒何千メガビットものデータ処理という非常に高速な処理を必要とする。
いくつかの処理システムは一つのプロセッサを用いて高速な処理速度を実現する一方、他の処理システムはマルチプロセッサアーキテクチャを用いて実装される。マルチプロセッサシステムにおいて、複数のサブプロセッサは並列に(少なくとも協調して)動作し、所望の処理結果を達成できる。マルチプロセッサシステム内でモジュラー構造を用いることも考えられる。なお、この構造において、計算モジュールには、(インターネットなどの)ブロードバンドネットワークを介してアクセスでき、その計算モジュールは多くのユーザ間で共有できる。このモジュラー構造についての詳細は、米国特許第6526491号に記載される。
なお、プロセッサシステムがネットワークを介して使用されるとき、あるいは共有資源の一部分であるときに問題が生じる。特に、プロセッサとそれに関連する(起動コードなどの)ソフトウエアは、意図的なハッキングやそれと同様のものなどの外部要因にさらされやすい。従来の起動シーケンスには、電源投入時のリセットと、(初期レジスタデータ、基本アドレス情報などの)コンフィグレーション(configuration;構成定義)データおよび起動コードのフラッシュROMからのインポートと、ハードウエアレジスタのコンフィグレーションと、プロセッサの起動とが含まれる。マルチプロセッサシステムにおいて、そのコンフィグレーションデータおよび起動コードは、初期起動を目的として、複数のプロセッサ間で共有される。あいにくフラッシュROM内の起動コードはセキュアではなく、起動前にハッカーが容易にそのコンフィグレーションデータおよび起動コードを改ざんできる。これは結果として、機密情報を処理するシステム内において、大きな被害をもたらしうる。起動コードが改ざんされた可能性があるという事実により、起動後に施された任意のセキュリティ対策の効力が低減してしまう。実際、セキュアな起動がなされなければ、以降の任意のセキュリティ対策は、十分に信頼性の高い(trusted;信頼のおける)ものにはなるとは限らない。ハッカーにより起動シーケンスが改ざんされた場合、以降のセキュリティ対策が無駄になる(usurped)場合もある。
本発明の目的は、さらなるセキュリティ対策を講ずることのできる信頼性の高い環境を保証するシングルプロセッサシステムおよびマルチプロセッサシステムの実現のため、セキュアな起動プロセスを与える新規の方法および装置を提供することにある。
本発明の様々な態様は、シングルプロセッサシステムおよびマルチプロセッサシステムに、セキュアな起動シーケンスを提供する方法および装置に関する。特に、プロセッサは、セキュアな(暗号化された)起動コードを(例えば、セキュアなフラッシュROMなどの)記録場所から読み出し、その起動コードをそのプロセッサに関連付けられたローカルメモリ内に保存できることが好ましい。そのとき、そのプロセッサは、その起動コードを復号化でき、起動を続行できる。さらに、セキュアな方法で起動されたそのプロセッサは、関連したプロセッサ群(例えば、マルチプロセッサシステム内のプロセッサ群)の起動コードを検証(チェック)/証明できる。セキュアに起動された後、プロセッサは、例えば、セキュアな動作モードに入るなどの他のセキュリティステップを実行してもよい。
例えば、本発明に係る実施の形態によれば、コンフィグレーションデータおよび起動コードは、特定のプロセッサに関連付けられたセキュアなメモリ内で暗号化されうる。その暗号化は、権限が与えられていないどのエンティティにも把握されない、(秘密鍵などの)信頼性の高い鍵を用いて行われるのが好ましい。また、信頼性の高い復号化コード(および復号鍵)も、そのプロセッサに関連付けられている、上述のデータおよびコードが保存されたセキュアなメモリと同一のまたは異なるセキュアなメモリ(例えば、フラッシュROM)内に保存されるのが好ましい。復号化機能は、ハードウエア(例えば、フラッシュROMや任意の他の適切なハードデバイス内に焼き付けたソフトウエア)で実装されるのが好ましい。いったん、信頼性の高い復号化コードが呼び出されれば、そのコードを用いてそのコンフィグレーションデータおよび起動コードを復号化し証明できる。いったん、そのコンフィグレーションデータおよび起動コードが復号化され証明されれば、そのプロセッサは起動される。
本発明の別の態様によれば、プロセッサはハードウエアで実装されたセキュリティ機能を有するのが好ましい。なお、そのセキュリティ機能は起動後に呼び出され、プロセッサをセキュアなモードに設定し、セキュアな処理環境を確立する。セキュアな処理環境の確立には、外部から開始された、そのプロセッサに対するデータアクセスリクエストに応答しない状態の呼び出しが含まれる。すなわち、セキュアなプロセッサは、データに対するどの外部のリクエスト(例えば、そのプロセッサのローカルメモリまたはレジスタ上のコンテンツを読み出すというリクエスト)にも応答しない。したがって、プロセッサがセキュアなモードに入る場合、さらなるセキュリティ対策を講ずることのできる信頼性の高い環境を形成する。
マルチプロセッサシステムにおいて、他のプロセッサのコンフィグレーションデータおよび起動コードもまた、改ざんの危険にさらされる。本発明に係る様々な実施の形態では、他のプロセッサが起動段階である間に、セキュアに起動されたプロセッサの信頼性の高い環境を用いてその他のプロセッサのコンフィグレーションデータおよび起動コードを検証できることが考慮されている。ある実施の形態では、その信頼性の高いプロセッサ内で復号化されたセキュアなコンフィグレーションデータおよび起動コードと、他のプロセッサの起動前に、その他のプロセッサによって読み込まれたコンフィグレーションデータおよび起動コードとが比較されうる。コンフィグレーションデータおよび起動コードが最初に証明されれば、他のプロセッサの起動は結果として信頼性の高いものになり得る。
他の実施の形態では、セキュアなメモリ(そのメモリに関連付けられたプロセッサに関する暗号化されたコンフィグレーションデータおよび起動コードを含む)は、他のプロセッサのコンフィグレーションデータおよび起動コードに対応付けられた、証明用(validity)データ(例えば、ハッシュ結果や完全なコピーなど)をも含んでもよい。その証明用データは、他のプロセッサの起動を許可する前の上述の比較ステップで用いられうる。
本発明に係る少なくとも1以上の態様によれば、暗号化された起動コードを記憶媒体から読み出して、その暗号化された起動コードをプロセッサに関連付けられたローカルメモリ内に保存するステップと、プロセッサの信頼のおける復号化機能を用いて暗号化された起動コードを復号化することにより、起動コードが真正であることを確認するステップと、ローカルメモリから取得した起動コードを用いて、プロセッサを起動するステップと、を含む方法および装置を提供できる。これに関連して、信頼のおける復号化機能および暗号化された起動コードはともに、外部のソフトウエアの使用による改ざんが不可能であることが好ましい。
起動コードが真正であることを確認するステップは、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することが好ましい。予め定められたハッシュ値は、暗号化された形式で保存されてもよい。
その方法および装置はまた、暗号化された起動コードを記憶媒体から読み出し、複数のプロセッサのうちの第1のプロセッサに関連付けられたローカルメモリ内に保存するステップと、第1のプロセッサの信頼のおける復号化機能を用いて暗号化された起動コードを復号化することにより、起動コードが真正であることを確認するステップと、ローカルメモリから取得した起動コードを用いて、第1のプロセッサを起動するステップと、1以上の他のプロセッサの起動に先立って、第1のプロセッサ内に存在する、1以上の他のプロセッサの起動コードを認証するステップとを提供できる。
本発明の上記以外の態様、特徴、および利点などは、添付図面とともに以下の詳細な説明により当業者には明確に理解される。
本発明の様々な実施の形態を示すために、現在のところ好適である図面を例示として添付するが、本発明は図面と同一の構成および手段に限定するものではない。
図において同一の符号は同一の要素を示すものとする。図1は、実施の形態に係る1以上の態様の実施に適したプロセッサシステム100を示す。簡潔および明確にするために、図1の構成図を参照し装置100を用いて説明するが、同一の主旨を有する様々な態様の方法にその説明を簡単に適用できるのは言うまでもない。その装置100は、プロセッサ102と、ローカルメモリ104と、(DRAMなどの)システムメモリ106と、バス108とを備えるのが好ましい。
そのプロセッサ102は、システムメモリ106からのデータの要求を可能にし、そのデータを操作することで所望の結果への達成を可能にする任意の既知の技術を用いて実装されてもよい。例えば、プロセッサ102はソフトウエアおよび/またはファームウエアを実行可能な、標準マイクロプロセッサや分散型のマイクロプロセッサなどの任意の既知のマイクロプロセッサを用いることで実装されてもよい。例として、プロセッサ102は、ピクセルデータなどのデータを要求し操作できるグラフィックプロセッサであってもよい。なお、そのピクセルデータには、グレースケール情報や、カラー情報や、テクスチャデータや、ポリゴン情報や、ビデオフレーム情報などが含まれる。
ここで、ローカルメモリ104は、プロセッサ102と同一チップ上に設けられるのが好ましい。なお、ローカルメモリ104は、ハードウェアキャッシュメモリではないことが好ましく、ローカルメモリ104には、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に設けられたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無いことが好ましい。他の実施の形態では、ローカルメモリ104はキャッシュメモリおよび/または付加的なキャッシュメモリであってもよい。チップ上の実装面積はしばしば限られているので、ローカルメモリ104のサイズは、共有メモリ106のサイズより遥かに小さい。プロセッサ102は、プログラムの実行とデータの操作のために、バス108を介してシステムメモリ106からローカルメモリ104にデータ(プログラムデータを含みうる)をコピーするためのデータアクセスリクエストを提供することが好ましい。データアクセスを容易にするメカニズムとして、例えばダイレクト・メモリ・アクセス(DMA)技術など、任意の既知の技術を用いてもよい。
ここで、本明細書で用いられる「データ」は、任意の種類のプログラムコード、アプリケーションプログラム、システムレベルのソフトウエア、任意の種類のデータ、データストリームなどを含むものと広く解釈される。
装置100は、例えば、バス108を介してそのプロセッサ102に動作可能に接続されるセキュアな起動ROM110などの記憶媒体をも含むのが好ましい。その装置100は、プロセッサ102に動作可能に接続され、さらにセキュアな復号鍵を用いて情報を復号化する復号化ユニット112をも含むのが好ましい。プロセッサ102と、ローカルメモリ104と、復号化ユニット112とは一つの共通の集積回路として一体化される。したがって、本明細書では、これらの要素の組み合わせを「プロセッサ102」と呼んでもよい。他の実施の形態では、記憶媒体110もまた、その一以上の他の要素とともに、一つの共通の集積回路として一体化されてもよい。
その復号化ユニットは、ハードウエアで実装されたデバイス、例えば、プログラムの書き換えが可能なデバイス(例えば、復号化プロセスを定義するアルゴリズムを用いたプログラムが書き込まれたフラッシュROM)である。プログラムの書き換えが可能な回路を用いて復号化ユニット112を実装することに際して、外部のソフトウエアの使用(操作)による復号化機能の改ざんが不可能であるレベルのセキュリティを実現するのが好ましい。
記憶媒体110は、プロセッサの初期化および/または起動に有用な、暗号化された起動コードおよび/または他のデータを含む、プログラムの書き換えが不可能なROMなどのセキュアなデバイスであるのが好ましい。例えば、そのような付加的な情報(他のデータ)には、コンフィグレーションデータ(例えば、ハードウエアレジスタを初期化するために用いられるデータ)、基本アドレスデータ(例えば、システムメモリ106および/またはローカルメモリ104への伝送先を設定するために用いられる情報)などが含まれる。その記憶媒体(起動ROM)110は、その暗号化された起動コードおよび/または他の情報が権限のないエンティティによりアクセスすることができない程度のセキュリティを実現するのが好ましい。例えば、その暗号化された起動コードは、装置100が製造過程にある間に確立されるのが好ましい。なお、起動コードは、その過程において、秘密鍵を用いて暗号化される。
ここで、図1および図2の両方を参照するが、装置100は一般的に、プロセッサ102をセキュアな方法で起動できるのが好ましい。なお、そのセキュアな方法が実施されている間は、権限が与えられていないエンティティは、起動プロセスを改ざんすることはできない。したがって、結果として生じる初期化されたプロセッサとそれに関連した構成要素は信頼性の高いものになり、さらなるセキュリティ対策を講じることができる。図2は、本発明の1以上の実施の形態に係る装置100により実行されうる処理ステップを示す。
動作200では、プロセッサ102は、電源投入時のリセットを取得し、起動シーケンスを開始する。動作202では、そのプロセッサ102は、起動ROM110から暗号化された起動コードを読み出し、ローカルメモリ104内に保存するのが好ましい。復号化ユニット112は、ローカルメモリ104内で、その暗号化された起動コードを復号化できるのが好ましい(動作204)。その復号化処理により起動コードが証明(認証)されてもよいし(動作206)、付加的な処理がそのような証明の実現のために実施されてもよい。例えば、プロセッサ102および/または復号化ユニット112は、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、起動コードが真正であることを確認(証明)できる。その所与のハッシュ値が信頼性の高いものであると仮定すれば、そのような比較を行うことにより、そのハッシュ値に一致しているハッシュ結果に対応する起動コードは真正であることを保証できる。例えば、所与のハッシュ値は、記憶媒体110内、あるいは、好適にはセキュアな、ある他の記憶媒体内に、暗号化された形式で保存されうる。いったん、起動コードが証明されれば、そのプロセッサ102は起動し、その初期化プロセスを完了するのが好ましい。
動作208では、プロセッサ102は、起動プロセスが完了したときに、自動的にセキュアな動作モードに入るのが好ましい。例えば、そのセキュアな動作モードは、そのセキュアなモードの呼出(実行)を妨げる、外部にあって権限が与えられていない動作を不可能にする程度に、ハードウエアにより実装されるのが好ましい。このセキュアな動作モードでは、プロセッサ102のローカルメモリ104内(あるいは、任意の他の記録デバイス内、レジスタ内など)に保存されたデータに対する要求はいずれも受け付けられない。従って、機密性の高いオペレーションを実行するための信頼性の高い環境を保証できる。セキュアなモードであるにもかかわらず、プロセッサ102は、システムメモリ106からローカルメモリ104へのデータ転送を要求できる。あるいは、ローカルメモリ104からシステムメモリ106へのデータ転送を要求できる。
このセキュアな動作モードの意義を、図3および図4を用いてさらに詳細に説明する。図3は、2以上のサブプロセッサ102を有するマルチプロセッサシステム100Aの構成を示す。図1および図2を用いて上述した概念をそのマルチプロセッサシステム100Aに適用できる。そのシステム100Aには、バス108を介して接続された、複数のプロセッサ102A〜102Dと、それらプロセッサに関連付けられたローカルメモリ104A〜104Dと、メインメモリ106とが含まれる。4つのプロセッサ102を例として示すが、本発明の主旨および範囲を逸脱しない限り、いかなる数のプロセッサを用いてもよい。プロセッサ102は任意の既知の技術を用いて実装されてもよく、さらに各プロセッサの構成は同一であってもよいし、異なってもよい。
1以上のプロセッサ102は、図1のプロセッサ102の能力と構成要素を備えるのが好ましい。本発明の主旨および範囲を逸脱しない限り、他のプロセッサ102は、そのような能力を備える必要はない。装置100Aにはまた、必ずしもセキュアな記憶媒体ではなく、さらに必ずしも暗号化された起動コードおよびコンフィグレーションデータを有するとは限らない起動ROM114が含まれる。すなわち、好適な実施例ではむしろ、起動コードおよびコンフィグレーションデータは、従来の技術に従って存在すると考慮される。
プロセッサ102のそれぞれの構成は同一であってもよいし、異なってもよい。そのプロセッサ102は、共有メモリ(またはシステムメモリ)106からのデータの要求を可能にし、そのデータを操作することで所望の結果への達成を可能にする任意の既知の技術を用いて実装されてもよい。例えば、プロセッサ102はソフトウエアおよび/またはファームウエアを実行可能な、標準マイクロプロセッサや分散型のマイクロプロセッサなどの任意の既知のマイクロプロセッサを用いることで実装されてもよい。例として、1以上のプロセッサ102は、ピクセルデータなどのデータを要求し操作できるグラフィックプロセッサであってもよい。なお、そのピクセルデータには、グレースケール情報や、カラー情報や、テクスチャデータや、ポリゴン情報や、ビデオフレーム情報などが含まれる。
システム100の一つ以上のプロセッサ102は、メイン(または管理)プロセッサとして機能する。そのメインプロセッサは他のプロセッサによるデータの処理のスケジューリングと調整を行うことができる。
システムメモリ106は、メモリインタフェース回路(図示せず)を通じてプロセッサ102に接続されるダイナミックランダムアクセスメモリ(DRAM)であるのが好ましい。そのシステムメモリ106は、好適にはダイナミックランダムアクセスメモリだが、スタティックランダムアクセスメモリ(SRAM)、磁気ランダムアクセスメモリ(MRAM)、光学メモリ、またはホログラフィックメモリ等の他の手段を用いて実装してもよい。
それぞれのプロセッサ102は好適には、プロセッサコアと、当該コアに関連付けられた、プログラムを実行するためのローカルメモリ104とを含む。これらの構成要素は共通の半導体基板上に一体的に設けられてもよいし、あるいは、設計者の意図により分離されて設けられてもよい。プロセッサコアは好適には、パイプライン処理を用いて実装される。なお、パイプライン処理においては、パイプライン型の方法で論理命令が処理される。そのパイプラインは命令が処理される任意の数のステージに分割されるが、一般的には、一つ以上の命令をフェッチするステージ、その命令をデコードするステージ、命令間の依存性をチェックするステージ、その命令を出力するステージ、その命令を実行するステージを有する。この点に関連して、そのプロセッサコアには、命令バッファ、命令デコード回路、依存性チェック回路、命令出力回路、および実行段階が含まれる。
ローカルメモリ104はバスを介して、そのローカルメモリ104に関連付けられたプロセッサコア102にそれぞれ接続され、プロセッサコアと同一チップ(同一の半導体基板)上に設けられるのが好ましい。ローカルメモリ104は、従来のハードウェアキャッシュメモリではないことが好ましく、ローカルメモリ104には、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に設けられたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無いことが好ましい。チップ上の実装面積はしばしば限られているので、ローカルメモリ104のサイズは、共有メモリ106のサイズより遥かに小さい。
プロセッサ102は、プログラムの実行とデータの操作のために、バスシステム108を介してシステムメモリ106からそれぞれのローカルメモリ104にデータ(プログラムデータを含みうる)をコピーするためのデータアクセスリクエストを提供することが好ましい。データアクセスを容易にするメカニズムとして、例えばダイレクト・メモリ・アクセス(DMA)技術など、任意の既知の技術を用いてもよい。その機能はメモリインタフェース回路により実行されるのが好ましい。
図4は、図3の装置100Aにより実行されうる1以上のさらなる処理ステップを示す。なお、動作210は、図2の動作208に続く処理とされる。一般的に、セキュアな方法で起動されたプロセッサは、1以上の他のプロセッサが起動する前に、その1以上の他のプロセッサ102の起動コードを認証できるのが好ましい。動作210では、セキュアに起動されたプロセッサが起動プロセスへの進行を可能にすることを示す信号を出力するまで、他のプロセッサ群(例えば、図1および図2を用いて上述したセキュアな方法による起動を実行しなかったプロセッサ102)は、自身の起動プロセスに進めない。バックグラウンドでは、従来の技術に係る初期の電源投入時のリセット(図2の動作200)の間に、起動コードおよび他のコンフィグレーションデータが起動ROM114から読み出される。さらに、そのコードおよびデータは、それぞれのプロセッサ102のハードウエアレジスタ(図示せず)内に、あるいは、他の例としてすべてのそのようなプロセッサ群102によりアクセス可能な共通のハードウエアレジスタ内に保存される。なお、プロセッサ群102は、動作210に関して上述した起動プロセスに進行することは許可されていない。
動作212では、セキュアに起動されたプロセッサ102は、起動コードおよび/またはコンフィグレーションデータをハードウエアの保存場所から読み出し、そのコードおよび/またはデータを自身のローカルメモリ104内に保存する。動作214では、そのプロセッサ102は、起動コードおよび/またはコンフィグレーションデータが改ざんされていないことを証明する。例えば、そのプロセッサは、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、起動コードが真正であることを確認(証明)できる。所与のハッシュ値が信頼性の高いものであると想定すれば、起動コードおよび/またはコンフィグレーションデータの認証は、その所与のハッシュ値とハッシュ結果との比較結果に左右されうる。その所与のハッシュ値は、好適には暗号化された形式で、セキュアな記憶媒体内に保存されるのが好ましい。
動作216では、起動情報(例えば、起動コードおよび/またはコンフィグレーションデータの一部分またはすべて)が変更されているか否か(例えば、権限のないエンティティにより改ざんされているか否か)についての決定がなされる。もし、その決定の結果が肯定的なものである(起動情報が変更されている)場合、処理の流れは、適切な動作が行われる失敗状態に進むのが好ましい。その適切な動作の例として、他のプロセッサ群により実施される、他の方法での起動を実現しようとするプロセスの起動および/または再開始を阻止することが挙げられる。もし、動作216での決定の結果が否定的なものである(起動情報が変更されていない)場合、処理の流れは動作218に進むのが好ましい。動作218では、それら他のプロセッサ102は起動シーケンスを続行し、さらにそれらプロセッサの初期化プロセスを完了することが可能になる。
本発明に係る少なくとも一つの別の態様によれば、上述した方法および装置は、例えば、図に示す適切なハードウエアを用いて実現できる。そのようなハードウエアは任意の既知の技術を用いて実装できる。なお、その既知の技術として、例えば、標準のデジタル回路、ソフトウエアおよび/またはファームウエアプログラムを実行できる任意の既知のプロセッサ、プログラム可能な読み出し専用メモリ群(PROM群)、プログラム可能なアレイ論理デバイス群(PAL群)などの一以上のプログラム可能なデジタルデバイスまたはシステムが挙げられる。さらに図内の装置は、ある機能ブロックに分割されて示されているが、そのようなブロックは別々の回路で実装でき、および/または、一以上の機能ユニットに結合させることができる。さらに、本発明に係る様々な態様は、適切な記憶メディアや(フレキシブルディスク、メモリチップなどの)持ち運び可能な、および/または配布のためのメディア上に保存可能なソフトウエアおよび/またはファームウエアプログラムにより実装される。
上述したように、本発明の様々な実施の形態によれば、コンフィグレーションデータおよび/または起動コードの暗号化を提供し、さらにあるプロセッサに関連付けられたセキュアなメモリ内に、そのコンフィグレーションデータおよび/または起動コードを保存できる。信頼性の高い復号化コードもまた、そのプロセッサにも関連付けられた、上述のデータおよび/またはコードが保存されたセキュアなメモリと同一のまたは異なるセキュアなメモリ内に保存されうる。いったん信頼性の高い復号化コードが呼び出されれば、そのコードを用いてコンフィグレーションデータおよび起動コードを復号化し証明できる程度に、復号化機能はハードウエアを用いて実装されるのが好ましい。いったん、そのコンフィグレーションデータおよび起動コードが復号化され証明されれば、そのプロセッサは起動される。
本実施の形態に係る様々な方法および装置によれば、起動コードの改ざんを抑制でき、さらに、起動後に実施された任意のセキュリティ対策の効果を増大できる。これにより、より高い信頼性を備えるコンピュータ環境を実現でき、機密情報のセキュリティを向上できる。
ここでは本発明の具体例について説明したが、これらの実施例は単に本発明の趣旨と応用を示すものである。したがって、請求項により定義された本発明の主旨および範囲から逸脱しないかぎり、上述した実施形態に対して様々な変更を加えることができる。
実施の形態の一つ以上の態様に係るプロセッサシステムの構成を示す図である。 実施の形態の一つ以上の態様に係る図1のプロセッサシステムにより実行されうる処理ステップの流れを示す図である。 2以上のサブプロセッサを有するマルチプロセッサシステムであって、それらサブプロセッサのうちの1以上のサブプロセッサが、実施の形態の1つ以上の別の態様に係る図1のプロセッサの能力を備えうるマルチプロセッサシステムの構成を示す図である。 実施の形態の一つ以上の別の態様に係る図3のプロセッサシステムにより実行されうる処理ステップの流れを示す図である。
符号の説明
100 プロセッサシステム、 100A マルチプロセッサシステム、 102,102A,102B,102C,102D プロセッサ、 104,104A,104B,104C,104D ローカルメモリ、 106 メインメモリ,システムメモリ、 110,114 記憶媒体、 112 復号化ユニット。

Claims (36)

  1. ローカルメモリが関連付けられた少なくとも一つのプロセッサであって、メインメモリに動作可能に接続されるとともに、前記ローカルメモリ内での使用を目的として前記メインメモリから少なくともあるデータを読み出すことを要求可能な少なくとも一つのプロセッサと、
    前記プロセッサに動作可能に接続されるとともに、セキュアな復号鍵を用いて情報を復号化可能な復号化ユニットと、
    暗号化された起動コードを含むとともに、権限が与えられていないエンティティによる前記暗号化された起動コードに対するアクセスを制限可能な記憶媒体と、
    を含み、
    前記プロセッサは、前記暗号化された起動コードを前記記憶媒体から読み出すとともにその暗号化された起動コードを前記ローカルメモリ内に保存する機能を有し、前記復号化ユニットは前記暗号化された起動コードを復号化することにより前記起動コードが真正であることを確認する機能を有し、前記プロセッサは前記ローカルメモリから取得した前記起動コードを用いて起動する機能を有することを特徴とする装置。
  2. 前記プロセッサ、前記ローカルメモリおよび前記復号化ユニットが一つの共通の集積回路として一体化されるか、あるいは、前記プロセッサ、前記ローカルメモリ、前記復号化ユニットおよび前記記憶媒体が一つの共通の集積回路として一体化されるかのうちいずれかであることを特徴とする請求項1に記載の装置。
  3. 前記復号化ユニットは、外部のソフトウエアの使用による改ざんを不可能とするように構成されたプログラムの書き換えが可能な回路チップを用いることにより、ハードウエアで実装されることを特徴とする請求項2に記載の装置。
  4. 前記記憶媒体は、外部のソフトウエアの使用による前記暗号化された起動コードの改ざんを防止する機能を有することを特徴とする請求項1から3のいずれかに記載の装置。
  5. 前記プロセッサはさらに、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記起動コードが真正であることを確認する機能を有することを特徴とする請求項1から4のいずれかに記載の装置。
  6. 前記予め定められたハッシュ値は、前記記憶媒体内で暗号化された形式で保存されることを特徴とする請求項5に記載の装置。
  7. 前記プロセッサはさらに、起動後にセキュアな動作モードに自動的に入る機能を有することを特徴とする請求項1から6のいずれかに記載の装置。
  8. それぞれがローカルメモリに関連付けられ、共通のメインメモリに動作可能に接続され、さらにそれそれが自身に関連付けられたローカルメモリ内での使用を目的として前記メインメモリから少なくともあるデータを読み出すことを要求可能な複数のプロセッサであって、前記複数のプロセッサのうち少なくとも一つは、セキュアな復号鍵を用いて情報を復号化可能な復号化ユニットを含む複数のプロセッサと、
    暗号化された起動コードを含むとともに、権限が与えられていないエンティティによる前記暗号化された起動コードに対するアクセスを制限可能な記憶媒体と、
    を含み、
    前記少なくとも一つのプロセッサは、前記暗号化された起動コードを前記記憶媒体から読み出すとともにその暗号化された起動コードを自身に関連付けられたローカルメモリ内に保存する機能を有し、前記復号化ユニットは前記暗号化された起動コードを復号化することにより前記起動コードが真正であることを確認する機能を有し、前記少なくとも一つのプロセッサは、前記ローカルメモリから取得した前記起動コードを用いて起動する機能と、1以上の他のプロセッサの起動に先立って、前記1以上の他のプロセッサの起動コードを認証する機能とを有することを特徴とする装置。
  9. 前記1以上の他のプロセッサは、前記1以上の他のプロセッサの起動コードが真正であることを示す信号が前記少なくとも一つのプロセッサから提供されるまで、起動を停止する機能を有することを特徴とする請求項8に記載の装置。
  10. 前記少なくとも一つのプロセッサは、
    前記1以上の他のプロセッサの起動コードを読み出すとともにその起動コードを自身に関連付けられたローカルメモリ内に保存する機能と、
    前記1以上の他のプロセッサの起動コードが改ざんされていないことを証明することにより、そのような起動コードの認証を可能にする機能と、
    を有することを特徴とする請求項8または9に記載の装置。
  11. 前記少なくとも一つのプロセッサは、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記1以上の他のプロセッサの起動コードが真正であることを確認する機能を有することを特徴とする請求項10に記載の装置。
  12. 前記予め定められたハッシュ値は、前記記憶媒体内で暗号化された形式で保存されることを特徴とする請求項11に記載の装置。
  13. 前記少なくとも一つのプロセッサ、前記プロセッサの前記ローカルメモリおよび前記復号化ユニットが一つの共通の集積回路として一体化されるか、あるいは、前記少なくとも一つのプロセッサ、前記プロセッサの前記ローカルメモリ、前記復号化ユニットおよび前記記憶媒体が共通の集積回路として一体化されるかのいずれかであることを特徴とする請求項8から12のいずれかに記載の装置。
  14. 前記復号化ユニットは、外部のソフトウエアの使用による改ざんを不可能とするように構成されたプログラムの書き換えが可能な回路チップを用いることにより、ハードウエアで実装されることを特徴とする請求項13に記載の装置。
  15. 前記記憶媒体は、外部のソフトウエアの使用による前記暗号化された起動コードの改ざんを防止する機能を有することを特徴とする請求項8から14のいずれかに記載の装置。
  16. 前記少なくとも一つのプロセッサはさらに、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記起動コードが真正であることを確認する機能を有することを特徴とする請求項8に記載の装置。
  17. 前記予め定められたハッシュ値は、前記記憶媒体内で暗号化された形式で保存されることを特徴とする請求項16に記載の装置。
  18. 前記少なくとも一つのプロセッサはさらに、起動後にセキュアな動作モードに自動的に入ることを特徴とする請求項8から17のいずれかに記載の装置。
  19. 暗号化された起動コードを記憶媒体から読み出して、その暗号化された起動コードをプロセッサに関連付けられたローカルメモリ内に保存するステップと、
    前記プロセッサの信頼のおける復号化機能を用いて前記暗号化された起動コードを復号化することにより、前記起動コードが真正であることを確認するステップと、
    前記ローカルメモリから取得した前記起動コードを用いて、前記プロセッサを起動するステップと、
    を含むことを特徴とする処理方法。
  20. 前記信頼のおける復号化機能および前記暗号化された起動コードはともに、外部のソフトウエアの使用による改ざんが不可能であることを特徴とする請求項19に記載の処理方法。
  21. 前記起動コードが真正であることを確認するステップは、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することを特徴とする請求項19または20に記載の処理方法。
  22. 前記予め定められたハッシュ値は、暗号化された形式で保存されることを特徴とする請求項21に記載の処理方法。
  23. 起動後にセキュアな動作モードに自動的に入るステップをさらに含むことを特徴とする請求項19から22のいずれかに記載の処理方法。
  24. 暗号化された起動コードを記憶媒体から読み出し、複数のプロセッサのうちの第1のプロセッサに関連付けられたローカルメモリ内に保存するステップと、
    前記第1のプロセッサの信頼のおける復号化機能を用いて前記暗号化された起動コードを復号化することにより、前記起動コードが真正であることを確認するステップと、
    前記ローカルメモリから取得した前記起動コードを用いて、前記第1のプロセッサを起動するステップと、
    1以上の他のプロセッサの起動に先立って、前記第1のプロセッサ内に存在する、前記1以上の他のプロセッサの起動コードを認証するステップと、
    を含むことを特徴とする処理方法。
  25. 前記起動コードが真正であることを示す信号が前記第1のプロセッサから提供されるまで、前記1以上の他のプロセッサの起動を停止するステップをさらに含むことを特徴とする請求項24に記載の処理方法。
  26. 前記1以上の他のプロセッサの起動コードを前記第1のプロセッサのローカルメモリ内に保存し、さらにその起動コードが改ざんされていないことを証明することによりそのような起動コードを認証するステップをさらに含むことを特徴とする請求項24または25に記載の処理方法。
  27. 前記1以上の他のプロセッサの起動コードが真正であることを認証するステップは、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することを特徴とする請求項26に記載の処理方法。
  28. 前記予め定められたハッシュ値は、暗号化された形式で保存されることを特徴とする請求項27に記載の処理方法。
  29. 前記信頼のおける復号化機能および前記暗号化された起動コードはともに、外部のソフトウエアの使用による改ざんが不可能であることを特徴とする請求項24に記載の処理方法。
  30. ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記第1のプロセッサの起動コードが真正であることを確認するステップをさらに含むことを特徴とする請求項24に記載の処理方法。
  31. 前記予め定められたハッシュ値は、暗号化された形式で保存されることを特徴とする請求項30に記載の処理方法。
  32. 前記第1のプロセッサは、起動後にセキュアな動作モードに自動的に入ることを特徴とする請求項24から31のいずれかに記載の処理方法。
  33. プロセッサによる動作の実行を可能にするソフトウエアプログラムを含む記録媒体であって、
    前記動作は、
    暗号化された起動コードを記憶媒体から読み出して、その暗号化された起動コードを前記プロセッサに関連付けられたローカルメモリ内に保存するステップと、
    前記プロセッサの信頼のおける復号化機能を用いて、前記暗号化された起動コードを復号化することにより、前記起動コードが真正であることを確認するステップと、
    前記ローカルメモリから取得した前記起動コードを用いて、前記プロセッサを起動するステップと、
    を含むことを特徴とする記録媒体。
  34. プロセッサによる動作の実行を可能にするソフトウエアプログラムを含む記録媒体であって、
    前記動作は、
    暗号化された起動コードを記憶媒体から読み出し、複数のプロセッサのうちの第1のプロセッサに関連付けられたローカルメモリ内に保存するステップと、
    前記第1のプロセッサの信頼のおける復号化機能を用いて、前記暗号化された起動コードを復号化することにより、前記起動コードが真正であることを確認するステップと、
    前記ローカルメモリから取得した前記起動コードを用いて、前記第1のプロセッサを起動するステップと、
    1以上の他のプロセッサの起動に先立って、前記第1のプロセッサ内に存在する、前記1以上の他のプロセッサの起動コードを認証するステップと、
    を含むことを特徴とする記録媒体。
  35. プロセッサによる動作の実行を可能にするソフトウエアプログラムであって、
    前記動作は、
    暗号化された起動コードを記憶媒体から読み出して、その暗号化された起動コードを前記プロセッサに関連付けられたローカルメモリ内に保存するステップと、
    前記プロセッサの信頼のおける復号化機能を用いて、前記暗号化された起動コードを復号化することにより、前記起動コードが真正であることを確認するステップと、
    前記ローカルメモリから取得した前記起動コードを用いて、前記プロセッサを起動するステップと、
    を含むことを特徴とするソフトウエアプログラム。
  36. プロセッサによる動作の実行を可能にするソフトウエアプログラムであって、
    前記動作は、
    暗号化された起動コードを記憶媒体から読み出し、複数のプロセッサのうちの第1のプロセッサに関連付けられたローカルメモリ内に保存するステップと、
    前記第1のプロセッサの信頼のおける復号化機能を用いて、前記暗号化された起動コードを復号化することにより、前記起動コードが真正であることを確認するステップと、
    前記ローカルメモリから取得した前記起動コードを用いて、前記第1のプロセッサを起動するステップと、
    1以上の他のプロセッサの起動に先立って、前記第1のプロセッサ内に存在する、前記1以上の他のプロセッサの起動コードを認証するステップと、
    を含むことを特徴とするソフトウエアプログラム。
JP2006024771A 2005-02-07 2006-02-01 プロセッサ内にセキュアな起動シーケンスを提供する方法および装置 Active JP4489030B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US65050605P 2005-02-07 2005-02-07

Publications (2)

Publication Number Publication Date
JP2006221632A true JP2006221632A (ja) 2006-08-24
JP4489030B2 JP4489030B2 (ja) 2010-06-23

Family

ID=36579287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006024771A Active JP4489030B2 (ja) 2005-02-07 2006-02-01 プロセッサ内にセキュアな起動シーケンスを提供する方法および装置

Country Status (3)

Country Link
US (1) US7831839B2 (ja)
JP (1) JP4489030B2 (ja)
WO (1) WO2006082985A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009540405A (ja) * 2006-06-09 2009-11-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のプロセッサにまたがるセキュア・ブートのシステム、方法およびプログラム
KR101502032B1 (ko) * 2008-03-06 2015-03-12 삼성전자주식회사 보안 기능을 갖는 프로세서 장치

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
WO2005089239A2 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method of providing a self-optimizing reservation in space of compute resources
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US20060026417A1 (en) * 2004-07-30 2006-02-02 Information Assurance Systems L.L.C. High-assurance secure boot content protection
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
CA2827035A1 (en) 2004-11-08 2006-05-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US9413687B2 (en) 2005-03-16 2016-08-09 Adaptive Computing Enterprises, Inc. Automatic workload transfer to an on-demand center
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
ES2614751T3 (es) 2005-04-07 2017-06-01 Iii Holdings 12, Llc Acceso bajo demanda a recursos informáticos
US7496692B2 (en) * 2005-10-18 2009-02-24 International Business Machines Corporation Validating chip configuration data
KR100625811B1 (ko) * 2005-12-09 2006-09-18 엠텍비젼 주식회사 코드 데이터 에러 정정 방법 및 장치
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
JP4795812B2 (ja) * 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
US20070288738A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for selecting a random processor to boot on a multiprocessor system
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US7594104B2 (en) * 2006-06-09 2009-09-22 International Business Machines Corporation System and method for masking a hardware boot sequence
US7424398B2 (en) * 2006-06-22 2008-09-09 Lexmark International, Inc. Boot validation system and method
US20080046891A1 (en) * 2006-07-12 2008-02-21 Jayesh Sanchorawala Cooperative asymmetric multiprocessing for embedded systems
US8510859B2 (en) 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
US8190869B2 (en) * 2007-04-17 2012-05-29 Lexmark International, Inc. Dual boot strategy to authenticate firmware in a computing device
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8683213B2 (en) 2007-10-26 2014-03-25 Qualcomm Incorporated Progressive boot for a wireless device
US9069990B2 (en) 2007-11-28 2015-06-30 Nvidia Corporation Secure information storage system and method
US8661234B2 (en) * 2008-01-31 2014-02-25 Microsoft Corporation Individualized per device initialization of computing devices in avoidance of mass exploitation of vulnerabilities
US9613215B2 (en) * 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
WO2010113282A1 (ja) * 2009-03-31 2010-10-07 富士通株式会社 構成変更の検証機能を有した情報処理装置及びその制御方法
US8245024B2 (en) 2009-08-21 2012-08-14 Micron Technology, Inc. Booting in systems having devices coupled in a chained configuration
US9465771B2 (en) 2009-09-24 2016-10-11 Iii Holdings 2, Llc Server on a chip and node cards comprising one or more of same
US9077654B2 (en) * 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US20110103391A1 (en) 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US20130107444A1 (en) 2011-10-28 2013-05-02 Calxeda, Inc. System and method for flexible storage and networking provisioning in large scalable processor installations
US9876735B2 (en) 2009-10-30 2018-01-23 Iii Holdings 2, Llc Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect
US9054990B2 (en) 2009-10-30 2015-06-09 Iii Holdings 2, Llc System and method for data center security enhancements leveraging server SOCs or server fabrics
US8599863B2 (en) 2009-10-30 2013-12-03 Calxeda, Inc. System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
US9680770B2 (en) 2009-10-30 2017-06-13 Iii Holdings 2, Llc System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
US9648102B1 (en) 2012-12-27 2017-05-09 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9311269B2 (en) 2009-10-30 2016-04-12 Iii Holdings 2, Llc Network proxy for high-performance, low-power data center interconnect fabric
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
WO2012051577A1 (en) 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system
US20120179899A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Upgradeable processor enabling hardware licensing
US8850177B2 (en) * 2011-07-08 2014-09-30 Openpeak Inc. System and method for validating components during a booting process
WO2013012436A1 (en) * 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Reset vectors for boot instructions
US9092594B2 (en) 2011-10-31 2015-07-28 Iii Holdings 2, Llc Node card management in a modular and large scalable server system
US20130239214A1 (en) * 2012-03-06 2013-09-12 Trusteer Ltd. Method for detecting and removing malware
US8839004B1 (en) * 2012-04-16 2014-09-16 Ionu Security, Inc. Secure cloud computing infrastructure
US9367328B2 (en) * 2012-06-28 2016-06-14 Intel Corporation Out-of-band host OS boot sequence verification
CN103679059A (zh) * 2012-08-29 2014-03-26 珠海扬智电子科技有限公司 安全开机方法及电脑系统
CN104871167A (zh) * 2012-10-25 2015-08-26 英特尔公司 固件中的防盗
KR102068485B1 (ko) 2012-11-30 2020-01-21 삼성전자주식회사 불 휘발성 메모리 모듈 및 그것의 동작 방법
US9881161B2 (en) 2012-12-06 2018-01-30 S-Printing Solution Co., Ltd. System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US9070251B2 (en) * 2013-03-08 2015-06-30 Igt Multi-tiered static chain of trust
US9600291B1 (en) * 2013-03-14 2017-03-21 Altera Corporation Secure boot using a field programmable gate array (FPGA)
US10733288B2 (en) * 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US9830456B2 (en) * 2013-10-21 2017-11-28 Cisco Technology, Inc. Trust transference from a trusted processor to an untrusted processor
US10055588B2 (en) * 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US9547767B2 (en) * 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9129113B2 (en) 2013-11-13 2015-09-08 Via Technologies, Inc. Partition-based apparatus and method for securing bios in a trusted computing system during execution
US9507942B2 (en) 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
TWI560611B (en) * 2013-11-13 2016-12-01 Via Tech Inc Apparatus and method for securing bios
TWI595361B (zh) * 2013-12-13 2017-08-11 祥碩科技股份有限公司 電子裝置與其載入程式碼之方法
DE102014101836A1 (de) * 2014-02-13 2015-08-13 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum Hochfahren eines Produktions-Computersystems
EP3138040B1 (en) * 2014-04-28 2020-12-09 Intel Corporation Securely booting a computing device
GB2540408B (en) * 2015-07-16 2021-09-15 Trw Ltd Electronic control units for vehicles
EP3316169B1 (en) 2016-10-31 2021-04-07 VIA Technologies, Inc. Jtag-based secure bios mechanism in a trusted computing system
EP3316168B1 (en) 2016-10-31 2021-04-07 VIA Technologies, Inc. Fuse-enabled secure bios mechanism in a trusted computing system
EP3316170B1 (en) 2016-10-31 2021-04-07 VIA Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
EP3316167B1 (en) 2016-10-31 2021-04-07 VIA Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US10230527B2 (en) * 2017-04-19 2019-03-12 Continental Automotive Systems, Inc. Method and apparatus to quickly authenticate program using a security element
US10402567B2 (en) 2017-06-25 2019-09-03 Microsoft Technology Licensing, Llc Secure boot for multi-core processor
US10708061B2 (en) 2017-06-25 2020-07-07 Microsoft Technology Licensing, Llc Secure key storage for multi-core processor
US10503892B2 (en) 2017-06-25 2019-12-10 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
US10585671B2 (en) 2017-07-17 2020-03-10 International Business Machines Corporation Resource-based boot sequence
WO2020047351A1 (en) * 2018-08-31 2020-03-05 Fungible, Inc. Rapidly establishing a chain of trust in a computing system
FR3094520B1 (fr) * 2019-03-25 2021-10-22 St Microelectronics Rousset Clé de chiffrement et/ou de déchiffrement
JP7286381B2 (ja) * 2019-04-01 2023-06-05 キヤノン株式会社 情報処理装置とその制御方法
US11768611B2 (en) 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip
CN111597560B (zh) * 2020-05-18 2023-05-09 国网电力科学研究院有限公司 一种安全可信模组启动方法及系统
TWI826048B (zh) * 2022-10-18 2023-12-11 信驊科技股份有限公司 資料安全性校驗方法及電子裝置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02311928A (ja) * 1989-05-26 1990-12-27 Nec Corp 暗号化ファームウェアシステム
JPH07248921A (ja) * 1994-03-09 1995-09-26 Hitachi Ltd 並列プロセッサシステムのイニシャルプログラムロード方法
JP2001338271A (ja) * 2000-03-23 2001-12-07 Matsushita Electric Ind Co Ltd Icカード及びicカード利用システム
JP2002366534A (ja) * 2001-03-22 2002-12-20 Sony Computer Entertainment Inc コンピュータ・プロセッサ及び処理装置
JP2003256061A (ja) * 2002-03-04 2003-09-10 Matsushita Electric Ind Co Ltd 組込み機器
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
JP2004038394A (ja) * 2002-07-01 2004-02-05 Toshiba Corp 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
US20040083375A1 (en) * 2002-04-18 2004-04-29 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
JP2004280284A (ja) * 2003-03-13 2004-10-07 Sony Corp 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
JP2006018528A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd セキュアプロセッサ、およびセキュアプロセッサ用プログラム。

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379342A (en) * 1993-01-07 1995-01-03 International Business Machines Corp. Method and apparatus for providing enhanced data verification in a computer system
US5491788A (en) * 1993-09-10 1996-02-13 Compaq Computer Corp. Method of booting a multiprocessor computer where execution is transferring from a first processor to a second processor based on the first processor having had a critical error
US5615263A (en) 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
JP3580333B2 (ja) 1996-04-10 2004-10-20 日本電信電話株式会社 暗号認証機能の装備方法
US6052780A (en) 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US6185678B1 (en) 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US6754828B1 (en) * 1999-07-13 2004-06-22 Intel Corporation Algorithm for non-volatile memory updates
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
JP2002169787A (ja) 2000-11-30 2002-06-14 Matsushita Electric Ind Co Ltd 複数のプロセッサ部を含む半導体装置
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
DE10131575A1 (de) * 2001-07-02 2003-01-16 Bosch Gmbh Robert Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
EP1276033B1 (de) * 2001-07-10 2012-03-14 Trident Microsystems (Far East) Ltd. Speichereinrichtung mit Datenschutz in einem Prozessor
JP2003202929A (ja) 2002-01-08 2003-07-18 Ntt Docomo Inc 配信方法および配信システム
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
JP3866597B2 (ja) 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
JP4234380B2 (ja) 2002-09-10 2009-03-04 日鉱金属株式会社 粉末冶金用金属粉末及び鉄系焼結体
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
WO2004099981A1 (ja) 2003-05-09 2004-11-18 Fujitsu Limited プログラムのロード方法、ロードプログラムおよびマルチプロセッサ
JP2004334789A (ja) 2003-05-12 2004-11-25 Canon Inc 情報処理装置及び情報処理方法
FR2862397A1 (fr) * 2003-11-13 2005-05-20 St Microelectronics Sa Demarrage securise d'un appareil electronique a architecture smp

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02311928A (ja) * 1989-05-26 1990-12-27 Nec Corp 暗号化ファームウェアシステム
JPH07248921A (ja) * 1994-03-09 1995-09-26 Hitachi Ltd 並列プロセッサシステムのイニシャルプログラムロード方法
JP2001338271A (ja) * 2000-03-23 2001-12-07 Matsushita Electric Ind Co Ltd Icカード及びicカード利用システム
JP2002366534A (ja) * 2001-03-22 2002-12-20 Sony Computer Entertainment Inc コンピュータ・プロセッサ及び処理装置
JP2003256061A (ja) * 2002-03-04 2003-09-10 Matsushita Electric Ind Co Ltd 組込み機器
US20040083375A1 (en) * 2002-04-18 2004-04-29 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
JP2004038394A (ja) * 2002-07-01 2004-02-05 Toshiba Corp 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
JP2004280284A (ja) * 2003-03-13 2004-10-07 Sony Corp 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
JP2006018528A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd セキュアプロセッサ、およびセキュアプロセッサ用プログラム。

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009540405A (ja) * 2006-06-09 2009-11-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のプロセッサにまたがるセキュア・ブートのシステム、方法およびプログラム
KR101502032B1 (ko) * 2008-03-06 2015-03-12 삼성전자주식회사 보안 기능을 갖는 프로세서 장치

Also Published As

Publication number Publication date
WO2006082985A2 (en) 2006-08-10
US7831839B2 (en) 2010-11-09
WO2006082985A3 (en) 2006-10-26
US20060179302A1 (en) 2006-08-10
JP4489030B2 (ja) 2010-06-23

Similar Documents

Publication Publication Date Title
JP4489030B2 (ja) プロセッサ内にセキュアな起動シーケンスを提供する方法および装置
JP4522372B2 (ja) プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置
JP4606339B2 (ja) セキュアなプロセッサの処理の移行を実施する方法および装置
JP5670578B2 (ja) 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
JP4601557B2 (ja) マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置
US8438658B2 (en) Providing sealed storage in a data processing device
US7392415B2 (en) Sleep protection
US7958371B2 (en) Methods and apparatus for secure operating system distribution in a multiprocessor system
US20070180271A1 (en) Apparatus and method for providing key security in a secure processor
US9208292B2 (en) Entering a secured computing environment using multiple authenticated code modules
US20060190733A1 (en) Methods and apparatus for resource management in a processor
US8799673B2 (en) Seamlessly encrypting memory regions to protect against hardware-based attacks
KR20090005219A (ko) 점대점 상호연결 시스템 상에서의 보안 환경 초기화 명령의실행
US8065526B2 (en) Methods and apparatus for content control using processor resource management
US20050028004A1 (en) Memory security device for flexible software environment
JP2007272923A (ja) サーバ
JP2010044792A (ja) セキュアデバイス、集積回路および暗号化方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091023

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100330

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4489030

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250