JP7392157B2 - コンピューティングデバイスの動作方法及び動作装置 - Google Patents

コンピューティングデバイスの動作方法及び動作装置 Download PDF

Info

Publication number
JP7392157B2
JP7392157B2 JP2022537899A JP2022537899A JP7392157B2 JP 7392157 B2 JP7392157 B2 JP 7392157B2 JP 2022537899 A JP2022537899 A JP 2022537899A JP 2022537899 A JP2022537899 A JP 2022537899A JP 7392157 B2 JP7392157 B2 JP 7392157B2
Authority
JP
Japan
Prior art keywords
zone
central processing
processing unit
supervisor
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022537899A
Other languages
English (en)
Other versions
JP2023508913A (ja
Inventor
ヤウス マヌエル
フローリン アグリダン ラツヴァン
カルタール ムスタファ
シュテフェン ローラント
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2023508913A publication Critical patent/JP2023508913A/ja
Application granted granted Critical
Publication of JP7392157B2 publication Critical patent/JP7392157B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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
    • G06F21/53Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本開示は、少なくとも1つの中央処理装置(コンピューティングコア)を有するコンピューティングデバイスの動作方法に関する。
本開示はさらに、そのような方法を実施するための装置に関する。
発明の開示
高度にネットワーク化された近年の車両の関連においては、特に、多様な外部インタフェースが原因で、制御装置及び/又は組込システムなどのコンピューティングデバイス上の侵入表面が著しく増加している。特に、いわゆる遠隔侵入のリスク、即ち、例えばインタネットを介した、車両又はコンピューティングデバイスへの物理的なアクセスを伴わない侵害のリスクが存在している。好ましい実施形態による原理は、有利には、コンピューティングデバイスへのこのような遠隔侵入及び/又は他の侵入の効率的な阻止のために使用され得る。
本発明によれば、侵入の可能性は、特に、異なるゾーン、即ち、各プログラムが割り当てられる少なくとも1つの信頼できるゾーン及び少なくとも1つの信頼できないゾーンを設定することによって低減される。これらの異なるゾーン間のデータ交換は、異なる権限(読取権、書込権ではあるが、実行権ではない)を有する異なるバッファメモリ領域を設定することによって改善される。信頼できないゾーンから信頼できるゾーンへのデータの移行は、まだ信頼されないゾーンにあるデータの確認が行われてはじめて行われる。これによって、改ざんされる可能性がさらに制限される。特に、データ交換のために、特定のバッファメモリ領域へのアクセス権を制御するメモリ保護デバイスを使用することによって、特に、例えば、返送アドレスが誤っている場合のプログラミングの誤りによる悪用ケース、バッファオーバーフロー/バッファアンダーフローなどの場合の不正な上書きを最小限に抑制することができる。ゾーンの分離は、インタフェース、メモリ又はランタイムにも適用され、これによって、悪用される可能性がさらに低減される。さらに、この概念によって、変造されたゾーンの影響がさらに低減される。この概念は、マルチコアソリューションが1つしかない場合に既に実現される。この概念は、容易に拡張可能であり、即ち、セキュリティアーキテクチャに応じて、さらに他のゾーンを容易にこれに追加することができる。
合理的な発展形態においては、異なるゾーン間のデータ交換は、以下のステップ、即ち、第1のゾーンに割り当てられている第1のバッファメモリ領域にデータをコピーするステップと、コピーされたデータを検査又は確認し、この検査又は確認に応じて、第1のゾーンに割り当てられている第1のバッファメモリ領域から、第2のゾーンに割り当てられている第2のバッファメモリ領域にデータをコピーするステップと、を含む。
特に、到来したデータを確認することによって、セキュリティをさらに強化することができる。改ざんに対する高い安全性のもとで、バッファメモリを備えた、この選択された概念に基づいて、データ交換速度を上げることができる。さらに、これに加えて、信頼できるゾーンを監視するための監視メカニズムを用いることによって、この概念は、信頼できないゾーンの監視も可能にする。特に好ましくは、データは、第1のバッファメモリ領域から交換用バッファメモリ領域に書き込まれる。特に合理的には、交換用バッファメモリ領域内に存在するデータは、読取のためのアクセスに関連して、特に他のプログラムによって検査され、データの検査が成功すると、このデータは、交換用バッファメモリ領域から第2のバッファメモリ領域にコピーされる。これによって、ゾーンを明確に分離することができるため、変造されたデータが、信頼できるゾーンに到達することはない。各バッファメモリ領域又は交換用バッファメモリ領域内のデータへの実行のためのアクセスを阻止することによって、セキュリティがさらに強化される。従って、データは検証後にのみ使用することができる。これによって、セキュリティがさらに強化される。
特に合理的には、特に車両、特に自動車用の、特に組込システム及び/又は制御装置用の、少なくとも1つの中央処理装置を有するコンピューティングデバイスの動作方法が想定されており、この方法は、以下のステップ、即ち、
コンピューティングデバイスによって実行可能な1つ又は複数のプログラム、特にアプリケーションプログラム又はサブプログラムを少なくとも2つのゾーンのうちの1つのゾーンに割り当てるステップであって、これらのゾーンは、関連するアプリケーションプログラムを実行するために利用可能な、コンピューティングデバイスのリソースを特徴付ける、ステップと、
任意選択的に、自身に割り当てられているゾーンに応じて、複数のプログラム、特にアプリケーション又はサブプログラムのうちの少なくとも1つを実行するステップと、
を含み、この方法はさらに、
異なるプログラム、特にアプリケーションプログラム及び/又はアプリケーションプログラムのインスタンスに対して計算時間リソースを割り当てるためにスーパーバイザを使用するステップを含み、スーパーバイザ及び/又はスーパーバイザに対応する機能性は、少なくとも部分的に、少なくとも2つのゾーンから独立しているスーパーバイザインスタンスによって実現される。
本発明の他の特徴、適用の可能性及び利点は、図面に示されている、本発明の実施例の以下の説明から明らかになる。ここで、説明された又は図示されたすべての特徴は、特許請求の範囲におけるそれらの括り又はそれらの引用関係に関係なく、また、明細書又は図面におけるそれらの表現又は描写に関係なく、単独で又は任意の組合せにより、本発明の主題を形成する。
好ましい実施形態によるコンピューティングデバイスの簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態による方法の簡略化されたフローチャートを概略的に示す図である。 他の好ましい実施形態によるコンピューティングデバイスの簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による割り込みルーチンの態様を概略的に示す図である。 他の好ましい実施形態による割り込みルーチンの態様を概略的に示す図である。 他の好ましい実施形態によるフローチャートを概略的に示す図である。 他の好ましい実施形態による割り込みルーチンの態様を示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による割り込みルーチンの態様を概略的に示す図である。 他の好ましい実施形態による割り込みルーチンの態様を概略的に示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態によるフローチャートを概略的に示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態によるフローチャートを概略的に示す図である。 他の好ましい実施形態によるフローチャートを概略的に示す図である。 他の好ましい実施形態による装置の簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による構成データの簡略化されたブロック図を概略的に示す図である。 他の好ましい実施形態による簡略化されたブロック図を概略的に示す図である。 自動車内の装置の接続の簡略化されたブロック図を示す図である。
図1は、好ましい実施形態によるコンピューティングデバイス100の簡略化されたブロック図を概略的に示している。コンピューティングデバイス100は、少なくとも1つの中央処理装置、ここでは例示的に4つの中央処理装置102a,102b,102c,102nを有しており、特に、例えば組込システム及び/又は制御装置のために、特に車両、特に自動車のために使用されるものとしてよい。
好ましい実施形態は、以下のステップ、即ち、
1つ又は複数の、コンピューティングデバイス100(図1)によって実行可能なプログラム、特にアプリケーションプログラムAP1,AP2及び/又はサブプログラム及び/又はプロキシ及び/又はインスタンスを少なくとも2つのゾーンZ1,Z2のうちの1つのゾーンに割り当てるステップ200であって、これらのゾーンZ1,Z2は、関連するプログラム、特にアプリケーションプログラムAP1,AP2及び/又はサブプログラム及び/又はプロキシ及び/又はアプリケーションプログラムAP1,AP2のインスタンスを実行するために利用可能な、コンピューティングデバイス100のリソースを特徴付ける、ステップ200と、
任意選択的に、自身に割り当てられているゾーンZ1,Z2に応じて、複数のプログラム、特にアプリケーションプログラムAP1,AP2及び/又はサブプログラム及び/又はプロキシ及び/又はインスタンスのうちの少なくとも1つを実行するステップ210と、を含む、コンピューティングデバイス100の動作方法に関する(図2Aのフローチャートを参照されたい)。
この方法は、任意選択的にさらに、
異なるプログラム、特にアプリケーションプログラムAP1,AP2及び/又はアプリケーションプログラムのインスタンスに対して計算時間リソースを割り当てるためにスーパーバイザSVを使用するステップ212を含み、
スーパーバイザSV及び/又は特にスーパーバイザSVに対応する機能性は、少なくとも部分的に、少なくとも2つのゾーンZ1,Z2から独立しているスーパーバイザインスタンスSVI(図1)を用いて実現される。これは、有利には、プログラム、特にアプリケーションプログラムAP1、AP2、サブプログラム、プロキシ、インスタンスなどの実行時の動作の柔軟性を損なうことなく、コンピューティングデバイス100の動作のセキュリティを強化することを可能にする。
他の好ましい実施形態においては、これによって、例えば、信頼境界(英語で、Trust Boundaries)を、例えば、信頼できるインスタンス/ユニット/ドメインと信頼できないインスタンス/ユニット/ドメインとの間において定義することができる。このようにして、例えば、コンピューティングデバイスの第1のプログラム、特にアプリケーションプログラム及び/又はサブプログラム及び/又はプロキシ及び/又はインスタンスを、信頼できない第1のゾーン(英語で、non-trustworthy zone NTZ)に割り当てることができ、コンピューティングデバイスの第2のプログラム、特にアプリケーションプログラム及び/又はサブプログラム及び/又はプロキシ及び/又はインスタンスを、信頼できる第2のゾーン(英語で、trustworthy zone TZ)に割り当てることができる。
他の好ましい実施形態においては、コンピューティングデバイス100(図1)が複数の(例えば、例示的に図1に示されているように4つの)中央処理装置102a,102b,102c,102nを有することが想定されており、この方法はさらに(図2Bを参照されたい)、a)少なくとも1つの中央処理装置を厳密に1つのゾーンに割り当てるステップ220、及び/又は、b)少なくとも1つの中央処理装置を1つ以上のゾーン、特に2つのゾーンに割り当てるステップ222、c)少なくとも1つの中央処理装置をスーパーバイザインスタンスSVIとして使用するステップ224、特に、少なくとも1つの中央処理装置を専用のスーパーバイザインスタンスSVIとして使用するステップ、d)少なくとも1つのハードウェアセキュリティモジュールHSM及び/又はトラステッドプラットフォームモジュールTPMをスーパーバイザインスタンスSVIとして使用するステップ225を含む。
他の好ましい実施形態においては、例えば、第1の中央処理装置102aは、例えば信頼できないゾーンであり得る第1のゾーンZ1に割り当てられ、第2の中央処理装置102bは、例えば信頼できるゾーンであり得る第2のゾーンZ2に割り当てられる。
他の好ましい実施形態においては、例えば、第3の中央処理装置102cは、第1のゾーンZ1及び第2のゾーンZ2の両方に割り当てられる(図1を参照されたい)。同様のことが、他の好ましい実施形態においては、コンピューティングデバイス100の第4の中央処理装置102nにも当てはまる。
他の好ましい実施形態においては、図1に示されたコンピューティングデバイス100は、図1に詳細に示されていない他のコンポーネントも有し得るものであり、これは、例えば、1つ又は複数のメモリデバイス及び/又は周辺コンポーネントであり、これらは図1において、見易くするために、破線により示された長方形103によって、まとめて暗黙的に示されている。参照符号104は、1つ又は複数のデータインタフェースを表している。
信頼できないゾーンZ1は、接続ゾーン400(図25を参照されたい)にある自動車のコンポーネント/制御装置を含む。ここでは、データは、例えば、無線インタフェース410を介して(例えば、移動無線,WLAN,Bluetoothなどを用いて)、又は、付随するインタフェースポート426を備えた診断インタフェース(OBD)などの有線インタフェース412(物理的な接続で容易にアクセス可能)を介して、交換されるものとしてよい。接続ゾーン400において、可能なコンポーネントとして、例えば、いわゆるコネクティビティコントロールユニット又は車両外部ネットワーキング用のデバイス420,インフォテインメント422,マルチメディアユニット424などが想定されている。この接続ゾーン400には、一方では車外のデバイスとのデータ交換を特徴とし、他方では自動車の走行のために絶対に必要なセキュリティ関連機能を含まない自動車の機能が配置されている。特に、これらは安全分類が低いコンポーネントであり、例えば、自動車におけるセキュリティ関連システムのISO規格であるISO26262に準拠したASIL分類QM又はASIL-Aである。
自動車の走行のために絶対に必要な、このようなセキュリティ関連機能は、セキュリティゾーン440に配置されている。この機能的なセキュリティゾーン440は、特に乗員及び環境を保護するのに役立つ。セキュリティゾーン440には、機能的なセキュリティに関して高い要求を有するすべてのコンポーネント/制御装置(エンジン制御部、ステアリング、ブレーキなど)が含まれる。信頼できるゾーンZ2から到来するすべてのデータは、好ましくは、さらなるインプット確認なく、信頼できるものとして直接評価される。例として、セキュリティゾーン440のコンポーネントは、エンジン制御部442、ブレーキシステム444、ステアリング446などであり得る。セキュリティゾーン440のコンポーネントに対する安全要求が増加している。これは、ISO規格IS026262において分類されているような安全要求であり、IS026262に準拠した安全分類においてASIL-BからASIL-Dまでである。
制御ゾーン430は、特にセキュリティゾーン440と接続ゾーン400との間のデータ交換のための連結部分として設定されている。制御ゾーン430は、説明された機能が実現されているゲートウェイ432によって実現される。制御ゾーン430は、接続ゾーン400とセキュリティゾーン440との間の通信の所期の監視によって特徴付けられる。ここには特に、メモリ保護デバイスSSE又はスーパーバイザSVによる、付随するデータ交換及び監視メカニズムを備えた、信頼できるゾーンZ2と信頼できないゾーンZ1との間のゾーン分離が配置されている。接続ゾーン400と機能的なセキュリティゾーン440との間には、相応の相互作用が発生する。
特に好ましくは、インタフェース410,412,リソース,ランタイム及び特権は、ゾーン(セキュリティ関連ゾーンZ2、非セキュリティ関連ゾーンZ1)に従って分割される。インタフェース410,412は、物理的に別個のバスシステム又は論理的な診断インタフェースであり得る。リソースには、メモリ1030,1030a,プログラムメモリ,データメモリ、及び、データバッファ又はバッファメモリが含まれる。ランタイムには、個別のタスク又は個別の通信プロキシ若しくはインスタンス(例えば、ゾーンZ1,Z2に従ったプロトコルの分割に関連するサブプログラム;これらのプロキシ若しくはサブプログラムは、通信フローにのみ使用される)の設定が含まれる。さらに、プログラムとして、個別のアプリケーションプロキシ又はインスタンス(例えば、コネクテッドサービス、リモートドアロック解除(Remote Door Unlock)、遠隔操作を介した駐車(Remote Parking)のための、データを変更する、若しくは、このデータにアクセスしてアプリケーションプログラムを実行するサブプログラム)が設定されるものとしてよい。特権には、例えば、特権動作モードが含まれる。従って、例えば、メモリ保護デバイスSSEに対する構成データを介して実現され得るように、例えば第1のゾーンZ1に対して、特別なモードが設定されるものとしてよい。さらに、同様に、例えば、メモリ保護デバイスSSEに対する構成データを介して実現され得るように、第2のゾーンZ2に対して、特別なモードが設定されるものとしてよい。さらに、スーパーバイザ又はスーパーバイザインスタンスSVIは、同様に、メモリ保護デバイスSSEに対する構成データを介して表されて、2つのゾーンZ1,Z2に対する上述のモード間の切換のために設定されるものとしてよい。ここでは、メモリ保護デバイスSSEの1回限りの静的なかつ真正の構成が行われる。このための基本的な手法については、以下において詳細に説明する。
他の好ましい実施形態においては、スーパーバイザインスタンスSVIは、例えば、、(専用の)中央処理装置及び/又はハードウェアセキュリティモジュールHSM及び/又はトラステッドプラットフォームモジュールTPMによって形成されるものとしてよく、又は、スーパーバイザインスタンスSVIの機能性が、これらの要素のうちの少なくとも1つの要素を用いて実現されるものとしてよい。
図3は、他の好ましい実施形態によるコンピューティングデバイス100aの簡略化されたブロック図を概略的に示しており、これは、図1に示されたコンピューティングデバイス100と同様に、4つの中央処理装置102a,102b,102c,102nを有する。同様に、図3には、コンピューティングデバイス100aのメインメモリ(RAM)1030、不揮発性メモリ1032(例えば、フラッシュメモリ、特にフラッシュEEPROM)、及び、任意選択的に存在している特殊機能レジスタ1034が示されている。これらは、例えば、それらの周辺コンポーネントの動作を制御するために利用可能である。これらのコンポーネント102a,102b,…,1034は、バスシステム101を介して互いに接続されている。
他の好ましい実施形態においては(図2Cを参照されたい)、コンピューティングデバイス100(図1),100a(図3)の動作方法がさらに、以下の要素、即ち、
a)コンピューティングデバイス100,100aに割り当てられているメモリ1030,1032に対する読取権、
b)コンピューティングデバイスに割り当てられているメモリ1030,1032に対する書込権、
c)コンピューティングデバイスに割り当てられているメモリ1030,1032に対する実行権(遂行権)
のうちの少なくとも1つの要素を、少なくとも1つのゾーンZ1,Z2に応じて制御するステップ230、特に制限するステップを含むことが想定されている。これによって、有利には、対応するゾーンZ1,Z2に割り当てられているプログラム、特にアプリケーションプログラムAP1,AP2(図1)、サブプログラムなどのみが、上述の1つ又は複数のメモリ1030,1032にアクセスし得ることが保証される。例えば、これによって、他の好ましい実施形態においては、信頼できないゾーンのプログラム、特にアプリケーションプログラム、サブプログラム、プロキシが1つ又は複数のメモリ1030,1032にアクセスすること(特に、例えば、信頼できないゾーンによる、信頼できるゾーンに割り当てられているメモリ領域1030,1032へのアクセス)を阻止することができる。これは、場合によっては、信頼できないゾーンのプログラムによるメモリコンテンツの改ざんの可能性に関するリスクである。
他の好ましい実施形態においては(図2Cを参照されたい)、この方法がさらに、少なくとも一時的に、少なくとも1つのメモリ保護デバイスM1,M2,M3,M4,M5_1,M5_2,M5_3,M5_4,M5_5,M5_6,M5_7,M5_8(図3)を、読取権及び/又は書込権及び/又は実行権を制御するために使用するステップ232を含むことが想定されている。
他の好ましい実施形態においては(図2Dを参照されたい)、この方法がさらに、少なくとも1つの中央処理装置102aに少なくとも1つの専用メモリ保護デバイスM1を提供するステップ231を含むことが想定されており、ここでは、特に複数の、好ましくはすべての中央処理装置102a,102b,102c,102nに対してそれぞれ1つの専用メモリ保護デバイスM1,M2,M3,M4が提供される。他の好ましい実施形態においては、さらに、上述のアクセス権、特に読取権及び/又は書込権及び/又は実行権を制御するステップ230、特に制限するステップを実行するために、各(専用)メモリ保護デバイスM1,M2,M3,M4が使用されるものとしてよい(図2Dのステップ232’を参照されたい)。
他の好ましい実施形態においては、使用するステップ232’(図2D)の前に、任意選択的な、メモリ保護デバイスを構成するステップ231aが行われるものとしてよい。
他の好ましい実施形態においては(図2Eを参照されたい)、次のことが想定されている。即ち、少なくとも1つの中央処理装置102aが、少なくとも一時的に第1の動作モードを取り(ステップ240を参照されたい)、特に少なくとも1つの中央処理装置102aは、第1の動作モードにおいて、少なくとも1つのメモリ保護デバイスM1,M2,…,M5_8の動作を制御する構成データ1036(図3)の設定及び/又は書込242を行い、特に少なくとも1つの中央処理装置102aが、少なくとも一時的に第2の動作モードを取り243、少なくとも1つの中央処理装置102aは、第2の動作モードにおいて、少なくとも1つのメモリ保護デバイスM1,M2,…,M5_8に対する構成データの書込及び/又は変更を行うことができない。
他の好ましい実施形態においては、第1の動作モードは、「スーパーバイザモード」又は監視モードと称されることもある。従って、「スーパーバイザモード」又は監視モードは、好ましくは、関連する中央処理装置102aが少なくとも1つのメモリ保護デバイスM1,M2,…,M5_8の構成を実行することができる特権状態であり得る。
他の好ましい実施形態においては、少なくとも1つのメモリ保護デバイスM1,M2,…,M5_8に対する構成データは、例えば、特殊機能レジスタ(英語で、special function register SFR)、特に構成レジスタ1036の形態において設けられるものとしてよく、これらは、場合によっては同様に、少なくとも一時的に、好ましくは対応するメモリ保護デバイスM5_6の制御下において、バスシステム101を介してアクセス可能である。言い換えれば、他の好ましい実施形態においては、例えば、特殊機能レジスタ(SFR)、特に構成レジスタ1036は、少なくとも1つのメモリ保護デバイスM1,M2,…,M5_8の構成データのために設けられるものとしてよい。
他の好ましい実施形態においては(図2Eを参照されたい)、少なくとも1つの中央処理装置102aがイベント駆動方式により、特に少なくとも1つの割り込み要求(英語で、interrupt request)に応じて、第1の動作モードを取る240ことが想定されている。
他の好ましい実施形態においては(図2Fを参照されたい)、この方法がさらに、少なくとも1つのメモリ保護デバイスM1,M2,…,M5_8に対して構成データKDの複数のセットを提供するステップ250を含むことが想定されており、特に、構成データKDの複数のセットのうちの少なくとも1つの第1のセットが、少なくとも2つのゾーンのうちの第1のゾーンZ1に割り当てられ、構成データKDの複数のセットのうちの少なくとも1つの第2のセットが、少なくとも2つのゾーンのうちの第2のゾーンZ2に割り当てられる(ステップ252を参照されたい)。
他の好ましい実施形態においては、少なくとも1つの中央処理装置102aが、専用のシステム状態の範囲において、例えば、開始サイクルの際に及び/又は特定のイベントの際に、例えば割り込みルーチン(英語で、Interrupt Service Routine ISR)に入った際に、スーパーバイザモードなどの特定の動作モードを取ることが想定されており、これは、例えば、ハードウェア駆動方式により行われるものとしてよい。
他の好ましい実施形態においては、少なくとも1つのさらなる非特権動作モードが、1つ又は複数の、好ましくはすべての中央処理装置に対して設定されており(「非特権モード」)、これは、他の好ましい実施形態においては、「ユーザモード」とも称されることがある。ユーザモードにおいては、少なくとも1つのメモリ保護デバイスM1,M2,…,M5_8に対する構成データKD 1036は、好ましくは書込可能ではない。言い換えれば、他の好ましい実施形態においては、現在ユーザモードにある中央処理装置は、少なくとも1つのメモリ保護デバイスM1,M2,…,M5_8に対する構成データKD 1036の書込又は変更を行うことはできず、これに対して、現在スーパーバイザモードにある中央処理装置は、少なくとも1つのメモリ保護デバイスM1,M2,…,M5_8に対する構成データKD 1036の書込又は変更を行うことができる。
他の好ましい実施形態においては、アプリケーションプログラムAP1,AP2が、非特権モード、例えばユーザモードにおいて実行又は遂行されることが想定されている。
他の好ましい実施形態においては、例えば、3つの動作モード又は動作状態又はモードが設定されるものとしてもよく、例えば、第1は、スーパーバイザモード、第2は、特に信頼できないゾーンに対する「ユーザモード1」、第3は、特に信頼できるゾーンに対する「ユーザモード2」である。
他の好ましい実施形態においては、例えば、ユーザモード1において、静的な構成データKD2がアクティブであるものとしてよく、例えば第1のアプリケーションプログラムAP1が実行されている。
他の好ましい実施形態においては、例えば、ユーザモード2において、静的な構成データKD3がアクティブであるものとしてよく、例えば第2のアプリケーションプログラムAP2が実行されている。
他の好ましい実施形態においては、スーパーバイザモードにおいて、例えば、静的な構成データKD1がアクティブであり、スーパーバイザモードは、例えば、静的な構成データKD2と静的な構成データKD3との間の切換に用いられる(任意選択的に、静的な構成データKD2と静的な構成データKD3との間の切換にのみ用いられる)。
他の好ましい実施形態においては、ユーザモード1及びユーザモード2は、静的な構成データKD1,KD2,KD3,KD4間の切換を行うことはできない。
他の好ましい実施形態においては、例えば2つのモード(例えば、スーパーバイザモード及びユーザモード)(だけ)が設定されるものとしてもよい。従って、他の好ましい実施形態においては、例えば、スーパーバイザモードが信頼できるゾーンに割り当てられるものとしてよく、例えば、構成データKD1と構成データKD2との間の切換を行うことができ、また、場合によっては、例えば、第2のアプリケーションプログラムAP2を実行することができる。
他の好ましい実施形態においては、異なる動作モード又は動作状態(例えば、特権モード及び非特権モード、又は、スーパーバイザモード、ユーザモード)に対して、例えば、1つ又は複数のメモリ1030,1032に対する各動作モード固有の読取権及び/又は書込権及び/又は遂行権(実行権)が与えられ、これは、他の好ましい実施形態においては、例えば、異なる、構成データKDのセット(「構成データセット」)を設定することによって実現可能である。
他の好ましい実施形態においては、動作モードと各アプリケーションプログラムとの異なる組合せに対して、動作モード固有及び/又はアプリケーション固有の読取権及び/又は書込権及び/又は遂行権が与えられ、これは、他の好ましい実施形態においては、例えば、同様に、異なる、構成データKDのセット(「構成データセット」)を設定することによって実現可能である。例えば、これによって、例えば、異なるアプリケーションプログラムAP1,AP2(図1)のユーザモードに対して、それぞれ、関連するアプリケーションプログラムAP1,AP2に適合する読取権及び/又は書込権及び/又は遂行権が与えられるものとしてよい。
他の好ましい実施形態においては、例示的に挙げられた、1つ又は複数の、好ましくはすべてのメモリ保護デバイスM1,M2,…,M5_8が複数の構成データセットを含み、これらは他の好ましい実施形態においては、好ましくは、異なるモード及びアプリケーションプログラムAP1,AP2に効率的に割り当てられるものとしてよい。
他の好ましい実施形態においては、例えば、特権モード又は非特権モード間の切換の際に(例えば、スーパーバイザモードからユーザモードへの切換、又は、ユーザモードからスーパーバイザモードへの切換の際に)、又は、アプリケーションプログラム間の切換の際に、特に非特権モードにおいて、効率的に、特にハードウェア駆動方式により、関連するモード又は動作モードの構成データセット間の切換が行われ得る。
他の好ましい実施形態においては、コンピューティングデバイス100,100a(図3)は、例として、以下の例示的に挙げられた構成オプション、即ち、
a)少なくとも1つの中央メモリ保護デバイス又はバスシステム101(図3)に割り当てられている少なくとも1つのメモリ保護デバイスM5_1,…,M5_8に対する、特に、静的な(変更不可能な)構成データセットと、
b)専用メモリ保護デバイスM1,M2,M3,M4に対する、それぞれ4つの、特に静的な構成データセットであって、これらはそれぞれ4つの、専用メモリ保護デバイスに対する構成データセットを含み、他の好ましい実施形態においては、例えば、スーパーバイザモード用の1つの静的な構成データセットと、例えば、アプリケーションプログラムAP1,AP2用の、即ち、例えばユーザモード用の3つの静的な構成データセットとを含む、構成データセットと、
を含む。図23は、合計4つの構成データセットKD1,KD2,KD3,KD4を含む例示的な構成データKD’を概略的に示している。
他の好ましい実施形態においては、構成データは、例えば、いずれのメモリアドレスに対して、コンピューティングデバイスのコンポーネント、例えば中央処理装置が、読取及び/又は書込及び/又は実行のためにアクセスすることができるのかを定義している。他の好ましい実施形態においては、メモリ保護デバイスは、関連する中央処理装置によって現在実行されているアクセス(読取及び/又は書込及び/又は実行)を構成データの内容と比較し、例えば、一致する場合には、関連するアクセスを許可若しくは禁止するように、又は、そうでない場合には、その逆を行うように、構成されるものとしてよい。
他の好ましい実施形態においては、専用メモリ保護デバイスM1,M2,M3,M4に対する、挙げられた、好ましくは静的な構成データセットは、例えば、ユーザモードの場合、実施形態によるゾーンZ1,Z2と相関し得る。
他の好ましい実施形態においては、特にいわゆる「コア-ゾーン間分離」のケースにおいて、(例えば、同等の信頼レベルを有する)特定のゾーンZ2のアプリケーションプログラムのみが、特定の中央処理装置102a(図1)において実行される。他の好ましい実施形態においては、特にそのような中央処理装置102a用の専用メモリ保護デバイスM1(図3)のケースにおいて、例えば2つの、特に静的な構成データセットのみが使用され、例えば、1つはスーパーバイザモード用であり、1つはユーザモードにおけるアプリケーションプログラム用である。特にユーザモードにおけるアプリケーションプログラム用の、場合によっては残存している、未使用の構成データセットが、他の好ましい実施形態においては、例えば、次のように構成されるものとしてよい。即ち、これらが、メモリ全体1030,1032への一般的な読取アクセス、書込アクセス及び遂行アクセスを阻止するように構成されるものとしてよく、これによって、セキュリティがさらに強化される。
他の好ましい実施形態においては、特にいわゆる「コア-ゾーン内分離」のケースにおいて、例えば、それぞれ異なる信頼レベルを有する2つのゾーンZ1,Z2のアプリケーションプログラムが、特定の中央処理装置102c(図1)上において実行される。ここでは、好ましくは、特にユーザモードに対して、第1のゾーンZ1のプログラム又はアプリケーションプログラム、及び、第2のゾーンZ2のプログラム又はアプリケーションプログラム用の2つの異なる静的な構成データセットが使用され、これと並んで、好ましくは、他の動作モード、例えばスーパーバイザモード用の他の静的な構成データセットが使用される。他の好ましい実施形態においては、中央処理装置102cは、スーパーバイザモードの動作モードにおいて、2つのゾーンZ1,Z2のための2つの静的な構成データセットを切り換えるように構成されている。従って、他の好ましい実施形態においては、中央処理装置102cは、スーパーバイザモードにおいて、例えば、第1のゾーンZ1に割り当てられているプログラム、特にアプリケーションプログラムAP1又はサブプログラム又はインスタンスが実行されるべき場合には、第1のゾーンZ1に適合する構成データセットを自身の専用メモリ保護デバイスにおいてアクティブにし、例えば、第2のゾーンZ2に割り当てられているプログラム、特にアプリケーションプログラムAP2又はサブプログラム又はインスタンスが実行されるべき場合には、例えば、第2のゾーンZ2に適合する構成データセットを自身の専用メモリ保護デバイスにおいてアクティブにする。特にユーザモードにおけるプログラム用の、場合によっては残存している、未使用の構成データセット(ここでは、4つの総数が例示的に挙げられる構成データセット)が、他の好ましい実施形態においては、例えば、次のように構成されるものとしてよい。即ち、これらが、メモリ全体1030,1032への一般的な読取アクセス、書込アクセス及び遂行アクセスを阻止するように構成されるものとしてよく、これによって、セキュリティがさらに強化される。
他の好ましい実施形態においては(図2Gを参照されたい)、この方法がさらに、以下のステップを含むことが想定されている。即ち、アプリケーションプログラムAP1の第1のインスタンスAP1_I1(又はサブプログラム、プロキシ)及びアプリケーションプログラムAP1の第2のインスタンスAP1_I2(又はサブプログラム、プロキシ)を提供するステップ260と、アプリケーションプログラムAP1の第1のインスタンスAP1_I1を少なくとも2つのゾーンのうちの第1のゾーンZ1に割り当てるステップ262と、アプリケーションプログラムAP1の第2のインスタンスAP1_I2を少なくとも2つのゾーンのうちの第2のゾーンZ2に割り当てるステップ263と、を含むことが想定されている。これによって、有利には、アプリケーション又はアプリケーションプログラムAP1が複数のゾーンZ1,Z2にわたって「延在する」用途を包含することができる。従って、他の好ましい実施形態においては、このアプリケーションプログラムAP1に対して、ゾーンごとにそれぞれ1つのインスタンスAP1_I1,AP1_I2が存在するものとしてよく、そのようなインスタンスは、他の好ましい実施形態においては、プロキシとも称され得る。プロキシ、インスタンス、サブプログラムなどとして、一般に、例えば、データを要求する又はデータを生成するアプリケーションプログラム、及び、データ処理に使用される通信プログラムなどのプログラムが理解され得る。
他の好ましい実施形態においては、そのようなプロキシAP1_I2は、関連する他のゾーンZ2に対して関連性のある(部分的な)機能性を担保することができる。他の好ましい実施形態においては、プロキシは、場合によっては、複数のサブコンポーネントも含むものとしてよい。
他の好ましい実施形態においては、コンピューティングデバイス100,100aは、例えば、次のシナリオを実行することができる:第1のプログラム、特にアプリケーションプログラムAP1、サブプログラムが、例えば、信頼できない第1のゾーンZ1からデータを受信し(例えば、インタネットからのリモートサービス要求(「離隔した場所からのサービス要求」))、(例えば、対応するサービス(「リモートサービス」)を実施するために)このデータを相応に、信頼できるゾーンZ2内において処理又は転送する場合、第1のゾーンZ1内において、アプリケーションプログラムAP1のZ1プロキシAP1_I1によって、データの受信が行われ、ここでは、対応するZ2プロキシAP1_I2が、例えば、以下のステップを実行する。即ち、Z2プロキシAP1_I2によって、特に初期状態において、信頼できないと分類されたデータのデータ検証ステップ、及び、データ検証ステップが成功した場合における、そこで(データ検証ステップ後に)信頼できると分類されたデータの第2のゾーンZ2内における処理ステップ又は転送ステップを実行する。
他の好ましい実施形態においては(図2Hを参照されたい)、この方法がさらに、以下のステップを含むことが想定されている。即ち、少なくとも2つのゾーンZ1,Z2に応じて、コンピューティングデバイス100,100aに割り当てられているメモリ1030,1032の領域を分離するステップ270を含むことが想定されている。ここでは、コンピューティングデバイス100,100aに割り当てられているメモリは、以下の要素、即ち、
a)特にメインメモリの形態のバッファメモリ、
b)スタックメモリ、
c)データメモリ、
d)プログラムメモリ、
e)レジスタメモリ
のうちの少なくとも1つの要素を有しており、ここでは、少なくとも1つのメモリ保護デバイスが、この分離するステップ270のために使用される(任意選択的なステップ272を参照されたい)。
他の好ましい実施形態においては(図2Iを参照されたい)、この方法がさらに、バッファメモリ、特にメインメモリを介して、種々のゾーンの間において第1のデータを交換するステップ280を含むことが想定されている。ここでは、特に、第1のゾーンZ1と第2のゾーンZ2との間における第1のデータの交換は、以下のステップ、即ち、
第1のデータを、第1のゾーンに割り当てられている第1のバッファメモリ領域TB1b,B3にコピーするステップ282と、
コピーされた第1のデータを検査するステップ283と、
特にこの検査するステップに応じて、第1のデータを、第1のゾーンZ1に割り当てられている第1のバッファメモリ領域TB1b,B3から、第2のゾーンZ2に割り当てられている第2のバッファメモリ領域TB2a,B1_2にコピーするステップ284と、
を含む。特に好ましくは、データ交換は、交換用バッファメモリ領域TB1A(ゾーン1 Z1からゾーン2 Z2へのデータ交換用)又は交換用バッファ領域TB2b(ゾーン2 Z2からゾーン1 Z1へのデータ交換用)を介して行われる。
図4は、他の好ましい実施形態による、コンピューティングデバイス100,100aの態様の簡略化されたブロック図を概略的に示している。2つの中央処理装置102a,102bが示されており、これらは、既に上述したように、各ゾーンZ1,Z2に割り当てられている。メインメモリ1030(図3)の領域1030aは、ここでは、特に異なるゾーンZ1,Z2又は関連する中央処理装置102a,102b若しくは中央処理装置102a,102b上において実行可能なアプリケーションプログラム(アプリケーションプログラムのインスタンス)間のデータ交換のために、バッファメモリ(若しくは、後述するバッファメモリ領域(第1のバッファメモリ領域TB1b,B3;第2のバッファメモリ領域TB2a,B1_2;交換用バッファメモリ領域TB1a,TB2b,B3”))又は「分割されたメインメモリ」として利用可能である。ここでは、第1の部分領域TB1は、第1のゾーンZ1又は第2の中央処理装置102bに割り当てられており、第2の部分領域TB2は、第2のゾーンZ2又は第1の中央処理装置102aに割り当てられている。
同様に、図4には、複数のプロキシPXYが示されており、ここでは、例えば第1の数のプロキシ、即ち、Z1-プロキシ 1,Z1-プロキシ 2,…,Z1-プロキシ nが第1のゾーンZ1に、即ち、ここでは中央処理装置102bに割り当てられており、例えば第2の数のプロキシ、即ち、Z2-プロキシ 1,Z2-プロキシ 2,…,Z2-プロキシ nが第2のゾーンZ2に、即ち、ここでは中央処理装置102aに割り当てられている。参照符号SSEによって、ここでは、複数のメモリ保護デバイスSSE又はその機能的なコンポーネントが示されており、これらは、図4において象徴的に、部分領域TB1,TB2若しくはゾーンZ1,Z2の相互からの相応の分離、又は、部分領域TB1,TB2若しくはゾーンZ1,Z2同士の相応の分離を、好ましい実施形態による原理に対応して暗黙的に示している。
図によって異なる参照符号が付されている異なるバッファメモリ領域:第1のバッファメモリ領域TB1b,B3;第2のバッファメモリ領域TB2a,B1_2;交換用バッファメモリ領域TB1a,TB2b,B3”がデータ交換に使用される。
例えば、第1のゾーンZ1(送信ゾーン)から、信頼できる第2のゾーンZ2(受信ゾーン)に安全な様式でデータを転送するために、メモリ1030,1032の異なるバッファメモリ領域が設定されている。
例えば、第1のバッファメモリ領域TB1b,B3’は、第1のゾーン又は送信ゾーンZ1のために設定されている。送信ゾーン又は第1のゾーンZ1又は信頼できないゾーンZ1に割り当てられている第1のプログラム、特にアプリケーションプログラムAP1、サブプログラムなどは、メモリ保護デバイスSSEを介して実現される、次のアクセス権を有しており、即ち、読取のためのアクセス権、書込のためのアクセス権を有しており、実行のためのアクセス権は有していない。受信ゾーン又は第2のゾーンZ2又は信頼できるゾーンZ2に割り当てられている第2のプログラム、特にアプリケーションプログラムAP2、サブプログラムなどは、メモリ保護デバイスSSEを介して実現される、第1のバッファメモリ領域TB1b,B3’へのアクセス権を有しておらず、即ち、読取のためのアクセス権も書込のためのアクセス権も実行のためのアクセス権も有していない。
第2のバッファメモリ領域TB2a,B1_2は、第2のゾーン又は受信ゾーンZ2のために設定されている。受信ゾーン又は第2のゾーンZ2又は信頼できるゾーンZ2に割り当てられている第2のプログラム、特にアプリケーションプログラムAP2、サブプログラムなどは、メモリ保護デバイスSSEを介して実現される、次のアクセス権を有しており、即ち、読取のためのアクセス権、書込のためのアクセス権を有しており、実行のためのアクセス権は有していない。送信ゾーン又は第1のゾーンZ1又は付随する第1のプログラムは、メモリ保護デバイスSSEを介して実現されるアクセス権を有しておらず、即ち、読取のためのアクセス権も書込のためのアクセス権も実行のためのアクセス権も有していない。
交換用バッファメモリ領域TB1a,TB2b,B3”は、送信ゾーン又は第1のゾーンZ1から受信ゾーン又は第2のゾーンZ2へのデータ交換のために設定されている。送信ゾーン又は第1のゾーンZ1又は第1のプログラムは、交換用バッファメモリ領域TB1a,TB2b,B3”に対して、メモリ保護デバイスSSEを介して実現される、次のアクセス権を有しており、即ち、書込のためのアクセス権を有する。受信ゾーン又は第2のゾーンZ2又は第2のプログラムは、交換用バッファメモリ領域TB1a,TB2b,B3”に対して、メモリ保護デバイスSSEを介して実現される、次のアクセス権を有しており、即ち、読取のためのアクセス権を有する。
送信ゾーンZ1と受信ゾーンZ2との間のデータ交換、及び、受信ゾーンZ2における利用又は転送に対しては、次の手順が発生する。はじめに、送信ゾーンZ1の第1のバッファメモリ領域TB1b,B3’から、データが、交換用バッファメモリ領域TB1a,TB2b,B3”に書き込まれる。次に、このデータが、受信ゾーンZ2によって、交換用バッファメモリ領域TB1a,TB2b,B3”への読取のためのアクセスごとに確認される(有効性の検査)。このデータが有効である場合、このデータは、受信ゾーンZ2によって信頼できると評価され、受信ゾーンZ2の第2のバッファメモリ領域TB2a,B1_2にコピーされる。信頼できるデータのさらなる利用及び転送が、受信ゾーンZ2内の受信ゾーンZ2の第2のバッファメモリ領域TB2a,B1_2から開始して行われる。
説明された方法は、信頼できないゾーンZ1から信頼できるゾーンZ2へのデータ交換に必ず使用される。他の方向(信頼できるゾーンZ2から信頼できないゾーンZ1へのデータ交換)においては、この手法は任意選択的である。説明された安全な方法による、信頼できるゾーンZ2から信頼できないゾーンZ1へのデータ交換のために、さらに、任意選択的な他の交換用バッファメモリTB2b,B1_1が設定されており、信頼できるゾーンZ2のプログラムはこの交換用バッファメモリに対して、書込のためのアクセスのみを有しており、受信ゾーンZ1は読取ためのアクセスのみを有する。それ以外、この交換方法は、説明された通りに実施される。
既に説明したように、バッファメモリ(第1のバッファメモリ領域TB1b,B3;第2のバッファメモリ領域TB2a,B1_2;交換用バッファメモリ領域TB1a,TB2b,B3”)への(読取権、書込権、実行権に関する)アクセス権の管理はメモリ保護デバイスSSEによって行われる。3つのバッファタイプ(第1のバッファメモリ領域TB1b,B3’;第2のバッファメモリ領域TB2a,B1_2;交換用バッファメモリ領域TB1a,TB2b,B3”)すべてについて、各ゾーンZ1,Z2に対する実行権が阻止されるべきである。メモリ保護デバイスSSEの構成、ひいては各バッファタイプへのアクセス権及びゾーンZ1,Z2の割り当ては、静的かつ真正に、ブートプロセス時に行われる。これは、ランタイム時に、又は、ブート後の最初の構成後に構成を変更することができないことを意味している。
複数のバッファのうちの1つのバッファ(第1のバッファメモリ領域TB1b,B3’;第2のバッファメモリ領域TB2a,B1_2;交換用バッファメモリ領域TB1a,TB2b,B3”)への各アクセスは、常にメモリ保護デバイスSSEを介して行われる。これは、ゾーンZ1,Z2による、それぞれの無効なアクセス要求が、メモリ保護デバイスSSEによって阻止されることを意味する(例えばバッファオーバーフロー(いわゆるbuffer-overflow)時の、例えば、第1のゾーンZ1による、第2のゾーンZ2の第2のバッファメモリ領域TB2a,B1_2への書込アクセス)。
他の好ましい実施形態においては(図2Jを参照されたい)、この方法がさらに、少なくとも2つのゾーンZ1,Z2に応じて、異なるアプリケーションプログラムAP1,AP2及び/又はアプリケーションプログラムのインスタンスに対して計算時間リソースを分離するステップ290、特に、異なるアプリケーションプログラム及び/又はアプリケーションプログラムのインスタンスに対して計算時間リソースを割り当てるステップを含むことが想定されている。
他の好ましい実施形態においては、この方法がさらに、以下のステップを含むことが想定されている。即ち、異なるアプリケーションプログラムAP1,AP2及び/又はアプリケーションプログラムのインスタンスAP1_I1,AP2_I2に対する計算時間リソースの割り当てのために、組込システム用のオペレーティングシステムBS、特に軽量組込オペレーティングシステムBSを使用するステップ292を含むことが想定されている。ここでは特に、コンピューティングデバイス100,100aのそれぞれ1つの中央処理装置に1つのオペレーティングシステムBSが割り当てられている(図4を参照されたい)。
他の好ましい実施形態においては、この方法が、図2Jのステップ292に対して選択的に又は付加的に、さらに、以下のステップを含むことが想定されている。即ち、異なるアプリケーションプログラム及び/又はアプリケーションプログラムのインスタンスに対する計算時間リソースの割り当てのために、組込システム用のスーパーバイザSV(図5を参照されたい)、特に軽量組込スーパーバイザSVを使用するステップ294を含むことが想定されている。ここでは特に、コンピューティングデバイスのそれぞれ1つの中央処理装置102c(図5)に1つのスーパーバイザSVが割り当てられている。
他の好ましい実施形態においては、オペレーティングシステムBS及び/又はスーパーバイザSVが、特に、静的な(変更不可能な)タスクリストを使用して、事前に規定されたタスク(アプリケーションプログラム及び/又はアプリケーションプログラムのインスタンス及び/又はその一部)に対して、好ましくは事前に規定されたタスクに対してのみ、計算時間リソースの割り当てを実行することが想定されている。言い換えれば、他の好ましい実施形態においては、事前に規定されたタスクのスケジューリングのみが可能であり、これはセキュリティをさらに強化する。
他の好ましい実施形態においては、オペレーティングシステムBS(図4)及び/又はスーパーバイザSV(図5)が、計算時間リソースの割り当てを、a)繰り返される、特に定期的に繰り返される割り込み要求(例えば、タイマ割り込みのinterrupt requests)に応じて、及び/又は、b)イベント駆動方式の割り込み要求に応じて、実行することが想定されており、ここでは特に、タスクは、少なくとも1つの割り込みルーチン(interrupt service routine ISR 割り込み要求の発生時に実行されるコンピュータプログラム)によってアクティブ化される。
他の好ましい実施形態においては、割り込みルーチンに入ると、特にハードウェア駆動方式により、少なくとも1つのメモリ保護デバイスM1,M2,…,SSEに対する構成データが変更されることが想定されている。
他の好ましい実施形態においては、軽量組込OS BS(図4)又は軽量組込スーパーバイザSV(図5)は、例えば、周期的に又はイベントに基づいて実行される、(プロキシ)機能性(タスク)をコーディネートする及び/又は調整することができる(「スケジューリング」)。
他の好ましい実施形態においては、軽量組込OS BS及び軽量組込スーパーバイザは、特に、次の特性のうちの少なくとも1つの特性を有する。
a)複雑性(コードの範囲、機能性、柔軟性など)を必要最小限に抑制することによる侵入表面の最小化
b)事前に規定されたタスク(静的なタスクリスト、動的なタスクリストは不可)のみのスケジューリング、例えば周期的な割り込み要求(IRQ)、例えばタイマIRQ及び/又はevent(イベント)に基づくIRQ、例えばRx(受信)IRQ、Tx(送信)IRQ、SW(ソフトウェア)IRQなどを伴うISRなどに基づくスケジューリングであり、ここで、タスクは、ISRによってアクティブ化される。
c)ISRに入ると、好ましくは、スーパーバイザモードへのハードウェア駆動方式の切換が行われる。例えば、スーパーバイザモードに対する静的な構成データセットへの切換、静的な構成データセット間の切換(例えば、ユーザモードに対する)は、好ましくは、スーパーバイザモードにおいてのみ可能である。
d)さらに好ましくは、タスクのアクティブ化の前に、スーパーバイザモードからユーザモードへの切換が行われ、ここでは、特にタスク(例えば、アプリケーションプログラム(アプリケーションプログラムのインスタンス)の一部)がユーザモードにおいて実行され、ここではさらに、特に、(静的な)構成データ間の切換は、ユーザモード又はタスクにおいて不可能である。
e)有利には、他の好ましい実施形態においては、メモリ保護デバイスの静的な(場合によっては、特に完全かつ真正でもある)構成によって、例えば、開始サイクル中に、次のことが既に暗黙的に可能にされている。即ち、メモリ保護デバイスの動的な再構成が、(例えば、軽量組込OS BS/スーパーバイザSVによって)スーパーバイザモードに対して設定されている割り込みルーチン(ISR)を用いて行われることがないことが既に暗黙的に可能にされている。
他の好ましい実施形態においては(図2Kを参照されたい)、この方法がさらに、以下のステップを含むことが想定されている。即ち、特にオペレーティングシステムBS(図4)及び/又はスーパーバイザSV(図5)を用いて、特に侵害の可能性があるかに関して、以下の要素、即ち、
a)第1のゾーンZ1、
b)第1のゾーンZ1に割り当てられているアプリケーションプログラムAP1、
c)第1のゾーンZ1に割り当てられている、アプリケーションプログラムAP1のインスタンスAP1_I1
のうちの少なくとも1つの要素を監視するステップ300を含むことが想定されている。ここでは特に、この監視するステップ300は、スタックメモリ(「stack」)を評価するステップ302(図2K)及び/又はプログラムカウンタ(「program counter」 PC)を評価するステップ304を含み、ここで、好ましくは、スタックメモリを評価するステップ302及び/又はプログラムカウンタを評価するステップ304は、アプリケーションプログラムをアクティブ化するステップ及び/又はアプリケーションプログラムのインスタンスをアクティブ化するステップの前に行われる。
他の好ましい実施形態においては(図2Lを参照されたい)、この方法がさらに、以下のステップを含むことが想定されている。即ち、この方法がさらに、監視するステップ300(上述の図2Kに関する記述を参照されたい)を含むことが想定されており、特に監視するステップ300が、侵害の可能性を示す場合にエラー応答を開始するステップ305を含むことが想定されている。
他の好ましい実施形態においては(図2Mを参照されたい)、エラー応答又はエラー応答を開始するステップ305が、以下の要素、即ち、
a)特に、第1のゾーンZ1に割り当てられている中央処理装置102bの非アクティブ化305a及び/又は第1のゾーンZ1に割り当てられている中央処理装置102bのリセット305b及び/又はエラーモードへの移行305cを用いた、第1のゾーンZ1及び/又は第1のゾーンZ1に割り当てられている中央処理装置102b(図1)の安全な状態への移行、
b)エラーエントリFEの生成305d、及び/又は、
c)あるエラーエントリ又は上述のエラーエントリの、侵入検知システム、特にIntrusion Detection Systemへの転送305e
のうちの少なくとも1つの要素を有することが想定されている。他の好ましい実施形態においては、IDSは、例えば、コンピューティングデバイス100,100aの内部及び/又は外部に配置されるものとしてよい。
他の好ましい実施形態においては、IDSが、例えば、分散された実装を有するものとしてもよく、ここでは、例えば、第1の部分機能性(例えば、IDSセンサ及び場合によってはIDSマスタなど)が、あるコンピューティングデバイス又は上述のコンピューティングデバイス又はコンピューティングデバイスの少なくとも1つの中央処理装置上において実装されており又は実行され、特に他の部分又は他の部分機能性が、任意選択的に、他の装置、例えばバックエンドにおいて実装されている。他の好ましい実施形態においては、バックエンドは、例えば、次の態様、即ち、
a)詳細な専門家分析、
b)人工知能(AI)、
c)機械学習(ML)など
のうちの少なくとも1つの態様を実装するように構成されるものとしてもよい。
他の好ましい実施形態においては(図2Nを参照されたい)、コンピューティングデバイス100,100aが少なくとも一時的にコールドスタート310を実行することが想定されており、特にコールドスタート310中に、データ及び/又はプログラムコードが不揮発性メモリ1032(図3)からロードされ、コンピューティングデバイス100,100aが少なくとも一時的にウォームスタート312(図2N)を実行し、ここでは、特にウォームスタート312中に、データ及び/又はプログラムコードが、少なくとも一時的に通電される揮発性メモリ1030(図3)からロードされ、特にコールドスタート310(図2N)中に、少なくとも1つのメモリ保護デバイス又は上述の少なくとも1つのメモリ保護デバイスが構成され(図2Nのステップ311を参照されたい)、及び/又は、特にウォームスタート312中に(特にウォームスタート312中にも)、上述の少なくとも1つのメモリ保護デバイスが構成される(図2Nのステップ313を参照されたい)。
他の好ましい実施形態においては、専用メモリ保護デバイスM1,M2,M3,M4が提供されている(図2Dのステップ231を参照されたい)中央処理装置102a,102b,102c,102nのみが、この専用メモリ保護デバイスM1,M2,M3,M4を構成することが想定されている(図2Dのステップ231aを参照されたい)。
他の好ましい実施形態においては(図2O(数字「2」、文字「O」)を参照されたい)、この方法がさらに、異なるアプリケーションプログラムに対して計算時間リソースを割り当てるステップ212a及び/又はアプリケーションプログラムのインスタンスに対して計算時間リソースを割り当てるステップ212bを含むことが想定されており、スーパーバイザSV及び/又はスーパーバイザSVに対応する機能性が、スーパーバイザインスタンスSVI(図1)によって少なくとも部分的に実現されている。
他の好ましい実施形態においては(図2Pを参照されたい)、この方法がさらに、特に、以下の要素、即ち、
a)少なくとも1つのメモリ保護デバイスの構成に使用可能なプログラムコードの検証322、
b)構成データの検証324、
c)少なくとも1つのメモリ保護デバイスの構成に使用可能な、あるプログラムコード又は上述のプログラムコードの永続化326、
d)構成データの永続化328
のうちの少なくとも1つの要素を用いて、少なくとも1つのメモリ保護デバイスの動作を制御する構成データKDの完全性及び/又は真正性を検査するステップ320を含むことが想定されている。
他の好ましい実施形態においては、永続化326,328は、例えば、少なくとも1つのメモリ保護デバイスの構成に使用可能なプログラムコード又は構成データを、固定記憶装置、例えば、ROM又はOTP(ワンタイムプログラマブル、1回だけプログラミング可能なメモリ)内に設定することを含むものとしてよい。
他の好ましい実施形態においては(図2Qを参照されたい)、この方法がさらに、特に、コンピューティングデバイス100,100aの少なくとも1つの中央処理装置によって、少なくとも一時的に、セキュアブート方法を実行するステップ330及び/又は少なくとも一時的に、ランタイム中に改ざんを識別する方法(RTMD runtime manipulation detection)を実行するステップ332を含むことが想定されている。方法330,332は、例えば、メモリ1030,1032の少なくとも一部の実際に存在しているメモリコンテンツを、設定可能な基準メモリコンテンツと比較することを有するものとしてよく、ここで、この比較は、例えば、ハッシュ値形成及び/又はCMAC(cipher-based message authentication code)方法の利用及び/又は署名、又は、署名されたハッシュ値の利用も有するものとしてよい。
他の好ましい実施形態においては(図2Rを参照されたい)、この方法がさらに、少なくとも1つのゾーンZ1,Z2に応じて、以下の要素、即ち、
a)コンピューティングデバイスの内部インタフェース、特にソフトウェアインタフェース、
b)コンピューティングデバイスの内部ハードウェアインタフェース及び/又は外部ハードウェアインタフェース、
c)暗号化機能を実行するためのハードウェアセキュリティモジュール及び/又は暗号化モジュール、
d)コンピューティングデバイスの周辺機器、特に少なくとも1つの周辺機器の特殊機能レジスタ、
e)コンピューティングデバイスのターゲットシステム、特に制御装置の内部インタフェース、
f)コンピューティングデバイスのターゲットシステム、特に制御装置の外部インタフェース、
g)特に、ISO/OSIレイヤモデルの少なくとも1つのレイヤ上の通信プロトコルに対するアドレス指定要素
のうちの少なくとも1つの要素へのプログラム又はアプリケーションプログラムAP1,AP2によるアクセスを制御するステップ340を含むことが想定されている。図2Rに示された任意選択的なステップ342は、例示的に、自身に割り当てられているゾーンにおける関連するアプリケーションプログラムの(さらなる)実行を暗黙的に示している。
他の好ましい実施形態においては(図2Sを参照されたい)、この方法がさらに、以下の要素、即ち、
a)少なくとも1つの付加的な、特にまだ存在していないゾーンの導入350、
b)第1の中央処理装置102aから、コンピューティングデバイス100,100aの少なくとも1つの他の中央処理装置102bへの機能性の移動352、
c)特にコンピューティングデバイス内に統合されているメインメモリを使用した、少なくとも2つのゾーン間の通信の実行354、
d)少なくとも1つの信頼できるゾーンの定義360(図2Tを参照されたい)及び任意選択的に、信頼できるゾーンに割り当てられている少なくとも1つのアプリケーションプログラムによる、少なくとも1つの他の、特に信頼できないゾーンの監視362
のうちの少なくとも1つの要素を有することが想定されている。
以下においては、図6乃至図21を参照して、他の好ましい実施形態、態様及び実施形態による原理の利点を説明する。これらは、他の好ましい実施形態に従って、それぞれ個別に単独で、又は、上述した実施形態のうちの少なくとも1つの実施形態との相互の組合せにより、組合せ可能である。
図6は、例えば、コンピューティングデバイス100,100aの少なくとも1つの中央処理装置102a,102b,…によって少なくとも一時的に実行可能である、他の好ましい実施形態による割り込みルーチンISR1の態様を概略的に示している。図6における雷マークIRQは、例えば、周期的に(例えば、タイマモジュール(Timer)によって設定可能)及び/又はイベント駆動方式により(例えば、通信インタフェースへのメッセージの到着)生成され得る、割り込み要求(interrupt request)の発生を表す。従って、他の好ましい実施形態においては、以下の要素、即ち、
e1)割り込み要求IRQによって割り込まれたタスク又はプログラムのコンテキストを、例えば、スタックメモリ上に少なくとも一時的に格納するステップ(例えば、RAM1030の設定可能な領域内において定義されるものとしてよい)、
e2)後に実行されるタスクを識別するステップ、
e3)現在の動作モード、例えばスーパーバイザモードから他の動作モード、例えばユーザモードへ切り換えるステップ、
e4)識別されたゾーンのタスクを復元するステップ
のうちの少なくとも1つの要素を有する割り込みルーチンISR1が実行される。
他の好ましい実施形態においては、図6による割り込みルーチンISR1は、特にコア-ゾーン間分離の場合に、例示的に、オペレーティングシステムBS(図4)によって使用され得る。
図7は、例えば、コンピューティングデバイス100,100aの少なくとも1つの中央処理装置102a,102b,…によって少なくとも一時的に実行可能である、他の好ましい実施形態による割り込みルーチンISR2の態様を概略的に示している。
図7における雷マークIRQ’は、例えば、周期的に(例えば、タイマモジュール(Timer)によって設定可能)及び/又はイベント駆動方式により(例えば、通信インタフェースへのメッセージの到着)生成され得る、割り込み要求(interrupt request)の発生を表す。従って、他の好ましい実施形態においては、以下の要素、即ち、
e1’)割り込み要求IRQ’によって割り込まれたタスク又はプログラムのコンテキストを、例えば、スタックメモリ上に少なくとも一時的に格納するステップ、
任意選択的にe5)例えばスタックメモリの評価を実行するステップ(例えば、図2Kのステップ302を参照されたい)及び/又はプログラムカウンタの評価を実行するステップ(例えば、図2Kのステップ304を参照されたい)、
e6)後に実行されるタスクを識別するステップ、
e7)(例えば、先行するステップe6から)コンテキストを、識別されたゾーンへ切り換えるステップであり、ここでは、識別されたゾーンは、後に実行される識別されたタスクと関連付けられている(選択的に、他の好ましい実施形態においては、この切換は、例えば、CAN ID,VLAN ID,MACアドレスなどを用いて、例えばアドレスに基づいて行われるものとしてもよい)、ステップ、
e8)現在の動作モード、例えばスーパーバイザモードから他の動作モード、例えばユーザモードへ切り換えるステップ、
e9)後続のタスクのコンテキストを復元するステップ
のうちの少なくとも1つの要素を有する割り込みルーチンISR2が実行される。
他の好ましい実施形態においては、図7による割り込みルーチンISR2は、特に、コア-ゾーン内分離の場合に、例示的に、スーパーバイザSV(図5)によって使用され得る。
図8は、他の好ましい実施形態によるフローチャートを概略的に示しており、参照符号310’は、例示的に、コンピューティングデバイス100,100aのコールドスタートの態様を示しており、ここでは参照符号312’は、例示的に、コンピューティングデバイス100,100aのウォームスタートの態様を示している。例えば、コールドスタート310’においては、RAM1030(図3)の内容を検証するためのテストパターンは利用可能ではない。例えば、ウォームスタート312’においては、RAM1030(図3)の内容を検証するためのテストパターンが利用可能である。
他の好ましい実施形態においては、少なくとも1回実行されるべきコールドスタートの範囲において、特にパワーダウンモードにおいて給電される揮発性メモリに、テストパターン又はパターンの書込を行うことができる。従って、上述の給電に基づいて、上述のテストパターン又はパターンは、それ自体が揮発性であるメモリ内に保存される。他の好ましい実施形態においては、この(RAM)パターンは、システムステートマシン(例えば、システム状態を制御するために、他の好ましい実施形態において利用可能な状態機械)の少なくとも1つの開始サイクルの際に、特に各開始サイクルの際に検査され、特にテストパターンの存在に応じて、コールドスタート(例えば、(RAM)パターンが存在していない場合)又はウォームスタート(例えば、(RAM)パターンが存在している場合)が実行されるものとしてよい。
従って、他の好ましい実施形態においては、パワーダウンモードにおいて給電される揮発性メモリの完全性及び真正性、又は、揮発性メモリに含まれている若しくは揮発性メモリ内に存在している揮発性メモリのデータ及び機能性(例えば、特に第1のゾーン及び/又は第2のゾーン及び/又はプログラムコードに対する中央処理装置102c及び/又はメモリ保護デバイスの構成データ)の完全性及び真正性が、少なくとも1回強制的に実行されるべき、先行するコールドスタート(セキュアブート及び/又はOTPメモリからの開始(上記を参照))の範囲において保証される。
従って、他の好ましい実施形態においては、パワーダウンモードにおいて給電される揮発性メモリ内に存在しているデータ及び機能性の無効な改ざん並びにRAMパターンの無効な改ざんは、少なくとも一時的な給電中断、ひいてはパワーダウンモードにおいて給電される揮発性メモリ(RAMパターンなど)の消去を暗黙的に示す。他の好ましい実施形態においては、システムステートマシンは、それに応じて、開始サイクルの範囲において、RAMパターンの欠如に基づいて、特に自動的に、コールドスタート(セキュアブート及び/又はOTPからの開始(上記を参照))をトリガすることとなる。これによって、パワーダウンモードにおいて給電される揮発性メモリ又は揮発性メモリのデータ及び機能性の完全性及び真正性が、揮発性メモリの利用又は実行前に保証されている。
他の好ましい実施形態においては、テストパターンが存在する場合、例えば、ウォームスタートの範囲において選択されたタイムクリティカルなSWインスタンスが、それらの実行前に検査されるのではなく(即ち、例えば、特にセキュアブートではなく)、場合によってはランタイムに/それらの実行後に、はじめて検査されることが想定されている。これによって、有利には、ウォームスタート時のタイムクリティカルなSWインスタンスの起動時間が短縮される。従って、他の好ましい実施形態においては、ウォームスタート中の完全性及び真正性は、有利には、テストパターンが利用可能であること(ひいては先行するコールドスタート中の検査)によって、ウォームスタート中の明示的な検査がなくても暗黙的に保証される。他の好ましい実施形態においては、タイムクリティカルではないコンポーネントを、それらが遂行される前に、ウォームスタート中にも、(例えば、セキュアブートプロセスを用いて)明示的に検査することができる。
ブロック102a_1は、例示的に、コンピューティングデバイスの第1の中央処理装置102a(図3)を「root of trust」として、即ち、TPM(trusted platform module)又はハードウェアセキュリティモジュール(HSM)に類似したハードウェアセキュリティ基準に匹敵するものとして表し、ブロック102a_2は、中央処理装置102aに関連付けられたブートマネージャ(他のシステムプログラム及び/又はアプリケーションプログラムのロード及び/又は実行を制御するシステムプログラム)を表す。ブロック102a_3は、ゾーンZ2及び中央処理装置102aに関連付けられたプログラムコードの実行を表す。ブロック110は、ハードウェアセキュリティモジュールを表す。ブロック111は、中央処理装置102cに関連付けられたブートマネージャを表す。ブロック112は、ゾーンZ1,Z2及び中央処理装置102cに関連付けられたプログラムコードの実行を表す(これは、例示的に、既に数回上述したように、両方のゾーンZ1,Z2に割り当てられている)。ブロック113は、中央処理装置102bに関連付けられたブートマネージャを表す。ブロック114は、ゾーンZ1及び中央処理装置102bに関連付けられたプログラムコードの実行を表す。ブロック115は、中央処理装置102nに関連付けられたブートマネージャを表す。ブロック116は、ゾーンZ1,Z2及び中央処理装置102nに関連付けられたプログラムコードの実行を表す。
矢印a1は、ブートプロセス(例えば、完全に非アクティブ化された状態からのコンピューティングデバイス100aの起動)を表す。矢印a2は、少なくとも1つのメモリ保護デバイス、特に中央の、又は、バスシステム101(図3)に割り当てられているメモリ保護デバイスM5_1,M5_2,…,M5_8の構成を表す。矢印a3は、中央処理装置102cのブートマネージャの開始を表す(ブロック111も参照されたい)。
矢印a4は、中央処理装置102c用の少なくとも1つの専用メモリ保護デバイスM3(図3)の構成を表す。矢印a5は、中央処理装置102cによるプログラムコードの実行112の開始を表す。矢印a6は、例えば、RTMDの形態における、中央処理装置102cの任意選択的な検証を表す。他の好ましい実施形態においては、メモリ保護デバイスM3の構成データの任意選択的な検証が、特に暗号化方法を用いて、例えば、CMAC及び/又は署名されたハッシュ値に基づいて行われ得る。
矢印a7は同様に、コールドスタート310’の状況における、中央処理装置102cの任意選択的な検証を表す。他の好ましい実施形態においては、任意選択的な検証a7は、例えば、CMAC及び/又は署名されたハッシュ値に基づく暗号化方法を用いて実行されるものとしてよい。矢印a8は、矢印a3と同様に、中央処理装置102cのブートマネージャの開始を表す(ブロック111も参照されたい)。矢印a9は、特に矢印a4と同様に、中央処理装置102c用の少なくとも1つの専用メモリ保護デバイスM3(図3)の構成を表す。矢印a10は、矢印a5と同様に、中央処理装置102cによるプログラムコードの実行112の開始を表す。
矢印a11は、複数の、好ましくはすべての中央処理装置102a,102b,…,102nの任意選択的な検証を表す。矢印a12は、中央処理装置102nのブートマネージャの開始を表す(ブロック115も参照されたい)。矢印a13は、中央処理装置102n用の少なくとも1つの専用メモリ保護デバイスの構成を表す。矢印a14は、中央処理装置102nによるプログラムコードの実行116の開始を表す。
矢印a15は、中央処理装置102bのブートマネージャの開始を表す。矢印a16は、中央処理装置102b用の少なくとも1つの専用メモリ保護デバイスの構成を表す。矢印a17は、中央処理装置102bによるプログラムコードの実行114の開始を表す。
矢印a18は、中央処理装置102aのブートマネージャの開始を表す。矢印a19は、中央処理装置102a用の少なくとも1つの専用メモリ保護デバイスの構成を表す。矢印a20は、中央処理装置102aによるプログラムコードの実行102a_3の開始を表す。
図9は、例えば、コンピューティングデバイス100,100aの少なくとも1つの中央処理装置102a,102b,…によって少なくとも一時的に実行可能である、他の好ましい実施形態による割り込みルーチンISR3の態様を概略的に示している。図9における雷マークIRQ”は、例えば、周期的に(例えば、タイマモジュール(Timer)によって設定可能)及び/又はソフトウェアに基づいて(例えば、アプリケーションプログラムによって呼び出されて)生成され得る、割り込み要求(interrupt request)の発生を表す。従って、他の好ましい実施形態においては、以下の要素、即ち、
e1’)割り込み要求IRQ”によって割り込まれたタスク又はプログラムのコンテキストを少なくとも一時的に格納するステップと、
任意選択的にe5’)例えばスタックメモリの評価を実行するステップ(例えば、図2Kのステップ302を参照されたい)及び/又はプログラムカウンタの評価を実行するステップ(例えば、図2Kのステップ304を参照されたい)と、
e10)(例えば、好ましくは静的なタスクリストに応じて)次のタスクへコンテキストを切り換えるステップと、
e11)現在の動作モード、例えばスーパーバイザモードから他の動作モード、例えばユーザモードへ切り換えるステップと、
e12)識別されたゾーンのタスクを復元するステップと、
のうちの少なくとも1つの要素を有する割り込みルーチンISR3が実行される。
図10は、オペレーティングシステムBS及び/又はスーパーバイザSV(図5と同様であり、図10には示されていない)が割り当てられており、かつ、2つのゾーンZ1,Z2にも割り当てられている、他の好ましい実施形態による中央処理装置102aを概略的に示している。中央処理装置102aは、例えば、ネットワークスイッチのために、例えば、イーサネットデータパケットを送信及び/又は受信するために使用されるものとしてよい。アプリケーションプログラムの相応のインスタンスには、参照符号AP3_I1(イーサネットパケットの受信、ゾーンZ1における実行)、AP3_I2(イーサネットパケットの受信、ゾーンZ2における実行)、AP4_I1(イーサネットパケットの送信、ゾーンZ1における実行)、AP4_I2(イーサネットパケットの送信、ゾーンZ2における実行)が付されている。例えば、ネットワークスイッチの管理タスクを実行する他のアプリケーションプログラムは、信頼できると定義されている第2のゾーンZ2においてのみ実行され、信頼できないと定義されている第1のゾーンZ1では実行されない。中央処理装置102aにはRAM1030が割り当てられており、これは、他の好ましい実施形態においては、例えば、図5と同様に、分割されるものとしてよい。任意選択的に、スイッチングエンジン(例えば、結合ネットワーク)及び/又はTCAM(ternary content-adressable memory)モジュールが設定されている。
図11は、他の好ましい実施形態による2つの中央処理装置102a,102bを概略的に示しており、第1の中央処理装置102aは、第1のゾーンZ1に割り当てられており、第2の中央処理装置102bは、第2のゾーンZ2に割り当てられている。2つの中央処理装置102a,102bにそれぞれ1つのオペレーティングシステムBSが割り当てられている。
図11においては、見易くするために、まとめて参照符号I1が付されている、種々のアプリケーションプログラムの第1のインスタンスは、第1のゾーンZ1に割り当てられており、ひいては第1の中央処理装置102aに割り当てられている。他の好ましい実施形態においては、これらの種々のアプリケーションプログラムは、例えば、以下の要素、即ち、
a)特にディープパケットインスペクション DPIのための、データパケットの検査を実行するためのプログラム、
b)診断のためのプログラム、
c)特にFOTA(firmware over the air)技術を用いた(例えば、図22のデータインタフェース1008を用いた)、アップデートを実行するためのプログラム、
d)侵入検知及び侵入防止(Intrusion Detection and Prevention)のためのプログラム
のうちの少なくとも1つの要素を有する。他の好ましい実施形態においては、第2の中央処理装置102b及び第2のゾーンZ2に、ここでは、第1のゾーンZ1に関連して上述されたアプリケーションプログラムの相応の第2のインスタンスI2が割り当てられている。他の好ましい実施形態によれば、少なくとも1つのメモリ保護デバイスSSEが、種々のゾーンの相応のアプリケーションプログラム若しくはインスタンスの読取権及び/又は書込権及び/又は実行権の制御ために使用可能である。例示的に図11を参照して上述された構成によって、例えば、電子制御装置及び/又は組込システム及び/又はIoTシステムなどのための、データパケットの検査のために、又は、侵入検知及び侵入防止のために、特に安全なシステムが効率的に提供され得る。ここでは、ゾーンZ1,Z2へのアプリケーションプログラムのインスタンスI1,I2の割り当てによって、特に有利には、例えば、実行(遂行)のための各コンテキストが、異なる信頼レベルで提供され得る。
図12Aは、例えば、コンピューティングデバイス100,100aの少なくとも1つの中央処理装置102a,102b,…によって少なくとも一時的に実行可能である、他の好ましい実施形態による割り込みルーチンISR4の態様を概略的に示している。図12Aにおける雷マークRxは、例えば、イベント駆動方式により、ここでは例示的に、メッセージ、例えばCAN(Controller Area Network)メッセージの受信時に生成され得る、割り込み要求(interrupt request)の発生を表す。従って、他の好ましい実施形態においては、以下の要素、即ち、
e20)例えば、メッセージ又はプログラムの送信のために、割り込み要求Rxによって割り込まれたタスク、特に送信タスク(「Tx task」)のコンテキストを少なくとも一時的に格納するステップと、
任意選択的にe21)例えばスタックメモリの評価を実行するステップ(例えば、図2Kのステップ302を参照されたい)及び/又はプログラムカウンタの評価を実行するステップ(例えば、図2Kのステップ304を参照されたい)と、
e22)受信したデータフレーム(例えば、上述の受信したCANメッセージの受信したデータフレーム)と関連付けられているゾーンを特定するステップと、
e23)コンテキストを、ステップe22において特定されたゾーンへ切り換えるステップと、
e24)現在の動作モード、例えばスーパーバイザモードから他の動作モード、例えばユーザモードへ切り換えるステップと、
e25)メッセージ受信のための処理ルーチン(「Receive(Rx)handler」)を呼び出すステップ、即ち、例えば、受信したメッセージを処理するアプリケーションプログラム又はアプリケーションプログラムの一部を呼び出すステップと、
e26)識別されたゾーンのタスク(例えば、送信タスク)を復元するステップと、
のうちの少なくとも1つの要素を有する割り込みルーチンISR4が実行される。
他の好ましい実施形態においては、送信タスク、即ち、メッセージを送信するためのタスク又はアプリケーションプログラム若しくはアプリケーションプログラムの一部が計画される(「スケジューリング」)。
他の好ましい実施形態においては、メッセージの受信を特徴付ける割り込み要求(「RxIRQ」、receive interrupt request)は、例えば、タイマ(Timer)及び/又はアプリケーションプログラム若しくはソフトウェアによって一般的にトリガされる他の割り込み要求よりも高い優先度により処理される。
他の好ましい実施形態においては、同時に、又は、設定可能な第1の時間範囲内において、到来した割り込み要求に、例えば、割り込み要求のソース(到来したメッセージ、タイマ、ソフトウェア)に応じて及び/又は1つ又は複数の別の基準又は他の基準に応じて、優先順位が付けられる。他の好ましい実施形態においては、このような優先順位付けは、例えば、割り込み要求のための制御デバイス(英語で、interrupt controller)によって実行されるものとしてよい。
他の好ましい実施形態においては、コンテキストの切換(例えば、図12Aのステップe23を参照されたい)は、事前に規定することが可能な動作モード、特にスーパーバイザモードにおいてのみ行われ得る。
例示的に図12Aを参照して上述された態様は、他の好ましい実施形態においては、例えば、軽量スーパーバイザ、特にCAN軽量スーパーバイザに対する到来したメッセージの処理を少なくとも一時的に制御するために利用されるものとしてよい。
図12Bは、例えば、コンピューティングデバイス100,100aの少なくとも1つの中央処理装置102a,102b,…によって少なくとも一時的に実行可能である、他の好ましい実施形態による割り込みルーチンISR5の態様を概略的に示している。図12Bにおける雷マークTIM_SWは、例えば、タイマ又はアプリケーションプログラム又は一般的にソフトウェアによって生成され得る割り込み要求(interrupt request)の発生を表す。従って、他の好ましい実施形態においては、以下の要素、即ち、
e30)例えば、メッセージ又はプログラムの送出のために、割り込み要求Rxによって割り込まれたタスク、特に送信タスク(「Tx task」)のコンテキストを少なくとも一時的に格納するステップと、
任意選択的にe31)例えばスタックメモリの評価を実行するステップ(例えば、図2Kのステップ302を参照されたい)及び/又はプログラムカウンタの評価を実行するステップ(例えば、図2Kのステップ304を参照されたい)と、
e32)(例えば、特に静的なタスクリストによって)、コンテキストを次の送信タスクへ切り換えるステップと、
e33)現在の動作モード、例えばスーパーバイザモードから他の動作モード、例えばユーザモードへ切り換えるステップと、
e34)識別されたゾーンのタスク(例えば、送信タスク)を復元するステップと、
のうちの少なくとも1つの要素を有する割り込みルーチンISR5が実行される。
例示的に図12Aを参照して上述された、これらのさらなる態様は、他の好ましい実施形態においては、図12Bによる割り込みルーチンISR5に対して、相応に当てはまる。
図13は、他の好ましい実施形態によるコンピューティングデバイス100bの態様の簡略化されたブロック図を概略的に示している。ここでは、コンピューティングデバイス100bは、例示的に、4つの中央処理装置K1,K2,K3,K4を有しており、これらの中央処理装置のうちの第1の中央処理装置K1は、通信メッセージ、特にCANメッセージを処理するように構成されている。従って、他の好ましい実施形態においては、図13の第1の中央処理装置K1は、「CANコア」とも称され得る。他の中央処理装置K2,K3は、アプリケーションプログラム(場合によっては、アプリケーションプログラムの異なるインスタンス)を実行するために設けられており、従って、他の好ましい実施形態においては、「アプリケーションコア」又は英語で「Application Cores」K2,K3とも称され得る。図13の第4の中央処理装置K4は、イーサネット通信メッセージを処理するように構成されており、従って、他の好ましい実施形態においては、イーサネットコア又はETHコア又は英語で「ETH Core」K4とも称され得る。第1の中央処理装置K1には第1のスーパーバイザSV1、特にCAN軽量スーパーバイザが割り当てられており、第4の中央処理装置K4には第2のスーパーバイザSV2、特にETH(イーサネット)軽量スーパーバイザが割り当てられている。
他の好ましい実施形態においては、第1の中央処理装置K1は、2つのゾーンZ1,Z2に割り当てられている。他の好ましい実施形態においては、第4の中央処理装置K4も、2つのゾーンZ1,Z2に割り当てられている。
他の好ましい実施形態においては、第1の中央処理装置K1に、CANメッセージを送信及び/又は受信するためのアプリケーションプログラムが割り当てられており、図13の参照符号I1は、このアプリケーションプログラムの第1のインスタンス(又はプログラム又はサブプログラム又はプロキシ)を示し、第1のインスタンスI1は、第1のゾーンZ1に割り当てられており、CANメッセージを受信するように構成されている。これとは異なり、参照符号I2は、このアプリケーションプログラムの第2のインスタンス(又はプログラム又はサブプログラム又はプロキシ)を示し、第2のインスタンスI2は、第2のゾーンZ2に割り当てられており、CANメッセージを受信するように構成されている。参照符号I3,I4は、CANメッセージを送信又は受信するための相応のインスタンス(又はプログラム又はサブプログラム又はプロキシ)を示し、これらは、それぞれ同様に、2つのゾーンZ1,Z2のうちの1つのゾーンに割り当てられている。
他の好ましい実施形態においては、例示的に図12A,12Bを参照して上述された割り込み要求Rx,TIM_SWが、例えば、相応の割り込みルーチンISR4(図12A)又はISR5(図12B)を実行することによって、第1の中央処理装置K1によって処理され得る。
他の好ましい実施形態においては、第4の中央処理装置K4に、イーサネットメッセージを送信及び/又は受信するためのアプリケーションプログラムが割り当てられており、図13の参照符号I1’は、このアプリケーションプログラムの第1のインスタンス(又はプログラム又はサブプログラム又はプロキシ)を示し、第1のインスタンスI1’は、第1のゾーンZ1に割り当てられており、イーサネットメッセージを受信するように構成されている。これとは異なり、参照符号I2’は、このアプリケーションプログラムの第2のインスタンス(又はプログラム又はサブプログラム又はプロキシ)を示し、第2のインスタンスI2’は、第2のゾーンZ2に割り当てられており、イーサネットメッセージを受信するように構成されている。参照符号I3’,I4’は、イーサネットメッセージを送信又は受信するための相応のインスタンス(又はプログラム又はサブプログラム又はプロキシ)を示しており、これらは、それぞれ同様に、2つのゾーンZ1,Z2のうちの1つのゾーンに割り当てられている。
他の好ましい実施形態においては、中央処理装置K1,K4内の2つのゾーンZ1,Z2の分離は、少なくとも1つのメモリ保護デバイスSSE1,SSE4を用いて行われる。
既に上述したように、2つのアプリケーションコアK2,K3は、アプリケーションプログラムを実行するように構成されており、アプリケーションプログラム又はアプリケーションプログラムの個々のインスタンス(又はプログラム又はサブプログラム又はプロキシ)は、図13において、関連するアプリケーションコアK2,K3内の長方形として暗黙的に示されているが、見易くするために詳細には図示されていない。他の好ましい実施形態においては、第2の中央処理装置K2は、第2のゾーンZ2に割り当てられており、第3の中央処理装置K3は、第1のゾーンZ1に割り当てられている。
他の好ましい実施形態においては、コンピューティングデバイス100bは、揮発性メモリ、特にメインメモリ(RAM)1030bを有しており、揮発性メモリは、例えば、図4に示されているのと同様に、異なる領域、特に異なるバッファメモリ領域に分割されており、これらの領域はそれぞれ、異なる中央処理装置K1,K2,K3,K4又はそれらのゾーンZ1,Z2に割り当てられている。
例えば、図13のコンピューティングデバイス100bのメインメモリ1030bの第1の領域B1は、第1の中央処理装置K1に割り当てられており、ここで、第1の部分領域B1_1は、第1のゾーンZ1に割り当てられており、第2の部分領域B1_2は、第2のゾーンZ2に割り当てられている。他の好ましい実施形態においては、相応の領域又は部分領域B4,B4_1,B4_2への同様の分割が、第4の中央処理装置K4に対しても可能である。
他の好ましい実施形態においては、メインメモリ1030bの他の領域B2,B3を、例えば、アプリケーションコアK2,K3に割り当てることができる。他の好ましい実施形態においては、領域B2を、例えば、信頼できる領域B2’と信頼できない領域B2”とにさらに分割することができる。同様のことが、他の好ましい実施形態においては、第3のアプリケーションコアK3にも当てはまる(参照符号B3’,B3”を参照されたい)。
他の好ましい実施形態においては、図13において参照符号SSE’によって集合的に示されている1つ又は複数のさらなるメモリ保護デバイスが設けられるものとしてよく、これによって、例えば、読取権及び/又は書込権及び/又は実行権に関する、好ましい実施形態による各分離を実現することができる。
他の好ましい実施形態においては、図13のコンピューティングデバイス100bは、例えば、ゲートウェイ432、即ち、ネットワーク結合要素の機能性を提供するものとしてよく、これは、例えば、CANバス(CANコア K1を参照されたい)をイーサネットネットワーク(ETHコア K4を参照されたい)と結合することができる。他の好ましい実施形態においては、例えば、第1の中央処理装置K1は、CANメッセージ用のいわゆる高速ルーティングエンジンの機能を担うことができ、及び/又は、第4の中央処理装置K4は、イーサネットメッセージ用のいわゆる高速エンジンの機能を担うことができる。
図14は、例えば、メッセージ、特にCANメッセージの受信時の割り込み要求の処理を例示的に示す、他の好ましい実施形態によるフローチャートを概略的に示している。
ブロックISR6は、例えば、次の割り込み要求、即ち、
a)メッセージの受信(「Rx」)、
b)タイマ(「Timer」)の通知、
c)ソフトウェアを用いて生成された割り込み要求(「SW」)
のうちの少なくとも1つの割り込み要求の際に実行可能な割り込みルーチンを例示的に表している。ブロックT_RX_Z1は、ゾーンZ1に割り当てられており、メッセージの受信時(「Rx」)に実行されるタスク(例えば、アプリケーションプログラムの一部又はアプリケーションプログラムのインスタンス)を例示的に表している。これは、図13のコンピューティングデバイス100bの第1の中央処理装置K1のインスタンスI1と比肩可能である。ブロックT_RX_Z2は、ゾーンZ2に割り当てられており、メッセージの受信時に実行されるタスクを例示的に表している。これは、図13のコンピューティングデバイス100bの第1の中央処理装置K1のインスタンスI2と比肩可能である。ブロックT_TX_Z1は、ゾーンZ1に割り当てられており、メッセージの送信時に実行されるタスクを例示的に表している。これは、図13のコンピューティングデバイス100bの第1の中央処理装置K1のインスタンスI3と比肩可能である。ブロックT_TX_Z2は、ゾーンZ2に割り当てられており、メッセージの送信時に実行されるタスクを例示的に表している。これは、図13のコンピューティングデバイス100bの第1の中央処理装置K1のインスタンスI4と比肩可能である。
矢印a30は、(CAN)メッセージの受信によってトリガされる割り込み要求を表し、これは、特に現在実行中のタスク(送信タスクT_TX_Z2を参照されたい)の処理を中断する(矢印a30’を参照されたい)。この結果、他の好ましい実施形態においては、受信機タスクT_RX_Z1が、割り込みルーチンISR6によって呼び出される(矢印a31を参照されたい)。受信機タスクT_RX_Z1の実行後、これは、好ましくはソフトウェア割り込み要求(Software-Interrupt)a32によって、再び割り込みルーチンISR6に分岐し、その後、これは、以前に中断された送信タスクT_TX_Z2を続行する(矢印a33を参照されたい)。タイマによって生成される割り込み要求(Timer IRQ)が発生するとa34、割り込みルーチンISR6は送信タスクT_TX_Z1を呼び出す(矢印a35を参照されたい)。これによって、その前に実行されていた送信タスクT_TX_Z2の割り込みa34’が発生する。
図14のダイヤグラム及び上述の説明から、実施形態による原理に従って異なるゾーンZ1,Z2,…(他の好ましい実施形態においては、2つ以上のゾーンも可能である)に割り当て可能な、実施形態によるコンピューティングデバイスによって実行可能な異なるプログラム部分(タスク)が、どのように実行可能であるのかが明確に示され、又は、それらの実行が、例えば、オペレーティングシステムBS及び/又はスーパーバイザSVの一部であり得る、例えば割り込みルーチンISR6によってどのように制御可能であるのかが明確に示される。
図15は、他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示しており、ここでは、例示的なゾーン遷移ZT、即ち、好ましい実施形態による第1のゾーンから、好ましい実施形態による第2のゾーンへのデータの伝送を対象として含む用途が例示的に示されている。
ここで、図15の第1の中央処理装置K1は、既に図13を参照して上述されたCANコアK1に相当し、図15の他の中央処理装置K2,K3は、図13のアプリケーションコアK2,K3に相当する。同様のことが、メインメモリ1030bの領域B1,B2,B3又はそれらの部分領域にも当てはまる。
矢印A1は、CANメッセージの受信を表し、これは、第1の中央処理装置K1の相応のアプリケーションプログラムのインスタンスI1(又はプログラム又はサブプログラム又はプロキシ)による処理をトリガする。第1のゾーンZ1に割り当てられているインスタンスI1は、受信したCANメッセージのデータ又はそこから得られたデータを、メインメモリを介して(特に他の交換用バッファメモリ領域B3”を介して)、このようなデータを処理するためのアプリケーションプログラムのインスタンスI5(又はプログラム又はサブプログラム又はプロキシ)に伝送する(矢印A2を参照されたい)。インスタンスI5は、第1のゾーンZ1に割り当てられており、第3の中央処理装置K3によって実行可能である(矢印A3を参照されたい)。図15の参照符号I6は、データパケットの検査、特にディープパケットインスペクション DPIのためのアプリケーションプログラムのインスタンスを示す。これは、受信したデータ(このデータは、交換用バッファメモリ領域B3”内に位置する)をより詳細に検査し、さらに、メインメモリ1030bの部分領域B3”に書き込む(矢印A5を参照されたい)。さらに、第2の中央処理装置K2により実行され、第2のゾーンZ2に割り当てられているDPIアプリケーションプログラムの他のインスタンスI6’が、部分領域B3”からデータを読み取る。これは、既に上述されたゾーン遷移ZTに相当する(矢印A6を参照されたい)。
他の好ましい実施形態においては、(DPIの意味における)特に詳細なペイロード分析が、例えば、インスタンスI6’(「Z2-DPI-プロキシ」、即ち、DPI方法を実行する、第2のゾーンZ2に割り当てられているプロキシ)によって実行され、ここではインスタンスI6(「Z1-DPI-プロキシ」、即ち、DPI方法を実行する、第1のゾーンZ1に割り当てられているプロキシ)は、好ましくは、B3”におけるデータのコピーを担当する。
第2の中央処理装置K2によるデータの任意選択的なさらなる処理の後(矢印A7を参照されたい)、データ又はそこから派生したデータは、インスタンスI5’によって、メインメモリ1030bのメモリ領域B1_2(第2のバッファメモリ領域)に書き込まれ(矢印A8を参照されたい)、ここから、インスタンスI4は、データを取り出し、例えば、再びCANバスに送出する(矢印A10を参照されたい)。インスタンスI4は、例えば、CANメッセージを送信するように構成されており、第2のゾーンZ2に割り当てられており、CANコアK1によって実行可能である。
例示的に図15を参照して上述されたシナリオは、次の用途、即ち、
a)CANメッセージを使用した診断、
b)CANメッセージに適用されるDPI、
c)プロキシ、例えば、通信プロトコル及び/又は診断プロトコルなどに対するプロキシの形成、
d)特にアプリケーションプログラムを取り入れた、例えば第1のCANバスから例えば第2のCANバスへのルーティング(これによって、例示的に、ルーティングされるCANメッセージ、特に分析及び/又は変更の処理が可能になる)
のうちの少なくとも1つの用途に対して使用可能である。
図16は、図13及び図15の表示に基づいた、他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示しており、ここでは、例示的なゾーン遷移ZT’、即ち、好ましい実施形態による第1のゾーンZ1から、好ましい実施形態による第2のゾーンZ2へのデータの伝送を対象として含む用途が例示的に示されている。図15のシナリオとは異なり、図16のシナリオにおけるゾーン遷移ZT’は、矢印A11乃至A20に従って、イーサネットコアK4から始まってCANコアK1へと行われる。
図16から、イーサネットメッセージの受信A11の後に、相応のデータがメモリ領域又は第1のバッファメモリ領域B3’内に格納され(矢印A12)、このメモリ領域からデータが、第1のゾーンZ1に割り当てられているアプリケーションコアK3によって読み込まれ(矢印A13)、処理され(矢印A14)、さらに、相応に処理されたデータが、他のメモリ領域又は交換用バッファメモリ領域B3”内に書き込まれる(矢印A15)ことが見て取れる。
さらに、このデータは、第2のゾーンZ2に割り当てられているアプリケーションコアK2によって読み込まれ(矢印A16を参照されたい)、処理され(矢印A17を参照されたい)、他のメモリ領域又は第2のバッファメモリ領域B1_2内に書き込まれる(矢印A18を参照されたい)。さらに、データは、CANコアK1によって、この第2のメモリ領域B1_2から読み込まれ(矢印A19)、インスタンスI4(CANメッセージを送出するためのアプリケーションプログラムの一部)によって処理され、CANバス(図示せず)に送出される(矢印A20を参照されたい)。
図17は、図16と比肩可能な構成を例示的に示しており、この構成においては、到来したイーサネットメッセージが中央処理装置K4によって受信され(A21)、メインメモリ1030b内にバッファされ(A22)、第1の中央処理装置K1のインスタンスI3を用いて読み取られ(A23)、CANバスに送信される(A24)。
図18は、図13及び図15の表示に基づいた、他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示している。ここでは、ハードウェアセキュリティモジュールHSMが使用される用途が例示的に示されている。ハードウェアセキュリティモジュールHSMは、ここでは例示的に、特に第2の中央処理装置K2’も有するコンピューティングデバイス(図18には示されていない、例えば、図1の参照符号100を参照されたい)に統合されており、暗号化機能を実行するように構成されている。他の好ましい実施形態においては、暗号化機能は、例えば、(秘密)鍵の格納及び/又はハッシュ値の形成及び/又は署名などを有するものとしてよい。
他の好ましい実施形態においては、ハードウェアセキュリティモジュールHSMは、好ましくは、コンピューティングデバイスと同一の半導体基板又はダイ(チップ)上に配置されている独立した(「on-chip」)モジュールを表す。ハードウェアセキュリティモジュールHSMは、好ましくは、固有の中央処理装置(図示されていない)、及び、場合によっては固有のメモリなどを有する。
他の好ましい実施形態においては、暗号スタックKSが設けられており、これは、コンピューティングデバイスの中央処理装置とハードウェアセキュリティモジュールHSMとの間の通信に利用可能である。他の好ましい実施形態においては、特にセキュリティ上の理由から、この暗号スタックKSは、中央処理装置K2’上においてのみ実現されている。なぜなら、中央処理装置K2’は、ここでは例示的に、信頼できるゾーンZ2にのみ割り当てられている、コンピューティングデバイスの単一の中央処理装置だからである。従って、他の好ましい実施形態においては、中央処理装置K2’は、「most secure core」、即ち、最も安全な中央処理装置とみなされ得る。矢印A31,A32,A33,A34,A35,A36は、例示的に以下のステップを表している。即ち、イーサネットメッセージを受信するステップ(A31)と、受信したメッセージを第1のバッファメモリ領域B3’内に格納するステップ(A32)と、第3の中央処理装置K3のアプリケーションプログラムによってこのメッセージをロードするステップ(A33)と、第3の中央処理装置K3によって、ロードされたメッセージを処理するステップ(A34)と、処理時に得られたデータを交換用バッファメモリ領域B3”内に書き込むステップ(A35)と、第2の中央処理装置K2’上において実行可能なプログラム又はアプリケーションプログラムによって、交換用バッファメモリ領域B3”から、書き込まれたデータをロードするステップ(A36)と、を表している。
他の好ましい実施形態においては、第2の中央処理装置K2’は、特にハードウェアセキュリティモジュールHSMも使用して、ロードされたデータを処理する(矢印A37を参照されたい)。処理A37は、例えば、データの暗号化を含み得る。さらに、処理されたデータA38が第2のバッファメモリ領域B1_2内に書き込まれる(A38)。その後、CANコアK1のインスタンスによって第2のバッファメモリ領域B1_2から、このデータがロードされ(A39)、CANバスに送信される。
図19は、図18の表示に基づいた、他の好ましい実施形態による態様の簡略化されたブロック図を概略的に示しており、ここでは、例えば、特にFOTA(firmware over the air)タイプのファームウェアアップデートが実行可能な用途が例示的に示されている。例えば、好ましい実施形態においては、データの受信は、イーサネット接続を介して、例えば第4の中央処理装置K4を用いて行われるものとしてよい(矢印A41を参照されたい)。受信プログラムのインスタンスI1’は、受信したデータを第1のメモリ領域B3’内に書き込む(矢印A42を参照されたい)。アプリケーション中央処理装置K3上のアプリケーションプログラムのインスタンスは、第1のバッファメモリ領域B3’からデータをロードし(A43)、処理する(A44)。例えば、第1のFOTAプロキシI7である他のインスタンスI7は、処理されたデータからFOTAプロセスに必要なデータを抽出し、抽出されたデータを、例えば、(特に第2のゾーンZ2の観点から)信頼できないものとしてみなされている交換用バッファメモリ領域B3”内に書き込む(A45)。例えば第2のFOTAプロキシであり、中央処理装置K2”上において実行可能なアプリケーションプログラムのインスタンスI8は、交換用バッファメモリ領域B3”からデータをロードする(矢印A46)。任意選択的に、次に、中央処理装置K2”によって、ロードされたデータに対して暗号化方法が実行されるものとしてよく、これは、例えば、有利にはハードウェアセキュリティモジュールHSMを利用するCMAC形成である(矢印A47を参照されたい)。他の好ましい実施形態においては、任意選択的に処理されるデータ又はCMAC値が外部メモリに格納されるものとしてよい(矢印A48を参照されたい)。このような格納は、他の好ましい実施形態においては、FOTAプロキシI8によって制御される。
他の好ましい実施形態においては、第2のゾーンZ2は、交換用バッファメモリ領域B3”に対する読取権のみを有しており、特に書込権及び/又は遂行権は有していない。このことは、他の好ましい実施形態において、例えば、例示的に図4,図5を参照して上述された構成においても相応に当てはまり得る。
他の好ましい実施形態においては、例えば、少なくとも1つの中央処理装置又はコンピューティングデバイス全体及び/又は相応の制御装置に対する完全なメモリ画像(「ECU 画像」)1033aも、外部メモリ1033に一時的に格納されるものとしてよい。
他の好ましい実施形態においては、第2の中央処理装置K2”によって実行可能なアプリケーションプログラム又はその相応のインスタンスが、例えば、外部メモリ1033内に格納されているデータの内容を検査又は確認することができる。
他の好ましい実施形態においては、例えば、外部メモリ1033内に含まれているデータの確認が成功した後に、相応のメモリ画像1033aが1つ又は複数の外部装置(図示せず)に分配されるものとしてよく(矢印A49,A50,A51,A52を参照されたい)、これらは特に、例えばブロックごとに、外部メモリ1033aからメインメモリ1030bの第2のバッファメモリ領域B1_2へメモリ画像1033aをコピーし(A50)、そこからインスタンスI4へコピーすること(例えば、CAN送信タスク)を対象として含む。
他の好ましい実施形態においては、この確認は、好ましくは、デジタル署名及び/又は署名されたハッシュ値に基づいて実行されるものとしてよい。例えば、他の好ましい実施形態においては、署名されたハッシュ値が各ECU画像に対して存在するものとしてよい。他の好ましい実施形態においては、署名検証は、好ましくは、ハードウェアセキュリティモジュールHSMを介して実行されるものとしてよい。
他の好ましい実施形態においては、例えば、メモリ画像1033aの分配又はコピー中にも、好ましくは同様にブロックごとに、関連するブロックの完全性及び/又は真正性を検査することを可能にするCMAC値及び/又は他の値の検査が行われるものとしてよい。これは、例えば、ハードウェアセキュリティモジュールHSMによって任意選択的にサポートされて、例えば第2の中央処理装置K2”上において実行されるアプリケーションプログラムの相応のインスタンスによって制御されて行われる。
他の好ましい実施形態においては、例えば、CMAC値の形成及び検証は、特に、例えば、署名検証のための補足的な完全性保護及び真正性保護として機能し得る。他の好ましい実施形態においては、例えば、交換用バッファメモリ領域B3”からの個々のデータパケット又は各個々のデータパケットに、CMAC値又は切り捨てられた(「truncated」)CMAC値が設けられるものとしてよい。他の好ましい実施形態においては、これ又はこれらは、例えば、第2のバッファメモリ領域B1_2への伝送の前に検証され、これによって、特に、完全かつ真正のデータパケットのみが第2のバッファメモリ領域B1_2に到達することが保証される。他の好ましい実施形態においては、バッファごとのCMAC生成及びCMAC検証は任意選択的である。図20,図21は、例えば、メッセージ、特にCANメッセージの受信時の割り込み要求の処理を例示的に示す、他の好ましい実施形態による概略的なフローチャートを示している。
ブロックISR7は、例えば、メッセージの受信(「Rx」)を通知する(「RxISR」)割り込み要求時に実行可能な割り込みルーチンを例示的に表している。
ブロックISR8は、例えば、次の割り込み要求、即ち、
a)タイマ(「Timer」)の通知、
b)ソフトウェアによって生成される割り込み要求(「SW ISR」)
のうちの少なくとも1つの割り込み要求時に実行可能な割り込みルーチンを例示的に表している。
ブロックRX_H_Z1は、ゾーンZ1に割り当てられており、メッセージの受信(「Rx」)時に実行される受信ハンドラ(例えば、メッセージの受信を制御するアプリケーションプログラムの一部又はインスタンス)を例示的に表す。これは、図13のコンピューティングデバイス100bの第1の中央処理装置K1のインスタンスI1と比肩可能である。
ブロックRX_H_Z2は、ゾーンZ2に割り当てられており、メッセージの受信(「Rx」)時に実行される受信ハンドラ(例えば、メッセージの受信を制御するアプリケーションプログラムの一部又はインスタンス)を例示的に表す。これは、図13のコンピューティングデバイス100bの第1の中央処理装置K1のインスタンスI2と比肩可能である。
ブロックT_TX_Z1’は、ゾーンZ1に割り当てられており、メッセージの送信時に実行されるタスクを例示的に表す。これは、図13のコンピューティングデバイス100bの第1の中央処理装置K1のインスタンスI3と比肩可能である。ブロックT_TX_Z2’は、ゾーンZ2に割り当てられており、メッセージの送信時に実行されるタスクを例示的に表す。これは、図13のコンピューティングデバイス100bの第1の中央処理装置K1のインスタンスI4と比肩可能である。
矢印a40は、(CAN)メッセージの受信によってトリガされる割り込み要求を表し、これは、特に現在実行中のタスク(送信タスクT_TX_Z2’を参照されたい)の処理を中断する(矢印a40’を参照されたい)。この結果、他の好ましい実施形態においては、受信ハンドラRX_H_Z1が、割り込みルーチンISR7によって呼び出される(矢印a41を参照されたい)。受信ハンドラRX_H_Z1の実行後、これは(例えば、好ましくは、ソフトウェアを用いて生成された割り込み要求によって)割り込みルーチンISR7に戻る(矢印a42)。
図20の例においては、さらに、送信タスクT_TX_Z1’が実行される(矢印a43を参照されたい)。これは、他の好ましい実施形態においては、次のような特定の利点を有し得る。即ち、タスクRX_H_Z1によって、いずれにせよ、既に、第1のゾーンZ1に対するメモリ保護デバイスの静的な構成(例えば、相応の構成データセット)がアクティブにされているという利点である。この静的な構成は、好ましくは送信タスクT_TX_Z1’にも適用される。これによって、特にパフォーマンスの観点から、送信タスクT_TX_Z1’を実行する前の、メモリ保護デバイスの関連する静的な構成の切換を省略することができる。
タイマによって生成された割り込み要求(Timer IRQ)が発生すると(a44)、割り込みルーチンISR7は送信タスクT_TX_Z2’を呼び出す(矢印a45を参照されたい)。これによって、その前に実行されていた送信タスクT_TX_Z1’の割り込み(a44’)が発生する。ゾーンZ2の静的な構成(例えば、相応の構成データセット)への切換が、好ましくは、送信タスクT_TX_Z2’が実行される前に行われる。その後、このフローは、例えば、ソフトウェア割り込み(a46)を用いて、割り込みルーチンISR7に戻り、次に送信タスクT_TX_Z1’が続行される(矢印a47を参照されたい)。
他の好ましい実施形態においては、図20,図21による割り込みルーチンISR7は、例えば、図12Aによる構成ISR4と比肩可能又は同一の構成を有するものとしてよい。
以下においては、他の好ましい実施形態、態様及び実施形態による原理の利点を説明する。これらは、他の好ましい実施形態に従って、それぞれ個別に単独で、又は、上述した実施形態のうちの少なくとも1つの実施形態との相互の組合せにより、組合せ可能である。
他の好ましい実施形態においては、コンピューティングデバイスへの侵入表面を制限するための措置として、例えば、図4,図5のメモリ1030aへのアクセス権の制限が利用可能であり、これによって、ゾーンごとのメモリ分離が、例えば、それ自体公知のメモリ保護デバイスのメカニズムを利用して可能になる。特に好ましくは、他の実施形態においては、ゾーンごとのメモリ分離を、以下において例示的に挙げるメモリ形式、即ち、例えば、信頼できるバッファメモリ((例えば、共有RAM1030における)信頼できるバッファ)の形態及び/又は信頼できないバッファメモリ((例えば、共有RAM1030における)信頼できないバッファ)の形態のバッファ(バッファメモリ)、スタック(スタックメモリ)、データメモリ(例えば、データフラッシュ EEPROMなど)、プログラムメモリ(例えば、プログラムフラッシュ ROMなど)、SFR(特殊機能レジスタ)のもとで行うことができる。
他の好ましい実施形態においては、種々のゾーンの間におけるデータ交換(「ゾーン内データ交換及び/又はゾーン間データ交換」)を、例えば、共有RAM(分割されたメインメモリ,図4の参照符号1030aを参照されたい)内に位置するバッファを介して実現することができる。
他の好ましい実施形態においては、例えば、少なくともそれぞれ1つの信頼できるバッファ及び信頼できないバッファ(用途によっては、バッファを省略することもできる)又はバッファメモリ領域が、アプリケーションプログラムのインスタンスI1,I2,I3(「プロキシ」)ごとにかつゾーンごとに設けられるものとしてよい(例えば、図4の部分領域TB1a,TB1bを参照されたい)。
他の好ましい実施形態においては、ゾーン内のデータ交換又はゾーン内通信が、特に、このゾーンの信頼できる又は第2のバッファメモリ領域TB2a(図4)を介してのみ行われる。
他の好ましい実施形態においては、ゾーン間のデータ交換又はゾーン間通信は、好ましくは、共有RAM1030aに配置された信頼できないバッファ又は交換用バッファメモリ領域TB1aを介して行われる。例えば、他の好ましい実施形態においては、データがゾーンZ1からゾーンZ2に転送される際に、データは、好ましくは、最初に、Z1プロキシによって、関連するZ1の信頼できないバッファ又は交換用バッファメモリ領域TB1a,TB2b,B”にコピーされ、関連するZ2プロキシによって、その有効性に関して内容が検証され、妥当又は正しい内容、信頼できるデータの場合は、Z2プロキシからZ2の信頼できるバッファ又は第2のバッファメモリ領域TB2a,B1_2にコピーされる。他の好ましい実施形態においては、Z1の信頼できないバッファ又は交換用バッファメモリ領域TB1a,TB2b,B3”からZ2の信頼できるバッファ又は第2のバッファメモリ領域TB2a,B1_2へのデータ検証が成功した後のコピープロセスが、ゾーン遷移と称される。他の好ましい実施形態においては、Z2の信頼できるバッファに位置する検証済みの信頼できるデータは、Z2内においてそれに応じて処理又は転送されるものとしてよく、即ち、他の好ましい実施形態においては、データ検証は、ゾーン遷移及び場合によってはデータ利用の前に行われる。
実施形態によるコンピューティングデバイスの侵入表面を制限するためのさらなる措置は、他の好ましい実施形態によるランタイムへのアクセス権の制限であり、これは、他の好ましい実施形態においては、例えば、相応のオペレーティングシステムBS又はスーパーバイザSVの制御下において行われるものとしてよい。
他の好ましい実施形態においては、例えば、図4の例示的に上述した軽量組込オペレーティングシステムBSに対して、基礎として、例えば、他の好ましい実施形態においては、(例えば、構成などを介して)その複雑性が最小化されているAUTomotive Open System ARchitecture (AUTOSAR) BSが機能する。
他の好ましい実施形態においては、侵害された中央処理装置102a(図3)によって発生する特権昇格(例えば、軽量組込OS ISRにおけるスーパーバイザモードの誤用)の場合でさえ、無効なゾーン遷移又はZ1によるZ2メモリ若しくはZ2ランタイムへの無効なアクセスは行われ得ない。なぜなら、これによって、軽量組込BSの静的で大幅に削減された機能性(他の好ましい実施形態においては、特にスーパーバイザモードにおける部分的な機能性)が、スーパーバイザモードにおける特権の乱用を許可しないからである。
他の好ましい実施形態においては、スーパーバイザモードにおいて実行されるISR(割り込みルーチン)は、関連する中央処理装置の専用メモリ保護デバイスの静的な構成データセット間の切換のみを行うことができる→中央処理装置のスーパーバイザモード及びユーザモードに対する同一の静的な構成データセットは、他の好ましい実施形態においては、関連するゾーン、例えば、第1のゾーンZ1に割り当てられているメモリ及び/又はランタイムへのアクセスのみを可能にする。
他の好ましい実施形態においては、スーパーバイザモードにおいて実行されるISRは、メモリ保護デバイスの動的な再構成を行うことができず、これは、特に、開始サイクル中の、例えば、コールドスタート中及び/又はウォームスタート中のメモリ保護デバイスの静的な、完全かつ真正の構成によって暗黙的に達成可能である。
他の好ましい実施形態においては、例えば、第1のゾーンZ1に割り当てられている、ユーザモードにおいて実行されるタスクは、特定の中央処理装置に対する専用メモリ保護デバイスの静的な構成データセット間の切換を行うことができない。なぜなら、他の好ましい実施形態においては、この切換は、スーパーバイザモードにおいてのみ可能だからである。
他の好ましい実施形態においては、例えば、第1のゾーンZ1に割り当てられている、ユーザモードにおいて実行されるタスクは、メモリ保護デバイスの動的な再構成を行うことができず、これは、有利には同様に、他の好ましい実施形態において設けられている、開始サイクル中の、即ち、例えば、コールドスタート中及び/又はウォームスタート中のメモリ保護デバイスの静的な、完全かつ真正の構成によって暗黙的に達成可能である。
他の好ましい実施形態においては、スーパーバイザSV、特に軽量組込スーパーバイザは、オペレーティングシステムBS、特に軽量組込オペレーティングシステムに対して、追加の監視機能性を有するものとしてよい。好ましくは、コア-ゾーン内分離(図5)の場合、異なる信頼レベルを有する2つのゾーンZ1及びZ2のタスクPXYは、専用中央処理装置102c上において実行され、ここでは、好ましくは、Z1タスク(第1のゾーンZ1に割り当てられているタスク又はインスタンス)及びZ2タスクに対する2つの異なる静的な構成データセットが、ユーザモードにおいて使用され、並びに、場合によってはスーパーバイザモードに対する他の静的な構成データセットが使用され、これは、例えば、Z1タスク及びZ2タスクに対する2つの静的な構成データセット間の切換を制御する。他の好ましい実施形態においては、場合によっては残存している、未使用の、ユーザモードにおけるタスクに対する静的な構成データセットは(例えば、コールドスタート中に及び/又はウォームスタート中に)、これが、例えば、メモリ全体への一般的な読取アクセス、書込アクセス及び遂行アクセスを阻止するように構成されるものとしてよく、これによって、セキュリティがさらに強化される。
他の好ましい実施形態においては、スーパーバイザモードが、特にコア-ゾーン内分離の状況において、信頼できないゾーンZ1の監視を制御することが想定されるものとしてよい(例えば、図2Mのフローを参照されたい)。
他の好ましい実施形態においては、例えば、3つ以上のゾーンZ1,Z2,Z3(図示せず)が設けられるものとしてよく、第1のゾーンZ1は、例えば非常に信頼できるゾーン/機密性の高いゾーンであり、第2のゾーンZ2は、例えば信頼できるゾーンであり、第3のゾーンZ3は、例えば信頼できないゾーンである。
他の好ましい実施形態においては、コンピューティングデバイスは、例えば、マイクロコントローラを有するものとしてよく、又は、相応の数の中央処理装置を備えたマイクロコントローラによって構成されるものとしてよい。
他の好ましい実施形態は、実施形態による方法を実行する装置1000に関する(図22の概略的なブロック図を参照されたい)。装置1000は、少なくとも1つの中央処理装置1002aを備えたコンピューティングデバイス1002を有しており、中央処理装置1002aには、任意選択的に、少なくとも1つのメモリ保護デバイス1002a’が割り当てられるものとしてよい。
装置1000はさらに、メモリデバイス1004を有しており、これは、好ましくは揮発性メモリ1004a、例えば、メインメモリ(RAM)及び/又は不揮発性メモリ1004b、例えばフラッシュEEPROM及び/又はROM及び/又はOTPメモリを有する。好ましくは、ROM1004b内にコンピュータプログラムPRGが格納されており、これは、プログラムPRGがコンピュータ1002によって実行されるときに、コンピュータ1002に、実施形態による方法を実施させるための命令を含む。
他の好ましい実施形態においては、装置1000の動作のための構成データCFGも、ROM1004b内に格納されている。この構成データCFGは、例えば、少なくとも1つのメモリ保護デバイス1002a’のための1つ又は複数の構成データ(セット)KD、KD’,KD1,KD2,KD3,KD4も含み得る。
他の好ましい実施形態においては、装置1000が、コンピューティングデバイス1002とメモリデバイス1004との間のデータを交換することを可能にする少なくとも1つのデータバス1006を有することが想定されている。
他の好ましい実施形態は、コンピュータ1002によって実行されるときに、コンピュータ1002に、実施形態による方法を実施させるための、特にコンピュータプログラムPRGの形態の命令を含むコンピュータ可読記憶媒体SMに関する。
他の好ましい実施形態は、実施形態によるコンピュータプログラムPRGを伝送するデータキャリア信号DSに関する。好ましくは、装置1000は、データキャリア信号DSを受信するための、好ましくは双方向のデータインタフェース1008を有するものとしてよい。
他の好ましい実施形態においては、コンピューティングデバイス1002は、特に例示的に図1,図3を参照して上述されたように、コンピューティングデバイス100,100aによる構成も含み得る。特に、他の好ましい実施形態においては、図22による装置1000の上述の中央処理装置又はある中央処理装置1002aが、実施形態による方法の少なくともいくつかのステップを少なくとも一時的に実行することも可能である。この点において、装置1000は例示的に、実施形態による、コンピューティングデバイス100,100aの可能なターゲットシステムとしても理解され得る。
他の好ましい実施形態においては、装置1000は、例えば、暗号化機能を実行するためのハードウェアセキュリティモジュールHSM’又は暗号化モジュールHSM’も有する。他の好ましい実施形態においては、ハードウェアセキュリティモジュールHSM’がスーパーバイザインスタンスSVIとして使用可能である。
他の好ましい実施形態においては、装置1000が、マイクロコントローラ(英語で、Microcontroller若しくはMicrocontroller Unit(MCU))として、特に、単一のマイクロコントローラ(single MCU)として、又は、シングルチップシステム(英語で、SoC system-on-chip)として、特に単一のSoC(single-SoC)として、構成されていることが想定されている。
他の好ましい実施形態においては、装置1000が、1つの、特に共通の半導体基板1001(英語で、die)を有することが想定されており、ここでは、この、特に共通の半導体基板1001上に、以下の要素、即ち、
a)少なくとも1つの中央処理装置を有するコンピューティングデバイス1002、
b)メモリデバイス1004、
c)データバス1006、
d)少なくとも1つのメモリ保護デバイス1002a、
e)(任意選択的な)ハードウェアセキュリティモジュールHSM’
のうちの少なくとも1つの要素が配置されている。
従って、好ましい実施形態による原理は、有利には、2つ以上のゾーンZ1,Z2への分離と同時に、シングルMCUシステム1又はシングルSoCシステム1の提供を可能にする。
他の好ましい実施形態においては、種々のゾーンの間におけるデータ交換(「ゾーン内データ交換及び/又はゾーン間データ交換」)を、例えば、共有RAM(分割されたメインメモリ,図4の参照符号1030aを参照されたい)内に位置するバッファ(バッファメモリ領域,交換用バッファメモリ領域)を介して実現することができ、ここでは、共有RAMは、有利には同様に、コンピューティングデバイス1002又はその中央処理装置1002a、及び、好ましくはシングルSoCシステム1の他のコンポーネント1006,HSM’,1002aと同一の共通の半導体基板1001上に配置されている。これによって、有利は、種々のゾーンZ1,Z2間の高性能(MCU内部又はSoC内部のため)かつ確実な(MCU内部又はSoC内部のため)通信チャネルが得られ、これは、他の好ましい実施形態においては、効率的にスケーリング可能でもある(例えば、場合によっては、他の(付加的な)ゾーンにおける複数のバッファ)。
有利には、好ましい実施形態は、異なるゾーンZ1,Z2の「配置」、例えば、信頼できるゾーン(TZ)及び信頼できないゾーン(NTZ)の「配置」、及び/又は、同一の、好ましくはシングルMCUシステム若しくはシングルSoCシステム1上の異なるゾーンZ1,Z2のデータに関するデータ処理を可能にする。
他の好ましい実施形態においては、実施形態による方法及び/又は装置100,100a,1000は、制御装置において、例えば、自動車用の制御装置において、特に自動車の内燃機関用の制御装置において使用されるものとしてよく、これは、例えば、次の用途、即ち、
a)制御装置の動作又は動作状態遷移の制御、
b)制御装置及び/又は他のコンポーネント及び/又は例えば自動車の1つ又は複数の機能の有効化又は非有効化、
c)エラーモード及び/又は緊急動作への切換、
d)エラーメモリエントリの実行、
e)外部ユニット及び/又はユーザへの動作状態の通知、
f)アクチュエータの駆動制御
のうちの少なくとも1つの用途に対する使用である。
他の好ましい実施形態は、特に、メモリデバイス及び/又はメモリデバイスにアクセスするコンピューティングデバイス100,100a,1002を第1の動作状態から第2の動作状態に切り換える前又は切り換える間又は切り換えた後に、メモリデバイス1030,1032,1004の少なくとも1つの部分領域を変更又は改ざんに関して検査するために、かつ、この検査に応じて、例えば、自動車の内燃機関の制御装置の動作を制御するために、実施形態による方法及び/又は実施形態による装置100,100a,1000及び/又は実施形態によるコンピュータプログラムPRGを使用することに関する。
他の好ましい実施形態(図2Uを参照されたい)は、以下の要素、即ち、
a)コンピューティングデバイス100,100a(図1)における、特にコンピューティングデバイスの中央処理装置102c内における信頼境界(「Trust Boundaries」)の提供370、
b)コンピューティングデバイス及び/又はコンピューティングデバイスのコンポーネントのうちの1つのコンポーネントに対する侵入の侵入表面の低減371(図2U)
c)メモリ1030,1032へのアクセス権の制限372、
d)周辺機器1034(図3)へのアクセス権の制限373、
e)(例えば、計算時間、中央処理装置のデータによって特徴付け可能な)計算リソースへのアクセス権の制限374(図2U)、
f)変造されたコンポーネントの影響の最小化375、
g)特に車両、特に自動車用の制御装置の動作376、
h)組込システム、特にモノのインタネットの組込システム、即ち、IoTシステムの動作377、
i)特定用途向け集積回路、即ち、ASICの動作378
のうちの少なくとも1つの要素に対する、実施形態による方法の使用及び/又は実施形態による装置の使用及び/又は実施形態によるコンピュータプログラムの使用に関する。
他の好ましい実施形態(図2Vを参照されたい)においては、この方法は、さらに、a)スーパーバイザインスタンスSVIを用いて一次スーパーバイザプロキシSVI-priを提供するステップ380、b)少なくとも1つの二次スーパーバイザプロキシSVI-sek-1,SVI-sek-2を提供するステップ382を含み、ここでは特に、少なくとも1つの二次スーパーバイザプロキシSVI-sek-1,SVI-sek-2は、少なくとも1つの中央処理装置102a,102b,102c,…,102n;K1,K2,K3,K4に割り当てられており、及び/又は、少なくとも1つのゾーンZ1,Z2に割り当てられている(例示的な詳細は、以下の図24を参照されたい)。
さらに好ましくは、一次スーパーバイザプロキシSVI-priは、オンチップトラストアンカ(TA)を用いて実現及び/又は実装され得る。
他の好ましい実施形態(図2Wを参照されたい)においては、この方法はさらに、a)スーパーバイザSVに第1の数の機能性FUN-1を提供するステップ385、b)特に動的に、第1の数の機能性FUN-1の少なくとも1つのスーパーバイザ機能性SF-1を一次スーパーバイザプロキシSVI-pri及び/又は少なくとも1つの二次スーパーバイザプロキシSVI-sek-1に割り当てるステップ386を含み、ここでは特に、割り当てるステップ386は、以下の要素、即ち、
A)コンピューティングデバイス100;100a;100bの動作パラメータ、
B)コンピューティングデバイス100;100a;100bの動作モード、
C)コンピューティングデバイス100:100a:100bの用途
のうちの少なくとも1つの要素に応じて実行される。
図24は、他の好ましい実施形態によるコンピューティングデバイス100cの簡略化されたブロック図を概略的に示している。コンピューティングデバイス100cは、1つ又は複数の中央処理装置を有しており、これらは、ここでは、参照符号KXによって集合的に示されている。中央処理装置KXに2つのゾーンZ1,Z2が割り当てられており、これら2つのゾーンZ1,Z2に、これまでに何回か例示的に説明したように、1つ又は複数のプロキシであるZ1-プロキシ 1,…,Z1-プロキシ n,Z2-プロキシ 1,…,Z2-プロキシ nが割り当てられるものとしてよい。
コンピューティングデバイス100cには、他の好ましい実施形態によれば、少なくとも2つのゾーンZ1,Z2から独立しているスーパーバイザインスタンスSVIが設定されている。任意選択的に、1つ又は複数の(「独自の」)ゾーンZ3,Z4がスーパーバイザインスタンスSVIに割り当てられるものとしてもよく、ゾーンZ3,Z4は同様に、好ましくは、少なくとも2つのゾーンZ1,Z2から独立している。これら2つのゾーンZ3,Z4には、例示的に、少なくとも一時的に1つ又は複数のプロキシであるZ3-プロキシ 1,…,Z3-プロキシ n,Z4-プロキシ 1,…,Z4-プロキシ nが割り当てられており、他の好ましい実施形態によれば、ゾーンZ3,Z4ごとのプロキシの数が(任意選択的にゾーンZ1,Z2ごとのプロキシの数も)異なるものとしてもよい。
好ましくは、例えば、コンピューティングデバイス100cの少なくとも1つの(専用の)中央処理装置を、スーパーバイザインスタンスSVIとして使用することができる。選択的に又は付加的に、他の好ましい実施形態においては、少なくとも1つのハードウェアセキュリティモジュールHSM及び/又はトラステッドプラットフォームモジュールTPMを、スーパーバイザインスタンスSVIとして使用することができる。
他の好ましい実施形態においては、スーパーバイザインスタンスSVIと中央処理装置KXとの間のデータ交換DEは、例えば、1つ又は複数のメモリ領域を使用して、特に1つ又は複数の特殊機能レジスタメモリ(英語で、special function register(s))などのレジスタメモリを使用して行うことができる。例えば、他の好ましい実施形態においては、第1のレジスタメモリ又はレジスタメモリの第1のグループSFR1が、スーパーバイザインスタンスSVIから中央処理装置KX(「ホスト中央処理装置」)にデータを伝送するために設定されている。例えば、他の好ましい実施形態においては、中央処理装置KXからスーパーバイザインスタンスSVIにデータを伝送するために、第2のレジスタメモリ又はレジスタメモリの第2のグループSFR2が設定されている。
例えば、他の好ましい実施形態においては、ワーキングメモリSR(「共有RAM」)が、一次スーパーバイザプロキシSVI-pri及び二次スーパーバイザプロキシSVI-sek-1による共通のアクセスのために設定されている。
1つ又は複数のレジスタメモリSFR2は、好ましくは、ホスト側において(即ち、複数の中央処理装置KXのうちの少なくとも1つの中央処理装置によって)読取可能及び/又は書込可能であるが、好ましくは、スーパーバイザインスタンスSVIの観点からのみ読取可能である。他の好ましい実施形態においては、SFR2のホスト側書込(即ち、複数の中央処理装置KXのうちの少なくとも1つの中央処理装置による1つ又は複数のレジスタメモリの書込)は、例えば、スーパーバイザインスタンスSVIの側における割り込み要求IRQをもたらす。
1つ又は複数のレジスタメモリSFR1は、好ましくはスーパーバイザインスタンス側において、読取可能及び/又は書込可能であるが、中央処理装置KXの観点からのみ読取可能である。さらに好ましくは、スーパーバイザインスタンス側のレジスタメモリSFR1の書込は、ホスト側KXにおける割り込み要求IRQをもたらす。
他の好ましい実施形態においては、ホスト側における、ホスト側KXの割り込み要求IRQの生成に対して任意選択的に、1つ又は複数のレジスタメモリSFR1がポーリングされるものとしてよく、特に周期的に照会されるものとしてよい。
他の好ましい実施形態に即して、両方の側に対して、特に双方向において読取可能かつ書込可能な共有RAM SRは、他の好ましい実施形態に即して、必要に応じて、2つのスーパーバイザプロキシSVI-pri,SVI-sek-1との間の補足的なデータ交換又はパラメータ交換に用いられるものとしてよい。
他の好ましい実施形態においては、共有RAM SRは、複数の領域(「サブ領域」)に分割されるものとしてよく、これらの領域は、a)双方向に読取可能かつ書込可能であり、及び/又は、b)トラストアンカTAによって(特にトラストアンカTAによってのみ)書込可能でありかつホストKXによって読取可能であり、及び/又は、c)ホストKXによって(特にホストKXによってのみ)書込可能であり及び/又はトラストアンカTAによって読取可能である。
他の好ましい実施形態においては、共有RAM SRは、任意選択的に、中央処理装置ごとに(他の好ましい実施形態によれば、少なくとも、複数の中央処理装置のいくつかに対して)それぞれ1つのメイン領域に分割されるものとしてよい。他の好ましい実施形態においては、上述の3つのサブ領域a),b),c)のうちの少なくとも1つ、好ましくはいくつか又は3つすべてが、このメイン領域又はこれらのメイン領域内に設定されるものとしてよい。他の好ましい実施形態によれば、この1つのメイン領域又はこれらの複数のメイン領域は、同様に、各メモリ保護デバイス(MPU)によって互いに分離されているので、例えば、第1の中央処理装置は、(例えば、第2の中央処理装置とトラストアンカTA、SVIとの間のデータ交換のために)第2の中央処理装置の交換領域に書き込むことができない。
他の好ましい実施形態においては、データは、中央処理装置KXとスーパーバイザインスタンスSVIとの間において、例えば、プログラム制御されて、及び/又は、(例えば、割り込み要求IRQを用いて)イベント駆動方式により、伝送され得る。
他の好ましい実施形態においては、コンピューティングデバイス100cの種々のコンポーネントの異なるリソース領域、特にメモリ領域を互いに分離するために、1つ又は複数のメモリ保護デバイスMPU’が設定されるものとしてよい。
他の好ましい実施形態においては、スーパーバイザインスタンスSVIは、特に特別に、コンピューティングデバイス100cの信頼できるインスタンス、好ましくは、いわゆるオンチップトラストアンカ(TA)を特徴付け又は表し又は形成する。他の好ましい実施形態によれば、TAは、最高の信頼レベルを有するコンピューティングデバイス100cのインスタンスを表し、これは、他の好ましい実施形態によれば、例えば、信頼モデルの「信頼の基点」(Root-of-Trust)として利用可能である。
他の好ましい実施形態によれば、既に述べたように、専用の中央処理装置、又は、好ましくは、利用可能な場合、専用のセキュリティモジュール/暗号化モジュール、例えば、ハードウェアセキュリティモジュール(HSM)、トラステッドプラットフォームモジュール(TPM)などが、TAとして機能することができる。
従って、他の好ましい実施形態によれば、いわゆる「Trust-Anchor (TA)-enforced secure Zone Supervision(トラストアンカ(TA)によるセキュアゾーンの監視)」アプローチが実現可能であり、ここでは図24に従って、例示的にそれぞれ1つの二次スーパーバイザプロキシSVI-sek-1が、1つ又は複数の監視されるべき中央処理装置KX上に設定されており、一次スーパーバイザプロキシSVI-priが、図示の例においてはHSMの形態で、監視を行うTA SVI上に設定されている。
他の好ましい実施形態によれば、TA SVIは、RAMなどの揮発性メモリ1004a(図22)、読取専用メモリ(ROM)などの不揮発性メモリ1004b又はフラッシュ、ワンタイムプログラマブル(OTP)メモリに、好ましくは制限されずにアクセスし、特殊機能レジスタSFR1,SFR2(図25)は、特に、場合によっては存在している、コンピューティングデバイス100cの特殊機能レジスタにもアクセスする。
好ましい実施形態による原理は、他の好ましい実施形態に従って、例えば、上述したコア-ゾーン内分離及びコア-ゾーン間分離の両方について、特に信頼できないゾーン及び信頼できる(ホスト)ゾーンZ1及びZ2の構成及び/又は監視のために使用される。
他の好ましい実施形態によれば、例えば、例として以下において挙げられるスーパーバイザ機能性は、特に用途に応じて、さらに特に任意に、「ホストプロキシ」SVI-sek-1と一次スーパーバイザプロキシSVI-priとの間においてシフトされるものとしてよい。ここでは特に、一次スーパーバイザプロキシSVI-priの側に実現されているスーパーバイザ機能性が向上することによって、セキュリティの特に大幅な強化がもたらされる。
1.侵害の可能性に関するゾーンZ1(任意選択的にゾーンZ2)の監視及び/又はゾーンZ1(及び/又はゾーンZ2)の侵害の可能性の検出は、好ましくは、例えば、特に各ゾーンZ1,Z2に割り当てられているタスクのタスクアクティブ化の前の、ゾーン1(及び/又はゾーンZ2)のスタック(スタックメモリ)及び/又はプログラムカウンタの監視によって行われるものとしてよく、コード遂行前の侵害の識別が行われ、この監視は、他の好ましい実施形態においては、任意選択的に、暗号に関する完全性検証及び/又は真正性検証を介して、例えば、ホスト-Z1(及びホスト-Z2)のスタック及び/又はプログラムカウンタの、例えば、ハッシュ、メッセージ認証コード(MAC)などを介して行われるものとしてよい。
2.侵害が検出された場合、他の好ましい実施形態に従って、少なくとも1つの代替反応又はエラー反応が開始される。これは、例えば、
・ゾーンZ1(及び/又はゾーンZ2)の、(例えば、電源オフ/オン-リセットを介した)安全な、特に完全な状態又はエラーモードへの移行、
・ログ(又はログファイル又はエラーメモリ)エントリの生成
である。他の好ましい実施形態においては、少なくとも一時的に、安全な及び/又は暗号化されたログエントリが、特に、好ましくはスーパーバイザインスタンスSVI(図24を参照されたい)の任意選択的な専用かつ排他的なメモリSL内に格納される。
他の好ましい実施形態においては、以下の要素、即ち、
a)例えば、ログエントリを少なくとも1つの外部インスタンス(図示せず)、例えば侵入検知システム(IDS)に転送するための真正の及び/又は暗号化された通信チャネルの構築、
b)特にゾーンZ1,Z2の、周期的に又はイベントに基づいて実行されるタスクのコーディネート及び/又は調整(例えば、スケジューリング(リソース計画)を含む)、
c)専用かつ排他的なTAメモリSL(図24)における好ましくは静的なホストタスクリストの確実な格納及び/又は処理、
d)例えば、ゾーンZ1及び/又はゾーンZ2タスクに対するホストMPU-SFRにおける静的構成データセット(「MPUセット」)間の切換
のうちの少なくとも1つの要素が想定されている。
他の好ましい実施形態においては、スーパーバイザ機能性は、完全に、TA SVI(図24)に移動させられるものとしてよく、特に、特権モード(スーパーバイザモード)は、(スーパーバイザ機能性を実現しない)中央処理装置から完全に又は少なくとも部分的に除去されるものとしてよい。
好ましい実施形態は、少なくとも一時的に及び/又は部分的に、次の作用、即ち、
1.ホスト側のスーパーバイザ機能性の最小化、侵入表面の低減(例えば、変造された(ホスト)ゾーンZ1から始まって)、
2.(ホスト)ゾーンZ1及び/又は(任意選択的に)Z2の、特にこれらのゾーンZ1,Z2に対して自立(独立)しているTAインスタンスSVIに関する監視の外注化、監視からの(ホスト)ゾーンの分離、
3.例えば、監視と暗号プリミティブとが同一のインスタンス(TA SVI又はHSM)上に実現されていることによる、監視のシンプルで安全かつ高性能な暗号拡張、(例えば、ゾーンZ1,Z2の)スタック及びプログラムカウンタの暗号に関する完全性検証及び/又は真正性検証、安全な専用かつ排他的なTAメモリSLにおけるログエントリの暗号化された格納、例えば、IDSである外部インスタンスへのログエントリの転送のための真正の及び/又は暗号化された通信チャネルの構築、
4.TAメモリSLにおける静的なホストタスクリストの確実な格納(完全性保護及び/又は真正性保護)、
5.TA側のスーパーバイザプロキシにおけるホストMPU-SFRにおける静的なMPUセットの切換のための機能性の中央化、ホスト側における切換のための機能性の取り消し、ホスト側の特権昇格が無効な場合においても切換不可能
のうちの少なくともいくつの作用を可能にする。
他の好ましい実施形態に即して、TA SVIが特に専用のメモリ保護ユニット(MPU)を有する場合、他の好ましい実施形態に即して、追加の信頼境界又はゾーンZ3,Z4の、TA SVIへの導入が行われ得る。TA側のゾーンZ3,Z4は、好ましくは、ホスト側のゾーンZ1、Z2よりも相応に高い信頼レベルと相関することができる。図24に例示的に視覚化された例示的な信頼モデルは、低下していく信頼レベルにおける次のゾーンアーキテクチャ、即ち、
・TA側:ゾーンZ4(例えば、最高の信頼レベル)
・TA側:ゾーンZ3
・ホスト側:ゾーンZ2
・ホスト側:ゾーンZ1(例えば、最低の信頼レベル)
に基づいている。
他の好ましい実施形態においては、完全な及び/又は真正のホストMPU構成が、例えば、セキュアブートメカニズムの範囲において、同様にTA SVIによって、実行されるものとしてよく、又は、少なくとも一時的に制御されるものとしてよい。

Claims (21)

  1. 車両の制御装置用の、少なくとも1つの中央処理装置(102a,102b,102c,…,102n;K1,K2,K3,K4;KX)を有するコンピューティングデバイスの動作方法であって、
    前記コンピューティングデバイス(100;100a;100b;100c)は、接続ゾーン(400)とセキュリティゾーン(440)との間のデータ交換を制御するように構成されており、
    前記セキュリティゾーン(440)は、前記車両の少なくとも1つのコンポーネント(442,444,446)を含み、前記車両の走行に必要であり、かつ、高いセキュリティ関連性を有しており、
    前記接続ゾーン(400)は、前記車両の少なくとも1つのコンポーネント(420,422,424,426)を含み、前記コンポーネントの動作は、前記車両の外側における通信を必要とするが、前記車両の走行に必要ではなく、高いセキュリティ関連性を有しておらず、
    前記コンピューティングデバイス(100;100a;100b;100c)によって実行可能な少なくとも1つの第1のプログラム(AP1)又はサブプログラムは、信頼できないゾーン(Z1)に割り当てられ、少なくとも1つの第2のプログラム(AP2)又はサブプログラムは、信頼できるゾーン(Z2)に割り当てられ、
    前記接続ゾーン(400)の前記コンポーネント(420,422,424,426)は、前記信頼できないゾーン(Z1)に割り当てられ、前記セキュリティゾーン(440)の前記コンポーネント(442,444,446)は、前記信頼できるゾーン(Z2)に割り当てられ、
    前記コンピューティングデバイス(100;100a;100b;100c)は、少なくとも1つのメモリ(1030,1032)を含み、前記メモリ(1030,1032)は、少なくとも1つの第1のバッファメモリ領域(TB1b,B3’)を有しており、前記第1のバッファメモリ領域(TB1b,B3’)には、前記信頼できないゾーン(Z1)に割り当てられている前記第1のプログラム(AP1)だけが、読取及び/又は書込のためだけにアクセスし、前記メモリ(1030,1032)は、少なくとも1つの第2のバッファメモリ領域(TB2a,B1_2)を有しており、前記第2のバッファメモリ領域(TB2a,B1_2)には、前記信頼できるゾーン(Z2)に割り当てられている前記第2のプログラム(AP2)だけが、読取及び/又は書込のためだけにアクセスし、前記メモリ(1030,1032)は、少なくとも1つの交換用バッファメモリ領域(TB1a,TB2b,B3”)を有しており、前記交換用バッファメモリ領域(TB1a,TB2b,B3”)は、前記信頼できないゾーン(Z1)の前記第1のプログラム(AP1)に、書込のためのアクセスだけを許可し、前記信頼できるゾーン(Z2)の前記第2のプログラム(AP2)に、読取のためのアクセスだけを許可する、方法において、
    種々のゾーン(Z1,Z2)の間におけるデータの交換(280)は、
    前記データを、前記信頼できないゾーン(Z1)に割り当てられている前記第1のバッファメモリ領域(TB1b,B3’)にコピーするステップ(282)と、
    コピーされた前記データを検査するステップ(283)と、
    前記検査するステップ(283)に応じて、前記データを、前記信頼できないゾーン(Z1)に割り当てられている前記第1のバッファメモリ領域(TB1b,B3’)から、前記信頼できるゾーン(Z2)に割り当てられている前記第2のバッファメモリ領域(TB2a,B1_2)にコピーするステップ(284)と、
    を含む、方法。
  2. データは、前記第1のバッファメモリ領域(TB1b,B3’)から前記交換用バッファメモリ領域(TB1a,TB2b,B3”)に書き込まれる、請求項1に記載の方法。
  3. 前記交換用バッファメモリ領域(TB1a,TB2b,B3”)内に存在する前記データは、読取のためのアクセスに関連して検査され、前記データの検査(283)が成功すると、前記データは、前記交換用バッファメモリ領域(TB1a,TB2b,B3”)から前記第2のバッファメモリ領域(TB2a,B1_2)にコピーされる、請求項1又は2に記載の方法。
  4. 前記第1のバッファメモリ領域(TB1b,B3’)及び/又は前記第2のバッファメモリ領域及び/又は前記交換用バッファメモリ領域(TB1a,TB2b,B3”)内の前記データへの実行のためのアクセスは、阻止される、請求項1乃至のいずれか一項に記載の方法。
  5. 前記データの利用及び転送は、前記第2のバッファメモリ領域(TB2a,B1_2)から開始して行われる、請求項1乃至のいずれか一項に記載の方法。
  6. 前記メモリ(1030,1032)及び/又は前記第1のバッファメモリ領域(TB1b,B3’)及び/又は前記第2のバッファメモリ領域(TB2a,B1_2)及び/又は前記交換用バッファメモリ領域(TB1a,TB2b,B3”)へのアクセス権は、メモリ保護デバイス(M1,M2,M3,M4,M5_1,M5_2,M5_3,M5_4,M5_5,M5_6,M5_7,M5_8)によって行われる、請求項1乃至のいずれか一項に記載の方法。
  7. 少なくとも1つのゾーン(Z1,Z2)に応じて、以下の要素、即ち、
    a)前記コンピューティングデバイス(100;100a;100b)に割り当てられているメモリ(1030,1032)に対する読取権、
    b)前記コンピューティングデバイス(100;100a;100b)に割り当てられているメモリ(1030,1032)に対する書込権、
    c)前記コンピューティングデバイス(100;100a;100b)に割り当てられているメモリ(1030,1032)に対する実行権
    のうちの少なくとも1つの要素を前記読取権及び/又は前記書込権及び/又は前記実行権を制御するために、少なくとも一時的に、少なくとも1つのメモリ保護デバイス(M1,M2,M3,M4,M5_1,M5_2,M5_3,M5_4,M5_5,M5_6,M5_7,M5_8)を使用すること(232;232’)によって制御するステップ(230)をさらに含む、請求項1乃至のいずれか一項に記載の方法。
  8. 少なくとも1つの中央処理装置(102a)は、少なくとも一時的に第1の動作モードを取り(240)、前記少なくとも1つの中央処理装置(102a)は、前記第1の動作モードにおいて、少なくとも1つのメモリ保護デバイスの動作を制御する構成データ(1036)の設定及び/又は書込(242)を行い、
    記少なくとも1つの中央処理装置(102a)は、少なくとも一時的に第2の動作モードを取り(243)、前記少なくとも1つの中央処理装置(102a)は、前記第2の動作モードにおいて、前記少なくとも1つのメモリ保護デバイスに対する前記構成データ(1036)の書込及び/又は変更を行うことができない、請求項に記載の方法。
  9. 前記少なくとも1つのメモリ保護デバイス(M1,M2,M3,M4,M5_1,M5_2,M5_3,M5_4,M5_5,M5_6,M5_7,M5_8)に対して構成データ(KD)の複数のセットを提供するステップ(250)をさらに含み、
    記構成データ(KD)の前記複数のセットのうちの少なくとも1つの第1のセットは、前記少なくとも2つのゾーン(Z1,Z2)のうちの信頼できないゾーン(Z1)に、前記構成データ(KD)の前記複数のセットのうちの少なくとも1つの第2のセットは、前記少なくとも2つのゾーン(Z1,Z2)のうちの信頼できるゾーン(Z2)に、割り当てられる(252)、請求項乃至のいずれか一項に記載の方法。
  10. 前記メモリ保護デバイス(M1,M2,M3,M4,M5_1,M5_2,M5_3,M5_4,M5_5,M5_6,M5_7,M5_8)の構成データ(KD)は、静的及び/又は真正に構成され、従って、前記構成データ(KD)の変更は、動作中には可能ではなく、前記コンピューティングデバイス(100;100a;100b)の再スタート後に可能である、請求項乃至のいずれか一項に記載の方法。
  11. 第1のプログラムとして第1のインスタンス(AP1_I1)が使用され、第2のプログラムとして第2のインスタンス(AP1_I2)が使用されることをさらに含み、
    前記第1のプログラム(AP1)の前記第1のインスタンス(AP1_I1)及び前記第1のプログラム(AP1)の前記第2のインスタンス(AP1_I2)を提供するステップ(260)と、
    前記第1のプログラム(AP1)の前記第1のインスタンス(AP1_I1)を前記少なくとも2つのゾーンのうちの信頼できないゾーン(Z1)に割り当てるステップ(262)と、
    前記第1のプログラム(AP1)の前記第2のインスタンス(AP1_I2)を前記少なくとも2つのゾーンのうちの信頼できるゾーン(Z2)に割り当てるステップ(263)と、
    をさらに含む、請求項1乃至10のいずれか一項に記載の方法。
  12. 前記少なくとも2つのゾーン(Z1,Z2)に応じて、異なるプログラム又はアプリケーションプログラム及び/又はアプリケーションプログラムのインスタンスに対して計算時間リソースを分離するステップ(290)をさらに含む、請求項1乃至11のいずれか一項に記載の方法。
  13. a)異なるアプリケーションプログラム及び/又はアプリケーションプログラムのインスタンスに対して計算時間リソースを割り当てるために、組込システム用のオペレーティングシステム(BS)を使用するステップ(292)であって、前記コンピューティングデバイス(100)のそれぞれ1つの中央処理装置(102a,102b)に1つのオペレーティングシステム(BS)を割り当てる、ステップ(292)、及び/又は、
    b)異なるアプリケーションプログラム及び/又はアプリケーションプログラムのインスタンスに対して計算時間リソースを割り当てるために、組込システム用のスーパーバイザ(SV)を使用するステップ(294)であって、前記コンピューティングデバイス(100)のそれぞれ1つの中央処理装置(102a,102b)に1つのスーパーバイザ(SV)を割り当てる、ステップ(294)
    をさらに含む、請求項12に記載の方法。
  14. 前記コンピューティングデバイス(100)は、少なくとも一時的にコールドスタート(310)を実行し、前記コールドスタート(310)中に、データ及び/又はプログラムコードが不揮発性メモリ(1032)からロードされ、
    前記コンピューティングデバイス(100)は、少なくとも一時的にウォームスタート(312)を実行し、前記ウォームスタート(312)中に、データ及び/又はプログラムコードが、少なくとも一時的に通電される揮発性メモリ(1030)からロードされ、
    記コールドスタート(310)中に、少なくとも1つのメモリ保護デバイス(M1,M2,M3,M4,M5_1,M5_2,M5_3,M5_4,M5_5,M5_6,M5_7,M5_8)又は前記少なくとも1つのメモリ保護デバイス(M1,M2,M3,M4,M5_1,M5_2,M5_3,M5_4,M5_5,M5_6,M5_7,M5_8)が構成され(311)、及び/又は、前記ウォームスタート(312)中に、前記少なくとも1つのメモリ保護デバイス(M1,M2,M3,M4,M5_1,M5_2,M5_3,M5_4,M5_5,M5_6,M5_7,M5_8)が構成される(313)、請求項1乃至13のいずれか一項に記載の方法。
  15. 以下の要素、即ち、
    a)少なくとも1つの付加的なゾーンの導入(350)、
    b)第1の中央処理装置(102a)から、前記コンピューティングデバイスの少なくとも1つの他の中央処理装置(102b)への機能性の移動(352)、
    c)インメモリ(1030)を使用した、少なくとも2つのゾーン(Z1,Z2)間の通信の実行(354)、
    d)少なくとも1つの信頼できるゾーン(Z2)の定義(360)、及び、任意選択的に、前記信頼できるゾーン(Z2)に割り当てられている少なくとも1つのアプリケーションプログラムによる、少なくとも1つの他のゾーン(Z1)の監視(362)
    のうちの少なくとも1つの要素をさらに含む、請求項1乃至14のいずれか一項に記載の方法。
  16. 異なるアプリケーションプログラム及び/又はアプリケーションプログラムのインスタンスに対して計算時間リソースを割り当てる(212a)ためにスーパーバイザ(SV)を使用するステップ(212;294)をさらに含み、
    前記スーパーバイザ(SV)及び/又は前記スーパーバイザ(SV)に対応する機能性は、少なくとも部分的にスーパーバイザインスタンス(SVI)によって実現され、前記スーパーバイザインスタンス(SVI)は、前記少なくとも2つのゾーン(Z1,Z2)から独立している、請求項1乃至15のいずれか一項に記載の方法。
  17. 前記コンピューティングデバイス(100;100a;100b;100c)は、複数の中央処理装置(102a,102b,102c,…,102n;K1,K2,K3,K4)を有しており、
    前記方法はさらに、a)少なくとも1つの中央処理装置(102a,102b)を厳密に1つのゾーンに割り当てるステップ(220)、及び/又は、b)少なくとも1つの中央処理装置(102a,102b)を1つ以上のゾーンに割り当てるステップ(222)、c)少なくとも1つの中央処理装置をスーパーバイザインスタンス(SVI)として使用するステップ(224)、d)少なくとも1つのハードウェアセキュリティモジュール(HSM)及び/又はトラステッドプラットフォームモジュール(TPM)をスーパーバイザインスタンス(SVI)として使用するステップ(225)を含む、請求項16に記載の方法。
  18. 前記方法はさらに、a)前記スーパーバイザインスタンス(SVI)を用いて一次スーパーバイザプロキシ(SVI-pri)を提供するステップ(380)と、b)少なくとも1つの二次スーパーバイザプロキシ(SVI-sek-1,SVI-sek-2)を提供するステップ(382)とを含み、
    記少なくとも1つの二次スーパーバイザプロキシ(SVI-sek-1,SVI-sek-2)は、少なくとも1つの中央処理装置(102a,102b,102c,…,102n;K1,K2,K3,K4)及び/又は前記少なくとも1つのゾーン(Z1,Z2)に割り当てられる、請求項17に記載の方法。
  19. 前記方法は、さらに、a)前記スーパーバイザ(SV)に対する第1の数の機能性(FUN-1)を提供するステップ(385)と、b)前記第1の数の機能性(FUN-1)の少なくとも1つのスーパーバイザ機能性(SF-1)を前記一次スーパーバイザプロキシ(SVI-pri)及び/又は前記少なくとも1つの二次スーパーバイザプロキシ(SVI-sek-1)に割り当てるステップ(386)とを含み、
    記割り当てるステップ(386)を、以下の要素、即ち、
    A)前記コンピューティングデバイス(100;100a;100b;100c)の動作パラメータ、
    B)前記コンピューティングデバイス(100;100a;100b;100c)の動作モード、
    C)前記コンピューティングデバイス(100;100a;100b;100c)の用途
    のうちの少なくとも1つの要素に応じて実行する、請求項18に記載の方法。
  20. 前記第1の数の機能性(FUN-1)及び/又は前記少なくとも1つのスーパーバイザ機能性(SF-1)は、以下の要素、即ち、
    a)害の可能性に関する少なくとも1つのゾーン(Z1,Z2)の監視、
    b)少なくとも1つのゾーン(Z1,Z2)の侵害の検出、
    c)少なくとも1つのゾーン(Z1,Z2)に関連付けられている少なくとも1つのスタックメモリの監視、
    d)連する前記ゾーン(Z1,Z2)のタスクのアクティブ化の前に実行される、少なくとも1つのゾーン(Z1,Z2)に関連付けられている少なくとも1つのプログラムカウンタの監視、
    e)行可能なプログラムコードの実行前の侵害の識別、
    f)るスタックメモリ又は前記スタックメモリの、ある監視若しくは前記監視のための、及び/又は、あるプログラムカウンタ若しくは前記プログラムカウンタの、ある監視若しくは前記監視のための、以下の要素、即ち、
    f1)ハッシュ値の形成、
    f2)メッセージ認証コード(MAC)の形成
    のうちの少なくとも1つの要素を含む、少なくとも1つの方法の使用
    のうちの少なくとも1つの要素を含む、請求項19に記載の方法。
  21. 請求項1乃至20のいずれか一項に記載の方法を実施するための装置(100;100a;100b;1000)であって、
    前記装置(100;100a;100b;1000)は、単一のマイクロコントローラとして又は単一のシングルチップシステム(1)として構成されており、及び/又は、前記装置(100;100a;100b;1000)は、1つの半導体基板(1001)を有しており、
    記半導体基板(1001)上に、以下の要素、即ち、
    a)少なくとも1つの中央処理装置(1002a)を有する前記コンピューティングデバイス(1002)、
    b)メモリデバイス(1004)、
    c)データバス(1006)、
    d)メモリ保護デバイス(1002a’)、
    e)ハードウェアセキュリティモジュール(HSM;HSM’)
    のうちの少なくとも1つの要素が配置されている、
    装置(100;100a;100b;1000)。
JP2022537899A 2019-12-20 2020-12-16 コンピューティングデバイスの動作方法及び動作装置 Active JP7392157B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102019220461.9A DE102019220461A1 (de) 2019-12-20 2019-12-20 Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung
DE102019220461.9 2019-12-20
PCT/EP2020/086404 WO2021122734A1 (de) 2019-12-20 2020-12-16 Verfahren und vorrichtung zum betreiben einer recheneinrichtung

Publications (2)

Publication Number Publication Date
JP2023508913A JP2023508913A (ja) 2023-03-06
JP7392157B2 true JP7392157B2 (ja) 2023-12-05

Family

ID=74106017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022537899A Active JP7392157B2 (ja) 2019-12-20 2020-12-16 コンピューティングデバイスの動作方法及び動作装置

Country Status (6)

Country Link
US (1) US20230021594A1 (ja)
EP (1) EP4078415A1 (ja)
JP (1) JP7392157B2 (ja)
CN (1) CN114787806A (ja)
DE (1) DE102019220461A1 (ja)
WO (1) WO2021122734A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021104153A1 (de) 2021-02-22 2022-08-25 Bayerische Motoren Werke Aktiengesellschaft Steuervorrichtung, telematiksteuergerät und verfahren
DE102022207910A1 (de) * 2022-08-01 2024-02-01 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Verarbeiten von mit einem Hardware-Sicherheitsmodul assoziierten Daten

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015067107A (ja) 2013-09-30 2015-04-13 日立オートモティブシステムズ株式会社 車両用制御装置
US20150212952A1 (en) 2014-01-30 2015-07-30 Robert Bosch Gmbh Method for the coexistence of software having different safety levels in a multicore processor system
WO2017056725A1 (ja) 2015-09-30 2017-04-06 日立オートモティブシステムズ株式会社 車載制御装置
WO2019074000A1 (ja) 2017-10-13 2019-04-18 日立オートモティブシステムズ株式会社 車両用制御装置
JP2019129500A (ja) 2018-01-26 2019-08-01 住友電気工業株式会社 なりすまし検出装置、検出方法、およびコンピュータプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030084196A1 (en) * 2001-11-01 2003-05-01 Chang Cheng Tsung Message passing method for computer system
DE102022204716A1 (de) * 2022-05-13 2023-11-16 Robert Bosch Gesellschaft mit beschränkter Haftung Rechnersystem zur bereitstellung einer mehrzahl von funktionen für eine vorrichtung, insbesondere für ein fahrzeug, mittels separation einer mehrzahl von zonen

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015067107A (ja) 2013-09-30 2015-04-13 日立オートモティブシステムズ株式会社 車両用制御装置
US20150212952A1 (en) 2014-01-30 2015-07-30 Robert Bosch Gmbh Method for the coexistence of software having different safety levels in a multicore processor system
WO2017056725A1 (ja) 2015-09-30 2017-04-06 日立オートモティブシステムズ株式会社 車載制御装置
WO2019074000A1 (ja) 2017-10-13 2019-04-18 日立オートモティブシステムズ株式会社 車両用制御装置
JP2019129500A (ja) 2018-01-26 2019-08-01 住友電気工業株式会社 なりすまし検出装置、検出方法、およびコンピュータプログラム

Also Published As

Publication number Publication date
US20230021594A1 (en) 2023-01-26
EP4078415A1 (de) 2022-10-26
WO2021122734A1 (de) 2021-06-24
CN114787806A (zh) 2022-07-22
DE102019220461A1 (de) 2021-06-24
JP2023508913A (ja) 2023-03-06

Similar Documents

Publication Publication Date Title
JP7428795B2 (ja) コンピューティングデバイスの動作方法及び動作装置
US10129259B2 (en) Installment configurations within a vehicle and interoperability of devices configured to implement secure communication lockdowns, and methods of use thereof
US20200380116A1 (en) Secure environment in a non-secure microcontroller
US10235515B2 (en) Method and apparatus for on-demand isolated I/O channels for secure applications
JP4556144B2 (ja) 情報処理装置、復旧装置、プログラム及び復旧方法
CN101006433B (zh) 信息通信装置和程序执行环境控制方法
JP5153887B2 (ja) プロセッサから周辺機器へのセキュア動作モードアクセス特権の譲渡のための方法及び装置
US9076017B2 (en) Hardware virtualization module for exclusive controlled access to CPU
US7474618B2 (en) Partitioning communication system
TW201617957A (zh) 鑑別變數之管理技術
CN104866762B (zh) 安全管理程序功能
US8627069B2 (en) System and method for securing a computer comprising a microkernel
US20180082057A1 (en) Access control
JP7392157B2 (ja) コンピューティングデバイスの動作方法及び動作装置
US10824766B2 (en) Technologies for authenticated USB device policy enforcement
US20150207661A1 (en) System and method for providing priority based access to resources for applications
Nasser Securing safety critical automotive systems
Noorman Sancus: A low-cost security architecture for distributed IoT applications on a shared infrastructure
Rajesh et al. Vulnerability analysis of real-time operating systems for wireless sensor networks
EP4145318A1 (en) System and method for monitoring delivery of messages passed between processes from different operating systems
Mishra Defending Real-Time Systems through Timing-Aware Designs
Boubakri et al. Architectural Security and Trust Foundation for RISC-V
Leroux Secure by design: Using a microkernel rtos to build secure, fault-tolerant systems
Enderle et al. Deliverable D2. 2: Specification of security services incl. virtualization and firewall mechanisms

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231026

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: 20231108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231122

R150 Certificate of patent or registration of utility model

Ref document number: 7392157

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150