(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】ソフトウェア制御のデバイスのセキュアな起動動作中の操作を示唆する異常を検出する方法
(51)【国際特許分類】
G06F 21/57 20130101AFI20241024BHJP
【FI】
G06F21/57 350
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024529707
(86)(22)【出願日】2022-11-15
(85)【翻訳文提出日】2024-05-17
(86)【国際出願番号】 DE2022200269
(87)【国際公開番号】W WO2023088523
(87)【国際公開日】2023-05-25
(31)【優先権主張番号】102021212994.3
(32)【優先日】2021-11-18
(33)【優先権主張国・地域又は機関】DE
(81)【指定国・地域】
(71)【出願人】
【識別番号】522296653
【氏名又は名称】コンチネンタル・オートモーティヴ・テクノロジーズ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
【氏名又は名称原語表記】Continental Automotive Technologies GmbH
【住所又は居所原語表記】Continental-Plaza 1, 30175 Hannover, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】マーク ゼバスティアン パトリック シュテーティンガー
(72)【発明者】
【氏名】シュテフェン ザンヴァルト
(57)【要約】
本発明は、ソフトウェア制御のデバイスのセキュアな起動動作中の操作を示唆する異常を検出する方法であって、上記方法が、とりわけ、マイクロプロセッサの動作に必要なシステムコンポーネントの動作パラメータをチェックすることと、適切に完了していない起動動作を示すフラグをチェックすることと、ロードされるソフトウェア又はロードされるソフトウェアコンポーネントの署名ベースの認証をチェックすることとを含む、方法に関する。マルチステージ起動動作の場合、特定のステップに割り当てられたカウンタ値が、関連する参照値と比較される。故障の場合、各チェックが信号を送出することができ、これにより、また任意選択で更なる信号と共に、攻撃の種類を識別することができ、その結果、特定の対策を開始することができる。
【特許請求の範囲】
【請求項1】
マイクロプロセッサ制御のデバイス(200)のセキュアブート動作に対する攻撃の種類を認識する方法(100)であって、
マイクロプロセッサ(202)の動作に必要な少なくとも1つのシステムコンポーネント(208)から、少なくとも1つの動作パラメータを読み出すこと(101)、及び読み出された前記少なくとも1つの動作パラメータを、対応する格納された参照値と比較すること(102)であって、前記比較が差異を示す場合、認識されたサイドチャネル攻撃及び失敗したブート動作を知らせる第1の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、ことと、
未だ正常に完了していないブート動作において設定されたフラグの状態をチェックすること(103)であって、前記フラグが設定されている場合、認識されたフォールトインジェクション攻撃及び失敗したブート動作を知らせる第2の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされ、前記フラグが設定されていない場合、前記フラグが前記チェックの後に設定される、ことと、
ソフトウェア若しくはソフトウェアコンポーネントの少なくとも1つのブロックに対するハッシュ値若しくはチェックサムを計算すること、及び先行するブート動作における前記ソフトウェア若しくはソフトウェアコンポーネントの同じ前記少なくとも1つのブロックに対する格納されたハッシュ値若しくはチェックサムと比較すること、又はロードされるソフトウェア若しくはロードされるソフトウェアコンポーネントの認証コードを計算すること(107)、及び前記計算された認証コードを、メモリから読み出された先行するブート動作の認証コードと比較すること(108)であって、前記比較が差異を示す場合、認識された攻撃及び失敗したブート動作を知らせる第3の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、ことと、
既に以前に行われたのではない場合、ロードされるソフトウェア又はロードされるソフトウェアコンポーネントの認証コードを計算すること(107)、及び前記計算された認証コードを、メモリから読み出された参照コードと比較すること(109)であって、前記比較が差異を示す場合、認識されたフォールトインジェクション攻撃及び失敗したブート動作を知らせる第4の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、ことと、
前記メモリから読み出された前記先行するブート動作の前記認証コードを、現在のブート動作に関して計算された前記認証コードに置き換えること(110)、及び未だ正常に完了していないブート動作において設定された前記フラグを削除すること(113)と
を含む、方法(100)。
【請求項2】
前記ブート動作がマルチステージ設計のものである場合、
マルチステージブート動作の現在のステージを、このステージに割り当てられた参照値と比較すること(106)であって、前記比較が差異を示す場合、認識されたフォールトインジェクション攻撃及び失敗したブート動作を知らせる第5の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされ、そうでない場合は、前記ブート動作の実行及び後続のステージのロードが、前記対応する参照値によって示される前記ブート動作の最後のステージがロードされるまで続けられる、こと
を追加的に含む、請求項1に記載の方法(100)。
【請求項3】
前記ブート動作の開始時及び/又は正常な完了の後に、固有の時間情報を格納すること、
新しいブート動作ごとに、現在の時間情報を、以前のブート動作において格納された時間情報と比較することであって、前記比較が所定の値より小さい差異を示す場合、認識された攻撃及び失敗したブート動作を知らせる第6の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、こと
を追加的に含む、請求項1又は2に記載の方法(100)。
【請求項4】
前記ブート動作の開始時及び/又は正常な完了の後に、固有の時間情報を格納すること、
新しいブート動作ごとに、所定の時間内の先行するリブート動作の回数を、許容される最大値と比較することであって、リブート動作の前記回数が前記許容される最大値を上回る場合、認識された攻撃及び失敗したブート動作を知らせる第6の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、こと
を追加的に含む、請求項1又は2に記載の方法(100)。
【請求項5】
ブート動作の前記開始及び/又は前記正常な完了が、前記開始及び/又は前記正常な完了に典型的な電力消費量に基づいて確認される、請求項3又は4に記載の方法。
【請求項6】
ブート動作の前記開始が、マイクロプロセッサによって出力されたリセット信号に基づいて判定される、請求項3又は4に記載の方法。
【請求項7】
前記ブート動作における前記第1のデバイス(10)の少なくとも1つのシステムリソースの割り当てを監視することと、
所定の第2の期間内における同じプロセスへの同じシステムリソースの割り当ての数を、このシステムリソースに関する所定の最大値と比較することであって、前記同じプロセスへの前記同じシステムリソースの割り当ての前記数が前記所定の最大値を上回ると、認識された攻撃及び失敗したブート動作を知らせる第7の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、ことと
を追加的に含む、請求項1~6のいずれか一項に記載の方法。
【請求項8】
1つ以上のデータライン又は1つ以上のデータバス(210)を介して互いに通信可能に接続された、少なくとも1つのプロセッサ(202)と、揮発性メモリ(204)及び不揮発性メモリ(206)と、前記マイクロプロセッサの動作に必要な少なくとも1つの更なるシステムコンポーネント(208)とを備える、デバイス(200)であって、コンピュータプログラム命令が、前記不揮発性メモリ(206)に取得可能に格納され、前記コンピュータプログラム命令が前記少なくとも1つのプロセッサ(202)によって実行されると、請求項1~10のいずれか一項に記載の方法(100)を実行するように前記デバイス(200)を構成する、デバイス(200)。
【請求項9】
デバイス(200)のマイクロプロセッサ(202)によってプログラムが実行されると、請求項1~7のいずれか一項に記載の方法(100)を前記デバイス(200)の前記マイクロプロセッサ(202)に実行させる命令を含む、コンピュータプログラム製品。
【請求項10】
請求項9に記載のコンピュータプログラム製品が格納されるコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア制御のデバイスのセキュアブート動作中の異常(例えば、操作の試みの際に発生する異常など)を認識又は識別する方法に関する。
【背景技術】
【0002】
多くの最新のデバイスがソフトウェアによって制御され、ソフトウェアは、それぞれのデバイスが起動されると、記憶媒体から読み出され、メインメモリに転送され、メインメモリにおいて最終的にプロセッサによって実行される。
【0003】
利用可能なソフトウェアは一般にモノリシックではなく、不揮発性メモリ、例えばフラッシュメモリで直接実行され得るため、実行のための個々のコンポーネントは不揮発性メモリからメインメモリにロードされなければならない。ソフトウェアコンポーネントは、一般に、不揮発性メモリにおいてそれらのファイル名に基づいて場所を特定できるようにメモリの種類に適合されたファイルシステム内に格納される。ソフトウェア制御のデバイスのブートの直後には、マイクロプロセッサはファイルシステムの構造を把握していないため、ファイルシステムにアクセスできない。そのため、まず、不揮発性メモリのファイルシステムにアクセスするようにマイクロプロセッサを構成する特定の補助ソフトウェアをロードする必要がある。
【0004】
特定の補助ソフトウェアは、まず、コンピュータシステムのファームウェアによって、ブート可能メディアの定義されたメモリ領域(ブートセクタ)からロードされ、実行される。このファームウェアは、ブートローダ又はブートプログラムとも呼ばれる。次いで、ブートローダは、オペレーティングソフトウェアの更なる部分をロードする。
【0005】
ブートローダは、互いに積み重なる複数のステージに細分化されることもあり、その場合には、マルチステージブートローダとなる。このような各ステージへの細分化は、例えば、ブートローダのプログラムコードがブート媒体のブートセクタに完全に収容されない場合に行われる。そして、最初に、第1のステージのみがロードされ、実行され、次に第1のステージが長さ、ブロック番号、及び媒体の識別情報しか把握していない第2のステージがロードされ、実行される。ここで、第2のステージは、媒体の具体的なファイルシステムを扱うことができ、例えばファイル名に基づいて第3のステージをロードする。ここで、第3のステージは、実際のブートローダであり、実際のブートローダは、例えば、選択メニューを含む構成ファイル、又はデバイスの動作に必要なソフトウェアコンポーネントを適切な場合には所定の順序でロードする。
【0006】
ブートローダのこのマルチステージ構造はいくつかの利点を有する。この点で、上述の場合、第2のステージは既に媒体のファイルシステムを扱うことができ、ファイル名に基づいて第3のステージを見つけることができるため、第3のステージでロードされる実際のブートローダのファイルが任意に変更され得る、又は更には媒体上で物理的にずらされたりし得る。加えて、このようなブートローダは、ブートブロック又はブートセクタの長さの制限を受けない。
【0007】
特定のデバイス(例えば、規定に沿って認められ、主として安全な動作ポイント若しくは領域がコンパイルされるような複雑な機械、又は高度に個人的、商業的、若しくは社会的価値のデータを格納若しくは処理する機械を制御するデバイス)が動作の耐タンパ性に関して特定の要件の対象となる。
【0008】
ほとんどすべての技術分野でそうであるように、ここでも、動作ポイント又は領域を変更することであろうと、データ又は他の値へのアクセスを得ることであろうと、このようなデバイスのソフトウェアを操作しようとする試みが繰り返し行われている。
【0009】
ソフトウェアを操作しようとする試みを防止するために、デバイスは、早ければブート動作において、署名付きのソフトウェアコンポーネントのみをロードするように構成されることもある。それぞれのソフトウェアコンポーネントの署名が実行前にチェックされ、セキュリティコンポーネントがブート動作において構成される。このセキュリティコンポーネントは、デバイスの動作においてソフトウェアモジュールに対する操作を認識し、必要であれば対策を構成するためのものである。この手順はまた、セキュアブート動作又は「セキュアブート」とも呼ばれる。
【0010】
セキュアブート動作において、例えば、いわゆるメッセージ認証コード(MAC)が、ソフトウェアコンポーネント、データ、又はメッセージの発信元に関して確認し、その完全性をチェックするために使用され得る。
【0011】
MACアルゴリズムは、2つの入力パラメータ、すなわち、保護すべきデータと秘密鍵とを必要とする。両方とも、チェックサム、すなわちメッセージ認証コードを計算するために使用される。
【0012】
ブート動作において、ロードされるソフトウェアコンポーネントの完全性は、MACによって以下のようにチェックされ得る。秘密鍵が、デバイスのセキュアなメモリ又はメモリの領域に格納され、それ以外で秘密鍵を知るのは、デバイスに関して認可されたソフトウェア製造業者のみである。ソフトウェア製造業者は、この鍵及びそのソフトウェアコンポーネントに関してMACを計算する。ソフトウェアコンポーネント及び関連するMACは、デバイスの不揮発性メモリに格納され、そこからメインメモリに読み込まれ、必要に応じてマイクロプロセッサによって実行される。ソフトウェアコンポーネントが実行される前に、セキュリティ機能が、デバイスのセキュアなメモリ領域に格納された鍵を使用して、不揮発性メモリに格納されたソフトウェアコンポーネントに関するMACを計算し、計算されたMACをソフトウェアコンポーネントに関して格納されたMACと比較する。セキュリティ機能は、両方の値の対応関係を、正常な完全性試験として解釈する。つまり、ソフトウェアコンポーネントは、秘密鍵を知っている認可されたソフトウェア製造業者によって提供されたものであり、不揮発性メモリにおいて変更されていないことが想定される。
【0013】
MACは、ブロック暗号に基づくものであるか、ハッシュ関数に基づくものであるか、特別に開発されたMACであるかのいずれかである。MAC計算の従来の方法の1つであるHMACは、暗号学的ハッシュ関数に基づくものであり、例えばSSL及びIPsecの通信方式で使用される。ブロック暗号に基づく方法のうち広く使用されている方法の1つが、NIST SPシリーズ文書800-38Bに規定された暗号ベースのメッセージ認証コード(CMAC)であり、このコードは、AES又はトリプルDES暗号方式と共に使用されている。
【0014】
ここで、攻撃者は、対称鍵がソフトウェア検証に使用されている場合に、攻撃者が任意のソフトウェアに対して有効で認証済みのMACを生成することができるように、秘密鍵の知識を得ようと試みることがある。そうすると、このソフトウェアは、チェックにおいて有効であると認識され、躊躇なく実行される。
【0015】
このことは、鍵の安全防護対策によっては、攻撃者にとって非常に多くの時間と労力を要するものになり得る。そのため、変更されたソフトウェア又は変更されたソフトウェアコンポーネントをシステムに侵入させようとする別の種類の試みがしばしば行われるが、その場合、変更されたソフトウェア又は変更されたソフトウェアコンポーネントに対して有効な署名が生成されない。
【0016】
この目的のために、セキュアブート動作のために構成されたデバイスの場合、元のソフトウェアコンポーネントを変更されたソフトウェアコンポーネントに置き換えることを可能にし得る条件をもたらす試みが、早ければ、未だすべてのセキュリティ機能が準備できておらず、正しくパラメータ化されていないブート動作においてなされる。そうすると、これらの変更されたソフトウェアコンポーネントは、例えば、ブート動作において又はデバイスの動作の際に使用されて、攻撃者に動作パラメータ又はデータなどへのアクセスを許可することができ、これにより、攻撃の実際の目的が最終的に達成される。
【0017】
この目的で、例えば、サイドチャネル攻撃が使用される。サイドチャネル攻撃は、とりわけ、マイクロプロセッサに不正なプログラムコードを実行させるために、ソフトウェアコンポーネントの通常の実行とは明らかに無関係なシステムコンポーネント、又はソフトウェアコンポーネントの実行とは明らかに無関係なシステムパラメータを対象とする攻撃を含む。サイドチャネル攻撃は、とりわけ、マイクロプロセッサのクロック周波数の操作を含み得る。これにより、攻撃者は、アドレス、及びマイクロプロセッサと不揮発性メモリとの間にあるデータラインを、マイクロプロセッサが操作されたコード、又は実際に提供されたものとは異なる、攻撃者によって生成された不正なコードが配置されるメモリアドレスからのコードを実行するように、より容易に操作することができる立場になる。
【0018】
CMACベースのセキュアブート動作において、攻撃者は、一般に、真正なソフトウェア又は真正なソフトウェアコンポーネントのCMAC検証が正常に完了した直後、且つその実行前に、例えば、メモリのインターフェースに、又はメモリをプロセッサに接続するデータラインに直接アクセスすることによって、ソフトウェア又はソフトウェアコンポーネントの最後のブロックを変更しようと試みる。例えば、AESベースのCMACが使用される場合、攻撃者は、認証が行われた後、セキュアブート動作に対する攻撃を実行するために、一般に最後に実行されるプログラム命令を含む最後の128ビットブロックを変更する。この場合、攻撃者は、この変更によって、攻撃者によって異なるメモリ領域に提供され、且つ例えば攻撃者が作成したユーザ及びそのユーザのアクセスデータを含む、又は元のソフトウェア又はソフトウェアコンポーネントには提供されていないインターフェースを介して通信接続を構成するプログラムコードをプロセッサに実行させようと試みる。ほとんどの試みでは、この変更は、最終的にデバイスのリブートを始動する故障につながる。したがって、攻撃者は、デバイスが異なるメモリ領域にあるプログラムコードを実行して、攻撃者が所望のアクセスを得るまで、毎回のリブートの後に、ソフトウェアの最後のブロックの変更を変化させる。この攻撃は、通常の動作の際にデバイスによって提供されるアクセスを対象とするものではなく、異なる仕方で(本例では、クロック周波数を減少させ、アドレス及びデータラインを操作することによって)デバイスを操作しようとする試みがなされるため、この種類の攻撃は、サイドチャネル攻撃とも呼ばれる。
【0019】
CMACベースのセキュアブート動作に対するサイドチャネル攻撃は、とりわけ、ブート動作におけるソフトウェアの少なくとも1つのブロックの頻繁な変更、複数の連続する失敗したブート動作、リブートが本来正常に実行されたにもかかわらず、所定の最小動作時間未満の動作時間の後の短期間内での複数のリブートの試み、ブート動作における異常なリソース割り当て、及び/又はブート動作の前のクロック周波数の操作によって、それに応じて区別される。クロック周波数の操作は、主として、アドレス及びデータラインへの外部からのアクセスを簡素化する役割を果たすことが意図されている。
【0020】
このような攻撃は、一般に、オフライン、すなわちローカルで行われ、攻撃を認識し得るような攻撃されたデバイスのネットワーク接続がないため、デバイスの所有者又は製造業者は攻撃の知識を得ることができず、その結果、対策を講じることもできない。
【0021】
特に、マイクロプロセッサ制御のデバイスが限られたリソース、すなわち、小さいメモリ又は低い計算能力しか持たない場合、サイドチャネル攻撃を認識し得る複雑な保護手段は、少なくともシステム性能がもはや許容できないほど低下することを避けられず、単純に実施することはできない。
【0022】
独国特許出願公開第102019127856A1号明細書は、制御デバイスのセキュアブートのための方法を開示している。上記方法は、ハードウェアセキュリティモジュール(HSM)とホストとを含む。制御デバイスに電圧が印加された後、且つHSMが少なくとも部分的にブートされた後、HSMに割り当てられたフラグが第1の値に設定されているか第2の値に設定されているかを確認するチェックが行われる。フラグが第2の値に設定されている場合、制御デバイスに割り当てられたソフトウェアの完全性及び認証のチェックが実行される。フラグが第1の値に設定されている場合、HSMのブート動作は、ホストをブートする要求がHSMからホストに伝達されることにより完了する。完全性及び認証のチェックが肯定的である場合、フラグが第1の値に設定され、HSMのリブートが開始される。次いで、フラグが第1の値に設定されているか第2の値に設定されているかを確認するチェックが再度行われる。HSMのブート動作は、フラグが第1の値に設定されている場合、ホストをブートする要求がHSMからホストに伝達されることによって完了する。
【0023】
米国特許第9740863B2号明細書は、サイドチャネル攻撃からセキュアブート動作を保護するためのデバイス及び方法を開示している。このデバイスは、第1のブート動作のための暗号に適するハードウェアから構成される。加えて、操作されたブート動作を格納する不揮発性メモリが設けられる。比較ユニットが、操作されたブート動作の数を最大値に対して比較する。比較は、不揮発性メモリの第1のリアルタイムクロック及び第2のクロックの読み出し回数に基づき得る。この比較に基づいて、制御ロジックが第1のブート動作から第2のブート動作に制御を移す。
【0024】
独国特許出願公開第102019008059A1号明細書は、ブートローダが使用する秘密鍵が不正アクセスを受ける確率を最小化するシステム及び方法を開示している。ブートローダがデバイスにインストールされる。ブートローダは、多くの機能を実行するソフトウェアプログラムである。これらの機能は、受信したソフトウェアイメージのチェックサムの完全性をチェックすること、秘密鍵を使用して受信したソフトウェアイメージを復号すること、フラッシュメモリのデータを削除すること、フラッシュメモリに新しいソフトウェアイメージをインストールすることなどを含み得る。ブートローダは、インストールされるソフトウェアイメージのバージョンを追跡するために様々な技法を利用する。この方法はまた、ソフトウェアイメージをアップデートしようとする際に行われた不完全な試みの回数もカウントする。これらのパラメータを監視することによって、ブートローダは、悪意のある行為者がサイドチャネル攻撃を試みるタイミングを判定することができる。これに応じて、ブートローダは、新しいソフトウェアイメージのロード又は秘密鍵へのアクセスを許可しないことができる。
【0025】
独国特許出願公開第102009000874A1号明細書は、マイクロコントローラにおけるソフトウェアエラーの解析可能性を向上させるための方法及びシステムを説明している。マイクロコンピュータに割り当てられた監視モジュールが、マイクロコントローラの少なくとも1つの機能をチェックし、マイクロコントローラの誤動作が認識された場合に信号を生成する。この信号は、少なくとも間接的にマイクロコントローラのリブートを引き起こす。マイクロコントローラの動作中に実行される少なくとも1つのソフトウェア要素が、リブート中に再起動される。マイクロコントローラのエラーのない動作においては、条件情報の少なくとも1つの項目がメモリに格納され、条件情報は、少なくとも命令カウンタの条件を含み、メモリはリブート中に直ちに上書きされたり消去されたりしない。リブート中又はリブートが行われた後に、メモリに格納された条件情報の項目がアクセスされ、ソフトウェアエラーを解析するための条件情報が利用可能になる。
【発明の概要】
【発明が解決しようとする課題】
【0026】
したがって、本発明の目的は、システム性能を著しく損なうことなく、異なる種類の攻撃を認識し、それぞれに適合した対策を開始又は始動するための対応する情報を提供する方法を提案することである。
【課題を解決するための手段】
【0027】
上記の目的は、請求項1に記載の方法によって達成されている。有利な実施形態及び更なる発展形態については、それぞれの従属請求項に記載される。
【0028】
下記の本発明による、セキュアブート動作に対する攻撃の種類を認識する方法は、好ましくは、実際のブートプロセスと並行して本方法を実行する別個の監視コンポーネントにおいて実行される。或いは、本方法はまた、ファームウェアの一部として、好ましくは変更不可能であるように、又は更なるセキュリティ機能と同時である場合にのみ変更可能であるように格納され、且つ最初に開始されるブートローダの別個のプロセスとして実施され得る。
【0029】
本発明によれば、本方法は、ロードされるソフトウェア若しくはロードされるソフトウェアコンポーネントの第1の認証の前、又はソフトウェア又はソフトウェアコンポーネントの最後のブロック及び任意選択で更なるブロックに対するハッシュ値若しくはチェックサムのチェックの前に実行される第1の構成要素として、マイクロプロセッサの動作に必要な少なくとも1つのシステムコンポーネントから少なくとも1つの動作パラメータを読み出すことと、読み出された少なくとも1つの動作パラメータを、対応する格納された参照値と比較することとを含む。少なくとも1つの動作パラメータは、システム又はマイクロプロセッサ及び更なるコンポーネントの、例えば、パワーマネジメントユニットによって供給される供給電圧又はクロック発生器によって供給されるクロック信号に関係し得る。関連する参照値が、特にセキュアなメモリ領域から読み出されることが好ましい、且つ/又は暗号的にセキュアな仕方で格納され得る。比較が差異を示す場合、認識されたサイドチャネル攻撃及び失敗したブート動作を知らせる第1の信号が出力され、本方法及び更なるブート動作は終了又はターミネートされる。そうでない場合は、本方法の更なる構成要素が実行される。
【0030】
本方法は、ロードされるソフトウェア若しくはロードされるソフトウェアコンポーネントの第1の認証の前、又はソフトウェア又はソフトウェアコンポーネントの最後のブロック及び任意選択で更なるブロックに対するハッシュ値若しくはチェックサムのチェックの前に同様に実行される第2の構成要素として、未だ正常に完了していないブート動作において設定されるフラグの状態をチェックすることを追加的に含む。フラグが設定されている場合、認識された攻撃及び失敗したブート動作を知らせる第2の信号が出力され、本方法及び更なるブート動作は終了又はターミネートされる。フラグがチェック中に設定されなかった場合、その後フラグは設定され、本方法の更なる構成要素が実行される。好ましくは、フラグは、電圧供給がなくても比較的長い時間その状態を保持するように、不揮発性メモリにおいて設定される。この構成要素は、とりわけ、例えばウォッチドッグの信号に起因して、ブート動作の終了前の特定の時点でのリセットにつながることが多いフォールトインジェクション攻撃を認識するために使用され得る。ウォッチドッグは、ソフトウェア若しくはソフトウェアコンポーネントにおける許容されない変更に起因して、又は攻撃者によってもたらされたいわゆる「ハード」リセット(すなわち、デバイスが電源から切り離されることによって強制されるリセット)に起因して停止したブート動作をある時間後に認識する。フラグは削除されていないため、ブート動作が適切に終了された場合とは対照的に、その後のブート動作中に認識され得る。
【0031】
本方法は、第3の構成要素として、ロードされるソフトウェア又はロードされるソフトウェアコンポーネントの認証コードを計算することと、第1のチェックステップとして、計算された認証コードを、メモリから読み出された先行するブート動作の認証コードと比較することとを追加的に含む。比較が差異を示す場合、認識されたフォールトインジェクション攻撃及び失敗したブート動作を知らせる第3の信号が出力され、本方法及び更なるブート動作は終了又はターミネートされる。そうでない場合は、第2のチェックステップとして、以前に計算された認証コードは、メモリ、好ましくはセキュアなメモリ又はメモリ領域から読み出された参照コードと比較される。比較が差異を示す場合、認識されたフォールトインジェクション攻撃及び失敗したブート動作を知らせる第4の信号が出力され、本方法及び更なるブート動作は終了又はターミネートされる。攻撃が認識されず、且つブート動作がターミネートされずに、すべての構成要素が実行された場合、先行するブート動作の格納された認証コードは、現在のブート動作に関して計算された認証コードに置き換えられ、未だ正常に完了していないブート動作において設定されたフラグは削除され、本方法は終了される。任意選択で、セキュアブート動作が正常に実行されたことを知らせる信号が出力され得る。
【0032】
先行するブート動作の対応する認証コードとの比較のために認証コードを計算する(これは、ある状況下ではかなりの計算の複雑さを伴う)代わりに、第3の構成要素の第1のチェックステップにおいて、ソフトウェア又はソフトウェアコンポーネントの最後のブロック及び任意選択で更なるブロックに対するハッシュ値又はチェックサム、例えばCRC値が計算され、以前のブート動作において格納された同じブロックの値と比較され得る。その結果、第1のチェックステップの複雑さを低く抑えることができ、認証コードのより複雑な計算は、この第1のチェックステップで攻撃が確認されなかった場合にのみ実行すればよい。このことは、特に頻繁な攻撃のリスクがあるデバイスの場合に有利になる。
【0033】
ソフトウェア又はソフトウェアコンポーネントの一般的な故障(例えば、メモリのエラーに起因するもの)は、複数のブート動作に対して同一のハッシュ値又はチェックサムを有するが、攻撃の場合のハッシュ値又はチェックサムは、各ブート動作における一般に最後のブロックにおける変化に起因して、互いに異なる。
【0034】
マルチステージブート動作が行われる場合、すなわち、複数のプログラム又はソフトウェアコンポーネントが連続してロードされる場合、本方法は、第3の構成要素の対応する正しい複数回の実行を監視する第4の構成要素を含み得る。第4の構成要素は、現在ロードされるステージに割り当てられた値を、このステージに割り当てられた参照値と比較することを含む。現在ロードされるステージに割り当てられた値は、例えばプログラムコードを含むファイルの一部であってもよいし、ファイル名又はテーブルにおける他の特徴に基づいて位置を特定可能であってもよい。セキュアブート動作の各ステージ又はテーブルの参照値は、例えばセキュアなメモリ又はメモリ領域から読み出し可能であり得る。
【0035】
個々のステージが特定の順序で連続して処理されなければならない場合、各ステージのソフトウェア又はソフトウェアコンポーネントにカウンタ値が格納されてもよく、カウンタ値は現在のカウンタ値と比較される。あるステージのソフトウェア又はソフトウェアコンポーネントが正常に処理された後、次のステージがロードされる前にカウンタがインクリメントされて、新しいカウンタ値が次のステージにおいて比較のために利用可能であるようにされる。本方法の第4の構成要素が呼び出された場合、カウンタはまずリセットされ、それに対応して第1のステージのソフトウェア又はソフトウェアコンポーネントは値0を含む。
【0036】
比較が差異を示す場合、認識されたフォールトインジェクション攻撃及び失敗したブート動作を知らせる第5の信号が出力され、本方法及び更なるブート動作は終了又はターミネートされる。この場合、とりわけ、影響を受けたソフトウェア又はソフトウェアコンポーネントの識別を可能にするカウンタ値が、攻撃の種類を評価するために提供され得る、且つ/又はセキュリティの後の改善のために格納され得る。
【0037】
比較が差異を示さない場合、ブート動作の実行が続けられ、対応する参照値が示すブート動作の最後のステージがロードされるまで、第4の構成要素は後続のステージをチェックする。
【0038】
本方法の1つ以上の実施形態では、ブート動作の開始時及び/又は正常な完了の後に、固有の時間情報が、セキュアなメモリ若しくはメモリ領域に格納されることが好ましい、且つ/又はデバイスに格納された秘密鍵で暗号化される。新しいブート動作ごとに、好ましくはソフトウェア又はソフトウェアコンポーネントの第1の認証の前に、現在の時間情報が、格納された時間情報と比較される。時間情報の2つの項目間の差異が所定の値より小さい又は無い場合、認識された攻撃及び失敗したブート動作を知らせる第6の信号が出力される。その後、本方法は終了され、更なるブート動作はターミネートされる。
【0039】
代替的な実施形態では、連続したリブート動作の複数の時点が格納され、所定の第1の期間内のリブート動作の回数が許容される最大値と比較される。リブート動作の回数が許容される最大値を上回る場合、認識された攻撃及び失敗したブート動作を知らせる第6の信号が出力される。その後、本方法は終了され、更なるブート動作はターミネートされる。本実施形態は、特に、システムとは独立した十分に正確な時間情報がブート動作の開始時に直ちに利用可能ではなく、むしろ、例えばGPS、NTPサーバ、DCF-77無線信号などの外部時間信号から、システムの起動が行われた後にのみ提供される場合に適する。これらの実施形態は、多数の攻撃が失敗してターミネートされ、短期間で繰り返され、この場合、正常に完了したブート動作が発生しないか、正常なブート動作の後の実際の動作期間が、以前に定義された「通常の」最低動作期間よりも短いかのいずれかであるという洞察を利用したものである。
【0040】
上記の2つの実施形態は、特に、プログラム実行のリソース集約的な監視を一般に必要とするフォールトインジェクション攻撃を認識するための信号を生成するのによく適している。しかしながら、フォールトインジェクション攻撃はまた、一連の特定のイベント又は特徴、とりわけ、クロック周波数の操作、コールドブート、すなわち動作がない比較的長い時間の後のブート、若しくはいわゆる「ハード」リセット後の第1のデバイスの頻繁なリブート動作、又は実際のブート動作における同じソフトウェア部分の繰り返し実行及び検証チェーン全体の中断(ここで、ブート動作の特定のステージのみが繰り返し実行及び検証され、検証に失敗したときにターミネートされる)によっても区別される。ハードリセットは、例えば、未だ正常に完了していないブート動作におけるフラグを使用して、認識され得る。更なるフラグが、適切に実行されたブート動作の後に実行されるソフトウェアによって、上記ソフトウェアがデバイスのリブートを始動する場合に2つのフラグの状態に基づいてリブートの理由を区別し得るように設定され得る。この場合、デバイスが適切にシャットダウンされるか休止状態にされると、例えば、以前にはフラグが設定されていても、フラグが削除され得る。
【0041】
固有の時間情報がブート動作の開始時及び/又は正常な完了の後に格納される、本方法の1つ以上の実施形態では、ブート動作の開始及び/又は正常な完了は、例えば、パワーマネジメントICによって提供される対応するデータによって、開始及び/又は正常な完了に典型的な電力消費量に基づいて確認される。電力消費量は、典型的には、連続するブート動作の間で最低に至り、その後再び急速に上昇する。
【0042】
本方法の1つ以上の実施形態では、ブート動作の開始は、マイクロプロセッサによって出力されたリセット信号に基づいて判定される。このようなリセット信号は、同様に第1のデバイスの動作の間だけ動作状態にされる必要がある第1のデバイスの更なるコンポーネントをブートするために使用されることが多い。
【0043】
本方法の1つ以上の実施形態では、第1のデバイスの少なくとも1つのシステムリソースの割り当てがブート動作において監視され、例えば、プロセッサキャッシュが空にされ、同じプロセスに再びゼロから割り当てられる頻度、及び/又はこのプロセスのためにゼロから書き込まれる頻度が監視される。所定の第2の期間内での同じプロセスへの同じシステムリソースの割り当ての数が、このシステムリソースの所定の最大値と比較される。同じプロセスへの同じシステムリソースの割り当ての数が所定の最大値を上回ると、認識された攻撃及び失敗したブート動作を知らせる第7の信号が出力される。加えて、本方法は終了され、更なるブート動作はターミネートされる。この場合、「プロセス」という用語は、任意の所望のソフトウェア又はソフトウェアコンポーネント、スレッドなどを示し得る。本実施形態は、特に、好ましくは、マルチプロセッサシステム又はマルチコアプロセッサを有するシステムにおいて使用され得る。ここで、本方法は、プロセッサ又はプロセッサコアのうちの1つにおいて排他的且つセキュアに実行されるが、それにもかかわらず、この場合、プロセッサ内部システムリソースへのアクセスをより容易に検出し得る。
【0044】
本発明の更なる態様によれば、デバイスが、1つ以上のプロセッサと、更にそれに割り当てられた揮発性メモリ及び不揮発性メモリとを備え、これらは1つ以上のデータライン又はデータバスを介して互いに通信可能に接続される。コンピュータプログラム命令は、不揮発性メモリに格納され、コンピュータプログラム命令が少なくとも1つのプロセッサによって実行されると、本発明による方法の1つ以上の実施形態を実行するようにデバイスを構成する。
【0045】
本発明の更なる態様によるコンピュータプログラム製品が、デバイスのマイクロプロセッサによって実行されると、デバイスのマイクロプロセッサに上記の方法の1つ以上の実施形態及び更なる発展形態を実行させる命令を含む。
【0046】
コンピュータプログラム製品は、コンピュータ可読媒体又はデータキャリアに格納され得る。媒体又はデータキャリアは、例えば、ハードディスク、CD、DVD、又はフラッシュメモリなどとしての物理的な実施形態であり得るが、媒体又はデータキャリアはまた、適切な受信機によりコンピュータが受信することができ、且つコンピュータのメモリに格納され得る、変調された電気信号、電磁信号又は光信号も含み得る。
【0047】
本発明による方法は、従来の暗号方式と比較してシステムリソース及びシステム性能への負荷を抑えながら、セキュアブート動作に対するサイドチャネル攻撃又はフォールトインジェクション攻撃を認識することを可能にする。特に、特定の最大時間内に完了されなければならないソフトウェア又はソフトウェアコンポーネントのタイムクリティカルなブート動作において、例えば、少なくとも部分的に並列に稼働する複数のプロセスの、システムの、又は互いに通信可能に接続されている複数のデバイスのシステムコンテキストにおいて、ブート動作が認識し得るほどに遅延することなく、ブート動作においてほぼ同時に攻撃を認識することができる可能性があることは有利である。
【0048】
したがって、本発明による方法は、有利なことに、例えば、モノのインターネット(IoT)又は分散型センサインフラストラクチャに関係するデバイスの場合など、セキュアブート動作に対するサイドチャネル攻撃又はフォールトインジェクション攻撃のリソースを節約した認識が必要な場合にはいつでも使用され得る。
【0049】
好ましくは、本方法を実施するソフトウェア又はソフトウェアコンポーネントは、セキュリティ機能ができるだけ早く準備できるように、早く、且つ他のソフトウェア又は他のソフトウェアコンポーネントよりも前に、理想的にはブートローダの一部としてロードされる。代替的又は追加的に、本方法の少なくとも個々の部分が、専用のプログラム固定セキュリティプロセッサによって実行され得る。
【0050】
以下、添付の図面を参照しながら、本発明をより詳細に説明する。
【図面の簡単な説明】
【0051】
【
図1】AES-CMACベースのセキュアブート動作に対するサイドチャネル攻撃を認識する例示的な方法のフロー図を示す。
【
図2】本発明による方法の1つ以上の態様を実行するように構成されたデバイスの例示的なブロック図を示す。
【発明を実施するための形態】
【0052】
図面において、同一の又は類似の要素は、同じ参照符号によって参照され得る。
【0053】
図1は、マイクロプロセッサ制御のデバイス200のAES-CMACベースのセキュアブート動作に対するサイドチャネル攻撃を認識する例示的な方法100のフロー図を示す。ここでの目的は、ブート動作の最後の128ビットブロックの操作を認識することである。本例では、ソフトウェアの誤検証のたびにリセットが実行されると仮定する。真正性及び完全性をチェックする場合、AES-CMAC方式が使用され、ブート動作の各ステージにおいて同じ鍵が使用される。まず、第1の構成要素Iにおいて、サイドチャネル攻撃の存在がチェックされる。この目的のために、ステップ101において、デバイス200のうち、マイクロプロセッサ202の動作に必要な少なくとも1つのシステムコンポーネント208(例えば、クロック発生ユニット)の少なくとも1つの現在設定されている動作パラメータが読み出され、ステップ102において、セキュアなメモリ領域206aから読み出された対応する参照値と比較される。比較によって、現在設定されている動作パラメータ(複数可)が参照値(複数可)に対応しないことが判明した場合(ステップ102の「N」分岐)、本方法は、ステップ130に分岐し、ステップ130において、サイドチャネル攻撃が認識されたこと及びセキュアブート動作が失敗したことを知らせる信号が出力される。信号に応じて、その後、対応する対策を講じることができる。
【0054】
比較によって、現在設定されている動作パラメータが参照値に対応することが判明した場合(ステップ102の「Y」分岐)、本方法は、第2の構成要素IIのステップ103に分岐する。ステップ103は、フラグ「未だ正常に完了していないブート動作」が削除されているか否かをチェックすることを含む。フラグが設定されている、すなわち削除されていない場合(ステップ103の「N」分岐)、本方法は、ステップ130に分岐し、ステップ130において、以前のブート動作が正しく終了しなかったこと、攻撃が存在すること、及びセキュアブート動作が失敗したことを知らせる信号が出力される。信号に応じて、その後、対応する対策を講じることができる。
【0055】
フラグが削除されている、すなわち設定されていない場合(ステップ103の「Y」分岐)、フラグはステップ104において設定される。これにより、セキュアブート動作のために提供されたソフトウェア又は対応するソフトウェアコンポーネントをロードし、更なるセキュリティチェックを行うことができる。
【0056】
第4の構成要素IVのステップ105において、現在のブート動作の正常に実行されたステージのカウンタがリセットされ、ステップ106において、ブート動作の正常に実行されたステージのカウンタが現在のステージの参照値に対応するか否かを確認するためのチェックが行われる。セキュアブート動作の各ステージの参照値は、例えばセキュアなメモリ領域に格納され得る。この場合、ステージのソフトウェア又はソフトウェアコンポーネントは、例えばファイル名又は他の特徴に基づいて識別され得、対応して割り当てられた参照値と比較され得る。
【0057】
個々のステージが特定の順序で連続して処理されなければならない場合、例えば、各ステージのソフトウェア又はソフトウェアコンポーネントにカウンタ値が格納されてもよく、カウンタ値は現在のカウンタ値と比較される。ステップ105でカウンタがリセットされたため、これに応じて第1のステージのソフトウェア又はソフトウェアコンポーネントは値0を含む。ステージの各ソフトウェア又はソフトウェアコンポーネントは、正常な処理の後にカウンタをインクリメントして、新しいカウンタ値が次のステージにおいて比較のために利用可能であるようにされる。
【0058】
カウンタをインクリメントする代わりに、正常な処理の後に任意の値をメモリに書き込むことも可能であり、その値は各ステージによって読み出され、その場合、先行するステージの対応する値が各ソフトウェア又はソフトウェアコンポーネントにプログラムされなければならない。このことは、特に、すべてのステージが、その値を知っている製造業者から提供されている場合に可能である。このセキュリティ機能は、セキュアブート動作のステージがスキップ又は省略されたか否かを認識し得る。
【0059】
第3の構成要素IIIのステップ107は、デバイスにおけるそれぞれの実装形態にしたがって、ロードされるソフトウェア又はソフトウェアコンポーネントの認証を実行する。例えば、セキュアなメモリ領域に格納された秘密鍵に基づいて、ロードされるソフトウェア又はソフトウェアコンポーネントのCMACが計算され、格納され、ステップ108において、先行するセキュアブート動作の認証の同様に格納された結果と比較される。一番初めのブート動作では、任意選択でセキュアな環境において、先行するセキュアブート動作の正しい値がメモリに書き込まれ得る、又は、適用できないエラーメッセージ及びブート動作のターミネーションがなんらかの他の仕方で抑制され得る。比較によって、2つの直接連続する認証動作の結果が互いに異なることが判明した場合(ステップ108の「N」分岐)、典型的には、各ブート動作において変更されるソフトウェア又はソフトウェアコンポーネントのブロックに関連するフォールトインジェクション攻撃が存在し、したがって、各ブート動作において異なるMACが計算されることと、セキュアブート動作が失敗したこととが想定され得る。これに応じて本方法はステップ130に分岐し、ステップ130において、フォールトインジェクション攻撃が存在すること及びセキュアブート動作が失敗したことを知らせる信号が出力される。
【0060】
比較によって、直接連続する2つの認証動作の結果が同一であることが判明した場合(ステップ108の「Y」分岐)、ステップ109において、認証の結果は、このソフトウェア又はソフトウェアコンポーネントの認証のために、セキュアなメモリ領域から読み出された参照値と比較される。比較によって、認証の結果が、認証ための参照値にも対応することが判明した場合(ステップ109の「Y」分岐)、ステップ110において、ステップ107からの認証の結果が、先行するセキュアブート動作の認証の新しい結果として格納される。その過程で、以前に格納された結果は上書きされる。その都度、最新の真正性チェックの結果を格納することにより、ステップ108においてフォールトインジェクション攻撃を迅速に認識することが可能である。連続する2つのブート動作の値が同一であるにもかかわらず、参照値に対応しない場合、例えば、メモリエラーが推定され得る。ステップ109とステップ110との間で格納される値の変化も、このようにして認識される。続くステップ111において、ブート動作の正常に実行されたステージのカウンタがインクリメントされ、ステップ112において、インクリメントされたカウンタの値が、ブート動作の最後のステージの格納された参照値に対応するか否かを確認するためのチェックが行われる。肯定の場合(ステップ112の「Y」分岐)、ステップ113において、フラグ「正常に完了していないブート動作」が削除され、セキュアブート動作が正常に終了される。
【0061】
ステップ109における比較によって、認証の結果が認証のための参照値に対応しないことが判明した場合(ステップ109の「N」分岐)、ステップ120において、フラグ「正常に完了していないブート動作」が削除され、信号が出力され、信号を応じて、当業者に知られている、セキュアブートをバイパスする攻撃のための対策が開始され得る。
【0062】
図2は、本発明による方法100の1つ以上の態様を実行するように構成されたデバイス200の例示的なブロック図を示す。デバイス200は、マイクロプロセッサ202に加えて、揮発性メモリ204及び不揮発性メモリ206と、更にマイクロプロセッサ202の動作に必要な少なくとも1つの更なるシステムコンポーネント(例えば、クロック発生器及び/又はパワーマネジメントIC)とを備える。デバイス200の要素は、1つ以上のデータライン又はデータバス210を介して互いに通信可能に接続される。不揮発性メモリ206は、マイクロプロセッサ202によって実行されると、本発明による方法の1つ以上の実施形態を実行するようにデバイスを構成するコンピュータプログラム命令を含む。
【符号の説明】
【0063】
100 方法
101 クロック発生ユニットの動作パラメータを読み出す
102 動作パラメータを参照値と比較する
103 フラグが設定されているか?
104 フラグを設定する
105 ステージのカウンタをリセットする
106 カウンタの読み値がブート動作の現在のステージに一致するか?
107 認証コード/ハッシュ値/チェックサムを計算する
108 認証コード/ハッシュ値/チェックサムが先行するブート動作に一致するか?
109 認証コード/ハッシュ値/チェックサムを対応する参照値と比較する
110 認証コード/ハッシュ値/チェックサムを格納する
111 インクリメントカウンタ
112 最後のステージに到達したか?
113 フラグを削除する
120 セキュアブートをバイパスする攻撃が認識され、ブート動作が失敗する
130 サイドチャネル攻撃が認識され、ブート動作が失敗する
200 デバイス
202 マイクロプロセッサ
204 揮発性メモリ
206 不揮発性メモリ
206a セキュアなメモリ領域
208 更なるシステムコンポーネント
210 パワーライン又はデータライン/バス
【手続補正書】
【提出日】2024-05-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
マイクロプロセッサ制御のデバイス(200)のセキュアブート動作に対する攻撃の種類を認識する方法(100)であって、
マイクロプロセッサ(202)の動作に必要な少なくとも1つのシステムコンポーネント(208)から、少なくとも1つの動作パラメータを読み出すこと(101)、及び読み出された前記少なくとも1つの動作パラメータを、対応する格納された参照値と比較すること(102)であって、前記比較が差異を示す場合、認識されたサイドチャネル攻撃及び失敗したブート動作を知らせる第1の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、ことと、
未だ正常に完了していないブート動作において設定されたフラグの状態をチェックすること(103)であって、前記フラグが設定されている場合、認識されたフォールトインジェクション攻撃及び失敗したブート動作を知らせる第2の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされ、前記フラグが設定されていない場合、前記フラグが前記チェックの後に設定される、ことと、
ソフトウェア若しくはソフトウェアコンポーネントの少なくとも1つのブロックに対するハッシュ値若しくはチェックサムを計算すること、及び先行するブート動作における前記ソフトウェア若しくはソフトウェアコンポーネントの同じ前記少なくとも1つのブロックに対する格納されたハッシュ値若しくはチェックサムと比較すること、又はロードされるソフトウェア若しくはロードされるソフトウェアコンポーネントの認証コードを計算すること(107)、及び前記計算された認証コードを、メモリから読み出された先行するブート動作の認証コードと比較すること(108)であって、前記比較が差異を示す場合、認識された攻撃及び失敗したブート動作を知らせる第3の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、ことと、
既に以前に行われたのではない場合、ロードされるソフトウェア又はロードされるソフトウェアコンポーネントの認証コードを計算すること(107)、及び前記計算された認証コードを、メモリから読み出された参照コードと比較すること(109)であって、前記比較が差異を示す場合、認識されたフォールトインジェクション攻撃及び失敗したブート動作を知らせる第4の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、ことと、
前記メモリから読み出された前記先行するブート動作の前記認証コードを、現在のブート動作に関して計算された前記認証コードに置き換えること(110)、及び未だ正常に完了していないブート動作において設定された前記フラグを削除すること(113)と
を含む、方法(100)。
【請求項2】
前記ブート動作がマルチステージ設計のものである場合、
マルチステージブート動作の現在のステージを、このステージに割り当てられた参照値と比較すること(106)であって、前記比較が差異を示す場合、認識されたフォールトインジェクション攻撃及び失敗したブート動作を知らせる第5の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされ、そうでない場合は、前記ブート動作の実行及び後続のステージのロードが、前記対応する参照値によって示される前記ブート動作の最後のステージがロードされるまで続けられる、こと
を追加的に含む、請求項1に記載の方法(100)。
【請求項3】
前記ブート動作の開始時及び/又は正常な完了の後に、固有の時間情報を格納すること、
新しいブート動作ごとに、現在の時間情報を、以前のブート動作において格納された時間情報と比較することであって、前記比較が所定の値より小さい差異を示す場合、認識された攻撃及び失敗したブート動作を知らせる第6の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、こと
を追加的に含む、請求項
1に記載の方法(100)。
【請求項4】
前記ブート動作の開始時及び/又は正常な完了の後に、固有の時間情報を格納すること、
新しいブート動作ごとに、所定の時間内の先行するリブート動作の回数を、許容される最大値と比較することであって、リブート動作の前記回数が前記許容される最大値を上回る場合、認識された攻撃及び失敗したブート動作を知らせる第6の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、こと
を追加的に含む、請求項
1に記載の方法(100)。
【請求項5】
ブート動作の前記開始及び/又は前記正常な完了が、前記開始及び/又は前記正常な完了に典型的な電力消費量に基づいて確認される、請求項
3に記載の方法。
【請求項6】
ブート動作の前記開始が、マイクロプロセッサによって出力されたリセット信号に基づいて判定される、請求項
3に記載の方法。
【請求項7】
前記ブート動作における前記第1のデバイス(10)の少なくとも1つのシステムリソースの割り当てを監視することと、
所定の第2の期間内における同じプロセスへの同じシステムリソースの割り当ての数を、このシステムリソースに関する所定の最大値と比較することであって、前記同じプロセスへの前記同じシステムリソースの割り当ての前記数が前記所定の最大値を上回ると、認識された攻撃及び失敗したブート動作を知らせる第7の信号が出力され、前記方法が終了され、更なるブート動作がターミネートされる、ことと
を追加的に含む、請求項
1に記載の方法。
【請求項8】
1つ以上のデータライン又は1つ以上のデータバス(210)を介して互いに通信可能に接続された、少なくとも1つのプロセッサ(202)と、揮発性メモリ(204)及び不揮発性メモリ(206)と、前記マイクロプロセッサの動作に必要な少なくとも1つの更なるシステムコンポーネント(208)とを備える、デバイス(200)であって、コンピュータプログラム命令が、前記不揮発性メモリ(206)に取得可能に格納され、前記コンピュータプログラム命令が前記少なくとも1つのプロセッサ(202)によって実行されると、請求項1~
7のいずれか一項に記載の方法(100)を実行するように前記デバイス(200)を構成する、デバイス(200)。
【請求項9】
デバイス(200)のマイクロプロセッサ(202)によってプログラムが実行されると、請求項1~7のいずれか一項に記載の方法(100)を前記デバイス(200)の前記マイクロプロセッサ(202)に実行させる命令を含む、コンピュータプログラム製品。
【請求項10】
請求項9に記載のコンピュータプログラム製品が格納されるコンピュータ可読媒体。
【国際調査報告】