(57)【要約】ランタイム・セキュリティ保証用の自律型メモリ・チェッカを備えた電子装置のための装置および方法が提供される。自律型メモリ・チェッカは、制御部、制御部に接続されたメモリ参照ファイル、および制御部に接続された認証エンジンを有する。検査が、電子装置のランタイム動作中に行われる。自律型メモリ・チェッカは、メモリ内に格納された信頼される情報に対応するランタイム参照値を生成する。ランタイム参照値は、メモリ参照ファイル内に格納されたメモリ参照値と比較される。メモリ参照値は、メモリ内に格納された信頼される情報から生成される。エラー信号は、ランタイム参照値がメモリ参照値と一致しない場合に生成され、それによって信頼される情報が修正されたことを示す。
2007525774.tif 000002
【特許請求の範囲】
【請求項１】
ランタイム・セキュリティ保証用の自律型メモリ・チェッカを含む電子装置であって、
制御部と、
前記制御部に接続されたメモリ参照ファイルと、
前記制御部に接続された認証エンジンと、
を備え、メモリ内に格納された情報に対応する実時間参照値をメモリ参照値と比較するという検査をランタイム動作中に行う電子装置。
【請求項２】
請求項１に記載の電子装置において、前記電子装置のランタイム動作中、前記検査は周期的に行われる、電子装置。
【請求項３】
請求項１に記載の電子装置において、前記電子装置のランタイム動作中、前記検査はランダムな時間に行われる、電子装置。
【請求項４】
請求項１に記載の電子装置であって、さらに、前記認証エンジン、前記メモリ参照ファイル、および前記制御部に接続されたクロック制御ブロックを備える電子装置。
【請求項５】
請求項４に記載の電子装置であって、さらに、前記認証エンジンおよび前記制御部に接続された直接メモリ・アクセス（ＤＭＡ）制御部を備える電子装置。
【請求項６】
請求項５に記載の電子装置であって、さらに、前記制御部に接続されたタイミング・モジュールを備える電子装置。
【請求項７】
請求項１に記載の電子装置において、前記メモリ参照値は、メモリ内に格納された信頼される情報に対応して生成され、前記メモリ参照値は、前記メモリ参照ファイル内に格納される、電子装置。
【請求項８】
請求項７に記載の電子装置において、メモリ内に格納された前記信頼される情報は、前記認証エンジンによって処理され、前記メモリ参照値が生成される、電子装置。
【請求項９】
請求項８に記載の電子装置において、メモリ内に格納された前記情報は、前記認証エンジンによって処理され、前記実時間参照値が生成され、前記メモリ参照値が前記実時間参照値と一致した場合、メモリ内に格納された前記情報は修正されていない、電子装置。
【請求項１０】
ランタイム・セキュリティ保証用の電子装置の動作方法であって、
信頼される情報をメモリ内に格納する段階と、
前記信頼される情報を認証エンジンに提供する段階と、
前記信頼される情報に対応するメモリ参照値を生成する段階と、
前記メモリ参照値をメモリ参照ファイルに格納する段階と、
ランタイム・モードで前記電子装置を動作させる段階と、
前記電子装置のランタイム動作中、前記信頼される情報を前記認証エンジンに格納したメモリ位置に対応するメモリ内容を提供する段階と、
実時間参照値を生成する段階と、
前記実時間参照値を前記メモリ参照値と比較する段階と、
を備える方法。
【請求項１１】
請求項１０に記載の方法において、前記信頼される情報に対応するメモリ参照値を生成する前記段階はさらに、ハードウェア認証エンジンを用いて前記参照値を生成する段階を含む、方法。
【請求項１２】
請求項１０に記載の方法であって、さらに、
前記実時間参照値が前記メモリ参照値と一致した場合、前記電子装置のランタイム動作を継続する段階と、
前記実時間参照値が前記メモリ参照値と一致しない場合、エラーを知らせる段階と、
を備える方法。
【請求項１３】
請求項１２に記載の方法であって、さらに、前記信頼される情報を格納したメモリ位置に対応するメモリ内容から実時間参照値を生成する前記段階と、前記実時間参照値を前記メモリ参照値と比較する前記段階とを含むランタイム検査プロセスを繰り返す段階を備える方法。
【請求項１４】
請求項１３に記載の方法であって、さらに、前記電子装置のランタイム動作のバックグラウンドで、前記ランタイム検査プロセスを実行する段階を備える方法。
【請求項１５】
請求項１４に記載の方法であって、さらに、前記電子装置のランタイム動作中、前記ランタイム検査プロセスが発生した場合にランダム化する段階を備える方法。
【請求項１６】
ランタイム・セキュリティ保証用の電子装置の動作方法であって、
メモリ内に格納された信頼される情報をハッシュするために、ブートモード中に自律型メモリ・チェッカに提供する段階と、
前記自律型メモリ・チェッカに命令して、前記ブートモード中に前記信頼される情報をハッシュする段階と、
前記信頼される情報から参照ハッシュ値を生成する段階と、
前記自律型メモリ・チェッカ内のメモリ参照ファイルに前記参照ハッシュ値を格納する段階と、
前記自律型メモリ・チェッカによってハッシュするために、ランタイム中にメモリから前記信頼される情報をフェッチする段階と、
ランタイム中に取得した前記信頼される情報を用いて、ランタイム・ハッシュ値を生成する段階と、
前記参照ハッシュ値を前記ランタイム・ハッシュ値と比較する段階と、
前記参照ハッシュ値が前記ランタイム・ハッシュ値と異なる場合、エラーを知らせ、前記信頼される情報が修正されたことを示す段階と
を備える方法。
【請求項１７】
請求項１６に記載の方法であって、さらに、
前記自律型メモリ・チェッカによってハッシュするために、ランタイム中にメモリから前記信頼される情報をフェッチする前記段階と、
ランタイム中に取得された前記信頼される情報を用いて、ランタイム・ハッシュ値を生成する前記段階と、
前記参照ハッシュ値を前記ランタイム・ハッシュ値と比較する前記段階と、
前記参照ハッシュ値が前記ランタイム・ハッシュ値と異なる場合、エラーを知らせ、前記信頼される情報が修正されたことを示す前記段階と、
をランダムに繰り返す段階を備える方法。
【請求項１８】
請求項１６に記載の方法において、メモリ内に格納された信頼される情報をハッシュするために、ブートモード中に自律型メモリ・チェッカに提供する前記段階は、複数のメモリ・ブロックから前記信頼される情報をフェッチする段階を含む、方法。
【請求項１９】
請求項１８に記載の方法であって、さらに、前記ランタイム・ハッシュ値が前記参照ハッシュ値と一致する場合、前記電子装置のランタイム動作を継続する段階を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ソフトウェアのセキュリティ保証に関し、より詳細には、ランタイム・ソフトウェアにセキュリティ保証を追加するためのハードウェア方法に関する。
【背景技術】
【０００２】
ランタイム中に組込みシステム・ソフトウェアのコード整合性を保証することが、組込み電子装置の重要なセキュリティ上の問題になっている。メモリ内に格納したソフトウェアの整合性を保証することが望ましいような大容量電子装置の例として、携帯情報端末（ＰＤＡ：Personal Digital Assistant）や携帯電話がある。一般に、これらの装置は内蔵マイクロプロセッサを用いて、ブートタイムおよびランタイムの二段階で命令を実行する。信頼されるコンピュータ・システムは暗号ソフトウェアを用いて、その実行前に各段階を認証する。
【０００３】
ブートタイム中、組込みプロセッサは、基本ハードウェアと、電気的に消去可能な読み出し専用メモリ（不揮発性フラッシュメモリ等）、読み出し専用メモリ（ＲＯＭ：Read Only Memory）、または電気的にプログラム可能な読み出し専用メモリ（ＥＰＲＯＭ：Electrically Programmable Read Only Memory）等の不揮発性メモリ内に格納したソフトウェア初期化命令（ブート・コード）とを実行する。ブート・コードの目的は、ハードウェアおよびハードウェア関連データを検証および構成し、システム・ソフトウェア用の既知の実行環境およびユーザ・インタフェースを提供することにある。信頼されるコンピュータ動作のために、ブート・コードはさらにブートタイムにプログラム・アプリケーションまたはオペレーティング・システム（ＯＳ：Operating System）メモリを検証または認証し、期待され信頼されるコードを含むことを保証する。一旦ブートタイム命令が正当であることを検査すると、システム制御は正当なＯＳ／アプリケーション実行画像に渡され、ランタイム・モードに入る。
【０００４】
ランタイム中、プロセッサは、ＯＳ／アプリケーション画像からコードを実行する。ＯＳは一般に、マルチプロセス・ランタイム実行環境を確立し、通常のランタイム・プロセスを準備するために、起動または組込みアプリケーションをロードする。信頼されないユーザ・アプリケーション・コードまたはダウンロードされた動的コードが実行可能になり、コンピュータ・ウィルスまたは内蔵プログラムのバク等の非ブートタイム要因によって、元の信頼され認証されたコード上でメモリ破損が生じるのは、ランタイム環境が十分に確立されたこの後の時間中である。さらに、ブートタイムに検証されたＯＳ／アプリケーション・プログラム・メモリが、ランタイム・メモリによって不正に置き換えられ、ブートタイムに認証されたものと完全に異なってしまう。これは、「ピギーバック」攻撃として知られ、組込みシステム・ソフトウェアに著しいセキュリティ上の脅威をもたらす。製品プラットフォームに物理的アクセスを要求するので、元の正当なメモリ装置上でランタイム・メモリ装置がピギーバックされる。それは、ブート・プロセスが終了し、制御を外部メモリに渡した後、正当なブート装置を完全に置き換え、完全に異なる未検査のランタイム環境を生成する。
【０００５】
システム・ソフトウェア内の命令コードを検証する既存の方法は、命令メモリを一度認証するだけである。一度だけの検証は、暗号アルゴリズムを用いて、一方向のメモリ参照署名または非対称キー・デジタル署名を生成することによって行われる。実行前に、メッセージ認証コードまたは同様のデジタル署名を命令メモリ上で生成する。生成した結果がシステム内、または暗号化された非対称デジタル署名内の他のどこかに格納された所定の値と一致する場合、命令の実行が許可される。しかし、現在の解決策は、最初の認証後、命令メモリの内容が改竄される危険性には対処していない。ランタイム中、命令コードは、認証された命令メモリまたはデータを置き換えるピギーバック攻撃またはソフトウェア攻撃に対して脆弱である。最初に認証されたコード整合性は、メモリの物理的な置換、またはプロセッサの流用によって損なわれ、元々認証されていなかったメモリ範囲からコードを実行できる。例えば、コンピュータ・ウィルスは、ブートタイム中、休止したままであり、それからプロセッサ内に例外処理を引き起こし、異なる組の命令を実行させることができる。
【０００６】
電子装置を制御する大部分のシステム・ソフトウェアは、装置の動作過程中に変更すべきではない。システム・ソフトウェアが初期の認証によって十分に保証されてメモリ内にロードされたとしても、数百万クロック・サイクル後、信頼されないコードに曝され続けると、システム劣化の可能性が高くなる。システムが破壊されると、自己検査機能の実行も信頼できなくなる。実際、これらの自己検査を行うために用いられる参照データ／メモリはセキュリティ目標または脆弱性、およびセキュリティ上敏感なデータ例であり、決して変更すべきではない。他のセキュリティ上敏感なデータに構成レジスタがあり、これは組込み装置の外部からの内部データ視認性、または割り込みサービスルーチン（ＩＳＲ：Interrupt Service Routine ）アドレスまたは所定のメモリ管理ユニット（ＭＭＵ：Memory Management Unit）ページ・テーブル等のＯＳ上敏感なデータ、またはユーザおよびグループ識別子やパスワード等の所定のファイル・システム・データを制御する。
【０００７】
さらに、携帯電話やＰＤＡ等の多くの組込みシステムは、電源から切断された場合にのみブートモードに入る。従って、ランタイム・モードでの組込み装置の当初の命令コードの整合性は、装置がダウンロードしたアプリケーション・プログラムを実行し、外部装置と通信するにつれて、次第に増大する危険に直面する。従って、この危険性の大きさは、通常それらの電源から切断されず、電源不良が発生するまで認証のためのリブートを行わない装置において特に重要である。さらに、オペレーティング・システムおよびアプリケーション・ソフトウェアは、メモリの異なる領域に格納される。ソフトウェアが異なる領域に格納され、複数の発信源からソフトウェアを受け取り、信頼できるものもあれば、それを実証できないものもあるという事実は、長期間の追跡とセキュリティ上の問題をもたらす。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、ブートタイム中にメモリにロードされるソフトウェアのランタイム・セキュリティ保証用のメモリ・チェッカを考案することが望ましい。メモリ・チェッカは、確実に検査するために自律型であることが望ましい。さらに、装置はエネルギー効率が高く、頻繁にバス・アクセスを要求することによって、ランタイム・システム性能に著しく影響を与えないことが望ましい。
【発明を実施するための最良の形態】
【０００９】
本発明をこれ以降、図面と共に説明する、図面では同様の番号は同様の構成要素を示している。
以下の詳細な説明は本質的に典型例にすぎず、本発明または本発明の用途および使用を限定するものとはみなされない。さらに、前述の技術分野、背景、簡単な概略または、以下の詳細な説明で提示された任意の明示的または暗示的理論によって制限されることを意図するものではない。
【００１０】
図１は、本発明の一実施形態による自律型メモリ・チェッカ１０のブロック図である。ホスト・プロセッサ（図示せず）はまず、メモリ開始アドレス、長さ、直接メモリ・アクセス（ＤＭＡ：Direct Memory Access）読み出し周波数、最大バースト・サイズ、およびメモリ・ブロック許可等のプログラム可能なパラメータを設定する。それから、ホストはホスト・バス５０を介して、自律型メモリ・チェッカ１０の制御部２５にコマンドを送り、初期メモリ参照モードを開始する。初期メモリ参照モードでは、制御部２５はＤＭＡマスタ・バス４５を介して、メモリ内容をフェッチするようにＤＭＡ制御部１５に要求する。メモリ内容は、信頼される情報である。認証エンジン２０は、内部バス５５を介してメモリ内容を受け取り、適切なメモリ参照を生成する。認証エンジン２０は、大ブロックのデータ用のハッシュ関数、少量のデータ用の簡単な複製、または大量のデータを高速処理するための巡回冗長検査（ＣＲＣ：Cyclic Redundancy Check ）等のメモリ参照値を生成できる。それから、認証エンジン２０から出力されたメモリ参照値は内部バス８０と８５を介して、メモリ参照ファイル４０内に格納される。メモリ参照ファイル４０は、ブートタイム・モード中、メモリ内にメモリ参照値を格納する。これらのメモリ参照値は、ランタイム・モード中に生成したランタイム参照値と繰り返し比較され、ブートタイム・モード以降、変更すべきではない信頼される情報の整合性を保証する。
【００１１】
信頼される情報の一例は、電子装置の動作にとってクリティカルなソフトウェアである。製造業者は、電子装置にソフトウェアをロードする。製造業者または他の信頼される企業が電子装置にソフトウェアを提供しているので、ソフトウェアは信頼される情報である。一般に、従来技術の電子装置はブートタイム・モード中に、信頼される情報の整合性を検査するだけである。信頼される情報は、電子装置の使用者が知ることなく修正される傾向および可能性が高い。使用者が知ることなく外部の機関によって信頼される情報が修正されることは、深刻な結果をもたらすことがある。ソフトウェア・プログラムを用いて信頼される情報を検査することは自滅を招く。何故なら、問題なのはメモリ内の情報の整合性であるからである。言い換えると、ソフトウェア検査プログラムも、信頼される情報と同様に修正されることがある。当然のことながら、信頼される情報は変更または修正すべきでない任意の種類の情報であってもよく、ソフトウェアに限定されない。
【００１２】
ランタイム中、自律型メモリ・チェッカ１０は、正当なメモリ内容の信憑性を積極的に監視できる。それは、メモリから値をフェッチし、様々な監視方式を実行できる。一つの可能な方法は「ポイント検査」であり、これはメモリの一つの分離された場所からデータを取得する。別の方法には「ゆらぎ検査」があり、これはある場所から値を読み取り、それを前に格納した値と比較する。二つの値が一致する場合、ポインタを増加させ、新しい値を読み取り格納する。この格納した値は、同じメモリ位置から再び読み取った値と後で比較される。ゆらぎ検査は、割り当て空間の境界内でそれ自体を繰り返す。
【００１３】
別の一般的な方式は、「ブロック検査」である。この方法は、「ハッシュ」またはＣＲＣと呼ばれることも多い。ブロック検査は、所定のブロック・データ上で圧縮型の機能を実行し、後で比較するために別個の代表値（つまり、離散的な数学的関数の出力）を格納する。
【００１４】
他の監視機能には、読み書き検査、能動的待機検査、およびソフトウェア−ハードウェア・ハンドオフ検査がある。読み書き検査は、あるメモリ位置にランダムな値をロードし、後でそれを取得する。格納された値に何らかの変化があれば、データが破壊された可能性があることを意味する。読み書き方式では、ＤＭＡ制御部１５が所望のメモリ位置に読み書きの両方を実行できる必要がある。
【００１５】
能動的待機検査では、システム・ソフトウェアが比較のために周期的に「チェックイン」する必要がある。最後に、ソフトウェア−ハードウェア・ハンドオフ検査は、バッファ用に割り当てた空間がそれに書き込む単語数より小さいサブルーチン内で発生するバッファ・オーバ・フロー攻撃を防ぐ。オーバフローした単語は、プログラム・カウンタ等のクリティカルなデータに割り当てたスタック空間内に入る。サブルーチンが返ると、プログラム・カウンタは不正になる。バッファ・オーバ・フロー・アタックを防ぐ一つの方法は、正常なソフトウェアに安全な状態でハードウェア検査を開始するようにコマンドを出すことである。正常なソフトウェアは、サブルーチン内にバッファを割り当てようとしており、クリティカルなデータの位置が特定のアドレスにあることをハードウェアに知らせる。ハードウェアは、クリティカルな値をキャッシュに格納する。その直後、ハードウェアは、バッファの端の値が変更されていないか確認する。ソフトウェア−ハードウェア・ハンドオフ検査は幾分オーバヘッドを含むが、非常に敏感なデータにセキュリティ保証を著しく追加することができる。
【００１６】
自律型メモリ・チェッカ１０はその動作を停止し、適切な割り込みをアサートし、ランタイム中、参照不一致、アドレス／長さエラー、または監視タイムアウトが発生した場合、正当なメモリ内容が劣化している可能性を知らせる。当然のことながら、自律型メモリ・チェッカ１０は独立して動作し、その動作中、他の論理ブロックまたはプログラムによって停止されない。これは、信頼される情報がランタイム・モード中、常に検査されることを保証する。ランタイム中に発生したエラーによって自律型メモリ・チェッカ１０は停止し、ホストにエラーを知らせる。実施形態のシステムでは、エラー状態から抜けるためにハードウェア・リセットが必要とされる。
【００１７】
さらに、自律型メモリ・チェッカ１０は、タイマ・モジュール３５とクロック制御３０を有する。タイマ・モジュール３５は節電のために、その動作の様々な段階で自律型メモリ・チェッカ１０の所定の論理ブロックを停止する。タイマ・モジュール３５は連続的および部分的に、クロック制御３０、制御部２５、認証エンジン２０、および他のブロックの動作を制御する。タイマ・モジュール３５はバス監視タイマを有し、確実に許容可能な時間内にＤＭＡ制御部１５がバス・アクセスを許可されるようにする。クロック制御３０は、動作モード中は、制御部２５、認証エンジン２０、およびメモリ参照ファイル４０にクロック信号を供給する。
【００１８】
ＤＭＡ制御部１５は、自律型メモリ・チェッカ１０がバス・マスタであることを可能にする。自律型メモリ・チェッカ１０は、いつでもホストに許可を求めることなくメモリの内容をフェッチできる。ＤＭＡ制御部１５は、読み出し機能を有する。ＤＭＡ制御部１５の直接メモリ・アクセス機能は、ソフトウェア破壊によってホスト・プロセッサが信頼されない場合、自律型メモリ・チェッカ１０を信頼可能することができる。
【００１９】
図２は、図１の自律型メモリ・チェッカ１０の概念的動作ステップを示す第一のフロー図である。リセット後のブートタイム中、自律型メモリ・チェッカ１０は信号を受け取り、ホストから初期メモリ参照モード１１０に入る。初期メモリ参照モード１１０では、自律型メモリ・チェッカ１０はＤＭＡ制御部１５を介してメモリから所定の内容をフェッチし、認証エンジン２０を介して所望のメモリ位置またはブロック用のメモリ参照値を生成する。一般的な認証方式は、セキュア・ハッシュ・アルゴリズム１（ＳＨＡ−１）およびメッセージ・ダイジェスト・アルゴリズム５（ＭＤ５）を含むが、それらに限定されない。メモリ参照値は、所定のメモリ内容用の別個の値を表す。各メモリ参照値は、後で比較するためにメモリ参照ファイル４０内に格納される。プロセス１１５および１１７は、自律型メモリ・チェッカ１０がホストから別の信号を受け取り、ランタイム検査モード１２０に入るまで繰り返される。
【００２０】
ランタイム検査モード１２０では、調節型時間ランダム化器が、メモリ参照比較１３０を起動する。タイマ・モジュール３５が自律型メモリ・チェッカ１０の残りの回路を再起動すると、制御部２５はＤＭＡ制御部１５に信号を送り、所定のブロックおよびアドレスからメモリ内容をフェッチする。フェッチしたメモリ内容は認証エンジン２０に送られ、ランタイム参照値を生成する。ランタイム参照値は、メモリ参照ファイル４０内に格納された値と比較される。比較されるランタイムおよびメモリ参照値は、同一のメモリ・ブロックおよびアドレスに対応する。ランタイムおよびメモリ参照値が一致する場合、調節型時間ランダム化器が別のメモリ参照比較を起動すると常に、プロセス１３０および１４０を繰り返す。メモリ参照値が一致しない場合、自律型メモリ・チェッカ１０はエラー・モード１５５に入り、ハードウェア処置を行う。
【００２１】
一旦エラーが発生すると、自律型メモリ・チェッカ１０はいくつかのハードウェア処置を行うことができる。一つの可能な処置は、配線低減システム状態に入ることである。この配線は、携帯電話用Ｅ−９１１等の非セキュア状態にシステムの機能をもたらす。外部警告は、エラーを知らせるハードウェア処置の別の方法である。これは、装置のメモリ内容の整合性が信頼できないことを示すＬＥＤのように単純なものであってもよい。極めて敏感なデータの場合、ハードウェア処置は、敏感な情報を含むメモリを自動的に消去することもできる。
【００２２】
図３は、ホスト・プロセッサ２１０に接続された自律型メモリ・チェッカ２０５を示すシステム・ブロック図である。自律型メモリ・チェッカ２０５はマスタ・バス２４５を有し、マスタ・バス２４５は内部メモリ・ブロック２１５および外部メモリ・ブロック２２０，２２５からデータを読み込むために用いられる。自律型メモリ・チェッカ２０５は、スレーブ・バス２５５を介して、ホスト・プロセッサ２１０によってプログラムされる。自律型メモリ・チェッカ２０５はＤＭＡ機能を有し、一旦プログラムされれば、ホスト・プロセッサ２１０からの任意の処置を必要としない。読み書き検査を実施する場合、自律型メモリ・チェッカ２０５はメモリ・ブロック２１５，２２０および２２５に書き込むこともできるべきである。
【００２３】
自律型メモリ・チェッカ２０５はさらに、周辺装置２６０および２６５のレジスタの内容を監視する機能を有する。ブートタイム中、自律型メモリ・チェッカ２０５は装置レジスタの内容を認証し、そのメモリ参照ファイル４０内にレジスタ参照値を格納する。それから、自律型メモリ・チェッカ２０５は、ランタイム中に格納したその値と、装置２６０および２６５の実時間のレジスタ値を比較できる。
【００２４】
図４は、自律型メモリ・チェッカ２０５の動作ステップを示す第二のフロー図３００である。一実施形態のシステムでは、自律型メモリ・チェッカ２０５はブロック検査方式で実装され、ハッシュ関数を用いてメモリ参照値を生成する。まず、ホスト・プロセッサ２１０は、手続きボックス３１０で示したように、ハッシュする必要があるメモリ・ブロックのアドレスおよび長さの対をロードする。それから、ホスト・プロセッサ２１０は、手続きボックス３２０に示したように、制御レジスタ内の単一のハッシュ・メモリ許可と、コマンド・レジスタ内の「一度だけハッシュ」ビットとを設定する。
【００２５】
この段階では、自律型メモリ・チェッカ２０５は、図２で既に説明したように初期メモリ参照モードに入る。自律型メモリ・チェッカ２０５は手続きボックス３３０で示したように、メモリをハッシュし、ハッシュ・レジスタ・ファイル内にハッシュ値を配置し、「完了」割り込みを生成する。それから、ホスト・プロセッサ２１０は手続きボックス３４０に示したように、自律型メモリ・チェッカ２０５から生成したハッシュ値を読み込み、メモリのデジタル署名を確認する。デジタル署名が不正な場合、判別ボックス３５０に示したように、コード整合性エラーが存在する。値が一致する場合、ホスト・プロセッサ２１０は判別ボックス３６０に示したように、ランタイム中、メモリ・ブロック比較を動作中にすべきかどうかを自律型メモリ・チェッカ２０５に知らせる。そうない場合、判別ボックス３６０のＮＯに示したように、ランタイム・コード・ハッシュ中、メモリ・ブロック比較をスキップする。ホスト・プロセッサ２１０が自律型メモリ・チェッカ２０５をブロック比較に進めたい場合、ホスト・プロセッサ２１０は手続き３７０に示したように、制御レジスタ内のランタイム・ハッシュ・メモリ許可と、コマンド・レジスタ内の「ランタイム・ハッシュ」ビットとを設定する。
【００２６】
この時点で、自律型メモリ・チェッカ２０５はオフにできず、ホスト・プロセッサ２１０からのコマンドとは独立して動作する。自律型メモリ・チェッカ２０５は、ランタイム中、メモリ・ブロック２１５，２２０および２２５からのハッシュ結果を、ハッシュ・レジスタ・ファイル内に格納した値と頻繁に比較する。装置は、メモリ参照不一致が発生するまで、無限ループ３８０を動作する。検査は、周期的またはランダムに行われる。ランダム方式は、検査が規則的な時間シーケンスで発生しないので、ピギーバック等の攻撃、つまりメモリまたはメモリ内容を置換する攻撃をより困難にする。
【００２７】
以上の詳細な説明では、少なくとも一つの典型的な実施形態を提示してきたが、当然のことながら、膨大な数の変形態様が存在する。さらに当然のことながら、一つ以上の典型的な実施形態は例示的なものにすぎず、いずれにせよ、本発明の範囲、適用性、または構成を限定するものではない。むしろ、以上の詳細な説明は、一つ以上の典型的な実施形態を実現するための簡便なロードマップを当業者に提供するものである。当然のことながら、添付の請求項およびそれらの法的等価物に示されるとおり、本発明の範囲から逸脱することなく、構成要素の機能および配置に様々な変更を行うことができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態による自律型メモリ・チェッカのブロック図。
【図２】本発明の一実施形態によるランタイム・セキュリティ保証用の自律型メモリ・チェッカの動作ステップを示す第一のフロー図。
【図３】ホスト・プロセッサおよびメモリ・ブロックに接続された自律型整合性チェッカを示すシステム・ブロック図。
【図４】本発明の一実施形態によるランタイム・セキュリティ保証用の自律型メモリ・チェッカの動作ステップを示す第二のフロー図。
【図１】
2007525774.tif 000003
【図２】
2007525774.tif 000004
【図３】
2007525774.tif 000005
【図４】
2007525774.tif 000006
【国際調査報告】
2007525774.tif 000007