JP7635494B2 - Processing system with trust anchor computing device and corresponding method - Patents.com - Google Patents
Processing system with trust anchor computing device and corresponding method - Patents.com Download PDFInfo
- Publication number
- JP7635494B2 JP7635494B2 JP2020161525A JP2020161525A JP7635494B2 JP 7635494 B2 JP7635494 B2 JP 7635494B2 JP 2020161525 A JP2020161525 A JP 2020161525A JP 2020161525 A JP2020161525 A JP 2020161525A JP 7635494 B2 JP7635494 B2 JP 7635494B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- checking
- validity
- ssb
- real
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting 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)
Description
本説明は、ホスト処理ユニットおよびホストメモリ手段を含む少なくとも1つのホストコンピューティングモジュールとハードウェアトラストアンカとを備え、信頼できる操作を実行するように構成された処理システムに関する。少なくとも1つのホストモジュールとハードウェアトラストアンカとを備える処理システムは、特に上記少なくとも1つのホストモジュールが車両内で動作するECUである場合、システムオンチップの一部であることが好ましい。 The present description relates to a processing system comprising at least one host computing module including a host processing unit and a host memory means, and a hardware trust anchor, configured to perform trusted operations. The processing system comprising at least one host module and a hardware trust anchor is preferably part of a system-on-chip, particularly when said at least one host module is an ECU operating in a vehicle.
ハードウェアトラストアンカ(HTA)は、トラストチェーンを開始すると共に、システムに不可欠な機能と、スタートアッププロセスおよび不正操作が検出された場合のプロセスのシャットダウンの予防的なモニタリングを含むセキュリティ機能との両方を実行する、ローカルな隔離されたコンピューティングデバイスである。 A Hardware Trust Anchor (HTA) is a local, isolated computing device that initiates the trust chain and performs both system-critical and security functions, including proactive monitoring of the startup process and shutting down processes if tampering is detected.
一般的な自動車のシナリオにおいて、電子制御ユニット(ECU)のような処理システムは、車両機能のためのアプリケーション処理ユニット、すなわち、アプリケーションコアと、セキュリティサポートのためのHTAとから構成された、1つまたは複数のSoC(システムオンチップ)に基づくものである。したがって、ECUを外部からの攻撃(車両機能の認証されていないアクティベーション、慎重に扱うべきキー材料の読み出し、ソフトウェアの操作など)に対してハードニングするために、ハードウェアトラストアンカ技術(HTA)が使用されている。 In a typical automotive scenario, a processing system such as an Electronic Control Unit (ECU) is based on one or more SoCs (System on Chip) consisting of application processing units, i.e. application cores, for vehicle functions and HTAs for security support. Therefore, Hardware Trust Anchor techniques (HTAs) are used to harden the ECU against external attacks (unauthorized activation of vehicle functions, reading of sensitive key material, software manipulation, etc.).
HTAは、HTA側の基本的なセキュリティを高めるために使用されるメカニズムのセットが埋め込まれ、したがってセキュリティハードニングリアルタイムオペレーティングシステムと呼ばれる、リアルタイムオペレーティングシステム(RTOS)を使用する処理ユニットを含んでよい。コンピューティングにおいて、ハードニングとは通常、表層の脆弱性を低めることによってシステムのセキュリティを確保するプロセスである。 The HTA may include a processing unit that uses a real-time operating system (RTOS) that is embedded with a set of mechanisms used to increase the basic security of the HTA side, and is therefore called a security-hardened real-time operating system. In computing, hardening is usually the process of ensuring the security of a system by reducing its surface vulnerabilities.
したがって、これらの保護技術は、より効果的に攻撃を検出/攻撃に反応し、それらの攻撃のエクスプロイトを実行する能力を制限するように構成されている。 As such, these protection techniques are designed to more effectively detect and respond to attacks and limit the ability of those attacks to execute exploits.
HTAは、
・キー管理、
・証明書管理、
・暗号化演算、
・ソフトウェア保護(セキュアブートおよびセキュア更新)、
・慎重に扱うべきデータの読み取りおよび書き込みのためのアクセスメカニズムおよびデータの可視性を低めるための暗号化技術を用いたデータ保護(セキュアストレージおよびセキュア通信)、
などの、機密かつ慎重に扱うべき情報を伴うセキュリティ操作のために使用される。
HTA is
- Key management,
Certificate management,
- Encryption operations,
- Software protection (secure boot and secure updates),
Data protection (secure storage and secure communication) using access mechanisms for reading and writing sensitive data and encryption techniques to reduce data visibility;
Used for security operations involving confidential and sensitive information, such as:
したがって、その結果、セキュリティハードニングリアルタイムオペレーティングシステムは、
・複数のセキュア操作を同時に実行し、
・いくつかの所定のロジックおよびスケジューリングポリシに従って、様々なエンティティ(プロセスまたはタスク)の間で切り替え、
・機密性(情報の隔離)を保証および維持し、
・一般機能が実行されることおよびその実行時間が分かることを保証する、
ことが可能であるべきである。
Therefore, as a result, security hardening real-time operating systems are
- Perform multiple secure operations simultaneously;
Switching between different entities (processes or tasks) according to some predefined logic and scheduling policies;
- Guarantee and maintain confidentiality (information isolation);
Ensuring that common functions are performed and their execution time is known,
It should be possible.
HTAのために使用されるセキュリティハードニングリアルタイムオペレーティングシステムは、静的で変更不可能な動作環境であってよい。これはつまり、アプリケーションの実行中は、アプリケーションのオブジェクト、タスク、イベント、リソースを作成または削除できないことを意味する。セキュアシステムにおいては、データおよび他のメモリセクションの正確性(完全性)が基本的な要件であるべきである。 The security-hardened real-time operating system used for HTA may be a static and unmodifiable operating environment. This means that no application objects, tasks, events, or resources can be created or deleted while the application is running. Correctness (integrity) of data and other memory sections should be a fundamental requirement in a secure system.
今日、ほとんどの自動車ECUは、アプリケーションソフトウェアまたはデータをいつでも更新可能であるように、ソフトウェアのダウンロードをサポートしている。OEM要件に応じて、新しいソフトウェアが有効であることを保証するためにソフトウェアのダウンロード中に、ソフトウェアが依然として有効であることを保証するためにECUの電源オン中に、またはこれら2つの組み合わせで、いくつかのチェックが実行される。有効性情報をハンドリングするための種々の方法が存在する。 Today, most automotive ECUs support software download so that application software or data can be updated at any time. Depending on the OEM requirements, some checks are performed during the software download to ensure that the new software is valid, during power-on of the ECU to ensure that the software is still valid, or a combination of the two. There are various ways to handle the validity information.
例えば、通常安全性の理由で要求される、完全性チェックが行われてよい。完全性チェックは、不揮発性ソフトウェアデータにわたって計算され、基準値と比較される、チェックサム/CRC(巡回冗長検査)に基づくものである。チェックサムが正しければ、全ソフトウェアブロックの完全性が想定される。ところで、CRCのようなチェックサムアルゴリズムは、チェックサムの計算時に秘密パラメータが関与しないので、真正性チェックを提供するものではない。 For example, an integrity check may be performed, which is usually required for security reasons. The integrity check is based on a checksum/CRC (Cyclic Redundancy Check) that is calculated over the non-volatile software data and compared to a reference value. If the checksum is correct, the integrity of the whole software block is assumed. However, checksum algorithms like CRC do not provide an authenticity check, since no secret parameters are involved when calculating the checksum.
そのような真正性チェックは、その代わりに、(例えば、セキュリティ関連ECUにおいてまたは調整保護として)正当なソースからのソフトウェアまたはデータのみがECUにおいて使用されることを要求するいくつかのECUによって要求される。認証は、不揮発性ソフトウェアデータにわたる暗号署名の計算によって通常実行される。署名は、OEMまたはECUいずれかの供給業者によって供給され得る。 Such an authenticity check is instead required by some ECUs that require that only software or data from legitimate sources be used in the ECU (e.g. in security-related ECUs or as coordination protection). Authentication is typically performed by computation of a cryptographic signature over the non-volatile software data. The signature may be supplied by either the OEM or the ECU supplier.
署名計算アルゴリズムは、ダウンロードされたソフトウェアの完全性および真正性を確実にするために、モジュール122a~122eにおいて実行されるもののようなハードウェアベースの、またはソフトウェアベースの、ハッシュ計算と暗号化ルーチンとを組み合わせたものである。上記ハードウェアトラストアンカ(HTA)がモジュール122a~122bを含まないか、またはそれらのうちのサブセットのみを含む場合、コンピュテーションはソフトウェアにおいて実行され、暗号化演算を実行するために特別なハードウェアは必要とされない。上記の方法は、実行時に有効性情報をチェックするためにも使用することができる。 The signature calculation algorithm is a combination of hardware-based, such as those executed in modules 122a-122e, or software-based hash calculations and encryption routines to ensure the integrity and authenticity of the downloaded software. If the hardware trust anchor (HTA) does not include modules 122a-122b, or includes only a subset of them, the computation is performed in software and no special hardware is required to perform the encryption operations. The above method can also be used to check validity information at runtime.
現在、単に安全性要件を満たすために、完全性チェックのみが実行時に使用されている。しかし依然として、このような方法では、ECU自体の通常の動作中に元のECUに対する操作を検出することはできない。 Currently, only integrity checks are used at run-time, simply to meet safety requirements. However, such methods still cannot detect manipulations of the original ECU during normal operation of the ECU itself.
[目的および概要]
1つまたは複数の実施形態の目的は、先行技術により達成可能な解決策に内在する制限を解消することである。
[Objectives and Overview]
An aim of one or more embodiments is to overcome the limitations inherent in solutions achievable by the prior art.
1つまたは複数の実施形態によれば、この目的は、請求項1に規定された特徴を有するシステムによって達成される。1つまたは複数の実施形態は、対応するシステムに関するものであってよい。 According to one or more embodiments, this object is achieved by a system having the features defined in claim 1. One or more embodiments may relate to a corresponding system.
特許請求の範囲は、様々な実施形態に関連して本明細書に提供された技術的教示の必須の部分をなす。 The claims form an integral part of the technical teachings provided herein in connection with the various embodiments.
本明細書に記載される解決策によれば、解決策は、ホスト処理ユニットおよびホストメモリ手段を含む少なくとも1つのホストコンピューティングモジュールと、ハードウェアトラストアンカとを備える、信頼できる操作を実行するように構成された処理システムであって、上記ハードウェアトラストアンカは、それぞれのセキュア処理ユニットと、暗号化演算に専用のハードウェア処理モジュールと、セキュアストレージ手段とを備え、上記ハードウェアトラストアンカは、リアルタイムセキュアオペレーティングシステムを格納し実行するように構成され、上記リアルタイムセキュアオペレーティングシステムは、上記処理システムにおいて使用されているソフトウェア上で有効性チェックを実行するように構成され、上記リアルタイムセキュアオペレーティングシステムは、実行時にソフトウェアコードの完全性を制御する実行時真正性チェックを実行するように構成され、上記実行時真正性チェックは、少なくとも実行のために少なくとも上記ハードウェアトラストアンカのプログラムメモリ内に存在する、また最終的には上記ホストコンピューティングモジュールのプログラムメモリ内にも存在する、署名済みソフトウェアブロックならびに対応するヘッダおよびデータブロックを識別する段階と、各署名済みソフトウェアブロックについて、上記署名済みソフトウェアブロックに関連付けられた証明書の有効性をチェックする第1の段階、上記署名済みソフトウェアブロックのヘッダの有効性をチェックする第2の段階、上記署名済みソフトウェアブロックのデータのハッシュの有効性をチェックする第3の段階、を実行する段階と、上記有効性チェックのチェックする段階のうちの1つによって異常が検出された場合、上記検出された異常に関するセキュアログ情報を書き込む段階と、を含み、上記リアルタイムセキュアオペレーティングシステムは、他のホストコンピューティングモジュールまたはハードウェアトラストアンカのサービスに対して最優先されるタスクにおいて上記実行時真正性チェックを実行するように構成される、システムに関する。 According to the solution described herein, the solution is a processing system configured to perform trusted operations, comprising at least one host computing module including a host processing unit and a host memory means, and a hardware trust anchor, the hardware trust anchor comprising a respective secure processing unit, a hardware processing module dedicated to cryptographic operations, and a secure storage means, the hardware trust anchor being configured to store and execute a real-time secure operating system, the real-time secure operating system being configured to perform a validity check on software used in the processing system, the real-time secure operating system being configured to perform a run-time authenticity check that controls the integrity of the software code at run-time, the run-time authenticity check being performed by at least one of the processors of the hardware trust anchor for execution. The system includes a step of identifying signed software blocks and corresponding headers and data blocks present in the program memory of the host computing module and ultimately present in the program memory of the host computing module, and for each signed software block, performing a first step of checking the validity of a certificate associated with the signed software block, a second step of checking the validity of the header of the signed software block, and a third step of checking the validity of a hash of the data of the signed software block, and if an anomaly is detected by one of the validity check checking steps, writing secure log information regarding the detected anomaly, wherein the real-time secure operating system is configured to perform the run-time authenticity check in a task that has the highest priority over the services of other host computing modules or hardware trust anchors.
また、本明細書に記載される解決策は、上記処理システムにおいて使用されているソフトウェア上で有効性チェックを実行するリアルタイムセキュアオペレーティングシステムを格納し実行することを含む、上記処理システムにおいて信頼できる操作を実行する対応する方法であって、上記方法は、実行時にソフトウェアコードの完全性を制御する実行時真正性チェックを実行する段階を含み、上記実行時真正性チェックは、実行のために上記ハードウェアトラストアンカのプログラムメモリ内に存在する、また最終的にはホストコンピューティングモジュールのプログラムメモリ内にも存在する、署名済みソフトウェアブロックならびに対応するヘッダおよびデータブロックを識別する段階と、各署名済みソフトウェアブロックについて、上記署名済みソフトウェアブロックに関連付けられた証明書の有効性をチェックする第1の段階、上記署名済みソフトウェアブロックのヘッダの有効性をチェックする第2の段階、上記署名済みソフトウェアブロックのデータのハッシュの有効性をチェックする第3の段階、を実行する段階と、上記有効性チェックのチェックする段階のうちの1つによって異常が検出された場合、上記検出された異常に関するセキュアログ情報を書き込む段階と、を含み、上記リアルタイムセキュアオペレーティングシステムは、他のホストコンピューティングモジュールまたはハードウェアトラストアンカのサービスに対して最優先されるタスクにおいて上記実行時真正性チェックを実行するように構成される、方法に関する。 The solution described herein also relates to a corresponding method of performing trusted operations in a processing system, including storing and executing a real-time secure operating system that performs validity checks on software used in the processing system, the method including a step of performing a run-time authenticity check to control the integrity of the software code at run-time, the run-time authenticity check including a step of identifying signed software blocks and corresponding headers and data blocks that are present in the program memory of the hardware trust anchor for execution and that are also ultimately present in the program memory of the host computing module, and for each signed software block, a first step of checking the validity of a certificate associated with the signed software block, a second step of checking the validity of the header of the signed software block, a third step of checking the validity of a hash of the data of the signed software block, and if an anomaly is detected by one of the checking steps of the validity checks, a step of writing secure log information regarding the detected anomaly, the real-time secure operating system being configured to perform the run-time authenticity check in a task that has the highest priority with respect to the services of other host computing modules or hardware trust anchors.
以下、添付図面を参照しながら単に非限定的な例によって実施形態を説明する。
以下の記載は、実施形態の深い理解をもたらすことを目的とした様々な具体的な詳細を説明するものである。実施形態は、具体的な詳細のうちの1つまたは複数を伴わずに実装されてもよいし、または他の方法、構成要素、材料などと共に実装されてもよい。他の場合において、既知の構造、材料または操作は、実施形態の様々な側面を不明瞭にしないように、詳細には図示または説明されない。 The following description describes various specific details for the purpose of providing a thorough understanding of the embodiments. The embodiments may be implemented without one or more of the specific details, or may be implemented with other methods, components, materials, and the like. In other cases, well-known structures, materials, or operations are not shown or described in detail so as not to obscure various aspects of the embodiments.
本説明の枠組みにおいて、「一実施形態」または「1つの実施形態」への言及は、その実施形態に関連して記載された特定の形態、構造または特性が、少なくとも1つの実施形態に含まれることを示すことを意図している。同様に、本説明の様々な箇所に存在し得る「一実施形態において」または「1つの実施形態において」などの語句は、必ずしも1つの同じ実施形態を指すものではない。さらに、特定の形態、構造または特性は、1つまたは複数の実施形態において適切に組み合せることができる。 In the context of this description, reference to "one embodiment" or "one embodiment" is intended to indicate that a particular feature, structure, or characteristic described in connection with that embodiment is included in at least one embodiment. Similarly, phrases such as "in one embodiment" or "in one embodiment" that may appear in various places in this description do not necessarily refer to one and the same embodiment. Moreover, particular features, structures, or characteristics may be combined as appropriate in one or more embodiments.
本明細書において使用される参照符号は、単に便宜上のものとして意図されており、したがって、保護範囲または実施形態の範囲を画定するものではない。 The reference signs used in this specification are intended merely for convenience and therefore do not define the scope of protection or the scope of the embodiments.
図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とを含んでよい。 1 shows a processing system 10, which may correspond to, for example, an ECU on a SoC for automotive applications, for example in the control system of an engine or other functional part of a vehicle, and includes an application processing unit, i.e., an application core 11, and a hardware trust anchor (HTA) 12. The application core 11 includes a non-volatile memory 111, a RAM memory 112, a bus interface 114 for communicating with, for example, a vehicle bus, and an application CPU 113. The HTA 12 includes a secure storage 121 including a secure non-volatile memory 121b and a secure RAM memory 121a. The HTA 12 further includes a secure processing unit 123, an HTA interface module 124, and a cryptographic hardware acceleration module 122, which may include a hash engine 122a for computing a hash value of software data, a symmetric cryptographic engine 122b for executing a symmetric cryptographic algorithm, an asymmetric cryptographic engine 122c for executing an asymmetric cryptographic algorithm, a random generator module 122d that may include a TRNG and/or a PRNG, and a counter module 122e.
セキュリティハードニングリアルタイムオペレーティングシステムソフトウェアは、それ自体はソフトウェアであり、メモリすなわち下記のセクションにおいて図2に示されるようなセキュアストレージ121内に、通常は分割されている。図2は、HOSと共にまとめて示されているオペレーティングシステムが存在する、HTA12のメモリ121のアドレス空間を概略的に示している。
-テキストまたはソースコードTXS:プログラムの実行可能コードを格納するメモリエリア。メモリのこのブロックは、通常は読み取り専用である。
-データまたはデータフラッシュDT:プログラマによって初期化された静的/グローバル変数を格納するメモリエリア。これは、さらには、OSアプリケーションがプライベートデータを有することができるメモリのセクションである。
The security hardening real-time operating system software is itself software and is typically partitioned in memory, or secure storage 121 as shown in the following section in Figure 2. Figure 2 shows diagrammatically the address space of memory 121 of the HTA 12 in which the operating systems reside, shown collectively with the HOS.
- Text or source code TXS: an area of memory that stores the executable code of a program. This block of memory is usually read-only.
- Data or Data Flash DT: memory area that stores static/global variables initialized by the programmer. This is also a section of memory where OS applications can have private data.
BSS(Block Started by Symbol)メモリBS:初期化されていない静的/グローバル変数を格納するメモリエリア。このセグメントは、オペレーティングシステムによってゼロで満たされ、したがって、全ての初期化されていない変数がゼロで初期化される。ヒープメモリHP:ヒープは、ダイナミックメモリアロケーションのための空間を提供するのに使用される。 BSS (Block Started by Symbol) Memory BS: Memory area that stores uninitialized static/global variables. This segment is filled with zeros by the operating system, thus all uninitialized variables are initialized with zeros. Heap Memory HP: The heap is used to provide space for dynamic memory allocation.
スタックSS:これは、returnなどの関数呼び出しに関連する機能部、レジスタおよびデータ内で定義されたローカル変数が、タスク実行中にプッシュされる揮発性メモリ(RAM)121aのセクションである。各タスクは、固有のスタックエリアを有することができる。 Stack SS: This is a section of volatile memory (RAM) 121a into which local variables defined within functions, registers and data related to function calls such as return are pushed during task execution. Each task can have its own stack area.
テキストメモリエリアTXSおよびデータメモリエリアDTは、不揮発性メモリ121bであり、それに対して、BBSメモリエリアBS、ヒープメモリエリアHP、およびスタックSSは、揮発性メモリ121aである。 The text memory area TXS and the data memory area DT are non-volatile memory 121b, whereas the BBS memory area BS, the heap memory area HP, and the stack SS are volatile memory 121a.
本明細書に記載されるHTAのためのセキュリティハードニングリアルタイムオペレーティングシステムは、
-真正性の特性が暗号を介してチェックされる、不揮発性メモリのための実行時真正性チェック手順500、
-使用されたスタックSSの量が静的境界に対してチェックされる、スタックSS(揮発性メモリ121a)のためのスタックオーバーフロー検出手順600、
を含む様々な特定の手順を通して、不揮発性メモリおよび揮発性メモリをチェックするように構成される。
The security hardened real-time operating system for the HTA described herein comprises:
- a run-time
- a stack
The system is configured to check the non-volatile and volatile memory through a variety of specific procedures, including:
実行時真正性チェック手順500は、実行時に制御下のコードの完全性を維持することからなる、真正性方法に基づくハードニング技法である。これは、スタートアップを含む通常のシステム動作と並行に行われ、真正性がトラストルートから開始して検証され、他の時には、外部イベント(コードの一部の更新など)に関係し得る頻度で、または所定の定期的メカニズムで、またはHTAの非アクティブ時間を利用して、実行することができる。
The run-time
このようにして、ハードニングリアルタイムオペレーティングシステムは、侵入されたシステムが、それ自体のメモリ内容に不正を行うのを防止する。 In this way, a hardened real-time operating system prevents a compromised system from tampering with its own memory contents.
このハードニング技法は、図1に示されるように、HTAが、ECUのフラッシュメモリへのフルアクセスを有する1つの追加のコアとして得られていることを利用する。結果として、単に上記ハードウェアトラストアンカ不揮発性メモリをチェックするために開発された実行時真正性チェック手順500は、ホストコア上で実行されている安全性に不可欠なアプリケーションにいかなる影響または遅延も生じさせることなく、フラッシュメモリ全体のコード完全性を実証するように構成することができる。
This hardening technique takes advantage of the fact that the HTA is available as an additional core with full access to the ECU's flash memory, as shown in FIG. 1. As a result, the run-time
この理由で、また説明を一般化するために、本明細書では、実行時真正性チェック手順500は、フラッシュメモリ全体をチェックするように構成されたものと想定されている。
For this reason, and to generalize the description, it is assumed herein that the runtime
実行時真正性チェック手順500は、署名済みSWブロックに基づく検証メカニズムと、証明書とを使用する。
The runtime
ホスト11の不揮発性メモリ111およびHTA12の不揮発性メモリ121bを概略的に示す図3に示すように、署名済みSWブロックSSB、すなわちデータの真正性および完全性を提供するデジタル署名が付与されたソフトウェアブロックは、ホスト11およびハードウェアトラストアンカ12の不揮発性メモリ111および121b、特にフラッシュメモリ内のプログラムメモリにそれぞれ格納され、証明書Cと、最終的には、下記でより良く説明される検出された異常についての情報を与えるセキュアログSLとは、例えば、プログラムフラッシュメモリおよびデータフラッシュメモリを含む、全ての慎重に扱うべきデータ(例えば、キー)を格納するためにも使用されるセキュアストレージ121内の不揮発性メモリ121bに格納される。 As shown in FIG. 3, which shows a schematic representation of the non-volatile memory 111 of the host 11 and the non-volatile memory 121b of the HTA 12, the signed SW block SSB, i.e. the software block with the digital signature providing the authenticity and integrity of the data, is stored in the non-volatile memory 111 and 121b of the host 11 and the hardware trust anchor 12, respectively, in particular in the program memory in the flash memory, and the certificate C and, finally, the secure log SL, which gives information about the detected anomaly as better explained below, are stored in the non-volatile memory 121b in the secure storage 121, which is also used to store all sensitive data (e.g. keys), including, for example, the program flash memory and the data flash memory.
署名済みSWブロックSSBは、ハードウェアトラストアンカ12のフラッシュメモリにプログラムされた、また最終的にはホスト11、具体的にはECUにもプログラムされた、バイナリデータに対応する。 The signed SW block SSB corresponds to binary data programmed into the flash memory of the hardware trust anchor 12 and ultimately into the host 11, specifically the ECU.
ECUには、いくつかの署名済みSWブロックSSBが存在する。ホストおよびHTAはどちらも、プログラムフラッシュメモリおよびデータフラッシュメモリを含むそれぞれの不揮発性メモリを有し、したがって、SSBは、ホストおよびHSMに分散されてよい。ホストおよびHTAは、異なる時間に実行され、異なる目的を有する。例えば、ホストのフラッシュメモリにおいて、ブートローダBL:いずれのアプリケーションコードの前に実行される1つのコードである。アプリケーションAPP:ブートローダの後に実行される1つのコードである。 There are several signed SW blocks SSB in the ECU. Both the host and HTA have their own non-volatile memories including program flash memory and data flash memory, so the SSB may be distributed in the host and HSM. The host and HTA run at different times and have different purposes. For example, in the host's flash memory: Boot loader BL: a piece of code that runs before any application code; Application APP: a piece of code that runs after the boot loader.
キャリブレーションCLB:アプリケーションが適切に動作するために必須のデータを含む1つのコードである。ハードウェアトラストアンカのフラッシュメモリにおいて、ブート:いずれのオペレーティングシステムが動作する前に実行される1つのコードである。 Calibration CLB: A piece of code that contains essential data for an application to run properly. In the flash memory of the hardware trust anchor. Boot: A piece of code that runs before any operating system runs.
アプリケーションAPP:オペレーティングシステムが動作した後に実行される1つのコードである。この1つのコードは、リアルタイムオペレーティングシステムを含んでよい。 Application APP: A piece of code that runs after the operating system is running. This piece of code may include a real-time operating system.
各署名済みSWブロックSSBは、ヘッダSSBHおよびデータSSBDという2つのセクションを有するメタデータと呼ばれるある情報と関連付けられる。
-ヘッダSSBHフィールドは、ブロックの内容および全ての暗号ハッシュおよび署名についての情報を含み、
-データSSBDフィールドは、真正性および完全性の証明が必要と判定されたデータのブロックである。
Each signed SW block SSB is associated with some information called metadata, which has two sections: a header SSBH and data SSBD.
- The header SSBH field contains information about the block's contents and all cryptographic hashes and signatures;
- The Data SSBD field is a block of data that has been determined to require proof of authenticity and integrity.
証明書(またはデジタル証明書)は、通信目的ならびに所有権および有効性を証明するのに使用されるカプセル化されたパブリックキーである。証明書は、証明書の内容の信頼性を伝えるために、認証機関によって署名されている。 A certificate (or digital certificate) is an encapsulated public key used for communication purposes and to prove ownership and validity. Certificates are signed by a certification authority to convey the authenticity of the certificate's contents.
証明書は、非限定的な例によれば、X.509v3証明書に準拠し、ASN.1 DERフォーマットにエンコードされている。 The certificate, by way of a non-limiting example, is X.509v3 certificate compliant and encoded in ASN.1 DER format.
例えば、ECUの観点から最高位の証明書を表し、別の証明書に対して有効性を確認され得ない、HTAにおけるルート証明書が存在し得る。ECUの観点から中間の証明書を表し、このようなルート証明書に対して有効性を確認される、ホストにおいて実行されているアプリケーションソフトウェアおよびホストソフトウェア自体(例えば、ブートローダ)の証明書が存在する。 For example, there may be a root certificate in the HTA that represents the highest certificate from the ECU's point of view and cannot be validated against another certificate. There are certificates for application software running on the host and the host software itself (e.g., the boot loader) that represent intermediate certificates from the ECU's point of view and are validated against such a root certificate.
一般的に、実行時真正性チェック手順500は、ホストによって要求される他の実行時サービスと干渉しないようにHTA12に実装された低優先度タスク(すなわち、バックグラウンドタスク)である。特に、実行時真正性チェック手順500は、それらの実行について許容された遅延を超えるべきでない。
Generally, the runtime
しかしながら、HTA12に多数の操作を要求する攻撃者または要求が過度に厳しいホスト11が実行時真正性チェック500の実行を妨げる可能性も回避するとともに、ソフトウェアの不正操作を検出することが必要である。同時に、フラッシュ全体を検証する時間が所定の値を超えることを回避しなければならない。
However, it is necessary to prevent the possibility that an attacker who requests a large number of operations from the HTA 12 or an overly demanding host 11 may prevent the execution of the
これらの正反対のビジョンを融合させるために、実行時真正性チェックは、他のホスト/HTAのサービスに対して最優先される定期的なタスクにおいて実行され、チェックは、構成可能な持続時間のn個の段階に分割される。図4には、実行時真正性チェック手順500を示すフロー図が示されている。
To reconcile these opposing visions, the runtime authenticity check is performed in a periodic task that has the highest priority relative to other host/HTA services, and the check is divided into n stages of configurable duration. Figure 4 shows a flow diagram illustrating the runtime
実行時真正性チェック500は、段階505にて、実行のために上記ハードウェアトラストアンカ12のプログラムメモリ内に存在し、また最終的にはホスト11のプログラムメモリ111内にも存在する、署名済みソフトウェアブロックSSBならびに対応するヘッダSSBHおよびデータブロックSSBDを識別する段階と、段階510にて、各署名済みソフトウェアブロックSSBj(jは、識別される署名済みソフトウェアブロックSSBのゼロから数Nまでの署名済みブロックの識別インデックスである)について、各署名済みSWブロックSSBに関連する各証明書Cの有効性のチェックを実行する段階とを含む。各証明書の有効性のチェックは、HTA12に格納されることになる任意の新たな証明書が、自己署名証明書でない限り、HTA12に格納された別の証明書に対して検証されなければならないことを含む。
The run-
次に、段階520にて、現在の署名済みSWブロックSSBj、HeaderSignatureのヘッダ署名フィールドSSBHが検証され、これにより、ブロックのヘッダの内容の真正性および完全性を保証する。このフィールドは、ヘッダの始点からその長さにわたってデジタル署名を含む。
Next, in
次に、段階530にて、現在の署名済みSWブロックコードSSBjブロックハッシュが検証される。現在の署名済みSWブロックコードのヘッダ内のファイルダイジェストフィールドは、データブロックにわたって計算された適合SHA-256ダイジェストを規定し、チェックは、ファイルダイジェストフィールドが、特に暗号化ハードウェアアクセラレーションモジュール122内のデータブロックにわたって実行時真正性チェックによって、特にハッシュ値をコンピュートするためのハッシュエンジン122aによって計算された適合SHA-256ダイジェストに等しい場合にのみ、合格となる。
Next, in
チェックする段階510、520または530において異常が検出された場合、段階550にて、チェック中にSSBに関してセキュアログSLが既に作成されているかがチェックされる。否であれば、段階560にて、HTA12のデータメモリ(不揮発性メモリ121b)内にセキュアログSLが作成され、その中に、検出された異常についての情報が書き込まれる。すなわち、セキュアログ記録が呼び出され、そうでなければ、既に作成されたセキュアログSLが更新される。一般に、このような有効性のチェック段階510、520、530のうちの1つが異常を検出したら、検出された異常に関するセキュアログSL情報の書き込みが実行される。
If an anomaly is detected in the checking steps 510, 520 or 530, then in
図5には、ホスト11によりHTA12に対して要求されるサービスの実行の持続時間DHを所与として、認証手順500の一部が持続時間のインターバルDRの間に実行されることを示す時間図が示されている。期間Tは、様々なホストサービスのサービス持続時間DHを含むような長さを有する。
In FIG. 5, a time diagram is shown showing that, given a duration DH of the execution of a service requested by the host 11 to the HTA 12, a portion of the
したがって、すぐ上で説明したように、一実施形態において、信頼できる操作を実行するように構成された処理システム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も実施する。
Thus, as explained immediately above, in one embodiment, a processing system 10 configured to perform trusted operations comprises at least one host computing module 11, including a host processing unit 113 and, for example, volatile and non-volatile host memory means 111, 112, and a hardware trust anchor 12. The hardware trust anchor 12 includes a respective secure processing unit 123, a hardware processing module 122 dedicated to cryptographic operations, and a secure storage means 121. Here, the hardware trust anchor 12 is configured to store and execute a real-time secure operating system HOS. The real-time secure operating system HOS is configured to perform validity checks on software used in the processing system 10. The secure operating system is specifically configured to perform a runtime authenticity check 500 that controls the integrity of the software code at runtime. Said run-
同時に実行が必要な複数のスケジュール可能エンティティをハンドリングするために、オペレーティングシステムは、マルチプロセッシングを実装する。プロセス(またはセキュアハードニングリアルタイムオペレーティングシステム内のタスク)は、独立したスケジュール可能コードのシーケンスを含む独立した実行スレッドである。セキュアハードニングリアルタイムオペレーティングシステムを確立するこれらのエンティティは、パフォーマンス(時間およびメモリオーバーヘッド)を犠牲にして、CPU実行時間を得るために独立して競合し得る。各タスクは、関数呼び出しに関連する機能部、レジスタおよびデータ内で定義されたローカル変数を格納する揮発性メモリの固有の専用エリアを有する。 To handle multiple schedulable entities that need to execute simultaneously, operating systems implement multiprocessing. A process (or task in a secure-hardened real-time operating system) is an independent thread of execution that contains an independent sequence of schedulable code. These entities that make up a secure-hardened real-time operating system can compete independently for CPU execution time, at the expense of performance (time and memory overhead). Each task has its own dedicated area of volatile memory that stores local variables defined within the functional units, registers and data associated with function calls.
スケジューラは、1つのタスクの実行から別のタスクの実行に切り替えることを望む場合、古いタスクのコンテキストを保存し、新たなタスクのコンテキストをロードしなければならない。タスクのコンテキストは、タスクが使用するレジスタ(プログラムカウンタ、スタックポインタ、他の作業レジスタ)のセットである。特に、このレジスタのうちの1つ(スタックポインタ)は、現在使用されているスタック領域に対するポインタである。システムの正しい動作のためには、異なるスタック領域間で干渉がないことを確実にすることが不可欠である。スタックの干渉は、悪意のあるユーザによる攻撃を受けている車両に頻発することで有名なので、この側面はセキュリティの観点から重要である。 When the scheduler wants to switch from the execution of one task to another, it has to save the context of the old task and load the context of the new task. The context of a task is the set of registers used by the task (program counter, stack pointer, other working registers). In particular, one of these registers (the stack pointer) is a pointer to the stack area currently used. For the correct operation of the system, it is essential to ensure that there is no interference between different stack areas. This aspect is important from a security point of view, since stack interferences are notorious for being frequent in vehicles under attack by malicious users.
不揮発性メモリ内のコードおよびデータの一部の完全性チェックは、揮発性メモリに関して常に可能ではない。メモリのそれらの部分に含まれるデータは、プロセスの実行中、継続的に修正されるので、データの完全性を検証するのではなく、プロセスによって使用されているメモリ領域が事前に確立された境界を超えないことをチェックすることが好ましい。 Checking the integrity of parts of the code and data in non-volatile memory is not always possible as for volatile memory. Since the data contained in those parts of memory is continuously modified during the execution of the process, it is preferable not to verify the integrity of the data but to check that the memory area used by the process does not exceed pre-established boundaries.
図6には、セキュア処理ユニット123のバンクレジスタRと、RAMメモリ121aとが示されている。RAMメモリ121a内には、プロセススタックPSSおよびメインスタックMSSを含むスタックSSが示されている。知られているように、プロセススタックまたはタスクスタックは、一般的に、リターンアドレス、プロシージャの引数、一時退避レジスタ、およびローカルに割り当てられる変数のために使用される事前予約されたシステムメモリのエリアである。処理ユニットは、一般的に、スタックポインタSTPによってスタックの上部を指し示すレジスタ、すなわちCPUレジスタRを含む。 Figure 6 shows the bank registers R of the secure processing unit 123 and the RAM memory 121a. Within the RAM memory 121a, stacks SS are shown, including a process stack PSS and a main stack MSS. As is known, a process stack or task stack is typically a pre-reserved area of system memory used for return addresses, procedure arguments, temporary save registers, and locally allocated variables. The processing unit typically includes a register, the CPU register R, that points to the top of the stack via a stack pointer STP.
図示のように、プロセススタックMSS内には、それぞれのスタックサイズTSSを有する第1のタスクTAの第1のスタックSSAおよび第2のタスクTBの第2のスタックSSBが存在し、スタックサイズTSSは、プロセススタックMSS内の対応するスタック範囲を規定する。図に示されているように、第1のタスクTAの第1のスタックSSAおよび第2のタスクTBの第2のスタックSSBの両方における、例えば最後の8/16バイトに対応する、スタック範囲の最後の部分は、スタックパターンSPを表す。これについては、図7のフロー図を参照しながら説明する。 As shown, within the process stack MSS there is a first stack SSA of a first task TA and a second stack SSB of a second task TB with respective stack sizes TSS, which define corresponding stack ranges within the process stack MSS. As shown, the last part of the stack ranges, e.g., corresponding to the last 8/16 bytes, in both the first stack SSA of the first task TA and the second stack SSB of the second task TB represents the stack pattern SP. This will be explained with reference to the flow diagram of FIG. 7.
タスク動作の変更中、オペレーティングシステムは、どのタスクがタスクまたはスケジューラテーブルを用いて実行されているかを追跡する方法を必要とする。この場合、それには3つのルーチンが必要とされる。
-図6に示すように、コンテキストスイッチを実行し、CPU内に存在する退出タスクレジスタ、すなわち第1のタスクTAのタスクレジスタが、第1のタスクTAのスタックエリアSSA内に保存され、次に、進入タスクレジスタ、すなわち第2のタスクTBのタスクレジスタがCPUレジスタ内の第2のタスクTBのスタックエリアSSBからリロードされ、
-システムを初期化して、セキュアリアルタイムオペレーティングシステムを構成する状態マシンおよび内部構造を更新し、
-新たなタスク、すなわち第2のタスクTBにジャンプする。
During the change of task activity, the operating system needs a way to keep track of which task is running using the task or scheduler table. In this case, three routines are required:
- as shown in Figure 6, a context switch is performed, where the exiting task registers present in the CPU, i.e. the task registers of the first task TA, are saved in the stack area SSA of the first task TA, and then the entering task registers, i.e. the task registers of the second task TB, are reloaded from the stack area SSB of the second task TB in the CPU registers;
- initializing the system and updating the state machines and internal structures that constitute the secure real-time operating system;
- Jump to the new task, ie the second task TB.
プロセスおよびシステム実行の完全性を保証するために、タスクオーバーフロー制御のメカニズム、すなわちスタックオーバーフロー検出手順600を実行することが必要である。スタックオーバーフロー検出手順600もまた、有効なスタック領域の境界が上書きされていないことを検証する。スタックオーバーフロー検出手順600は、図7のフロー図に示されている。
To ensure the integrity of the process and system execution, it is necessary to execute a task overflow control mechanism, namely the stack
段階610にて、タスク、例えば、TA、TBに割り当てられたスタック、例えば、SSA、SSBは、既知のパターン、すなわちシステムおよびタスクが初期化された時点でのスタックパターンSPで満たされる。
At
次に、すべてのコンテキストスイッチの間に、オペレーティングシステムは、有効スタック範囲内の最後の部分、例えば、最後の8/16バイトをチェックし(620)、このパターンが変更されていないままである(上書きされていない)ことを確実にする。 Then, during every context switch, the operating system checks (620) the last portion of the valid stack range, e.g., the last 8/16 bytes, to ensure that this pattern remains unchanged (not overwritten).
テスト段階620にて、これらのスタックの最後の部分のバイトがいずれも元の値から変更されていないことが検証された場合、段階630にて、スタックオーバーフローフック機能が呼び出される。このようなスタックオーバーフローフック機能は、異常を捕捉し、エラーコードを提起する(640)と共に、段階550と同様に異常イベント、すなわち異常を好ましくは同じログSLに記録して(650)、オペレーティングシステムに対して異常をはっきりと示す。
If
手順600は、エラーを捉え、すなわちエラーを提起し、異常、すなわちほとんどのスタックオーバーフローの発生をログ記録するが、例えば、最後のバイトが書き込まれずにスタックオーバーフローが発生した場合、そのうちいくつかは見逃され得ることが想定される。
システム10は、HTA12の機能時間内での実行を保証するために、リアルタイム検出手順700を実行するようにも構成される。このような手順700は、タスク実行をモニタして、時間が割り当てられたタイムバジェット(最悪実行時間)を超えた場合に反応する。
The system 10 is also configured to execute a real-
このメカニズム制御および実行時真正性チェックは、大きなタイムスケールでは、完全性分析が実行されたことを検証するが、小さなタイムスケールの場合には、HOSタスクにマッピングされた全てのセキュリティ機能が実行され、時間内に実行されたことを検証する。 This mechanism control and run-time authenticity check verifies that on large timescales an integrity analysis has been performed, but on smaller timescales it verifies that all security functions mapped to HOS tasks have been executed and performed in time.
システムの分析および設計の間、リアルタイムでのコードの実行を保証するために、システムがタスクをスケジューリングすることおよびハードリアルタイムの要件の非違反を可能にするように最大持続時間(タイムバジェット)が各タスクに割り当てられている。これらの実行時間の検証は、タスクの実行中、システムによってリアルタイムで実行され、違反の可能性が検出されたら、補正およびログ記録の操作を起こすことができる。 During system analysis and design, to ensure that code executes in real time, a maximum duration (time budget) is assigned to each task to allow the system to schedule the task and not violate hard real-time requirements. These execution time verifications are performed by the system in real time during task execution, and corrective and logging actions can be taken if possible violations are detected.
実行するようにスケジュールされた時間と終了/応答時間との間に規定される定期的なタスクTKは、3つのパラメータC、D、Tによって規定される。ここで、Cは最悪実行時間(WCET)またはリソースタイムバジェット、すなわちコンピューティング時間を示し、Dは、相対デッドライン、すなわちデッドライン時間であり、Tは、期間(時間期間)である。 A periodic task TK, defined between the time it is scheduled to execute and its completion/response time, is defined by three parameters C, D, and T, where C denotes the worst case execution time (WCET) or resource time budget, i.e., computing time, D is the relative deadline, i.e., the deadline time, and T is the duration (time period).
同じタスクの2つの連続するジョブインスタンスの間に複数の期間が存在する散発的なタスクシステムを検討すると、特定の時間に発生するジョブは、せいぜい、対応するデッドラインDの前の時間間隔におけるCの時間単位の間に実行されなければならない。 Considering a sporadic task system where there are multiple periods between two successive job instances of the same task, a job occurring at a particular time must be executed at most C time units in the time interval before the corresponding deadline D.
散発的なタスクの特定の事例としては、タスクによって生成された2つの連続するジョブの到着の間でその期間が正確に時間的に分離されている定期的なタスクである。 A particular case of a sporadic task is a periodic task whose period is exactly separated in time between the arrival of two successive jobs generated by the task.
各インスタンスついてデッドラインDが期間Tに対応する、絶対的デッドラインシステムと、
各場合についてデッドラインDが期間T未満である、制約付きデッドラインシステムと、
デッドラインDと期間Tとの間に制約がない、恣意的デッドラインシステムと、
が区別される。
an absolute deadline system in which for each instance a deadline D corresponds to a period T;
a constrained deadline system, in which for each case the deadline D is less than the period T;
An arbitrary deadline system, in which there is no constraint between the deadline D and the period T;
are distinguished.
処理システム10は、図8のフロー図を参照しながら本明細書において説明される時間検出手順700を実行するように構成される。ここで、デッドラインDおよび期間の間に制約は存在しないが、タスク最悪実行時間Cについて一般タスクTKの違反をチェックする段階710が実行される。ここで、所与の例の最悪実行時間Cの値は、オフライン時間解析によって与えられる。段階720にて、異常が、好ましくは同じセキュリティログSLに記録される。したがって、上記の説明から、記載された解決策の利点が明らかである。
The processing system 10 is configured to execute a
説明されたシステムは、セキュアハードニングリアルタイムオペレーティングシステムを好都合に備え、ここで、実行時にオペレーティングシステムソフトウェア上またはアプリケーションソフトウェア上のいずれかで真正性チェックを実行することによって、セキュアハードニングが得られる。真正性チェックは、定期的に高優先度を用いて、暗号および証明書有効性確認に専用ハードウェアを利用することにより、リアルタイムで実行される。 The described system advantageously comprises a secure-hardened real-time operating system, where secure hardening is obtained by performing authenticity checks on either the operating system software or on the application software at run-time. Authenticity checks are performed in real-time, periodically with high priority, and by utilizing dedicated hardware for cryptographic and certificate validation.
特に、本明細書に開示されたシステムは、他のホスト/HTAのサービスに対して最優先される定期的なタスクにおいて認証手順を実行することによって、HTAに対して多数の動作を要求する攻撃者または要求が過度に厳しいホストが実行時真正性チェックの実行を妨げる可能性も回避するとともに、ソフトウェアの不正操作を検出する。同時に、フラッシュ全体を検証する時間が所定の値を超えることが回避される。 In particular, the system disclosed herein performs the authentication procedure in a periodic task that has the highest priority over the services of other hosts/HTAs, thereby avoiding the possibility that an attacker or an overly demanding host that requests a large number of operations from the HTA could prevent the execution of the runtime authenticity check, and also detecting software tampering. At the same time, it is avoided that the time to verify the entire flash exceeds a predetermined value.
当然ながら、実施形態の原理に影響を与えることなく、以下の特許請求の範囲に規定された本実施形態の範囲から逸脱しなければ、構成の詳細および実施形態を単に例として本明細書に説明および図示されたものに対して広く変更してよい。 Naturally, the details of construction and the embodiments may be widely varied from those described and illustrated herein, merely by way of example, without affecting the principles of the embodiments and without departing from the scope of the present embodiments as defined in the following claims.
Claims (12)
前記リアルタイムセキュアオペレーティングシステム(HOS)は、実行時にソフトウェアコードの完全性を制御する実行時真正性チェックを実行するように構成され、前記実行時真正性チェックは、少なくとも実行のために前記ハードウェアトラストアンカのプログラムメモリ内に存在する署名済みソフトウェアブロック(SSB)ならびに対応するヘッダ(SSBH)およびデータブロック(SSBD)を識別する段階と、
前記署名済みソフトウェアブロック(SSB)に関連付けられた証明書(C)の有効性をチェックする第1の段階、
前記署名済みソフトウェアブロック(SBB)のヘッダ(SSBH)の有効性をチェックする第2の段階、
前記署名済みソフトウェアブロック(SSB)のデータ(SSBD)のハッシュの有効性をチェックする第3の段階、
を実行する段階と、
前記有効性チェックのチェックする段階のうちの1つによって異常が検出された場合、前記検出された異常に関する情報をセキュアログ(SL)に書き込む段階と、
を含み、
前記リアルタイムセキュアオペレーティングシステム(HOS)は、他のホストコンピューティングモジュールまたはハードウェアトラストアンカのサービスに対して最優先されるタスク(PL)において前記実行時真正性チェックを実行するように構成される、システム。 1. A processing system configured to perform trusted operations, comprising at least one host computing module including a host processing unit and a host memory means, and a hardware trust anchor, the hardware trust anchor comprising a respective secure processing unit, a hardware processing module dedicated to cryptographic operations, and secure storage means, the hardware trust anchor configured to store and execute a real-time secure operating system (HOS), the real-time secure operating system (HOS) configured to perform validity checks on software used in the processing system,
The real-time secure operating system (HOS) is configured to perform a runtime authenticity check to control the integrity of software code at runtime, the runtime authenticity check identifying at least a signed software block (SSB) and corresponding header (SSBH) and data block (SSBD) present in a program memory of the hardware trust anchor for execution;
a first step of checking the validity of a certificate (C) associated with said signed software block (SSB),
a second step of checking the validity of a header (SSBH) of the signed software block (SBB);
A third step of checking the validity of a hash of the Signed Software Block (SSB) data (SSBD);
and
if an anomaly is detected by one of the validity checks, writing information about the detected anomaly to a secure log (SL);
Including,
The system, wherein the real-time secure operating system (HOS) is configured to perform the runtime authenticity check in a task that has highest priority (PL) relative to the services of other host computing modules or hardware trust anchors.
各署名済みソフトウェアブロック(SSB)について、
前記署名済みソフトウェアブロック(SSB)に関連付けられた証明書(C)の有効性をチェックする第1の段階、
前記署名済みソフトウェアブロック(SBB)のヘッダ(SSBH)の有効性をチェックする第2の段階、
前記署名済みソフトウェアブロック(SSB)のデータ(SSBD)のハッシュの有効性をチェックする第3の段階、
を実行する段階と、
前記有効性チェックのチェックする段階のうちの1つによって異常が検出された場合、前記検出された異常に関する情報をセキュアログ(SL)に書き込む段階と、
を含み、
前記リアルタイムセキュアオペレーティングシステムは、他のホストコンピューティングモジュールまたはハードウェアトラストアンカのサービスに対して最優先されるタスク(PL)において前記実行時真正性チェックを実行するように構成される、方法。 11. A method of performing trusted operations in a processing system, comprising storing and executing a real-time secure operating system (HOS) for performing validity checks on software used in the processing system according to any one of claims 1 to 10, the method comprising the steps of performing a run-time authenticity check for controlling the integrity of software code at run-time, the run-time authenticity check identifying at least a signed software block (SSB) and corresponding header (SSBH) and data block (SSBD) present in a program memory of the hardware trust anchor for execution;
For each Signed Software Block (SSB),
a first step of checking the validity of a certificate (C) associated with said signed software block (SSB),
a second step of checking the validity of a header (SSBH) of the signed software block (SBB);
A third step of checking the validity of a hash of the Signed Software Block (SSB) data (SSBD);
and
if an anomaly is detected by one of the validity checks, writing information about the detected anomaly to a secure log (SL);
Including,
The method of claim 1, wherein the real-time secure operating system is configured to perform the runtime authenticity check in a highest priority task (PL) relative to the services of other host computing modules or a hardware trust anchor.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IT102019000017534 | 2019-09-30 | ||
| IT102019000017534A IT201900017534A1 (en) | 2019-09-30 | 2019-09-30 | "Processing system including" trust anchor "type calculation apparatus and corresponding procedure" |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2021057043A JP2021057043A (en) | 2021-04-08 |
| JP7635494B2 true JP7635494B2 (en) | 2025-02-26 |
Family
ID=69191192
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020161525A Active JP7635494B2 (en) | 2019-09-30 | 2020-09-25 | Processing system with trust anchor computing device and corresponding method - Patents.com |
Country Status (3)
| Country | Link |
|---|---|
| JP (1) | JP7635494B2 (en) |
| CN (1) | CN112580015B (en) |
| IT (1) | IT201900017534A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113961362B (en) * | 2021-11-14 | 2024-01-16 | 苏州浪潮智能科技有限公司 | A process identification method, system, storage medium and device |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000293382A (en) | 1999-04-12 | 2000-10-20 | Denso Corp | Task start controller using real-time operating system |
| JP2005227995A (en) | 2004-02-12 | 2005-08-25 | Sony Corp | Information processing apparatus, information processing method, and computer program |
| JP2009116901A (en) | 2002-04-23 | 2009-05-28 | Panasonic Corp | Update method, transmission method, server and terminal |
| JP2010182296A (en) | 2009-01-08 | 2010-08-19 | Panasonic Corp | Program execution apparatus, control method, control program and integrated circuit |
| JP2010274783A (en) | 2009-05-28 | 2010-12-09 | Autonetworks Technologies Ltd | Control device and computer program |
| JP2014059724A (en) | 2012-09-18 | 2014-04-03 | Dainippon Printing Co Ltd | Tampering detection method for application program |
Family Cites Families (5)
| 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 |
| US9792427B2 (en) * | 2014-02-07 | 2017-10-17 | Microsoft Technology Licensing, Llc | Trusted execution within a distributed computing system |
| EP3026557A1 (en) * | 2014-11-28 | 2016-06-01 | Thomson Licensing | Method and device for providing verifying application integrity |
| CN105718807B (en) * | 2016-01-26 | 2018-08-03 | 东北大学 | Android system and its authentic authentication system based on soft TCM and credible software stack and method |
-
2019
- 2019-09-30 IT IT102019000017534A patent/IT201900017534A1/en unknown
-
2020
- 2020-09-25 JP JP2020161525A patent/JP7635494B2/en active Active
- 2020-09-30 CN CN202011057520.8A patent/CN112580015B/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000293382A (en) | 1999-04-12 | 2000-10-20 | Denso Corp | Task start controller using real-time operating system |
| JP2009116901A (en) | 2002-04-23 | 2009-05-28 | Panasonic Corp | Update method, transmission method, server and terminal |
| JP2005227995A (en) | 2004-02-12 | 2005-08-25 | Sony Corp | Information processing apparatus, information processing method, and computer program |
| JP2010182296A (en) | 2009-01-08 | 2010-08-19 | Panasonic Corp | Program execution apparatus, control method, control program and integrated circuit |
| JP2010274783A (en) | 2009-05-28 | 2010-12-09 | Autonetworks Technologies Ltd | Control device and computer program |
| JP2014059724A (en) | 2012-09-18 | 2014-04-03 | Dainippon Printing Co Ltd | Tampering detection method for application program |
Non-Patent Citations (1)
| Title |
|---|
| 竹森 敬祐 ほか,セキュアブート+認証による車載制御システムの保護,電子情報通信学会技術研究報告,日本,電子情報通信学会,2014年09月12日,Vol. 114 No. 225,p. 47-54 |
Also Published As
| Publication number | Publication date |
|---|---|
| IT201900017534A1 (en) | 2021-03-30 |
| JP2021057043A (en) | 2021-04-08 |
| CN112580015B (en) | 2025-08-22 |
| CN112580015A (en) | 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 | |
| EP1560098B1 (en) | Method and system ensuring installation or execution of a software update only on a specific device or class of devices | |
| CN109840430B (en) | PLC Safety Processing Unit and Its Bus Arbitration Method | |
| US9767271B2 (en) | System and method for validating program execution at run-time | |
| US7644287B2 (en) | Portion-level in-memory module authentication | |
| US8640194B2 (en) | Information communication device and program execution environment control method | |
| JP4498735B2 (en) | Secure machine platform that interfaces with operating system and customized control programs | |
| US7831838B2 (en) | Portion-level in-memory module authentication | |
| US8213618B2 (en) | Protecting content on client platforms | |
| US7401234B2 (en) | Autonomous memory checker for runtime security assurance and method therefore | |
| US8490179B2 (en) | Computing platform | |
| JP5346608B2 (en) | Information processing apparatus and file verification system | |
| US20200159512A1 (en) | Software installation method | |
| WO2009051471A2 (en) | Trusted computer platform method and system without trust credential | |
| JP2022094755A (en) | Information processing device, method, and program | |
| EP4287054A1 (en) | Computer implemented method for updating a safety software code, computer hardware device, computer program and a computer-readable medium | |
| Pott et al. | Firmware security module: A framework for trusted computing in automotive multiprocessors | |
| JP7635494B2 (en) | Processing system with trust anchor computing device and corresponding method - Patents.com | |
| US9213864B2 (en) | Data processing apparatus and validity verification method | |
| Lorych et al. | Hardware trust anchor authentication for updatable IoT devices | |
| Nasser | Securing safety critical automotive systems | |
| JP7511492B2 (en) | Automotive Electronic Control Units | |
| JP7754193B2 (en) | Method, device, and program for creating a secure computing execution environment | |
| US20250245303A1 (en) | Peripheral device-based management of user space process credentials | |
| US11526598B2 (en) | Microcontroller and semiconductor device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230804 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240723 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240724 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241018 |
|
| 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: 20250114 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250123 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7635494 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |