JP2011527777A - 安全な起動メカニズムを備えたコンピュータシステム - Google Patents

安全な起動メカニズムを備えたコンピュータシステム Download PDF

Info

Publication number
JP2011527777A
JP2011527777A JP2010548742A JP2010548742A JP2011527777A JP 2011527777 A JP2011527777 A JP 2011527777A JP 2010548742 A JP2010548742 A JP 2010548742A JP 2010548742 A JP2010548742 A JP 2010548742A JP 2011527777 A JP2011527777 A JP 2011527777A
Authority
JP
Japan
Prior art keywords
data
series
memory
volatile memory
processing unit
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.)
Ceased
Application number
JP2010548742A
Other languages
English (en)
Other versions
JP2011527777A5 (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2011527777A publication Critical patent/JP2011527777A/ja
Publication of JP2011527777A5 publication Critical patent/JP2011527777A5/ja
Ceased legal-status Critical Current

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
    • G06F21/575Secure boot
    • 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
    • G06F21/72Protecting 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 in cryptographic circuits

Landscapes

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

Abstract

【解決手段】
安全な起動処理は、CPU(100)の一体化部分であり一旦起動前情報がプログラムされたら改変されることがない不揮発性メモリ(103)に基いて達成される。リセットイベント又は電源投入イベントの間には、起動ルーチンの一部分の署名を照合するための公開復号化鍵が収容されていてもよい内部不揮発性メモリ(103)から実行が開始されてよい。起動ルーチンの該当する部分の照合は、内部ランダムアクセスメモリ(101)を用いて達成され、それにより起動ルーチンの照合の間の外部からのアクセスが回避される。従って、高度な耐改ざん性が、例えばBIOSチップの交換によるBIOS改変に関して得られる。
【選択図】図1b

Description

本開示は、完全性(integrity)が高められたコンピュータシステム及びそれに実装される関連するメカニズムの分野に関し、強化された安全性基準の提供を可能にし、それにより安全なコンピュータプラットフォームを必要とするアプリケーションの性能を高めるものである。
コンピュータシステムの広範囲にわたる使用は、電子的コンピュータシステムに基く情報処理の著しい増大を招き、極めて大量のデジタルデータの創出、配布及び処理を伴うものとなってきている。データ記憶容量及び高速化された処理速度を考慮したコンピュータシステム資源の増大に伴い、オーディオデータ、映画等の大容量のデータセットの複製がますます多くの人々にとって利用可能になってきており、電子的な形態で提供されるデータの多くに関連するであろういかなる保護的権利の存在にもかかわらず、そのような複製はしばしば実行される。このように、電子データの不法な複製、保管及び再配布により、甚大なる経済的損害が生じる可能性がある。また、インターネット等の広範囲に及ぶネットワークを介したアプリケーションプログラムの配布は、悪意のあるソフトウエアアプリケーションを配布する可能性をももたらすかもしれず、それらは次いでデータ及び/又は該当するコンピュータプラットフォームの構成を操作するために使用されかねない。例えば、私的環境において、また、特に産業界においては、例えば、記憶されたデータ等のソフトウエアファイルを操作し、プラットフォームの実際の使用者が知らないうちにインターネットを介して情報を通信し、サービス拒否攻撃(denial of service attack)を開始し、それによりプラットフォームの特定の状態を必要とする専用のアプリケーションに対して場合によってはプラットフォームをもはや使用不可能な状況にしてしまいかねないソフトウエアアプリケーションを導入することによって、著しい損害が生じる可能性がある。
これらの理由により、コンピュータプラットフォームの完全性を高め、例えば悪意のあるソフトウエア、サービス拒否攻撃、データ傍受(sniffing)、なりすまし(spoofing)等の形をとる外部攻撃の「成功」の蓋然性を低減し、また、コンピュータプラットフォームの内部操作に関するデータ完全性をも高めるためのメカニズムの開発について多大な努力がなされている。例えば、データの伝送及び記憶の間における第三者によるデータの改ざん(tampering)に対して高度な耐力を有するデータ交換を可能にする対称又は非対称な暗号化/復号化技術のような多くの暗号化技術が利用可能である。例えば、非対称暗号化技術では、私的鍵及び公開鍵の対が、それらの鍵の一方によりデータを暗号化するために、またそれらの鍵の他方によりそのデータを復号化するために用いられてよく、それらの鍵の一方には公然とアクセス可能である。これらの技術はデータ伝送及びデータ記憶において完全性を高めるであろうが、特にコンピュータの安全性を高めることが意図された多くのアプリケーションは、信頼されたプラットフォーム構成(trusted platform configuration)に頼っているであろうから、考慮対象となるコンピュータプラットフォームの実際の構成は、それでもなお多くの攻撃の可能性をもたらすであろう。
信頼されたコンピュータプラットフォームは、ハードウエア構成の他にソフトウエアアプリケーションも専用の構成にあるであろうことが仮想されるコンピュータシステムと考えることができる。しかしながら、安全なプラットフォーム構成は、信頼されたプラットフォームレベルの「連鎖」を確立することによってのみ成立させることができ、後続のレベルの完全性がすでに照合されている場合にのみ各後続のレベルは先行するレベルによって初期化することができる。従って、システムレベルでの完全性は完全性照合の連鎖を通して維持することができ、認証ステップの連鎖のルートは、最上位レベル、即ちユーザアプリケーションのレベルを初期化した後のシステムの完全性に関する高い信頼性を達成するために、高度な耐改ざん性を備えていなければならないであろう。
典型的なコンピュータプラットフォームでは、例えば、中央処理ユニット(CPU)を初期化し、通常はCPUの外部に設けられるシステムメモリを初期化し、外部の大容量記憶デバイスからシステムメモリにオペレーティングシステムを読み込み、最後にユーザアプリケーションを実行することに関して、システムの初期化は種々の程度の抽象化(abstraction)を必要とする。このように、オペレーティングシステムは、「疑わしい」処理によって呼び出されるかもしれず、それによりハードウエア及びソフトウエアの構成要素を改変して基本プラットフォーム構成を操作する機会を与えることがあるから、システム全体の総合的な完全性を高めることを考慮すると、オペレーティングシステムを読み込むのに先立つ種々のシステム活動がオペレーティングシステム及びユーザアプリケーションの完全性に依存して安全であると考えられてよいとの仮定は、十分でないかもしれない。従って、システムメモリ等のコンピュータシステムの種々のハードウエア構成部品を初期化する処理及び、より高位のシステムレベルを初期化するためのそこに含まれる命令の実行は、ブートストラップ(boot strapping)又はブーティング(booting)と称されることもあり、強化されたシステム全体の完全性を提供するために信頼性の連鎖に組み込まれねばならないであろう。
電源投入後又はリセットイベント後にコンピュータシステムを初期化するための典型的な起動シーケンスは、CPUの「電源投入自己診断」をもたらし、そこでは、プロセッサもまた、プロセッサのリセットベクタ(reset vector)によって示される専用の入力アドレスにて命令の実行を開始する。即ち、最初のプロセッサ自己診断の後、命令の実行は典型的にはソフトウエアルーチンのアドレスであってよいエントリーポイントにて開始されてよく、しばしばBIOS(基本入出力システム(basic input/output system))と称されるそのソフトウエアルーチンは、コンピュータプラットフォームの専用外部不揮発性メモリに記憶されていてよい。BIOSの制御の下、残りの自己診断が実行されてよく、また、プラットフォームのハードウエア構成が決定又は「測定」されてよい。その後、例えばコンピュータシステムのハードディスク、ディスク、CD−ROM、拡張カード等の大容量記憶デバイスのような起動可能デバイスの探索が実行されてよく、そこから主要な起動ブロックがシステムメモリに読み込まれてよく、次いで制御はその主要な起動ブロックに移されて、オペレーティングシステムがシステムメモリに読み込まれてよい。
起動処理全体の安全性についてもこれを高めるために多大なる努力がなされてきてはいるが、例えばBIOSソフトウエアが収容されている不揮発性メモリチップの交換のようなプラットフォームの改変を考慮すると、該当するチップの交換は従って信頼性の連鎖を妨げかねず、それにより後続の全ての照合ステップを信頼できないものにしてしまうことがあるので、起動処理に対しての信頼できる、測定のための信頼性のコアルート(core root of trust for measurement)(CRTM)を提供することは難しい。
本開示は、上述した一つ以上の問題の影響を回避し又は少なくとも低減することができる種々の装置及び方法を対象としている。
以下、ここに開示される幾つかの側面の基本的理解のために、開示の簡略化された概要を提示する。この概要は網羅的な概観ではなく、また、要所となる若しくは臨界的な発明の要素を特定し又は発明の範囲を画定することが意図されているわけではない。その唯一の目的は、幾つかの概念を単純化された形態で以下に論じられる更に詳細な説明への序として提示することである。
概して、本開示は、実行可能な命令及びデータ値を含んでよい特定の一連のデータがその内部で提供される、測定のための信頼性の静的ルート(static root of trust for measurement)を確立することによって、コンピュータシステムの完全性を高めるための装置及びメカニズムに関連し、それら命令及びデータ値には、起動に際してはどのような場合でも、専用のデータセットへの裏をかいたアクセス(circumventing access)の可能性無しにマイクロプロセッサがアクセス可能であり、プラットフォームの初期化のための確定したルートが得られる。また、一連のデータは、あらゆる攻撃に対する高レベルな耐性が達成され得るように実装される。一連のデータに含まれる命令の実行の間、対応するルーチンは変更又は中断されないであろうから、起動前(pre-boot)の一連の命令及びデータ値として考えられてよいこの一連のデータの高度な完全性が提供され得る。起動前データのそれぞれの命令の処理は、考慮しているシステムの起動時に必須であるので、専用の一連の起動前データが後続の照合ステップの連鎖のための静的コアルートを提示してから、信頼されたソフトウエアの連鎖が開始されてよく、それにより高度なシステム完全性の確立が可能になる。そのために、起動前データセットはCPUコアそれ自体の内部の不揮発性メモリ内に維持されていてよく、それによりBIOSチップ等を交換することに関するいかなる攻撃をも十分に回避することができる。
ここに開示される一つの例示的な方法は、コンピュータシステムを起動することに関連する。方法は、中央処理ユニット(CPU)の不揮発性メモリ領域に記憶される第1の一連のデータにアクセスすることを備えており、第1の一連のデータは、CPUのコア回路にCPUのランダムアクセスメモリを初期化させる第1の命令を含む。方法は、第2の一連のデータのイメージを不揮発性メモリから初期化されたランダムアクセスメモリに読み込むことを更に備えており、第2の一連のデータは、第2の一連のデータの完全性を照合するための署名を備え、更に、CPUにコンピュータシステムのシステムメモリを初期化させる第2の命令を備えている。更に、方法は、署名と第1の一連のデータに含まれる復号化鍵とを用いて第2の一連のデータの完全性を照合することを備えている。最後に、方法は、第2の一連のデータの照合が成功したときに、第2の命令を用いてシステムメモリを初期化することを備えている。
ここに開示される更なる例示的な方法は、コンピュータシステムの起動に関連し、電源投入イベント及びリセットイベントの少なくとも一方の場合にCPUの内部不揮発性メモリにアクセスすることを備えている。不揮発性メモリには、CPUの内部ランダムアクセスメモリを初期化し且つコンピュータシステムの不揮発性メモリに記憶される起動命令及び起動データ値の少なくとも一部の完全性を照合するための起動前命令及びデータ値が収容されている。方法は、起動前命令を実行することによって起動命令及び起動データ値の一部を不揮発性メモリから内部ランダムアクセスメモリに読み込むことを更に備えている。また、起動命令及び起動データ値の一少なくとも一部の完全性は、起動前命令を実行することにより照合される。最後に、方法は、起動命令及び起動データ値の少なくとも一部の完全性の照合が成功した後に起動命令を実行することを備えている。
ここに開示される一つの例示的な中央処理ユニット(CPU)は、CPUコア、ランダムアクセスメモリ、不揮発性メモリ並びにCPUコア、ランダムアクセスメモリ及び不揮発性メモリを接続するためのバスシステムを画定する回路素子が形成された基板を備えている。また、CPUは不揮発性メモリ内に記憶された起動前情報を備えており、起動前情報は、CPUコアによって実行可能な命令を含み、更に揮発性ランダムアクセスメモリを初期化すると共に外部メモリデバイスから供給されるべき起動ルーチンの少なくとも一部を照合するためのデータ値を備えている。
ここに開示される更なる例示的な側面においては、上述の中央処理ユニットは、CPUに加えてシステムメモリ、起動ルーチンが収容されるメモリデバイス並びにシステムメモリ及び起動ルーチンが収容されるメモリデバイスをCPUと接続するためのインタフェースシステムを備えたコンピュータシステムの一部であってよい。
本開示は、以下の説明を添付図面と併せて参照することにより理解することができ、添付図面において同等の参照番号は同等の要素を示す。
図1aは例示的な実施形態に従いランダムアクセスメモリ(キャッシュ(cache))、CPUコア及び起動前情報が収容される不揮発性メモリを含む中央処理ユニット(CPU)を模式的に示す図である。 図1bは他の例示的な実施形態に従い内部起動前情報が収容されるCPUを含むコンピュータシステムを模式的に示す図である。 図1cは例示的な実施形態に従い起動情報の第1の部分の署名を創出するための処理の間に命令及びデータ値を含むブートストラップデータを操作するための処理ステップを模式的に示す図である。 図1dは例示的な実施形態に従い起動情報の一部の署名を照合するための処理を模式的に示す図である。 図1eは一つの例示的な実施形態に従い図1bに示されるコンピュータシステムの動作を説明するためのフローダイアグラムである。 図1fは更に他の例示的な実施形態に従い図1aのCPUのようなCPUを含むコンピュータシステムの動作を説明するためのフローダイアグラムである。
ここに開示される主題は種々の改変及び代替的な形態を許容し得る一方で、その特定の実施形態は、図面内の例によって示されておりここに詳細に説明されている。しかしながら、特定の実施形態のここでの説明は、開示された特定の形態に本発明を限定することを意図しているのではなく、むしろ添付の特許請求の範囲に規定された本発明の精神及び範囲内にある全ての改変、均等なもの及び代替案を網羅する意図であることが理解されるべきである。
種々の例示的な実施形態が以下に説明される。明瞭のために、実際の実装の全ての特徴は本明細書において説明されていない。言うまでもなく、そのようないかなる実際の実施形態の開発においても、一つの実装と他とで異なるものになるであろうシステム関連及びビジネス関連の制約の遵守のような開発者の特定の目標を達成するために、多くの実装固有の決定がなされなければならないことは理解されるであろう。また、そのような開発努力は得てして複雑で時間のかかるものになろうが、この開示の利益を享受する当業者にとっては経常的業務であろうことが理解されよう。
添付図面を参照して本主題を説明する。種々の構成、システム及び装置が、説明のみを目的とし且つ当業者に周知の詳細と相まって本開示を不明確にすることのないように、図面内に模式的に描かれている。それでもなお、本開示の例示的な実例を説明するために添付図面が含まれているものである。ここで用いられている語句(words and phrases)は、関連分野も含めた当業者によるそれらの語句の理解と矛盾しないように理解され且つ解釈されるべきである。用語又は句(term or phrase)の特別な定義、即ち当業者によって理解されるような通常の慣例的な意味とは異なる定義は、ここでの用語又は句の一貫した用法によって暗示されることを意図したものではない。用語又は句が特別な意味、即ち当業者によって理解される以外の意味を有することが意図される限りにおいて、そのような特別の定義は、用語又は句に対する特別な定義を直接的に且つ明白に提供する方法で明細書中に明示的に記載されるであろう。
概して、本開示は、起動又はリセットあるいはシステムの初期化を必要とする他の動作状態に際して、命令を実行し、中央処理ユニットの一部として動作する不揮発性メモリに記憶されたデータを用いて、その不揮発性メモリに収容されている一連のデータを操作する可能性を著しく減少させるためのシステム及びメカニズムを提供する。従って、不揮発性メモリの内容は、CPUの電源投入又はリセットの場合に第1の命令が不揮発性メモリから確実に取り込まれるようにすることによって、CPU及びコンピュータシステム全体の初期化の間に測定のための信頼性の静的ルートとして用いられてよい。このように、そこに収容されている一連のデータは、起動前又はBIOS前構成要素(pre-boot or pre-BIOS component)として機能してよく、それらは、動作データ状の変数やBIOSソフトウエアの一部を実行するためのスタック(stack)及び情報を記憶するのに用いられてよい内部ランダムアクセスメモリのような更なるシステム構成要素の初期化を可能にするであろう。例えば、ランダムアクセスメモリの一部としてのデータキャッシュ、及び命令キャッシュは、内部不揮発性メモリの起動前データによって初期化されてよく、そこに収容されているデータへの初期化処理の間における外部アクセスの可能性を十分に回避することができる。つまり、ランダムアクセスメモリ領域、即ちデータキャッシュ及び命令キャッシュは、CPU内部構成部品であり、特に外部システムメモリがこの段階で初期化されていないときに、好ましからざる操作を極めて困難なものにすることができる。BIOS完全性を考慮した一つ以上の署名の照合が、ランダムアクセスメモリ内において、命令キャッシュに適合するサイズを有するように構成される第1の部分に対して実行され得るように、BIOSルーチンは、ランダムアクセスメモリの記憶容量に応じて二つ以上の部分に分割されていてよい。このように、起動情報のこの部分は、その完全性を照合した後に、ランダムアクセスメモリから直接的に実行されてよい。従って、起動前命令を実行することによるランダムアクセスメモリの初期化及び起動情報の一部分の読み込みの間は、起動前情報は外部からアクセスされなくてすみ、第1の署名照合処理のいかなる操作をも実質的に回避することができる。幾つかの例示的な実施形態では、例えばBIOS改訂版(upgrade veisions)等の完全性を評価するための復号化鍵にアクセスすることを目的とした外部アプリケーションによる署名照合の後に、起動前情報がアクセスされてよい。
従って、起動情報の第1の部分の署名照合の後、フロー制御はこの部分に移ってよく、システムメモリを初期化し且つ残りの起動情報を複写する一方で起動情報の更なる部分の完全性も照合することによって、更なる起動処理が継続されてよい。それ故、CPUの一体化部分として提供される不揮発性メモリに収容されるデータ、即ち命令及びデータ値は、測定のための信頼性の静的コアルートとして用いられてよく、それにより耐改ざん性ハードウエア及びソフトウエア構成を達成し得るコンピュータプラットフォームの提供が可能になる。特に、BIOSチップの交換のような攻撃を考慮すると、ここに開示される実施形態のメカニズムは、信頼できるコンピュータプラットフォームの必要性に基くであろう金融取引又はデジタル著作権管理のコンテキストにおいてプラットフォームを使用する典型的な実用上のアプリケーションに対して強化された安全性を提供することができる。
図1aは測定のための信頼性のコアルート(CRTM)が高度な耐改ざん性(tamper resistance)で実装された例示的な実施形態に従う中央処理ユニット(CPU)100を模式的に示している。CPU100は、算術演算、論理演算等を実行するようなデータ処理のための構成要素を含んでよいCPUコア102を備えていてよい。CPUコア102は、CPU100の全般的な構成に適合するように、複数のスタティックRAMセル等を備えていてよいランダムアクセスメモリ101に機能的に接続されている。一つの例示的な実施形態では、RAM101は、データキャッシュ101Aとしても示される第1のメモリ部分と命令キャッシュ101Bとして示される第2の部分とを備えていてよい。例えば、RAM101は、高性能な集積回路において典型的に求められるような、CPU100の全体的な性能を高めるための高速メモリ技術によって実現され得る。しかしながら、CPU100の初期化の間における外部からのアクセスの可能性なしにCPUコア102を介したメモリ101の直接制御が達成可能である限りにおいて、任意の適切なメモリ技術がメモリ101に対して使用可能であることは理解されるべきである。
また、CPU100は、任意の適切なメモリ技術において、例えばフラッシュメモリの形態で又は任意の他のリードオンリメモリ技術において提供され得る不揮発性メモリ103を備えていてよく、不揮発性メモリ103は、メモリ103の内容を改変するための外部アクセスを可能にしなくてよい。それ故に、メモリ103は安全なメモリ領域(secure memory area)とみなしてよく、従ってその内容は信頼性の静的ルートを提示することができる。この目的のために、CPUコア102により実行可能な命令及びそれら命令のオペランド等を表すデータ値として理解されるべき一連のデータ103Aが、メモリ103の少なくとも一部分、すなわちメモリ103の当該部分が一旦プログラムされたら新たなデータで上書きすることのできない部分に設けられている。一連のデータ103Aが収容されているメモリ103は、電源投入又はリセットに際してメモリの規定アドレスへのジャンプが実行されるように、バスシステム104によってCPUコア102に接続されていてよい。従って、CPUコア102のリセットベクタのための「ハードウエア組み込み」目標(“hard-wired” target)が、少なくとも電源投入イベント及びリセットイベントに対して命令の実行が安全なメモリ103から開始されることを確実にするために設けられていてよい。
CPU100のための特定のデバイスアーキテクチュアに従ってトランジスタ要素、キャパシタ、抵抗等を形成可能なCMOSプロセス等のような考慮中の技術に基いて形成される複数の回路要素を、半導体基板等の適切なキャリア材質で支えることができる高度な半導体製造技術に基いて、CPU100が形成可能であることは理解されるべきである。従って、ここで例示される実施形態では、CPU100の種々の構成部品は、共通の製造処理フローを経て共通の基板上に形成することができ、それによりメモリ101及び103は、デバイス100の内部の又は一体的な構成部品として提供され得る。例えば、それぞれの製造技術は十分に確立されており、揮発性且つ高速のメモリセルは、CPUコア102で必要とされるであろう不揮発性メモリセル及び高性能論理ゲートと共に形成可能である。また、一連のデータ103Aが収容されるメモリ103又は少なくともその一部をプログラミングした後には、データビットを変更するためのそれ以降のアクセスを阻み、データセット103Aのための保護された環境が提供され得るように、適切なメカニズムが設けられていてよい。
図1bは既に説明したような一連のデータ103Aのための保護された環境を提供するCPU100を備えたコンピュータシステム150を模式的に示しており、図示された実施形態では、CPU100はデータキャッシュ101A及び命令キャッシュ101Bの形態にあるランダムアクセスメモリ101を備えていてよく、ランダムアクセスメモリ101(データキャッシュ101A)は、起動情報の一部に適合し且つデータセット103Aの命令を実行するときに「システムRAM」として作動するように例えば64kBのサイズを有していてよい。同様に命令キャッシュ101Bは64kBのサイズで設けられていてよく、照合処理の間メモリ101から実行されることになる起動情報の該当する部分のサイズに適合する他の適切なメモリサイズが用いられてよいことは理解されるべきである。同様に、内部不揮発性メモリ103は、コンピュータシステム150用の測定のための信頼性のコアルートを提示するデータ103Aに対する要求に適合するように、任意の適切なサイズ、例えば32kを備えていてよい。例えば、一連のデータ103Aは、照合処理を実行するのに起動情報の該当する部分を内部メモリ101に取り込む(load)ための安全なロードルーチンを提示する命令及びデータ値を備えていてよい。また、一連のデータ103Aは、起動情報の署名された部分をメモリ101内で照合可能にするために、非対称暗号化/復号化アルゴリズムの公開鍵を提示する一つ以上の復号鍵を備えていてよい。データセット103Aにおける公開鍵の数が、例えば高度な完全性等を有するそれぞれの鍵ペアを提供するための適切な基盤を維持することを考慮した安全性の考察に従って選択されてよいことは理解されるべきである。
コンピュータシステム150は、ダイナミックRAMセル等のランダムアクセスメモリセルを含む例えば任意の適切なメモリデバイスの形態のシステムメモリ110を更に備えていてよい。システムメモリ110のサイズは、性能及び記憶能力を考慮したシステム150の要求に適合していてよい。また、システム150は、BIOS情報とも称される情報を収容することができるフラッシュメモリ等の不揮発性メモリ120を備えていてよく、少なくともその一部は署名部分であり、即ち、署名部分は暗号化メカニズムと組み合わされる適切なハッシュ(hash)アルゴリズムに基いて得られる署名を備えていてよく、そのために、前述したように一つ以上の適切な暗号鍵が一連のデータ103Aに含まれていてよい。
一つの例示的な実施形態では、不揮発性メモリ120は二つの部分、即ち第1の部分及び第2の部分に分割される起動情報を収容していてよく、第1の部分は、システムメモリ110等の他のシステム構成要素を初期化するためのデータ及び命令を備えていてよく、他のシステム構成要素は、起動情報の第2の部分を収容可能であって、CPU100により提供される保護された環境に基いて第1の部分がひとたび照合されたら第2の部分を実行するためのものである。不揮発性メモリ120内の起動情報の更に詳細な構成は、図1c及び1dを参照しながら後で説明する。
コンピュータシステム150は、システムメモリ110及び不揮発性メモリ120をCPU100と動作的に接続するように構成されたインタフェースシステム140を更に備えていてよい。一つの例示的な実施形態では、システム150は、例えば起動ソース及び関連するパラメータに関するプラットフォーム固有の情報を収容可能な1回書き込み可能メモリ130を更に備えていてよい。例えば、図示されるように、1回書き込み可能メモリ130は、内部メモリ103から起動するか否かをCPU100に対して示すために、起動オプションに関する情報を備えていてよい。また、メモリ130内に設けられたセキュリティビットは、リセット後のCPU100の初期命令取り込み(initial instruction fetch)が何処に根ざしているかを決定する個別のビットを含んでいてよい。例えば、このビットが「1」にセットされると、実行は内部メモリ103に移され、それにより安全な起動処理が可能になる。幾つかの例では、開発/デバッグの目的のために安全な起動機能を無効にすることが望ましいことがある。他の例では、プラットフォームの要求に応じて、信頼されたプラットフォームセキュリティ特性を無効にし又はバイバスすることが望ましいこともある。この場合、このビットの状態の変化が安全な起動処理の間に許容可能でなくてよい。この目的のために、全てのデバッグモード(JTAG、…)は少なくとも起動時の間は無効にされる。それぞれのデバッグモードを無効にした後に安全な起動処理は実行されてよく、そのことは後で更に詳しく説明する。同様にメモリ130は安全な起動処理の間にデバッグ特性を制御するためのビットを含んでいてよく、それにより開発期間には有利なものとなるが、製品においてはデバッグ特性の当該制御は無効にされることとなる。これらのセキュリティビットに加えて、メモリ130は、他の情報、例えばデジタル著作権管理アプリケーション等に使用可能であろう製造供給元識別又は任意の固有番号を備えていてよい。他の例示的な実施形態では、1回書き込み可能メモリ130は、省略されてよく又は開発及び実際の適用に際しての安全な起動処理を制御する他の情報を収容するように設けられてよいことが理解されるべきである。
図1cは不揮発性メモリ120に記憶されていてよい起動情報121の構成を模式的に示している。図1cに示される実施形態では、BIOSとも称されることのある起動情報121は、前述したようにメモリ101のサイズに適合するサイズを有する命令及びデータ値を含む一連のデータを表してよい第1の部分121Aを備えていてよい。例えば、RAM領域101A、101Bの各々のための上述した例示的な所定値64kBに対して、第1の部分121Aの最大サイズは概ね32kBに制限されてよい。しかしながら、RAM101の範囲内における利用可能な記憶容量に応じて第1の部分121Aの他の適切なサイズが適用可能であることは理解されるべきである。また、典型的な起動ルーチンは数百kByte以上のサイズを有することがあるので、起動情報121がメモリ101のサイズを超えてしまい起動処理の全部がメモリ101に基いて実行することができなくなるような起動情報121に対して第1の部分121Aを備えることが必要になり得ることも理解されるべきである。他の例では、十分な記憶スペースが利用可能である場合には、起動情報121全体が安全な起動処理の間に用いられてよく、このことは後で更に詳細に論ずる。
このように、図1cに示されるように第1の部分121Aが設けられている場合には、第1の部分121Aは第2の部分121Bに対する初期BIOS「ローダ」(BIOS “loader”)として機能し、第1の部分121Aはその内部に第2の部分121Bについて得られたハッシュ値を含んでいてよい。第2の部分121Bについてのハッシュ値もまた、第1の部分121Aに含まれる署名によって、第1の部分121Aに対して得られたハッシュ値に基いて保護されていてよく、そのハッシュ値は専用の信頼性センター(trust center)において得られたものであってよい。このように、第2の部分のハッシュ値の暗号化は必要でないかもしれない。第1の部分121Aに対するハッシュ値の署名は、安全な起動処理の間に第1の部分121Aを照合するために用いられてよい。従って、第1の部分121Aは、必要とされるプラットフォーム初期化活動、例えばメモリ制御器等の初期化を実行するように構成されてよく、その初期化に次いで第2の部分121Bはメモリ120から初期化されたシステムメモリ110へと隠される。
第1の部分121Aの実行に際しては、システムメモリ110に複写されたイメージ121Bに対してもハッシュ値が計算されてよく、そのハッシュ値は次いで第1の部分121Aに当初含まれていたハッシュ値と比較されてよい。このように、第2の部分121Bの完全性は、第1の部分121Aに含まれるハッシュ値に基いて照合することができ、それにより完全性の信頼された連鎖が提供される。従って、図1cに示されるように、第1の部分121Aは、適切な信頼できる環境に基き適切な信頼性センターにおいて遂行され得る署名を得るように処理されてよい。この目的のために、安全なハッシュアルゴリズムを適用して、例えばhash0、hash1、hash2と示される一つ以上のハッシュ値を適切な制御データと共に提供することができる。その後、任意の適切な暗号化技術、例えば適切な私有鍵を利用したRSA(リベスト(Rivest)、シャミア(Shamir)、エーデルマン(Adelman))アルゴリズムが用いられてよく、それにより図1cの右側に示されるように暗号化されたハッシュ値を得ることができる。前述したように、適切な数の公開鍵がデータセット103Aに含まれていてよく、それにより図1cに示されるシーケンスの間に創出された署名又は暗号化されたハッシュ値の復号化が可能になる。
図1dは、システム150の起動時にデータセット103Aに基いて実行されてよい、第1の部分121Aに含まれる署名の照合のためのシーケンスを模式的に示している。照合は、例えば公開鍵を用いるRSAアルゴリズムに基いて達成可能であり、それによりhash0、hash1、hash2等の最初に創出されたハッシュ値を得ることができる。それらの最初に創出されたハッシュ値は、次いで、RAMメモリ101に複写されている第1の部分121Aについて適切なハッシュアルゴリズムを適用することにより得られるであろうそれぞれのハッシュ値と比較されてよい。もし算出されたハッシュ値が図1dの左側に示されるように第1の部分121Aにおける署名を復号化して得られた最初に生成されたハッシュ値と一致すれば、第1の部分121Aは照合されたとみなしてよい。
図1e及び1fを参照して、例示的な実施形態に従うシステム150の動作を安全な起動処理の間について更に詳細に説明する。前述したように、安全なプラットフォームを提供することを考慮すると、考慮中のコンピュータシステムの電源投入又はリセット後におけるオペレーティングシステムの安全な起動を可能にするためには、信頼性の静的ルートが実装されていなければならないであろう。この目的のために、いかなる外部操作に対しても十分な耐性のある信頼された一連のデータ103Aに基いて少なくとも第1の部分121Aを照合することにより、信頼されたBIOS情報121の規定の実行が達成され得る。このように、システムが起動するたびに安全な起動処理が開始され、暗号化法を用いることによって、当初のハードウエア及びソフトウエアの構成についての完全性の照合を達成することができる。従って、起動情報121、即ち図示された実施形態では部分121A、121Bの完全性を照合するときに、起動処理の全体の完全性を確認することができ、それにより、次いで安全性に敏感なアプリケーションを実行するために用いられるであろうオペレーティングシステムの信頼に足る初期化が可能になる。一方、例えば部分121A又は121Bの照合の間における完全性の試験が不合格であれば、例えばシステムにより提供されるサービスを制限し、あるいは他の例示的な実施形態では起動処理を実際上無効にするような適切な指針が適用される。
このように、ここで開示される安全な起動アーキテクチャは、与えられたセキュリティシステムのあらゆる状況に対して作用する攻撃として理解されるべき「クラスブレイク(class breaks)」から保護することができる。例えば、外部ソースで生成された一片のソフトウエアが、インストールが容易で且つセキュリティ/保護の測定の回避を可能にし、それによりプラットフォームの権限のない使用を可能にしてしまうクラスブレイクであると考えられることがある。デジタル著作権管理(DRM)の環境においては、DRM保護されたデータファイルが一旦破られればクラスブレイクは既に与えられている可能性があり、保護されていないファイルの再配布が可能になってしまう。そこで、ここに開示されているメカニズム及びシステムによれば、CPUそれ自体の内部の集積化部分に基いて保護された環境を得ることができ、それによりCPUそれ自体の操作を必要とし、あるいは起動情報を署名し秘密鍵を維持するための基盤におけるそれぞれの欠陥を必要とし、いずれの場合においても時間的金銭的に多大なる労力が必要になるであろうから、クラスブレイクに関する安全性の強化が可能になる。
図1eはシステム150の動作について説明するためのフローダイアグラムを模式的に示している。ステップS100では、システム150がリセットされてよく、あるいは電力がシステム150に供給されてよく、あるいは安全な起動処理を必要とするであろう他のイベントが生じてよい。その結果、適切な自己診断(self-test)がCPUコア102によって実行されてよく、レジスタ等のそれぞれの部品が初期化されてよい。幾つかの実施形態では、安全な起動処理が有効にされずにオペレーティングシステムの動作状態がシステム150の管理下に留まっていてよいことは理解されるべきである。ステップS110では、内部不揮発性メモリ103を対応するリセットベクタアドレスにマッピング(mapping)することで取得可能な第1の命令が内部不揮発性メモリ103から取り込まれる。その結果、リセットベクタへのジャンプが任意の外部イベントに起因する場合にはいつでもCPU100は安全なデータセット103Aに基いて実行を開始する。ステップS120では、データセット103Aに含まれる命令の実行により内部ランダムアクセスメモリ101が初期化されてよい。ステップS130では、起動情報121の少なくとも一部、例えばその署名を含む第1の部分121Aが内部ランダムアクセスメモリ101に読み込まれてよい。ステップS140では、データセット103A内に含まれる復号化鍵を用いることにより、起動情報121又はその第1の部分121Aの完全性が照合されてよい。
即ち、メモリ101を初期化した後に起動情報121又は少なくとも第1の部分121Aに対する署名チェックが開始される。この目的ために、幾つかの実施形態では、起動情報121又はその第1の部分121Aに対する一つ以上の署名がスキップされ得るSHA1等の安全なハッシュアルゴリズムに基いてハッシュ値が計算されてよい。更に、1回書き込み可能メモリ130に収容される製造供給元識別のような付加的情報が場合によっては用いられてよく、また一つ以上のハッシュ値を計算するために含まれていてよい。一つ以上の計算されたハッシュ値は、次いで、図1bを参照して既に説明したように、データ121又は121Aの専用の場所に含まれる一つ以上のハッシュ値と比較されてよい。そのために、一つ以上の署名からのハッシュ値が、当初のハッシュ値を得るために、データセット103Aに含まれる公開復号化鍵を用いて検索(retrieve)されてよい。計算されたハッシュ値及び当初のハッシュ値の両方が一致する場合には、起動情報121又はその第1の部分121AはステップS150で信頼できるものとみなされ、起動処理はステップS160で継続される。ステップS150で完全性チェックが不合格の場合には、ステップS170において対応する起動障害が表示されてよく、一つの実施形態では、起動処理を終了すること及び対応するエラーコードを発行することを伴ってよい。
上述した実施形態では、起動情報121又はその第1の部分121Aでの実行に移る前に、安全な起動処理、即ちステップS100乃至S150で表される処理フローは、システム150のどの構成部品に対してもいかなるリセット手続きをも適用しないので、システム150のハードウエア構成の信頼できる「測定」が可能である。
図1fは他の例示的な実施形態に従う安全な起動処理を模式的に示している。図示されるように、ステップS101では、安全な起動処理が有効にされているか否かが決定されてよい。メモリ130に含まれるそれぞれのセキュリティビットをセットすることにより、該当する表示が得られる。ステップS100により、前述したように不揮発性メモリ103から実行が開始される。ステップS102では、例えば出力ポートを適切に設定するために状態情報が供給されてよい。例えばステップS102では、内部自己診断の間に安全な起動処理が開始されることが表示されてよい。ステップS120では、システム150と特にCPU100とが初期化されてよく、ステップS120は例えば一つ以上のステップS121乃至S129を備えていてよい。例えばステップS121では、本当に最初の命令が確実にメモリ103から取り込まれるようにするために、メモリ103のアドレスが適切に再配置されてよい。ステップS122では起動ソースが検出されてよく、起動ソースはステップS123で初期化されてよい。また、メモリ101、即ちデータキャッシュ101A及び命令キャッシュ101BはステップS124、S125において初期化されてよく、ステップS126ではデータキャッシュのための非現実(unreal)モードがセットアップされてよい。更に、起動情報121又はその第1の部分121Aのイメージがデータキャッシュ101Aに複写されてよく、ステップS128ではデータキャッシュ101Aにおける変数に対して記憶スペースが割り当てられてよい。最後にもし必要であればステップS129において製造供給元識別が検索されてよい。
ステップS141において起動情報121又はその第1の部分121Aが読まれ、ステップS142においては、最初のハッシュ値を得るために該当するハッシュアルゴリズムが実行されてよい。ステップS143では、前回読まれたデータブロックが最後のブロックであったか否かが決定される。もし否であれば、処理フローはステップS141に戻り更なるデータブロックが読み込まれ、続いてステップS142でハッシュ値が計算されると共に前回得られた値が更新される。ステップS143で最後のブロックが読まれると、ステップS144では算出されたハッシュ値が記憶され、ステップS145にてデータ121又は121Aの関連する部分が読まれて、そこに含まれる署名が得られる。例えば、この目的のために情報121又はその部分121Aのヘッダブロックが用いられてよい。ステップS146では一つ以上の署名が読み出され、ステップS147では、ステップS146で得られた署名を復号化するために一つ以上の公開鍵が適用される。ステップS150では、ステップS144で記憶された単一又は複数のハッシュ値がステップS147を実行して得られた元のハッシュ値と比較され、それによりデータ121又は121Aが信頼に値するものか否かを決定することができる。
ステップS150でハッシュ値が一致すれば、前回初期化された命令キャッシュは起動データ121又は121Aで更新されてよく、それらはデータキャッシュ101Aにその時点で収容されているものであるから、その内部の起動データが照合される。ステップS162では安全な起動処理の状態が表示されてよく、最終的にはステップS163において命令キャッシュからの命令を実行することで起動が継続されてよく、その命令には、例えば、システムメモリ110の初期化と、起動データ121の任意の残りの部分、例えば第2の部分121Bを検索することと、それらの完全性を、ハッシュ値を算出し算出されたハッシュ値を第1の部分121Aに含まれる元のハッシュ値と比較することにより照合することとが含まれる。ステップS150で完全性が確認されない場合には、ステップ171で対応する状態情報(例えば0xCD)が提供されてよく、一つの実施形態ではステップS172において実行が終了してよい。
その結果、ここに開示されるシステム及びメカニズムは、不揮発性メモリに収納される起動前ルーチンであって、不揮発性メモリにデータが一旦プログラムされたら上書きすることのできない起動前ルーチンに基いて、安全な起動処理を提供することによって、コンピュータプラットフォームの強化された完全性を提供する。不揮発性メモリはCPUそれ自体の一部であるから、署名された起動情報又は少なくとも起動情報の署名された部分に適用されてよい適切な復号化鍵をも収容するその不揮発性内部メモリに記憶された起動前情報に基いて、システムの初期化を完遂することができる。起動情報又はその一部に対する適切なハッシュ値を算出するための処理及び起動情報内に暗号化された形態で記憶されている当初創出された値との比較は、CPUの内部ランダムアクセスメモリを用いて達成することができるので、外部からのアクセスの可能性、ひいてはシステム構成の操作の可能性を阻むことが可能になる。従って、内部に記憶された起動前情報は、システム初期化の間に測定のための信頼性のコアルートとして用いることができる。
以上開示された特定の実施形態は例示にすぎず、本発明は改変されてよく、また、ここでの示唆の利益を享受する当業者に明らかな、均等であるが異なるやり方で実施されてよい。例えば、上述した処理ステップは異なる順序で実行されてよい。また、以下の特許請求の範囲に記載されていることを除き、ここで示されている構成又は設計の詳細に限定することは意図されていない。従って、以上開示された特定の実施形態が変更され又は修正されてよく、そのような全ての変形が本発明の精神及び範囲内にあるものとみなされることは明らかである。従って、ここでの保護の対象は以下の特許請求の範囲に記載された通りである。

Claims (12)

  1. コンピュータシステム(150)を起動するための方法であって、
    中央処理ユニット(100)の不揮発性メモリ(103)に記憶され、前記中央処理ユニット(100)のコア回路(102)に前記中央処理ユニットの内部揮発性メモリ(101)を初期化させる第1の命令を含む第1の一連のデータ(103A)にアクセスすることと、
    第2の一連のデータ(121)の完全性を照合するための署名と前記中央処理ユニット(100)に前記コンピュータシステム(100)のシステムメモリ(110)を初期化させる第2の命令(121A)とを備える前記第2の一連のデータ(121)のイメージを不揮発性メモリ(120)から前記初期化された内部揮発性メモリ(101)に読み込むことと、
    前記署名と前記第1の一連のデータに含まれる復号化鍵とを用いて前記第2の一連のデータ(121)の前記完全性を照合することと、
    前記第2の一連のデータ(121)の照合が成功したときに前記第2の命令(121A)を用いて前記システムメモリ(110)を初期化することとを備えた方法。
  2. 前記不揮発性メモリ(120)から前記システムメモリ(110)に第3の一連のデータ(121B)を読み込むと共に前記第3の一連のデータ(121B)の完全性を照合することと、
    前記第3の一連のデータ(121B)に含まれ、前記コンピュータシステム(150)に接続された起動可能デバイスから前記システムメモリ(120)にオペレーティングシステムを読み込ませる第3の命令(121B)を実行することとを更に備えている、請求項1の方法。
  3. 前記第3の一連のデータ(121B)の完全性を照合することは、前記第3の一連のデータ(121B)に対するハッシュ値を決定することと、前記決定されたハッシュ値を前記第2の一連のデータ(121A)に含まれる前記第3の一連のデータ(121B)の当初のハッシュ値と比較することとを備えている、請求項2の方法。
  4. 前記内部揮発性メモリ(101)を初期化することは、前記中央処理ユニット(100)のデータキャッシュ(101A)及び命令キャッシュ(101B)を初期化することを備えており、前記第2の一連のデータ(121A)は前記データキャッシュ(101A)に読み込まれ、
    前記方法は、前記第2の一連のデータ(121A)の完全性の照合が成功したときに前記第2の一連のデータ(121A)を前記命令キャッシュ(101B)に複写して前記第2の命令(121A)を実行することを更に備えている、請求項1の方法。
  5. 前記第2の一連のデータ(121)を前記内部揮発性メモリ(101)に読み込むことは、ハッシュアルゴリズムを実行して前記第2の一連のデータ(121)のハッシュ値を決定することを備えており、
    前記第2の一連のデータ(121)の完全性を照合することは、前記第2の一連のデータ(121)の前記ハッシュ値を、前記暗号化鍵を前記署名に適用することによって得られる当初のハッシュ値と比較することを備えている、請求項1の方法。
  6. 前記中央処理ユニット(100)がリセットされ又は電源投入されるときはいつでも前記第1の一連のデータ(103A)がアクセスされる、請求項1の方法。
  7. 前記第2の一連のデータ(121)の照合成功の後に少なくとも前記復号化鍵への外部アクセスが可能になるように前記第1の一連のデータ(103A)のアドレスを前記中央処理ユニット(100)の仮想アドレス空間内で再配置することを更に備えた、請求項1の方法。
  8. 少なくとも前記第2の一連のデータ(121)の照合状態に関する状態情報を提供することを更に備えた、請求項1の方法。
  9. 前記第1の一連のデータ(103A)を前記システムメモリ(120)内に複写することを更に備えた、請求項1の方法。
  10. 前記第1の一連のデータ(103A)は前記中央処理ユニット(100)の前記内部揮発性メモリ(103)を初期化するための起動前命令及びデータ値を備えており、前記第2の一連のデータ(121)は起動命令及び起動データ値を備えている、請求項1の方法。
  11. CPUコア(102)、揮発性ランダムアクセスメモリ(101)、不揮発性メモリ(103)並びに前記CPUコア(102)、前記揮発性ランダムアクセスメモリ(101)及び前記不揮発性メモリ(103)を接続するためのバスシステム(104)を画定する回路素子が形成された基板と、
    前記不揮発性メモリ(103)に記憶され、前記CPUコア(102)によって実行可能な命令と前記揮発性ランダムアクセスメモリ(101)を初期化すると共に起動ルーチンの少なくとも一部を照合するためのデータ値とを含む起動前情報(103A)と、を備えた中央処理ユニット(100)。
  12. 前記起動前情報(103A)は前記起動ルーチンの前記少なくとも一部の署名を復号化することを可能にするように構成された一つ以上の復号化鍵を含む、請求項11の中央処理ユニット(100)。
JP2010548742A 2008-02-29 2009-02-27 安全な起動メカニズムを備えたコンピュータシステム Ceased JP2011527777A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DE102008011925.3 2008-02-29
DE102008011925.3A DE102008011925B4 (de) 2008-02-29 2008-02-29 Sicheres Initialisieren von Computersystemen
US12/186,821 2008-08-06
US12/186,821 US8656146B2 (en) 2008-02-29 2008-08-06 Computer system comprising a secure boot mechanism
PCT/US2009/001289 WO2009108371A1 (en) 2008-02-29 2009-02-27 A computer system comprising a secure boot mechanism

Publications (2)

Publication Number Publication Date
JP2011527777A true JP2011527777A (ja) 2011-11-04
JP2011527777A5 JP2011527777A5 (ja) 2012-04-12

Family

ID=40911374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010548742A Ceased JP2011527777A (ja) 2008-02-29 2009-02-27 安全な起動メカニズムを備えたコンピュータシステム

Country Status (8)

Country Link
US (1) US8656146B2 (ja)
EP (1) EP2250599A1 (ja)
JP (1) JP2011527777A (ja)
KR (1) KR101237527B1 (ja)
CN (1) CN101965570B (ja)
DE (1) DE102008011925B4 (ja)
TW (1) TWI498768B (ja)
WO (1) WO2009108371A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014505943A (ja) * 2011-01-14 2014-03-06 アップル インコーポレイテッド 耐タンパー性ブート処理のためのシステム及び方法

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582676B2 (en) * 2005-01-31 2017-02-28 Unisys Corporation Adding or replacing disks with re-key processing
US8522066B2 (en) 2010-06-25 2013-08-27 Intel Corporation Providing silicon integrated code for a system
US8812828B2 (en) * 2010-11-16 2014-08-19 Intel Corporation Methods and apparatuses for recovering usage of trusted platform module
US20120204254A1 (en) * 2011-02-04 2012-08-09 Motorola Mobility, Inc. Method and apparatus for managing security state transitions
US9021244B2 (en) 2011-11-04 2015-04-28 Insyde Software Corp. Secure boot administration in a Unified Extensible Firmware Interface (UEFI)-compliant computing device
JP5441984B2 (ja) * 2011-11-08 2014-03-12 シャープ株式会社 電子機器システム、電子機器及び記憶媒体
US8775784B2 (en) 2011-11-11 2014-07-08 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust
US20130173906A1 (en) * 2011-12-29 2013-07-04 Eric T. Obligacion Cloning storage devices through secure communications links
US9262637B2 (en) * 2012-03-29 2016-02-16 Cisco Technology, Inc. System and method for verifying integrity of platform object using locally stored measurement
WO2013165383A1 (en) * 2012-04-30 2013-11-07 Hewlett-Packard Development Company, L.P. Configurable computer memory
US9047471B2 (en) * 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
US8873747B2 (en) 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor
CN102929674B (zh) 2012-11-02 2016-02-10 威盛电子股份有限公司 电子装置以及开机方法
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
US20140164753A1 (en) * 2012-12-06 2014-06-12 Samsung Electronics Co., Ltd System on chip for performing secure boot, image forming apparatus using the same, and method thereof
US9785596B2 (en) 2013-04-23 2017-10-10 Hewlett-Packard Development Company, L.P. Redundant system boot code in a secondary non-volatile memory
US10733288B2 (en) 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US9235710B2 (en) 2013-05-23 2016-01-12 Cisco Technology, Inc. Out of band management of basic input/output system secure boot variables
KR101656092B1 (ko) * 2013-08-13 2016-09-08 윈본드 일렉트로닉스 코포레이션 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
US9367689B2 (en) * 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US9507942B2 (en) * 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
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
US10095868B2 (en) 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
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
US9183394B2 (en) 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US9767288B2 (en) * 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
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
US9779243B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US9779242B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US10049217B2 (en) 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9798880B2 (en) * 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
TWI560611B (en) * 2013-11-13 2016-12-01 Via Tech Inc Apparatus and method for securing bios
KR102227263B1 (ko) * 2013-12-31 2021-03-15 삼성전자주식회사 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치
KR20150078644A (ko) * 2013-12-31 2015-07-08 에릭슨엘지엔터프라이즈 주식회사 소프트웨어 이미지 이중화 방법 및 장치
KR20150085301A (ko) * 2014-01-15 2015-07-23 삼성전자주식회사 메모리 시스템의 동작 방법 및 이를 포함하는 메모리 시스템의 초기화 방법
CN104866757B (zh) * 2014-02-24 2019-01-15 联想(北京)有限公司 一种验证方法及电子设备
US10621330B2 (en) * 2014-03-28 2020-04-14 Hewlett-Packard Development Company, L.P. Allowing use of a test key for a BIOS installation
CN105022589A (zh) * 2014-04-29 2015-11-04 光宝科技股份有限公司 电子装置及其操作方法
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
US9842212B2 (en) * 2014-11-03 2017-12-12 Rubicon Labs, Inc. System and method for a renewable secure boot
US11456876B2 (en) * 2015-03-26 2022-09-27 Assa Abloy Ab Virtual credentials and licenses
CN104866343A (zh) * 2015-05-15 2015-08-26 长城信息产业股份有限公司 一种嵌入式设备的安全启动方法及启动安全的嵌入式设备
CN104881345B (zh) * 2015-05-25 2018-10-23 上海兆芯集成电路有限公司 中央处理器和计算机开机自检的方法
CN104899524B (zh) * 2015-05-25 2018-11-27 上海兆芯集成电路有限公司 中央处理器和验证主机板数据的方法
US10467418B2 (en) * 2015-08-28 2019-11-05 Ncr Corporation Computer pre-boot security verification, enforcement, and remediation
US9996711B2 (en) * 2015-10-30 2018-06-12 Intel Corporation Asset protection of integrated circuits during transport
CN105681032B (zh) * 2016-01-08 2017-09-12 腾讯科技(深圳)有限公司 密钥存储方法、密钥管理方法及装置
US10242195B2 (en) * 2016-07-22 2019-03-26 Hewlett Packard Enterprise Development Lp Integrity values for beginning booting instructions
CN106484477B (zh) * 2016-10-11 2019-11-12 上海华虹集成电路有限责任公司 安全的软件下载与启动方法
US11455396B2 (en) * 2017-05-12 2022-09-27 Hewlett Packard Enterprise Development Lp Using trusted platform module (TPM) emulator engines to measure firmware images
CA3071288C (en) 2017-08-22 2021-03-09 Absolute Software Corporation Firmware integrity check using silver measurements
CN109714303B (zh) 2017-10-25 2022-05-27 阿里巴巴集团控股有限公司 Bios启动方法及数据处理方法
CN109710315B (zh) 2017-10-25 2022-05-10 阿里巴巴集团控股有限公司 Bios刷写方法及bios镜像文件的处理方法
US10757087B2 (en) * 2018-01-02 2020-08-25 Winbond Electronics Corporation Secure client authentication based on conditional provisioning of code signature
US11741233B2 (en) 2018-06-11 2023-08-29 Hewlett-Packard Development Company, L.P. Overriding sub-system identifiers with protected variable values
JP7059127B2 (ja) * 2018-06-26 2022-04-25 キヤノン株式会社 起動時に実行されるソフトウェアの改ざんを検知する情報処理装置及びその制御方法
CN109446815B (zh) * 2018-09-30 2020-12-25 华为技术有限公司 基本输入输出系统固件的管理方法、装置和服务器
US11418335B2 (en) 2019-02-01 2022-08-16 Hewlett-Packard Development Company, L.P. Security credential derivation
US10726133B1 (en) * 2019-02-04 2020-07-28 Dell Products L.P. Securely loading UEFI images at runtime
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
JP7286381B2 (ja) * 2019-04-01 2023-06-05 キヤノン株式会社 情報処理装置とその制御方法
US11347856B2 (en) * 2019-05-24 2022-05-31 Dell Products L.P. Bios method to block compromised preboot features
US11657157B2 (en) * 2019-06-06 2023-05-23 Macronix International Co., Ltd. Secure boot system, method and apparatus
CN114424166A (zh) * 2019-08-28 2022-04-29 惠普发展公司,有限责任合伙企业 加密表签名
TWI756631B (zh) 2020-02-12 2022-03-01 瑞昱半導體股份有限公司 具有韌體驗證機制的電腦系統及其韌體驗證方法
CN113282930B (zh) * 2020-02-19 2024-03-01 瑞昱半导体股份有限公司 具有固件验证机制的电脑系统及其固件验证方法
US11768611B2 (en) 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip
US11528276B2 (en) 2020-04-16 2022-12-13 Bank Of America Corporation System for prevention of unauthorized access using authorized environment hash outputs
US11423160B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for analysis and authorization for use of executable environment data in a computing system using hash outputs
US11263109B2 (en) 2020-04-16 2022-03-01 Bank Of America Corporation Virtual environment system for validating executable data using accelerated time-based process execution
US11481484B2 (en) 2020-04-16 2022-10-25 Bank Of America Corporation Virtual environment system for secure execution of program code using cryptographic hashes
US11425123B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for network isolation of affected computing systems using environment hash outputs
FR3111441B1 (fr) * 2020-06-10 2022-08-05 Proton World Int Nv Démarrage sécurisé d'un circuit électronique
US11372982B2 (en) 2020-07-02 2022-06-28 Bank Of America Corporation Centralized network environment for processing validated executable data based on authorized hash outputs
US20230083979A1 (en) * 2021-09-10 2023-03-16 Ampere Computing Llc Method and system for secure boot and rma intervention

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146788A (ja) * 1993-11-22 1995-06-06 Fujitsu Ltd ウイルス診断機構の作成システムと作成方法並びにウイルス診断機構と診断方法
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
JPH1139158A (ja) * 1997-07-18 1999-02-12 Nippon Telegr & Teleph Corp <Ntt> 実行プログラムの保護方法およびその装置
JP2002366748A (ja) * 2001-06-05 2002-12-20 Dainippon Printing Co Ltd Icカードを利用した新規口座開設方式
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
EP1659472A1 (en) * 2004-11-22 2006-05-24 Research In Motion Limited Method and Device for Authenticating Software
JP2008016020A (ja) * 2006-06-30 2008-01-24 Lenovo (Beijing) Co Ltd Biosの実行を加速化する方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010007131A1 (en) 1997-09-11 2001-07-05 Leonard J. Galasso Method for validating expansion roms using cryptography
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US8332652B2 (en) 2003-10-01 2012-12-11 International Business Machines Corporation Computing device that securely runs authorized software
US8667580B2 (en) * 2004-11-15 2014-03-04 Intel Corporation Secure boot scheme from external memory using internal memory
US20060179308A1 (en) 2005-02-07 2006-08-10 Andrew Morgan System and method for providing a secure boot architecture
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
CN1822013A (zh) * 2006-03-14 2006-08-23 上海一维科技有限公司 基于可信平台模块的指纹生物识别引擎系统及其识别方法
KR101341286B1 (ko) * 2006-03-30 2013-12-12 실리콘 이미지, 인크. 멀티-포트 메모리 디바이스의 포트간 통신
CN1900939A (zh) * 2006-07-18 2007-01-24 上海一维科技有限公司 安全计算机的指纹生物识别装置及其识别方法
US8068614B2 (en) * 2007-09-28 2011-11-29 Intel Corporation Methods and apparatus for batch bound authentication
US8583908B2 (en) * 2007-12-31 2013-11-12 Intel Corporation Enhanced network and local boot of Unified Extensible Firmware Interface images
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146788A (ja) * 1993-11-22 1995-06-06 Fujitsu Ltd ウイルス診断機構の作成システムと作成方法並びにウイルス診断機構と診断方法
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
JPH1139158A (ja) * 1997-07-18 1999-02-12 Nippon Telegr & Teleph Corp <Ntt> 実行プログラムの保護方法およびその装置
JP2002366748A (ja) * 2001-06-05 2002-12-20 Dainippon Printing Co Ltd Icカードを利用した新規口座開設方式
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
EP1659472A1 (en) * 2004-11-22 2006-05-24 Research In Motion Limited Method and Device for Authenticating Software
JP2008016020A (ja) * 2006-06-30 2008-01-24 Lenovo (Beijing) Co Ltd Biosの実行を加速化する方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014505943A (ja) * 2011-01-14 2014-03-06 アップル インコーポレイテッド 耐タンパー性ブート処理のためのシステム及び方法

Also Published As

Publication number Publication date
CN101965570A (zh) 2011-02-02
CN101965570B (zh) 2013-09-18
KR20100125371A (ko) 2010-11-30
DE102008011925A1 (de) 2009-09-03
US8656146B2 (en) 2014-02-18
WO2009108371A1 (en) 2009-09-03
EP2250599A1 (en) 2010-11-17
KR101237527B1 (ko) 2013-02-26
US20090222653A1 (en) 2009-09-03
TWI498768B (zh) 2015-09-01
DE102008011925B4 (de) 2018-03-15
TW200943123A (en) 2009-10-16

Similar Documents

Publication Publication Date Title
KR101237527B1 (ko) 보안 부팅 메커니즘을 포함하는 컴퓨터 시스템
US8464037B2 (en) Computer system comprising a secure boot mechanism on the basis of symmetric key encryption
US7010684B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
US7139915B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
JP5378460B2 (ja) 状態検証を使用した保護されたオペレーティングシステムブートのためのシステムおよび方法
US8806224B2 (en) Low cost trusted platform
US7974416B2 (en) Providing a secure execution mode in a pre-boot environment
US7421588B2 (en) Apparatus, system, and method for sealing a data repository to a trusted computing platform
KR20170095161A (ko) 시큐어 시스템 온 칩
US7308576B2 (en) Authenticated code module
US20110246778A1 (en) Providing security mechanisms for virtual machine images
US20060136708A1 (en) Information processing system, program product, and information processing method
US20040151319A1 (en) Method and apparatus for managing a hierarchy of nodes
WO2003058412A2 (en) Authenticated code method and apparatus
US8108905B2 (en) System and method for an isolated process to control address translation
CN114651253A (zh) 用于策略强制实施的虚拟环境类型验证
EP3440586B1 (en) Method for write-protecting boot code if boot sequence integrity check fails
CN108595981B (zh) 加密安卓系统的方法
Muramoto et al. Improving Hardware Security on Talos II Architecture Through Boot Image Encryption
US20220342996A1 (en) Information processing apparatus, method of controlling the same, and storage medium
Amato et al. Mobile Systems Secure State Management
GB2397981A (en) method and apparatus for managing a hierarchy of nodes

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130814

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130904

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20140129