(57)【要約】【課題】システムから取り外された不揮発性メモリのデータを保護する方法を提供することにある【解決手段】フラッシュ・メモリ８１とコントローラ８６を含むキャッシュ・モジュール２１はコンピュータの筐体に収納されている。システムがパワー・オフ状態の間に筐体のカバーが開放されるとカバー・センサ３３が動作してＥＣ２５がキャッシュ・モジュールに電力を供給する。さらにＥＣ２５はライン９３を通じてフラッシュ・メモリのデータを消去するための消去信号をメモリ・モジュールに送る。ＥＣがライン９５を通じて筐体が開放されたことを示すタンパー信号を送ると、コントローラはタンパー・ビット８５を設定する。ＢＩＯＳおよびキャッシュ・モジュールはブート時にタンパー・ビットを検出するとフラッシュ・メモリのデータを消去する。【選択図】図３
2014146256.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの筐体に収納されたメモリ・モジュールに含まれる不揮発性メモリが記憶するデータを前記コンピュータのシステムが保護する方法であって、
前記システムがパワー・オフ状態の間に前記メモリ・モジュールが取り外された可能性を示すアクセス信号を生成するステップと、
前記アクセス信号に応答して前記メモリ・モジュールに電源を投入するステップと、
前記アクセス信号に応答して前記不揮発性メモリのデータを消去するための消去信号を前記メモリ・モジュールに送るステップと、
を有する方法。
【請求項２】
前記消去信号を前記メモリ・モジュールに送るステップを、ブート中にハードウェア・レベルで実行する請求項１に記載の方法。
【請求項３】
前記メモリ・モジュールが磁気ディスク装置のキャッシュとして機能するキャッシュ・モジュールである請求項１または請求項２に記載の方法。
【請求項４】
前記アクセス信号が、前記筐体が開放されたことを示す信号である請求項１から請求項３のいずれかに記載の方法。
【請求項５】
前記アクセス信号に応答して前記メモリ・モジュールが搭載する不揮発性メモリにタンパー・ビットを設定するステップと、
ブート時に前記システムが前記タンパー・ビットを検査するステップと、
前記タンパー・ビットの設定を検出したときに前記メモリ・モジュールに前記不揮発性メモリのデータを消去するコマンドを送るステップと
を有する請求項１から請求項４のいずれかに記載の方法。
【請求項６】
初期化時に前記システムが前記メモリ・モジュールと識別情報を共有するステップと、
前記タンパー・ビットの設定を検出したときに前記システムが前記識別情報で前記メモリ・モジュールを認証するステップと、
前記認証が失敗したときに前記メモリ・モジュールに前記コマンドを送り、前記認証が成功したときに前記不揮発性メモリに対するアクセスを可能にするステップと
を有する請求項５に記載の方法。
【請求項７】
前記アクセス信号が、前記メモリ・モジュールにシステムが供給する電力が停止したことを示す信号である請求項１から請求項３のいずれかに記載の方法。
【請求項８】
初期化時に前記メモリ・モジュールが搭載する揮発性メモリに前記システムから電力が供給されていることを示すパワー・ビットを設定するステップと、
ブート時に前記システムが前記パワー・ビットを検査するステップと、
前記パワー・ビットの解除を検出したときに前記メモリ・モジュールに前記不揮発性メモリのデータを消去するコマンドを送るステップと
を有する請求項７に記載の方法。
【請求項９】
初期化時に前記システムが前記メモリ・モジュールと識別情報を共有するステップと、
前記パワー・ビットの解除を検出したときに前記システムが前記識別情報で前記メモリ・モジュールを認証するステップと、
前記認証が失敗したときに前記メモリ・モジュールに前記コマンドを送り、前記認証が成功したときに前記不揮発性メモリに対するアクセスを可能にするステップと
を有する請求項８に記載の方法。
【請求項１０】
コンピュータの筐体に収納されたメモリ・モジュールに含まれる不揮発性メモリが記憶するデータを前記メモリ・モジュールが保護する方法であって、
パワー・オフ状態で前記メモリ・モジュールが取り外された可能性を示すアクセス信号をシステムから受け取るステップと、
前記アクセス信号に応答して不揮発性メモリにタンパー・ビットを設定するステップと、
ブート時に前記メモリ・モジュールが前記タンパー・ビットを検査するステップと、
前記タンパー・ビットの設定を検出したときに前記メモリ・モジュールが前記不揮発性メモリのデータを消去するステップと
を有する方法。
【請求項１１】
初期化時に前記メモリ・モジュールが前記システムと識別情報を共有するステップと、
前記タンパー・ビットの設定を検出したときに前記メモリ・モジュールが前記識別情報で前記システムを認証するステップと、
前記認証が失敗したときに前記メモリ・モジュールが前記不揮発性メモリのデータを消去し、前記認証が成功したときに前記システムのアクセスを許可するステップと
を有する請求項１０に記載の方法。
【請求項１２】
初期化時に、前記メモリ・モジュールに前記システムから電力が供給されていることを示すパワー・ビットを揮発性メモリに設定するステップと、
ブート時に前記メモリ・モジュールが前記パワー・ビットを検査するステップと、
前記パワー・ビットの解除を検出したときに前記メモリ・モジュールが前記不揮発性メモリのデータを消去するステップと
を有する請求項１０または請求項１１に記載の方法。
【請求項１３】
デバイスを収納するシステム筐体と、
オペレーティング・システムを実行するプロセッサと、
不揮発性メモリを含むメモリ・モジュールと、
前記メモリ・モジュールが取り外された可能性を示すアクセス信号を生成するセンサと、
パワー・オフ状態で生成された前記アクセス信号に応答して前記メモリ・モジュールに電力を供給し前記不揮発性メモリのデータを消去するコントローラと
を有するコンピュータ。
【請求項１４】
前記コントローラは前記アクセス信号に応答して前記メモリ・モジュールにタンパー・ビットを設定し、ブート時に前記タンパー・ビットの設定を検出したときに前記不揮発性メモリのデータを消去する請求項１３に記載のコンピュータ。
【請求項１５】
前記コントローラはブート時に前記タンパー・ビットの設定を検出したときに前記メモリ・モジュールを認証し、該認証が成功したときに前記メモリ・モジュールにアクセスし、前記認証が失敗したときに前記不揮発性メモリのデータを消去する請求項１４に記載のコンピュータ。
【請求項１６】
前記コントローラはブート時に前記タンパー・ビットの解除を検出したときに前記認証をしないで前記メモリ・モジュールにアクセスする請求項１５に記載のコンピュータ。
【請求項１７】
前記メモリ・モジュールは前記コンピュータから電力が供給されていることを示すパワー・ビットを設定する揮発性メモリを有し、
前記コントローラはブート時に前記パワー・ビットの解除を検出したときに前記メモリ・モジュールを認証し、該認証が成功したときに前記メモリ・モジュールにアクセスし、前記認証が失敗したときに前記不揮発性メモリのデータを消去する請求項１３から請求項１６のいずれかに記載のコンピュータ。
【請求項１８】
前記コントローラはブート時に前記パワー・ビットの設定を検出したときに前記認証をしないで前記メモリ・モジュールにアクセスする請求項１７に記載のコンピュータ。
【請求項１９】
前記コントローラは、ＲＴＣ（Real Time Clock）の電力源を利用してシステムに前記タンパー・ビットを設定する請求項１４に記載のコンピュータ。
【請求項２０】
コンピュータの筐体に収納されるメモリ・モジュールであって、
不揮発性メモリと、
前記コンピュータのシステムに対するインターフェースと、
前記コンピュータがパワー・オフ状態の間に前記メモリ・モジュールが取り外された可能性を示すアクセス信号を前記システムから受け取ってタンパー・ビットを設定し、ブート時に前記タンパー・ビットの設定を検出したときに前記不揮発性メモリのデータを消去するコントローラと
を有する
メモリ・モジュール。
【請求項２１】
コンピュータの筐体に収納されたメモリ・モジュールに含まれる不揮発性メモリが記憶するデータを前記コンピュータのシステムが保護する方法であって、
前記システムがパワー・オフ状態の間に前記メモリ・モジュールが取り外された可能性を示すアクセス信号を生成するステップと、
前記アクセス信号に応答して前記コンピュータに電源を投入するステップと、
前記アクセス信号に応答して前記不揮発性メモリのデータに対するアクセスを禁止するためのロック信号を前記メモリ・モジュールに送るステップと、
前記ロック信号を受け取った前記不揮発性メモリが前記システムからのアクセスを停止するステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリが記憶するデータの盗聴を防止する技術に関し、さらに詳細にはコンピュータから取り外された不揮発性メモリのデータに対する盗聴を確実に防止する技術に関する。
【背景技術】
【０００２】
コンピュータの大容量記憶装置として、ハードディスク・ドライブ（ＨＤＤ）とそのキャッシュとして機能する不揮発性半導体メモリ（以下、不揮発性メモリ）を組み合わせたシステムを採用する場合がある。このようなシステムは、ビット単価の安いＨＤＤとビット単価は高いが高速アクセスが可能な不揮発性メモリのそれぞれの利点を兼ね備えた記憶装置として機能する。この不揮発性メモリには、ハイバネーション・データおよびＨＤＤの磁気ディスクと同期したデータが記憶される。
【０００３】
不揮発性メモリは比較的寿命が短いことから消耗品と考えられており、ユーザが交換できるようにコネクタでマザーボードに接続する。その結果、使用済みの不揮発性メモリがシステムから取り外されて不適切な方法で廃棄処分がされると重要なデータが漏洩する危険性がある。あるいは、第３者がコンピュータから不揮発性メモリを不正に抜き取ってデータを盗聴する可能性もある。
【０００４】
特許文献１は、取引処理装置本体のカバー・オープンを検知すると秘密情報を記憶したＲＡＭをアクセス不能にする発明を開示する。この発明は、カバー・オープンを検知してＲＡＭの電力供給を停止する方法ではＲＡＭのデータが消失する問題を改善することを目的としている。特許文献２は、コンピュータからＨＤＤが不正に取り外されたことを検出してＨＤＤに記憶されたデータを消去する発明を開示する。ＨＤＤはコンピュータから取り外されたときに電源を供給する電池を搭載し、不正な取り外しであると判断したときにデータを消去する。特許文献３は、システムとＨＤＤが秘密鍵を共有して相互認証を行う発明を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１８４５６７号公報
【特許文献２】特開平１１−１７５４０６号公報
【特許文献３】特開２００３−１８１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
キャッシュに利用する不揮発性メモリは、ＮＡＮＤ素子とコントローラが回路基板に実装された状態でキャッシュ・モジュールとして構成されている。そしてキャッシュ・モジュールに、ＨＤＤやＳＳＤと同様にパスワードを設定することは可能である。しかし、パスワードが設定されたキャッシュ・モジュールを第３者が完全に支配できるときは、総当たり攻撃や辞書攻撃などのさまざまな攻撃を繰り返すことができるため、パスワードが解読される危険がある。また、パスワードを設定すると、キャッシュ・モジュール取り外さないで継続的に使用するときにブートごとに認証のための時間を費やすためブート時間の遅延をもたらす。
【０００７】
最も確実に盗聴を防止する方法は、コンピュータに装着されているキャッシュ・モジュールが取り外されたときに、記憶されているデータを消去することである。取り外された後にデータを消去するためには電源を必要とするが、特許文献２に記載する発明では、ＨＤＤが搭載する電池を電源としてデータの消去をしている。しかし、電池を搭載しないキャッシュ・モジュールでは、取り外された後にデータを消去することができない。また、通常キャッシュ・モジュールの取り外しは、コンピュータがキャッシュ・モジュールに電源を供給しないパワー・オフ状態や、コンピュータから完全に電源を取り除いた状態で行われるため、システムからの電源を確保することも簡単にはできない。たとえ電源が確保できるとしても、キャッシュ・モジュールが取り外される前にデータを消去する必要がある。
【０００８】
そこで本発明の目的は、システムから取り外された不揮発性メモリのデータの盗聴を防止する方法を提供することにある。さらに本発明の目的は、ブート時間の遅延をもたらさないようにしながら盗聴を防止する方法を提供することにある。さらに本発明の目的は、総当たり攻撃や辞書攻撃などに対して確実に盗聴を防止する方法を提供することにある。さらに本発明の目的はそのような方法を実現するコンピュータおよびメモリ・モジュールを提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、コンピュータの筐体に収納されたメモリ・モジュールに含まれる不揮発性メモリが記憶するデータの盗聴を防止する方法を提供する。本発明の一の態様では主としてシステムがデータの保護を実行する。システムがパワー・オフ状態の間にメモリ・モジュールが取り外された可能性を示すアクセス信号を生成する。アクセス信号に応答してメモリ・モジュールと信号を送るために必要な少なくともシステムの一部に電源を投入する。アクセス信号に応答してシステムが不揮発性メモリのデータを消去するための消去信号をメモリ・モジュールに送る。電源が投入されたメモリ・モジュールは不揮発性メモリが記憶するデータを消去する。
【００１０】
上記手順によればシステムがパワー・オフ状態であってもメモリ・モジュールが取り外される前に不揮発性メモリのデータを消去できるため盗聴を確実に防止できる。メモリ・モジュールは磁気ディスク装置のキャッシュとして機能するキャッシュ・モジュールとすることができる。データの消去に代えてメモリ・モジュールが一切のアクセスを禁止するようにロックしてもよい。消去信号に代えて、ＢＩＯＳを実行するプロセッサがコマンドを送ってデータを消去してもよいが、消去信号をブート中にハードウェア・レベルで送ると短時間で消去できるため、アクセス信号が生成されてからメモリ・モジュールが取り外されるまでの間に確実にデータを消去できる。
【００１１】
アクセス信号は、筐体が開放されたことを示す信号であってよい。この場合、筐体の開放からメモリ・モジュールの取り外しまでは比較的長い時間を必要とするので、データを消去するための時間を確保することができる。アクセス信号に応答してメモリ・モジュールが搭載する不揮発性メモリにタンパー・ビットを設定し、ブート時にシステムがタンパー・ビットを検査し、タンパー・ビットの設定を検出したときにメモリ・モジュールに不揮発性メモリのデータを消去するコマンドを送ることができる。
【００１２】
初期化時にシステムがメモリ・モジュールと識別情報を共有し、ブート時にタンパー・ビットの設定を検出したときにシステムが識別情報でメモリ・モジュールを認証し、認証が失敗したときにメモリ・モジュールにデータを消去するコマンドを送り、認証が成功したときに不揮発性メモリに対するアクセスを可能にすることができる。認証が失敗したときは、他のコンピュータで使用されていたメモリ・モジュールが装着されたと想定できるため、データを消去して当該コンピュータでメモリ・モジュールを利用できるようにする。
【００１３】
また認証が成功したときは、識別情報でバインディングされていたメモリ・モジュールが一旦取り外されたあとに再度装着されたりメモリ・モジュールを取り外すことなくアクセス信号が消滅したりしたと想定できるため、盗聴ではないとして扱って不揮発性メモリのデータを確保することができる。タンパー・ビットを検出しないときは、認証をしないで不揮発性メモリにアクセスできるようにすれば、キャッシュ・モジュールが取り外されない多くのブートにおいてブート時間が遅延することを防ぐことができる。
【００１４】
アクセス信号は、メモリ・モジュールにシステムが供給する電力が停止したことを示す信号とすることができる。通常筐体を開放してメモリ・モジュールを取り外すときはすべての電源を取り除くようになっているので、この信号をアクセス信号に利用することができる。携帯式コンピュータではこのアクセス信号が、ＡＣ／ＤＣアダプタが取り外されかつ電池が取り外されたときに生成される。
【００１５】
初期化時にメモリ・モジュールが搭載する揮発性メモリにシステムから電力が供給されていることを示すパワー・ビットを設定し、ブート時にシステムがパワー・ビットを検査し、パワー・ビットの解除を検出したときにメモリ・モジュールに不揮発性メモリのデータを消去するコマンドを送ることができる。パワー・ビットはメモリ・モジュールが取り外されたときには必ず解除されるので、確実にデータを消去できるようになる。初期化時にシステムがメモリ・モジュールと識別情報を共有し、パワー・ビットの解除を検出したときにシステムが識別情報でメモリ・モジュールを認証し、認証が失敗したときにメモリ・モジュールにデータを消去するコマンドを送り、認証が成功したときに不揮発性メモリに対するアクセスを可能にすることができる。
【００１６】
本発明の他の態様は、主としてメモリ・モジュールがデータの保護を実行する。メモリ・モジュールはパワー・オフ状態でメモリ・モジュールが取り外された可能性を示すアクセス信号をシステムから受け取る。アクセス信号に応答して不揮発性メモリにタンパー・ビットを設定する。ブート時にメモリ・モジュールがタンパー・ビットを検査する。タンパー・ビットの設定を検出したときにメモリ・モジュールが不揮発性メモリのデータを消去する。
【００１７】
上記の構成によれば、あるコンピュータで使用されていたメモリ・モジュールが他のコンピュータに装着された場合に、メモリ・モジュールが自律的にデータを消去するため、再取り付け先のシステムの環境にかかわらずデータを保護することができる。初期化時にメモリ・モジュールがシステムと識別情報を共有し、タンパー・ビットの設定を検出したときにメモリ・モジュールが識別情報でシステムを認証し、認証が失敗したときにメモリ・モジュールが不揮発性メモリのデータを消去し、認証が成功したときにシステムのアクセスを許可することができる。
【００１８】
この構成により、データの保護を図りながら消去後のメモリ・モジュールの再利用を可能にすることができる。初期化時に、メモリ・モジュールにシステムから電力が供給されていることを示すパワー・ビットを揮発性メモリに設定し、ブート時にメモリ・モジュールがパワー・ビットを検査し、パワー・ビットの解除を検出したときにメモリ・モジュールが不揮発性メモリのデータを消去することができる。
【発明の効果】
【００１９】
本発明により、システムから取り外された不揮発性メモリのデータの盗聴を防止する方法を提供することができた。さらに本発明により、ブート時間の遅延をもたらさないようにしながら盗聴を防止する方法を提供することができた。さらに本発明により、総当たり攻撃や辞書攻撃などに対する盗聴を確実に防止する方法を提供することができた。さらに本発明によりそのような方法を実現するコンピュータおよびメモリ・モジュールを提供することができた。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態にかかるノートＰＣ１０の主要な構成を示す機能ブロック図である。
【図２】ノートＰＣ１０のボトム・カバー５７を開けたときの状態を説明する図である。
【図３】キャッシュ・モジュール２１に対するタンパーを検出するハードウェアの構成を説明する図である。
【図４】ＢＩＯＳ＿ＲＯＭ２３のデータ構造を示す図である。
【図５】ＢＩＯＳコード１０７がキャッシュ・モジュール２１を初期化する手順を示すフローチャートである。
【図６】ノートＰＣ１０がタンパーを検出してデータを消去する手順を説明するフローチャートである。
【図７】キャッシュ・モジュール２１の抜き取りがない場合のブートの手順を説明する図である。
【図８】キャッシュ・モジュール２１が抜き取られた場合のブートの手順を説明する図である。
【発明を実施するための形態】
【００２１】
［ノートＰＣの構成とパワー・ステート］
図１は、ノートＰＣ１０のハードウェア構成の一例を説明するための機能ブロック図で、図２はボトム・カバー５７を開けたときの状態を説明する図で、図３はキャッシュ・モジュール２１に対するタンパーを検出する構成を説明する図である。多くのハードウェアの構成は周知であるため、ここでは本発明の理解に必要な範囲で説明する。最初にノートＰＣ１０のパワー・ステートについて説明する。ノートＰＣ１０は、ＡＣＰＩ（Advanced Configuration and Power Interface）の省電力機能に対応している。ＡＣＰＩでは、Ｓ１ステートからＳ４ステートまでの４つのスリーピング・ステート（スリープ状態）、Ｓ０ステート（パワー・オン状態）、およびＳ５ステート（パワー・オフ状態またはソフト・オフ状態）を定義している。
【００２２】
ＡＣＰＩのスリーピング・ステートのなかでノートＰＣ１０は、一例としてＳ３ステートとＳ４ステートだけを定義しているが他のスリーピング・ステートを定義してもよい。また、Ｓ５ステートは独立して定義しないでＳ４ステートの中に含めるようにしてもよい。Ｓ３ステート（サスペンド状態）では、メイン・メモリ１３の記憶保持とノートＰＣ１０の電源を投入するのに必要なデバイス以外のデバイスに対する電力を停止する。
【００２３】
Ｓ４ステート（ハイバネーション状態）は、ＡＣＰＩでサポートされるスリーピング・ステートの中で最もレイテンシィが長く、かつ消費電力が少ないパワー・ステートである。ノートＰＣ１０がパワー・オン状態からハイバネーション状態に遷移する際には、ＯＳがＨＤＤ１９またはキャッシュ・モジュール２１のハイバネーション領域などにメイン・メモリ１３が記憶するハイバネーション・データを格納してからパワー・コントローラ２９などの電源の投入に必要なデバイス以外のデバイスに対する電力を停止する。
【００２４】
Ｓ５ステートは、ＯＳがハイバネーション・データをＨＤＤ２３などに格納しない点を除いては基本的に電力を供給するデバイスの範囲はＳ４ステートと同じである。さらに、ＡＣ／ＤＣアダプタ３９および電池ユニット３５が外されてボタン電池を除く電力源がない状態をＧ３ステート（メカニカル・オフ状態）という。Ｇ３ステートは、ボトム・カバー５７を外してシステム筐体５３の内部に物理的にアクセスしても安全な状態に相当する。
【００２５】
図２（Ａ）は、ノートＰＣ１０の外形を示す斜視図で、図２（Ｂ）はボトム・カバー５７を外した状態のシステム筐体５３の内部を示す底面図である。ノートＰＣ１０は、ディスプレイ１５を実装するディスプレイ筐体５１と表面にキーボード２７を実装し内部に多くのデバイスを収納するシステム筐体５３がヒンジ機構５５ａ、５５ｂで開閉できるように結合されている。
【００２６】
システム筐体５３の底面には、ネジでボトム・カバー５７が取り付けられている。ボトム・カバー５７を取り外すとマザーボード６１、ＨＤＤ１９などが露出する。マザーボード６１には、ＣＰＵ１１、チップ・セット１７、エンベデッド・コントローラ（ＥＣ）２５、キャッシュ・モジュール２１、および電池ユニット３５などが実装されている。
【００２７】
キャッシュ・モジュール２１はユーザが容易に交換できるようにコネクタでマザーボード６１に実装されている。したがって、耐用年数が経過したような場合にユーザはボトム・カバー５７を開放してキャッシュ・モジュール２１を交換することができる。システム筐体５３には、ボトム・カバー５７が開放されたときに信号を出力するカバー・センサ３３が取り付けられている。カバー・センサ３３は特に種類を限定する必要はなく、ボトム・カバー５７とシステム筐体５３が密着および離間している状態を検出できるものであれば、磁気センサ、静電容量センサ、または機械式スイッチなどを採用することができる。
【００２８】
図１において、チップ・セットとして構成されるプラットフォーム・コントロール・ハブ（ＰＣＨ）１７にはＣＰＵ１１、ＨＤＤ１９、キャッシュ・モジュール２１、ＢＩＯＳ＿ＲＯＭ２３およびＥＣ２５が接続されている。ＣＰＵ１１にはメイン・メモリ１３およびＬＣＤ１５が接続されている。ＰＣＨ１７は、さまざまな規格のインターフェース機能を備えており、図１では代表的にＳＡＴＡコントローラにＨＤＤ１９およびキャッシュ・モジュール２１が接続され、ＳＰＩにＢＩＯＳ＿ＲＯＭ２３が接続され、ＬＰＣにＥＣ２５が接続されている。キャッシュ・モジュール２１は、ＨＤＤ１９に対するキャッシュとして機能する不揮発性メモリを含む。
【００２９】
ＥＣ２５には、キーボード２７およびパワー・コントローラ２９が接続されている。ＥＣ２５は、ＣＰＵ、ＲＯＭ、ＲＡＭなどで構成されたマイクロ・コンピュータである。ＥＣ２５は、ノートＰＣ１０の内部の動作環境の管理にかかるプログラムをＣＰＵ１１とは独立して実行することができる。ＥＣ２５は、パワー・コントローラ３３を通じてＤＣ／ＤＣコンバータ３７の動作を制御する。
【００３０】
パワー・コントローラ２９には、パワー・ボタン３１、カバー・センサ３３およびＤＣ／ＤＣコンバータ３７の制御回路が接続されている。パワー・コントローラ２９は、ＥＣ２５からの指示に基づいてＤＣ／ＤＣコンバータ３７を制御するワイヤード・ロジックのディジタル制御回路（ＡＳＩＣ）である。パワー・コントローラ２９は、ノートＰＣ１０をレジュームさせるためにスリープ状態およびパワー・オフ状態でも電力が維持される。
【００３１】
スリープ状態またはパワー・オフ状態のときにパワー・ボタン３１の押下またはカバー・センサ３３の動作があると、パワー・コントローラ２９は、システムをパワー・オン状態にするために必要な各デバイスに電力を供給する。ＡＣ／ＤＣアダプタ３９および電池ユニット３５は、ノートＰＣ１０の電力源である。ＤＣ／ＤＣコンバータ３７は、ＡＣ／ＤＣアダプタ３９または電池パック３５から供給される直流電圧を、ノートＰＣ１０を動作させるために必要な複数の電圧に変換し、さらにパワー・ステートに応じて定義された電力供給区分に基づいて各々のデバイスに電力を供給する。
【００３２】
図３は、タンパー検出に関連するデバイスを詳細に示している。キャッシュ・モジュール２１は、基板にＮＡＮＤ型フラッシュ・メモリ（以下、フラッシュ・メモリ）８１、ｍＳＡＴＡのインターフェースを含むコントローラ８６、および揮発性メモリ８８が実装されている。ただし、本発明はタンパー・ビット８５でタンパーを検知できるため、揮発性メモリ８８を実装しないキャッシュ・モジュールに適用することもできる。フラッシュ・メモリ８１はデータ領域８３とシステム領域に区分されている。データ領域８３は一例として、ＨＤＤ１９のキャッシュとして利用するキャッシュ領域とＳ４ステートに遷移させるときのハイバネーション・データ記憶するハイバネーション領域の２つのパーティションで区切られている。
【００３３】
ＰＣＨ１７は、ＲＴＣ（Real Time Clock）とキャッシュ・モードでの動作を制御するキャッシュ・コントローラを含む。ＲＴＣとＰＣＨ１７の一部の機能には、ボタン電池で構成されたＲＴＣ電源系統１６から電力が供給される。ＲＴＣ電源系統１６の電力は、ノートＰＣ１０がＧ３ステートのときにも確保される。キャッシュ・コントローラの基本的な動作では、キャッシュ領域をライト・スルー方式に設定し、ハイバネーション領域をライト・バック方式に設定する。いずれのキャッシュ・モードに設定されても、フラッシュ・メモリ８１にはシステムが処理したデータが残る。フラッシュ・メモリ８１のシステム領域は、ＣＰＵ１１がアクセスできないセキュアな領域である。システム領域には、識別情報１０９ｂ、共通鍵１１１ｂ、およびタンパー・ビット８５が格納されている。
【００３４】
識別情報１０９ｂは、ＢＩＯＳコード１０７（図４参照）とキャッシュ・モジュール２１が相互認証をするためのデータである。共通鍵１１１ｂは識別情報１０９ｂを暗号化したり、ＢＩＯＳコード１０７から受け取った暗号化された識別情報１０９ａ（図４参照）を復号したりする際にコントローラ８６が使用する。タンパー・ビット８５は、カバー・センサ３３の動作に応じてＥＣ２５からライン９５を通じてタンパー信号を受け取ったときにコントローラ８６が設定する。他の例として、ＲＴＣ電源系統１６からカバー・センサ３３に電力を供給することで、Ｇ３ステートでボトム・カバー５７が開放されたときにＰＣＨ１７のセキュアな記憶領域にタンパー・ビットを設定してもよい。なお、識別情報１０９ｂ、共通鍵１１１ｂ、タンパー・ビット８５はフラッシュ・メモリ８１とは異なるものとして用意したセキュアな不揮発性メモリに格納するようにしてもよい。
【００３５】
コントローラ８６は、ＣＰＵ、ＲＡＭ、ＲＯＭ、および暗号エンジンを含み、フラッシュ・メモリ８１に対するシステムからのリード／ライト・アクセスを制御したり、盗聴を防止するためのさまざまな処理をしたりする。コントローラ８６は、ＢＩＯＳコード１０７から取得した識別情報１０９ａとフラッシュ・メモリ８１が格納する識別情報１０９ｂでＢＩＯＳコード１０７の認証を行う。
【００３６】
コントローラ８６は、共通鍵１１１ｂで識別情報１０９ｂを暗号化してＢＩＯＳコード１０７に送ったり、ＢＩＯＳコード１０７により共通鍵１１１ａで暗号化された識別情報１０９ａを共通鍵１１１ｂで復号したりする。識別情報１０９ｂは、ＢＩＯＳ＿ＲＯＭ２３に格納された識別情報１０９ａと同じデータである。揮発性メモリ８８のパワー・ビット８７は、ＤＣ／ＤＣコンバータ３７のＳ５／Ｓ４系統からライン９９を通じて電力が供給されているときにシステムの正当性を認証したコントローラ８６により設定され、電力が停止すると自動的に解除される。
【００３７】
コントローラ８６は、ＰＣＨ１７とＳＡＴＡの信号ライン９１で接続され、ＥＣ２５およびＤＣ／ＤＣコンバータ３７のＳ０系統とＳＡＴＡの電力ライン９３、９７で接続される。ＥＣ２５は、タンパーを検出したときにタンパー信号を送るために、ＳＡＴＡのラインに追加したライン９５でキャッシュ・コントローラ８６に接続されている。ＥＣ２５はＳＡＴＡの電力ライン９３を通じてコントローラ８６に１ワイヤ方式のプロトコルで消去信号を送る。
【００３８】
ＤＣ／ＤＣコンバータ３７は、システムのパワー・ステートに対応して、Ｓ５／Ｓ４系統、Ｓ３系統、およびＳ０系統に区分されている。Ｓ５／Ｓ４系統は、Ｓ５ステートまたはＳ４ステートのときに電力を供給する系統である。Ｓ３系統はＳ３ステートのときにＳ５／Ｓ４系統に加えて電力を供給する系統である。Ｓ０系統はＳ０ステートのときに、Ｓ５／Ｓ４系統、Ｓ３系統に加えて電力を供給する系統である。
【００３９】
システムがＳ５ステートまたはＳ４ステートのときは、パワー・コントローラ２９、ＰＣＨ１７の一部および揮発性メモリ８８に電力が供給される。Ｓ３ステートのときはＥＣ２５、ＰＣＨ１７の一部などに電力が供給される。Ｓ０ステートのときはすべてのデバイスに電力が供給される。ＡＣ／ＤＣアダプタ３９および電池ユニット３５が取り外されてシステムがＧ３ステートに遷移したときは、すべての系統が停止する。
【００４０】
〔ＢＩＯＳ＿ＲＯＭの構成〕
図４は、ＢＩＯＳ＿ＲＯＭ２３のデータ構造を説明する図である。ＢＩＯＳ＿ＲＯＭ２３は、ＢＩＯＳコードを格納するＢＩＯＳ領域１０１とＢＩＯＳコードだけが利用するデータ領域１０３を含む。ＢＩＯＳ領域１０１にはＢＩＯＳコードが格納され、データ領域１０３には、識別情報１０９ａ、共通鍵１１１ａが格納される。ＢＩＯＳ＿ＲＯＭ２３はＢＩＯＳコードの書き換えに伴うリスクを軽減するためにブート・ブロック方式を採用している。ＢＩＯＳ領域１０１はブート・ブロックとシステム・ブロックに分かれている。
【００４１】
ブート・ブロックは書き込み保護がされている記憶領域でここに格納されたＢＩＯＳコードはＴＰＭ（Trusted Platform Module ）の仕様書に規定するＣＲＴＭ(Core Root of Trust for Measurement）１０５として扱われ特別な権限がないと書き換えができないようになっている。ＣＲＴＭ１０５は基本デバイスの初期化コードおよび一貫性認証コードなどを含む。ＣＲＴＭ１０５は、ＢＩＯＳコードの中で一貫性のある部分として構成され、ノートＰＣ１０がブートするときに必ず最初に実行される。ノートＰＣ１０のプラットフォームに関するすべての一貫性の計測はＣＲＴＭの一貫性認証コードにより行われる。
【００４２】
ＣＲＴＭ１０５以外のＢＩＯＳコード１０７は、ＰＯＳＴコード、認証コード、暗号モジュール、セットアップ・コードおよびＩ／Ｏコードなどを含む。ＰＯＳＴコードは、スリープ状態またはパワー・オフ状態からブートをする際に、デバイスのＰＯＳＴ処理を行う。認証コードは、パワー・オン・パスワード、ＨＤＤパスワード、および管理者パスワードなどのＢＩＯＳパスワードの設定のためのプロンプトをＬＣＤ１５に表示したり、入力されたパスワードを認証しまたはＨＤＤ１９に送ってロックを解除したりする。
【００４３】
認証コードはさらに、キャッシュ・モジュール２１から取得した識別情報１０９ｂでキャッシュ・モジュール２１の認証を行う。暗号モジュールは、共通鍵暗号方式に使用する共通鍵１１１ａ、１１１ｂを生成したり、共通鍵１１１ａで識別情報１０９ａを暗号化してコントローラ８６に送ったり、コントローラ８６により共通鍵１１１ｂで暗号化された識別情報１０９ｂを共通鍵１１１ａで復号したりする。セットアップ・コードは、ブートの途中でユーザがファンクション・キーを押下したときに実行されユーザがデバイスの設定をする。Ｉ／Ｏコードは、ＣＰＵ１１がリアル・モードで動作する際に周辺デバイスにアクセスするための入出力のインターフェースを提供する。
【００４４】
［初期化の手順］
図５は、ＢＩＯＳコード１０７がキャッシュ・モジュール２１を初期化する手順を示すフローチャートである。ブロック２０１から２１５まではＢＩＯＳコード１０７の処理を示し、ブロック３０１から３１１まではコントローラ８６の処理を示している。ここではマザーボード６１に新しいキャッシュ・モジュール２１が取り付けられたと想定する。Ｓ５／Ｓ４ステートのときにパワー・ボタン３１が押下されると、ブロック２０１でＳ０ステートに遷移するためのデバイスに電力が供給されてシステムはブートを開始する。
【００４５】
ブロック３０１でフラッシュ・メモリ８１には、識別情報１０９ｂおよび共通鍵１１１ｂは格納されておらず、タンパー・ビット８５およびパワー・ビット８７は不定である。ブートを開始するとＣＰＵ１１がＣＲＴＭ１０５およびＢＩＯＳコード１０７を実行してＰＯＳＴを開始する。ブロック２０３でユーザはブートの初期の段階でファンクション・キーを押してセットアップ・コードを実行しキャッシュ・モジュール２１の初期化を行う。
【００４６】
すでにバインディングが終わっているため初期化が必要ないと判断した場合は、ファンクション・キーを押さないで図７のブロック６０３に移行する。ユーザによってキャッシュ・モジュール２１の初期化が選択されると、ＢＩＯＳコード１０７はブロック２０５でキャッシュ・モジュール２１とＰＣＨ１７のインターフェースを初期化してからキャッシュ・モジュール２１に識別情報を要求して確認する。新しいキャッシュ・モジュール２はバインディングされていないことが明らかなのでこの手順は省略してもよい。
【００４７】
識別情報１０９ｂを受け取ることができないためキャッシュ・モジュール２１を認証できないことを確認したＢＩＯＳコード１０７はブロック２０７でコントローラ８６にリセット・コマンドを送る。ブロック３０３でリセット・コマンドを受け取ったコントローラ８６はデータ領域８３を初期化してデータを消去する。データの消去は、データ領域８３にランダムなデータを書き込むことで元のデータを再現できないようにする行為も含む。
【００４８】
ブロック２０９でＢＩＯＳコード１０７は、キャッシュ・モジュール２１とバインディングするために、識別情報１０９ａと共通鍵暗号方式に使用する共通鍵１１１ａ、１１１ｂを生成する。共通鍵１１１ａはＢＩＯＳコード１０７が使用し共通鍵１１１ｂはコントローラ８６が使用する。なお、ＢＩＯＳコード１０７は共通鍵１１１ａ、１１１ｂに代えて公開鍵暗号方式に使用する秘密鍵と公開鍵のペアを生成してもよい。この場合、共通鍵１１１ａに秘密鍵を対応させ、共通鍵１１１ｂに公開鍵を対応させて公開鍵はコントローラ８６がセキュアに保持する。
【００４９】
識別情報１０９ａは、ＢＩＯＳコード１０７が生成した乱数や現在の時刻などの第３者が容易に想像できない秘密情報とすることが望ましい。ＢＩＯＳコード１０７は、識別情報１０９ａと共通鍵１１１ａをデータ領域１０３に格納する。ブロック２１１でＢＩＯＳコード１０７は、識別情報１０９ａと共通鍵１１１ｂをキャッシュ・モジュール２１に送る。ブロック３０５でコントローラ８６は受け取った識別情報１０９ａと共通鍵１１１ｂをフラッシュ・メモリ８１に格納する。なお、格納された状態の識別情報１０９ａは説明の便宜上識別情報１０９ｂと表記する。すなわち、識別情報１０９ａと識別情報１０９ｂは同じデータである。
【００５０】
ブロック３０７でコントローラ８６はフラッシュ・メモリ８１のタンパー・ビット８５を解除し、揮発性メモリ８８にパワー・ビット８７を設定する。パワー・ビット８７はＳ５／Ｓ４系統の電源が停止したときに自動的に解除されるが、コントローラ８６は識別情報１０９ａをＢＩＯＳコード１０７から受け取って認証しない限り再設定しない。したがって不正なシステムがパワー・ビット８７を設定することはできず、パワー・ビット８７が解除されていることは、バインディングのあとにシステムがＧ３ステートに遷移したか、またはキャッシュ・モジュール２１がマザーボード６１から取り外されたことを示す。
【００５１】
ブロック３０９でコントローラ８６はキャッシュ・モジュール２１の自主検査が終了するとブロック３１１でＢＩＯＳコード１０７にレディ信号を送る。レディ信号を受け取ったＢＩＯＳコード１０７はブロック２１３でキャッシュ・モジュール２１を認識する。以後、システムはキャッシュ・モジュール２１を利用できるようになる。その後、ブートはＯＳの処理に引き継がれてブロック２１５で終了しシステムはＳ０ステートに遷移する。
【００５２】
［タンパーの検出手順］
図６は、パワー・オフ状態のシステムがタンパーを検出してデータを消去する手順を説明するフローチャートである。本明細書においてタンパーは、マザーボード６１からキャッシュ・モジュール８６を実際に抜き取った行為またはその可能性を示す行為をいう。ブロック４０１からブロック４１３まではＥＣ２５の処理を示し、ブロック５０１からブロック５０９まではキャッシュ・モジュール２１のコントローラ８６の処理を示している。ブロック４０１でシステムはＡＣ／ＤＣアダプタ３９が外され、電池ユニット３５が装着されてＳ５／Ｓ４ステートに遷移している。このタイミングにおいてブロック５０１でキャッシュ・モジュール２１はＳ０系統、Ｓ３系統の電源が停止しＳ５／Ｓ４系統の電源がキャッシュ・モジュール２１の揮発性メモリ８８に電力を供給してパワー・ビット８７の設定を維持している。
【００５３】
また、フラッシュ・メモリ８１のタンパー・ビット８５は解除されている。このとき、真正なユーザが交換のためまたは不正な第３者がデータの盗聴のためにキャッシュ・モジュール２１を取り外そうとする。行為者はボトム・カバー５７のネジを外してマザーボード６１を露出させ最初に電池ユニット３５を取り外すと予想される。あるいは、電池ユニット３５を装着したままキャッシュ・モジュール２１を取り外すことも想定する必要がある。
【００５４】
電池ユニット３５を取り外すとシステムはＧ３ステートに遷移する。カバー・センサ３３が動作してからＧ３ステートに遷移する場合はブロック４０５に移行する。本発明はシステム筐体５３のベイに装着された電池パックを搭載するノートＰＣにも適用することができる。電池パックは、ボトム・カバー５７を開放する前に取りはずせるため、この場合はカバー・センサ３３が動作しないでブロック４１１に移行してシステムはＧ３ステートに遷移する。ただし、ＲＴＣ電源系統１６を利用してＰＣＨ１７にタンパー・ビットを設定する方法を採用すれば、Ｇ３ステートでカバー・センサ３３が動作したときにタンパーを検知して、ブート時に図７の手順で処理することができる。
【００５５】
ブロック４０５から４０９までの手順は主として、システム筐体５３の内部に電池ユニット３５が収納されているようなシステムで実行される。ブロック４０５でカバー・センサ３３の動作を検知したパワー・コントローラ２９は、ＥＣ２５に起動原因とともに通知する。ＥＣ２５は、Ｓ０系統で動作するデバイスに電力を供給する。この時の起動原因に対して動作するデバイスは、パワー・コントローラ２９、ＥＣ２５およびキャッシュ・モジュール２１だけなので、ＥＣ２５はその範囲のデバイスにだけ電力を供給できるようにＤＣ／ＤＣコンバータ３７を構成してもよい。
【００５６】
ブロック５０３でキャッシュ・モジュール２１にもＳ０系統の電力が供給される。ＢＩＯＳコード１０７はブートを開始するがブートが進んでコマンドを送れるようになるまでは所定の時間を費やす。したがってブロック４０７でＥＣ２５はライン９５を通じてコントローラ８６にカバー・センサ３３の動作を示すタンパー信号を送る。ブロック５０５でタンパー信号を受け取ったコントローラ８６は、フラッシュ・メモリ８１にタンパー・ビット８５を設定する。
【００５７】
つづいて、ブロック４０９でＥＣ２５はライン９３を１ワイヤ方式のプロトコルでオン／オフ制御して、コントローラ８６に消去信号を送る。ブロック５０７で消去信号を受け取ったコントローラ８６は、データ領域８６のすべてのデータを消去する。コントローラ８６がデータを消去するためには電源が必要となるため、ブロック４０７、５０５、４０９、５０７の手順は電池ユニット３５またはキャッシュ・モジュール２１がマザーボード６１から取り外される前に行う必要がある。
【００５８】
本実施の形態ではブロック４０７、４０９の手順を、ＣＰＵ１１がＢＩＯＳコード１０７を実行して行うのではなく、ＥＣ２５によるハードウェア・レベルまたはファームウェア・レベルで行うため短時間で終了することができる。ブロック５０７のタイミングまで電池ユニット３５が取り外されないでかつキャッシュ・モジュール２１が取り外されない場合は、カバー・センサ３３の動作でタンパー・ビット５０５が設定されかつフラッシュ・メモリ８１のデータが消去される。本実施の携帯ではタンパー・ビット５０５の設定はキャッシュ・モジュール２１に対するタンパーが発生したものとして扱う。
【００５９】
カバー・センサ３３が動作してから電池ユニット３５またはキャッシュ・モジュール２１の取り外しまでの時間がブロック４０７、４０９の手順を終了するまでの時間より短い場合は、タンパー・ビット８５の設定およびデータの消去またはいずれか一方の処理が行われない場合がある。本発明ではＢＩＯＳコード１０７を実行するＣＰＵ１１がライン９１を通じてデータを消去するコマンドを送る方法を採用することも可能であるが、ＥＣ２５による方法より一層長い時間を費やすことになりデータ消去の実現性は低下する。
【００６０】
ブロック４１１で電池ユニット３５が取り外されるかまたはキャッシュ・モジュール２１がマザーボード６１から取り外される。その場合、キャッシュ・モジュール２１の揮発性メモリに対するＳ５／Ｓ４系統の電源が停止して、ブロック５０９で揮発性メモリ８８のパワー・ビット８７が解除される。電池ユニット３５が取り外されないでキャッシュ・モジュール２１が取り外された場合でもその時点でパワー・ビット８７は必ず解除される。本実施の形態ではパワー・ビット８７の解除はキャッシュ・モジュール２１に対するタンパーが発生したものとして扱う。カバー・センサ３３が動作してもタンパー・ビット８５は設定されない可能性が残るが、パワー・ビット８７はキャッシュ・モジュール２１が取り外されると必ず解除される。
【００６１】
カバー・センサ３３が動作せず、電池ユニット３５およびキャッシュ・モジュール２１が取り外されない場合は、パワー・ビットが設定されタンパー・ビットが解除された状態でブロック４１３に移行しタンパーの検出処理は終了する。ここではブートを完了する必要がないため、ＢＩＯＳコード１０７はブロック４０９でコントローラからデータを消去した通知を受けたあとはシステムをパワー・オフ状態に遷移させることができる。ブロック５１１ではキャッシュ・モジュール２１に関して以下の４つのシナリオを想定する。第１のシナリオは、タンパー・ビットが解除されかつパワー・ビット８７が設定されている状態である。第１のシナリオは、ボトム・カバー５７、電池ユニット３５およびキャッシュ・モジュール２１が取り外されない通常の状態に相当する。
【００６２】
第２のシナリオから第４のシナリオは、パワー・ビット８７が解除されタンパー・ビット８５が不定の状態でキャッシュ・モジュール２１が何らかのコンピュータに装着された場合である。タンパー・ビット８５が不定であるのは、ブロック４０７の手順が実行される前に電池ユニット３５またはキャッシュ・モジュール２１が取り外された場合を想定しているからである。
【００６３】
第２のシナリオは、初期化がされてバインディングされたノートＰＣ１０に再装着された状態に相当する。第３のシナリオは、図５のブロック２０７から２１１までの機能を備えているがバインディングされていないＢＩＯＳコードを実装するノートＰＣに装着された状態に相当する。第４のシナリオは図５のブロック２０７から２１１までの機能を備えていないコンピュータに装着された状態に相当する。データが消去されないで第３のシナリオまたは第４のシナリオを迎えると、フラッシュ・メモリ８１のデータが盗聴される可能性がでてくる。
【００６４】
［装着後の盗聴の防止手順］
図７、図８は、第１のシナリオから第４のシナリオのいずれかでキャッシュ・モジュールがコンピュータに装着されたときのデータの盗聴を防止する方法を説明するフローチャートである。ブロック６０１からブロック６５７まではＢＩＯＳコード１０７の処理を示し、ブロック７０１からブロック７５７まではキャッシュ・モジュール２１のコントローラ８６の処理を示している。ブロック６０１でＳ５／Ｓ４ステートにおいてパワー・ボタン３１が押下されるとＳ０ステートで動作するデバイスに電力が供給されてシステムはブートを開始する。
【００６５】
ブロック７０１におけるキャッシュ・モジュール２１の状態は、揮発性メモリ８８のパワー・ビット８７の状態、フラッシュ・メモリ８１のタンパー・ビット８５の状態およびデータ領域８３の消去状態が不定になっている。パワー・ビット８７の状態が不定であるのは、第１のシナリオを想定しているからである。ブートを開始するとＢＩＯＳコード１０７はＣＲＴＭ１０５およびＢＩＯＳコード１０７を実行してＰＯＳＴを開始する。ブロック６０３でＢＩＯＳコード１０７は、キャッシュ・モジュール２１が装着されていることを認識するとキャッシュ・モジュール２１とＰＣＨ１７のインターフェースを初期化してからブロック６０３で、キャッシュ・モジュール２１にタンパー・ビット８５の状態を問い合わせる。
【００６６】
コントローラ８６は、ＢＩＯＳ１０７によるタンパー・ビット８５の照会に対しては、ＢＩＯＳコード１０７の認証をしないで即時に応答する。ＲＴＣ電源系統１６の電力でＰＣＨ１７にタンパー・ビットを設定した場合もＢＩＯＳ１０７はこの時点で確認する。ブロック６０５でＢＩＯＳコード１０７はタンパー・ビット８５が解除されていると判断したときはブロック６０７に移行し設定されていると判断したときは図８のブロック６５１に移行する。ブロック６０７でＢＩＯＳコード１０７は、キャッシュ・モジュール２１にパワー・ビット８７の状態を問い合わせる。
【００６７】
コントローラ８６は、ＢＩＯＳ１０７によるパワー・ビット８７の照会に対しては、ＢＩＯＳコード１０７の認証をしないで即時に応答する。ブロック６０９でＢＩＯＳコード１０７はパワー・ビット８５が設定されていると判断したときはブロック６１１に移行し解除されていると判断したときは図８のブロック６５１に移行する。ブロック７０３でコントローラ８６は、自主検査のなかでタンパー・ビット８５の状態をシステムとは独立して独自に確認する。タンパー・ビット８５が設定されていると判断したときは図８のブロック７５１に移行し、解除されていると判断したときはブロック７０５に移行する。
【００６８】
ブロック７０５でコントローラ８６は、パワー・ビット８７の設定状態を独自に確認する。パワー・ビット８７が設定されていると判断したときはブロック７０７に移行し、解除されていると判断したときは図８のブロック７５１に移行する。ブロック７０７でコントローラ８６はキャッシュ・モジュール２１の自主検査が終了するとブロック７０９でＢＩＯＳコード１０７にレディ信号を送る。レディ信号を受け取ったＢＩＯＳコード１０７はブロック６１１でキャッシュ・モジュール２１を認識する。以後、システムはキャッシュ・モジュール２１を利用できるようになる。
【００６９】
その後、ブートはＯＳの処理に引き継がれてブロック６１３で終了してシステムはＳ０ステートに遷移する。ブートを開始したときにシステムがブロック６１３に到達するのは、初期化のあとに第１のシナリオの経緯をたどった場合である。システムはブロック６０１からブロック６１３までの手順で動作するが、タンパー・ビット８５とパワー・ビット８７の確認だけで処理できるため、本発明の導入でブート時間が遅延することはない。
【００７０】
図８のブロック６５１、７５１では、ＢＩＯＳコード１０７とコントローラ８６がチャレンジ・レスポンス方式で相互認証を行う。ＢＩＯＳコード１０７は、チャレンジとして一時的に利用する乱数（ワンタイム・パスワード）を生成してコントローラ８６に送る。チャレンジは認証のたびに異なる乱数とする。コントローラ８６は、ＢＩＯＳ１０７からのチャレンジに対しては、ＢＩＯＳコード１０７の認証をする前であっても応答する。コントローラ８６は、受け取ったチャレンジと識別情報１０９ｂを結合した結合データを共通鍵１１１ｂで暗号化してからＢＩＯＳコード１０７に送る。
【００７１】
コントローラ８６は、暗号化された結合データを送る際にＢＩＯＳコード１０７に識別情報１０９ｂを要求する。ＢＩＯＳコード１０７は、チャレンジと識別情報１０９ａを結合したデータを共通鍵１１１ａで暗号化した結合データをコントローラ８６に送る。ブロック６５３でＢＩＯＳコード１０７は、コントローラ８６から受け取った暗号化された結合データを共通鍵１１１ａで復号して抽出した識別情報１０９ｂを識別情報１０９ａと比較する。
【００７２】
もし、両者が一致しない場合またはいずれの識別情報も受け取ることができない場合は、再使用のためにキャッシュ・モジュール２１を初期化する必要があるので図５のブロック２０７に戻る。ブロック２０７に戻るのは、キャッシュ・モジュール２１が、図５の手順でタンパーからデータ領域８３を保護する機能を備えているがバインディングされていないＢＩＯＳコードを実装するノートＰＣに装着された第３のシナリオの場合である。
【００７３】
このとき、ＢＩＯＳコード１０７は、キャッシュ・モジュール２１のデータ領域８３にアクセスすることを停止して、データの消去とバインディングを含む初期化を行って、キャッシュ・モジュール２１を再利用する。第４のシナリオの場合は、装着先で動作するＢＩＯＳの処理にしたがうことになるため、当該ＢＩＯＳはデータを消去しないでデータ領域８３にアクセスできるかも知れない。ただし、以下のブロック７５３、３０３におけるコントローラ８６の処理でデータ領域８３のデータは消去されるので盗聴を防止することはできる。
【００７４】
コントローラ８６は、ＢＩＯＳコード１０７から受け取った暗号化されたチャレンジと識別情報１０９ａの結合データを共通鍵１１１ｂで復号して抽出した識別情報１０９ａを識別情報１０９ｂと比較する。もし、両者が一致しない場合またはいずれの識別情報も受け取ることができない場合は、初期化が行われたコンピュータとは異なるコンピュータに接続されて不正にアクセスされている可能性があるため、図５のブロック３０３に戻る。
【００７５】
ブロック３０３に戻るのは第３のシナリオ３および第４のシナリオの場合である。このとき、キャッシュ・モジュール２１は、ＢＩＯＳコード１０７を認証できないと判断するとＢＩＯＳコード１０７からリセット・コマンドを受け取らない場合でも自律的にデータ領域８３のデータを消去して盗聴を防止する。したがってキャッシュ・モジュール２１を、バインディングされていないコンピュータに接続して不正なアクセスをしようとすれば、キャッシュ・モジュールはただちにデータを消去して盗聴を防止する。
【００７６】
ブロック６５３で両者が一致してＢＩＯＳコード１０７がキャッシュ・モジュール２１を認証すると、ブロック６５５に移行する。またブロック７５３で両者が一致してキャッシュ・モジュール２１がＢＩＯＳコード１０７を認証すると、ブロック７５５に移行する。ブロック６５５でＢＩＯＳコード１０７は必要に応じて、コントローラ８６にタンパー・ビット８５の解除要求をすると、ブロック７５５でコントローラ８６はタンパー・ビット８５を解除する。なお、コントローラ８６は、自らが認証したＢＩＯＳコード１０７からの要求がない限りタンパー・ビット８５の解除はしない。
【００７７】
ブロック６５７でＢＩＯＳコード１０７は必要に応じて、コントローラ８６にパワー・ビット８７の設定要求をすると、ブロック７５７でコントローラ８６はパワー・ビット８７を設定する。なお、コントローラ８６は、自らが認証したＢＩＯＳコード１０７からの要求がない限りパワー・ビット８７の設定はしない。ブロック６５７から図７のブロック６１１に移行し、ブロック７５７から図７のブロック７０７に移行する。
【００７８】
ブロック６１１、７０７へ移行するのは、第２のシナリオの場合である。すなわち、キャッシュ・モジュール２１がノートＰＣ１０から取り外され、再度ノートＰＣ１０に装着されたときは、みかけ上はタンパーが発生した状態であるが、すでにバインディングがされているので盗聴の可能性はないと判断してデータを消去することなくキャッシュ・モジュール２１を利用できるようにしている。
【００７９】
キャッシュ・モジュール２１のタンパーを、カバー・センサ３３によるボトム・カバー５７の開放で検出する方法を説明したが、本発明はキャッシュ・モジュール２１を取り外す際に避けることができない他の物理的な行為を検出する方法も採用することができる。たとえば、キャッシュ・モジュール２１を取り外すために必ず外さなければならない部品や基板などの取り外しを検出してタンパーの発生としてもよい。データ領域８３の盗聴を防止するために、データを消去する例を説明したがキャッシュ・モジュール２１の再利用をする必要がない場合は、キャッシュ・モジュール２１がシステムからのすべてのアクセスに対して応答しないようにロックしたりアドレステーブルを破壊したりすることで盗聴を防止するようにしてもよい。
【符号の説明】
【００８０】
１０  ノートＰＣ
２１  キャッシュ・モジュール
３３  カバー・センサ
５３  システム筐体
５７  ボトム・カバー
１０７  ＢＩＯＳコード
１０９ａ、１０９ｂ  識別情報
【図１】
2014146256.tif 000003
【図２】
2014146256.tif 000004
【図３】
2014146256.tif 000005
【図４】
2014146256.tif 000006
【図５】
2014146256.tif 000007
【図６】
2014146256.tif 000008
【図７】
2014146256.tif 000009
【図８】
2014146256.tif 000010