JP7112449B2 - 強制自己認証機能を備えたコンピューターシステム - Google Patents

強制自己認証機能を備えたコンピューターシステム Download PDF

Info

Publication number
JP7112449B2
JP7112449B2 JP2020071381A JP2020071381A JP7112449B2 JP 7112449 B2 JP7112449 B2 JP 7112449B2 JP 2020071381 A JP2020071381 A JP 2020071381A JP 2020071381 A JP2020071381 A JP 2020071381A JP 7112449 B2 JP7112449 B2 JP 7112449B2
Authority
JP
Japan
Prior art keywords
authentication
rom
processor
timer
ram
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.)
Active
Application number
JP2020071381A
Other languages
English (en)
Other versions
JP2021034011A (ja
Inventor
キルシュナー ユヴァル
Original Assignee
新唐科技股▲ふん▼有限公司
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 新唐科技股▲ふん▼有限公司 filed Critical 新唐科技股▲ふん▼有限公司
Publication of JP2021034011A publication Critical patent/JP2021034011A/ja
Application granted granted Critical
Publication of JP7112449B2 publication Critical patent/JP7112449B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、セキュアコンピューティング環境において、特に、強制自己認証機能を有するコンピューターシステム及び強制自己認証方法に関する。
コンピュータシステムは通常、1つまたは複数の中央処理装置(CPU)とメモリを備え、CPUはメモリに格納されているソフトウェアプログラムを実行する。一部のコンピューターシステムでは、コンピューターは、暗号化技術を使用して、実行するソフトウェアの認証を行う。
ファームウェア(およびその他のソフトウェアまたはデータ)の信頼性を検証する方法について、以下のような様々の文献に記載されている。例えば、2003年3月28日に最初にリリースされた「暗号モジュールのセキュリティ要件、実装ガイドライン」 NIST-FIPS 140-2、「キー付きハッシュメッセージ認証コード」 FIPS PUB 198-1 2008年7月、「Secure Hash Standard(SHS)」 NIST-FIPS 180-4 2015年8月、及び「UEFI(Unified Extensible Firmware Interface Forum)仕様」バージョン2.7(Errata A) 2017年8月。
「暗号モジュールのセキュリティ要件実装ガイドライン」 NIST-FIPS 140-2 2003年3月28日 「キー付きハッシュメッセージ認証コード」 FIPS PUB 198-1 2008年7月 「Secure Hash Standard(SHS)」 NIST-FIPS 180-4 2015年8月 「UEFI(Unified Extensible Firmware Interface Forum)仕様」バージョン2.7(Errata A) 2017年8月
本発明の目的は、定期的に自己認証を強制し、セキュリティリスクを低減する強制自己認証機能を備えるコンピューターシステム及び強制自己認証方法を提供することにある。
本発明の1つの実施形態に係るコンピューターシステムは、メモリと、前記メモリに保存されたデータを認証する認証プログラムを含むソフトウェアを実行するように構成されたプロセッサと、前記プロセッサに結合され、前記プロセッサが少なくとも所定の頻度で定期的に前記認証プログラムを実行したかどうか、及び前記認証プログラムが前記データを正常に認証したかどうか、を検証するように構成された認証実施ハードウェア(authentication enforcement hardware)と、を備える。
本発明の1つの実施形態に係るコンピューターシステムにおいて、前記認証実施ハードウェアは、前記プロセッサが少なくとも前記所定の頻度で前記認証プログラムを実行できなかった場合に、応答アクションを開始するように構成されている。本発明の1つの実施形態に係るコンピューターシステムにおいて、前記認証実施ハードウェアは、前記認証プログラムが前記データを認証できなかった場合に、応答アクションを開始するように構成されている。
本発明の1つの実施形態に係るコンピューターシステムにおいて、前記認証プログラムは、前記データの認証に正常した場合に、前記プロセッサに信号をアサートするように指示し、前記認証実施ハードウェアは、少なくとも前記所定の頻度で前記信号が定期的にアサートされたかどうかを検証するように設定されたタイマーを含む。本発明の1つの実施形態に係るコンピューターシステムにおいて、前記プロセッサは、ROM(ROM)から前記認証プログラムを実行するように構成され、前記認証実施ハードウェアは、前記ROMから所定の実行(given run)が実行されたことを検証した場合のみ、前記認証プログラムの前記所定の実行が正常に完了したと判断するように構成されている。本発明の1つの実施形態に係るコンピューターシステムにおいて、前記認証実施ハードウェアは、前記認証プログラムの命令が前記ROMからフェッチされたかどうかを検出することにより、前記所定の実行が前記ROMから実行されたかどうかを検証するように構成される。
本発明の実施形態に係る強制自己認証方法は、メモリに保存されたデータを認証する認証プログラムを含むソフトウェアを実行するように構成されたプロセッサを使用することと、前記プロセッサに結合され、前記プロセッサが少なくとも所定の頻度で定期的に前記認証プログラムを実行したかどうか、及び前記認証プログラムが前記データを正常に認証したかどうか、を検証するように構成された認証実施ハードウェアを使用することと、を含む。
図1は本発明の実施形態による、強制認証機能を備えたコンピュータシステムを概略的に示すブロック図である。 図2は、本発明の一実施形態による、自己認証が失敗した場合の図1のコンピュータシステムに対する保護を概略的に示すタイミング波形である。 図3は、ソフトウェアが自己認証ソフトウェアの実行に失敗した場合の図1のコンピュータシステムに対する保護を概略的に示すタイミング波形である。 図4は、本発明の実施形態による、コンピュータシステム内で自己認証を強制する回路の構成を概略的に示すブロック図である。
以下、図に示す実施形態に基づいて説明する。なお、各図面は模式図であり、必ずしも実際の寸法を厳密に反映したものではない。なお、各図面において、同様な符号は、同じ構成要素を示す。
コンピューターシステム(特にマイクロコントローラー)は、通常、ファームウェアコード(FWコード)とデータを格納するランダムアクセスメモリ(RAM)を備えている。例えば、FWコードは、ROM(ROM)に格納されているブートローダーによって外部シリアルフラッシュからダウンロードされ、RAMから実行される。他の例では、FWコードは、有線または無線のパラレルバスまたはシリアルバスを介して、ネットワークまたは別の外部ソースからダウンロードできる。
ブートローダーは、ダウンロードしたFWコードを認証でき(キーベースの署名などの暗号化技術を使用)、ROMコードが安全であると見なされた場合、ダウンロードしたFWコードは信頼される。ただし、一旦FWコードをダウンロードすると、コンピューターシステムへの電力供給が中断されない限り、FWコードが長時間(たとえば、数か月または数年)実行される場合がある。もし、ハッカーがコンピューターシステムのセキュリティを破り、変更されたコードを読み込ませた(たとえば、チップの電源をグリッチする、デバッグポートを有効にする、RAMに直接データを注入するなど)場合、この変更されたコードは、実質的に永久に実行され、セキュリティに対して重大な影響を与えることになる(変更されたFWコードは、以下では「悪意FWコード」または「悪意コード」と呼ぶ)。
本明細書で開示される本発明の実施形態は、コンピュータシステムに定期的に自己認証を強制し、悪意FWコードが真正FWコード(authentic FWコード)を置き換えて長期間実行するリスクを低減するコンピュータシステムおよびを強制自己認証方法を提供する。一実施形態では、FWコードは、メモリコンテンツまたはその一部を定期的に認証する(例えば、プログラム可能なタイマーによってトリガーされる)認証機能を備える。もし認証が失敗した場合、コンピューターシステムはリセット信号を発行する(別の実施形態では、ノンマスカブル割り込み(Non-maskable interrupt(NMI))を発行し、さらに別の実施形態では、実行を停止する場合もある)。その後、コンピューターシステムは再起動し、RAMに保存されているFWコードを破棄する。
一部の実施形態では、コンピュータシステムは、(1)FWコードが十分の頻度で定期的に認証機能を実行したかどうか、及び(2)認証が正常に完了したかどうか、を検証する強制認証回路(FAC)を備える。例示的な一実施形態では、FWコードは、認証プログラムが正常に完了した場合(すなわち、FWコードまたはその一部が認証された場合)、認証OK信号(通常、レジスタ内の単一ビット)をアサートする。この例では、FACは、認証OK信号がアサートされるとリセットされるタイマーを含み、このタイマーは、実際には、最後に完了した認証から時間をカウントするようになっている。タイマーのカウント値が予め設定されたしきい値に達すると、FACはコンピューターシステムを強制的に再起動する(たとえば、リセットまたはNMIを発行する)。
実施形態では、ソフトウェアは、認証OK信号を設定することができるが、FACにはアクセスできない。一部の実施形態では、認証機能はROMに格納され、FWコードは認証機能を定期的に呼び出す。一実施形態では、正常の認証に従わない偽造された認証OK信号を回避するために、FACは、最後の命令がROMからフェッチされたものではない場合、その認証OK信号を無視する。したがって、認証OK信号は、絶対に安全なROMに格納されている認証機能によって認証された場合にのみ、受け入れられる。
上記の説明はFWコード認証に関するものであったが、本発明の実施形態は必ずしもすべてのFWコードを認証する必要はなく、FWコードの一部、またはコンピュータシステムメモリ内のデータのみ認証してもよい。
以上のように、本発明の実施形態にかかるコンピュータシステムは、RAMに格納されたデータ(例えば、すべてのFWコード)を定期的に認証する。コンピュータシステム内の回路は、予め設定された時間内にRAMデータを認証できなかった場合、システムのリセット、NMIの発行、FWコードの実行停止、又はその他の応答アクションを実行する。認証の成功を通知できるROMベースのFWコード以外のFWコードは、回路にアクセスできないため、成功した認証を偽造できない。ユーザーソフトウェアのパフォーマンスは、認証機能の定期的な呼び出しを除き、追加されたメカニズムからの影響を受けない。
システムの説明
本明細書では、本発明の実施形態によるいくつかの実施例を提示するが、決して本発明の範囲を限定するものではない。
図1は、本発明の実施形態による、強制認証を備えたコンピュータシステム102を概略的に示すブロック図100である。
コンピュータシステム102は、メモリに格納されているプログラムを実行するCPU104(プロセッサとも呼ぶ)と、初期ブートコード(initial boot code)と、信頼できるFWコード機能を含むその他の機能とデータを格納するROM106と、FWコードとデータを保存するRAM108と、を備える。ROM106およびRAM108は、共にコンピュータシステムメモリと呼ばれる。
FWコードをダウンロードするために、コンピュータシステム102は、コンピュータシステムの外部でFWコードを保存できるシリアルフラッシュ112と通信する外部フラッシュインターフェース110をさらに備える。また、コンピュータシステム102は、オプションで、FWコードをダウンロードするための他のインターフェース、すなわち、コンピュータシステムとネットワーク(例えば、イーサネット)との間で通信し、ネットワークからFWコードをダウンロードするよネットワークインターフェース114と、シリアルバスを介してFWコードをダウンロードするために、シリアルバス(例えば、集積回路間(I2C))を介してコンピュータシステムと外部デバイスとの間で通信するように構成されたシリアルバスインターフェース116と、を備えても良い。また、コンピュータシステム102は、選択的にで、外部ソースからFWコードをダウンロードする他のインターフェースを備えてもよい(以下は、いくつかの例を説明する)。
本発明の実施形態によれば、コンピュータシステム102がFWコードをロードすると、コンピュータシステムは、例えば暗号署名を使用してFWコード(またはその一部)を認証する。認証プログラムは通常、少なくとも部分的にROM 106に格納され、認証が失敗した場合、コンピューターシステムはFWコードをロードしない(その場合、コンピューターシステムは、例えば、システムの停止、リセット、またはNMI(ノンマスカブル割り込み)を発行する)。一方、認証が成功した場合、CPU 104はRAM 108にFWコードをロードさせ、その後、CPU 104はRAMからFWコードを実行する(このとき、シリアルフラッシュ112は切断される場合もある)。
コンピューターシステムの一部のアプリケーションでは、CPUがFWを長時間実行する場合がある。たとえば、生産フロアのコンピューターシステムは、安定的且つ成熟したプロセス制御FWコードをダウンロードし、(電源が遮断されない限り)数か月から数年にわたって実行する。このような長い期間では、ハッカーにコンピューターシステムを攻撃させたり、FWコードを変更させたりする機会を与えてしまう可能性がある。したがって、FWコードをロードする前にコンピューターシステムが認証を実行するのは安全性に不十分である。
上記リスクを軽減するために、本発明の実施形態にかかるコンピュータシステムが実行するFWコードには、RAMデータに対する定期的な認証(例えば、10秒ごとに1回)を含む(実際の頻度は、パフォーマンスと認証に費やされる電力との間の望ましいトレードオフポイントによって、数秒から数時間まで異なる場合がある)。一部の実施形態では、認証の頻度は一定ではなく、コンピューターシステムが次の認証実行までの最大時間が定義されている。
しかし、ハッカーは定期的な認証を無効にして、悪意FWコードを長期間実行させることができる。このリスクを軽減するために、コンピューターシステム102は、強制認証回路(FAC)118をさらに備えている。FAC118は、認証実行が正常に完了するたびに認証の成功を示す信号をCPU104から受信する。FAC118は、タイマーを備え、CPU104によって予め設定されたしきい値以下の間隔で新しい認証実行の通知が発行されたかどうかを検証できる。
図1の実施形態によれば、認証プログラムは、少なくとも部分的にROM106に格納され、RAMのFWコードは、ROMベースの機能を呼び出すことにより認証を実行する。FACは、CPUのメモリアクセスを監視し、ROMベースの命令の実行の結果として認証が生成されない限り、認証成功の表示をブロックする。したがって、ハッカーは成功した認証実行を偽ることができず、FAC118は時間内に認証に失敗したことを検出することになる。その結果、悪意FWコードの実行は、認証の失敗、または予め定義された期間内に認証の実行に失敗したことにより終了することになる。
図1に示されるコンピューティングシステム102は、あくまでも一例である。本発明は、それに限定されるものではない。別の実施形態では、例えば、外部フラッシュインターフェース110、ネットワークインターフェース114およびシリアルバスインターフェース116のいずれかまたはすべてを使用して、シリアルフラッシュ、および/またはネットワークおよび/またはシリアルバスからのFWコードをダウンロードすることができる。さらに別の実施形態では、FWコードは、適切なインターフェースを介して無線でダウンロードされてもよい。さらに他の実施形態では、FWは、周辺機器相互接続エクスプレス(PCIe)などの高速システムバスを介してダウンロードされてもよい。インターフェース110、114、116のそれぞれは、複数のデバイスとインターフェースするように構成されてもよい。
実施形態では、CPU104は、同じタイプまたは異なるタイプの2つ以上のCPUの集合体であってもよい。ROM106および/またはRAM108は、複数のROM/RAMインスタンスを備えてもよい。
図2は、本発明の一実施形態による、自己認証が失敗した場合のコンピューティングシステムに対する保護を概略的に示すタイミング波形200である。タイミング波形200は、さまざまなFWコードの実行ソースを示すFWコード実行波形202と、認証実行の失敗または合格を示す認証結果の波形204と、繰り返し認証実行を検証するタイマーの動作を示すタイマー波形206と、コンピュータシステムのリセットを示すリセット波形208と、を含む。
フローチャート200には、認証インジケータの開始と停止をそれぞれ示す時間インジケータ210、212と、CPUが悪意コードの実行を開始する時点を示す時間インジケータ214と、認証の失敗に応答して、コンピュータシステムのリセットを示す時間インジケータ216と、を含まれている。
最初に、FWコードはRAMから実行される。 次に、時間インジケータ210で、FWコードはROMに格納されている認証プログラムを呼び出す。次に、時間インジケータ212で認証が完了し、FWコードは認証OK信号を生成する(図1のFAC118に転送される)。
タイマーは、FACが認証OK信号を受信すると、カウント値の増加とリセットを繰り返して経過時間を測定する。この時、新しい信号は常にタイムリーに受信されるため、タイマーがしきい値に達することはない。
上記シーケンスは、時間インジケータ214で、FWが破損した(悪意)コードの実行を開始するまで、RAMからのFW実行とそれに続くROMからの認証実行及び3回繰り返される認証パスインジケータを含む。したがって、認証ソフトウェアの次の実行では、認証失敗信号(時間インジケータ216)が発生し、その結果、コンピュータシステムがリセットされる。
図3は、本発明の一実施形態による、ソフトウェアが自己認証ソフトウェアの実行に失敗した場合のコンピューティングシステムに対する保護を概略的に示すタイミング波形300である。
波形300は波形200のように始まり、時間インジケータ210までは波形200と同一である。ただし、時間インジケータ214でRAMにロードされた悪意のあるFWは、ROMに格納されている認証機能を呼び出さない。その結果、認証OK表示は生成されず、タイマーはリセットされず、時間インジケータ310でタイマーは閾値に達する。その後、FACはリセット信号を生成し、コンピューターシステムが再起動する。
以上のように、図2、3にかかる実施形態によれば、時間インジケータ214でダウンロードされたFWコードが真正コードではなかった場合、FWコードはRAMデータの定期認証に失敗するか、予め設定された時間閾値内での認証に成功しなくなる。どちらの場合でも、タイマーがしきい値に達すると、認証の失敗の結果として、直接またはFACによってコンピューターシステムがリセットされる。
図2および図3に示されるコンピューティングシステムの波形は、例として引用される例示的な実施形態である。本発明によるコンピュータシステムの波形は、上記の説明に限定されない。代替実施形態では、たとえば、認証プログラムはセグメントに分割され、セグメント間でFWコードがRAMから実行される(たとえば、高速応答時間が重要であり、FWが完全な認証セッションのために停止すると満たすことができないアプリケーションの場合)。他の実施形態では、リセットはFAC118によって生成されない代わりに、FACによってすべてのCPU実行を停止する場合がある。一実施形態では、FACはNMIを生成し、別の実施形態では、認証が失敗した場合、FACは、リセット信号を生成し、タイマーが閾値に達した場合、NMIを生成してもよい。
さらに、追加または代替として、FAC 118は、(i)認証プログラムが少なくとも指定された頻度で呼び出されない場合、または(ii)認証プログラムの特定の呼び出しが認証成功で完了しない場合、他の適切な応答アクションを開始することができる。
図4は、本発明の実施形態による、コンピュータシステム(FAC)における自己認証を強制する回路の構造を概略的に示すブロック図400である。CPU104は、ROM106およびRAM108と通信する。FAC 118は、CPU、ROM、およびRAM間のトランザクションを監視する。FACは、認証ソフトウェアが正常に完了したことを示すためにCPUによって使用される認証OKワイヤ(AUTHENTICATION-OK wire)を介してCPU104に結合される。
FAC 118は、2つの認証OK表示の受信間の時間(例えば、固定周波数クロック信号のカウントサイクル)をカウントするタイマー402と、タイマー402によって出力された時間を予め設定された閾値と比較し、時間が閾値に等しい場合にリセット信号を生成するコンパレータ404と、を含む。図4の例示的な実施形態では、認証OK信号はCPU104のIOピンの1つであり、認証OKはCPUの出力命令によって示される。
悪意FWコードは、認証OK表示を定期的に設定することにより、上記強制認証メカニズムをだまそうとする場合がある。だから、以下に説明するように、ROMに格納されている命令を実行した結果としてCPUが認証OKを示した場合にのみ、タイマー402のリセットを許可することにより、上記リスクに対応することができる。
FAC118は、ロジックゲート406と、認証表示有効化フリップ・フロップ(Enable Authentication Indication Flipflop)408と、ROM命令フェッチ検出器410と、RAM命令フェッチ検出器412と、をさらに含む。ロジックゲート406は、認証表示有効化フリップフロップ408が設定されている場合(図には「SET」を表示されている場合)にのみ、CPU104からタイマー402に認証OK表示を転送する。フリップフロップは、CPUメモリアクセスを監視するROM命令フェッチ検出器410が、CPUがROMから命令をフェッチしたことを検出すると、セットされ、CPUがRAMから命令をフェッチしたことをRAM命令フェッチ検出器412が検出すると、リセットされる(図には「Clear」と表示される)。したがって、ROMから命令をフェッチした以降、且つRAMから命令をフェッチする以前の認証OK表示だげが、タイマー402をリセットするための唯一の方法である。
コンピュータシステム102のいくつかの実施形態では、実行パイプラインは、対応する命令フェッチに関連する書き込み動作の遅延をもたらし得る。したがって、認証OK指示をアサートするROM命令は、1つ以上の命令によって対応する命令フェッチを遅らすことができ、次の命令がRAMから実行された場合、タイマーのリセットがブロックすることができる。それらの実施形態では、認証ソフトウェアは、例えば、予め設定された数のNOP命令を実行することにより、実行パイプラインが空になるまで、数サイクルの間、ROMからの実行を継続しなければならない。
別の実施形態では、ROM命令フェッチ検出器410は、ROM内の認証ルーチンの最初のアドレスからのフェッチに応答して、「認証識別フラグを有効にする(enable authentication identification flag)」を設定する。したがって、悪意FWコードは(認証OKをアサートするための)ルーチンの最後にジャンプできず、ROMルーチンは完全に実行されることになる。
図4に示されるFAC118の実施形態は、あくまでも例として引用される例示的な実施形態である。本発明が開示した技術によるFACは、上記の説明に限定されない。別の実施形態では、例えば、CPU104は、メモリアドレス(既存のメモリまたは存在しないメモリを指す)に書き込むことにより認証OKを示す。そのような実施形態では、FAC118は、CPUメモリアクセスを監視し、認証OKシグナリングを検出する認証OK検出器を備える。 検出器の出力は、CPU 104からのワイヤの代わりにロジックゲート406に入力される。一実施形態では、CMP404はリセットの代わりにNMIを生成し、別の実施形態では、CMP404はCPUを停止するHALT信号を生成する。
したがって、上記で提示された本発明の実施形態によれば、RAMからFWコードを長期間実行するコンピュータシステムに、FWの不正な変更に対する保護を提供することができる。保護は、具体的に、a)FWは、RAMに保存されたデータ(FW全体またはその一部を含む)を定期的に認証する必要があることと、b)認証ソフトウェアは、少なくとも部分的にROMに格納されているため、ハッキングからある程度保護されていることと、c)コンピュータの回路は、タイマーを備え、認証が予め設定されたしきい値を超えて遅延した場合、回路はCPUをリセット、停止、または中断することと、d)回路は、ROMベースの命令によって表示が開始されたことを確認することにより、認証OK指示をハッキングから保護することと、を含む。
図1から図4に示されるコンピュータシステムおよびFACの実施形態は、あくまでの例として引用される例示的な実施形態である。 本発明によるコンピュータシステムおよFACは、上記の実施形態に限定されない。別の実施形態では、例えば、FWコードは、定期的に自己認証する必要のある(RAMからではなく)外部フラッシュから実行されてもよい。RAM108は、静的または動的に組み込みRAM、または外付けのRAMであってもよい。CPU104は、任意の種類のマイクロコントローラ(例えば、RISC、CISC)、または複数のプロセッサであってもよい。
本発明によるいくつかの実施形態では、CPUは、データに頻繁にアクセスするためのキャッシュメモリを備えてもよい(そして、これらの実施形態では、認証ソフトウェアの少なくとも一部は、通常、非キャッシュモードで実行される)。
コンピュータシステム102、またはそれらの構成要素は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などの任意の適切なハードウェアを使用して実現してもよい。いくつかの実施形態では、コントローラの一部またはすべての要素は、ソフトウェア、ハードウェア、またはハードウェアとソフトウェアの組み合わせを使用して実現してもよい。
通常、CPU104は、本明細書で説明する機能を実行するためにソフトウェアでプログラムされる汎用プロセッサを含んでもよい。ソフトウェアは、例えばネットワークを介して電子形式でプロセッサにダウンロードされてもよく、あるいは、代替的または追加的に、磁気、光学、または電子メモリなどの非一時的な有形媒体に提供および/または格納されてもよい。
ROM106は、フラッシュ、RAMまたはワンタイムプログラミングメモリ(OTP)のような他のタイプのメモリによってエミュレートされ、書き込み/消去ディスエーブルロジック回路を含んでもよい。したがって、変更不能なROMをエミュレートすることができる。
上述の実施例は、一例として引用されたものであり、本発明は、特に上で示され説明されたものに限定されないことである。むしろ、本発明の範囲は、上述した様々な特徴の組み合わせ及び部分的な組み合わせ、ならびに前述の説明を読むことによって当業者に想到し得る変形および修正の両方を含む。
100…ブロック図
102…コンピューターシステム
104…CPU
106…ROM
108…RAM
110…外部フラッシュインターフェース
112…シリアルフラッシュメモリ
114…ネットワークインターフェース
116…シリアルバスインターフェース
118…強制認証回路
200、300…タイミング波形
202、204、206、208、302、304、306、308…波形
210、212、214、216、310…時間インジケータ
400…ブロック図
402…タイマー
404…コンパレータ
406…ロジックゲート
408…認証表示有効化フリップ・フロップ
410…ROM命令フェッチ検出器
412…RAM命令フェッチ検出器













Claims (8)

  1. メモリと、
    前記メモリに保存されたデータを認証する認証プログラムを含むソフトウェアを実行するように構成されたプロセッサと、
    前記プロセッサに結合され、前記プロセッサが少なくとも所定の頻度で定期的に前記認証プログラムを実行したかどうか、及び前記認証プログラムが前記データを正常に認証したかどうか、を検証するように構成された認証実施ハードウェアと、
    を備え、
    前記プロセッサは、ROMから前記認証プログラムを実行するように構成され、
    前記認証実施ハードウェアは、前記ROMから所定の実行が実行されたことを検証した場合のみ、前記認証プログラムの前記所定の実行が正常に完了したと判断する、且つ、前記認証実施ハードウェアは、前記認証プログラムの命令が前記ROMからフェッチされたかどうかを検出することにより、前記所定の実行が前記ROMから実行されたかどうかを検証するように構成されており、
    前記認証実施ハードウェアは、
    2つの認証OK信号の受信間の時間をカウントするタイマーと、
    前記タイマーによって出力された前記時間を予め設定された閾値と比較し、前記時間が前記閾値に等しい場合にシステムを再起動するための信号を生成するコンパレータと、
    ロジックゲートと、
    認証表示有効化フリップ・フロップと、
    ROM命令フェッチ検出器と、
    RAM命令フェッチ検出器と、
    を含み、
    前記認証表示有効化フリップフロップが設定されている場合にのみ、前記ロジックゲートは前記プロセッサーから前記タイマーに前記認証OK信号を転送し、
    前記プロセッサーが前記メモリにアクセスすることを監視するための前記ROM命令フェッチ検出器が、前記プロセッサーが前記ROMから命令をフェッチしたことを検出した場合にのみ、前記フリップフロップはセットされ、
    前記RAM命令フェッチ検出器が前記プロセッサーがRAMから前記命令をフェッチしたことを検出した場合にのみ、前記認証表示有効化フリップ・フロップはリセットされ、
    前記ROMから前記命令をフェッチされた以降、且つ前記RAMから前記命令をフェッチされる以前の前記認証OK信号だけによって、前記タイマーはリセットされる
    ことを特徴とするコンピューターシステム。
  2. 前記認証実施ハードウェアは、前記プロセッサが少なくとも前記所定の頻度で前記認証プログラムを実行できなかった場合に、応答アクションを開始するように構成されている請求項1に記載のコンピューターシステム。
  3. 前記認証実施ハードウェアは、前記認証プログラムが前記データを認証できなかった場合に、応答アクションを開始するように構成されている請求項1に記載のコンピューターシステム。
  4. 前記認証プログラムは、前記データを認証に正常した場合に、前記プロセッサに信号をアサートするように指示し、
    前記認証実施ハードウェアは、少なくとも前記所定の頻度で前記信号が定期的にアサートされたかどうかを検証するように設定されたタイマーを含む請求項1に記載のコンピューターシステム。
  5. メモリに保存されたデータを認証する認証プログラムを含むソフトウェアを実行するように構成されたプロセッサを使用することと、
    前記プロセッサに結合され、前記プロセッサが少なくとも所定の頻度で定期的に前記認証プログラムを実行したかどうか、及び前記認証プログラムが前記データを正常に認証したかどうか、を検証するように構成された認証実施ハードウェアを使用することと、
    を含み、
    前記ソフトを実行することは、
    ROMから前記認証プログラムを実行することを含み、
    前記認証プログラムが前記データを正常に認証したかどうか、を検証することは、
    前記ROMから所定の実行が実行されたことを検証した場合のみ、前記認証プログラムの前記所定の実行が正常に完了したと判断することと、を含み、
    前記所定の実行が前記ROMから実行されたかどうかを検証することは、
    前記認証実施ハードウェアにより、前記認証プログラムの命令が前記ROMからフェッチされたかどうかを検出することと、を含み、
    前記認証実施ハードウェアは、
    2つの認証OK信号の受信間の時間をカウントするタイマーと、
    前記タイマーによって出力された前記時間を予め設定された閾値と比較し、前記時間が前記閾値に等しい場合にシステムを再起動するための信号を生成するコンパレータと、
    ロジックゲートと、
    認証表示有効化フリップ・フロップと、
    ROM命令フェッチ検出器と、
    RAM命令フェッチ検出器と、
    を含み、
    前記認証表示有効化フリップフロップが設定されている場合にのみ、前記ロジックゲートは前記プロセッサーから前記タイマーに前記認証OK信号を転送し、
    前記プロセッサーが前記メモリにアクセスすることを監視するための前記ROM命令フェッチ検出器が、前記プロセッサーが前記ROMから命令をフェッチしたことを検出した場合にのみ、前記フリップフロップはセットされ、
    前記RAM命令フェッチ検出器が前記プロセッサーがRAMから前記命令をフェッチしたことを検出した場合にのみ、前記認証表示有効化フリップ・フロップはリセットされ、
    前記ROMから前記命令をフェッチされた以降、且つ前記RAMから前記命令をフェッチされる以前の前記認証OK信号だけによって、前記タイマーはリセットされる
    ことを特徴とする強制自己認証方法。
  6. 前記プロセッサが少なくとも前記所定の頻度で前記認証プログラムを実行できなかった場合に、応答アクションを開始することをさらに含む請求項5に記載の強制自己認証方法。
  7. 前記認証プログラムが前記データを認証できなかった場合に、応答アクションを開始することをさらに含む請求項5に記載の強制自己認証方法。
  8. 前記認証プログラムは、前記データを認証に正常した場合に、前記プロセッサに信号をアサートするように指示し、
    前記プロセッサが少なくとも所定の頻度で定期的に前記認証プログラムを実行することは、
    前記認証実施ハードウェアのタイマーを使用して、少なくとも前記所定の頻度で前記信号が定期的にアサートされたかどうかを検証することを含む請求項5に記載の強制自己認証方法。
JP2020071381A 2019-08-15 2020-04-11 強制自己認証機能を備えたコンピューターシステム Active JP7112449B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/541,218 US11436315B2 (en) 2019-08-15 2019-08-15 Forced self authentication
US16/541,218 2019-08-15

Publications (2)

Publication Number Publication Date
JP2021034011A JP2021034011A (ja) 2021-03-01
JP7112449B2 true JP7112449B2 (ja) 2022-08-03

Family

ID=74568363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020071381A Active JP7112449B2 (ja) 2019-08-15 2020-04-11 強制自己認証機能を備えたコンピューターシステム

Country Status (3)

Country Link
US (1) US11436315B2 (ja)
JP (1) JP7112449B2 (ja)
TW (1) TWI775041B (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265460A (ja) 2001-02-09 2001-09-28 Sanyo Product Co Ltd 制御装置
US20040025036A1 (en) 2002-07-30 2004-02-05 Eric Balard Run-time firmware authentication
JP2008112443A (ja) 1996-09-05 2008-05-15 Ericsson Inc 電子メモリ改竄防止システム
JP2008527565A (ja) 2005-01-12 2008-07-24 マイクロソフト コーポレーション 十分に正当な/最新のコードであることを確実にして行使する最後の防衛線
JP2013069053A (ja) 2011-09-21 2013-04-18 Toshiba Corp 制御装置およびモニタプログラム
JP2019109842A (ja) 2017-12-20 2019-07-04 キヤノン株式会社 情報処理装置、その制御方法およびプログラム

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740404A (en) 1993-09-27 1998-04-14 Hitachi America Limited Digital signal processor with on-chip select decoder and wait state generator
US5737748A (en) 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
US6289408B1 (en) 1995-05-08 2001-09-11 Apple Computer, Inc. Bus interface with address mask register for transferring selected data from one bus to another
US5696994A (en) 1995-05-26 1997-12-09 National Semiconductor Corporation Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes
US5713306A (en) 1995-09-26 1998-02-03 Johnson; Arnold B. Feline playground system
US6088450A (en) 1996-04-17 2000-07-11 Intel Corporation Authentication system based on periodic challenge/response protocol
US6049876A (en) 1998-02-09 2000-04-11 Motorola, Inc. Data processing system and method which detect unauthorized memory accesses
US6510522B1 (en) 1998-11-20 2003-01-21 Compaq Information Technologies Group, L.P. Apparatus and method for providing access security to a device coupled upon a two-wire bidirectional bus
US7155615B1 (en) 2000-06-30 2006-12-26 Intel Corporation Method and apparatus for providing a secure-private partition on a hard disk drive of a computer system via IDE controller
US7350083B2 (en) 2000-12-29 2008-03-25 Intel Corporation Integrated circuit chip having firmware and hardware security primitive device(s)
US6832317B1 (en) 2001-05-10 2004-12-14 Advanced Micro Devices, Inc. Personal computer security mechanism
US7065654B1 (en) 2001-05-10 2006-06-20 Advanced Micro Devices, Inc. Secure execution box
US7206933B2 (en) * 2001-07-09 2007-04-17 Advanced Micro Devices, Inc. Software modem with privileged mode driver authentication
US20030061494A1 (en) 2001-09-26 2003-03-27 Girard Luke E. Method and system for protecting data on a pc platform using bulk non-volatile storage
ATE313195T1 (de) 2002-04-16 2005-12-15 Bosch Gmbh Robert Verfahren zum synchronisieren von uhren in einem verteilten kommunikationssystem
US7205883B2 (en) 2002-10-07 2007-04-17 Safenet, Inc. Tamper detection and secure power failure recovery circuit
US20080177994A1 (en) 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US7010639B2 (en) 2003-06-12 2006-03-07 Hewlett-Packard Development Company, L.P. Inter integrated circuit bus router for preventing communication to an unauthorized port
US7398345B2 (en) 2003-06-12 2008-07-08 Hewlett-Packard Development Company, L.P. Inter-integrated circuit bus router for providing increased security
US20050021968A1 (en) 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US20050132186A1 (en) 2003-12-11 2005-06-16 Khan Moinul H. Method and apparatus for a trust processor
US7664836B2 (en) 2004-02-17 2010-02-16 Zhe Khi Pak Device and method for booting an operation system for a computer from a passive directly attached network device
US7607021B2 (en) 2004-03-09 2009-10-20 Cisco Technology, Inc. Isolation approach for network users associated with elevated risk
US7496929B2 (en) 2004-05-28 2009-02-24 Intel Corporation Performance of operations on a hardware resource through integral interpretive execution
US20060059360A1 (en) 2004-07-01 2006-03-16 Ortkiese Jerry B Authenticating controller
US7774619B2 (en) 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
US8090919B2 (en) 2007-12-31 2012-01-03 Intel Corporation System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
US20070109015A1 (en) 2005-11-15 2007-05-17 Alcatel Switched integrated circuit connection architectures and techniques
US20080276302A1 (en) 2005-12-13 2008-11-06 Yoggie Security Systems Ltd. System and Method for Providing Data and Device Security Between External and Host Devices
US10180809B2 (en) 2006-05-17 2019-01-15 Richard Fetik Secure application acceleration system, methods and apparatus
US20080282017A1 (en) 2007-05-09 2008-11-13 Microsoft Corporation Serial Peripheral Interface Switch
US7797115B2 (en) 2007-08-13 2010-09-14 Nuvoton Technology Corporation Time interval measurement for capacitive detection
US8631488B2 (en) 2008-08-04 2014-01-14 Cupp Computing As Systems and methods for providing security services during power management mode
GB2477774A (en) 2010-02-12 2011-08-17 Icera Inc Overriding production processor authentication restrictions through remote security unit for development code testing
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8832452B2 (en) 2010-12-22 2014-09-09 Intel Corporation System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves
KR20120092222A (ko) 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US20120255014A1 (en) 2011-03-29 2012-10-04 Mcafee, Inc. System and method for below-operating system repair of related malware-infected threads and resources
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
KR101301022B1 (ko) 2011-12-23 2013-08-28 한국전자통신연구원 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법
US20130254906A1 (en) 2012-03-22 2013-09-26 Cavium, Inc. Hardware and Software Association and Authentication
US20130312099A1 (en) 2012-05-21 2013-11-21 Mcafee, Inc. Realtime Kernel Object Table and Type Protection
US9158628B2 (en) 2013-11-27 2015-10-13 American Megatrends, Inc. Bios failover update with service processor having direct serial peripheral interface (SPI) access
US10783250B2 (en) 2014-07-24 2020-09-22 Nuvoton Technology Corporation Secured master-mediated transactions between slave devices using bus monitoring
US10303880B2 (en) 2014-07-24 2019-05-28 Nuvoton Technology Corporation Security device having indirect access to external non-volatile memory
US9569638B2 (en) 2014-12-31 2017-02-14 Google Inc. Trusted computing
US10114970B2 (en) 2015-06-02 2018-10-30 ALTR Solutions, Inc. Immutable logging of access requests to distributed file systems
US10452582B2 (en) 2015-06-08 2019-10-22 Nuvoton Technology Corporation Secure access to peripheral devices over a bus
US10691807B2 (en) 2015-06-08 2020-06-23 Nuvoton Technology Corporation Secure system boot monitor
US10095891B2 (en) 2015-06-08 2018-10-09 Nuvoton Technology Corporation Secure access to peripheral devices over a bus
CN105117314B (zh) * 2015-07-07 2017-07-11 福州瑞芯微电子股份有限公司 一种Memory模块的验证方法及系统
US10380879B2 (en) 2017-06-14 2019-08-13 Allegro Microsystems, Llc Sensor integrated circuits and methods for safety critical applications
US11086998B2 (en) 2018-01-30 2021-08-10 Dell Products L.P. Modifiable policy action secure boot violation system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008112443A (ja) 1996-09-05 2008-05-15 Ericsson Inc 電子メモリ改竄防止システム
JP2001265460A (ja) 2001-02-09 2001-09-28 Sanyo Product Co Ltd 制御装置
US20040025036A1 (en) 2002-07-30 2004-02-05 Eric Balard Run-time firmware authentication
JP2008527565A (ja) 2005-01-12 2008-07-24 マイクロソフト コーポレーション 十分に正当な/最新のコードであることを確実にして行使する最後の防衛線
JP2013069053A (ja) 2011-09-21 2013-04-18 Toshiba Corp 制御装置およびモニタプログラム
JP2019109842A (ja) 2017-12-20 2019-07-04 キヤノン株式会社 情報処理装置、その制御方法およびプログラム

Also Published As

Publication number Publication date
JP2021034011A (ja) 2021-03-01
CN112395587A (zh) 2021-02-23
US20210049258A1 (en) 2021-02-18
TW202109327A (zh) 2021-03-01
TWI775041B (zh) 2022-08-21
US11436315B2 (en) 2022-09-06

Similar Documents

Publication Publication Date Title
CN110334521B (zh) 可信计算系统构建方法、装置、可信计算系统及处理器
KR101689204B1 (ko) 디바이스의 펌웨어 무결성 검증
KR100806444B1 (ko) 신뢰할 만한 시스템 클록
US9015455B2 (en) Processsor integral technologies for BIOS flash attack protection and notification
US11256797B2 (en) Remote attestation for multi-core processor
US20080250406A1 (en) Virtual Machine Support for Metered Computer Usage
JP5335634B2 (ja) システム管理モードの特権レベルを保護するコンピュータ
US9367327B2 (en) Method to ensure platform silicon configuration integrity
TW201928677A (zh) 處理故障注入攻擊的安全系統和方法
US8843742B2 (en) Hypervisor security using SMM
US11188321B2 (en) Processing device and software execution control method
Schiffman et al. The smm rootkit revisited: Fun with usb
WO2014004212A1 (en) Timer for hardware protection of virtual machine monitor runtime integrity watcher
JP7112449B2 (ja) 強制自己認証機能を備えたコンピューターシステム
US20180226136A1 (en) System management mode test operations
CN112395587B (zh) 计算机系统及强制自行认证方法
US20200242255A1 (en) Systems and methods for monitoring attacks to devices
US11556645B2 (en) Monitoring control-flow integrity
US10275367B2 (en) Command source verification
CN112181860A (zh) 具有快闪存储器仿真功能的控制器及其控制方法
Yadav SECURE BOOTLOADER IN EMBEDDED SYSTEM USING MISRA-C
Svensson Strict separation between OS and USB driver using a hypervisor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220722

R150 Certificate of patent or registration of utility model

Ref document number: 7112449

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150