Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7637779B2 - 複数のアプリケーションを実行する制御装置を動作させる方法 - Google Patents
[go: Go Back, main page]

JP7637779B2 - 複数のアプリケーションを実行する制御装置を動作させる方法 - Google Patents

複数のアプリケーションを実行する制御装置を動作させる方法 Download PDF

Info

Publication number
JP7637779B2
JP7637779B2 JP2023537698A JP2023537698A JP7637779B2 JP 7637779 B2 JP7637779 B2 JP 7637779B2 JP 2023537698 A JP2023537698 A JP 2023537698A JP 2023537698 A JP2023537698 A JP 2023537698A JP 7637779 B2 JP7637779 B2 JP 7637779B2
Authority
JP
Japan
Prior art keywords
block
verification information
code block
application
code
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
JP2023537698A
Other languages
English (en)
Other versions
JP2024500453A (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 JP2024500453A publication Critical patent/JP2024500453A/ja
Application granted granted Critical
Publication of JP7637779B2 publication Critical patent/JP7637779B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

本発明は、制御装置の正常機能が複数のアプリケーションの正規の相互作用によってのみ保証可能となるという境界条件の下での制御装置の動作に関する。
背景技術
車両用の制御装置においては、機能セクションがもはや固定の集積回路への静的配置によっては設定されず、コンピュータとして構成された制御装置上において実行されるソフトウェアによって設定されることが、益々増加してきている。
こうした制御装置の機能部は、車両の動作許可に関連する車両動作の側面にも、より関連するようになっている。このことは、車両のユーザによるソフトウェアにおける権限のない変更が動作許可の解除を生じさせる可能性があり、ゆえに技術的に困難でなければならないことを意味する。こうした変更の一例が「チップチューニング」であり、これは、車両のエンジン出力を増大させるが、排気ガス特性又はノイズ特性について認容された値からの偏差を生じさせ得る。
このような形式の操作により、例えば、車両が摩耗の増加にさらされる可能性も生じることとなる。車両の故障時、ユーザが車両の修理前にソフトウェアをその初期状態へ戻すと、この操作は、場合によっては気付かれないままとなる。この場合、ユーザは、操作により本来は補償の権利を喪失したはずであったにもかかわらず、補償又はサービスでの修理を受けることができるようになってしまう。
独国特許出願公開第102012110559号明細書、独国特許出願公開第102012109619号明細書、独国特許出願公開第102014208385号明細書及び独国特許出願公開第102012109617号明細書には、制御装置をソフトウェア操作から保護するための一般的な従来技術が開示されている。
独国特許出願公開第102012110559号明細書 独国特許出願公開第102012109619号明細書 独国特許出願公開第102014208385号明細書 独国特許出願公開第102012109617号明細書
発明の開示
本発明の範囲においては、複数のアプリケーションを実行する制御装置を動作させる方法が開発されている。当該制御装置は、特に、車両用の及び/又は車両の駆動機構用の制御装置とすることができる。このような制御装置の例には、エンジン制御装置、運転ダイナミクスシステム用の制御装置(例えば、エレクトロニックスタビリゼーションプログラムESP、公知の走行ダイナミクスコントロール)、及び、交通における車両の少なくとも部分的に自動化された制御のための制御装置が挙げられる。
アプリケーションとは、特に、制御装置のハードウェア上において実行されるときに、制御装置の公称機能の少なくとも一部を実現するためのプログラムであると理解される。アプリケーションは、実行可能なプログラムコードを含む少なくとも1つのコードブロックを含む。そのほか、アプリケーションは、プログラムコードがその機能を果たすために必要とする少なくとも1つのデータブロックも含み得る。データブロックは、例えば、コントローラに対する特性マップ又は他のパラメータを含み得る。例えば、コントローラは、一般的にプログラムコードとして実装することができ、上述した特性マップ又は他のパラメータによって具体的な車両へ適応化することができる。プログラムコードは、例えば、トレーニングされた機械学習モジュール、例えばニューラルネットワークを実装していてもよい。この場合、データブロックは、例えば、トレーニング可能なモジュールの挙動を特徴付けるパラメータを含み得る。ニューラルネットワークにおいては、これらのパラメータは、例えば、ニューロン又は他の処理ユニットを動作させるためにこのニューロン又はこの処理ユニットに供給される入力を計算するための重みを含む。
方法の枠組みにおいては、制御装置内に固定に格納されている参照指示に基づいて、第1のアプリケーションの実行可能なプログラムコードを含む第1のアプリケーションの第1のコードブロックが取得される。同様に、制御装置内に固定に格納されている検証情報に基づいて、当該第1のコードブロックが当該検証情報に対応する状態にあるかどうかが検査される。当該検査の結果が肯定であることに応答して、第1のコードブロックに含まれているプログラムコードが実行のためにイネーブルされる。
制御装置内に固定に格納されているとは、特に、少なくとも制御装置のメーカの知識及び意思なしには又は制御装置における変更の企図のための権限が付与された他の部局の知識及び意思なしには制御装置のエンドユーザが自由に変更することができない、格納の形態であると理解されたい。このために、例えば、新規状態を起点として不可逆の物理書き込みプロセスにより個々のビット、バイト又はバイトのブロックを新たな値にセットすることができるメモリモジュール又は記憶媒体を使用することができる。その一例として、個々のビットが導電性構造のバーンアウト又はその他の破壊によって切り換えられる、複数のメモリモジュールが挙げられる。
なお、制御装置内に固定に格納されているとは、また、例えばトラステッドプラットフォームモジュールTPM又はハードウェアセキュリティモジュールHSMにおける格納とも理解される。このような格納は、物理的に見れば事後に変更可能であるが、特定の暗号鍵又は他の権限認証用の特徴の所有に紐付けられるものであり得る。
参照指示に基づいてコードブロックを取得すること、又は、一般的に任意の情報ブロックを取得することは、特に、例えば制御装置のプログラマブルメモリから、参照指示によって与えられたメモリアドレスを使用して当該ブロックを呼び出すことであると理解されたい。ただし、これは唯一の手段ではない。参照指示は、例えば、ブロックをインターネットからローディングするためにも使用可能である。十分に高速なインターネット接続が(例えば5G移動無線を介して)利用可能である場合、ローカルネットワークにおいてこれまで実施されていたPXEネットワークブートと同様に、制御装置自体には最小限の機能を前提とするだけでよく、後にアプリケーションをその都度常に最新のバージョンでリローディングすることができる。
少なくとも、第1のコードブロックに含まれている参照指示に基づいて、別のアプリケーションの別のコードブロックへの参照指示を含む転移ブロックが取得される。当該別のコードブロックは、別のアプリケーションの実行可能なプログラムコードを含む。第1のコードブロックに格納されている検証情報に基づいて、転移ブロックが当該検証情報に対応する状態にあるかどうかが検査される。当該検査の結果が肯定であることに応答して、転移ブロックに含まれている参照指示に基づいて、別のアプリケーションの別のコードブロックが取得される。
この場合、同様に、別のアプリケーションのコードブロックも参照指示を含み得るものであり、この参照指示により、次の転移ブロックと、最終的に次のアプリケーションの次のコードブロックとを取得することができる。
方法によれば、実行されるアプリケーションのシーケンスにつき強制経路が設定されるように、制御装置のブート過程を、権限認証されたコードのみを実行するという単純な要件によって保護することができる。これにより、制御装置のエンドユーザがこうしたシーケンスを独自に変更すること又は特定のアプリケーションの実行を独自に抑制することが不可能となる。
逆に言えば、これは、制御装置の機能を相前後して実行される個々のアプリケーションへ分解することが、もはや特別な安全上のリスクにはならないことを意味する。制御装置の機能全体を担保するモノリシックアプリケーションは、操作に対して(例えば暗号化法によって)特に良好に保護可能であるが、引き換えに、更新又は拡張が比較的煩雑である。特に、広範かつ多様なタスクを担保する車両用の制御装置では、それぞれのアプリケーションにおいて複数のメーカが協働することが多い。最終的にモノリシックアプリケーションを形成しなければならない場合、メーカは、他の全てのメーカからの寄与物を統合し、個別のコンポーネントの更新のたびにこの統合を繰り返さなければならない。これに対し、複数のメーカが実装した機能部が複数のアプリケーションに収容されていれば、これらのアプリケーションを相互に独立に更新することができる。ただし、これにより、本明細書において説明する付加的な保護手段がない場合、制御装置のブート過程に介入しなければならない可能性が生じる。
エンドユーザによるこうした介入の動機は、例えば、多くの車両、例えば電気小型車両(「Eスクータ」としても知られる)又は電動アシスト自転車(“Pedelec”又は「Eバイク」)が多くの国々において使用のために生産されているものの、利用に際して各国におけるそれぞれ異なる法的規定にかかることにある可能性がある。この場合、純粋に技術的な観点から、これらの車両は、想定されている国々のいずれかにおいて利用される全ての機能を備えており、これらの国々のうちのいずれかにおいて必要とされる最大出力及び最大速度のために設計されている。例えば、独国でのEバイクのペダリングアシストは、25km/hの速度までしかアクティブとならず、エンジンの動作は、アクセルグリップ又は他の手動の操作要素によっては可能でなくペダリングによらなければならないが、このことは、制御装置上のソフトウェアによってのみ設定される。当該規制の遵守は、Eバイクが自転車として法的に有効化され、運転免許及び保険加入義務のない状態で公共道路交通における利用が許されるための必須の前提条件である。相応に、Eバイクのブートプロセスのいずれかの箇所において使用国に則した許可の枠組みを定めるアプリケーションが設けられ、その後、例えば、駆動システムのためのアプリケーションがこのようにして設定されたパラメータに従って実際にEバイクを走行させることができる。ここで、エンドユーザがブートシーケンスを逆順で成功させれば、許容されない機能を用いて技術的な最大可能速度で走行することも可能となってしまう。わずかなハンドグリップで特別な知識又はツールを用いずにこのような介入が起こり得る場合、たとえユーザがこうした介入を全く意図しなくとも、ここでの抽象的な可能性がユーザに重大な結果をもたらすことさえ生じ得る。即ち、ユーザは、いきなり最初に、未許可で、税が未払いでありかつ認証されていない(場合により走行許可のない)車両の運転についての捜査手続に対応することとなり、このような告発に対して防衛しなければならない。
有利には、転移ブロックに含まれている検証情報に基づいて、別のコードブロックが当該検証情報に対応する状態にあるかどうかが検査される。当該検査の結果が肯定であることに応答して、当該別のコードブロックに含まれているプログラムコードが実行のためにイネーブルされる。このようにして、制御装置内に固定に格納されている単一の参照指示と、制御装置内に固定に格納されている、検証情報(信用アンカー“Root of Trust”)を含む単一のデータセットとに基づいて、任意の数の相前後して実行すべきアプリケーションに及ぶ信用チェーン(“Chain of Trust”)を構築することができる。
特に有利な実施形態においては、第1のコードブロックに含まれている参照指示に基づいて、転移ブロックが直接に取得されるのではなく、まず参照指示ブロックが取得される。次いで、第1のコードブロックに格納されている検証情報に基づいて、参照指示ブロックが当該検証情報に対応する状態にあるかどうかが検査される。当該検査の結果が肯定であることに応答して、参照指示ブロックに含まれている参照指示に基づき、転移ブロックが取得される。この場合、参照指示ブロックはさらに、任意選択手段として、転移ブロックを検証するために、検証情報に代えて第1のコードブロックにおいて使用可能な固有の検証情報を含み得る。参照指示ブロックにおける検証情報に対して第1のコードブロックにおける検証情報の信用チェーンが存在するので、転移ブロックがどの検証情報によって確認されるのかは、安全性レベルにとって重要ではない。参照指示ブロックが固有の検証情報を含む場合、これにより、制御装置のブートシーケンスをどのエンティティによってどのように変更できるかに関して、さらに大きい粒度が得られる。
参照指示ブロックを介在させることにより、特に、例えば様々なメーカのアプリケーションが相互作用する冒頭で説明したシナリオにおいて、タスク分割が容易となる。従って、例えばどのアプリケーションを次に実行するかを参照指示ブロックによって選択することができ、そのうえこのアプリケーションの保守及び更新をそれぞれの外部メーカに委ねることができる。
上述したEバイクの例においては、例えば使用国ごとに、ローカライズチームが、道路交通におけるEバイクの使用に関する(例えば速度又は機能の利用可能性に関する)法的な規定をEバイクの対応する動作パラメータに変換することを管轄し得る。これに対して、Eバイクのメーカは、Eバイクがその挙動をそもそも各使用国に合わせて適応化することへの責任を有する。
ここでのシナリオは、例えば、意図される使用国ごとに、その使用国のためのローカライズアプリケーションへの参照指示(例えばURL)と対応するローカライズチームの公開暗号鍵とを含む転移ブロックを作成することによって実行することができる。この場合、Eバイクのメーカは、意図される使用国に応じて、具体的なサンプルにつき、当該転移ブロックのうちのいずれが選択されるかを参照指示ブロックによって承認することができる。よって、Eバイクの各サンプルには、転移ブロックの同様の項目が設けられ、変更することができるのはサンプルに対しての参照指示ブロックのみである。ローカライズアプリケーションの更新又はその他の変更は、それぞれ、転移ブロックの変更も参照指示ブロックの変更も必要としない。転移ブロックに格納されているURLの下で、転移ブロックに格納されている公開鍵によって確認することができるデジタル署名を有する新たなバージョンを格納すれば十分である。
検証情報は、例えばハッシュ値を含み得る。当該ハッシュ値がコードブロック、転移ブロック又は参照指示ブロックにより形成されたハッシュ値と一致していることに応答して、この場合、ここでのコードブロック、転移ブロック又は参照指示ブロックが検証情報に対応する状態にあることを確認することができる。
特に有利な一構成においては、検証情報は、非対称暗号化システムの少なくとも1つの公開鍵を含む。コードブロック、転移ブロック又は参照指示ブロックが当該公開鍵に属する秘密鍵によって有効に署名されていることに応答して、この場合、ここでのコードブロック、転移ブロック又は参照指示ブロックが検証情報に対応する状態にあることを確認することができる。公開鍵を検証情報として利用することにより、検証すべきコードブロック、転移ブロック又は参照指示ブロックが変更されたとしても、ここでの鍵を同一のままにしておくことができるという特別な利点が得られる。署名が確認されれば、適当な秘密鍵により署名が行われたことが確認される。これにより、コードブロック、転移ブロック又は参照指示ブロックが、これらにつき権限付与されたエンティティによって変更されたことが確認される。
検証情報としての公開鍵により、特定のフロー及び設定を変更する権限を有する者を特に簡単にランク付けして管理することができる。このため、例えば、特定の変更は唯一の車両メーカにしか留保されないが、例えば電子トレーラクラッチの付加的な初期化などの他の変更は、当該トレーラクラッチの事後取り付けを検査して自動車検査登録書類に入力する道路交通局又は技術監査協会(TUEV)に委ねることもできる。
特に有利な構成においては、第1のコードブロック、転移ブロック、及び/又は、参照指示ブロックが、付加的に、制御装置のシステムリソースへのアクセスのための権限の記述、及び/又は、制御装置内の若しくは制御装置によるアクションの実行のための権限の記述を含む。別のアプリケーションによるシステムリソースへのアクセス、及び/又は、別のアプリケーションによるアクションの実行は、ここでの権限に従って制限される。このようにして、アプリケーションの相互障害及び不適合性が低減されるように、様々なアプリケーションのメーカ間での上述したタスク分割を改善することができる。同時に、特に制御装置が車両内で使用される場合、アプリケーションが常にその意図された使用目的に対応する事項しか行うことができないようにすれば、安全性を益々向上させ易くなる。
ここで、例えば車両の内部には、基本的に全てのセンサ、アクチュエータ及び制御装置を相互に接続できるように、CANバスがネットワーク化された状態で広く導入されている。こうしたネットワークが導入される前は、大型のケーブルハーネスにより、車両に所望される意図された厳密な通信関係のための専用のポイントツーポイントコネクションがその都度形成されていた。この場合、上述したネットワーク化により極めて大きいフレキシビリティが得られ、特に、機能部の後付けが著しく容易となる。しかし、このことは、例えばエンタテインメントシステムが基本的に運転ダイナミクスシステムと通信可能である場合、利点のみを有するわけではない。エンタテインメントシステムは、その通常動作の枠組みにおいてはこうした通信を実行できないが、攻撃者によるケイパリングの後には極めて容易に実行できるようになりかねない。例えばDABデジタルラジオの復号のためのコーデックの実装が十分には保護されていない場合、攻撃者は、例えば特別に作成された、仕様に則していないデータストリームを用いて、コーデックを、開発時には全く予定されていなかった状況へと移行させることができる。例えばデータフィールドによる仕様に従ってオーディオデータの後続のブロックの大きさが予告されている場合、攻撃者は、予告された1000バイトに代えて5000バイトを送信することができる。コーデックが1000バイトの予告に対して1000バイト分のメモリしか確保しなかった場合、過剰の4000バイトによって、コーデックの制御フローに関連するメモリ内の情報が場合により上書きされてしまう。この場合、コーデックは、もはや自身が企図したタスクを実行するのではなく、攻撃者が過剰の4000バイトにパッケージングしたタスクを実行することとなる。こうした攻撃は、露出された場所にある十分に強力な超短波送信機によって、多数の車両に同時に適用され得る。
しかし、エンタテインメントシステムを担当するアプリケーションが、運転席の車内スピーカ及びコンビネーション装置へのアクセスのみ受け取り、運転ダイナミクスシステムへのアクセスを受け取らないのであれば、上記の例において説明した攻撃シナリオにおいて脅威となる障害を著しく軽減することができる。
特に有利には、先行するアプリケーションのコンテキストにおける権限の記述により、実行すべき後続のアプリケーションに対し、権限が、先行のアプリケーションもまた当該権限を有する範囲を最大としてその都度のみ認容される。こうして、場合により有効に署名されている別の既存のアプリケーションを実行することによって、権限の制限がかいくぐられることが困難となる。
有利には、当該別のアプリケーション又は後続のアプリケーションは、権限の記述によって、車両の走行安全性及び/又は付与される動作許可に抵触し得る、システムリソースへの特別なアクセス又はアクションの特別な実行から除外される。即ち、これらの場合、例えば、車両の所有者自身が上記の例で説明した車両のエンタテインメントシステム内の空隙の利用又は任意の別の安全空隙の利用を阻止することができ、これにより、スマートフォンで一般的な「ジェイルブレイク」又は「ルート化」に類似した方式により、技術的及び法的な理由で規定されている制限から当該車両を「解放」することができ、ひいては、例えば、排気ガス特性及びノイズ特性の劣化を甘受しなければならないという公共性の犠牲は生じるものの、大きいエンジン出力を得ることができる。
さらに特に有利な構成においては、少なくとも1つのアプリケーションが、制御装置に、別のアプリケーションの実行への交替後にもアクティブなままである1つ又は複数のサービスを提供させる。この場合、方法は、例えば、制御装置を備えた車両がサービスの起動後に常に定義された状態に至るように、これらのサービスの開始に対して一定のシーケンスを強制的に設定するために利用可能である。
冒頭で言及したEバイクの例においては、こうしたサービスにより、例えば現在の走行速度及びペダルへの圧力を監視することができる。この場合、一方の走行速度と他方のペダル圧力との間の比率から、例えば、この場合の許容最高速度を超過しない限りエンジンアシストを動作させるという要求を導出することができる。従って、ブートシーケンスにおける強制経路により、エンジンアシストが動作させられる前に上述した当該国固有の制限が設定されることが保証される。
特に有利な他の構成においては、コードブロックが当該検証情報に対応する状態にあるかどうかを検査することに加えて、当該コードブロックの実行中に必要とされるデータブロックが当該検証情報に対応する状態にあるかどうかも検査される。コードブロックに含まれているプログラムコードは、当該検査の結果もまた肯定である場合にのみ、実行のためにイネーブルされる。冒頭で言及したように、アプリケーションの具体的な挙動は、多くの場合にデータブロックによって特徴付けられ、このデータブロックは、例えば、ニューラルネットワークのコントローラの特性マップ又は重みを含み得る。相応に、データブロックの操作により、実行可能なプログラムコードの操作による場合と同等の重要度で制御装置の機能に介入することができる。この場合、例えば、車両のユーザによるデータブロックの目的に則した操作は、特別な知識なしにはユーザが理解することができないプログラムコードよりも著しく容易に可能とすることができる。バイナリオブジェクトコードとしてのみ存在するアプリケーションの「リバースエンジニアリング」は、プログラムコードにおけるどのような変更がどのような効果をもたらし得るかに関して、極めて要求の多いタスクである。これに対して、エンジン特性マップを有するデータブロックにおいて、例えば、いずれにせよ既に高くなっている値の上昇がエンジンの出力増大を引き起こし得ることは明白である。
説明している方法の機能部は、完全に又は部分的にソフトウェアとして実装することができる。従って、本発明は、機械可読命令を含むコンピュータプログラムにも関し、この機械可読命令は、1つ又は複数のコンピュータにおいて実行される際に上述した方法のうちのいずれかをこの1つ又は複数のコンピュータに実施させるためのものである。この意味において、機械可読命令を同様に実行することができる車両用の制御装置及び技術装置用の埋め込み型システムも、コンピュータとみなすことができる。
同様に、本発明は、コンピュータプログラムを含む機械可読データ媒体及び/又はダウンロード製品にも関する。ダウンロード製品は、データネットワークを介して伝送可能な、即ち、データネットワークのユーザによってダウンロード可能なデジタル製品であり、こうしたデジタル製品は、例えばオンラインショップでの即時のダウンロードによって入手可能である。
さらに、コンピュータは、コンピュータプログラム、機械可読データ媒体又はダウンロード製品を備えるものとしてよい。当該コンピュータは、特に、車両用の及び/又は車両の駆動機構用の制御装置とすることができる。
特に有利な一構成においては、当該制御装置は、ハードウェアセキュリティモジュールHSM及び/又はトラステッドプラットフォームモジュールTPMを備える。当該HSM又は当該TPMは、制御装置に固定に格納されている、第1のアプリケーションの第1のコードブロックへの参照指示と、固定に格納されている、当該第1のコードブロックについての検証情報とを含む。上述したモジュールは、後続のコードブロック、転移ブロック及び参照指示ブロックのすべてを検証することができる信用アンカーのための特に安全な保管場所である。
以下に、本発明を改良する他の措置を、図面に基づく本発明の好ましい実施例の説明と共に詳細に示す。
制御装置1を動作させる方法100の実施例を示す図である。 3つのアプリケーション2,3,4がインストールされた制御装置1の実施例を示す図である。
実施例
図1は、制御装置1を動作させる方法100の一実施例の概略的なフローチャートであり、図2には、制御装置1の内容が詳細に図示されている。
ステップ110において、制御装置1に固定に格納されている参照指示1aに基づいて、第1のアプリケーション2の実行可能なプログラムコードを含む第1のアプリケーション2の第1のコードブロック21が取得される。ステップ120においては、同様に制御装置1に固定に格納されている検証情報1bに基づいて、当該第1のコードブロック21が当該検証情報1bに対応する状態にあるかどうかが検査される。ここでは、任意選択手段として、ブロック121に従って、第1のコードブロック21の実行中に必要とされるデータブロックについても同様に、検証情報1bに対応する状態にあるかどうかを検査することができる。コードブロック21についての検査、及び、場合によりさらにデータブロックについての検査が肯定の結果(真理値1)を送出した場合、ステップ130において、第1のコードブロック21に含まれているプログラムコードが実行のためにイネーブルされる。
ここで、コードブロック21に含まれている参照指示21aは、次にステップ140において取得することができる転移ブロック23を直接に示すものであってよい。しかし、代替的に、参照指示21aは、参照指示ブロック22を示すものであってもよい。この場合、当該参照指示ブロック22は、ステップ132において取得され、ステップ134において、参照指示ブロック22が第1のコードブロック21からの検証情報21bに対応する状態にあるかどうかが検査される。対応する状態にある場合、ブロック141に従って、参照指示ブロック22に含まれている参照指示22aに基づいて転移ブロック23が取得される。
ステップ150において、少なくとも第1のコードブロック21に格納されている検証情報21bに基づいて、転移ブロック23が当該検証情報21bに対応する状態にあるかどうかが検査される。このとき検証情報21bを直接に使用することに代えて、第1のコードブロック21の検証情報21bによって検証された参照指示ブロック22からの検証情報22bを使用することもできる。当該検査の結果が肯定(真理値1)である場合、ステップ160において、転移ブロック23に含まれている参照指示23aに基づき、別のアプリケーション3,4の別のコードブロック31,41が取得される。
次いで、ステップ170において、転移ブロック23に含まれている検証情報23bに基づいて、別のコードブロック31,41が当該検証情報23bに対応する状態にあるかどうかを検査することができる。ステップ120と同様に、ブロック171に従って、当該検証情報23bによって、コードブロック31,41の実行中に必要とされるデータブロックについても確認可能であるかどうかを検査することができる。コードブロック31,41に関する検査の結果、及び、場合によりさらにその都度必要とされるデータブロックに関する検査の結果が肯定(真理値1)である場合、ステップ180において、別のコードブロック31,41に含まれているプログラムコードが実行のためにイネーブルされる。
当該プログラムコードの実行は、ステップ190において、制御装置1のシステムリソースへのアクセスのための権限に関する境界条件、及び/又は、制御装置1内での若しくは制御装置1によるアクションの実行のための権限に関する境界条件の下で設定することができる。ここでの境界条件は、第1のコードブロック21、転移ブロック23、及び/又は、参照指示ブロック22における相応の記述によって設定可能である。ここでは特に、例えばブロック191に従って、先行のアプリケーション2のコンテキストにおける権限の記述により、実行すべき後続のアプリケーション3,4に対し、権限が、先行のアプリケーション2もまた当該権限を有する範囲を最大としてその都度のみ認容可能となる。
ブロック192に従って、別のアプリケーション又は後続のアプリケーション3,4は、権限の記述によって、特に、例えば車両の走行安全性及び/又は付与される動作許可に抵触し得る、システムリソースへの特別なアクセス又はアクションの実行から除外され得る。
図2は、上述した方法100に従って動作可能な制御装置1の内容を例示している。制御装置1は、ハードウェアセキュリティモジュールHSM11及び/又はトラステッドプラットフォームモジュールTPM12を備え、これらのモジュールには、参照指示1a及び検証情報1bが固定に格納されている。
参照指示1aに基づき、第1のアプリケーション2の第1のコードブロック21を取得することができる。次いで、当該第1のコードブロック21を、検証情報1bに基づき確認することができる。図2に示されている実施例においては、参照指示21aは、第1のコードブロック21において、選択的に第1の参照指示ブロック22又は第2の参照指示ブロック22’を示すことができる。参照指示21aが第1の参照指示ブロック22を示している場合、当該第1の参照指示ブロック22を取得し、第1のコードブロック21内の検証情報21bによって確認することができる。これに対して、参照指示21aが第2の参照指示ブロック22’を示している場合には、当該第2の参照指示ブロック22’を取得し、検証情報21bによって確認することができる。
第1の参照指示ブロック22は、その参照指示22aにより第1の転移ブロック23を指示しており、この第1の転移ブロック23は、第1の参照指示ブロック22の検証情報22bによって(又は第1のコードブロック21の検証情報21bによっても)確認可能である。第1の転移ブロック23は、その参照指示23aにより第2のアプリケーション3のコードブロック31を指示しており、さらに検証情報23bを含み、この検証情報23bによって当該コードブロック31を確認することができる。コードブロック31は、コードブロック21と同様に、参照指示31a及び検証情報31bを含む。
第2の参照指示ブロック22’は、その参照指示22a’により第2の転移ブロック23’を指示しており、この第2の転移ブロック23’は、第2の参照指示ブロック22’の検証情報22b’によって(又は第1のコードブロック21の検証情報21bによっても)確認可能である。第2の転移ブロック23’は、その参照指示23a’ により第3のアプリケーション4のコードブロック41を指示しており、さらに検証情報23b’を含み、この検証情報23b’によって当該コードブロック41を確認することができる。コードブロック41は、コードブロック21と同様に、参照指示41a及び検証情報41bを含む。
このようにして、第1の参照指示ブロック22を、極めて少ないデータ量しか必要としない第2の参照指示ブロック22’と交換するのみで、第1のアプリケーション2の後、第2のアプリケーション3に代えて第3のアプリケーション4を実行するように設定することができる。
第2のアプリケーション3から次に実行すべきアプリケーションとしての第3のアプリケーション4への交替は、代替的に、第1の転移ブロック23と第2の転移ブロック23’との直接の交換によっても行うことができる。
第3のアプリケーション4は、必ずしも第2のアプリケーション3と完全に異なるものでなくてよく、例えば、第2のアプリケーション3を更新したものであってもよい。
任意選択手段として、参照指示ブロック22,22’を、アプリケーション2によって必要とされるデータブロックへの参照指示とすることもできる。ただし、参照指示ブロック22,22’は、転移ブロック23と同様にデータブロックへの参照指示とその確認のための検証情報とを含む鍵ブロックへの参照指示とすることもできる。これにより、それぞれのデータブロックは、自身の固有の署名源を有し得るものとなり、この署名源を用いて、当該データブロックを更新する権限を有する者を自由に定めることができる。

Claims (15)

  1. 複数のアプリケーション(2,3,4)を実行する制御装置(1)を動作させる方法(100)であって、
    ・前記制御装置(1)に固定に格納されている参照指示(1a)に基づいて、第1のアプリケーション(2)の実行可能なプログラムコードを含む前記第1のアプリケーション(2)の第1のコードブロック(21)を取得するステップ(110)と、
    ・前記制御装置(1)に固定に格納されている検証情報(1b)に基づいて、前記第1のコードブロック(21)が当該検証情報(1b)に対応する状態にあるかどうかを検査するステップ(120)と、
    ・当該検査の結果が肯定であることに応答して、前記第1のコードブロック(21)に含まれているプログラムコードを実行のためにイネーブルするステップ(130)と、
    ・少なくとも前記第1のコードブロック(21)に含まれている参照指示(21a)に基づいて、別のアプリケーション(3,4)の実行可能なプログラムコードを含む前記別のアプリケーション(3,4)の別のコードブロック(31,41)への参照指示(23a)を含む転移ブロック(23)を取得するステップ(140)と、
    ・少なくとも前記第1のコードブロック(21)に格納されている検証情報(21b)に基づいて、前記転移ブロック(23)が当該検証情報(21b)に対応する状態にあるかどうかを検査するステップ(150)と、
    ・当該検査の結果が肯定であることに応答して、前記転移ブロック(23)に含まれている参照指示(23a)に基づいて、前記別のアプリケーション(3,4)の別のコードブロック(31,41)を取得するステップ(160)と、
    を含む方法(100)。
  2. ・前記転移ブロック(23)に含まれている検証情報(23b)に基づいて、前記別のコードブロック(31,41)が当該検証情報(23b)に対応する状態にあるかどうかが検査され(170)、
    ・当該検査の結果が肯定であることに応答して、前記別のコードブロック(31,41)に含まれているプログラムコードが実行のためにイネーブルされる(180)、
    請求項1に記載の方法(100)。
  3. ・前記第1のコードブロック(21)に含まれている参照指示(21a)に基づいて、参照指示ブロック(22)が取得され(132)、
    ・前記第1のコードブロック(21)に格納されている検証情報(21b)に基づいて、前記参照指示ブロック(22)が当該検証情報(21b)に対応する状態にあるかどうかが検査され(134)、
    ・当該検査の結果が肯定であることに応答して、前記参照指示ブロック(22)に含まれている参照指示(22a)に基づいて、前記転移ブロック(23)が取得される(141)、
    請求項1又は2に記載の方法(100)。
  4. 前記検証情報(1b,21b,22b,23b)が少なくとも1つのハッシュ値を含み、
    当該ハッシュ値が前記コードブロック(21,31,41)、前記転移ブロック(23)又は前記参照指示ブロック(22)を介して形成されるハッシュ値と一致したことに応答して、前記コードブロック(21)、前記転移ブロック(23)又は前記参照指示ブロック(22)が前記検証情報(1b,21b,22b,23b)に対応する状態にあることが確認される(120,134,150,170)、
    請求項3に記載の方法(100)。
  5. 前記検証情報(1b,21b,22b,23b)が非対称暗号化システムの少なくとも1つの公開鍵を含み、
    前記コードブロック(21,31,41)、前記転移ブロック(23)又は前記参照指示ブロック(22)が前記公開鍵に属する秘密鍵によって有効に署名されていることに応答して、前記コードブロック(21,31,41)、前記転移ブロック(23)又は前記参照指示ブロック(22)が前記検証情報(1b,21b,22b,23b)に対応する状態にあることが確認される(120,134,150,170)、
    請求項3又は4に記載の方法(100)。
  6. 前記第1のコードブロック(21)、前記転移ブロック(23)、及び/又は、前記参照指示ブロック(22)は、付加的に、前記制御装置(1)のシステムリソースへのアクセスのための権限の記述、及び/又は、前記制御装置(1)内での若しくは前記制御装置(1)によるアクションの実行のための権限の記述を含み、
    前記別のアプリケーションによるシステムリソースへのアクセス、及び/又は、前記別のアプリケーション(3,4)による前記アクションの実行が、前記権限に従って制限される(190)、
    請求項3乃至5のいずれか一項に記載の方法(100)。
  7. 先行するアプリケーション(2)のコンテキストにおける権限の記述により、実行すべき後続のアプリケーション(3,4)に対し、権限が、前記先行するアプリケーション(2)もまた当該権限を有する範囲を最大としてその都度のみ認容される(191)、請求項6に記載の方法(100)。
  8. 前記別のアプリケーション(3,4)又は前記後続のアプリケーション(3,4)は、権限の記述によって、車両の走行安全性及び/又は付与される動作許可に抵触し得る、システムリソースへの特別なアクセス又はアクションの特別な実行から除外される(192)、請求項に記載の方法(100)。
  9. 少なくとも1つのアプリケーション(2)が、前記制御装置(1)に、前記別のアプリケーション(3,4)の実行への交替後にもアクティブなままである1つ又は複数のサービスを提供させる、請求項1乃至8のいずれか一項に記載の方法(100)。
  10. 前記コードブロック(21,31,41)が検証情報に対応する状態にあるかどうかを検査するステップ(120,170)に加えて、前記コードブロック(21,31,41)の実行中に必要とされるデータブロックが検証情報(1b,23b)に対応する状態にあるかどうかも検査され(121,171)、
    前記コードブロック(21,31,41)に含まれているプログラムコードは、当該検査の結果も肯定である場合にのみ実行のためにイネーブルされる、
    請求項1乃至9のいずれか一項に記載の方法(100)。
  11. コンピュータプログラムであって、1つ又は複数のコンピュータにおいて実行されるときに、前記1つ又は複数のコンピュータに、請求項1乃至10のいずれか一項に記載の方法(100)を実施させるための機械可読命令を含むコンピュータプログラム。
  12. 請求項11に記載のコンピュータプログラムを含む機械可読データ媒体。
  13. 請求項11に記載のコンピュータプログラムを含む、及び/又は、請求項12に記載の機械可読データ媒体を備えたコンピュータ。
  14. 請求項13に記載のコンピュータとしての、車両用の及び/又は車両の駆動機構用の制御装置(1)。
  15. ハードウェアセキュリティモジュールHSM(11)及び/又はトラステッドプラットフォームモジュールTPM(12)を備え、
    自身に固定に格納されている、第1のアプリケーション(2)の第1のコードブロック(21)への参照指示(1a)と、固定に格納されている、前記第1のコードブロック(21)についての検証情報(1b)と、を含む、
    請求項14に記載の制御装置(1)。
JP2023537698A 2020-12-21 2021-12-16 複数のアプリケーションを実行する制御装置を動作させる方法 Active JP7637779B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102020216380.4 2020-12-21
DE102020216380.4A DE102020216380A1 (de) 2020-12-21 2020-12-21 Verfahren zum Betreiben eines Steuergeräts, auf dem mehrere Applikationen ausgeführt werden
PCT/EP2021/086071 WO2022136083A1 (de) 2020-12-21 2021-12-16 Verfahren zum betreiben eines steuergeräts, auf dem mehrere applikationen ausgeführt werden

Publications (2)

Publication Number Publication Date
JP2024500453A JP2024500453A (ja) 2024-01-09
JP7637779B2 true JP7637779B2 (ja) 2025-02-28

Family

ID=79287714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023537698A Active JP7637779B2 (ja) 2020-12-21 2021-12-16 複数のアプリケーションを実行する制御装置を動作させる方法

Country Status (6)

Country Link
US (1) US20230385076A1 (ja)
EP (1) EP4264421B1 (ja)
JP (1) JP7637779B2 (ja)
CN (1) CN116635854A (ja)
DE (1) DE102020216380A1 (ja)
WO (1) WO2022136083A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009013825A1 (ja) 2007-07-25 2009-01-29 Panasonic Corporation 情報処理装置、及び改竄検証方法
US20090257595A1 (en) 2008-04-15 2009-10-15 De Cesare Joshua Single Security Model In Booting A Computing Device
US20170270291A1 (en) 2016-03-17 2017-09-21 Denso Corporation Information processing system
JP2019133220A (ja) 2018-01-29 2019-08-08 Necプラットフォームズ株式会社 完全性検証装置、完全性検証システム、完全性検証方法、及び、完全性検証プログラム
US20200202004A1 (en) 2018-12-19 2020-06-25 Dell Products, L.P. Secure initialization using embedded controller (ec) root of trust
US20200344066A1 (en) 2019-04-26 2020-10-29 Canon Kabushiki Kaisha Information processing apparatus and data verification method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6802006B1 (en) * 1999-01-15 2004-10-05 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US20130036103A1 (en) * 2011-08-04 2013-02-07 The Boeing Company Software Part Validation Using Hash Values
US20130111212A1 (en) 2011-10-28 2013-05-02 GM Global Technology Operations LLC Methods to provide digital signature to secure flash programming function
US8856536B2 (en) 2011-12-15 2014-10-07 GM Global Technology Operations LLC Method and apparatus for secure firmware download using diagnostic link connector (DLC) and OnStar system
DE102012109167B4 (de) 2012-09-27 2016-07-07 Tu Bergakademie Freiberg Keramischer Trennkörper zur Stofftrennung, Rohrmodul und Verwendung
US9270468B2 (en) 2013-05-29 2016-02-23 GM Global Technology Operations LLC Methods to improve secure flash programming

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009013825A1 (ja) 2007-07-25 2009-01-29 Panasonic Corporation 情報処理装置、及び改竄検証方法
US20110044451A1 (en) 2007-07-25 2011-02-24 Panasonic Corporation Information processing apparatus and falsification verification method
US20090257595A1 (en) 2008-04-15 2009-10-15 De Cesare Joshua Single Security Model In Booting A Computing Device
US20170270291A1 (en) 2016-03-17 2017-09-21 Denso Corporation Information processing system
JP2017167916A (ja) 2016-03-17 2017-09-21 株式会社デンソー 情報処理システム
JP2019133220A (ja) 2018-01-29 2019-08-08 Necプラットフォームズ株式会社 完全性検証装置、完全性検証システム、完全性検証方法、及び、完全性検証プログラム
US20200202004A1 (en) 2018-12-19 2020-06-25 Dell Products, L.P. Secure initialization using embedded controller (ec) root of trust
US20200344066A1 (en) 2019-04-26 2020-10-29 Canon Kabushiki Kaisha Information processing apparatus and data verification method
JP2020181540A (ja) 2019-04-26 2020-11-05 キヤノン株式会社 情報処理装置、データ検証方法

Also Published As

Publication number Publication date
JP2024500453A (ja) 2024-01-09
EP4264421A1 (de) 2023-10-25
US20230385076A1 (en) 2023-11-30
WO2022136083A1 (de) 2022-06-30
CN116635854A (zh) 2023-08-22
DE102020216380A1 (de) 2022-06-23
EP4264421B1 (de) 2026-04-15

Similar Documents

Publication Publication Date Title
EP3310021B1 (en) Approach for securing an access port of a vehicle network
US11288403B2 (en) System and method for cryptographic verification of vehicle authenticity
CN103166759B (zh) 使用诊断链路连接器(dlc)和onstar系统的用于安全固件下载的方法和装置
Jo et al. Vulnerabilities of android OS-based telematics system
EP1518350B1 (en) Method and system for vehicle authentication of a component
CN116346398B (zh) 安全汽车系统
WO2009147734A1 (ja) 車両、メンテナンス装置、メンテナンスサービスシステム及びメンテナンスサービス方法
CN100492248C (zh) 验证汽车中的控制设备
JP6387908B2 (ja) 認証システム
JP5861597B2 (ja) 認証システムおよび認証方法
JP7637779B2 (ja) 複数のアプリケーションを実行する制御装置を動作させる方法
Potteiger et al. A tutorial on moving target defense approaches within automotive cyber-physical systems
CN112347481A (zh) 安全启动方法、控制器和控制系统
Markham A balanced approach for securing the OBD-II port
Chawan et al. Security enhancement of over-the-air update for connected vehicles
Strandberg et al. Secure vehicle software updates: Requirements for a reference architecture
Freiwald et al. Safe and secure software updates over the air for electronic brake control systems
Böhner Security for connected vehicles throughout the entire life cycle
CN112866248B (zh) 车辆网络安全控制系统、方法以及车辆
JP4321303B2 (ja) プログラム配信システムおよび車載ゲートウェイ装置
Tratter et al. Shared mobility for transport and its environmental impact VeSIPreS: a vehicular soft integrity preservation scheme for shared mobility
Mansor Security and privacy aspects of automotive systems
Hussain Security in connected cars
Vuillaume et al. Cyber-security for Engine ECUs: Past, Present and Future
CN119128871A (zh) 一种车机系统信息安全的处理方法、装置及介质和车辆

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230726

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250217

R150 Certificate of patent or registration of utility model

Ref document number: 7637779

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150