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

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

Info

Publication number
JP4708414B2
JP4708414B2 JP2007501775A JP2007501775A JP4708414B2 JP 4708414 B2 JP4708414 B2 JP 4708414B2 JP 2007501775 A JP2007501775 A JP 2007501775A JP 2007501775 A JP2007501775 A JP 2007501775A JP 4708414 B2 JP4708414 B2 JP 4708414B2
Authority
JP
Japan
Prior art keywords
memory
runtime
electronic device
during
checker
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
JP2007501775A
Other languages
English (en)
Other versions
JP2007525774A (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

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 (5)

  1. 電子装置に使用されるランタイム・セキュリティ保証用の自律型メモリ・チェッカであって、
    前記電子装置のメモリの一部から前記電子装置上で動作可能なソフトウェアを含む第1のメモリ内容を前記電子装置のブートタイム動作モード中にフェッチするように構成された制御部と、
    前記制御部に接続され、前記第1のメモリ内容に対応する少なくとも一つのメモリ参照値を前記ブートタイム動作モード中に格納するように構成されたメモリ参照ファイルと、
    前記制御部に接続され、少なくとも1つのランタイム参照値と前記少なくとも一つのメモリ参照値とを比較することにより、前記電子装置のランタイム動作中にランタイムチェックを行うように構成された認証エンジンであって、前記少なくとも1つのランタイム参照値は、前記電子装置のランタイム動作中にメモリの一部からフェッチされた第2のメモリ内容に対応する、前記認証エンジンと、
    を備える自律型メモリ・チェッカ
  2. 請求項1に記載の自律型メモリ・チェッカにおいて、前記電子装置のランタイム動作中、前記検査は周期的に行われる、自律型メモリ・チェッカ
  3. 請求項1に記載の自律型メモリ・チェッカにおいて、前記電子装置のランタイム動作中、前記検査はランダムな時間に行われる、自律型メモリ・チェッカ
  4. ランタイム・セキュリティ保証用の電子装置の動作方法であって、
    前記電子装置上で動作可能なソフトウェアを含む信頼される情報を前記電子装置のブートタイム動作モード中にメモリ内の特定のメモリ領域に格納する段階と、
    前記ブートタイム動作モード中に前記特定のメモリ領域から前記信頼される情報をフェッチし、前記信頼される情報を認証エンジンに提供する段階と、
    前記ブートタイム動作モード中に前記特定のメモリ領域からフェッチされた前記信頼される情報に対応するメモリ参照値を生成する段階と、
    前記ブートタイム動作モード中に前記メモリ参照値をメモリ参照ファイルに格納する段階と、
    前記電子装置のランタイム・動作モードで前記電子装置を動作させる段階と、
    前記電子装置のランタイム・動作モード中、前記特定のメモリ領域からメモリ内容をフェッチし、前記特定のメモリ領域に対応する前記メモリ内容を前記認証エンジンに提供する段階と、
    前記特定のメモリ領域からフェッチされた前記メモリ内容からランタイム参照値を生成する段階と、
    前記ランタイム参照値を前記メモリ参照値と比較する段階と、
    を備える方法。
  5. 自律型メモリ・チェッカを用いたランタイム・セキュリティ保証用の電子装置の動作方法であって、
    前記電子装置のメモリの一部から前記電子装置上で動作可能なソフトウェアを含む信頼される信頼される情報を前記電子装置のブートタイム動作モード中にフェッチする段階と、
    記信頼される情報を前記ブートタイム動作モード中に前記自律型メモリ・チェッカに提供する段階と、
    前記自律型メモリ・チェッカに命令して、前記ブートタイム動作モード中に前記信頼される情報をハッシュする段階と、
    前記自律型メモリ・チェッカにより前記信頼される情報からハッシュ関数を用いて参照ハッシュ値を生成する段階と、
    前記ブートタイム動作モード中に前記自律型メモリ・チェッカ内のメモリ参照ファイルに前記参照ハッシュ値を格納する段階と、
    前記電子装置のランタイム動作モード中に、前記信頼される情報が以前にフェッチされたメモリの一部からメモリ内容をフェッチする段階と、
    ランタイム動作モード中に取得した前記メモリ内容からハッシュ関数を用いて、ランタイム・ハッシュ値を生成する段階と、
    前記自律型メモリ・チェッカにより前記参照ハッシュ値を前記ランタイム・ハッシュ値と比較する段階と、
    前記参照ハッシュ値が前記ランタイム・ハッシュ値と異なる場合、エラーを知らせ、前記信頼される情報が修正されたことを示す段階と
    を備える方法。
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 US7401234B2 (en) 2004-03-01 2004-03-01 Autonomous memory checker for runtime security assurance and method therefore
US10/791,171 2004-03-01
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 JP2007525774A (ja) 2007-09-06
JP2007525774A5 JP2007525774A5 (ja) 2008-03-06
JP4708414B2 true 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)

Families Citing this family (41)

* 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
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8464348B2 (en) 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US7805765B2 (en) * 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data
US20060156008A1 (en) * 2005-01-12 2006-07-13 Microsoft Corporation Last line of defense ensuring and enforcing sufficiently valid/current code
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
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 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8353046B2 (en) 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
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
JP2010218237A (ja) * 2009-03-17 2010-09-30 Renesas Electronics Corp プログラム検証装置及びその方法
US8281188B2 (en) 2010-08-05 2012-10-02 Miller Gary L Data processing system with peripheral configuration information error detection
WO2012079818A1 (en) * 2010-12-16 2012-06-21 International Business Machines Corporation A method for validating run-time references
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
US9390258B2 (en) * 2014-07-16 2016-07-12 General Electric Company Systems and methods for verifying the authenticity of an application during execution
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
DE102018213615A1 (de) * 2018-06-20 2019-12-24 Robert Bosch Gmbh Kryptografiemodul und Betriebsverfahren hierfür
US11163645B2 (en) * 2019-09-23 2021-11-02 Denso Corporation Apparatus and method of control flow integrity enforcement utilizing boundary checking
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
EP1177813A1 (en) * 1999-04-13 2002-02-06 Hisamitsu Pharmaceutical Co. Inc. Iontophoresis device
EP1056010A1 (en) * 1999-05-28 2000-11-29 Hewlett-Packard Company Data integrity monitoring in trusted computing entity
CA2400204C (en) * 2000-02-17 2011-04-19 General Instrument Corporation Method and apparatus for providing secure control of software or firmware code downloading and secure operation of a computing device receiving downloaded code
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 エリクソン インコーポレイテッド 電子メモリ改竄防止システム

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4708414B2 (ja) ランタイム・セキュリティ保証用の自律型メモリ・チェッカ
US9880908B2 (en) Recovering from compromised system boot code
CN109669734B (zh) 用于启动设备的方法和装置
US9292300B2 (en) Electronic device and secure boot method
US7921286B2 (en) Computer initialization for secure kernel
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
US6938164B1 (en) Method and system for allowing code to be securely initialized in a computer
TWI441024B (zh) 用於處理器主記憶體之記憶體內容之安全保護的方法及系統
US5944821A (en) Secure software registration and integrity assessment in a computer system
US7308576B2 (en) Authenticated code module
TWI607376B (zh) 用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
US11455397B2 (en) Secure boot assist for devices, and related systems, methods and devices
CN111630513B (zh) 认证所存储代码和代码更新的真实性
JP2024050647A (ja) ファームウェアのセキュアな検証
WO2006086302A1 (en) Method and system for validating a computer system
TWI801468B (zh) 用於保護電子裝置之安全性之設備、方法及系統以及相關的微控制器
US10776493B2 (en) Secure management and execution of computing code including firmware
US11188321B2 (en) Processing device and software execution control method
JP2010182196A (ja) 情報処理装置およびファイル検証システム
JP2011076134A (ja) システム管理モードの特権レベルを保護するコンピュータ
US20210367781A1 (en) Method and system for accelerating verification procedure for image file
JP2018195329A (ja) 情報処理装置
JP7005676B2 (ja) システム起動を監視するための安全装置及び安全方法
WO2024078159A1 (zh) 完整性度量方法及装置

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