IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングの特許一覧

特表2024-500453複数のアプリケーションを実行する制御装置を動作させる方法
<>
  • 特表-複数のアプリケーションを実行する制御装置を動作させる方法 図1
  • 特表-複数のアプリケーションを実行する制御装置を動作させる方法 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-09
(54)【発明の名称】複数のアプリケーションを実行する制御装置を動作させる方法
(51)【国際特許分類】
   H04L 9/32 20060101AFI20231226BHJP
   G06F 21/51 20130101ALI20231226BHJP
【FI】
H04L9/32 200F
H04L9/32 200B
G06F21/51
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023537698
(86)(22)【出願日】2021-12-16
(85)【翻訳文提出日】2023-06-20
(86)【国際出願番号】 EP2021086071
(87)【国際公開番号】W WO2022136083
(87)【国際公開日】2022-06-30
(31)【優先権主張番号】102020216380.4
(32)【優先日】2020-12-21
(33)【優先権主張国・地域又は機関】DE
(81)【指定国・地域】
(71)【出願人】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】グレゴア ブロット
(72)【発明者】
【氏名】ニルス ベッヒャー
(57)【要約】
複数のアプリケーション(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)への参照指示を含む転移ブロック(23)を取得するステップ(140)と、少なくとも第1のコードブロック(21)に格納されている検証情報(21b)に基づいて、転移ブロック(23)が当該検証情報(21b)に対応する状態にあるかどうかを検査するステップ(150)と、当該検査の結果が肯定であることに応答して、転移ブロック(23)に含まれている参照指示(23a)に基づいて、別のアプリケーション(3,4)の別のコードブロック(31,41)を取得するステップ(160)と、を含む方法(100)に関する。
【特許請求の範囲】
【請求項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)、
請求項1乃至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)、
請求項1乃至4のいずれか一項に記載の方法(100)。
【請求項6】
前記第1のコードブロック(21)、前記転移ブロック(23)、及び/又は、前記参照指示ブロック(22)は、付加的に、前記制御装置(1)のシステムリソースへのアクセスのための権限の記述、及び/又は、前記制御装置(1)内での若しくは前記制御装置(1)によるアクションの実行のための権限の記述を含み、
前記別のアプリケーションによるシステムリソースへのアクセス、及び/又は、前記別のアプリケーション(31,41)による前記アクションの実行が、前記権限に従って制限される(190)、
請求項1乃至5のいずれか一項に記載の方法(100)。
【請求項7】
先行するアプリケーション(21)のコンテキストにおける権限の記述により、実行すべき後続のアプリケーション(31,41)に対し、権限が、前記先行するアプリケーション(21)もまた当該権限を有する範囲を最大としてその都度のみ認容される(191)、請求項6に記載の方法(100)。
【請求項8】
前記別のアプリケーション(31,41)又は前記後続のアプリケーション(31,41)は、権限の記述によって、車両の走行安全性及び/又は付与される動作許可に抵触し得る、システムリソースへの特別なアクセス又はアクションの特別な実行から除外される(192)、請求項6又は7に記載の方法(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)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置の正常機能が複数のアプリケーションの正規の相互作用によってのみ保証可能となるという境界条件の下での制御装置の動作に関する。
【背景技術】
【0002】
背景技術
車両用の制御装置においては、機能セクションがもはや固定の集積回路への静的配置によっては設定されず、コンピュータとして構成された制御装置上において実行されるソフトウェアによって設定されることが、益々増加してきている。
【0003】
こうした制御装置の機能部は、車両の動作許可に関連する車両動作の側面にも、より関連するようになっている。このことは、車両のユーザによるソフトウェアにおける権限のない変更が動作許可の解除を生じさせる可能性があり、ゆえに技術的に困難でなければならないことを意味する。こうした変更の一例が「チップチューニング」であり、これは、車両のエンジン出力を増大させるが、排気ガス特性又はノイズ特性について認容された値からの偏差を生じさせ得る。
【0004】
このような形式の操作により、例えば、車両が摩耗の増加にさらされる可能性も生じることとなる。車両の故障時、ユーザが車両の修理前にソフトウェアをその初期状態へ戻すと、この操作は、場合によっては気付かれないままとなる。この場合、ユーザは、操作により本来は補償の権利を喪失したはずであったにもかかわらず、補償又はサービスでの修理を受けることができるようになってしまう。
【0005】
独国特許出願公開第102012110559号明細書、独国特許出願公開第102012109619号明細書、独国特許出願公開第102014208385号明細書及び独国特許出願公開第102012109617号明細書には、制御装置をソフトウェア操作から保護するための一般的な従来技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】独国特許出願公開第102012110559号明細書
【特許文献2】独国特許出願公開第102012109619号明細書
【特許文献3】独国特許出願公開第102014208385号明細書
【特許文献4】独国特許出願公開第102012109617号明細書
【発明の概要】
【課題を解決するための手段】
【0007】
発明の開示
本発明の範囲においては、複数のアプリケーションを実行する制御装置を動作させる方法が開発されている。当該制御装置は、特に、車両用の及び/又は車両の駆動機構用の制御装置とすることができる。このような制御装置の例には、エンジン制御装置、運転ダイナミクスシステム用の制御装置(例えば、エレクトロニックスタビリゼーションプログラムESP、公知の走行ダイナミクスコントロール)、及び、交通における車両の少なくとも部分的に自動化された制御のための制御装置が挙げられる。
【0008】
アプリケーションとは、特に、制御装置のハードウェア上において実行されるときに、制御装置の公称機能の少なくとも一部を実現するためのプログラムであると理解される。アプリケーションは、実行可能なプログラムコードを含む少なくとも1つのコードブロックを含む。そのほか、アプリケーションは、プログラムコードがその機能を果たすために必要とする少なくとも1つのデータブロックも含み得る。データブロックは、例えば、コントローラに対する特性マップ又は他のパラメータを含み得る。例えば、コントローラは、一般的にプログラムコードとして実装することができ、上述した特性マップ又は他のパラメータによって具体的な車両へ適応化することができる。プログラムコードは、例えば、トレーニングされた機械学習モジュール、例えばニューラルネットワークを実装していてもよい。この場合、データブロックは、例えば、トレーニング可能なモジュールの挙動を特徴付けるパラメータを含み得る。ニューラルネットワークにおいては、これらのパラメータは、例えば、ニューロン又は他の処理ユニットを動作させるためにこのニューロン又はこの処理ユニットに供給される入力を計算するための重みを含む。
【0009】
方法の枠組みにおいては、制御装置内に固定に格納されている参照指示に基づいて、第1のアプリケーションの実行可能なプログラムコードを含む第1のアプリケーションの第1のコードブロックが取得される。同様に、制御装置内に固定に格納されている検証情報に基づいて、当該第1のコードブロックが当該検証情報に対応する状態にあるかどうかが検査される。当該検査の結果が肯定であることに応答して、第1のコードブロックに含まれているプログラムコードが実行のためにイネーブルされる。
【0010】
制御装置内に固定に格納されているとは、特に、少なくとも制御装置のメーカの知識及び意思なしには又は制御装置における変更の企図のための権限が付与された他の部局の知識及び意思なしには制御装置のエンドユーザが自由に変更することができない、格納の形態であると理解されたい。このために、例えば、新規状態を起点として不可逆の物理書き込みプロセスにより個々のビット、バイト又はバイトのブロックを新たな値にセットすることができるメモリモジュール又は記憶媒体を使用することができる。その一例として、個々のビットが導電性構造のバーンアウト又はその他の破壊によって切り換えられる、複数のメモリモジュールが挙げられる。
【0011】
なお、制御装置内に固定に格納されているとは、また、例えばトラステッドプラットフォームモジュールTPM又はハードウェアセキュリティモジュールHSMにおける格納とも理解される。このような格納は、物理的に見れば事後に変更可能であるが、特定の暗号鍵又は他の権限認証用の特徴の所有に紐付けられるものであり得る。
【0012】
参照指示に基づいてコードブロックを取得すること、又は、一般的に任意の情報ブロックを取得することは、特に、例えば制御装置のプログラマブルメモリから、参照指示によって与えられたメモリアドレスを使用して当該ブロックを呼び出すことであると理解されたい。ただし、これは唯一の手段ではない。参照指示は、例えば、ブロックをインターネットからローディングするためにも使用可能である。十分に高速なインターネット接続が(例えば5G移動無線を介して)利用可能である場合、ローカルネットワークにおいてこれまで実施されていたPXEネットワークブートと同様に、制御装置自体には最小限の機能を前提とするだけでよく、後にアプリケーションをその都度常に最新のバージョンでリローディングすることができる。
【0013】
少なくとも、第1のコードブロックに含まれている参照指示に基づいて、別のアプリケーションの別のコードブロックへの参照指示を含む転移ブロックが取得される。当該別のコードブロックは、別のアプリケーションの実行可能なプログラムコードを含む。第1のコードブロックに格納されている検証情報に基づいて、転移ブロックが当該検証情報に対応する状態にあるかどうかが検査される。当該検査の結果が肯定であることに応答して、転移ブロックに含まれている参照指示に基づいて、別のアプリケーションの別のコードブロックが取得される。
【0014】
この場合、同様に、別のアプリケーションのコードブロックも参照指示を含み得るものであり、この参照指示により、次の転移ブロックと、最終的に次のアプリケーションの次のコードブロックとを取得することができる。
【0015】
方法によれば、実行されるアプリケーションのシーケンスにつき強制経路が設定されるように、制御装置のブート過程を、権限認証されたコードのみを実行するという単純な要件によって保護することができる。これにより、制御装置のエンドユーザがこうしたシーケンスを独自に変更すること又は特定のアプリケーションの実行を独自に抑制することが不可能となる。
【0016】
逆に言えば、これは、制御装置の機能を相前後して実行される個々のアプリケーションへ分解することが、もはや特別な安全上のリスクにはならないことを意味する。制御装置の機能全体を担保するモノリシックアプリケーションは、操作に対して(例えば暗号化法によって)特に良好に保護可能であるが、引き換えに、更新又は拡張が比較的煩雑である。特に、広範かつ多様なタスクを担保する車両用の制御装置では、それぞれのアプリケーションにおいて複数のメーカが協働することが多い。最終的にモノリシックアプリケーションを形成しなければならない場合、メーカは、他の全てのメーカからの寄与物を統合し、個別のコンポーネントの更新のたびにこの統合を繰り返さなければならない。これに対し、複数のメーカが実装した機能部が複数のアプリケーションに収容されていれば、これらのアプリケーションを相互に独立に更新することができる。ただし、これにより、本明細書において説明する付加的な保護手段がない場合、制御装置のブート過程に介入しなければならない可能性が生じる。
【0017】
エンドユーザによるこうした介入の動機は、例えば、多くの車両、例えば電気小型車両(「Eスクータ」としても知られる)又は電動アシスト自転車(“Pedelec”又は「Eバイク」)が多くの国々において使用のために生産されているものの、利用に際して各国におけるそれぞれ異なる法的規定にかかることにある可能性がある。この場合、純粋に技術的な観点から、これらの車両は、想定されている国々のいずれかにおいて利用される全ての機能を備えており、これらの国々のうちのいずれかにおいて必要とされる最大出力及び最大速度のために設計されている。例えば、独国でのEバイクのペダリングアシストは、25km/hの速度までしかアクティブとならず、エンジンの動作は、アクセルグリップ又は他の手動の操作要素によっては可能でなくペダリングによらなければならないが、このことは、制御装置上のソフトウェアによってのみ設定される。当該規制の遵守は、Eバイクが自転車として法的に有効化され、運転免許及び保険加入義務のない状態で公共道路交通における利用が許されるための必須の前提条件である。相応に、Eバイクのブートプロセスのいずれかの箇所において使用国に則した許可の枠組みを定めるアプリケーションが設けられ、その後、例えば、駆動システムのためのアプリケーションがこのようにして設定されたパラメータに従って実際にEバイクを走行させることができる。ここで、エンドユーザがブートシーケンスを逆順で成功させれば、許容されない機能を用いて技術的な最大可能速度で走行することも可能となってしまう。わずかなハンドグリップで特別な知識又はツールを用いずにこのような介入が起こり得る場合、たとえユーザがこうした介入を全く意図しなくとも、ここでの抽象的な可能性がユーザに重大な結果をもたらすことさえ生じ得る。即ち、ユーザは、いきなり最初に、未許可で、税が未払いでありかつ認証されていない(場合により走行許可のない)車両の運転についての捜査手続に対応することとなり、このような告発に対して防衛しなければならない。
【0018】
有利には、転移ブロックに含まれている検証情報に基づいて、別のコードブロックが当該検証情報に対応する状態にあるかどうかが検査される。当該検査の結果が肯定であることに応答して、当該別のコードブロックに含まれているプログラムコードが実行のためにイネーブルされる。このようにして、制御装置内に固定に格納されている単一の参照指示と、制御装置内に固定に格納されている、検証情報(信用アンカー“Root of Trust”)を含む単一のデータセットとに基づいて、任意の数の相前後して実行すべきアプリケーションに及ぶ信用チェーン(“Chain of Trust”)を構築することができる。
【0019】
特に有利な実施形態においては、第1のコードブロックに含まれている参照指示に基づいて、転移ブロックが直接に取得されるのではなく、まず参照指示ブロックが取得される。次いで、第1のコードブロックに格納されている検証情報に基づいて、参照指示ブロックが当該検証情報に対応する状態にあるかどうかが検査される。当該検査の結果が肯定であることに応答して、参照指示ブロックに含まれている参照指示に基づき、転移ブロックが取得される。この場合、参照指示ブロックはさらに、任意選択手段として、転移ブロックを検証するために、検証情報に代えて第1のコードブロックにおいて使用可能な固有の検証情報を含み得る。参照指示ブロックにおける検証情報に対して第1のコードブロックにおける検証情報の信用チェーンが存在するので、転移ブロックがどの検証情報によって確認されるのかは、安全性レベルにとって重要ではない。参照指示ブロックが固有の検証情報を含む場合、これにより、制御装置のブートシーケンスをどのエンティティによってどのように変更できるかに関して、さらに大きい粒度が得られる。
【0020】
参照指示ブロックを介在させることにより、特に、例えば様々なメーカのアプリケーションが相互作用する冒頭で説明したシナリオにおいて、タスク分割が容易となる。従って、例えばどのアプリケーションを次に実行するかを参照指示ブロックによって選択することができ、そのうえこのアプリケーションの保守及び更新をそれぞれの外部メーカに委ねることができる。
【0021】
上述したEバイクの例においては、例えば使用国ごとに、ローカライズチームが、道路交通におけるEバイクの使用に関する(例えば速度又は機能の利用可能性に関する)法的な規定をEバイクの対応する動作パラメータに変換することを管轄し得る。これに対して、Eバイクのメーカは、Eバイクがその挙動をそもそも各使用国に合わせて適応化することへの責任を有する。
【0022】
ここでのシナリオは、例えば、意図される使用国ごとに、その使用国のためのローカライズアプリケーションへの参照指示(例えばURL)と対応するローカライズチームの公開暗号鍵とを含む転移ブロックを作成することによって実行することができる。この場合、Eバイクのメーカは、意図される使用国に応じて、具体的なサンプルにつき、当該転移ブロックのうちのいずれが選択されるかを参照指示ブロックによって承認することができる。よって、Eバイクの各サンプルには、転移ブロックの同様の項目が設けられ、変更することができるのはサンプルに対しての参照指示ブロックのみである。ローカライズアプリケーションの更新又はその他の変更は、それぞれ、転移ブロックの変更も参照指示ブロックの変更も必要としない。転移ブロックに格納されているURLの下で、転移ブロックに格納されている公開鍵によって確認することができるデジタル署名を有する新たなバージョンを格納すれば十分である。
【0023】
検証情報は、例えばハッシュ値を含み得る。当該ハッシュ値がコードブロック、転移ブロック又は参照指示ブロックにより形成されたハッシュ値と一致していることに応答して、この場合、ここでのコードブロック、転移ブロック又は参照指示ブロックが検証情報に対応する状態にあることを確認することができる。
【0024】
特に有利な一構成においては、検証情報は、非対称暗号化システムの少なくとも1つの公開鍵を含む。コードブロック、転移ブロック又は参照指示ブロックが当該公開鍵に属する秘密鍵によって有効に署名されていることに応答して、この場合、ここでのコードブロック、転移ブロック又は参照指示ブロックが検証情報に対応する状態にあることを確認することができる。公開鍵を検証情報として利用することにより、検証すべきコードブロック、転移ブロック又は参照指示ブロックが変更されたとしても、ここでの鍵を同一のままにしておくことができるという特別な利点が得られる。署名が確認されれば、適当な秘密鍵により署名が行われたことが確認される。これにより、コードブロック、転移ブロック又は参照指示ブロックが、これらにつき権限付与されたエンティティによって変更されたことが確認される。
【0025】
検証情報としての公開鍵により、特定のフロー及び設定を変更する権限を有する者を特に簡単にランク付けして管理することができる。このため、例えば、特定の変更は唯一の車両メーカにしか留保されないが、例えば電子トレーラクラッチの付加的な初期化などの他の変更は、当該トレーラクラッチの事後取り付けを検査して自動車検査登録書類に入力する道路交通局又は技術監査協会(TUEV)に委ねることもできる。
【0026】
特に有利な構成においては、第1のコードブロック、転移ブロック、及び/又は、参照指示ブロックが、付加的に、制御装置のシステムリソースへのアクセスのための権限の記述、及び/又は、制御装置内の若しくは制御装置によるアクションの実行のための権限の記述を含む。別のアプリケーションによるシステムリソースへのアクセス、及び/又は、別のアプリケーションによるアクションの実行は、ここでの権限に従って制限される。このようにして、アプリケーションの相互障害及び不適合性が低減されるように、様々なアプリケーションのメーカ間での上述したタスク分割を改善することができる。同時に、特に制御装置が車両内で使用される場合、アプリケーションが常にその意図された使用目的に対応する事項しか行うことができないようにすれば、安全性を益々向上させ易くなる。
【0027】
ここで、例えば車両の内部には、基本的に全てのセンサ、アクチュエータ及び制御装置を相互に接続できるように、CANバスがネットワーク化された状態で広く導入されている。こうしたネットワークが導入される前は、大型のケーブルハーネスにより、車両に所望される意図された厳密な通信関係のための専用のポイントツーポイントコネクションがその都度形成されていた。この場合、上述したネットワーク化により極めて大きいフレキシビリティが得られ、特に、機能部の後付けが著しく容易となる。しかし、このことは、例えばエンタテインメントシステムが基本的に運転ダイナミクスシステムと通信可能である場合、利点のみを有するわけではない。エンタテインメントシステムは、その通常動作の枠組みにおいてはこうした通信を実行できないが、攻撃者によるケイパリングの後には極めて容易に実行できるようになりかねない。例えばDABデジタルラジオの復号のためのコーデックの実装が十分には保護されていない場合、攻撃者は、例えば特別に作成された、仕様に則していないデータストリームを用いて、コーデックを、開発時には全く予定されていなかった状況へと移行させることができる。例えばデータフィールドによる仕様に従ってオーディオデータの後続のブロックの大きさが予告されている場合、攻撃者は、予告された1000バイトに代えて5000バイトを送信することができる。コーデックが1000バイトの予告に対して1000バイト分のメモリしか確保しなかった場合、過剰の4000バイトによって、コーデックの制御フローに関連するメモリ内の情報が場合により上書きされてしまう。この場合、コーデックは、もはや自身が企図したタスクを実行するのではなく、攻撃者が過剰の4000バイトにパッケージングしたタスクを実行することとなる。こうした攻撃は、露出された場所にある十分に強力な超短波送信機によって、多数の車両に同時に適用され得る。
【0028】
しかし、エンタテインメントシステムを担当するアプリケーションが、運転席の車内スピーカ及びコンビネーション装置へのアクセスのみ受け取り、運転ダイナミクスシステムへのアクセスを受け取らないのであれば、上記の例において説明した攻撃シナリオにおいて脅威となる障害を著しく軽減することができる。
【0029】
特に有利には、先行するアプリケーションのコンテキストにおける権限の記述により、実行すべき後続のアプリケーションに対し、権限が、先行のアプリケーションもまた当該権限を有する範囲を最大としてその都度のみ認容される。こうして、場合により有効に署名されている別の既存のアプリケーションを実行することによって、権限の制限がかいくぐられることが困難となる。
【0030】
有利には、当該別のアプリケーション又は後続のアプリケーションは、権限の記述によって、車両の走行安全性及び/又は付与される動作許可に抵触し得る、システムリソースへの特別なアクセス又はアクションの特別な実行から除外される。即ち、これらの場合、例えば、車両の所有者自身が上記の例で説明した車両のエンタテインメントシステム内の空隙の利用又は任意の別の安全空隙の利用を阻止することができ、これにより、スマートフォンで一般的な「ジェイルブレイク」又は「ルート化」に類似した方式により、技術的及び法的な理由で規定されている制限から当該車両を「解放」することができ、ひいては、例えば、排気ガス特性及びノイズ特性の劣化を甘受しなければならないという公共性の犠牲は生じるものの、大きいエンジン出力を得ることができる。
【0031】
さらに特に有利な構成においては、少なくとも1つのアプリケーションが、制御装置に、別のアプリケーションの実行への交替後にもアクティブなままである1つ又は複数のサービスを提供させる。この場合、方法は、例えば、制御装置を備えた車両がサービスの起動後に常に定義された状態に至るように、これらのサービスの開始に対して一定のシーケンスを強制的に設定するために利用可能である。
【0032】
冒頭で言及したEバイクの例においては、こうしたサービスにより、例えば現在の走行速度及びペダルへの圧力を監視することができる。この場合、一方の走行速度と他方のペダル圧力との間の比率から、例えば、この場合の許容最高速度を超過しない限りエンジンアシストを動作させるという要求を導出することができる。従って、ブートシーケンスにおける強制経路により、エンジンアシストが動作させられる前に上述した当該国固有の制限が設定されることが保証される。
【0033】
特に有利な他の構成においては、コードブロックが当該検証情報に対応する状態にあるかどうかを検査することに加えて、当該コードブロックの実行中に必要とされるデータブロックが当該検証情報に対応する状態にあるかどうかも検査される。コードブロックに含まれているプログラムコードは、当該検査の結果もまた肯定である場合にのみ、実行のためにイネーブルされる。冒頭で言及したように、アプリケーションの具体的な挙動は、多くの場合にデータブロックによって特徴付けられ、このデータブロックは、例えば、ニューラルネットワークのコントローラの特性マップ又は重みを含み得る。相応に、データブロックの操作により、実行可能なプログラムコードの操作による場合と同等の重要度で制御装置の機能に介入することができる。この場合、例えば、車両のユーザによるデータブロックの目的に則した操作は、特別な知識なしにはユーザが理解することができないプログラムコードよりも著しく容易に可能とすることができる。バイナリオブジェクトコードとしてのみ存在するアプリケーションの「リバースエンジニアリング」は、プログラムコードにおけるどのような変更がどのような効果をもたらし得るかに関して、極めて要求の多いタスクである。これに対して、エンジン特性マップを有するデータブロックにおいて、例えば、いずれにせよ既に高くなっている値の上昇がエンジンの出力増大を引き起こし得ることは明白である。
【0034】
説明している方法の機能部は、完全に又は部分的にソフトウェアとして実装することができる。従って、本発明は、機械可読命令を含むコンピュータプログラムにも関し、この機械可読命令は、1つ又は複数のコンピュータにおいて実行される際に上述した方法のうちのいずれかをこの1つ又は複数のコンピュータに実施させるためのものである。この意味において、機械可読命令を同様に実行することができる車両用の制御装置及び技術装置用の埋め込み型システムも、コンピュータとみなすことができる。
【0035】
同様に、本発明は、コンピュータプログラムを含む機械可読データ媒体及び/又はダウンロード製品にも関する。ダウンロード製品は、データネットワークを介して伝送可能な、即ち、データネットワークのユーザによってダウンロード可能なデジタル製品であり、こうしたデジタル製品は、例えばオンラインショップでの即時のダウンロードによって入手可能である。
【0036】
さらに、コンピュータは、コンピュータプログラム、機械可読データ媒体又はダウンロード製品を備えるものとしてよい。当該コンピュータは、特に、車両用の及び/又は車両の駆動機構用の制御装置とすることができる。
【0037】
特に有利な一構成においては、当該制御装置は、ハードウェアセキュリティモジュールHSM及び/又はトラステッドプラットフォームモジュールTPMを備える。当該HSM又は当該TPMは、制御装置に固定に格納されている、第1のアプリケーションの第1のコードブロックへの参照指示と、固定に格納されている、当該第1のコードブロックについての検証情報とを含む。上述したモジュールは、後続のコードブロック、転移ブロック及び参照指示ブロックのすべてを検証することができる信用アンカーのための特に安全な保管場所である。
【0038】
以下に、本発明を改良する他の措置を、図面に基づく本発明の好ましい実施例の説明と共に詳細に示す。
【図面の簡単な説明】
【0039】
図1】制御装置1を動作させる方法100の実施例を示す図である。
図2】3つのアプリケーション2,3,4がインストールされた制御装置1の実施例を示す図である。
【発明を実施するための形態】
【0040】
実施例
図1は、制御装置1を動作させる方法100の一実施例の概略的なフローチャートであり、図2には、制御装置1の内容が詳細に図示されている。
【0041】
ステップ110において、制御装置1に固定に格納されている参照指示1aに基づいて、第1のアプリケーション2の実行可能なプログラムコードを含む第1のアプリケーション2の第1のコードブロック21が取得される。ステップ120においては、同様に制御装置1に固定に格納されている検証情報1bに基づいて、当該第1のコードブロック21が当該検証情報1bに対応する状態にあるかどうかが検査される。ここでは、任意選択手段として、ブロック121に従って、第1のコードブロック21の実行中に必要とされるデータブロックについても同様に、検証情報1bに対応する状態にあるかどうかを検査することができる。コードブロック21についての検査、及び、場合によりさらにデータブロックについての検査が肯定の結果(真理値1)を送出した場合、ステップ130において、第1のコードブロック21に含まれているプログラムコードが実行のためにイネーブルされる。
【0042】
ここで、コードブロック21に含まれている参照指示21aは、次にステップ140において取得することができる転移ブロック23を直接に示すものであってよい。しかし、代替的に、参照指示21aは、参照指示ブロック22を示すものであってもよい。この場合、当該参照指示ブロック22は、ステップ132において取得され、ステップ134において、参照指示ブロック22が第1のコードブロック21からの検証情報21bに対応する状態にあるかどうかが検査される。対応する状態にある場合、ブロック141に従って、参照指示ブロック22に含まれている参照指示22aに基づいて転移ブロック23が取得される。
【0043】
ステップ150において、少なくとも第1のコードブロック21に格納されている検証情報21bに基づいて、転移ブロック23が当該検証情報21bに対応する状態にあるかどうかが検査される。このとき検証情報21bを直接に使用することに代えて、第1のコードブロック21の検証情報21bによって検証された参照指示ブロック22からの検証情報22bを使用することもできる。当該検査の結果が肯定(真理値1)である場合、ステップ160において、転移ブロック23に含まれている参照指示23aに基づき、別のアプリケーション3,4の別のコードブロック31,41が取得される。
【0044】
次いで、ステップ170において、転移ブロック23に含まれている検証情報23bに基づいて、別のコードブロック31,41が当該検証情報23bに対応する状態にあるかどうかを検査することができる。ステップ120と同様に、ブロック171に従って、当該検証情報23bによって、コードブロック31,41の実行中に必要とされるデータブロックについても確認可能であるかどうかを検査することができる。コードブロック31,41に関する検査の結果、及び、場合によりさらにその都度必要とされるデータブロックに関する検査の結果が肯定(真理値1)である場合、ステップ180において、別のコードブロック31,41に含まれているプログラムコードが実行のためにイネーブルされる。
【0045】
当該プログラムコードの実行は、ステップ190において、制御装置1のシステムリソースへのアクセスのための権限に関する境界条件、及び/又は、制御装置1内での若しくは制御装置1によるアクションの実行のための権限に関する境界条件の下で設定することができる。ここでの境界条件は、第1のコードブロック21、転移ブロック23、及び/又は、参照指示ブロック22における相応の記述によって設定可能である。ここでは特に、例えばブロック191に従って、先行のアプリケーション2のコンテキストにおける権限の記述により、実行すべき後続のアプリケーション3,4に対し、権限が、先行のアプリケーション2もまた当該権限を有する範囲を最大としてその都度のみ認容可能となる。
【0046】
ブロック192に従って、別のアプリケーション又は後続のアプリケーション3,4は、権限の記述によって、特に、例えば車両の走行安全性及び/又は付与される動作許可に抵触し得る、システムリソースへの特別なアクセス又はアクションの実行から除外され得る。
【0047】
図2は、上述した方法100に従って動作可能な制御装置1の内容を例示している。制御装置1は、ハードウェアセキュリティモジュールHSM11及び/又はトラステッドプラットフォームモジュールTPM12を備え、これらのモジュールには、参照指示1a及び検証情報1bが固定に格納されている。
【0048】
参照指示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によって確認することができる。
【0049】
第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を含む。
【0050】
第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を含む。
【0051】
このようにして、第1の参照指示ブロック22を、極めて少ないデータ量しか必要としない第2の参照指示ブロック22’と交換するのみで、第1のアプリケーション2の後、第2のアプリケーション3に代えて第3のアプリケーション4を実行するように設定することができる。
【0052】
第2のアプリケーション3から次に実行すべきアプリケーションとしての第3のアプリケーション4への交替は、代替的に、第1の転移ブロック23と第2の転移ブロック23’との直接の交換によっても行うことができる。
【0053】
第3のアプリケーション4は、必ずしも第2のアプリケーション3と完全に異なるものでなくてよく、例えば、第2のアプリケーション3を更新したものであってもよい。
【0054】
任意選択手段として、参照指示ブロック22,22’を、アプリケーション2によって必要とされるデータブロックへの参照指示とすることもできる。ただし、参照指示ブロック22,22’は、転移ブロック23と同様にデータブロックへの参照指示とその確認のための検証情報とを含む鍵ブロックへの参照指示とすることもできる。これにより、それぞれのデータブロックは、自身の固有の署名源を有し得るものとなり、この署名源を用いて、当該データブロックを更新する権限を有する者を自由に定めることができる。
図1
図2
【手続補正書】
【提出日】2023-07-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項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)、
請求項1乃至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)、
請求項1乃至4のいずれか一項に記載の方法(100)。
【請求項6】
前記第1のコードブロック(21)、前記転移ブロック(23)、及び/又は、前記参照指示ブロック(22)は、付加的に、前記制御装置(1)のシステムリソースへのアクセスのための権限の記述、及び/又は、前記制御装置(1)内での若しくは前記制御装置(1)によるアクションの実行のための権限の記述を含み、
前記別のアプリケーションによるシステムリソースへのアクセス、及び/又は、前記別のアプリケーション(3,4)による前記アクションの実行が、前記権限に従って制限される(190)、
請求項1乃至5のいずれか一項に記載の方法(100)。
【請求項7】
先行するアプリケーション()のコンテキストにおける権限の記述により、実行すべき後続のアプリケーション(3,4)に対し、権限が、前記先行するアプリケーション()もまた当該権限を有する範囲を最大としてその都度のみ認容される(191)、請求項6に記載の方法(100)。
【請求項8】
前記別のアプリケーション(3,4)又は前記後続のアプリケーション(3,4)は、権限の記述によって、車両の走行安全性及び/又は付与される動作許可に抵触し得る、システムリソースへの特別なアクセス又はアクションの特別な実行から除外される(192)、請求項6又は7に記載の方法(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)。
【国際調査報告】