JP2007525774A - ランタイム・セキュリティ保証用の自律型メモリ・チェッカ - Google Patents

ランタイム・セキュリティ保証用の自律型メモリ・チェッカ Download PDF

Info

Publication number
JP2007525774A
JP2007525774A JP2007501775A JP2007501775A JP2007525774A JP 2007525774 A JP2007525774 A JP 2007525774A JP 2007501775 A JP2007501775 A JP 2007501775A JP 2007501775 A JP2007501775 A JP 2007501775A JP 2007525774 A JP2007525774 A JP 2007525774A
Authority
JP
Japan
Prior art keywords
memory
runtime
electronic device
reference value
trusted information
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.)
Granted
Application number
JP2007501775A
Other languages
English (en)
Other versions
JP4708414B2 (ja
JP2007525774A5 (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.)
NXP USA Inc
Original Assignee
NXP USA 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 NXP USA Inc filed Critical NXP USA Inc
Publication of JP2007525774A publication Critical patent/JP2007525774A/ja
Publication of JP2007525774A5 publication Critical patent/JP2007525774A5/ja
Application granted granted Critical
Publication of JP4708414B2 publication Critical patent/JP4708414B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Abstract

ランタイム・セキュリティ保証用の自律型メモリ・チェッカを備えた電子装置のための装置および方法が提供される。自律型メモリ・チェッカは、制御部、制御部に接続されたメモリ参照ファイル、および制御部に接続された認証エンジンを有する。検査が、電子装置のランタイム動作中に行われる。自律型メモリ・チェッカは、メモリ内に格納された信頼される情報に対応するランタイム参照値を生成する。ランタイム参照値は、メモリ参照ファイル内に格納されたメモリ参照値と比較される。メモリ参照値は、メモリ内に格納された信頼される情報から生成される。エラー信号は、ランタイム参照値がメモリ参照値と一致しない場合に生成され、それによって信頼される情報が修正されたことを示す。

Description

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

Claims (19)

  1. ランタイム・セキュリティ保証用の自律型メモリ・チェッカを含む電子装置であって、
    制御部と、
    前記制御部に接続されたメモリ参照ファイルと、
    前記制御部に接続された認証エンジンと、
    を備え、メモリ内に格納された情報に対応する実時間参照値をメモリ参照値と比較するという検査をランタイム動作中に行う電子装置。
  2. 請求項1に記載の電子装置において、前記電子装置のランタイム動作中、前記検査は周期的に行われる、電子装置。
  3. 請求項1に記載の電子装置において、前記電子装置のランタイム動作中、前記検査はランダムな時間に行われる、電子装置。
  4. 請求項1に記載の電子装置であって、さらに、前記認証エンジン、前記メモリ参照ファイル、および前記制御部に接続されたクロック制御ブロックを備える電子装置。
  5. 請求項4に記載の電子装置であって、さらに、前記認証エンジンおよび前記制御部に接続された直接メモリ・アクセス(DMA)制御部を備える電子装置。
  6. 請求項5に記載の電子装置であって、さらに、前記制御部に接続されたタイミング・モジュールを備える電子装置。
  7. 請求項1に記載の電子装置において、前記メモリ参照値は、メモリ内に格納された信頼される情報に対応して生成され、前記メモリ参照値は、前記メモリ参照ファイル内に格納される、電子装置。
  8. 請求項7に記載の電子装置において、メモリ内に格納された前記信頼される情報は、前記認証エンジンによって処理され、前記メモリ参照値が生成される、電子装置。
  9. 請求項8に記載の電子装置において、メモリ内に格納された前記情報は、前記認証エンジンによって処理され、前記実時間参照値が生成され、前記メモリ参照値が前記実時間参照値と一致した場合、メモリ内に格納された前記情報は修正されていない、電子装置。
  10. ランタイム・セキュリティ保証用の電子装置の動作方法であって、
    信頼される情報をメモリ内に格納する段階と、
    前記信頼される情報を認証エンジンに提供する段階と、
    前記信頼される情報に対応するメモリ参照値を生成する段階と、
    前記メモリ参照値をメモリ参照ファイルに格納する段階と、
    ランタイム・モードで前記電子装置を動作させる段階と、
    前記電子装置のランタイム動作中、前記信頼される情報を前記認証エンジンに格納したメモリ位置に対応するメモリ内容を提供する段階と、
    実時間参照値を生成する段階と、
    前記実時間参照値を前記メモリ参照値と比較する段階と、
    を備える方法。
  11. 請求項10に記載の方法において、前記信頼される情報に対応するメモリ参照値を生成する前記段階はさらに、ハードウェア認証エンジンを用いて前記参照値を生成する段階を含む、方法。
  12. 請求項10に記載の方法であって、さらに、
    前記実時間参照値が前記メモリ参照値と一致した場合、前記電子装置のランタイム動作を継続する段階と、
    前記実時間参照値が前記メモリ参照値と一致しない場合、エラーを知らせる段階と、
    を備える方法。
  13. 請求項12に記載の方法であって、さらに、前記信頼される情報を格納したメモリ位置に対応するメモリ内容から実時間参照値を生成する前記段階と、前記実時間参照値を前記メモリ参照値と比較する前記段階とを含むランタイム検査プロセスを繰り返す段階を備える方法。
  14. 請求項13に記載の方法であって、さらに、前記電子装置のランタイム動作のバックグラウンドで、前記ランタイム検査プロセスを実行する段階を備える方法。
  15. 請求項14に記載の方法であって、さらに、前記電子装置のランタイム動作中、前記ランタイム検査プロセスが発生した場合にランダム化する段階を備える方法。
  16. ランタイム・セキュリティ保証用の電子装置の動作方法であって、
    メモリ内に格納された信頼される情報をハッシュするために、ブートモード中に自律型メモリ・チェッカに提供する段階と、
    前記自律型メモリ・チェッカに命令して、前記ブートモード中に前記信頼される情報をハッシュする段階と、
    前記信頼される情報から参照ハッシュ値を生成する段階と、
    前記自律型メモリ・チェッカ内のメモリ参照ファイルに前記参照ハッシュ値を格納する段階と、
    前記自律型メモリ・チェッカによってハッシュするために、ランタイム中にメモリから前記信頼される情報をフェッチする段階と、
    ランタイム中に取得した前記信頼される情報を用いて、ランタイム・ハッシュ値を生成する段階と、
    前記参照ハッシュ値を前記ランタイム・ハッシュ値と比較する段階と、
    前記参照ハッシュ値が前記ランタイム・ハッシュ値と異なる場合、エラーを知らせ、前記信頼される情報が修正されたことを示す段階と
    を備える方法。
  17. 請求項16に記載の方法であって、さらに、
    前記自律型メモリ・チェッカによってハッシュするために、ランタイム中にメモリから前記信頼される情報をフェッチする前記段階と、
    ランタイム中に取得された前記信頼される情報を用いて、ランタイム・ハッシュ値を生成する前記段階と、
    前記参照ハッシュ値を前記ランタイム・ハッシュ値と比較する前記段階と、
    前記参照ハッシュ値が前記ランタイム・ハッシュ値と異なる場合、エラーを知らせ、前記信頼される情報が修正されたことを示す前記段階と、
    をランダムに繰り返す段階を備える方法。
  18. 請求項16に記載の方法において、メモリ内に格納された信頼される情報をハッシュするために、ブートモード中に自律型メモリ・チェッカに提供する前記段階は、複数のメモリ・ブロックから前記信頼される情報をフェッチする段階を含む、方法。
  19. 請求項18に記載の方法であって、さらに、前記ランタイム・ハッシュ値が前記参照ハッシュ値と一致する場合、前記電子装置のランタイム動作を継続する段階を備える方法。
JP2007501775A 2004-03-01 2005-01-21 ランタイム・セキュリティ保証用の自律型メモリ・チェッカ Expired - Fee Related JP4708414B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/791,171 2004-03-01
US10/791,171 US7401234B2 (en) 2004-03-01 2004-03-01 Autonomous memory checker for runtime security assurance and method therefore
PCT/US2005/001752 WO2005091757A2 (en) 2004-03-01 2005-01-21 Autonomous memory checker for runtime security assurance and method therfore

Publications (3)

Publication Number Publication Date
JP2007525774A true JP2007525774A (ja) 2007-09-06
JP2007525774A5 JP2007525774A5 (ja) 2008-03-06
JP4708414B2 JP4708414B2 (ja) 2011-06-22

Family

ID=34887573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007501775A Expired - Fee Related JP4708414B2 (ja) 2004-03-01 2005-01-21 ランタイム・セキュリティ保証用の自律型メモリ・チェッカ

Country Status (6)

Country Link
US (1) US7401234B2 (ja)
EP (1) EP1721252A4 (ja)
JP (1) JP4708414B2 (ja)
KR (1) KR101122517B1 (ja)
CN (1) CN100489805C (ja)
WO (1) WO2005091757A2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527565A (ja) * 2005-01-12 2008-07-24 マイクロソフト コーポレーション 十分に正当な/最新のコードであることを確実にして行使する最後の防衛線
JP2010218237A (ja) * 2009-03-17 2010-09-30 Renesas Electronics Corp プログラム検証装置及びその方法
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8353046B2 (en) 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8464348B2 (en) 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
JP2016024821A (ja) * 2014-07-16 2016-02-08 ゼネラル・エレクトリック・カンパニイ 実行中のアプリケーションの信頼性を確認するためのシステムおよび方法
JP2021051745A (ja) * 2019-09-23 2021-04-01 株式会社デンソー コンピュータ装置およびメモリ管理方法

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138402A1 (en) * 2003-12-23 2005-06-23 Yoon Jeonghee M. Methods and apparatus for hierarchical system validation
US7805765B2 (en) * 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data
US7650639B2 (en) * 2005-03-31 2010-01-19 Microsoft Corporation System and method for protecting a limited resource computer from malware
JP4698285B2 (ja) * 2005-05-19 2011-06-08 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
US7711949B2 (en) * 2006-11-30 2010-05-04 Texas Instruments Incorporated Apparatus and method for frustrating unwanted access to data with a host device
WO2008094385A2 (en) * 2007-01-26 2008-08-07 Wms Gaming Inc. Interoperability of servers and supported electronic gaming machines of different manufacturers
US20080195829A1 (en) * 2007-02-13 2008-08-14 Clifton Labs, Inc. Self-protecting memory device
WO2008129359A2 (en) * 2007-04-18 2008-10-30 Freescale Semiconductor, Inc. Data processing control unit, method for controlling data processing operations and data processing system
US8014976B2 (en) * 2007-10-24 2011-09-06 Microsoft Corporation Secure digital forensics
US8683213B2 (en) * 2007-10-26 2014-03-25 Qualcomm Incorporated Progressive boot for a wireless device
DE102008008317A1 (de) * 2008-02-07 2009-08-13 Man Turbo Ag Verfahren zum Schutz von gespeicherten Betriebsdaten einer Maschinenanlage oder ähnlichen Anlage
US8281188B2 (en) 2010-08-05 2012-10-02 Miller Gary L Data processing system with peripheral configuration information error detection
CN103250136B (zh) * 2010-12-16 2016-03-16 国际商业机器公司 用于验证运行时引用的方法
DE102012205988A1 (de) * 2012-04-12 2013-10-17 Robert Bosch Gmbh Teilnehmerstation für ein Bussystem und Verfahren zur Übertragung von Nachrichten zwischen Teilnehmerstationen eines Bussystems
CN102880838A (zh) * 2012-09-04 2013-01-16 深圳市芯海科技有限公司 电子设备的检测方法及装置
US9201629B2 (en) 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US8873750B2 (en) * 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
US9424200B2 (en) 2013-03-15 2016-08-23 Freescale Semiconductor, Inc. Continuous run-time integrity checking for virtual memory
US9721104B2 (en) * 2013-11-26 2017-08-01 Intel Corporation CPU-based measured boot
US9542263B2 (en) 2014-09-24 2017-01-10 Nxp Usa, Inc. Electronic device having a runtime integrity checker
CN104914815A (zh) * 2015-04-15 2015-09-16 北汽福田汽车股份有限公司 处理器监控方法、装置及系统
US9824243B2 (en) 2015-09-11 2017-11-21 Nxp Usa, Inc. Model-based runtime detection of insecure behavior for system on chip with security requirements
WO2017087621A1 (en) * 2015-11-17 2017-05-26 James Dooley Security stack for embedded systems
US10162694B2 (en) 2015-12-21 2018-12-25 Intel Corporation Hardware apparatuses and methods for memory corruption detection
JP2017167916A (ja) * 2016-03-17 2017-09-21 株式会社デンソー 情報処理システム
US10191791B2 (en) 2016-07-02 2019-01-29 Intel Corporation Enhanced address space layout randomization
WO2019177608A1 (en) 2018-03-15 2019-09-19 Hewlett-Packard Development Company, L.P. Address verification for direct memory access requests
DE102018213617A1 (de) * 2018-06-20 2019-12-24 Robert Bosch Gmbh Recheneinrichtung und Betriebsverfahren hierfür
EP3822838B1 (en) * 2019-11-18 2021-11-03 Shenzhen Goodix Technology Co., Ltd. Method and apparatus for improved code authentication between socs and re-writable memory
US11620184B2 (en) 2021-08-16 2023-04-04 Nxp B.V. Runtime integrity checking for a memory system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141153A (ja) * 1993-06-25 1995-06-02 J T:Kk 制御装置
JP2001500293A (ja) * 1996-09-05 2001-01-09 エリクソン インコーポレイテッド 電子メモリ改竄防止システム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009527A (en) * 1995-11-13 1999-12-28 Intel Corporation Computer system security
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6148083A (en) 1996-08-23 2000-11-14 Hewlett-Packard Company Application certification for an international cryptography framework
CN1155700A (zh) 1996-09-08 1997-07-30 周跃平 计算机软件保护方法
JPH10326126A (ja) 1997-05-26 1998-12-08 Nec Shizuoka Ltd 赤外線センサー付きパーソナルコンピュータ
US6098171A (en) 1998-03-31 2000-08-01 International Business Machines Corporation Personal computer ROM scan startup protection
US6701432B1 (en) * 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US6587947B1 (en) 1999-04-01 2003-07-01 Intel Corporation System and method for verification of off-chip processor code
AU761949B2 (en) * 1999-04-13 2003-06-12 Hisamitsu Pharmaceutical Co. Inc. Iontophoresis device
EP1056010A1 (en) * 1999-05-28 2000-11-29 Hewlett-Packard Company Data integrity monitoring in trusted computing entity
DE60112045T2 (de) * 2000-02-17 2006-04-20 General Instrument Corporation Methode und gerät für sicheres fernladen von software
CA2343830C (en) * 2000-05-12 2005-02-08 Seiko Epson Corporation Drive mechanism control device and method
US7203841B2 (en) 2001-03-08 2007-04-10 Igt Encryption in a secure computerized gaming system
US6678606B2 (en) 2001-09-14 2004-01-13 Cummins Inc. Tamper detection for vehicle controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141153A (ja) * 1993-06-25 1995-06-02 J T:Kk 制御装置
JP2001500293A (ja) * 1996-09-05 2001-01-09 エリクソン インコーポレイテッド 電子メモリ改竄防止システム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8464348B2 (en) 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
JP2008527565A (ja) * 2005-01-12 2008-07-24 マイクロソフト コーポレーション 十分に正当な/最新のコードであることを確実にして行使する最後の防衛線
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8353046B2 (en) 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
JP2010218237A (ja) * 2009-03-17 2010-09-30 Renesas Electronics Corp プログラム検証装置及びその方法
JP2016024821A (ja) * 2014-07-16 2016-02-08 ゼネラル・エレクトリック・カンパニイ 実行中のアプリケーションの信頼性を確認するためのシステムおよび方法
JP2021051745A (ja) * 2019-09-23 2021-04-01 株式会社デンソー コンピュータ装置およびメモリ管理方法

Also Published As

Publication number Publication date
KR20060130200A (ko) 2006-12-18
US7401234B2 (en) 2008-07-15
KR101122517B1 (ko) 2012-03-15
WO2005091757A2 (en) 2005-10-06
JP4708414B2 (ja) 2011-06-22
CN1926518A (zh) 2007-03-07
CN100489805C (zh) 2009-05-20
WO2005091757A3 (en) 2006-09-21
EP1721252A4 (en) 2010-01-13
US20050193217A1 (en) 2005-09-01
EP1721252A2 (en) 2006-11-15

Similar Documents

Publication Publication Date Title
JP4708414B2 (ja) ランタイム・セキュリティ保証用の自律型メモリ・チェッカ
CN109669734B (zh) 用于启动设备的方法和装置
US9880908B2 (en) Recovering from compromised system boot code
US7921286B2 (en) Computer initialization for secure kernel
TWI441024B (zh) 用於處理器主記憶體之記憶體內容之安全保護的方法及系統
US6938164B1 (en) Method and system for allowing code to be securely initialized in a computer
US7308576B2 (en) Authenticated code module
US11455397B2 (en) Secure boot assist for devices, and related systems, methods and devices
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
US8341393B2 (en) Security to extend trust
CN111630513B (zh) 认证所存储代码和代码更新的真实性
US20080163212A1 (en) Paralleled management mode integrity checks
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
JP5335634B2 (ja) システム管理モードの特権レベルを保護するコンピュータ
JP2014518428A (ja) Biosフラッシュ攻撃に対する保護および通知
WO2006086302A1 (en) Method and system for validating a computer system
JP2024050647A (ja) ファームウェアのセキュアな検証
US10776493B2 (en) Secure management and execution of computing code including firmware
US11188321B2 (en) Processing device and software execution control method
US20210367781A1 (en) Method and system for accelerating verification procedure for image file
JP2021507369A (ja) 透過的に取り付けられたフラッシュメモリセキュリティ
TW201719490A (zh) 使用外部裝置之運行時驗證技術
CN112948863B (zh) 敏感数据的读取方法、装置、电子设备及存储介质
JP7005676B2 (ja) システム起動を監視するための安全装置及び安全方法
US20230094673A1 (en) Information handling systems and related methods to prevent tampering and verify the integrity of non-volatile data stored within non-volatile memory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110131

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110316

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees