JP2021057043A - トラストアンカコンピューティング装置を備える処理システムおよび対応する方法 - Google Patents

トラストアンカコンピューティング装置を備える処理システムおよび対応する方法 Download PDF

Info

Publication number
JP2021057043A
JP2021057043A JP2020161525A JP2020161525A JP2021057043A JP 2021057043 A JP2021057043 A JP 2021057043A JP 2020161525 A JP2020161525 A JP 2020161525A JP 2020161525 A JP2020161525 A JP 2020161525A JP 2021057043 A JP2021057043 A JP 2021057043A
Authority
JP
Japan
Prior art keywords
time
checking
validity
secure
run
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
JP2020161525A
Other languages
English (en)
Inventor
アレッサンドロ タルリ
Talluri Alessandro
アレッサンドロ タルリ
アルドゥイーノ ルイージ チケッティ
Luisi Chiketthi Arduino
アルドゥイーノ ルイージ チケッティ
クリスチャン ロザディニ
Christian Rozadini
クリスチャン ロザディニ
ウォルター ネスシー
Nesci Walter
ウォルター ネスシー
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.)
Marelli Europe SpA
Original Assignee
Marelli Europe SpA
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 Marelli Europe SpA filed Critical Marelli Europe SpA
Publication of JP2021057043A publication Critical patent/JP2021057043A/ja
Pending legal-status Critical Current

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/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/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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

【課題】トラストアンカコンピューティング装置を備える処理システムを提供する。【解決手段】実行時真正性チェック500において、処理システムは、少なくとも実行のためにハードウェアトラストアンカのプログラムメモリ内に存在する署名済みソフトウェアブロックSSBjならびに対応するヘッダ及びデータブロックを識別する505と、各SSBjについて、SSBjに関連付けられた証明書の有効性をチェックする第1の段階510。SBBjのヘッダの有効性をチェックする第2の段階520、SSBjのデータのハッシュの有効性をチェックする第3の段階530を実行する。有効性チェックのチェックする段階510、520、530のうちの1つによって異常が検出された場合、検出された異常に関するセキュアログSLを書き込む560。【選択図】図4

Description

本説明は、ホスト処理ユニットおよびホストメモリ手段を含む少なくとも1つのホストコンピューティングモジュールとハードウェアトラストアンカとを備え、信頼できる操作を実行するように構成された処理システムに関する。少なくとも1つのホストモジュールとハードウェアトラストアンカとを備える処理システムは、特に上記少なくとも1つのホストモジュールが車両内で動作するECUである場合、システムオンチップの一部であることが好ましい。
ハードウェアトラストアンカ(HTA)は、トラストチェーンを開始すると共に、システムに不可欠な機能と、スタートアッププロセスおよび不正操作が検出された場合のプロセスのシャットダウンの予防的なモニタリングを含むセキュリティ機能との両方を実行する、ローカルな隔離されたコンピューティングデバイスである。
一般的な自動車のシナリオにおいて、電子制御ユニット(ECU)のような処理システムは、車両機能のためのアプリケーション処理ユニット、すなわち、アプリケーションコアと、セキュリティサポートのためのHTAとから構成された、1つまたは複数のSoC(システムオンチップ)に基づくものである。したがって、ECUを外部からの攻撃(車両機能の認証されていないアクティベーション、慎重に扱うべきキー材料の読み出し、ソフトウェアの操作など)に対してハードニングするために、ハードウェアトラストアンカ技術(HTA)が使用されている。
HTAは、HTA側の基本的なセキュリティを高めるために使用されるメカニズムのセットが埋め込まれ、したがってセキュリティハードニングリアルタイムオペレーティングシステムと呼ばれる、リアルタイムオペレーティングシステム(RTOS)を使用する処理ユニットを含んでよい。コンピューティングにおいて、ハードニングとは通常、表層の脆弱性を低めることによってシステムのセキュリティを確保するプロセスである。
したがって、これらの保護技術は、より効果的に攻撃を検出/攻撃に反応し、それらの攻撃のエクスプロイトを実行する能力を制限するように構成されている。
HTAは、
・キー管理、
・証明書管理、
・暗号化演算、
・ソフトウェア保護(セキュアブートおよびセキュア更新)、
・慎重に扱うべきデータの読み取りおよび書き込みのためのアクセスメカニズムおよびデータの可視性を低めるための暗号化技術を用いたデータ保護(セキュアストレージおよびセキュア通信)、
などの、機密かつ慎重に扱うべき情報を伴うセキュリティ操作のために使用される。
したがって、その結果、セキュリティハードニングリアルタイムオペレーティングシステムは、
・複数のセキュア操作を同時に実行し、
・いくつかの所定のロジックおよびスケジューリングポリシに従って、様々なエンティティ(プロセスまたはタスク)の間で切り替え、
・機密性(情報の隔離)を保証および維持し、
・一般機能が実行されることおよびその実行時間が分かることを保証する、
ことが可能であるべきである。
HTAのために使用されるセキュリティハードニングリアルタイムオペレーティングシステムは、静的で変更不可能な動作環境であってよい。これはつまり、アプリケーションの実行中は、アプリケーションのオブジェクト、タスク、イベント、リソースを作成または削除できないことを意味する。セキュアシステムにおいては、データおよび他のメモリセクションの正確性(完全性)が基本的な要件であるべきである。
今日、ほとんどの自動車ECUは、アプリケーションソフトウェアまたはデータをいつでも更新可能であるように、ソフトウェアのダウンロードをサポートしている。OEM要件に応じて、新しいソフトウェアが有効であることを保証するためにソフトウェアのダウンロード中に、ソフトウェアが依然として有効であることを保証するためにECUの電源オン中に、またはこれら2つの組み合わせで、いくつかのチェックが実行される。有効性情報をハンドリングするための種々の方法が存在する。
例えば、通常安全性の理由で要求される、完全性チェックが行われてよい。完全性チェックは、不揮発性ソフトウェアデータにわたって計算され、基準値と比較される、チェックサム/CRC(巡回冗長検査)に基づくものである。チェックサムが正しければ、全ソフトウェアブロックの完全性が想定される。ところで、CRCのようなチェックサムアルゴリズムは、チェックサムの計算時に秘密パラメータが関与しないので、真正性チェックを提供するものではない。
そのような真正性チェックは、その代わりに、(例えば、セキュリティ関連ECUにおいてまたは調整保護として)正当なソースからのソフトウェアまたはデータのみがECUにおいて使用されることを要求するいくつかのECUによって要求される。認証は、不揮発性ソフトウェアデータにわたる暗号署名の計算によって通常実行される。署名は、OEMまたはECUいずれかの供給業者によって供給され得る。
署名計算アルゴリズムは、ダウンロードされたソフトウェアの完全性および真正性を確実にするために、モジュール122a〜122eにおいて実行されるもののようなハードウェアベースの、またはソフトウェアベースの、ハッシュ計算と暗号化ルーチンとを組み合わせたものである。上記ハードウェアトラストアンカ(HTA)がモジュール122a〜122bを含まないか、またはそれらのうちのサブセットのみを含む場合、コンピュテーションはソフトウェアにおいて実行され、暗号化演算を実行するために特別なハードウェアは必要とされない。上記の方法は、実行時に有効性情報をチェックするためにも使用することができる。
現在、単に安全性要件を満たすために、完全性チェックのみが実行時に使用されている。しかし依然として、このような方法では、ECU自体の通常の動作中に元のECUに対する操作を検出することはできない。
[目的および概要]
1つまたは複数の実施形態の目的は、先行技術により達成可能な解決策に内在する制限を解消することである。
1つまたは複数の実施形態によれば、この目的は、請求項1に規定された特徴を有するシステムによって達成される。1つまたは複数の実施形態は、対応するシステムに関するものであってよい。
特許請求の範囲は、様々な実施形態に関連して本明細書に提供された技術的教示の必須の部分をなす。
本明細書に記載される解決策によれば、解決策は、ホスト処理ユニットおよびホストメモリ手段を含む少なくとも1つのホストコンピューティングモジュールと、ハードウェアトラストアンカとを備える、信頼できる操作を実行するように構成された処理システムであって、上記ハードウェアトラストアンカは、それぞれのセキュア処理ユニットと、暗号化演算に専用のハードウェア処理モジュールと、セキュアストレージ手段とを備え、上記ハードウェアトラストアンカは、リアルタイムセキュアオペレーティングシステムを格納し実行するように構成され、上記リアルタイムセキュアオペレーティングシステムは、上記処理システムにおいて使用されているソフトウェア上で有効性チェックを実行するように構成され、上記リアルタイムセキュアオペレーティングシステムは、実行時にソフトウェアコードの完全性を制御する実行時真正性チェックを実行するように構成され、上記実行時真正性チェックは、少なくとも実行のために少なくとも上記ハードウェアトラストアンカのプログラムメモリ内に存在する、また最終的には上記ホストコンピューティングモジュールのプログラムメモリ内にも存在する、署名済みソフトウェアブロックならびに対応するヘッダおよびデータブロックを識別する段階と、各署名済みソフトウェアブロックについて、上記署名済みソフトウェアブロックに関連付けられた証明書の有効性をチェックする第1の段階、上記署名済みソフトウェアブロックのヘッダの有効性をチェックする第2の段階、上記署名済みソフトウェアブロックのデータのハッシュの有効性をチェックする第3の段階、を実行する段階と、上記有効性チェックのチェックする段階のうちの1つによって異常が検出された場合、上記検出された異常に関するセキュアログ情報を書き込む段階と、を含み、上記リアルタイムセキュアオペレーティングシステムは、他のホストコンピューティングモジュールまたはハードウェアトラストアンカのサービスに対して最優先されるタスクにおいて上記実行時真正性チェックを実行するように構成される、システムに関する。
また、本明細書に記載される解決策は、上記処理システムにおいて使用されているソフトウェア上で有効性チェックを実行するリアルタイムセキュアオペレーティングシステムを格納し実行することを含む、上記処理システムにおいて信頼できる操作を実行する対応する方法であって、上記方法は、実行時にソフトウェアコードの完全性を制御する実行時真正性チェックを実行する段階を含み、上記実行時真正性チェックは、実行のために上記ハードウェアトラストアンカのプログラムメモリ内に存在する、また最終的にはホストコンピューティングモジュールのプログラムメモリ内にも存在する、署名済みソフトウェアブロックならびに対応するヘッダおよびデータブロックを識別する段階と、各署名済みソフトウェアブロックについて、上記署名済みソフトウェアブロックに関連付けられた証明書の有効性をチェックする第1の段階、上記署名済みソフトウェアブロックのヘッダの有効性をチェックする第2の段階、上記署名済みソフトウェアブロックのデータのハッシュの有効性をチェックする第3の段階、を実行する段階と、上記有効性チェックのチェックする段階のうちの1つによって異常が検出された場合、上記検出された異常に関するセキュアログ情報を書き込む段階と、を含み、上記リアルタイムセキュアオペレーティングシステムは、他のホストコンピューティングモジュールまたはハードウェアトラストアンカのサービスに対して最優先されるタスクにおいて上記実行時真正性チェックを実行するように構成される、方法に関する。
以下、添付図面を参照しながら単に非限定的な例によって実施形態を説明する。
本明細書に開示された処理システムの一実施形態を概略的に示す図である。 本明細書に開示された処理システムによって使用されるメモリのアドレス空間を概略的に示す図である。 本明細書に開示された処理システムによって使用されるメモリのメモリエリアを概略的に示す図である。 本明細書に開示された処理システムによって実装される真正性チェック手順のフロー図である。 本明細書に開示された処理システムの複数の操作フェーズを表すタイミング図である。 本明細書に開示された処理システムのメモリのスタックのブロック図である。 本明細書に開示された処理システムによって実装されるスタックオーバーフロー制御手順のフロー図である。 本明細書に開示された処理システムによって実装される検出手順のフロー図である。
以下の記載は、実施形態の深い理解をもたらすことを目的とした様々な具体的な詳細を説明するものである。実施形態は、具体的な詳細のうちの1つまたは複数を伴わずに実装されてもよいし、または他の方法、構成要素、材料などと共に実装されてもよい。他の場合において、既知の構造、材料または操作は、実施形態の様々な側面を不明瞭にしないように、詳細には図示または説明されない。
本説明の枠組みにおいて、「一実施形態」または「1つの実施形態」への言及は、その実施形態に関連して記載された特定の形態、構造または特性が、少なくとも1つの実施形態に含まれることを示すことを意図している。同様に、本説明の様々な箇所に存在し得る「一実施形態において」または「1つの実施形態において」などの語句は、必ずしも1つの同じ実施形態を指すものではない。さらに、特定の形態、構造または特性は、1つまたは複数の実施形態において適切に組み合せることができる。
本明細書において使用される参照符号は、単に便宜上のものとして意図されており、したがって、保護範囲または実施形態の範囲を画定するものではない。
図1には、例えば、車両のエンジンの制御系統または他の機能部における、例えば、自動車用途のSoC上のECUに対応することができる処理システム10が示されており、処理システム10は、アプリケーション処理ユニット、すなわちアプリケーションコア11と、ハードウェアトラストアンカ(HTA)12とを備える。アプリケーションコア11は、不揮発性メモリ111と、RAMメモリ112と、例えば、車両バスと通信するためのバスインターフェース114と、アプリケーションCPU113とを備える。HTA12は、セキュア不揮発性メモリ121bおよびセキュアRAMメモリ121aを含むセキュアストレージ121を備える。HTA12は、セキュア処理ユニット123と、HTAインターフェースモジュール124と、暗号化ハードウェアアクセラレーションモジュール122とをさらに備え、暗号化ハードウェアアクセラレーションモジュール122は、ソフトウェアデータのハッシュ値をコンピュートするためのハッシュエンジン122aと、対称暗号アルゴリズムを実行するための対称暗号エンジン122bおよび非対称暗号アルゴリズムを実行するための非対称暗号エンジン122cと、TRNGおよび/またはPRNGを含んでよいランダム生成器モジュール122dと、カウンタモジュール122eとを含んでよい。
セキュリティハードニングリアルタイムオペレーティングシステムソフトウェアは、それ自体はソフトウェアであり、メモリすなわち下記のセクションにおいて図2に示されるようなセキュアストレージ121内に、通常は分割されている。図2は、HOSと共にまとめて示されているオペレーティングシステムが存在する、HTA12のメモリ121のアドレス空間を概略的に示している。
−テキストまたはソースコードTXS:プログラムの実行可能コードを格納するメモリエリア。メモリのこのブロックは、通常は読み取り専用である。
−データまたはデータフラッシュDT:プログラマによって初期化された静的/グローバル変数を格納するメモリエリア。これは、さらには、OSアプリケーションがプライベートデータを有することができるメモリのセクションである。
BSS(Block Started by Symbol)メモリBS:初期化されていない静的/グローバル変数を格納するメモリエリア。このセグメントは、オペレーティングシステムによってゼロで満たされ、したがって、全ての初期化されていない変数がゼロで初期化される。ヒープメモリHP:ヒープは、ダイナミックメモリアロケーションのための空間を提供するのに使用される。
スタックSS:これは、returnなどの関数呼び出しに関連する機能部、レジスタおよびデータ内で定義されたローカル変数が、タスク実行中にプッシュされる揮発性メモリ(RAM)121aのセクションである。各タスクは、固有のスタックエリアを有することができる。
テキストメモリエリアTXSおよびデータメモリエリアDTは、不揮発性メモリ121bであり、それに対して、BBSメモリエリアBS、ヒープメモリエリアHP、およびスタックSSは、揮発性メモリ121aである。
本明細書に記載されるHTAのためのセキュリティハードニングリアルタイムオペレーティングシステムは、
−真正性の特性が暗号を介してチェックされる、不揮発性メモリのための実行時真正性チェック手順500、
−使用されたスタックSSの量が静的境界に対してチェックされる、スタックSS(揮発性メモリ121a)のためのスタックオーバーフロー検出手順600、
を含む様々な特定の手順を通して、不揮発性メモリおよび揮発性メモリをチェックするように構成される。
実行時真正性チェック手順500は、実行時に制御下のコードの完全性を維持することからなる、真正性方法に基づくハードニング技法である。これは、スタートアップを含む通常のシステム動作と並行に行われ、真正性がトラストルートから開始して検証され、他の時には、外部イベント(コードの一部の更新など)に関係し得る頻度で、または所定の定期的メカニズムで、またはHTAの非アクティブ時間を利用して、実行することができる。
このようにして、ハードニングリアルタイムオペレーティングシステムは、侵入されたシステムが、それ自体のメモリ内容に不正を行うのを防止する。
このハードニング技法は、図1に示されるように、HTAが、ECUのフラッシュメモリへのフルアクセスを有する1つの追加のコアとして得られていることを利用する。結果として、単に上記ハードウェアトラストアンカ不揮発性メモリをチェックするために開発された実行時真正性チェック手順500は、ホストコア上で実行されている安全性に不可欠なアプリケーションにいかなる影響または遅延も生じさせることなく、フラッシュメモリ全体のコード完全性を実証するように構成することができる。
この理由で、また説明を一般化するために、本明細書では、実行時真正性チェック手順500は、フラッシュメモリ全体をチェックするように構成されたものと想定されている。
実行時真正性チェック手順500は、署名済みSWブロックに基づく検証メカニズムと、証明書とを使用する。
ホスト11の不揮発性メモリ111およびHTA12の不揮発性メモリ121bを概略的に示す図3に示すように、署名済みSWブロックSSB、すなわちデータの真正性および完全性を提供するデジタル署名が付与されたソフトウェアブロックは、ホスト11およびハードウェアトラストアンカ12の不揮発性メモリ111および121b、特にフラッシュメモリ内のプログラムメモリにそれぞれ格納され、証明書Cと、最終的には、下記でより良く説明される検出された異常についての情報を与えるセキュアログSLとは、例えば、プログラムフラッシュメモリおよびデータフラッシュメモリを含む、全ての慎重に扱うべきデータ(例えば、キー)を格納するためにも使用されるセキュアストレージ121内の不揮発性メモリ121bに格納される。
署名済みSWブロックSSBは、ハードウェアトラストアンカ12のフラッシュメモリにプログラムされた、また最終的にはホスト11、具体的にはECUにもプログラムされた、バイナリデータに対応する。
ECUには、いくつかの署名済みSWブロックSSBが存在する。ホストおよびHTAはどちらも、プログラムフラッシュメモリおよびデータフラッシュメモリを含むそれぞれの不揮発性メモリを有し、したがって、SSBは、ホストおよびHSMに分散されてよい。ホストおよびHTAは、異なる時間に実行され、異なる目的を有する。例えば、ホストのフラッシュメモリにおいて、ブートローダBL:いずれのアプリケーションコードの前に実行される1つのコードである。アプリケーションAPP:ブートローダの後に実行される1つのコードである。
キャリブレーションCLB:アプリケーションが適切に動作するために必須のデータを含む1つのコードである。ハードウェアトラストアンカのフラッシュメモリにおいて、ブート:いずれのオペレーティングシステムが動作する前に実行される1つのコードである。
アプリケーションAPP:オペレーティングシステムが動作した後に実行される1つのコードである。この1つのコードは、リアルタイムオペレーティングシステムを含んでよい。
各署名済みSWブロックSSBは、ヘッダSSBHおよびデータSSBDという2つのセクションを有するメタデータと呼ばれるある情報と関連付けられる。
−ヘッダSSBHフィールドは、ブロックの内容および全ての暗号ハッシュおよび署名についての情報を含み、
−データSSBDフィールドは、真正性および完全性の証明が必要と判定されたデータのブロックである。
証明書(またはデジタル証明書)は、通信目的ならびに所有権および有効性を証明するのに使用されるカプセル化されたパブリックキーである。証明書は、証明書の内容の信頼性を伝えるために、認証機関によって署名されている。
証明書は、非限定的な例によれば、X.509v3証明書に準拠し、ASN.1 DERフォーマットにエンコードされている。
例えば、ECUの観点から最高位の証明書を表し、別の証明書に対して有効性を確認され得ない、HTAにおけるルート証明書が存在し得る。ECUの観点から中間の証明書を表し、このようなルート証明書に対して有効性を確認される、ホストにおいて実行されているアプリケーションソフトウェアおよびホストソフトウェア自体(例えば、ブートローダ)の証明書が存在する。
一般的に、実行時真正性チェック手順500は、ホストによって要求される他の実行時サービスと干渉しないようにHTA12に実装された低優先度タスク(すなわち、バックグラウンドタスク)である。特に、実行時真正性チェック手順500は、それらの実行について許容された遅延を超えるべきでない。
しかしながら、HTA12に多数の操作を要求する攻撃者または要求が過度に厳しいホスト11が実行時真正性チェック500の実行を妨げる可能性も回避するとともに、ソフトウェアの不正操作を検出することが必要である。同時に、フラッシュ全体を検証する時間が所定の値を超えることを回避しなければならない。
これらの正反対のビジョンを融合させるために、実行時真正性チェックは、他のホスト/HTAのサービスに対して最優先される定期的なタスクにおいて実行され、チェックは、構成可能な持続時間のn個の段階に分割される。図4には、実行時真正性チェック手順500を示すフロー図が示されている。
実行時真正性チェック500は、段階505にて、実行のために上記ハードウェアトラストアンカ12のプログラムメモリ内に存在し、また最終的にはホスト11のプログラムメモリ111内にも存在する、署名済みソフトウェアブロックSSBならびに対応するヘッダSSBHおよびデータブロックSSBDを識別する段階と、段階510にて、各署名済みソフトウェアブロックSSBj(jは、識別される署名済みソフトウェアブロックSSBのゼロから数Nまでの署名済みブロックの識別インデックスである)について、各署名済みSWブロックSSBに関連する各証明書Cの有効性のチェックを実行する段階とを含む。各証明書の有効性のチェックは、HTA12に格納されることになる任意の新たな証明書が、自己署名証明書でない限り、HTA12に格納された別の証明書に対して検証されなければならないことを含む。
次に、段階520にて、現在の署名済みSWブロックSSBj、HeaderSignatureのヘッダ署名フィールドSSBHが検証され、これにより、ブロックのヘッダの内容の真正性および完全性を保証する。このフィールドは、ヘッダの始点からその長さにわたってデジタル署名を含む。
次に、段階530にて、現在の署名済みSWブロックコードSSBjブロックハッシュが検証される。現在の署名済みSWブロックコードのヘッダ内のファイルダイジェストフィールドは、データブロックにわたって計算された適合SHA−256ダイジェストを規定し、チェックは、ファイルダイジェストフィールドが、特に暗号化ハードウェアアクセラレーションモジュール122内のデータブロックにわたって実行時真正性チェックによって、特にハッシュ値をコンピュートするためのハッシュエンジン122aによって計算された適合SHA−256ダイジェストに等しい場合にのみ、合格となる。
チェックする段階510、520または530において異常が検出された場合、段階550にて、チェック中にSSBに関してセキュアログSLが既に作成されているかがチェックされる。否であれば、段階560にて、HTA12のデータメモリ(不揮発性メモリ121b)内にセキュアログSLが作成され、その中に、検出された異常についての情報が書き込まれる。すなわち、セキュアログ記録が呼び出され、そうでなければ、既に作成されたセキュアログSLが更新される。一般に、このような有効性のチェック段階510、520、530のうちの1つが異常を検出したら、検出された異常に関するセキュアログSL情報の書き込みが実行される。
図5には、ホスト11によりHTA12に対して要求されるサービスの実行の持続時間DHを所与として、認証手順500の一部が持続時間のインターバルDRの間に実行されることを示す時間図が示されている。期間Tは、様々なホストサービスのサービス持続時間DHを含むような長さを有する。
したがって、すぐ上で説明したように、一実施形態において、信頼できる操作を実行するように構成された処理システム10は、ホスト処理ユニット113ならびに例えば揮発性および不揮発性のホストメモリ手段111、112を含む、少なくとも1つのホストコンピューティングモジュール11と、ハードウェアトラストアンカ12とを備える。ハードウェアトラストアンカ12は、それぞれのセキュア処理ユニット123と、暗号化演算に専用のハードウェア処理モジュール122と、セキュアストレージ手段121とを含む。ここで、ハードウェアトラストアンカ12は、リアルタイムセキュアオペレーティングシステムHOSを格納し実行するように構成される。リアルタイムセキュアオペレーティングシステムHOSは、処理システム10において使用されているソフトウェア上で有効性チェックを実行するように構成される。上記セキュアオペレーティングシステムは、具体的には、実行時のソフトウェアコードの完全性を制御する実行時真正性チェック500を実行するように構成される。上記実行時真正性チェック500は、少なくとも実行のために上記ハードウェアトラストアンカコンピューティングモジュール12のプログラムメモリ、すなわち不揮発性メモリ121b内に存在する、また最終的にはホストのプログラムメモリ、すなわち不揮発性メモリ111内にも存在する、署名済みソフトウェアブロックSSBならびに対応するヘッダSSBHおよびデータブロックSSBDを識別する段階505と、各署名済みソフトウェアブロックSSBについて、上記署名済みソフトウェアブロックSSBに関連付けられた証明書Cの有効性をチェックする第1の段階510、上記署名済みソフトウェアブロックSSBのヘッダSSBHの有効性をチェックする第2の段階520、上記署名済みソフトウェアブロック(SSB)のデータSSBDのハッシュの有効性をチェックする第3の段階530を実行する段階と、および、このような有効性をチェックする段階510、520、530のうちの1つによって異常が検出された場合、検出された異常に関するセキュアログSL情報を書き込む段階、すなわち、検出された異常に関する情報を含むセキュアログSLを作成する段階、または、このようなセキュアログSLに異常を書き込む段階と、を含む。セキュアオペレーティングシステムHOSは、他のホスト11またはハードウェアトラストアンカ12のサービスに対して最優先されるタスクPLにおいて上記実行時真正性チェック500を実行するように構成される。処理システム10は、言及したようなスタックオーバーフロー検出手順600も実施する。
同時に実行が必要な複数のスケジュール可能エンティティをハンドリングするために、オペレーティングシステムは、マルチプロセッシングを実装する。プロセス(またはセキュアハードニングリアルタイムオペレーティングシステム内のタスク)は、独立したスケジュール可能コードのシーケンスを含む独立した実行スレッドである。セキュアハードニングリアルタイムオペレーティングシステムを確立するこれらのエンティティは、パフォーマンス(時間およびメモリオーバーヘッド)を犠牲にして、CPU実行時間を得るために独立して競合し得る。各タスクは、関数呼び出しに関連する機能部、レジスタおよびデータ内で定義されたローカル変数を格納する揮発性メモリの固有の専用エリアを有する。
スケジューラは、1つのタスクの実行から別のタスクの実行に切り替えることを望む場合、古いタスクのコンテキストを保存し、新たなタスクのコンテキストをロードしなければならない。タスクのコンテキストは、タスクが使用するレジスタ(プログラムカウンタ、スタックポインタ、他の作業レジスタ)のセットである。特に、このレジスタのうちの1つ(スタックポインタ)は、現在使用されているスタック領域に対するポインタである。システムの正しい動作のためには、異なるスタック領域間で干渉がないことを確実にすることが不可欠である。スタックの干渉は、悪意のあるユーザによる攻撃を受けている車両に頻発することで有名なので、この側面はセキュリティの観点から重要である。
不揮発性メモリ内のコードおよびデータの一部の完全性チェックは、揮発性メモリに関して常に可能ではない。メモリのそれらの部分に含まれるデータは、プロセスの実行中、継続的に修正されるので、データの完全性を検証するのではなく、プロセスによって使用されているメモリ領域が事前に確立された境界を超えないことをチェックすることが好ましい。
図6には、セキュア処理ユニット123のバンクレジスタRと、RAMメモリ121aとが示されている。RAMメモリ121a内には、プロセススタックPSSおよびメインスタックMSSを含むスタックSSが示されている。知られているように、プロセススタックまたはタスクスタックは、一般的に、リターンアドレス、プロシージャの引数、一時退避レジスタ、およびローカルに割り当てられる変数のために使用される事前予約されたシステムメモリのエリアである。処理ユニットは、一般的に、スタックポインタSTPによってスタックの上部を指し示すレジスタ、すなわちCPUレジスタRを含む。
図示のように、プロセススタックMSS内には、それぞれのスタックサイズTSSを有する第1のタスクTAの第1のスタックSSAおよび第2のタスクTBの第2のスタックSSBが存在し、スタックサイズTSSは、プロセススタックMSS内の対応するスタック範囲を規定する。図に示されているように、第1のタスクTAの第1のスタックSSAおよび第2のタスクTBの第2のスタックSSBの両方における、例えば最後の8/16バイトに対応する、スタック範囲の最後の部分は、スタックパターンSPを表す。これについては、図7のフロー図を参照しながら説明する。
タスク動作の変更中、オペレーティングシステムは、どのタスクがタスクまたはスケジューラテーブルを用いて実行されているかを追跡する方法を必要とする。この場合、それには3つのルーチンが必要とされる。
−図6に示すように、コンテキストスイッチを実行し、CPU内に存在する退出タスクレジスタ、すなわち第1のタスクTAのタスクレジスタが、第1のタスクTAのスタックエリアSSA内に保存され、次に、進入タスクレジスタ、すなわち第2のタスクTBのタスクレジスタがCPUレジスタ内の第2のタスクTBのスタックエリアSSBからリロードされ、
−システムを初期化して、セキュアリアルタイムオペレーティングシステムを構成する状態マシンおよび内部構造を更新し、
−新たなタスク、すなわち第2のタスクTBにジャンプする。
プロセスおよびシステム実行の完全性を保証するために、タスクオーバーフロー制御のメカニズム、すなわちスタックオーバーフロー検出手順600を実行することが必要である。スタックオーバーフロー検出手順600もまた、有効なスタック領域の境界が上書きされていないことを検証する。スタックオーバーフロー検出手順600は、図7のフロー図に示されている。
段階610にて、タスク、例えば、TA、TBに割り当てられたスタック、例えば、SSA、SSBは、既知のパターン、すなわちシステムおよびタスクが初期化された時点でのスタックパターンSPで満たされる。
次に、すべてのコンテキストスイッチの間に、オペレーティングシステムは、有効スタック範囲内の最後の部分、例えば、最後の8/16バイトをチェックし(620)、このパターンが変更されていないままである(上書きされていない)ことを確実にする。
テスト段階620にて、これらのスタックの最後の部分のバイトがいずれも元の値から変更されていないことが検証された場合、段階630にて、スタックオーバーフローフック機能が呼び出される。このようなスタックオーバーフローフック機能は、異常を捕捉し、エラーコードを提起する(640)と共に、段階550と同様に異常イベント、すなわち異常を好ましくは同じログSLに記録して(650)、オペレーティングシステムに対して異常をはっきりと示す。
手順600は、エラーを捉え、すなわちエラーを提起し、異常、すなわちほとんどのスタックオーバーフローの発生をログ記録するが、例えば、最後のバイトが書き込まれずにスタックオーバーフローが発生した場合、そのうちいくつかは見逃され得ることが想定される。
システム10は、HTA12の機能時間内での実行を保証するために、リアルタイム検出手順700を実行するようにも構成される。このような手順700は、タスク実行をモニタして、時間が割り当てられたタイムバジェット(最悪実行時間)を超えた場合に反応する。
このメカニズム制御および実行時真正性チェックは、大きなタイムスケールでは、完全性分析が実行されたことを検証するが、小さなタイムスケールの場合には、HOSタスクにマッピングされた全てのセキュリティ機能が実行され、時間内に実行されたことを検証する。
システムの分析および設計の間、リアルタイムでのコードの実行を保証するために、システムがタスクをスケジューリングすることおよびハードリアルタイムの要件の非違反を可能にするように最大持続時間(タイムバジェット)が各タスクに割り当てられている。これらの実行時間の検証は、タスクの実行中、システムによってリアルタイムで実行され、違反の可能性が検出されたら、補正およびログ記録の操作を起こすことができる。
実行するようにスケジュールされた時間と終了/応答時間との間に規定される定期的なタスクTKは、3つのパラメータC、D、Tによって規定される。ここで、Cは最悪実行時間(WCET)またはリソースタイムバジェット、すなわちコンピューティング時間を示し、Dは、相対デッドライン、すなわちデッドライン時間であり、Tは、期間(時間期間)である。
同じタスクの2つの連続するジョブインスタンスの間に複数の期間が存在する散発的なタスクシステムを検討すると、特定の時間に発生するジョブは、せいぜい、対応するデッドラインDの前の時間間隔におけるCの時間単位の間に実行されなければならない。
散発的なタスクの特定の事例としては、タスクによって生成された2つの連続するジョブの到着の間でその期間が正確に時間的に分離されている定期的なタスクである。
各インスタンスついてデッドラインDが期間Tに対応する、絶対的デッドラインシステムと、
各場合についてデッドラインDが期間T未満である、制約付きデッドラインシステムと、
デッドラインDと期間Tとの間に制約がない、恣意的デッドラインシステムと、
が区別される。
処理システム10は、図8のフロー図を参照しながら本明細書において説明される時間検出手順700を実行するように構成される。ここで、デッドラインDおよび期間の間に制約は存在しないが、タスク最悪実行時間Cについて一般タスクTKの違反をチェックする段階710が実行される。ここで、所与の例の最悪実行時間Cの値は、オフライン時間解析によって与えられる。段階720にて、異常が、好ましくは同じセキュリティログSLに記録される。したがって、上記の説明から、記載された解決策の利点が明らかである。
説明されたシステムは、セキュアハードニングリアルタイムオペレーティングシステムを好都合に備え、ここで、実行時にオペレーティングシステムソフトウェア上またはアプリケーションソフトウェア上のいずれかで真正性チェックを実行することによって、セキュアハードニングが得られる。真正性チェックは、定期的に高優先度を用いて、暗号および証明書有効性確認に専用ハードウェアを利用することにより、リアルタイムで実行される。
特に、本明細書に開示されたシステムは、他のホスト/HTAのサービスに対して最優先される定期的なタスクにおいて認証手順を実行することによって、HTAに対して多数の動作を要求する攻撃者または要求が過度に厳しいホストが実行時真正性チェックの実行を妨げる可能性も回避するとともに、ソフトウェアの不正操作を検出する。同時に、フラッシュ全体を検証する時間が所定の値を超えることが回避される。
当然ながら、実施形態の原理に影響を与えることなく、以下の特許請求の範囲に規定された本実施形態の範囲から逸脱しなければ、構成の詳細および実施形態を単に例として本明細書に説明および図示されたものに対して広く変更してよい。

Claims (13)

  1. ホスト処理ユニットおよびホストメモリ手段を含む少なくとも1つのホストコンピューティングモジュールと、ハードウェアトラストアンカとを備える、信頼できる操作を実行するように構成された処理システムであって、前記ハードウェアトラストアンカは、それぞれのセキュア処理ユニットと、暗号化演算に専用のハードウェア処理モジュールと、セキュアストレージ手段とを備え、前記ハードウェアトラストアンカは、リアルタイムセキュアオペレーティングシステム(HOS)を格納し実行するように構成され、前記リアルタイムセキュアオペレーティングシステム(HOS)は、前記処理システムにおいて使用されているソフトウェア上で有効性チェックを実行するように構成され、
    前記リアルタイムセキュアオペレーティングシステム(HOS)は、実行時にソフトウェアコードの完全性を制御する実行時真正性チェックを実行するように構成され、前記実行時真正性チェックは、少なくとも実行のために前記ハードウェアトラストアンカのプログラムメモリ内に存在する署名済みソフトウェアブロック(SSB)ならびに対応するヘッダ(SSBH)およびデータブロック(SSBD)を識別する段階と、
    前記署名済みソフトウェアブロック(SSB)に関連付けられた証明書(C)の有効性をチェックする第1の段階、
    前記署名済みソフトウェアブロック(SBB)のヘッダ(SSBH)の有効性をチェックする第2の段階、
    前記署名済みソフトウェアブロック(SSB)のデータ(SSBD)のハッシュの有効性をチェックする第3の段階、
    を実行する段階と、
    前記有効性チェックのチェックする段階のうちの1つによって異常が検出された場合、前記検出された異常に関する情報をセキュアログ(SL)に書き込む段階と、
    を含み、
    前記リアルタイムセキュアオペレーティングシステム(HOS)は、他のホストコンピューティングモジュールまたはハードウェアトラストアンカのサービスに対して最優先されるタスク(PL)において前記実行時真正性チェックを実行するように構成される、システム。
  2. 前記実行時真正性チェックは、前記ホストコンピューティングモジュールの不揮発性メモリ内に存在する前記署名済みソフトウェアブロック(SSB)にも適用される、請求項1に記載のシステム。
  3. 前記リアルタイムセキュアオペレーティングシステム(HOS)は、他のホストコンピューティングモジュールまたはハードウェアトラストアンカのサービスに対して最優先される所与の期間(T)を有する定期的なタスク(PL)において前記実行時真正性チェックを実行するように構成され、前記チェックする段階は、各期間(T)に実行される構成可能な持続時間(DH)の複数のサブ段階に分割される、請求項1または2に記載のシステム。
  4. 前記署名済みソフトウェアブロック(SSB)に関連付けられた証明書(C)の有効性をチェックする前記第1の段階は、前記ハードウェアトラストアンカに格納されることになる任意の新たな証明書が、自己署名証明書でない限り、前記ハードウェアトラストアンカに格納された別の証明書に対して検証されることを含む、請求項1に記載のシステム。
  5. 前記署名済みソフトウェアブロック(SSB)のヘッダ(SSBH)の有効性をチェックする前記第2の段階は、現在の前記署名済みソフトウェアブロック(SBB)のヘッダ署名フィールドを検証する段階を含む、請求項1に記載のシステム。
  6. 前記署名済みソフトウェアブロック(SSB)のデータ(SSBD)のハッシュの有効性をチェックする前記第3の段階は、特にハッシュエンジンによって、暗号化ハードウェアアクセラレーションモジュール内の前記データブロック(SSBD)にわたってハッシュ値を計算する段階と、前記ハッシュ値と、前記データブロックにわたって計算された適合ダイジェストを規定するハッシュ値を格納するヘッダ(SSBH)内のフィールドの内容とを比較する段階とを含む、請求項1に記載のシステム。
  7. 前記リアルタイムセキュアオペレーティングシステムは、タスク実行に使用される前記ハードウェアトラストアンカの揮発性メモリのスタック(SS)に対して、使用されたスタック(SS)の量を静的境界に対してチェックする段階を含むスタックオーバーフロー検出手順を実行するように構成される、請求項1に記載のシステム。
  8. 前記リアルタイムセキュアオペレーティングシステム(HOS)は、
    タスクに割り当てられたスタックエリアを既知のパターン(SP)で満たし、
    各コンテキストスイッチ中、修正がないか有効スタック範囲内の最後の部分をチェックし、
    前記満たす操作に対して修正が検出された場合、スタックオーバーフローフック機能を呼び出す、
    ように構成される、請求項7に記載のシステム。
  9. 前記リアルタイムセキュアオペレーティングシステムは、タスク最悪実行時間(C)の違反をチェックする段階であって、前記タスクの所与のインスタンスに関する前記タスク最悪実行時間(C)の値は、オフライン時間解析によって与えられる、段階と、前記チェックする段階によって異常が検出された場合、前記検出された異常に関する情報をセキュアログ(SL)に書き込む段階とを含む、リアルタイム検出手順を実行するように構成される、請求項1に記載のシステム。
  10. 前記少なくとも1つのホストコンピューティングモジュールおよびハードウェアトラストアンカは、システムオンチップの一部であり、特に、前記少なくとも1つのホストコンピューティングモジュールは、車両内で動作するECUである、請求項1に記載のシステム。
  11. 前記検出された異常に関する情報を前記セキュアログ(SL)に書き込む段階は、前記検出された異常に関する情報を含むセキュアログ(SL)を作成する段階、または、前記セキュアログ(SL)内に前記異常を書き込む段階を含む、請求項1に記載のシステム。
  12. 請求項1〜10のいずれか1項に記載の前記処理システムにおいて使用されているソフトウェア上で有効性チェックを実行するリアルタイムセキュアオペレーティングシステム(HOS)を格納し実行することを含む、前記処理システムにおいて信頼できる操作を実行する方法であって、前記方法は、実行時にソフトウェアコードの完全性を制御する実行時真正性チェックを実行する段階を含み、前記実行時真正性チェックは、少なくとも実行のために前記ハードウェアトラストアンカのプログラムメモリ内に存在する署名済みソフトウェアブロック(SSB)ならびに対応するヘッダ(SSBH)およびデータブロック(SSBD)を識別する段階と、
    各署名済みソフトウェアブロック(SSB)について、
    前記署名済みソフトウェアブロック(SSB)に関連付けられた証明書(C)の有効性をチェックする第1の段階、
    前記署名済みソフトウェアブロック(SBB)のヘッダ(SSBH)の有効性をチェックする第2の段階、
    前記署名済みソフトウェアブロック(SSB)のデータ(SSBD)のハッシュの有効性をチェックする第3の段階、
    を実行する段階と、
    前記有効性チェックのチェックする段階のうちの1つによって異常が検出された場合、前記検出された異常に関する情報をセキュアログ(SL)に書き込む段階と、
    を含み、
    前記リアルタイムセキュアオペレーティングシステムは、他のホストコンピューティングモジュールまたはハードウェアトラストアンカのサービスに対して最優先されるタスク(PL)において前記実行時真正性チェックを実行するように構成される、方法。
  13. 前記方法は、請求項2〜11のいずれか1項に記載のシステムの前記操作を含む、請求項12に記載の方法。
JP2020161525A 2019-09-30 2020-09-25 トラストアンカコンピューティング装置を備える処理システムおよび対応する方法 Pending JP2021057043A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IT102019000017534 2019-09-30
IT102019000017534A IT201900017534A1 (it) 2019-09-30 2019-09-30 "Sistema di elaborazione comprendente apparato di calcolo di tipo "trust anchor" e corrispondente procedimento"

Publications (1)

Publication Number Publication Date
JP2021057043A true JP2021057043A (ja) 2021-04-08

Family

ID=69191192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020161525A Pending JP2021057043A (ja) 2019-09-30 2020-09-25 トラストアンカコンピューティング装置を備える処理システムおよび対応する方法

Country Status (3)

Country Link
JP (1) JP2021057043A (ja)
CN (1) CN112580015A (ja)
IT (1) IT201900017534A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961362A (zh) * 2021-11-14 2022-01-21 苏州浪潮智能科技有限公司 一种进程识别方法、系统、存储介质及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832454B2 (en) * 2008-12-30 2014-09-09 Intel Corporation Apparatus and method for runtime integrity verification
US8839458B2 (en) * 2009-05-12 2014-09-16 Nokia Corporation Method, apparatus, and computer program for providing application security

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961362A (zh) * 2021-11-14 2022-01-21 苏州浪潮智能科技有限公司 一种进程识别方法、系统、存储介质及设备
CN113961362B (zh) * 2021-11-14 2024-01-16 苏州浪潮智能科技有限公司 一种进程识别方法、系统、存储介质及设备

Also Published As

Publication number Publication date
IT201900017534A1 (it) 2021-03-30
CN112580015A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
US9762399B2 (en) System and method for validating program execution at run-time using control flow signatures
US9767271B2 (en) System and method for validating program execution at run-time
US7644287B2 (en) Portion-level in-memory module authentication
JP4498735B2 (ja) オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
US8640194B2 (en) Information communication device and program execution environment control method
US7831838B2 (en) Portion-level in-memory module authentication
US8364973B2 (en) Dynamic generation of integrity manifest for run-time verification of software program
CN109800050B (zh) 一种虚拟机的内存管理方法、装置、相关设备及系统
JP5175856B2 (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
US7401234B2 (en) Autonomous memory checker for runtime security assurance and method therefore
EP2207121A1 (en) Protecting content on virtualized client platforms
US20110289294A1 (en) Information processing apparatus
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
CN115048652A (zh) 针对运行已验证软件的硬件的端到端安全性
CA2646003A1 (en) Authorisation of the installation of a software version
CN110543764A (zh) 片上系统内存防护方法、密码加速引擎及内存防护装置
JP2019020872A (ja) 電子制御装置、プログラム改ざん検知方法
JP2021057043A (ja) トラストアンカコンピューティング装置を備える処理システムおよび対応する方法
EP1811460B1 (en) Secure software system and method for a printer
EP4287054A1 (en) Computer implemented method for updating a safety software code, computer hardware device, computer program and a computer-readable medium
US9213864B2 (en) Data processing apparatus and validity verification method
CN114201761B (zh) 在可信计算系统中增强度量代理安全性
US20220188222A1 (en) Electronic apparatus, method, and storage medium
JP2023087987A (ja) 電子制御装置
CN114721693A (zh) 一种微处理器、bios固件更新方法、计算机设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230804