(57)【要約】【課題】プリブートが完了したあとにディスク・ドライブに送出される暗号キーを保護する方法を提供する。【解決手段】ディスク・ドライブ１９は、ハードウェアBitLocker（登録商標）のように、システムから受け取ったデータを暗号化して格納し、システムからマスター・キーを受け取ったときに暗号化したデータを復号してシステムに返送する。パワー・オフ状態からのプリブートを開始したときに、プリブートが完了する前にタンパー検出回路２７がディスク・ドライブに対する物理的なタンパー行為を検出してタンパー・ビット１５３をセットする。タンパー・ビット１５３を参照して保護モジュール１６３がＰＣＲ群１７３を改変し、マスター・キー１７５ｂのアンシールを阻止する。【選択図】図１
2016025616.tif 000002
【特許請求の範囲】
【請求項１】
ボリュームの全体を暗号化し、システムから暗号キーを受け取ったときに前記ボリュームのデータを復号するディスク・ドライブを実装する携帯式コンピュータであって、
パワー・オフ状態からブートを開始したときに前記ディスク・ドライブに自動的に前記暗号キーを送るキー転送機構と、
前記ディスク・ドライブに対する物理的なタンパー行為を検出するタンパー検出機構と、
前記タンパー検出機構が前記物理的なタンパー行為を検出したことに応答して前記キー転送機構が前記ディスク・ドライブに自動的に前記暗号キーを送る動作を阻止する保護機構と
を有する
携帯式コンピュータ。
【請求項２】
前記保護機構が、ＰＣＲ（Platform Configuration Register）を利用して前記暗号キーをシールするＴＰＭ（Trusted Platform Module）を含み、前記キー転送機構は前記暗号キーを転送する前に前記ＴＰＭに前記暗号キーのアンシール要求をする請求項１に記載の携帯式コンピュータ。
【請求項３】
前記保護機構が、前記暗号キーのシールに利用したＰＣＲにシステム・ファームウェアがプリブート中にハッシュ値を書き込んだあとにダミーのハッシュ値を書き込む請求項２に記載の携帯式コンピュータ。
【請求項４】
前記暗号キーのシールに利用したＰＣＲが、前記携帯式コンピュータのプラットフォームに固有のＰＣＲを含み、前記保護機構が前記固有のＰＣＲにだけ前記ダミーのハッシュ値を書き込む請求項３に記載の携帯式コンピュータ。
【請求項５】
前記保護機構が、前記物理的なタンパー行為を検出したことに応答して前記キー転送機構がパスワードの入力を要求する請求項１に記載の携帯式コンピュータ。
【請求項６】
前記タンパー検出機構が、前記物理的なタンパー行為を検出したときにセットするタンパー・ビットを含み、前記パスワードが入力されたときに前記パワー・オフ状態に移行する際に前記保護機構が前記タンパー・ビットをリセットする請求項５に記載の携帯式コンピュータ。
【請求項７】
前記タンパー検出機構が、前記ディスク・ドライブを前記携帯式コンピュータから取り外すために筐体の蓋が取り外されたことを検出する請求項１に記載の携帯式コンピュータ。
【請求項８】
前記ディスク・ドライブが、ハードウェアBitLocker（登録商標）に適合する請求項１に記載の携帯式コンピュータ。
【請求項９】
システムから受け取ったデータを暗号化して格納し、前記システムから暗号キーを受け取ったときに前記暗号化したデータを復号して前記システムに返送するディスク・ドライブを備える携帯式コンピュータにおいて、前記暗号キーを保護する方法であって、
パワー・オフ状態からのブートを開始するステップと、
前記ディスク・ドライブに対する物理的なタンパー行為をシステム・ファームウェアによるブート・ルーチンが終了する前に検出するステップと、
前記ブート・ルーチンが終了したあとに前記ディスク・ドライブに前記暗号キーを自動的に転送する処理を前記物理的なタンパー行為を検出したときに阻止するステップと
を有する方法。
【請求項１０】
前記暗号キーをＰＣＲ（Platform Configuration Register）を利用してシールするステップを有し、
前記阻止するステップが、前記物理的なタンパー行為を検出したことに応答してブート中に前記システム・ファームウェアがハッシュ値を書き込んだ前記ＰＣＲにダミーのハッシュ値を書き込むステップを含む請求項９に記載の方法。
【請求項１１】
前記ダミーのハッシュ値を書き込んだＰＣＲが正常なブート中に前記システム・ファームウェアがハッシュ値を書き込むＰＣＲ以外のＰＣＲである請求項１０に記載の方法。
【請求項１２】
前記阻止するステップが、前記物理的なタンパー行為を検出したときに前記システム・ファームウェアがパスワード入力を要求するステップを含む請求項９に記載の方法。
【請求項１３】
ボリュームの全体を暗号化したデータをシステムから暗号キーを受け取ったときに復号するディスク・ドライブを実装する携帯式コンピュータにおいて、前記暗号化したデータを保護する方法であって、
パワー・オフ状態からのブートを開始するステップと、
前記ディスク・ドライブに対する物理的なタンパー行為を検出したときにシステム・ファームウェアが前記ディスク・ドライブにタンパー情報を転送する機能を前記携帯式コンピュータに実現させるステップと、
タンパー情報を受け取った前記ディスク・ドライブがロック状態に移行するステップと、
前記ロック状態に移行したディスク・ドライブが前記暗号キーを受け取ったときに前記ロック状態が解除されるまで前記データの復号を停止するステップと
を有する方法。
【請求項１４】
前記物理的なタンパー行為の検出に応じて入力されたパスワードを前記システム・ファームウェアが前記ディスク・ドライブに送る機能を前記携帯式コンピュータに実現させるステップと、
前記パスワードを受け取った前記ディスク・ドライブが前記ロック状態を解除するステップと
を有する請求項１３に記載の方法。
【請求項１５】
システムから受け取ったデータを暗号化して格納し、前記システムから暗号キーを受け取ったときに前記暗号化したデータを復号して前記システムに返送するディスク・ドライブを備える携帯式コンピュータに、
プリブートを実行する機能と、
前記プリブートの間に前記ディスク・ドライブに対する物理的なタンパー行為を検出する機能と、
前記物理的なタンパー行為を検出したことに応答して前記プリブートが完了したあとに前記ディスク・ドライブに対する前記暗号キーの自動的な転送を停止する機能と
を実現させるためのコンピュータ・プログラム。
【請求項１６】
前記停止する機能が、暗号化された前記暗号キーの復号を阻止する機能を含む請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記停止する機能が、前記プリブートを停止する機能を含む請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
前記暗号キーの転送を停止する処理をしたあとに、ユーザ認証のためにパスワードを要求する機能と、
前記パスワード認証が成功したときに前記暗号化したデータを復号させる機能と
を含む請求項１５に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク・ドライブが記憶するデータを保護する技術に関し、さらには、暗号化したデータを読み取るためにシステムがディスク・ドライブに送る暗号キーを保護する技術に関する。
【背景技術】
【０００２】
コンピュータが搭載するハードディスク・ドライブ（ＨＤＤ）やソリッド・ステート・ドライブ（ＳＳＤ）などが記憶するデータを保護することは情報処理技術の分野における普遍的な課題である。マイクロソフト（登録商標）社では、従来からWindows（登録商標）BitLocker（登録商標）Drive Encryption（以後、BitLocker（登録商標））というディスク・ドライブのボリューム全体を暗号化する技術を提供している。
【０００３】
従来のBitLocker（登録商標）は、システムのＣＰＵがデータを暗号化したあとにＨＤＤに書き込んでいる。このようなBitLocker（登録商標）を、以後、ソフトウェアBitLocker（登録商標）ということにする。ソフトウェアBitLocker（登録商標）を使用すると、ＨＤＤの盗難やコンピュータのリサイクルを通じてデータが盗聴される危険性をなくすことができるが、最初の暗号化に数時間かかったり、アクセルの都度発生する暗号化処理および復号処理のためにシステムに負担がかかってパフォーマンスの低下をもたらしたりする。
【０００４】
ＴＣＧ（Trusted Computing Group）は、コンピューティング環境におけるセキュリティ技術の向上を目的として、２０１２年にストレージ・セキュリティの最新仕様としてのTCG OPAL（TCG Storage Security Subsystem Class: Opal ”Specification Version 2.00”）を発表した。TCG OPALに準拠したＦＤＥ（Hardware-based full disk encryption）ディスク・ドライブを多くのベンダーが提供している。ＦＤＥディスク・ドライブは、ディスクまたはディスク・ボリュームに存在するすべてのデータを内部に搭載するハードウェアおよびデバイス・ファームウェアによる暗号技術で暗号化する。暗号化には１２８ビットまたは２５６ビットのＡＥＳ（Advanced Encryption Standard）キーを利用する。
【０００５】
マイクロソフト（登録商標）社では、TCG OPALとIEEE1667に準拠したｅＤｒｉｖｅと称するＨＤＤを利用した、ＯＳに組み込んだ新たなBitLocker（登録商標））の仕様を策定し、Windows（登録商標）8から実装を開始している。以後、このようにＨＤＤの内部で暗号処理をするBitLocker（登録商標）をハードウェアBitLocker（登録商標）ということにする。ハードウェアBitLocker（登録商標）では、システムから受け取ったすべてのデータをｅＤｒｉｖｅが内部で暗号化する。
【０００６】
特許文献１は、ＨＤＤバスワードの盗聴を防止する発明を開示する。同文献には、ＢＩＯＳやＵＥＦＩといったシステム・ファームウェアが、サスペンド状態やハイバネーション状態から復帰する際に、それ以前にディスク・ドライブが本体から取り外されたことを検出したときは、ＨＤＤパスワードの自動送出を停止してユーザにパスワードを要求するかまたは強制的にシャットダウンしてパスワードを保護することが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−１４５４７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ハードウェアBitLocker（登録商標）は、ソフトウェアBitLocker（登録商標）に比べてパフォーマンスに優れているという利点がある一方で、暗号キーの盗聴という新たな問題が存在することがわかってきた。ハードウェアBitLocker（登録商標）では、ｅＤｒｉｖｅがシステムから受け取ったデータを、フルボリューム暗号化キー（ＦＶＥＫ）で暗号化する。ＦＶＥＫは、システムが保有するボリューム・マスター・キー（ＶＭＫ）で暗号化される。ＶＭＫは、ＴＣＧが仕様を規定するＴＰＭ（Trusted Platform Module）というセキュリティ・チップで保護されるため、システムが保持している間に盗聴される危険性は極めて低い。
【０００９】
ハードウェアBitLocker（登録商標）は、ｅＤｒｉｖｅが記憶する暗号化されたデータを読み取る際に、ＶＭＫをｅＤｒｉｖｅに転送してＦＶＥＫを復号しておく必要がある。ｅＤｒｉｖｅがブート・ドライブの場合は、ハードウェアBitLocker（登録商標）はブート・ファイルのロードを開始する前にＶＭＫをｅＤｒｉｖｅに転送して復号する必要がある。イネーブルに設定されたハードウェアBitLocker（登録商標）は、ブート・ルーチンの間に自動的にＶＭＫをｅＤｒｉｖｅに転送する。このとき、不正にコンピュータを取得した盗聴者が、ｅＤｒｉｖｅとマザーボードのコネクタの間に盗聴装置を挿入してからブートを開始すると、システムが自動的に転送するＶＭＫが盗聴される。ソフトウェアBitLocker（登録商標）では、ＨＤＤに暗号キーを転送する必要がないためこのような問題は発生しない。
【００１０】
特許文献１に記載するシステム・ファームウェアが送出するＨＤＤパスワードの保護方法では、盗聴装置の挿入を検出したとしても、ハードウェアBitLocker（登録商標）によるＶＭＫの自動的な送出を直接停止することができない。ハードウェアBitLocker（登録商標）では、ＶＭＫを送る際に毎回ユーザ認証を要求する設定をすることもできる。コンピュータの真正なオーナーだけが知っているパスワードでユーザ認証をＶＭＫの転送条件にすることで盗聴を防ぐことはできる。なお、ＶＭＫはＴＰＭを使って保護しているため、ｅＤｒｉｖｅを取り外して他のコンピュータに装着しても、当該コンピュータではＶＭＫを得ることができない。
【００１１】
しかし、ブートやスリープ状態からのレジュームの際にパスワードを要求することは、コンピュータの迅速な復帰を阻害するため好ましいことではない。また、パスワードの管理は負担になり、ユーザはパスワードを設定しない場合も想定できるためパスワードによる保護は現実的に採用し難い。ハードウェアBitLocker（登録商標）は、自動的かつ透過的にボリューム全体を暗号化して保護できる利点があるため、ＶＭＫの保護もこのような利点を損なわないように行うことが望ましい。さらに、ＶＭＫの保護をコンピュータのセキュアな環境で実行するシステム・ファームウェアだけで行うことができれば確実でかつ実装が容易になるため、コンピュータに保護機能を実装しやすくなる。
【００１２】
そこで本発明の目的は、ディスク・ドライブの内部で暗号化したデータを保護する方法を提供することにある。さらに本発明の目的は、プリブートが完了したあとにディスク・ドライブに自動的に送出される暗号キーを保護する方法を提供することにある。さらに本発明の目的は、暗号キーをユーザに負担をかけないで保護する方法を提供することにある。さらに本発明の目的は、暗号キーをシステム・ファームウェアだけで保護する方法を提供することにある。さらに本発明の目的は、そのような方法を実現する携帯式コンピュータおよびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明は、ボリュームの全体を暗号化し、システムから暗号キーを受け取ったときにボリュームのデータを復号するディスク・ドライブを実装する携帯式コンピュータに関する。携帯式コンピュータは、パワー・オフ状態からブートを開始したときにディスク・ドライブに暗号キーを送るキー転送機構と、ディスク・ドライブに対する物理的なタンパー行為を検出するタンパー検出機構と、タンパー検出機構が物理的なタンパー行為を検出したことに応答してキー転送機構がディスク・ドライブに自動的に暗号キーを送る動作を阻止する保護機構とを有する。
【００１４】
物理的なタンパー行為を検出しないときは、キー転送機構が自動的に暗号キーを送ってボリュームのデータを復号しブートを完了させることができる。しかし物理的なタンパー行為を検出したときは、暗号キーの自動的な転送を阻止するため、盗聴装置の挿入によって暗号キーが盗聴される危険性を軽減することができる。保護機構は、ＰＣＲ（Platform Configuration Register）を利用して暗号キーをシールするＴＰＭを含み、キー転送機構は暗号キーを転送する前にＴＰＭに暗号キーのアンシール要求をすることができる。
【００１５】
保護機構は、暗号キーのシールに利用したＰＣＲにシステム・ファームウェアがプリブート中にハッシュ値を書き込んだあとに、ダミーのハッシュ値を書き込むことができる。その結果、ＴＰＭはアンシール要求があっても暗号キーをアンシールしないため、暗号キーを送る動作を阻止することができる。シールに利用するＰＣＲは、携帯式コンピュータのプラットフォームに固有のＰＣＲを含むときは、保護機構に固有のＰＣＲにだけダミーのハッシュ値を書き込むことができる。
【００１６】
その結果、物理的なタンパー行為が検出されたときは固有のＰＣＲへのダミーのハッシュ値の書き込みで、また、マルウェアで汚染されたときは、マルウェアによる他のＰＣＲへのハッシュ値の書き込みまたは汚染されたシステム・ファームウェアによるハッシュ値の書き込みで暗号キーのアンシールを停止することができる。固有のＰＣＲにダミーのハッシュ値を書き込んだときは、リカバリ・パスワードを使って再起動することなくブートを継続しても、システム・ファームウェアがプリブート中にハッシュ値を書き込んだＰＣＲの他のプログラムによる利用を確保することができる。
【００１７】
保護機構は、ディスク・ドライブに対する物理的なタンパー行為を検出したときに、パスワードの入力を要求するようにしてもよい。そのようなパスワードは、パワーオン・パスワード、ＨＤＤパスワード、またはスーパーバイザ・パスワードのいずれかとすることができる。タンパー検出機構は、ディスク・ドライブを携帯式コンピュータから取り外すために筐体の蓋が取り外されたことを検出することができる。
【００１８】
ディスク・ドライブは、ハードウェアBitLocker（登録商標）に適合するものであってもよい。このとき本発明は、システム・ファームウェアのコードで実現することができるため、ハードウェアBitLocker（登録商標）は標準的な実装でよい。タンパー検出機構は、物理的なタンパー行為を検出したときにセットするタンパー・ビットを含み、保護機構はパスワードが入力されたときにタンパー・ビットをリセットすることができる。この構成により、携帯式コンピュータのオーナーが筐体の蓋を開けたような場合に、安全かつ容易にディスク・ドライブにアクセスできるようになる。
【００１９】
本発明の他の態様では、ディスク・ドライブに対する物理的なタンパー行為を検出したときにシステム・ファームウェアがディスク・ドライブにタンパー情報を転送する。タンパー情報を受け取ったディスク・ドライブは、ロック状態に移行する。ロック状態に移行したディスク・ドライブは、暗号キーを受け取ったときにロック状態が解除されるまでデータの復号を停止する。この構成により、暗号キーが盗聴されてもディスク・ドライブのデータは保護される。ロック状態は、物理的なタンパー行為の検出に応じて入力されたパスワードをディスク・ドライブが認証して解除することができる。
【発明の効果】
【００２０】
本発明により、ディスク・ドライブの内部で暗号化したデータを保護する方法を提供することができた。さらに本発明により、プリブートが完了したあとにディスク・ドライブに自動的に送出される暗号キーを保護する方法を提供することができた。さらに本発明により、暗号キーをユーザに負担をかけないで保護する方法を提供することができた。さらに本発明により、暗号キーをシステム・ファームウェアだけで保護する方法を提供することができた。さらに本発明により、そのような方法を実現する携帯式コンピュータおよびコンピュータ・プログラムを提供することができた。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態にかかるノートＰＣ１０の主要な構成を示す機能ブロック図である。
【図２】タンパー検出機構２００の構成を説明するための機能ブロック図である。
【図３】マスター・キー１７５ａのシールおよびアンシールの方法を説明するための図である。
【図４】マスター・キー１７５ａを保護する手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００２２】
［ノートＰＣの構成］
図１は、ノートブック型パーソナル・コンピュータ（ノートＰＣ）１０の構成の一例を示す機能ブロック図である。本発明の適用範囲はノートＰＣ１０に限定する必要はないが、保護の対象となるマスター・キーはディスク・ドライブ１９が装着されていたコンピュータに保存されているため、ディスク・ドライブ１９を搭載した状態で盗難に遭う機会が多いノートＰＣ１０に本発明を適用する意義は大きい。ノートＰＣ１０のハードウェアの構成は周知であるため、ここでは本発明の理解に必要な範囲で説明する。
【００２３】
プラットフォーム・コントローラー・ハブ（ＰＣＨ）２１には、ＣＰＵ１１、ＨＤＤまたはＳＳＤなどのディスク・ドライブ１９、ファームウェアＲＯＭ２３、エンベデッド・コントローラ（ＥＣ）２５およびＴＰＭ２９が接続されている。ＣＰＵ１１には、システム・メモリ１３、およびＧＰＵ１５が接続され、ＧＰＵ１５にはＬＣＤ１７が接続されている。
【００２４】
ＰＣＨ２１は、PCI Express、Serial ATA、USB、LANなどのさまざまなインターフェース・コントローラの他に、タンパー・ビット１５３を記憶する不揮発性メモリと、パワー・ビット１５５を記憶する揮発性メモリを含む。タンパー・ビット１５３およびパワー・ビット１５５は保護モジュール１６３だけがアクセスできるように不揮発性メモリおよび揮発性メモリは保護されている。具体的には、システム・ファームウェア１６１および保護モジュール１６３がＣＰＵ１１の制御権をＯＳ１０５に渡す前にそれらのメモリ・コントローラをロックすることで保護することができる。ロックはＰＣＨ２１がリセットされてシステム・ファームウェア１６１がブートを開始するときに解除される。
【００２５】
なお、本明細書ではシールされたマスター・キーを参照番号１７５ｂで示し、アンシールされた平文のマスター・キーを参照番号１７５ａとして示す。タンパー・ビット１５３およびパワー・ビット１５５は保護モジュール１６３が参照する。
【００２６】
ディスク・ドライブ１９は、それぞれシステムがアクセス可能な、暗号化するデータを記憶するボリューム１９ａおよび暗号化しないデータを記憶するボリューム１９ｂと、ディスク・ドライブ１９のファームウェアだけがアクセス可能なデータを記憶するシステム領域１９ｃを含む。ボリューム１９ａ、１９ｂはそれぞれ１つ以上のパーティションを含む論理的な記憶領域である。ボリューム１９ａが記憶するすべてのデータは、ディスク・ドライブ１９が実行するファイル暗号モジュール１１５が、ファイル・キー１１３を使って暗号化する。
【００２７】
ディスク・ドライブ１９は、ブート・イメージを格納するブート・ドライブで、ボリューム１９ａには、アプリケーション・プログラム１０１、ボリューム暗号マネージャ１０３、ＯＳ１０５などのブート・ファイルと、ユーザ・データ１０７を記憶する。ボリューム暗号マネージャ１０３は、ユーザがＦＤＥ機能をイネーブルまたはディスエーブルに設定するためのユーザ・インターフェースを提供する。一例においてボリューム暗号マネージャ１０３は、ＯＳ１０３に組み込まれたアプリケーション・プログラムである。ボリューム暗号マネージャ１０３はＦＤＥ機能がイネーブルに設定されるとマスター・キー１７５ａを生成してディスク・ドライブ１９に送る。
【００２８】
ボリューム１９ｂは、ブート・ローダ１０９、キー転送コード１１１などを記憶する。ブート・ローダ１０９は、ディスク・ドライブ１９のブート・セクタまたはＭＢＲに記憶されている。ＯＳ１０５がＵＥＦＩモードでインストールされたときは、ブート・ローダ１０９がボリューム１９ｂの任意の場所に任意のファイルとして記憶される。キー転送コード１１１は、ボリューム暗号マネージャ１０３の一部としてＣＰＵ１１で実行されてキー転送機構を構成する。キー転送コード１１１は、ブート時に暗号化されたＯＳ１０５のロードを開始する前に、ＴＰＭ２９でシールされたマスター・キー１７５ｂをアンシールして、ディスク・ドライブ１９に転送する必要があるため、暗号化されないボリューム１９ｂに格納される。キー転送コード１１１は、タンパー・ビットおよびパワー・ビットから保護モジュール１６３が物理的なタンパー行為を検出したときに、リカバリ・パスワードを入力するためのプロンプトをＬＣＤ１７に表示する。
【００２９】
システム領域１９ｃはファイル・キー１１３およびファイル暗号モジュール１１５を記憶する。ファイル暗号モジュール１１５は、ディスク・ドライブ１９が内蔵するＣＰＵが実行するファームウェアの一部である。ファイル暗号モジュール１１５は、ＦＤＥ機能がイネーブルまたはディスエーブルのいずれに設定されてもシステムから受け取ったデータをファイル・キー１１３で暗号化してボリューム１９ａに記憶する。ファイル暗号モジュール１１５は、ボリューム暗号マネージャ１０３によってＦＤＥ機能がイネーブルに設定されたときは、システムから平文のマスター・キー１７５ａを受け取ったときだけ読み取り要求のあったデータを復号する。
【００３０】
ファイル暗号モジュール１１５は、ボリューム暗号マネージャ１０３によってＦＤＥ機能がディスエーブルに設定されたときは、システムから平文のマスター・キー１７５ａを受け取らないでも復号する。いずれの場合も復号されたデータはシステムの要求に応じて返送されるが、システムはＦＤＥ機能がイネーブルに設定されたときに、ディスク・ドライブ１９にマスター・キー１７５ａを送らない限り、ボリューム１９ａのデータを読み取ることはできない。ＦＤＥ機能は一旦設定されると、ふたたびディスエーブルに設定されるまで次回以降のブートでも有効である。ファイル暗号モジュール１１５は、一旦マスター・キー１７５ａを受け取っても、その後電源が停止するか、またはシステムからリセット・コマンドを受け取ったときは、再度マスター・キー１７５ａを受け取らない限りボリューム１９ａのデータを復号しない。
【００３１】
ボリューム暗号マネージャ１０３およびキー転送コード１１１は、一例においてWindows（登録商標）8に組み込まれたハードウェアBitLocker（登録商標）とすることができる。その場合、ディスク・ドライブ１９はファイル暗号モジュール１１５が実装されることでハードウェアBitLocker（登録商標）の一部を構成するｅＤｒｉｖｅに対応することになる。ただし、本発明の適用範囲は、ハードウェアBitLocker（登録商標）に限定するものではなく、ＯＳ、すなわち、ブート・ローダがロードされてから実行されるプログラムが、ＦＤＥディスク・ドライブに暗号キーを送る他の暗号システムに適用することもできる。
【００３２】
ファームウェアＲＯＭ２３は、ＢＩＯＳまたはＵＥＦＩファームウェアといったシステム・ファームウェア１６１と、その一部を構成する保護モジュール１６３を格納する。システム・ファームウェア１６１は、最も重要な部分がＴＰＭ（Trusted Platform Module ）の仕様書に規定するＣＲＴＭ(Core Root of Trust for Measurement）として定義されている。ＣＲＴＭは、システム・ファームウェア１６１のなかで特別な権限がないと書き換えができないようになっており、ノートＰＣ１０がブートするときに必ず最初に実行される。
【００３３】
ＣＲＴＭはシステム・メモリ１３にシステム・ファームウェア１６１をロードして実行を開始するまでの処理に必要なＣＰＵ１１、メイン・メモリ１１およびその他の基本的なデバイスの検査および初期化を行う。システム・ファームウェア１６１は、その他のデバイスの検査および初期化（ＰＯＳＴ）を行うコード、パワーオン・パスワードやディスク・ドライブに設定するパスワードなどの認証を行うコード、およびユーザがシステム構成の設定をするためのコードなどを含む。
【００３４】
保護モジュール１６３はＣＰＵ１１で実行されたときにＴＰＭ２９と協働して、ディスク・ドライブ１９に対する物理的なタンパー行為を検出したときにキー転送コード１１１によるマスター・キー１７５ａの自動的な転送を阻止する保護機構を構成する。保護モジュール１６３は、Ｓ４ステート（ハイバネーション状態）またはＳ５ステート（ソフト・オフ状態）からのブート（以後、コールド・ブート）時にＯＳ１０５のロードが開始される前に、タンパー・ビット１５３とパワー・ビット１５５を検査して物理的なタンパー行為を検出したときに、マスター・キー１７５ａをシールするために指定された所定の番号のＰＣＲ（Platform Configuration Register）にＥｘｔｅｎｄコマンドを使ってダミーのハッシュ値を書き込む。保護モジュール１６３は、システムがＳ４ステートまたはＳ５ステートに移行する際に、タンパー検出機構２００（図２）をリセットする。
【００３５】
ＥＣ２５は、ＣＰＵ、ＲＯＭ、ＲＡＭなどを含むマイクロ・コンピュータで、ノートＰＣ１０の筐体の温度や電源の管理をする。ＥＣ２５には、タンパー検出回路２７が接続されている。タンパー検出回路２７は、ディスク・ドライブ１９に盗聴装置を取り付ける際に発生すると予測する現象を物理的なタンパー行為として検出する。タンパー検出回路２７の構成については図２を参照して説明する。
【００３６】
ＴＰＭ２９はプロセッサおよび不揮発性メモリなどを含み、内部で暗号化、復号、ＲＳＡのキー・ペアの生成、およびプラットフォームの完全性の検証などを行う周知の半導体チップである。ＴＰＭ２９は、ＦＤＥ機能がイネーブルに設定されたときにボリューム暗号マネージャ１０３が生成するマスター・キー１７５ａを、シールするために使用するＳＲＴ（Storage Root Key）１７１、一例として２４個のＰＣＲ群１７３、およびシールされたマスター・キー１７５ｂを含む。
【００３７】
［タンパー検出機構］
図２は、タンパー検出回路２７、ＥＣ２５、タンパー・ビット１５３およびパワー・ビット１５５で構成されるタンパー検出機構２００のハードウェアの構成を説明するための機能ブロック図である。ＥＣ２５、タンパー検出回路２７およびタンパー・ビット１５３を記憶する揮発性メモリを含むＰＣＨ２１の一部は、Ｓ４ステートまたはＳ５ステートの間も電源が維持されている。ＥＣ２５が含むＯＲ回路２１７の一方の入力は、検出ライン２０５を通じてディスク・ドライブ１９を接続するためのコネクタの端子２０３に接続されている。
【００３８】
また、ＯＲ回路２１７の他方の入力は、検出ライン２１５を通じて端子２１３に接続されている。端子２１１、２１３は筐体から蓋２０７が取り外されたときに、筐体側に残る。検出ライン２０５、２１５は、電源電圧Ｖｃｃでプルアップされている。ディスク・ドライブ１９は、端子２０１が抵抗でグランドにプルダウンされている。コネクタにディスク・ドライブ１９が接続されると検出ライン２０５の電位はグランド・レベルになる。ディスク・ドライブ１９が、コネクタから取り外されると検出ライン２０５の電位は電源電圧Ｖｃｃまで上昇する。
【００３９】
筐体の蓋２０７には電極片２０９が装着されている。端子２１１は、システムのグランド・プレーンに抵抗でプルダウンされている。ノートＰＣ１０の筐体に蓋２０７が装着されると、端子２１１、２１３が短絡されて、検出ライン２１５の電位はグランド・レベルになる。蓋２０７が取り外されると検出ライン２１５の電位は電源電圧Ｖｃｃまで上昇する。ＯＲ回路２１７は、検出ライン２０５、２１５のいずれかの電位が上昇したときにＰＣＨ２１のタンパー・ビット１５３を設定する。
【００４０】
つぎに、タンパー検出機構２００の動作を説明する。パワー・ビット１５５は、プリブートの間にシステム・ファームウェア１６１がＰＣＲ群１７３に書き込むＰＣＲ値とそのシーケンスの検証によりシステムの一貫性が確認され、かつ、パスワードによるユーザ認証が成功したときに保護モジュール１６３がセットする。ここにプリブートは、ブートの全行程のなかでブート・ローダ１０９を実行する前にシステム・ファームウェア１６１が行うブート・ルーチンをいうものとする。ノートＰＣ１０からすべての電源が取り除かれた状態（Ｇ３ステート）に遷移しない限り揮発性メモリは記憶を維持するため、一旦セットされたパワー・ビット１５５は維持される。
【００４１】
盗聴者は、筐体の中に収納されているディスク・ドライブ１９に盗聴装置を挿入するときは蓋２０７を開放する。また、筐体のベイに装着されたディスク・ドライブ１９に盗聴装置を挿入するときは、一旦、コネクタから取り外す。このとき電源電圧Ｖｃｃが存在する場合はタンパー・ビット１５３がセットされる。一旦セットされたタンパー・ビット１５３は、後に説明するリカバリ・パスワードを入力しない限りリセットできないようにしている。
【００４２】
システムがＧ３ステートの状態で蓋２０７が開放されたときは、ＯＲ回路２１７は機能しないため、タンパー・ビット１５３はセットされないが、パワー・ビット１５５がリセットされる。一旦リセットされたパワー・ビットは、リカバリ・パスワードを入力するか保護モジュール１６３が要求するパスワードを入力しない限りセットできないようにしている。保護モジュール１６３は、タンパー・ビット１５３のセットまたはパワー・ビット１５５のリセットのいずれかを検出したときは、物理的なタンパー行為があると判断する。保護モジュール１６３は、タンパー・ビット１５３のリセットおよびパワー・ビット１５５のセットの両方を同時に検出したときは、物理的なタンパー行為はないと判断する。
【００４３】
［ＰＣＲによるマスター・キーのシール］
図３は、ＴＰＭ２９がマスター・キー１７５ａをシールするときの様子を説明するための図である。ノートＰＣ１０の電源が起動されコールド・ブートを開始すると、最初にシステム・ファームウェア１６１が実行される。ブートは、システム・ファームウェア１６１によるプリブートが終わってからボリューム１９ａが格納するブート・イメージがロードされたときに完了する。
【００４４】
システムはＣＲＴＭをファームウェアの信頼の起点として、デバイス情報や続いて実行されるモジュールのハッシュ値を計算して所定の番号のＰＣＲに記録する。ＰＣＲの用途は、ＴＣＧで定義している。たとえば、ＰＣＲ＃０には、ＣＲＴＭ、ＢＩＯＳコード、ホストプラットフォームの拡張機能のハッシュ値が書き込まれる。ＰＣＲ＃１には、ハードウェア・プラットフォームの設定情報のハッシュ値が書き込まれる。ＰＣＲ＃２には、オプションのＲＯＭコードのハッシュ値が書き込まれる。ＰＣＲ＃３には、オプションのＲＯＭの設定情報およびデータのハッシュ値が書き込まれる。また、ＰＣＲ＃４には、ＭＢＲのブート・ローダ１０９のハッシュ値が書き込まれる。ＰＣＲ＃０〜＃７には、システム・ファームウェア１６１が書き込むことができ、ＰＣＲ＃８〜＃２３にはプラットフォームが固有のハッシュ値を書き込むことができる。
【００４５】
ＰＣＲ群１７３への書き込みをするプログラムは、つねにＥｘｔｅｎｄコマンドを発行してＴＰＭ２９に計算したハッシュ値を送る必要がある。Ｅｘｔｅｎｄコマンドが発行されるとＴＰＭ２９は新ＰＣＲ値＝ＨＡＳＨ（旧ＰＣＲ値＋計算したハッシュ値）という計算をして、新ＰＣＲ値を指定された番号のＰＣＲに記録する。旧ＰＣＲ値は、Ｅｘｔｅｎｄコマンドを受け取ったときにＰＣＲ群１７３が記憶しているＰＣＲ値である。ＴＰＭ２９の電源が停止してＰＣＲがリセットされたときはＰＣＲ群１７３に所定のＰＣＲ値が記憶される。ＰＣＲ群１７３は揮発性のメモリであり、一旦書き込まれたＰＣＲ値は、ＴＰＭ２９の電源を停止するまで消去することはできない。
【００４６】
ＴＰＭ２９の電源は、ノートＰＣ１０がＳ４ステートまたはＳ５ステートに遷移したときに停止する。ＴＰＭ２９は、安全な状態でブートしたときに記憶したＰＣＲ値およびそのシーケンスを記憶している。ＴＰＭ２９は、ＰＣＲ群１７３に上記の計算式で計算した結果を記憶するため、マルウェアはＰＣＲ値を旧ＰＣＲ値に書き換えるこことは困難である。したがって、システム・ファームウェア１６１やＯＳ１０５は、ＰＣＲ値を利用して、周知の方法でソフトウェアの一貫性を検証することができる。
【００４７】
つぎに、ボリューム暗号マネージャ１０３が生成したマスター・キー１７５ａのシールについて説明する。ここに、シールとは、ＴＰＭ２９が指定されたＰＣＲが記憶するＰＣＲ値とともに目的のキーを暗号化することをいう。ボリューム暗号マネージャ１０３は、シール時に使用するＰＣＲの番号を指定して、生成したマスター・キー１７５ａをＴＰＭ２９に送りシール要求をする。
【００４８】
シール要求を受け取ったＴＰＭ２９は、ＳＲＴ１７１からシール用のキーを生成して、マスター・キー１７５ａ、および指定されたＰＣＲがその時点で記憶するＰＣＲ値１７３ｘを暗号化して、暗号化オブジェクト１８１を生成し、識別情報１８３に関連付けてＴＰＭ２９の内部の不揮発性メモリに記憶する。暗号化オブジェクト１８１が含む暗号化されたマスター・キー１７５ｂは、アンシール要求されたＴＰＭ２９がＰＣＲ値の同一性を検証しない限り復号しないためＴＰＭ２９の外に格納することもできる。
【００４９】
ブート時にボリューム１９ａが記憶するブート・イメージをロードするためには、キー転送コード１１１が復号されたマスター・キー１７５ａを取得してディスク・ドライブ１９に送っておく必要がある。本実施の形態では、タンパー検出機構２００が物理的なタンパー行為を検出したときに、マスター・キー１７５ａのシールのために指定されたＰＣＲにダミーのハッシュ値を書き込むことで、ＴＰＭ２９がマスター・キー１７５ｂをアンシールできないようにする。そのために、マスター・キー１７５ａのシールに指定するＰＣＲは、プリブートの間に計算されたハッシュ値が書き込まれるＰＣＲ＃０〜ＰＣＲ＃４の間のいずれかまたは複数を利用することができる。
【００５０】
つづいて、シールされたマスター・キー１７５ｂのアンシールについて説明する。ここにアンシールとは、ＴＰＭ２９が、目的とするキーをシールしたときのＰＣＲ値がその時点で改変されてないことを条件にして目的のキーを復号することをいう。キー転送コード１１１は、ＴＰＭ２９に識別情報１８３を送ってアンシール要求をする。アンシール要求を受け取ったＴＰＭ２９は、ＳＲＴ１７１からアンシールに使用するキーを生成して暗号化オブジェクト１８１を復号する。
【００５１】
ＴＰＭ２９は、アンシール要求を受け取った時点で、シール時に指定されたＰＣＲが記憶するＰＣＲ値と、復号したＰＣＲ値１７３ｘを比較する。ＴＰＭ２９は、両者が一致する場合だけ、キー転送コード１１１に復号されたマスター・キー１７５ａを渡す。両者が一致しないときは、マルウェアやハードウェア的な不正によりシール時とアンシール時でプラットフォームの状態が変更したことを意味するため、ＴＰＭ２９はマスター・キー１７５ａを出力しない。
【００５２】
［マスター・キーの保護方法］
つぎに、図４のフローチャートを参照して、マスター・キー１７５ａの盗聴を防止する方法を説明する。ブロック３０１でノートＰＣ１０の電源を起動してコールド・ブートを開始する。ボリューム暗号マネージャ１０３はＦＤＥ機能がディスエーブルに設定され、マスター・キー１７５ａは生成されてないものとする。タンパー・ビット１５３はリセットされているとする。パワー・ビット１５５は、今回のコールド・ブートの直前にノートＰＣ１０がＧ３ステートに遷移して、リセットされているとする。ブロック３０３でシステム・ファームウェア１６１が、順番にＰＣＲ群１７３に計算したハッシュ値を書き込んでいくと、ＴＰＭ２９は所定のＰＣＲに旧ＰＣＲ値を含めて計算した新ＰＣＲ値を記憶していく。
【００５３】
システム・ファームウェア１６１によってハッシュ値がＰＣＲ＃０からＰＣＲ＃４に書き込まれ、ＴＰＭ２９によってそこまでに検証可能なプラットフォームの安全性が確認されたあとに、保護モジュール１６３が実行される。保護モジュール１６３の一貫性もたとえばＰＣＲ＃５〜＃７のいずれかを使用して実行前に検証しておくことができる。ＰＣＲ＃４にはブート・ローダ１０９のハッシュ値が書き込まれるため、ここまでのブート・ルーチンが成功したことによりシステム・ファームウェア１６１および保護モジュール１６３も安全であるとみなすことができるため、以下の手順を信頼性が確保された環境で実行できる。
【００５４】
保護モジュール１６３は、パワー・ビット１５５がリセットされていることを確認すると、ユーザ認証のためのプロンプトを表示する。パスワードを入力してユーザ認証が成功すると保護モジュール１６３は、パワー・ビット１５５を設定する。パスワードはパワーオン・パスワードまたはスーパーバイザ・パスワードのようなシステム・ファームウェア１６１が認証に使用するパスワードとすることができる。したがって、システム・ファームウェア１６１が認証するパスワードを知らない盗聴者は、Ｇ３ステートに遷移させたあとにパワー・ビット１５５を設定することができないため、パワー・ビット１５５がリセットされたときに物理的なタンパー行為の可能性を検出することができる。
【００５５】
ボリューム暗号マネージャ１０３はＦＤＥ機能がディスエーブルに設定されているため、マスター・キー１７５ａを受け取らなくてもディスク・ドライブ１９は、ボリューム１９ａの読み取りデータを復号してシステムに渡す。また、書き込みデータは、ファイル・キー１１３で暗号化してからボリューム１９ａに書き込む。ブロック３０５でＯＳ１０５を含むすべてのブート・イメージをロードしてブートが完了する。
【００５６】
ブロック３０７でユーザはボリューム暗号マネージャ１０３を起動して、ＦＤＥ機能をイネーブルに設定する。イネーブルに設定されたボリューム暗号マネージャ１０３は、マスター・キー１７５ａを生成してディスク・ドライブ１９に送る。以後、ディスク・ドライブ１９は、ＦＤＥ機能がイネーブルに設定されたと認識して、リセット後はマスター・キー１７５ａを受け取らない限り、ボリューム１９ａのデータを復号しない。
【００５７】
ブロック３０９でボリューム暗号マネージャ１０３は、マスター・キー１７５ａをＴＰＭ２９に送ってシール要求をする。このときボリューム暗号マネージャ１０３は一例においてＰＣＲ＃０〜＃４までの５個のＰＣＲを指定することができる。ＴＰＭ２９は、マスター・キー１７５ａと指定されたＰＣＲ＃０〜＃４のＰＣＲ値を暗号化して暗号化オブジェクト１８１を生成し内部に保管する。なお、ボリューム暗号マネージャ１０３のＦＤＥ機能をイネーブルに設定するのは、ノートＰＣ１０のオーナーであることが前提であるためこの時点でのＰＣＲ＃０〜＃４が記憶するＰＣＲ値は安全性を保証する値であると想定できる。
【００５８】
ブロック３１１で電源が停止され、ブロック３１３でディスク・ドライブ１９または蓋２０７が取り外されてタンパー行為が発生する場合がある。その結果、タンパー検出回路２７がタンパー・ビット１５３を設定するか、Ｇ３ステートへの遷移によりパワー・ビット１５５がリセットされる。ブロック３１５で電源が起動されブロック３１７でシステム・ファームウェア１６１によってＰＣＲ＃０〜＃４にＰＣＲ値が記憶される。本実施の形態で対象とする物理的なタンパー行為と、マルウェアの進入がなければ、ＰＣＲ＃０〜＃４には、システム・ファームウェア１６１によってＰＣＲ値が所定のシーケンスで書き込まれる。
【００５９】
システム・ファームウェア１６１が、ＰＣＲ＃０〜＃４までハッシュ値を書き込んだあとに、保護モジュール１６３が実行される。物理的なタンパー行為とマルウェアによる汚染が無い限り、ＰＣＲ＃０〜＃４には、それぞれブロック３０３で記憶したＰＣＲ値と同じ値が記憶される。ブロック３１９で保護モジュール１６３は、タンパー・ビット１５３、およびパワー・ビット１５５を参照する。保護モジュール１６３がタンパー・ビット１５３のセットまたはパワー・ビット１５５のリセットのいずれかを検出したときは、物理的なタンパー行為があったとみなしてブロック３２１に移行する。保護モジュール１６３は、タンパー・ビット１５３のリセットおよびパワー・ビット１５５のセットの両方の状態を検出したときは、物理的なタンパー行為がないとみなしてブロック３５１に移行する。
【００６０】
ブロック３２１で保護モジュール１６３は、ブロック３０９でマスター・キー１７５ａのシールに指定したＰＣＲ＃０〜＃４のいずれかまたはすべてにＥｘｔｅｄコマンドでダミーのハッシュ値を書き込む。プリブートが終了して、ボリューム１９ｂに格納されたブート・ローダ１０９がロードされ、続いてキー転送コード１１１がロードされる。ブロック３２３でキー転送コード１１１は、ＴＰＭ２９にボリューム暗号マネージャ１０３の識別情報を送ってシールされたマスター・キー１７５ｂのアンシールを要求する。
【００６１】
キー転送コード１１１は、ブロック３２１でＰＣＲ値が改変されていることを認識しないため、アンシール要求を通常の手順として実行する。ＴＰＭ２９はアンシール要求を処理するが、ブロック３０９でシールに使用したＰＣＲ＃０〜＃４のＰＣＲ値１７３ｘと、アンシール要求がされた時点でＰＣＲ＃０〜＃４が記憶するＰＣＲ値が相違するために、マスター・キー１７５ｂをアンシールしない。したがって、キー転送コード１１１は、マスター・キー１７５ａをディスク・ドライブ１９に転送できないため盗聴を防ぐことができる。マスター・キー１７５ａをディスク・ドライブ１９に転送できない場合は、ボリューム１９ａのデータをロードすることができないため、ブートは停止する。
【００６２】
マスター・キー１７５ｂのアンシールが失敗したことを認識したキー転送コード１１１はブロック３２５で、ＬＣＤ１７にリカバリ・パスワードを入力するためのプロンプトを表示する。リカバリ・パスワードは、ＦＤＥ機能をイネーブルに設定したノートＰＣ１０のオーナーだけが知っているクレデンシャルである。キー転送コード１１１はリカバリ・パスワードで復元したマスター・キー１７５ａをディスク・ドライブ１９に転送する。ディスク・ドライブ１９はそれ以降、ボリューム１９ａの読み取りデータをファイル・キー１１３で復号してシステムに返送する。
【００６３】
ＰＣＲ＃０〜＃４にはすでにハッシュ値の書き込みが終了して一貫性が検証されているため、この時点でＰＣＲ＃０〜＃４のＰＣＲ値が改変されていてもブートは進行する。ブロック３３１でシステムがＳ４ステートまたはＳ５ステートに移行する際に、保護モジュール１６３は必要に応じてタンパー・ビット１５３のリセットおよびパワー・ビット１５５のセットまたはいずれか一方を実行して、タンパー検出機構２００を物理的なタンパー行為がない状態にする。ここで、コールド・ブートが成功したことは、タンパー行為がなかったか、タンパー行為があってもリカバリ・パスワードが入力されたことを意味している。その結果、次回のコールド・ブートの際に保護モジュール１６３はＰＣＲ＃０〜＃４のＰＣＲ値を改変することなく、ブロック３１９からブロック３５１に移行する。ブロック３２９では、ボリューム１９ａが格納するブート・イメージが順番にロードされてブートが完了する。
【００６４】
ブロック３５１でブート・ローダ１０９に続いてロードされたキー転送コード１１１は通常の手順を実行して、ＴＰＭ２９にボリューム暗号マネージャ１０３の識別情報を送りマスター・キー１７５ｂのアンシール要求をする。ＴＰＭ２９はアンシール要求を処理するが、ブロック３０９でシールに使用したＰＣＲ＃０〜＃４のＰＣＲ値１７３ｘと、アンシール要求がされた時点でＰＣＲ＃０〜＃４が記憶するＰＣＲ値が一致するため、マスター・キー１７５ｂをアンシールしてキー転送コード１１１に返送する。キー転送コード１１１はブロック３５３で、ディスク・ドライブ１９にマスター・キー１７５ａを転送する。それ以後ディスク・ドライブ２９は、リセットされるまでボリューム１９ａの読み取りデータをファイル・キー１１３で復号してシステムに返送する。
【００６５】
以上の説明において、マスター・キー１７５ａのシールに指定するＰＣＲをＰＣＲ＃０〜＃４から選択する例を説明した。これらのＰＣＲは、他のプログラムが自ら使用する暗号キーのシールに使用する場合もある。ブロック３３１でタンパー検出機構２００をリセットしたあとに再起動すれば、ブロック３１９からブロック３５１に移行してＰＣＲ＃０〜＃４にはアンシールが可能な改変されないＰＣＲ値が書き込まれるため、他のプログラムの暗号キーをアンシールすることができる。
【００６６】
しかし、リカバリ・パスワードを入力したあとは、再起動しないでブロック３２９に移行してブートを完了させる方が便利である。これに対処するために、マスター・キー１７５ａのシールに使用するＰＣＲ＃０〜＃４に加えて、プラットフォーム固有のハッシュ値を記憶するＰＣＲを加えることができる。固有のＰＣＲはたとえばＰＣＲ＃８〜＃２３の中から選択することができる。
【００６７】
この場合、保護モジュール１６３は物理的なタンパー行為を検出したときに、固有のＰＣＲにだけダミーのハッシュ値をＥｘｔｅｎｄコマンドで書き込む。保護モジュール１６３は、物理的なタンパー行為を検出しないときと検出したときで異なるダミーのハッシュ値を書き込む。ＴＰＭ２９は、シール時とアンシール時で固有のＰＣＲのＰＣＲ値が一致しなければアンシールしないようにできる。しかもＰＣＲ＃０〜＃４のＰＣＲ値は一致するので、他のプログラムによる利用を妨げることがない。なお、ＰＣＲ＃０〜＃４がマルウェアで改変されたような場合もＴＰＭ２９はマスター・キー１７５ｂをアンシールしない。
【００６８】
これまで説明した方法では、タンパー検出機構２００と保護モジュール１６３だけでマスター・キー１７５ａを保護できるため、ボリューム暗号マネージャ１０３およびキー転送コード１１１を変更する必要がなく発明の適用範囲が広がる。保護モジュール１６３は、ネットワークから遮断されたシステム・ファームウェア１６１の動作環境で実行できるため、ＯＳの動作環境で処理するよりも安全性が高い。しかも、ＴＰＭ２９を実装するノートＰＣ１０であれば、ＰＣＲ群１７３で保護モジュール１６３の一貫性も検証できるため、一層安全性が向上する。
【００６９】
タンパー検出機構２００と保護モジュール１６３だけでマスター・キー１７５ａを保護する他の方法として、タンパー検出機構２００が物理的なタンパー行為を検出したときに、保護モジュール１６３がプリブートを停止してパスワードを要求するようにしてもよい。パスワードは、システム・ファームウェア１６１の一部としての保護モジュール１６３がプリブート中に処理できるものであれば、パワーオン・パスワード、ＨＤＤパスワードまたはスーパーバイザ・パスワードのようなシステム・ファームウェアが認証要求をするパスワードでもよい。
【００７０】
パスワード認証が成功したときは、ブートを継続させ、パスワード認証が成功しない限りその時点でブートを停止させる。パスワードは、保護モジュール１６３だけがアクセスできるセキュアな不揮発性メモリに格納しておくことができる。この方法は、ディスク・ドライブのボリューム１９ａに格納されたデータの安全性が、認証のためにシステムが保存しておくパスワードの安全性に依存することになるが、ＴＰＭ２９を実装しないコンピュータにも適用できるため適用範囲は広がる。ＴＰＭ２９を実装するノートＰＣ１０の場合は、保護モジュール１６３がＰＣＲ群１７３を利用してパスワードをシールしておけば、安全性を向上させることができる。
【００７１】
つぎに、ディスク・ドライブ１９のファームウェアを一部書き換えて、タンパー検出機構２００および保護モジュール１６３とともに、ボリューム１９ａが記憶するデータを保護する方法を説明する。保護モジュール１６３が、物理的なタンパー行為を検出したときに、ディスク・ドライブ１９にタンパー情報を送出する。タンパー情報を受け取ったディスク・ドライブ１９のファイル暗号モジュール１１５は、ボリューム１９ａへのアクセスをロックする。ファイル暗号モジュール１１５は、ボリューム１９ａがロックされている限り、キー転送コード１１１からマスター・キー１７５ａを受け取っても復号しない。
【００７２】
保護モジュール１６３は、ユーザによって入力されたリカバリ・パスワードをディスク・ドライブ１９に送る。リカバリ・パスワードを受け取ったファイル暗号モジュール１１５は認証が成功するとボリューム１９ａのロックを解除して、それ以降はマスター・キー１７５ａを受け取ったときに復号するようにする。この方法は、物理的なタンパー行為が発生したあとにキー転送コード１１１がマスター・キー１７５ａを自動的にディスク・ドライブ１９に転送するため盗聴は行われるが盗聴したマスター・キー１７５ａはリカバリ・パスワードを入力しない限り有効にならない。リカバリ・パスワードを入力できるのはノートＰＣ１０のオーナーだけであるため、ボリューム１９ａのデータを保護することができる。
【００７３】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００７４】
１０  ノートＰＣ
１９  ディスク・ドライブ
２１  ＰＣＨ
２３  ファームウェアＲＯＭ
２９  ＴＰＭ
１０３  ボリューム暗号マネージャ
１１１  キー転送コード
１６１  システム・ファームウェア
１６３  保護モジュール
１７１  ストレージ・ルート・キー
１７５ａ  平文のマスター・キー
１７５ｂ  シールされたマスター・キー
２００  タンパー検出機構
【図１】
2016025616.tif 000003
【図２】
2016025616.tif 000004
【図３】
2016025616.tif 000005
【図４】
2016025616.tif 000006