JP5703391B2 - 耐タンパー性ブート処理のためのシステム及び方法 - Google Patents

耐タンパー性ブート処理のためのシステム及び方法 Download PDF

Info

Publication number
JP5703391B2
JP5703391B2 JP2013549562A JP2013549562A JP5703391B2 JP 5703391 B2 JP5703391 B2 JP 5703391B2 JP 2013549562 A JP2013549562 A JP 2013549562A JP 2013549562 A JP2013549562 A JP 2013549562A JP 5703391 B2 JP5703391 B2 JP 5703391B2
Authority
JP
Japan
Prior art keywords
kernel cache
operating system
kernel
password
storage medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013549562A
Other languages
English (en)
Other versions
JP2014505943A (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.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of JP2014505943A publication Critical patent/JP2014505943A/ja
Application granted granted Critical
Publication of JP5703391B2 publication Critical patent/JP5703391B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram

Description

(関連出願)
本出願は、2011年1月14日出願の米国特許出願番号13/007,529「耐タンパー性ブート処理のためのシステム及び方法」の優先権を主張するものであり、その開示内容全体は、引用により本明細書に組み込まれている。
(技術分野)
本開示は、暗号化に関し、詳細にはコンピュータデバイスの耐タンパー性ブート処理に関する。
現在、大部分のコンピュータデバイスは、ある程度の情報保護を必要とする。暗号手法はコンピュータデバイスを保護するために利用される1つの方法である。暗号手法は、情報の暗号化及び復号化の両方に関連する。暗号化は、理解できる情報(平テキスト)を理解できない情報(暗号化テキスト)に変換する処理であり、復号化は、暗号化テキストを平テキストに戻す処理である。
コンピュータデバイスは、種々のサイズのデータをデータの小さなセットから大きなブロックに暗号化することができる。フルディスク暗号化(FDE)は、コンピュータデバイスのディスクボリューム全体を暗号化する方法である。ディスクボリューム全体の復号化は、ディスクボリュームがアクセス可能になる前に必要になる。フルディスク暗号化は、全てのファイル(一時ファイルを含む)が暗号化されるのでファイルレベル暗号化よりも安全と考えられる。
FDEはファイルレベル暗号化よりも安全と考えられているが、FDEを使用するシステムは、依然として攻撃に対して脆弱である。単純な1つの攻撃において、ハッカーは、正常なブートシーケンスを実行する代わりにコンピュータデバイスをハッカー自身の悪意のあるコードでブートするように、コンピュータデバイスのブートシーケンスを変更することができる。FDEシステムは、ブート時にFDEボリュームをアンロックするためにユーザに対してパスワードの入力を促す必要がある。ハッカーの悪意のあるコードは。FDEパスワードを要求するスクリーンと全く同じ見かけであるが、FDEボリュームをアンロックするためにパスワードを使用するのではなくこれを盗むスクリーンを表示することができる。ユーザがパスワードを入力すると、ハッカーはパスワードを記録してコンピュータデバイスにアクセスする。従って、ハッカーは、こっそりとユーザのパスワードを盗むことができる。ブースターからオペレーティングシステムカーネルへの信頼チェーンが無いと、この攻撃はフルディスク暗号化コンピュータデバイスであっても破ることができる。
本開示の更なる特徴及び利点は、以下の説明に記載され、この説明から部分的に自明であり、又は本明細書に記載の原理を実施することで知ることができる。本開示の更なる特徴及び利点は、特に請求項に指摘される手段及び組み合わせによって実現すること及び得ることができる。本開示の前述の及び他の特徴は、以下の説明及び請求項から更に理解できるようになり、又は本明細書の原理を実施することで知ることができるはずである。
耐タンパー性ブート処理と呼ばれる、フルディスク暗号化を使用して暗号化された記憶媒体を有するコンピュータデバイスをブート処理するためのシステム、方法、非一時的コンピュータ可読記憶媒体が開示される。前述の攻撃に対処する1つの方法は耐タンパー性ブートと呼ばれる。コンピュータデバイスがFDEといった安全性の高いモードを使用する場合、安全性の低いモードで作動する場合よりも、ハッカーは、ブートシーケンスを変更することが一層困難になるはずである。しかしながら、FDE可能記憶媒体を備えるコンピュータデバイスにおいて、オペレーティングシステムカーネルは暗号化されない。これは、ブート環境がFDEボリュームを復号するように十分に複雑ではないという理由からである。その代わりに、ブート環境は、復号化を行うためにオペレーティングシステムカーネルに依存する必要がある。暗号化されていないオペレーティングシステムカーネルは、攻撃者によって悪意のあるパスワード盗用コードにこっそりと置き換えることができるので、FDEセキュリティモデル全体において明らかな脆弱リンクである。コンピュータデバイスに関するこの欠陥に対処するための1つの方法は、ファームウェアからのオペレーティングシステムのカーネルに対する信頼チェーンを確立することによって、ブートシーケンスの信頼性を確認することである。図1は、本明細書に記載の方法を実施する例示的なシステム100を示す。システム100は、ブート時間にユーザからFDE可能暗号化記憶媒体に関するボリュームキーに関連する資格証明書を受信する。システムは、記憶媒体から暗号化されていないカーネル及び暗号化されていないカーネルキャッシュダイジェストを取り込む。次に、システムは、取り込んだカーネルキャッシュダイジェストを演算したダイジェストと比較することによってカーネルキャッシュが真正であることを確認する。オペレーティングシステムの開始及び実行は、カーネルキャッシュが真正であるとシステムが判定した場合に行われる。システムは、カーネルキャッシュが真正ではない場合にはエラーを発生する。
本方法を実行するシステムは、最初にユーザから受け取ったフルディスク暗号化パスワードに基づいてボリュームキーを発生することで、耐タンパー性ブート処理プロセスを開始する。システムは、ボリュームキーで記憶媒体を暗号化して、フルディスク暗号化記憶媒体をもたらす。次に、システムは、フルディスク暗号化ボリュームキーでカーネルキャッシュを暗号化して、カーネルキャッシュダイジェストをもたらし、システムは、これをカーネルキャッシュ自体と一緒に暗号化されていない記憶媒体又はそうでなければ暗号化される記憶媒体の暗号化されていない部分に記憶する。システムがブートすると、システムは、カーネルキャッシュダイジェスト及び演算ダイジェストに基づいてカーネルキャッシュの完全性を確認する。
システムは、ファームウェアを用いてシステムをブート処理すること、及びファームウェアによってブーターの完全性を確かめることで、オペレーティングシステムが不正変更されていないことを確認する。システムは、制御をブーターに渡し、ブーターは、記憶されたカーネルキャッシュダイジェスト及び演算されたダイジェストに基づいてオペレーティングシステムのカーネルキャッシュを確かめる。オペレーティングシステムが不正変更されていないとシステムが判定すると、システムは、開始及び実行及び何らかの残りのタスクのための制御をオペレーティングシステムに渡す。
1つの実施形態において、システムは、ファームウェアレベルで、パスワード検証子を生成して、これをパスワード証明書と比較することで耐タンパー性ブート処理を無効にする。システムは、暗号化アルゴリズムの複数回の反復をサルト値及びパスワードに適用することでパスワード検証子を生成する。システムが耐タンパー性ブート処理を無効にするユーザからのリクエストを受け取ると、オペレーティングシステムは、部分的なパスワード証明書を生成する。部分的なパスワード証明書の生成は、暗号化アルゴリズムの複数回の反復の一部をパスワード及びサルト値に適用することで実現され、次に、コンピュータデバイスをリブート処理する。システムがリブートすると、ファームウェアは、部分的なパスワード証明書を取り込み、暗号化アルゴリズムの複数回の反復の残りを遂行して完全なパスワード証明書を生成する。パスワード証明書がパスワード検証子と一致すると、システムは、耐タンパー性ブート処理を無効にする。このようにして、システムは、リクエストを真正として耐タンパー性ブートを無効にする。
更に、システムは、パスワード検証子を記憶するデータベースを確立することで耐タンパー性ブート処理を初期化する。オペレーティングシステムは、耐タンパー性ブート処理を無効にする権限のあるユーザリストを生成し、このリストをファームウェアに送る。オペレーティングシステムは、各ユーザに関するパスワード検証子を生成し、これを同様にファームウェアに送る。ファームウェアは、これを不揮発性ランダムアクセスメモリ(NVRAM)データベースに記憶する。また、システムは、ファームウェアにおいてシステムサルトを生成し、システムサルトを後で使用するためにNVRAMに記憶する。本明細書に開示する原理は、フルディスク暗号化を用いて暗号化された記憶媒体を有するコンピュータデバイスに適用する。
本開示の前述及び他の利点及び特徴を得ることができる方法を説明するために、前述の簡潔な原理のより詳細な説明は、添付図面に示される特定の実施形態を参照して与えられる。図面は、本開示の例示的な実施形態を示すだけであり、この範囲を限定することを意図しておらず、本明細書の原理は添付図面を利用して、追加の特定性及び詳細内容を用いて記載及び説明されることを理解されたい。
例示的なシステムの実施形態を示す。 耐タンパー性ブート処理のための例示的な方法の実施形態を示す。 カーネルキャッシュの認証を示す。 例示的なシステムの実施形態の確立を示す。 耐タンパー性ブート処理を確立するための例示的な方法の実施形態を示す。 耐タンパー性ブートを無効にするための例示的な方法の実施形態を示す。 パスワード検証子の発生を示す。 パスワード検証子を発生するための例示的な論理の流れを示す。 部分的なパスワード証明書の生成を示す。 完全なパスワード証明書の生成を示す。 部分的なパスワード証明書を生成する例示的な論理の流れを示す。 完全なパスワード証明書を生成する例示的な論理の流れを示す。 フルディスク暗号化の確立を示す。 フルディスク暗号化を確立するための例示的な方法の実施形態を示す。
以下に、本開示の種々の実施形態を詳細に示す。特定の実施例が記載されるが、これは例示目的であることを理解されたい。当業者であれば、本開示の精神及び範囲を逸脱することなく他の構成要素及び機器構成を使用できることを理解できるはずである。
本開示は、ブートシーケンスの真正性の確認に関する従来のニーズに対処するものである。フルディスク暗号化を用いて暗号化された記憶媒体を有するコンピュータデバイスをブートするシステム、方法、及び非一時的コンピュータ可読媒体が開示される。図1には基本的な汎用システム又はコンピュータデバイスが説明され、本明細書に開示の原理を実行するために使用できる。以下に、フルディスク暗号化(FDE)を用いて、コンピュータデバイス上で耐タンパー性ブート処理を確立、管理、使用、及び除去するための詳細な説明を行う。これらの変形形態は、本明細書では種々の実施形態として説明される。
図1を参照すると、例示的なシステム100は、プロセッシングユニット(CPU又はプロセッサ)120、及びリードオンリメモリ(ROM)140及びランダムアクセスメモリ(RAM)150等のシステムメモリ130を含む種々のシステム構成要素をプロセッサ120に接続するシステムバス110を含む汎用コンピュータデバイス100を備える。システム100は、プロセッサ120に直接、ごく接近して接続されるか、又はその一部として統合される高速メモリのキャッシュ122を含むことができる。システム100は、プロセッサ120による迅速なアクセスのためにメモリ130及び/又は記憶装置160からキャッシュにデータをコピーする。このようにして、キャッシュは、プロセッサ120がデータを待つ間の遅れを回避して性能向上を可能にする。これらの及び他のモジュールは、プロセッサ120を制御すること又はプロセッサ120を制御するように構成することができ、種々の動作を実行するようになっている。他のシステムメモリ130を利用でき同様に使用することができる。メモリ130は、性能特性が異なる複数の異なる種類のメモリを含むことができる。本開示は、高い処理性能をもたらすようにネットワーク化された2つ以上のプロセッサ120、或いはコンピュータデバイスのグループ又はクラスタを有するコンピュータデバイス100上で作動できることを理解されたい。プロセッサ120は、任意の汎用プロセッサ、及び記憶装置160に記憶されプロセッサ120並びに特定用途向けプロセッサを制御するように構成される、モジュール1 162、モジュール2 164、及びモジュール3 166といったハードウェアモジュール又はソフトウェアモジュールを含むことができ、ソフトウェア命令は、実際のプロセッサデザインに組み込まれる。プロセッサ120は、本質的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュ等を含む完全内蔵式コンピュータシステムとすることができる。マルチコアプロセッサは、対称又は非対称とすることができる。
システムバス110は、任意の種々のバスアーキテクチャを使用するメモリバス又はメモリコントローラ、周辺バス、ローカルバスを含む、任意の種々の形式のバス構成とすることができる。ROM140等に記憶される基本入出力(BIOS)は、起動時等にコンピュータデバイス100内の各要素の間の情報転送を助ける基本ルーチンを提供することができる。更に、コンピュータデバイス100は、ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ、テープドライブ等の記憶装置160を含む。記憶装置160は、プロセッサ120を制御するためのソフトウェアモジュール162、164、166を含むことができる。他のハードウェア又はソフトウェアモジュールも想定できる。記憶装置160は、ドライブインタフェースによってシステムバス110に接続される。ドライブ及び関連のコンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータデバイス100に関する他のデータの非一時的記憶を可能にする。1つの態様において、特定の機能を実行するハードウェアモジュールは、プロセッサ120、バス110、ディスプレイ70等の必須のハードウェア構成要素に関連する、非一時的コンピュータ可読媒体に記憶されるソフトウェア構成要素を含む。基本構成要素は、当業者には公知であり、装置100が小型携帯式コンピュータデバイス、ディスクトップコンピュータ、又はコンピュータサーバであるか否かの装置の形式に応じて、適切な変形形態が想定できることを理解できるはずである。
本明細書に記載の例示的な実施形態は、ハードディスク160を使用するが、当業者であれば、例示的な作動環境において、磁気カセット、フラッシュメモリカード、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)150、リードオンリメモリ(ROM)140、ビット流を含む有線又は無線信号等の、コンピュータがアクセス可能なデータを記憶することができる他のコンピュータ可読媒体を使用できることを理解できるはずである。非一時的コンピュータ可読記憶媒体は、特にエネルギ、搬送信号、電磁波、信号等の媒体を本質的に除外する。
ユーザがコンピュータデバイス100と相互作用すること可能にするために、入力デバイス190は、会話用のマイク、ジェスチャ又は図形入力用のタッチセンサ式スクリーン、キーボード、マウス、モーション入力、会話等の任意数の入力機構を表す。また、出力デバイス170は、当業者には公知の1つ又はそれ以上の複数の出力機構とすることができる。いくつかの例では、マルチモーダルシステムにより、ユーザは、複数の形式の入力を行ってコンピュータデバイス100と通信することができる。一般的に、通信インタフェース180は、ユーザ入力及びシステム出力を制御及び管理する。何らかの特定のハードウェア構成上での作動に制限されないので、基本的な特徴は、改良されたハードウェア又はファームウェア構成に置き換えることが容易である。
説明を明瞭化するために、システムの実施形態は、「プロセッサ」又はプロセッサ120と表記される機能ブロックを含む個々の機能ブロックを含むように示される。これらのブロックの機能は、共有又は専用ハードウェアのいずれかでもたらすことができ、限定されるものではないが、プロセッサ120のようなソフトウェア及びハードウェアを実行することができるハードウェアを含み、これは汎用プロセッサ上で実行されるソフトウェアと同等に作動する専用のものである。例えば、図1に示す1つ又はそれ以上のプロセッサの機能は、単一の共用プロセッサ又は複数のプロセッサで提供することができる(用語「プロセッサ」の使用は、ソフトウェアを実行することができるハードウェアのみを呼ぶと解釈すべきではない)。例示的な実施形態は、マイクロプロセッサ及び/又はデジタル信号プロセッサ(DSP)ハードウェア、以下に説明する動作を行うソフトウェアを記憶するリードオンリメモリ(ROM)140、及び結果を記憶するランダムアクセスメモリ(RAM)150を含むことができる。汎用DSP回路と組み合わせて超大規模集積回路(VLSI)ハードウェアの実施形態及びカスタムVLSI回路も可能である。
種々の実施形態の論理演算は、(1)汎用コンピュータ内のプログラム可能な回路上で実行する一連のコンピュータにより実現されたステップ、動作、又は手順、(2)専用のプログラム可能な回路上で実行する一連のコンピュータにより実現されたステップ、動作、又は手順、及び/又は(3)プログラム可能な回路内の相互接続されたマシンモジュール、又はプログラムエンジンとして実現される。図1に示されたシステム100は、列挙された方法の全て、又は一部を実施し、列挙されたシステムの一部であり、及び/又は列挙された非一時的コンピュータ可読記憶媒体における命令に従って動作する。そのような論理演算は、モジュールのプログラミングに従って特定の機能を実行するようプロセッサ120を制御するように構成されたモジュールとして実現される。例えば、図1は、プロセッサ120を制御するように構成されたモジュールである3つのモジュールMod1 162、Mod2 164及びMod3 166を示す。これらのモジュールは、記憶装置160上に格納されるか、実行時にRAM150、又はメモリ130にロードされるか、又は当技術分野において既知であるように他のコンピュータ可読記憶場所に格納される。
いくつかの基本的なシステム構成要素を開示したが、次に、本開示は、図2の例示的な方法の実施形態に示すような、耐タンパー性ブート処理の説明に戻る。明瞭化のために、本方法を実行するように構成された図1に示すような例示的システムに関して本方法を説明する。
図2は、耐タンパー性ブート処理とし知られる、フルディスク暗号化を使用して暗号化された記憶媒体を有するコンピュータデバイスをブート処理するための例示的な方法の実施形態を示す。耐タンパー性ブート処理により、ハッカーは、認可されたブートシーケンスを認可されていない方法で変更すること、又は自身の認可されていないブートシーケンスを挿入することがより困難になる。ブートシーケンスを保護する1つの方法は、ファームウェアからオペレーティングシステムカーネルへの信頼チェーンを確立することである。ファームウェアは、デバイスの低レベル基本動作を制御する固定プログラムを呼ぶ。しかしながら、ファームウェアは「固定」プログラムと呼ばれるが、例えば、ファームウェア更新によりファームウェアが提供する機能性を変更することができる。典型的に、ファームウェアは、BIOS(基本入出力システム)ベース又はEFI(エクステンシブル・ファームウェア・インタフェース)ベースのコンピュータブートアップ実装としてROM、EEPROM等に記憶される。カーネルは、中央処理装置(CPU)、メモリ、及び他のデバイスを含む、コンピュータデバイスのハードウェアのようなコンピューティング資源にアクセスできるソフトウェアアプリケーションを提供するオペレーティングシステムの主要な構成要素である。信頼チェーンの確立において、ファームウェアはブーター(ブーター)の完全性を確かめることができるが、ブーターはカーネルの完全性を確かめることはできない。コンピュータは製造工場からの出荷後に自身のカーネルを更新し、ブート時の特定のマシンに関するカーネル拡張を含む。カーネルは、特定のユーザのマシンに対してカスタマイズされる。ブーターはカーネルの完全性を確かめてブートシーケンス全体を保護する必要がある。
システム100がフルディスク暗号化を使用する場合、暗号化されるボリュームに関するボリュームキーは、ブーターとカーネルとの間の共有秘密キーとして機能する。ブーターは、パスワードを確認してこれをオペレーティングシステムカーネルに送るために、ボリュームキーを有する必要があり、その後、オペレーティングシステムカーネルはディスクを復号することができる。システムの実行時、カーネルは、メモリ内にフルディスク暗号化ボリュームキーを有することもできる。ブート時間において、ブーターは、ボリュームキーを使用してカーネルの完全性チェックを行う。ボリュームキーは、パスワードと同一とすること、又は少なくともパスワードの一部に基づいて形成することができる。
システム100は、ファームウェアからカーネルへの信頼チェーンを確立して、コンピュータデバイスのブートシーケンスを保護する。システムは、ブート時間において、ユーザからボリュームキーに関する資格証明書を受信する(210)。暗号手法において、資格証明書は、ユーザ識別を証明するために使用される。資格証明書のいくつかの例として、パスワード証明書、又は指紋や声紋等の生体認証を挙げることができる。ボリュームキー資格証明書と同じか、又はその派生物である。例えば、ボリュームキーは、ユーザパスワード、暗号化されたパスワード、又はユーザパスワードを入力とするアルゴリズムの出力とすることができる。システム100がボリュームキーを証明すると、システムは、カーネル及び暗号化されていない記憶媒体からオペレーティングシステムが生成するカーネルキャッシュダイジェストを取り込む(230)。カーネルキャッシュダイジェストは、暗号学的ハッシュ関数、秘密キー、及びカーネルキャッシュを用いて生成される。カーネルキャッシュは、カーネルコード及びカーネル拡張を含む。ダイジェストは、ハッシュ値、メッセージダイジェスト、又はハッシュ付きメッセージ認証コード(HMAC)と呼ばれる場合もある。HMACは、メッセージの真正性及び完全性の両方を同時に確認するために使用できる。暗号学的ハッシュ関数は、データブロックを取得して、ハッシュ値又はメッセージダイジェストと呼ばれる、固定サイズのビットストリングを戻す手続きである。データブロックの何らかの変更は、ダイジェストを変更することになる。カーネルキャッシュダイジェストは、カーネルキャッシュのキー付きハッシュであり、キーはFDEボリュームキーである。
システムが記憶されたカーネルキャッシュダイジェストを取り込むと、システムは、カーネルキャッシュが、ユーザ入力の資格証明書に基づいて真正であることを確認し(240)、カーネルキャッシュが真正であるとシステムが判定する場合、オペレーティングシステムの開始及び実行を可能にする(250)。システムは、カーネルキャッシュが真正でない場合、エラーを生成し(260)、オペレーティングシステムを実行しない。システムは、カーネルの完全性を確認できない場合、コンピュータデバイスが不正変更されていると仮定する。この処理は、完全性チェックがブート処理の各段階で行われるという理由から耐タンパー性ブートと呼ばれ、不正変更に対するシステム耐性をもたらし、ブート処理の重要部分が許可なく変更された場合を検出することができる。
ユーザが手動でフルディスク暗号化を行うこと、又はいくつかの自動処理がフルディスク暗号化を開始することができるが、大部分の自動処理は、システムがボリュームキーを生成するパスワードの入力といった特定のユーザ入力を必要とする。耐タンパー性ブート処理は、フルディスク暗号化が可能になった場合及び/又は何らかの適切な共有秘密キーがフルディスク暗号化ボリュームキーの変わりとして利用可能になった場合の他の状况において使用できる。
図3は、ファームウェアからカーネルへの信頼チェーンの確立の一部である、例示的なカーネルキャッシュ認証を示す。システム100は、暗号化アルゴリズム、ユーザ入力パスワード、及びカーネルキャッシュを用いてHMACを演算することで(310)、カーネルキャッシュが真正でないことを確認する(240)。システム100は、HMACを出力する暗号学的ハッシュ関数への入力としてカーネルキャッシュ及びパスワードを使用する。システム100は、演算したHMACを記憶されたカーネルキャッシュダイジェストと比較して(320)、オペレーティングシステムが不正変更されたか否かを判定する。比較された値が一致する場合(330)、オペレーティングシステムは不正変更されておらず真正とみなし、システムはブートを継続できる。比較された値が異なる場合(340)、カーネルキャッシュダイジェストが生成され真正ではないのでオペレーティングシステムは変更されている。この時点で、システムはブート処理を停止して、ユーザにパスワードの再入力を指示し、リモートデバイスに警告を送ること、及び/又は何らかの他の所望のアクションを起動することができる。
図4は、耐タンパー性ブート処理を示す。システム100は、ファームウェア410を用いてシステムをブート処理して、ファームウェア410によってブーター420の完全性を確かめることによって、オペレーティングシステムが不正変更されていないことを確認する。システムがファームウェアよってブーターの完全性を確かめると、システムは、制御をブーター420に渡す。ブーターは、記憶されたカーネルキャッシュダイジェスト430及びブート時間420に入力されたパスワードに基づいてオペレーティングシステムのカーネルキャッシュ440を確かめる。カーネルキャッシュの真正性は、カーネルキャッシュ及びユーザ入力パスワードを用いてHMACを演算することで(450)判定される。ブート処理がオペレーティングシステムは不正変更されてないと判定すると、開始及び実行のために、ブート処理は制御をオペレーティングシステムに渡す。
図5は、耐タンパー性ブート処理の開始を示す。システム100は、ユーザから受け取ったフルディスク暗号化パスワードに基づいて最初にボリュームキーを生成することで、耐タンパー性ブート処理を開始する(510)。システム100は、ボリュームキーを用いて記憶媒体を暗号化してフルディスク暗号化記憶媒体を得る(520)。ボリュームキーは、フルディスク暗号化及び/又はユーザ登録処理に関するセットアップ処理の一部として生成することができる。例えば、ユーザが記憶ボリュームのフルディスク暗号化のセットアップを決めた場合、システムは、ユーザに対してフルディスク暗号化パスワード又はパスワードに等価なものの入力を指示する。次に、システムは、フルディスク暗号化パスワードに基づいてボリュームキーを生成し、ボリュームキーを用いてボリュームを暗号化し、同時に耐タンパー性ブート処理に関して同じボリュームキーを使用することができる。次に、システム100は、カーネルキャッシュ及びフルディスクボリュームキーを用いてカーネルキャッシュダイジェストを生成し(530)、これをシステム100は暗号化されていないボリュームに記憶する(540)。システムがブートすると、システムは、記憶されたカーネルキャッシュダイジェスト及び演算されダイジェストに基づいてカーネルキャッシュの完全性を確認する。少なくとも1つの変形形態において、システム100は、暗号化された記憶ボリューム以外の場所にカーネルキャッシュダイジェストを記憶するが、この理由は、ブート環境が、アンロック処理が非常に複雑でフル機能のカーネルを必要とするのでフルディスク暗号化ボリュームをアンロックできないからである。従って、カーネルキャッシュは、ブーターがフルディスク暗号化ボリュームをアンロックできないのでの、暗号化ボリューム内に存在できない。その結果、カーネルキャッシュは、フルディスク暗号化ボリュームとは別のボリューム上に暗号化されずに存在し、ここではブーターは、該ブーターでは不可能な復号化を行うことなくカーネルキャッシュに達することができる。データはFDEボリューム上で暗号化されるが、カーネルキャッシュは全く保護されず、攻撃者による置き換えにさらされる可能性がある。
カーネルは、キー付きHMACダイジェスト(フルディスク暗号化ボリュームキーがダイジェストキーとして使用される)がカーネルの隣に存在する限り、保護されていないボリューム上に存在することができる。従って、攻撃者は、カーネルを悪意のあるものに置き換えることができるが、攻撃者はフルディスク暗号化パスワードを知らないので、攻撃者はマッチングダイジェストファイルを作ることができず、ブーターは、悪意のあるカーネルのブートを拒否することになる。
耐タンパー性ブート処理の開始及び実行を説明したが、本開示は、以下に、コンピュータデバイスの耐タンパー性ブート処理を無効にする方法を説明する。システム100は、最初に耐タンパー性ブート処理を無効にするリクエストを認証して、リクエストが有効でハッカーからのものではないことを確認する必要がある。システムは、パスワード証明書(password proof)を生成することで、耐タンパー性ブート処理を無効にするリクエストが有効であることを確認する。ファームウェア及びオペレーティングシステムは同時に実行されないので、従来のやり方は、2つのプロセスが相互通信するための実行可能な方法を提示しない。オペレーティングシステムは、ファームウェアに情報を送ってマシンをブートすることができ、ファームウェアは、ブート時間にオペレーティングシステムからのメッセージを受け取ることができる。しかしながら、いくつかの状况では、複数のリブートは許されないので、システムは、コマンドをファームウェアに対して一度だけ送ることができる。ファームウェアは、オペレーティングシステムによって書き込みできないが読み出し可能な不揮発性ランダムアクセスメモリ(NVRAM)チップに記憶される。オペレーティングシステムは、平テキストで記憶されオペレーティングシステムで読み出し可能なので、元のパスワードを送ることはできない。また、オペレーティングシステムは、攻撃者がハッシュを読み取ってアンロック機構を始動させることができるので、パスワードのハッシュを送ることはできない。オペレーティングシステムは、保護されていないが、依然として無効リクエストの真正性を確認するデータを送る必要がある。このことは、パスワード検証子(password verifier)及びパスワード証明書を使用して実現できる。
図6は、ファームウェアレベルでパスワード検証子を生成してパスワード証明書と比較することで、耐タンパー性ブート処理を無効にする方法を示す。システム100は、パスワード検証子を生成して、後で使用するために記憶する(610)。システム100は、ユーザからリクエスト及びパスワードを受け取り、耐タンパー性ブートを無効にする(620)。オペレーティングシステムは、暗号化アルゴリズムの複数回の反復の一部を要求パスワード及びソルト値に適用することで部分的なパスワード証明書を生成し(630)、次に、コンピュータデバイスを再起動する(640)。システムがリブートすると、ファームウェアは、部分的なパスワード証明書を取り込んで(650)、暗号化アルゴリズムの残りの反復回数を実行して、完全なパスワード証明書を得る(660)。パスワード証明書がパスワード検証子に一致する場合、システム100は、耐タンパー性ブート処理を無効にする(670)。システムは、リクエストが真正であることが確認される場合のみ耐タンパー性ブート処理を無効にする。
図7及び8は、パスワード検証子の生成方法を示す。システム100は、先行する反復の出力を現在の反復の入力として利用して、暗号化アルゴリズムの複数回の反復を実行することでパスワード検証子を生成する(720)。例えば、本プロセスは、PV1を使用してPV2を生成し、PV99を使用してPV100を生成する。最初の反復の場合に(710)、先行する反復からの出力がないのでパスワードPが入力として使用される。システム100は、例えば100回の反復を行うことでパスワード検証子を生成する(740)。パスワード証明書は、中間点の反復といった、1つ又はそれ以上の中間の反復の出力から得られる(730)。先行の反復からの出力を暗号化アルゴリズムの入力として使用することに加えて、サルト値を使用する。サルト値は、通常暗号学的ハッシュ関数であるキー派生関数への1つの入力として使用されるランダムビットを含む。サルトデータは、記憶量及びパスワードを決定するのに必要な演算量を増大させるので攻撃を困難にする。盗んだハッシュからパスワードを特定するために、攻撃者はランダム特性のハッシュを計算する必要があるので、所要の演算時間が増加する。いくつかの状况では、このプロセスはフルディスク暗号化ボリュームを有するデバイス上のプロセッサでの実行に限定される、結果的に、反復回数は、プロセッサ速度に基づいて選択又は決定することができ、何らかの攻撃に必要な時間は、プロセッサの速度の関数であり、総当たり攻撃で見つけることは容易ではない。HMACを演算する際にSHA−1又はMD5のような任意の暗号学的ハッシュ関数を使用することができる。
パスワード検証子の生成は、パスワードP、サルト値S、実行反復回数n、及びインデックスiを必要とする(810)。システムは、インデックスiと反復回数nを比較して所要の反復回数が終了しているか否かをチェックする(810)。両者が等しくない場合、プロセスは終了しておらず追加の反復が必要である。次に、システムは、現在のラウンドiに関するラウンドパスワード検証子を生成する(830)。ラウンドパスワード検証子PViの生成は、暗号化アルゴリズム、先行するラウンドPVi−1からのパスワード検証子(現在にラウンドが1ではない場合)、及びサルト値Sを用いて行われる(830)。最初のラウンドに関しては先行するラウンド検証子が存在しないので、パスワードPを使用してPV0を初期設定する(810)。次に、システムはインデックスをインクリメントして(830)、このインデックスを反復回数と比較して所要の反復回数が終了したか否かをチェックする(820)。インデックスが反復回数と一致する場合、プロセスは終了してシステムはパスワード検証子を出力する(840)。
システムは、パスワード検証子及び同じプロセスに続いてパスワード証明書を生成するが、パスワード証明書を生成する段階はコンピュータデバイスをブート処理すること以外で同じプロプロセスである。システムは、通常は半分である全反復回数の所要の一部だけで遂行して、自身がリブートする。システムが再起動されると、残りの反復回数が遂行されて最終的なパスワード証明書がもたらされる。図9及び10は、パスワード証明書の生成方法を示す。例えば、パスワード証明書を生成するのに必要な全反復回数は100であり、システムは、50回の反復を使用して一部のパスワード証明書を生成し、その結果をリブート処理の前に記憶する(910)。システムが再起動すると、記憶された部分パスワード証明書を読み込んで残りの50回の反復を遂行して最終的なパスワード証明書をもたらす(1010)。部分的なパスワード証明書は、中間点で又は特定の反復セットの他の点で生成することができる。部分的なパスワード証明書は、元のパスワード、反復回数、パスワード検証子、又はパスワード証明書に関する何らかの有用な情報を示さないので、平テキスト及び/又は他のプロセスが読み出すことができるメモリ領域に記憶しても安全である。
図11及び12は、パスワード証明書の生成方法を示す。システム100は、先行する反復の出力を現在の反復の入力として利用して、暗号化アルゴリズムの複数回の反復を遂行することでパスワード証明書を生成する。例えば、このプロセスは、PV1を使用してPV2を生成し、PV99を使用してPV100を生成する。最初の反復の場合には先行する反復からの出力がないのでパスワードPを使用する。先行する反復からの出力を暗号化アルゴリズムの入力として使用することに加えて、サルト値を使用する。
パスワード証明書の生成は、パスワードP、サルト値S、実行反復回数n、インデックスi、及びンデックスjを必要とするが(1110)、jは反復回数を2で除算したものである。システムは、インデックスiをインデックスjと比較して所要の反復回数が終了したか否かをチェックする(1120)。両者が等しくない場合、プロセスは終了しておらず追加の反復が必要である。次に、システムは、現在のラウンドiに関するラウンドパスワード検証子を生成する(1130)。ラウンドパスワード検証子PViの生成は、暗号化アルゴリズム、先行するラウンドPVi−1からのパスワード検証子(現在にラウンドが1ではない場合)、及びサルト値Sを用いて行われる(1130)。最初のラウンドに関しては先行するラウンド検証子が存在しないので、パスワードPを使用してPV0を初期設定する(1110)。次に、システムはインデックスをインクリメントして(1130)、このインデックスを反復回数と比較して所要の反復回数が終了したか否かをチェックする(1120)。インデックスiがインデックスjと一致する場合、プロセスは部分的なパスワード証明書を記憶してコンピュータデバイスをリブートする(1140)。
コンピュータデバイスがリブートすると、ファームウェアは残りの反復を演算して完全なパスワード証明書をもたらす。反復の半分は既に遂行されているので、インデックスiはj+1に初期化される(1210)。システムは、インデックスiと反復回数nとを比較して、所要の反復回数が終了したか否かをチェックする(1220)。両者が一致しない場合、プロセスは終了しておらず追加の反復が必要である。次に、システムは、現在のラウンドiに関するラウンドパスワード検証子を生成する(1230)。ラウンドパスワード検証子PViの生成は、暗号化アルゴリズム、先行するラウンドPVi−1からのパスワード検証子、及びサルト値Sを用いて行われる(1230)。次に、システムはインデックスをインクリメントして(1230)、このインデックスを反復回数と比較して所要の反復回数が終了したか否かをチェックする(1220)。インデックスiが反復回数と等しい場合、プロセスは終了し、システムは完全なパスワード証明書PVnを出力する(1240)。
図13は、パスワード証明書の生成方法を示す。部分的なパスワード証明書は、元のパスワードではないがパスワードの派生物なので安全である。システム100は、これを何らかのプロセス(悪意のあるプロセスも含む)で読み出せるようにNVRAM1310に記憶する。プロセスは、中間点での証明書を得るために元のパスワードを保持する必要がある(1320)。次に、ファームウェアは、残りに反復を繰り返して、証明書が元のパスワードを所持するプロセスから来たことを確認することができる(1330)。このプロセス自体は、一定時間に到達するまでループ内でHMAC反復を実行し、新しい高速ハードウェアに容易に適合するので、ハードウェアが改良された場合の自動改善に役立つ。高速ハードウェアは、単純に多数の反復を実行して同様の性能特性を実現することができる。反復回数は、所望の実行性能、安全性、及び/又は他の特性閾値に基づいて選択又は決定することができる。
図14は、フルディスク暗号化の無効化方法を示す。システムは、耐タンパー性ブート処理を無効にする権限を与えられたユーザのリストを生成し(1410)、このリストをファームウェアへ送る(1420)。システムは、各ユーザに関するパスワード検証子を生成し、この検証子をソフトウェア1340としてNVRAM1310に記憶する(1430)。システムがユーザについてのパスワード証明書に関するコマンドを送出する場合、システムはパスワード証明書を認証コマンドインタフェース(ACI)のための「ドロップボックス」に入れ、ここではNVRAM1310は次のブートでコマンドを読み出す。NVRAMはオペレーティングシステム及び全てのユーザが読み出し可能なので、いずれかのユーザはこのNVRAM内のコマンドを読むことができ、パスワード証明書を盗むことができる。従来、サルトはこの問題を解決するために使用されている。しかしながら、これを実現するのは容易ではない。従って、システムは、マシンが最初にブートする場合に、システムサルトを生成して(1440)、システムサルトをNVRAMに記憶する(1450)。NVRAMに記憶されたシステムサルトは、ACIインタフェースを経由してファームウェアに送出される次のコマンドに利用される。ファームウェアは、コマンドが送出される度に新しいランダムサルトをNVRAMに入れる。
本明細書で説明する手法で実現できる1つの新しい結果は、フルディスク暗号化可能システムにおけるより安全なブート処理であり、ブート信頼チェーンの無許可の変更を検出できる。この手法の他の結果は、最小数のシステムリブートでこの安全なブートを有効及び/又は無効にできることである。
本開示の範囲内の実施形態は、記憶されるコンピュータ実行可能命令又はデータ構造を実行するか又は格納する有形の及び/又は非一時的なコンピュータ可読記憶媒体を含むことができる。そのような非一時的なコンピュータ可読記憶媒体は、汎用コンピュータ、又は前述の任意の専用プロセッサの機能デザインを含む専用コンピュータによりアクセスされる任意の使用可能な媒体とすることができる。例示的に、限定されるものではないが、そのような非一時的なコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM、或いは他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置、或いはコンピュータが実行可能な命令、データ構造、又はプロセッサチップ設計の形態の所望のプログラムコード手段を保持、或いは格納するために使用される他の任意の媒体を含む。情報がネットワーク、又は別の通信接続(ハードワイヤード、無線、又はそれらの組合せのいずれか)を介してコンピュータに転送、又は提供される場合、コンピュータは、正しく接続をコンピュータ可読媒体として見なす。従って、そのような任意の接続を正しくコンピュータ可読媒体と呼ぶ。前述の組合せは、コンピュータ可読媒体の範囲内にも含まれるべきである。
例えば、コンピュータが実行可能な命令は、ある特定の機能、又は機能のグループを汎用コンピュータ、専用コンピュータ、或いは専用処理装置に実行させる命令及びデータを含む。コンピュータが実行可能な命令は、スタンドアロン環境、又はネットワーク環境においてコンピュータにより実行されるプログラムモジュールを更に含む。一般にプログラムモジュールは、特定のタスクを実行するか、或いは特定の抽象データ型を実現する専用プロセッサの設計に固有のルーチン、プログラム、構成要素、データ構造、オブジェクト及び機能等を含む。コンピュータが実行可能な命令、関連したデータ構造及びプログラムモジュールは、本明細書において開示した方法のステップを実行するプログラムコード手段の例を示す。そのような実行可能な命令、または関連したデータ構造の特定のシーケンスは、そのようなステップにおいて説明した機能を実現する対応する動作の例を示す。
本発明の他の実施形態がパーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの購買者向けの電子機器、またはプログラム可能な購買者向けの電子機器、ネットワークPC、ミニコンピュータ及びメインフレームコンピュータ等を含む多くの種類のコンピュータシステム構成でネットワークコンピューティング環境において実施されることは、当業者により理解されるだろう。実施形態は、通信ネットワークを介してリンクされる(ハードワイヤードリンク、無線リンク、又はそれらの組合せのいずれかにより)ローカル処理装置及びリモート処理装置によりタスクが実行される分散コンピューティング環境において更に実施される。分散コンピューティング環境において、プログラムモジュールは、ローカルメモリ記憶装置及びリモートメモリ記憶装置の双方に配置される。
前述の種々の実施形態は例示的であり、本開示の範囲を限定すると解釈すべきではない。例えば、本明細書の原理は、ディスクトップコンピュータ、ラップトップコンピュータ、携帯デバイス、又は安全で耐タンパー性のブート処理が望まれる、ボリュームキーといった適切な共有秘密キーを有する任意の他のコンピュータ環境に適用することができる。当業者であれば、本明細書に記載して説明される例示的な実施形態及び応用例に追従することなく、及び本開示の精神及び範囲から逸脱することなく、種々の変形及び変更を本明細書に記載の原理から行い得ることを容易に理解できるはずである。

Claims (12)

  1. フルディスク暗号化を利用して暗号化され、オペレーティングシステムを記憶する記憶媒体を有する、コンピュータデバイスをブート処理する方法であって、
    前記コンピュータデバイスにおいて、ブート時間にユーザから、前記暗号化された記憶媒体に関するボリュームキーに関連する資格証明書を受け取る段階と、
    暗号化されていない記憶媒体からカーネルキャッシュ及び前記オペレーティングシステムが生成したカーネルキャッシュダイジェストを取り込む段階と、
    前記資格証明書及び前記カーネルキャッシュダイジェストに基づいて前記カーネルキャッシュが真正であることを確認する段階と、
    前記カーネルキャッシュが真正である場合、前記オペレーティングシステムの開始及び実行、並びに前記暗号化された記憶媒体の復号化を可能にする段階と、
    を含む方法。
  2. ユーザログイン時に、前記資格証明書の少なくとも一部を前記オペレーティングシステムに提供する段階を更に含む、請求項1に記載の方法。
  3. 前記コンピュータデバイスのファームウェアは、カーネルキャッシュが真正であることを確認する、請求項1に記載の方法。
  4. 前記オペレーティングシステムは、暗号化アルゴリズム、ユーザ資格証明書、及びカーネルキャッシュを使用して前記カーネルキャッシュダイジェストを生成する、請求項1に記載の方法。
  5. 命令を記憶するコンピュータ読み取り可能な記録媒体であって、前記命令はプロセッサによって実行されると前記プロセッサに複数の手順を実行させるためのものであり、当該複数の手順は、 コンピュータデバイスにおいて、ブート時間にユーザから、暗号化された記憶媒体に関するボリュームキーに関連する資格証明書を受け取る手順と、
    暗号化されていない記憶媒体からカーネルキャッシュ及びオペレーティングシステムが生成したカーネルキャッシュダイジェストを取り込む手順と、
    前記資格証明書及び前記カーネルキャッシュダイジェストに基づいて前記カーネルキャッシュが真正であることを確認する手順と、
    前記カーネルキャッシュが真正である場合、前記オペレーティングシステムの開始及び実行、並びに前記暗号化された記憶媒体の復号化を可能にする手順と、
    を含む、コンピュータ読み取り可能な記録媒体。
  6. 前記複数の手順は、ユーザログイン時に、前記資格証明書の少なくとも一部を前記オペレーティングシステムに提供する手順を更に含む、請求項5に記載のコンピュータ読み取り可能な記録媒体。
  7. 前記コンピュータデバイスのファームウェアは、カーネルキャッシュが真正であることを確認する、請求項5に記載のコンピュータ読み取り可能な記録媒体。
  8. 前記オペレーティングシステムは、暗号化アルゴリズム、ユーザ資格証明書、及びカーネルキャッシュを使用して前記カーネルキャッシュダイジェストを生成する、請求項5に記載のコンピュータ読み取り可能な記録媒体。
  9. データ処理システムであって、
    プロセッサと、
    前記プロセッサに接続され、命令を記憶するためのメモリであって、前記命令はプロセッサによって実行されると前記プロセッサに複数の手順を実行させるためのものであり、当該複数の手順は、
    ブート時間にユーザから、暗号化された記憶媒体に関するボリュームキーに関連する資格証明書を受け取る手順と、
    暗号化されていない記憶媒体からカーネルキャッシュ及びオペレーティングシステムが生成したカーネルキャッシュダイジェストを取り込む手順と、
    前記資格証明書及び前記カーネルキャッシュダイジェストに基づいて前記カーネルキャッシュが真正であることを確認する手順と、
    前記カーネルキャッシュが真正である場合、前記オペレーティングシステムの開始及び実行、並びに前記暗号化された記憶媒体の復号化を可能にする手順と、
    を含む、メモリと、
    を備える、データ処理システム。
  10. 前記複数の手順は、ユーザログイン時に、前記資格証明書の少なくとも一部を前記オペレーティングシステムに提供する手順を更に含む、請求項9に記載のデータ処理システム。
  11. 前記データ処理システムのファームウェアは、カーネルキャッシュが真正であることを確認する、請求項9に記載のデータ処理システム。
  12. 前記オペレーティングシステムは、暗号化アルゴリズム、ユーザ資格証明書、及びカーネルキャッシュを使用して前記カーネルキャッシュダイジェストを生成する、請求項9に記載のデータ処理システム。
JP2013549562A 2011-01-14 2012-01-13 耐タンパー性ブート処理のためのシステム及び方法 Expired - Fee Related JP5703391B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/007,529 2011-01-14
US13/007,529 US8560845B2 (en) 2011-01-14 2011-01-14 System and method for tamper-resistant booting
PCT/US2012/021215 WO2012097231A2 (en) 2011-01-14 2012-01-13 System and method for tamper-resistant booting

Publications (2)

Publication Number Publication Date
JP2014505943A JP2014505943A (ja) 2014-03-06
JP5703391B2 true JP5703391B2 (ja) 2015-04-15

Family

ID=45582028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013549562A Expired - Fee Related JP5703391B2 (ja) 2011-01-14 2012-01-13 耐タンパー性ブート処理のためのシステム及び方法

Country Status (7)

Country Link
US (1) US8560845B2 (ja)
EP (1) EP2663945A2 (ja)
JP (1) JP5703391B2 (ja)
KR (1) KR101476948B1 (ja)
CN (1) CN103502992B (ja)
AU (1) AU2012205457B2 (ja)
WO (1) WO2012097231A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336439B2 (en) 2018-08-29 2022-05-17 Nec Corporation Information processing device, information processing method, and recording medium
US11349641B2 (en) 2018-08-29 2022-05-31 Nec Corporation Information processing device, information processing method, and recording medium

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860274B2 (en) 2006-09-13 2018-01-02 Sophos Limited Policy management
US9235532B2 (en) * 2011-06-03 2016-01-12 Apple Inc. Secure storage of full disk encryption keys
US8850177B2 (en) 2011-07-08 2014-09-30 Openpeak Inc. System and method for validating components during a booting process
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US20140281539A1 (en) * 2012-03-30 2014-09-18 Goldman, Sachs & Co. Secure Mobile Framework With Operating System Integrity Checking
US8793506B2 (en) * 2012-08-31 2014-07-29 Intel Corporation Mechanism for facilitating encryption-free integrity protection of storage data at computing systems
US10175750B1 (en) * 2012-09-21 2019-01-08 Amazon Technologies, Inc. Projected workspace
EP2912588A4 (en) 2012-10-25 2016-06-29 Intel Corp ANTI-THEFT IN A MICROLOGICIEL
US9141811B2 (en) * 2013-08-01 2015-09-22 Dropbox, Inc. Coerced encryption on connected devices
JP5904596B2 (ja) * 2013-08-28 2016-04-13 Necプラットフォームズ株式会社 耐タンパ装置、及び方法
CN104951316B (zh) 2014-03-25 2018-09-21 华为技术有限公司 一种内核可信启动方法和装置
US10089245B2 (en) * 2015-05-18 2018-10-02 Hewlett Packard Enterprise Development Lp Management of encryption keys for multi-mode network storage device
US9894061B2 (en) 2015-10-16 2018-02-13 International Business Machines Corporation Method for booting and dumping a confidential image on a trusted computer system
CN107045611B (zh) * 2016-02-05 2022-01-25 中兴通讯股份有限公司 安全启动方法及装置
US10541816B2 (en) 2016-06-01 2020-01-21 International Business Machines Corporation Controlling execution of software by combining secure boot and trusted boot features
KR102573921B1 (ko) * 2016-09-13 2023-09-04 삼성전자주식회사 바이러스/멀웨어로부터 안전한 저장 장치, 그것을 포함한 컴퓨팅 시스템 및 그것의 방법
US10621351B2 (en) * 2016-11-01 2020-04-14 Raptor Engineering, LLC. Systems and methods for tamper-resistant verification of firmware with a trusted platform module
US10387333B2 (en) 2017-01-05 2019-08-20 Qualcomm Incorporated Non-volatile random access memory with gated security access
US10467416B2 (en) * 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10885213B2 (en) * 2017-09-12 2021-01-05 Sophos Limited Secure firewall configurations
JP6584487B2 (ja) * 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
US11138315B2 (en) 2018-01-17 2021-10-05 Hewlett Packard Enterprise Development Lp Data structure measurement comparison
US11119789B2 (en) 2018-04-25 2021-09-14 Hewlett Packard Enterprise Development Lp Kernel space measurement
CN110677250B (zh) * 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US11068598B2 (en) * 2018-11-01 2021-07-20 Dell Products L.P. Chassis internal device security
CN110290146B (zh) * 2019-07-03 2021-10-08 北京达佳互联信息技术有限公司 分享口令的生成方法、装置、服务器及存储介质
DE102020211346A1 (de) * 2020-09-10 2022-03-10 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Booten einer elektronischen Vorrichtung
CN112131612B (zh) * 2020-09-30 2024-03-08 杭州安恒信息安全技术有限公司 一种cf卡数据防篡改方法、装置、设备及介质
CN112270002B (zh) * 2020-10-26 2024-03-22 北京指掌易科技有限公司 全盘加密方法、系统运行方法和电子设备
CN112613011B (zh) * 2020-12-29 2024-01-23 北京天融信网络安全技术有限公司 U盘系统认证方法、装置、电子设备及存储介质
US20220360594A1 (en) * 2021-05-05 2022-11-10 Sophos Limited Mitigating threats associated with tampering attempts
US11809568B2 (en) * 2021-05-12 2023-11-07 International Business Machines Corporation Hypervisor having local keystore

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
US6985583B1 (en) * 1999-05-04 2006-01-10 Rsa Security Inc. System and method for authentication seed distribution
TW591630B (en) 2002-06-04 2004-06-11 Key Technology Corp Data security device of storage medium and data security method
JP2004265286A (ja) * 2003-03-04 2004-09-24 Fujitsu Ltd 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理
US7360073B1 (en) * 2003-05-15 2008-04-15 Pointsec Mobile Technologies, Llc Method and apparatus for providing a secure boot for a computer system
US20050273858A1 (en) 2004-06-07 2005-12-08 Erez Zadok Stackable file systems and methods thereof
GB2419434A (en) 2004-10-23 2006-04-26 Qinetiq Ltd Encrypting data on a computer's hard disk with a key derived from the contents of a memory
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US20070039042A1 (en) * 2005-08-12 2007-02-15 First Data Corporation Information-security systems and methods
US8190916B1 (en) * 2006-07-27 2012-05-29 Hewlett-Packard Development Company, L.P. Methods and systems for modifying an integrity measurement based on user authentication
DE102008011925B4 (de) * 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
US20100082963A1 (en) * 2008-10-01 2010-04-01 Chun Hui Li Embedded system that automatically updates its software and the method thereof
US8788841B2 (en) * 2008-10-23 2014-07-22 Samsung Electronics Co., Ltd. Representation and verification of data for safe computing environments and systems
CN101739622A (zh) * 2008-11-06 2010-06-16 同方股份有限公司 一种可信支付计算机系统
JP5346608B2 (ja) * 2009-02-06 2013-11-20 Kddi株式会社 情報処理装置およびファイル検証システム
JP5349114B2 (ja) * 2009-03-31 2013-11-20 株式会社バッファロー 記憶装置
US8868920B2 (en) * 2009-07-12 2014-10-21 Hewlett-Packard Development Company, L.P. Method, system and device for securing a digital storage device
US20120151223A1 (en) * 2010-09-20 2012-06-14 Conde Marques Ricardo Nuno De Pinho Coelho Method for securing a computing device with a trusted platform module-tpm
US8566574B2 (en) * 2010-12-09 2013-10-22 International Business Machines Corporation Secure encrypted boot with simplified firmware update

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336439B2 (en) 2018-08-29 2022-05-17 Nec Corporation Information processing device, information processing method, and recording medium
US11349641B2 (en) 2018-08-29 2022-05-31 Nec Corporation Information processing device, information processing method, and recording medium

Also Published As

Publication number Publication date
KR101476948B1 (ko) 2014-12-24
US20120185683A1 (en) 2012-07-19
CN103502992A (zh) 2014-01-08
WO2012097231A3 (en) 2013-09-12
KR20130114726A (ko) 2013-10-17
AU2012205457B2 (en) 2015-11-19
CN103502992B (zh) 2016-01-13
JP2014505943A (ja) 2014-03-06
WO2012097231A2 (en) 2012-07-19
AU2012205457A1 (en) 2013-08-01
EP2663945A2 (en) 2013-11-20
US8560845B2 (en) 2013-10-15

Similar Documents

Publication Publication Date Title
JP5703391B2 (ja) 耐タンパー性ブート処理のためのシステム及び方法
EP2659373B1 (en) System and method for secure software update
TWI667586B (zh) 用以核對uefi認證變量變化之系統及方法
US10616197B2 (en) Message authentication with secure code verification
US10482255B2 (en) Controlled secure code authentication
JP6371919B2 (ja) セキュアなソフトウェアの認証と検証
TW201732669A (zh) 受控的安全碼鑑認
EP3458999A1 (en) Self-contained cryptographic boot policy validation
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
US10282549B2 (en) Modifying service operating system of baseboard management controller
JP6387908B2 (ja) 認証システム
KR20130008939A (ko) 휴대 단말기에서 단말 고유 정보의 복제를 방지하는 장치 및 방법
CN104794394A (zh) 一种虚拟机启动校验的方法及装置
US8499357B1 (en) Signing a library file to verify a callback function
US20210135872A1 (en) Implicit attestation for network access
CN115357948A (zh) 一种基于tee及加密芯片的硬件防抄板加密方法及其装置
JP2024507531A (ja) デジタルデバイスのためのトラステッドコンピューティング
CN116089967B (zh) 数据防回滚方法和电子设备
US20240126886A1 (en) Trusted Computing for Digital Devices
CN116011043A (zh) 基于ssd的固件安全启动方法、装置、设备及存储介质
CN116451188A (zh) 一种软件程序运行安全保护方法、系统以及存储介质
Drennan Secure Block Storage

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150223

R150 Certificate of patent or registration of utility model

Ref document number: 5703391

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees