[go: up one dir, main page]

JP2025502020A - 故障注入攻撃対策 - Google Patents

故障注入攻撃対策 Download PDF

Info

Publication number
JP2025502020A
JP2025502020A JP2024540686A JP2024540686A JP2025502020A JP 2025502020 A JP2025502020 A JP 2025502020A JP 2024540686 A JP2024540686 A JP 2024540686A JP 2024540686 A JP2024540686 A JP 2024540686A JP 2025502020 A JP2025502020 A JP 2025502020A
Authority
JP
Japan
Prior art keywords
register
value
input
enable command
operand
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.)
Pending
Application number
JP2024540686A
Other languages
English (en)
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 テキサス インスツルメンツ インコーポレイテッド
Priority claimed from PCT/US2023/010021 external-priority patent/WO2023133087A1/en
Publication of JP2025502020A publication Critical patent/JP2025502020A/ja
Pending legal-status Critical Current

Links

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/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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

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)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Figure 2025502020000001
方法が、第1の値及び第2の値並びに第1の比較イネーブルコマンドをハードウェアコンパレータ回路内のそれぞれの第1のオペランド、第2のオペランド、及び第1の比較イネーブルコマンドレジスタにプログラムすること(410)を含む。本方法は、第1及び第2の値に対応する第1の一致が存在すると判定し(440、450)、第3の値を第1のオペランドレジスタに、第4の値を第2のオペランドレジスタにプログラムし、第2の比較イネーブルコマンドをハードウェアコンパレータ回路内の第2の比較イネーブルコマンドレジスタにプログラムすることを含む。本方法は、第3及び第4の値に対応する第2の一致が存在するとの判定に応答して、成功割り込み信号をアサートし、第5の値を第1のオペランドレジスタに、第6の値を第2のオペランドレジスタにプログラムし(472)、第2の比較イネーブルコマンドをハードウェアコンパレータ回路内の第2の比較イネーブルコマンドレジスタにプログラムすることを含む。

Description

故障注入攻撃は、攻撃者がデバイス内のリソース(例えば、メモリ、インターフェースなど)にアクセスすることを可能にするツールである。攻撃者は、予測不可能なシステム挙動及びセキュリティ違反を引き起こすことによって、リソースへの不正アクセスを得る可能性がある。故障をシステムに注入するためのいくつかの技法には、電圧グリッチ注入、クロックグリッチ注入、及び電磁故障注入(EMFI)が含まれ得る。故障注入攻撃により、命令が破損されたり、命令が実行中にスキップされたり、命令のための引数が破損されたり、不適切な実行フローが引き起されたりなどし得る。例えば、故障注入攻撃は、特定のリソースへのアクセスを保護する認証メカニズムを迂回させ、それによってリソースへのアクセスを公に晒し得る。いくつかのソフトウェア符号化の実施は、リソースへのアクセスを保護するための全体的なセキュリティを改善し得るが、そのような実施は、充分に同期された故障注入攻撃に対する充分な強力な順応性を提供しない場合がある。
一例において、或る方法が、第1の値及び第2の値、並びに第1の比較イネーブルコマンドを、ハードウェアコンパレータ回路内のそれぞれの、第1のオペランド、第2のオペランド、及び第1の比較イネーブルコマンドレジスタにプログラムすることを含む。この方法は、第1の値及び第2の値に対応する第1の一致が存在することを判定することと、第3の値を第1のオペランドレジスタに、第4の値を第2のオペランドレジスタにプログラムすることと、第2の比較イネーブルコマンドをハードウェアコンパレータ回路内の第2の比較イネーブルコマンドレジスタにプログラムすることとを含む。第3及び第4の値に対応する第2の一致が存在するという判定に応答して、この方法は、成功割り込み信号をアサートすることと、第5の値を第1のオペランドレジスタに、第6の値を第2のオペランドレジスタにプログラムすることと、第2の比較イネーブルコマンドをハードウェアコンパレータ回路内の第2の比較イネーブルコマンドレジスタにプログラムすることとを含む。
別の例において、集積回路(IC)が、コンピュータリソースと、ハードウェアコンパレータ回路と、ハードウェアコンパレータ回路に結合されるマイクロコントローラユニット(MCU)とを含む。ハードウェアコンパレータ回路は、第1のオペランドレジスタ、第2のオペランドレジスタ、第1の比較イネーブルコマンドレジスタ、第2の比較イネーブルコマンドレジスタ、第3の比較イネーブルコマンドレジスタ、及びスクラッチパッドレジスタを含む。MCUは、第1の値を第1のオペランドレジスタに、第2の値を第2のオペランドレジスタに、第1の比較イネーブルコマンドを第1の比較イネーブルコマンドレジスタに、スクラッチパッド値をスクラッチパッドレジスタに書き込むように構成され、スクラッチパッド値は、コンピュータリソースを識別する。MCUは、第1及び第2の値に対応する第1の一致が存在することを判定し、第3の値を第1のオペランドレジスタに、第4の値を第2のオペランドレジスタに、第2の比較イネーブルコマンドを第2の比較イネーブルコマンドレジスタに書き込むように更に構成される。第3及び第4の値に対応する第2の一致が存在することを示す成功割り込み信号のハードウェアコンパレータ回路からの受信に応答して、MCUは、第5の値を第1のオペランドレジスタに、第6の値を第2のオペランドレジスタに書き込み、第2の比較イネーブルコマンドを第2の比較イネーブルコマンドレジスタに書き込むように構成される。
種々の例の詳細な説明のため、ここで、添付の図面を参照する。
1つ又は複数の実施例において、故障注入攻撃に対する改善された対策を実装するシステムのブロック図である。
1つ又は複数の実施例において、故障注入攻撃に対する付加的な防御を提供するために利用し得るハードウェアコンパレータ回路のブロック図である。
1つ又は複数の実施例において、故障注入攻撃によるリソースアクセスの可能性を低減するためのプロセスを例示するフローチャートである。
図面において、(機能及び/又は構造のいずれかが)同じ又は同様の特徴に対して同じ参照番号が用いられている。
いくつかのソフトウェア技法において、リソース(例えば、メモリ、インターフェースなど)へのアクセスは、例えば、デジタル署名などのアクセスパラメータの計算、及び、新しく計算されたアクセスパラメータと以前に格納されたアクセスパラメータとの比較を含み得る。アクセスパラメータが一致するとリソースへのアクセスが許可される。アクセスパラメータが一致しない場合、リソースへのアクセスは拒否される。アクセスパラメータが一致するかどうかを判定するために、比較的少数の命令が必要とされる。例えば、ほとんどの符号化言語は、条件が「真」であるか「偽」であるかについてチェックされる「If-then」命令の何らかの形態を有する。条件(例えば、アクセスパラメータが一致するかどうか)が真である場合、リソースへのアクセスが有効にされる。このようなソフトウェア命令は、故障注入攻撃によりスキップされる可能性がある。
本明細書に記載の故障注入対策システムは、リソースへのアクセスを有効にするために必要な条件をチェックする機能を、リソースを実際に有効にする機能から分離する。一実施例において、オペランドの1回又は複数回の比較(例えば、デジタル署名、パスワードなどのターゲットリソースに一意のアクセスパラメータ)が、ハードウェアコンパレータにおいて実施され、ハードウェアコンパレータは、比較が成功した場合、ハードウェア割り込みをトリガして、リソースへのアクセスを有効にするプロセスを完了する。リソースへのアクセスの許可された試行が行われていることを更に確実にするために、割り込みサービス(ISR)ルーチンによって、付加的なチェックを実施することができる。
図1は、1つ又は複数の実施例に従ったシステム100のブロック図である。1つ又は複数の実施例において、システム100は集積回路(IC)として実装される。一例において、ICはシステムオンチップ(SoC)である。図1の例に示されるように、システム100は、マイクロコントローラユニット(MCU)211と、ハードウェアコンパレータ回路(HW CMP)213と、ランダムアクセスメモリ(RAM)215と、読み出し専用メモリ(ROM)217と、フラッシュメモリ219と、を含む。MCU211は、1つ又は複数のバス218を介して、RAM215、ROM217、フラッシュメモリ219、及びHW CMP213に結合される。
実行可能命令が、RAM215、ROM217、及び/又はフラッシュメモリ219の任意のものに格納され得、MCU211によって実行され得る。図示の例において、ファームウェア221、成功割り込みサービスルーチン(ISR)222、及び失敗ISR223が、ROM217に格納されている。ROM217(並びにRAM215及びフラッシュメモリ219)は、非一時的コンピュータ可読媒体である。命令(例えば、ファームウェア221、成功ISR222、及び失敗ISR223)が、本明細書に記載するように、ROM217から取り出され得、MCU211によって実行され得る。或る機能を実施するファームウェア221、成功ISR222、又は失敗ISR223についての本明細書における言及は、対応する実行ファームウェア221、成功ISR222、又は失敗ISR223の実行の際にMCU211がそのような機能を実施することを含む。
システム100はまた許可されたエンティティにのみ、アクセスが制限される1つ又は複数のコンピュータリソース250を含む。コンピュータリソース250は、JTAG(Joint Test Action Group)インターフェース、メモリ(例えば、RAM215、ROM217、及び/又は、フラッシュメモリ219のうちの1つ又は複数、又はそれらのコンテンツのサブセット)、MCU211内のリソースなど、システム100へのインターフェースを含み得る。本明細書に記載されるように、ファームウェアを実行するMCU211と、割り込みサービスルーチン(ISR)と、HW CMP213との組合せが、コンピュータリソース250へのアクセスを有効にするために用いられる。一実施例において、MCU211がファームウェア221を実行し、デジタル署名又は他のタイプの制御値(所与のコンピュータリソースへのアクセスを許可するために必要とされる)などのアクセスパラメータを計算し、新しく計算された署名と事前に格納された署名とを用いてHW CMP213にレジスタをプログラムする。次いで、HW CMP213は、2つの署名の1回又は複数回の比較を実施する(各比較は、MCU211がHW CMP213内のレジスタをプログラムすると実施される)。署名が一致する場合、成功割り込み(SI)230がHW CMPによってMCU211にアサートされ、MCU211は、成功ISR223を実行することによって応答して、イネーブル信号209を介してターゲットコンピュータリソースを有効にする。別の実施例において、HW CMP213は、イネーブル信号207を介してターゲットコンピュータリソースを有効にする。HW COMP213によって実施される比較のいずれも一致しない場合、HW CMP213は、FI280をMCU211にアサートし、MCU211は失敗ISR223を実行することによって応答する。後者の場合、ターゲットコンピュータリソース250は有効にされない。
図2は、一例におけるHW CMP213のブロック図である。この例において、HW CMP213は、バスインタフェース310、構成及び制御レジスタ320、コントローラ335、デジタルコンパレータ330、タイマー350、ラッチ360A、360B、及び360C、ANDゲート370A及び370B、事象生成器380、並びに信号生成器390を含む。バスインタフェース310は、MCU211とHW CMP213との間のバス218を介するアクセスを提供する。バスインタフェース310を介して、MCU211は、構成及び制御レジスタ320内のレジスタのうちの1つ又は複数を書き込む(又は読み出す)ことができる。レジスタは、クリアレジスタ321、第1の比較イネーブルコマンドレジスタ322、第2の比較イネーブルコマンドレジスタ323、第3の比較イネーブルコマンドレジスタ324、オペランドAレジスタ325、オペランドBレジスタ326、スクラッチパッドレジスタ327、タイムアウトレジスタ328、及び状態レジスタ329を含む。コントローラ335は、レジスタにアクセスし、後述するように応答する。コントローラ335と構成及び制御レジスタ320との間の信号接続353が、1つ又は複数の信号を含み得る。信号接続353は、コントローラ335がレジスタのうちの1つ又は複数を読み出す及び/又は書き込むことを可能にし得る。
デジタルコンパレータ330は、mビットのコンパレータであり、入力332及び334を有する。デジタルコンパレータは、入力332上のmビット値を入力334上のmビット値と比較する。比較はビット単位の比較である(例えば、オペランドAレジスタ325のビット0が、オペランドBレジスタ326のビット0と比較され、レジスタ325のビット1が、レジスタ326のビット1と比較される、など)。一実施例において、mは256ビットであるが、mは任意の適切なビット数を含むことができる。デジタルコンパレータ330は、それぞれ、レジスタ325及び326からのオペランドAとオペランドBとを比較し、それに応じてコンパレータ出力信号336を出力する。一例において、コンパレータ出力信号336は、オペランドAのすべてのビットがオペランドBの対応するビットと一致する場合、論理高にアサートされる単一のデジタル信号であり、そうでない場合、コンパレータ出力信号336は、オペランドAとBとの間の任意の1つ又は複数のビットにおける不一致を示す論理低である。図2の例において、入力334上のバブルは、オペランドBの逆数をオペランドAと比較する前に、デジタルコンパレータがオペランドBの各ビットを反転することを示す。そのような実施例において、MCU211は、(ファームウェア221を介して)オペランドAレジスタ325を書き込み、MCUがオペランドBレジスタ326に書き込む値と比較される値の逆数を含む。例えば、HW CMP213が新たに計算された署名を既存の署名と比較することをMCU211が目的とする場合、MCU211は新たに計算された署名のビットを反転し、それらのビットをオペランドAレジスタ325に書き込み、既存の署名の非反転ビットをオペランドBレジスタに書き込むことができる。或いは、MCUは、新たに計算された署名の非反転ビットをオペランドAレジスタ325に書き込み、既存の署名のビットを反転し、それらの(反転された)ビットをオペランドBレジスタに書き込むことができる。更に他の実施例において、デジタルコンパレータ330は、その入力のいずれも反転せず、反転演算を実施することなく、レジスタ325及び326のビットを比較する。
デジタルコンパレータ330の出力は、ラッチ360A、360B、及び360Cの入力に結合される。各ラッチ360A~Cは、イネーブル(EN)入力を有する。ラッチ360AのEN入力は、コントローラ335によって(イネーブルの第1の比較信号341を介して)制御される。ANDゲート370Aの一方の入力はラッチ360Aの出力に結合され、ANDゲート370Aの他方の入力はコントローラ335に結合される(そして、イネーブルの第2の比較信号342を受信する)。ANDゲート370Aの出力は、ラッチ360BのEN入力に結合される。ANDゲート370Bの一方の入力はラッチ360Bの出力に結合され、ANDゲート370Bの他方の入力はコントローラ335に結合される(そして、イネーブルの第3の比較信号343を受信する)。ANDゲート370Bの出力は、ラッチ360CのEN入力に結合される。以下に記載するように、オペランドA及びオペランドBレジスタの内容の比較のシーケンスが、ラッチ360Aをイネーブルにするコントローラ335で実施され、次いで、オペランドA及びBの第1の成功した比較がラッチ360Aによってラッチされ、それによって、コントローラ335によるイネーブルの第2の比較信号342のアサート時にラッチ360Bを有効にする。次いで、オペランドA及びBレジスタの第2の成功した比較が、ラッチ360Bを介してラッチされて、コントローラ335によるイネーブルの第3の比較信号343のアサート時にラッチ360Cを有効にし、次いで、ラッチ360Cは、オペランドA及びBレジスタの第3の成功した比較をラッチする。図2の例では3つのラッチが示されているが、任意の個数のラッチを含むことができる。
事象生成器380は、ラッチ360Aの第1の結果出力信号362と、ラッチ360Bの第2の結果出力信号364とを受信する。第1及び第2の結果は、デジタルコンパレータ330によるそれぞれの比較の間オペランドAがオペランドBと一致する場合、論理高に対応する。第1及び第2の結果信号のいずれか又は両方が不一致を示す場合、事象生成器380は、FI信号280をMCU211にアサートする。第1及び第2の結果信号の両方がオペランドA及びBの一致が成功したことを示す場合、事象生成器は、SI信号230をMCU211にアサートする。MCU211は、アサートされている特定の割り込みに対応するISR(成功ISR222又は失敗ISR223)を実行する。一実施例において、コントローラ335は、有限状態機械として実装される。したがって、コントローラ335の状態は事前定義されており、各状態は、特定の他の状態から、また、事前定義されたシグナリングでのみ、入力される。コントローラが条件、信号、状態などの任意の他のセットを検出した場合、コントローラは、故障信号345を事象生成器380にアサートする。アサートされた故障信号345は、事象生成器にFI信号280をアサートさせる。
MCU211は、タイムアウトレジスタ328に時間値を書き込むこともできる。時間値はMCU211が構成及び制御レジスタ320に値を書き込むことを可能にするのに充分に長い(例えば、レジスタを更新するのに必要な時間量よりも10%長い)値であり得る。MCUが構成及び制御レジスタ320のすべてを完全に更新する前にタイマー350が満了した場合、タイマー350はタイムアウト信号352を事象生成器380にアサートし、事象生成器380は、失敗割り込み280をアサートすることによって応答し、プロセスはブロックされる。いくつかの実施例において、レジスタに書き込まれる値のサイズは、バス218の幅よりも大きい。したがって、構成及び制御レジスタ320に値を完全に書き込むために、複数の書き込みサイクルが実施される。コントローラ335は、タイムアウトレジスタ328を読み出し、タイマー350をプログラムして、タイムアウトレジスタ値に対応する時間の間、カウントを開始する。コントローラ335は、MCU211が構成及び制御レジスタ320に新しい値のセットをロードするのを完了すると、タイマー350を停止する。一例において、MCU211は、レジスタ更新プロセスの終わりを示すパケットをコントローラ335に送り得る。別の例において、構成及び制御レジスタ320は、レジスタ更新が完了したことを示す信号(信号接続353内の信号)をコントローラ335にアサートする。レジスタ320が完全に更新されるまでにタイマー350が満了した場合、タイマーはタイムアウト信号352をアサートし、これにより事象生成器380は失敗割り込み280をアサートする。失敗割り込み280のアサートは、ターゲットリソース250がイネーブルされることを防止する。したがって、事象生成器380はオペランドA及びBの比較のいずれも失敗した場合、異常な挙動が検出された場合、又はタイムアウトが発生した場合に、失敗割り込み信号280をアサートする。
図2の例において、ラッチ360Cの出力は、第3の結果信号366であり、信号生成器390の入力に提供される。第3の結果信号366はまた、スクラッチパッド327内の読み出しイネーブルビット(又は複数の読み出しイネーブルビット)373をアサートし、それによって、スクラッチパッド327をMCU211によって読み出し可能にする。そうでない場合、スクラッチメモリレジスタ327は以下に記載するように、MCU211によって読み取り可能ではない。
(後述する)一実施例において、MCUは、ターゲットコンピュータリソース250が有効にされる前にMCU211に1つ又は複数の動作を実施させる成功ISR222を実行することによって、SI信号230のアサートに応答する。そのような動作が成功した場合、MCU211は、ターゲットコンピュータリソースを有効にするためにイネーブル信号209をアサートする。別の実施例において、成功ISRがHW CMP213のレジスタを再度プログラムして、オペランドの更に別の比較を実施することができ、この比較が成功すると、HW CMP213内の信号生成器390がイネーブル信号207をターゲットコンピュータリソース250にアサートする。
状態レジスタ329は、MCU211によって読み出すことができ、HW CMPの動作及び状態に関する状態情報を提供する。一例において、コントローラ335は、本明細書に記載するオペランド比較動作の各々の成功/失敗の結果を用いて状態レジスタ329を更新する。クリアレジスタ321は、スクラッチパッドレジスタ327をディセーブルすることを含む、HW CMPを初期状態にリセットするために用いられ得る。MCU211はHW CMP213をリセットするために、任意の時点でクリアレジスタ321に書き込むことができる。例えば、MCU211は認証プロセスを完了し、ターゲットコンピュータリソース250をイネーブルにした後、HW CMP213をリセットするためにクリアレジスタ321に書き込むことができ、その結果、スクラッチパッドレジスタ327はコンピュータリソース250を有効にするための次のプロセスの開始時に読み取り可能ではない。
図3は、ターゲットコンピュータリソースへのアクセスを有効にするための方法を示す。コンピュータリソース250を有効にするための以前の試みの終わりに、MCU211(ファームウェアの実行中)は、HW CMP213内のクリアレジスタ321に書き込み、それは、部分的に、スクラッチパッドレジスタ327の読み出しイネーブル能力を更新して、読み出しを許可しないようにしている。その時点で、スクラッチパッドレジスタ327は書き込まれ得るが、読み出され得ない。
工程410において、この方法は、入力源からターゲットリソース250のためのアクセスパラメータを受け取ることを含む。アクセスパラメータは新たに計算されたデジタル署名(例えば、MCU211によって計算される)、パスワード、PINなどであり得る。一実施例において、アクセスパラメータは、ターゲットリソースに一意である。一実施例において、工程410は、割り込みサービスルーチンの一部ではないファームウェアを実行するMCU211によって実施される。
430において、この方法は、ランダム(又は擬似ランダム時間)遅延を実装することを含む。任意の適切なソフトウェア又はハードウェア実装遅延関数を使用して、ランダム遅延を実装することができる。一例において、遅延は、10~200ミリ秒であり得る。工程430及び工程480(後述)におけるランダム遅延の導入は、リソースへのアクセスにさらすことによる同期故障注入攻撃のリスクを最小限とするのに役立つ。
440において、この方法は、(工程410からの)受け取ったアクセスパラメータと事前設定されたアクセスパラメータとの間の比較を実施することを含む。事前設定アクセスパラメータは、事前に計算されていてもよく、ターゲットリソースのための既知の有効なパラメータである。事前設定されたアクセスパラメータは、メモリデバイス(RAM215、ROM217、及びフラッシュメモリ219)のうちの任意のものに格納され得、MCU211によってそこから取り出され得る。
一実施例において、工程440は、割り込みサービスルーチンの一部ではないファームウェアを実行するMCU211によって実施される。一例において、MCU211は、オペランドレジスタ325及び326にアクセスパラメータを書き込む。例えば、MCU211は、新たに計算されたアクセスパラメータのビット単位の反転を実施し、次いで、反転された新たに計算されたアクセスパラメータをオペランドAレジスタ325に書き込むことができる。また、MCU211は、予め設定されたアクセスパラメータ(非反転)をオペランドBレジスタ326に書き込んでもよい。工程440の一部として、MCU211はまた、第1の比較イネーブルコマンドレジスタ322に値を書き込み、HW CMP213のコントローラ335をトリガして、ラッチ360Aが第1の比較の結果をラッチすることを可能にし、スクラッチパッドレジスタ327に値を書き込むこともできる。スクラッチパッドレジスタ327に書き込まれた値は、イネーブルされるべきターゲットコンピュータリソースを識別することができる。MCU211は、タイムアウトレジスタ328に時間値を書き込むこともできる。この時点で、MCU211は、第2及び第3の比較イネーブルコマンドレジスタ323及び324に書き込みを行わない。
上述のように、コントローラ335は、有限状態機械(例えば、論理ゲート、カウンタ、フリップフロップ等の組み合わせ)として実装され、プロセスフローのこの時点で、コントローラ335は、第1の比較動作を有効にするように、第1の比較イネーブルコマンドレジスタが書き込まれることを予期している状態にある。第2又は第3の比較イネーブルコマンドレジスタが書き込まれてこれらのそれぞれのコマンドを有効にする場合、コントローラ335は、FI信号280をアサートすることによって応答する。しかしながら、第1の比較イネーブルコマンドレジスタ322のみが、実施されるべき比較を示す値で書き込まれる場合、コントローラ335は、ラッチ360A(図示せず)へのクロックエッジの発生時に、ラッチ360Aを有効にするためにイネーブルの第1の比較信号341を論理状態(例えば、論理高)にアサートする。デジタルコンパレータ330は、オペランドA及びBレジスタ325及び326内の値を比較し(いくつかの実施例において、オペランドBのビットを反転させる)、比較が成功したか又は失敗であったかどうかを示す信号336を出力する(工程450)。対応するビットの全てが一致する場合、デジタルコンパレータ330は、信号336を第1の論理状態(例えば、論理高)にアサートするが、対応するビットのいずれかが一致しない場合、デジタルコンパレータ330は、信号336を第2の論理状態(例えば、論理低)にアサートして、オペランドが一致しなかった(「いいえ」の分岐)ことを示す。
判定工程450からの「いいえ」の分岐は、コンパレータの出力信号336が論理ロー状態(オペランド不一致)であることから生じる。この場合、事象生成器380は、MCU211に対してFI280をアサートし、MCU211は、失敗事象に対応する失敗ISR223を実施することで応答する。図3のフローチャートにおいて、失敗ISR(MCU211によって実施される)が例えば、工程490及び492を実施する。工程490において、失敗割り込みサービスルーチンは、潜在的な故障注入攻撃の一部として、工程410において受け取った新しく計算されたアクセスパラメータを識別する。識別されたアクセスパラメータは、システム100内のメモリのいずれかに格納され得る。工程492において、失敗ISRは、セキュリティアクセス応答を実施し、セキュリティアクセス応答は、例えば、ターゲットリソース250にアクセスするための要求を開始した入力源にメッセージ又は信号を送ることを含み得る。メッセージ又は信号は、例えば、入力源が「拒否リスト」にリストされていることを示し得、これは、システム100が同じ入力源からの将来のリソースアクセス要求に応答することを防止する。入力源は、グローバル一意識別子(GUID)、シリアル番号、インターネットプロトコル(IP)アドレス(又は他のタイプのアドレス)などの任意の適切なタイプの識別子によって識別され得る。
しかしながら、オペランドは、デジタルコンパレータ330によって検出されるように一致していてもよい。MCU211は、コントローラ335によって更新された状態レジスタ329を読み出して、第1の比較動作の成功を示す。MCU211が第1の比較が成功したことを確認すると(判定工程450からの「はい」の分岐)、この方法は、工程430において、MCU211が、遅延と同じ又は異なる長さであり得るランダム遅延を実装することを含む。
工程482において、この方法は、2つの値間の比較を実施することを含む。1つの値は、(工程410からの)受け取ったアクセスパラメータであり得、他方の値は、事前設定されたアクセスパラメータであり得る(したがって、工程440において比較されたものと同じ2つのアクセスパラメータ)。しかし、工程482で比較される値は、工程440で比較された値とは異なる値であってもよい。
一実施例において、工程482は、割り込みサービスルーチンの一部ではないファームウェアを実行するMCU211によって実施される。一例において、MCU211は、第2の比較動作のために比較される値を、オペランドレジスタ325及び326に書き込む(例えば、工程440においてそこに書き込まれたアクセスパラメータを上書きする)。上述したように、MCU211は、反転値をレジスタに書き込む前に、オペランドAレジスタ325に書き込むべき値をビット単位で反転することができる。MCU211は、他方の値(反転されていない)をオペランドBレジスタ326に書き込むこともできる。工程482の一部として、MCU211はまた、第2の比較動作を実施するためにHW CMP213のコントローラ335をトリガするために、第2の比較イネーブルコマンドレジスタ323に値を書き込むことができる。
プロセスフローのこの時点で、コントローラ335は、第2の比較動作を有効にするために、第2の比較イネーブルコマンドレジスタが書き込まれることを予期している状態にある。第1又は第3の比較イネーブルコマンドレジスタがこれらのそれぞれのコマンドを有効にするように書き込まれる場合、コントローラ335は、失敗割り込み信号280をアサートすることによって応答する。しかしながら、第2の比較イネーブルコマンドレジスタ323のみが、実施されるべき比較を示す値で書き込まれる場合、コントローラ335は、以下で更に説明されるように、ANDゲート370Bを介してラッチ360Bを有効にするために、イネーブルの第2の比較信号342を論理状態(例えば、論理高)にアサートする。上述のように、デジタルコンパレータ330は、オペランドA及びBレジスタ325及び326内の値を比較し(いくつかの実施例において、オペランドBのビットを反転させ)、この第2の比較が成功であったか失敗であったかを示す信号336を出力する。対応するビットの全てが一致する場合、デジタルコンパレータ330は、信号336を第1の論理状態(例えば、論理高)にアサートするが、対応するビットのいずれかが一致しない場合、デジタルコンパレータ330は、信号336を第2の論理状態(例えば、論理低)にアサートして、オペランドが一致しなかったことを示す。
第1の比較が成功すると、コンパレータ出力信号336は論理1となり、これは、イネーブルの第1の比較信号341のコントローラ335によるアサートに応答して、ラッチ360Aを介してラッチされる。第2の比較イネーブルコマンドレジスタ323が、実施されるべき第2の比較を示す値を含むことに応答して、コントローラは、イネーブルの第2の比較信号342をアサートする。その時点で、ANDゲート370Aへの両方の入力は論理高であり、ラッチ360Bは、デジタルコンパレータ330の出力信号336をラッチする(これはオペランドA及びBが一致する場合、論理1となる)。
制御は、工程455に進み、ここで、この方法は、第2の比較が成功したか又は失敗したかを判定する(第1の比較は判定工程450で成された)。第2の比較が失敗した(例えば、オペランドA及びBが一致しなかった)場合、事象生成器380は、失敗割り込み信号280をアサートし、失敗ISRがMCU211によって実行される(上述のような、工程490及び492)。第2の比較が成功した場合、事象生成器380は、成功割り込み信号230をMCU211にアサートし、MCU211は、成功ISR222を実行することによって応答する。
図3のフローチャートにおいて、一実施例における(MCU211によって実行される)成功ISRは、工程470~476を実施する。工程470において、成功ISRは、上述のようにランダム遅延を実施する。
工程472において、成功ISRは、実施されるべき第3の比較をイネーブルする。この工程は、上述のように、第3の比較イネーブルコマンドレジスタ324並びにオペランドA及びBレジスタ325及び326をプログラムする成功ISRによって実施され得る。オペランドレジスタにプログラムされる値は、第1及び/又は第2の比較動作におけるものと同じ値であってもよく、又は異なる値であってもよい。上述のように、1つの値は、値の反転したバージョンであってもよい。第3の比較イネーブルコマンドレジスタ324に書き込まれた値は、第3の比較動作が実施されるべきことをコントローラ335に示す。最初の2つの比較動作がその順序で成され、両方の比較が成功した場合、コントローラ335は、第3の比較が開始されることを予期する状態になる。第3の比較イネーブルコマンドレジスタが、比較を開始するための値で書き込まれたときに、コントローラ335がその状態にない場合、コントローラ335は、故障信号345を事象生成器380にアサートし、事象生成器は、前述のように、失敗割り込み信号280をアサートして、成功ISRを終了し、失敗ISRの実行をインスタンス化する。
最初の2つの比較動作が成功したと仮定すると、ラッチ360Bからの第2の結果出力信号364は論理高になる。また、コントローラ335は、イネーブルの第3の比較信号343をアサートすることによって、第3の比較イネーブルコマンドレジスタ324に書き込まれた値に応答し、それゆえ、ANDゲート370Bへの両方の入力は論理高になる。次いで、ラッチ360Cがイネーブルされ、コンパレータの出力信号336が、第3の結果信号366としてラッチ360Cによってラッチされる。第3の結果信号366は、デジタルコンパレータ330によって比較された2つの値が同じであった場合、論理高となる(上述のような起こり得る反転を考慮する)。2つの値が異なる場合、第3の結果信号は論理低になる。
第3の結果信号366は、スクラッチパッドレジスタ327内の読み出しイネーブルビット373に結合される。スクラッチパッドレジスタ327は、第1の比較が実施される前に、MCUがHW CMP213の状態を初期的にクリアすると、読み出すことができなかった。第3の結果信号366が論理高である場合、スクラッチパッドレジスタ327は読み出し可能にされ、そうでない場合、スクラッチパッドレジスタは読み出し可能ではない。第3の結果信号366はまた、信号生成器390への入力として提供され得る。
工程474において、成功ISRは、スクラッチパッドレジスタ327の読み出しを試みる。第3の比較が失敗した場合、スクラッチパッドレジスタは可読ではなく、それによってターゲットリソース250へのアクセスを防止する。第3の比較が成功した場合、スクラッチパッドレジスタ327は読み出し可能であり、成功ISRはスクラッチパッドレジスタの値を読み出す。スクラッチパッドレジスタ327内の値は、イネーブルされるべきリソース250の識別子であり得る。工程476において、成功ISRは、例えば、対応するイネーブル信号209(図1)をアサートすることによって、ターゲットリソースを有効にする。
代替の実施例において、成功ISR(MCU211)がスクラッチパッドレジスタ327を読み出し、イネーブル信号209をターゲットリソース250にアサートするのではなく、成功ISRは、上述のように第3の比較イネーブルコマンド及びオペランドレジスタ323~326をプログラムし、HW CMP213内の信号生成器390は、正しいイネーブル信号207をアサートする。複数のイネーブル信号207が図3に示されており、各イネーブル信号が別のリソースを有効にする。この実施例において、第3の結果信号366の論理高アサート(比較成功)が、スクラッチパッドレジスタ327が読み出されることを可能にし、これにより、スクラッチパッドレジスタ内の値が信号生成器390に提供される。次いで、信号生成器390は、スクラッチパッドレジスタからの値に対応するイネーブル信号207をアサートする。
本記載において、「結合する」という用語は、本記載と一貫する機能的関係を可能にする、接続、通信、又は信号経路を包含し得る。例えば、デバイスAが或る行為を行うためにデバイスBを制御する信号を生成する場合、(A)第1の例において、デバイスAは直接接続によってデバイスBに結合され、又は(b)第2の例において、介在構成要素CがデバイスAとデバイスBとの間の機能的関係を変更しない場合に、デバイスAは、介在構成要素Cを介してデバイスBに結合されて、デバイスBはデバイスAによって生成された制御信号を介してデバイスAによって制御される。
或るタスク又は機能を行う「ように構成される」デバイスは、その機能を行うように製造業者によって製造時に構成され(例えば、プログラム及び/又は配線接続され)、及び/又は、その機能及び/又は他の付加的な又は代替の機能を行うように製造後にユーザによって構成可能(又は再構成可能)であり得る。こういった構成は、デバイスのファームウェア及び/又はソフトウェアプログラミングを介してもよく、ハードウェア構成要素の構成及び/又はレイアウトを介してもよく、デバイスの相互接続を介してもよく、又はそれらの組み合わせを介してもよい。
本発明の特許請求の範囲内に記載した例示の実施例に改変が成され得、他の実施例が可能である。

Claims (20)

  1. コンピュータリソースへのアクセスを提供するための方法であって、前記方法が、
    第1の値及び第2の値並びに第1の比較イネーブルコマンドを、ハードウェアコンパレータ回路内のそれぞれの第1のオペランド、第2のオペランド、及び第1の比較イネーブルコマンドレジスタにプログラムすることと、
    前記第1及び第2の値に対応する第1の一致が存在すると判定することと、
    前記第1のオペランドレジスタに第3の値をプログラムし、前記第2のオペランドレジスタに第4の値をプログラムすることと、
    第2の比較イネーブルコマンドを前記ハードウェアコンパレータ回路内の第2の比較イネーブルコマンドレジスタにプログラムすることと、
    前記第3及び第4の値に対応する第2の一致が存在するという判定に応答して、成功割り込み信号をアサートすることと、
    成功割り込みサービスルーチン(ISR)によって、前記第1のオペランドレジスタに第5の値をプログラムし、前記第2のオペランドレジスタに第6の値をプログラムすることと、
    前記成功ISRによって、第2の比較イネーブルコマンドを前記ハードウェアコンパレータ回路内の第2の比較イネーブルコマンドレジスタにプログラムすることと、
    を含む、方法。
  2. 請求項1に記載の方法であって、前記ハードウェアコンパレータ回路内のスクラッチパッドレジスタを、前記コンピュータリソースに対応するスクラッチパッド値でプログラムすることを更に含む、方法。
  3. 請求項2に記載の方法であって、前記第5の値及び前記第6の値に対応する一致が存在すると判定することを更に含み、このことが、前記ハードウェアコンパレータ回路内の前記スクラッチパッドレジスタを読み取り可能にさせる、方法。
  4. 請求項3記載の方法であって、更に、
    前記成功ISRによって、前記スクラッチパッドレジスタから前記スクラッチパッド値を読み出すことと、
    前記成功ISRによって、前記スクラッチパッド値に対応する前記コンピュータリソースを有効にすることと、
    を含む、方法。
  5. 請求項3記載の方法であって、更に、
    前記スクラッチパッドレジスタからの前記スクラッチパッド値を前記ハードウェアコンパレータ内の信号生成器へ提供することと、
    前記信号生成器によって、前記スクラッチパッド値に対応する前記コンピュータリソースを有効にすることと、
    を含む、方法。
  6. 請求項1に記載の方法であって、更に、前記第1の比較イネーブルコマンドが前記第1の比較イネーブルコマンドレジスタにプログラムされる前に、前記第2の比較イネーブルコマンドが前記第2の比較イネーブルコマンドレジスタにプログラムされることに応答して、前記ハードウェアコンパレータ回路によって失敗割り込み信号をアサートすることを含む、方法。
  7. 請求項1に記載の方法であって、前記第1及び第2の値に対応する前記第1の一致が存在しないか又は前記第3及び第4の値に対応する前記第2の一致が存在しないという判定に応答して、前記ハードウェアコンパレータ回路によって失敗割り込みをアサートすることを更に含む、方法。
  8. 請求項1に記載の方法であって、前記ハードウェアコンパレータ回路が、少なくとも、前記第1の一致が存在するとの前記判定に応答して、前記第3及び第4の値に対応する比較を実施することを可能にする、方法。
  9. 集積回路(IC)であって、
    コンピュータリソース、
    第1のオペランドレジスタと、第2のオペランドレジスタと、第1の比較イネーブルコマンドレジスタと、第2の比較イネーブルコマンドレジスタと、第3の比較イネーブルコマンドレジスタと、スクラッチパッドレジスタとを含むハードウェアコンパレータ回路、及び
    前記ハードウェアコンパレータ回路に結合されるマイクロコントローラユニット(MCU)、
    を含み、
    前記MCUが、
    前記第1のオペランドレジスタへの第1の値の書き込み、前記第2のオペランドレジスタへの第2の値の書き込み、前記第1の比較イネーブルコマンドレジスタへの第1の比較イネーブルコマンドの書き込み、及び前記スクラッチパッドレジスタへのスクラッチパッド値の書き込みをすることであって、前記スクラッチパッド値が前記コンピュータリソースを識別する、前記書き込みをすることと、
    前記第1及び第2の値に対応する第1の一致が存在すると判定することと、
    前記第1のオペランドレジスタに第3の値を、前記第2のオペランドレジスタに第4の値を書き込むことと、
    前記第2の比較イネーブルコマンドレジスタに第2の比較イネーブルコマンドを書き込むことと、
    前記ハードウェアコンパレータ回路から前記第3及び第4の値に対応する第2の一致が存在することを示す成功割り込み信号を受信することに応答して、前記第1のオペランドレジスタに第5の値を、前記第2のオペランドレジスタに第6の値を、前記第2の比較イネーブルコマンドレジスタに第2の比較イネーブルコマンドを書き込むことと、
    を行うように構成されている、
    IC。
  10. 請求項9に記載のICであって、前記ハードウェアコンパレータ回路が、前記第2の一致の存在の検出の際に前記スクラッチパッドレジスタが可読であることを可能にするように構成される、IC。
  11. 請求項10に記載のICであって、前記MCUが、前記スクラッチパッドレジスタを読み出すように、及び、前記スクラッチパッド値に基づいて前記コンピュータリソースを有効にするように構成される、IC。
  12. 請求項10に記載のICであって、前記ハードウェアコンパレータ回路が、前記スクラッチパッド値に基づいて前記コンピュータリソースを有効にするように構成される、IC。
  13. 請求項9に記載のICであって、前記MCUが、前記第1の値を前記第1のオペランドレジスタに書き込む前に第1の擬似ランダム時間値を実装するように、及び、前記第3の値を前記第1のオペランドレジスタに書き込む前に第2の擬似ランダム時間値を実装するように構成される、IC。
  14. 請求項9に記載のICであって、前記ハードウェアコンパレータ回路が、前記第1及び第2の値に対応する前記第1の一致の失敗、又は前記第3及び第4の値に対応する前記第2の一致の失敗に応答して、失敗割り込み信号をアサートするように構成される、IC。
  15. 集積回路(IC)であって、
    コントローラ、
    第1のコンパレータ入力と、第2のコンパレータ入力と、デジタルコンパレータ出力と、を有するデジタルコンパレータ、
    第1のラッチ入力と、第1のラッチ出力と、第1のイネーブル入力と、を有する第1のラッチであって、前記第1のラッチ入力が前記デジタルコンパレータ出力に結合され、前記第1のイネーブル入力がコントローラに結合される、前記第1のラッチ入力、
    第1のANDゲート入力と、第2のANDゲート入力と、第1のANDゲート出力と、を有する第1のANDゲートであって、前記第1のANDゲート入力が前記第1のラッチ出力に結合され、前記第2のANDゲート入力が前記コントローラに結合される、前記第1のANDゲート、及び
    第2のラッチ入力と、第2のラッチ出力と、第2のイネーブル入力と、を有する第2のラッチであって、前記第2のラッチ入力が前記デジタルコンパレータ出力に結合され、前記第2のイネーブル入力が前記第1のANDゲート出力に結合される、前記第2のラッチ、
    を含む、IC。
  16. 請求項15に記載のICであって、更に、
    前記第1のコンパレータ入力に結合される第1のオペランドレジスタと、
    前記第2のコンパレータ入力に結合される第2のオペランドレジスタと、
    を含む、IC。
  17. 請求項16に記載のICであって、更に、
    前記コントローラに結合される第1の比較イネーブルコマンドレジスタと、
    前記コントローラに結合される第2の比較イネーブルコマンドレジスタと、
    を含み、
    前記コントローラが、
    前記第1の比較イネーブルコマンドレジスタからの第1の値に応答して前記第1のラッチをイネーブルし、
    前記第2の比較イネーブルコマンドレジスタからの第2の値に応答して前記第2のANDゲート入力に信号をアサートする、
    ように構成される、
    IC。
  18. 請求項16に記載のICであって、第1の事象生成器入力と第2の事象生成器入力とを有する事象生成器を更に含み、前記第1の事象生成器入力が前記第1のラッチ出力に結合され、前記第2の事象生成器入力が前記第2のラッチ出力に結合される、IC。
  19. 請求項18に記載のICであって、前記事象生成器が第1の割り込み信号出力と第2の割り込み信号出力とを有し、前記事象生成器が、
    前記第1及び第2のラッチ出力の両方が第1の所定の状態にあることに応答して前記第1の割り込み信号出力をアサートし、
    前記第1及び第2のラッチ出力が第2の所定の状態にあることに応答して前記第2の割り込み信号出力をアサートする、
    ように構成される、IC。
  20. 請求項16に記載のICであって、更に、
    第3のラッチ入力と第3のラッチ出力とを有する第3のラッチであって、前記第3のラッチ入力が前記デジタルコンパレータ出力に結合される、前記第3のラッチと、
    前記第3のラッチ出力に結合される読み出しイネーブル入力を有するスクラッチパッドレジスタと、
    を含む、IC。
JP2024540686A 2022-01-04 2023-01-03 故障注入攻撃対策 Pending JP2025502020A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263296297P 2022-01-04 2022-01-04
US63/296,297 2022-01-04
US17/853,612 US12111931B2 (en) 2022-01-04 2022-06-29 Countermeasure against fault injection attacks
US17/853,612 2022-06-29
PCT/US2023/010021 WO2023133087A1 (en) 2022-01-04 2023-01-03 Countermeasure against fault injection attacks

Publications (1)

Publication Number Publication Date
JP2025502020A true JP2025502020A (ja) 2025-01-24

Family

ID=86991710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024540686A Pending JP2025502020A (ja) 2022-01-04 2023-01-03 故障注入攻撃対策

Country Status (5)

Country Link
US (2) US12111931B2 (ja)
EP (1) EP4460778A1 (ja)
JP (1) JP2025502020A (ja)
KR (1) KR20240131351A (ja)
CN (1) CN118451421A (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6779065B2 (en) * 2001-08-31 2004-08-17 Intel Corporation Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads
US8407528B2 (en) 2009-06-30 2013-03-26 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
US8238166B2 (en) * 2009-10-12 2012-08-07 Macronix International Co., Ltd. Methods of programming and reading single-level trapped-charge memory cells using second-bit threshold detection
US10591892B2 (en) 2015-06-05 2020-03-17 Renesas Electronics America Inc. Configurable mapping of timer channels to protection groups
US10483854B2 (en) * 2017-05-19 2019-11-19 Semiconductor Components Industries, Llc Resonant power supply converter circuit and method therefor
CN112631657B (zh) * 2019-09-24 2024-06-11 阿里巴巴集团控股有限公司 用于字符串处理的字节比较方法以及指令处理装置

Also Published As

Publication number Publication date
US20250028831A1 (en) 2025-01-23
KR20240131351A (ko) 2024-08-30
US12111931B2 (en) 2024-10-08
EP4460778A1 (en) 2024-11-13
US20230214490A1 (en) 2023-07-06
CN118451421A (zh) 2024-08-06

Similar Documents

Publication Publication Date Title
US20230020278A1 (en) Secure boot assist for devices, and related systems, methods and devices
EP2248063B1 (en) Method and apparatus for controlling system access during protected modes of operation
US10691807B2 (en) Secure system boot monitor
US7739517B2 (en) Hardware-based authentication of a software program
US7849315B2 (en) Method for managing operability of on-chip debug capability
US7917716B2 (en) Memory protection for embedded controllers
EP3543881A1 (en) Chip access method, security control module, chip and debugging device
CN111226215B (zh) 透明附接的闪存存储器安全性
US6711690B2 (en) Secure write blocking circuit and method for preventing unauthorized write access to nonvolatile memory
US20170161071A1 (en) Enhanced protection of processors from a buffer overflow attack
Nasser et al. An approach for building security resilience in AUTOSAR based safety critical systems
US11675587B2 (en) Enhanced protection of processors from a buffer overflow attack
CN112487509B (zh) 安全装置及安全方法
US12111931B2 (en) Countermeasure against fault injection attacks
WO2023133087A1 (en) Countermeasure against fault injection attacks
TWI738135B (zh) 監控系統開機之安全裝置及其方法
JP2001236132A (ja) 耐タンパー性を与える方法及びプログラム
US10275367B2 (en) Command source verification
CN118051960A (zh) 集成电路中的安全系统的测试