(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-13
(45)【発行日】2023-10-23
(54)【発明の名称】システムオンチップ及びシステムオンチップを動作させるための方法
(51)【国際特許分類】
G06F 21/62 20130101AFI20231016BHJP
G06F 21/60 20130101ALI20231016BHJP
G06F 12/14 20060101ALI20231016BHJP
G06F 21/45 20130101ALI20231016BHJP
G06F 15/78 20060101ALI20231016BHJP
【FI】
G06F21/62 318
G06F21/60 360
G06F12/14 510A
G06F21/45
G06F15/78 530
【外国語出願】
(21)【出願番号】P 2019198424
(22)【出願日】2019-10-31
【審査請求日】2022-05-16
(31)【優先権主張番号】10 2018 127 330.4
(32)【優先日】2018-11-01
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】501209070
【氏名又は名称】インフィネオン テクノロジーズ アーゲー
【氏名又は名称原語表記】INFINEON TECHNOLOGIES AG
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】マイヤー, アルブレヒト
(72)【発明者】
【氏名】デムル, ラインハルト
(72)【発明者】
【氏名】リーガー, ヴィオラ
(72)【発明者】
【氏名】ゼー, アレクサンダー
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2016-072675(JP,A)
【文献】特開2011-210037(JP,A)
【文献】特開2003-186693(JP,A)
【文献】米国特許出願公開第2015/0106558(US,A1)
【文献】中国特許出願公開第101427222(CN,A)
【文献】米国特許出願公開第2014/0223174(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/60
G06F 12/14
G06F 21/45
G06F 15/78
(57)【特許請求の範囲】
【請求項1】
複数の制御回路領域を有する制御回路であって、デバイスを制御するように設計されている制御回路と、
個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを含むセキュリティ回路とを備えるシステムオンチップであって、
前記セキュリティ回路が、前記制御回路領域の少なくとも1つ
の選択された領域に対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするように設計されており、
前記セキュリティ回路が、さらに、前記キーメモリ及び前記ハードウェアアクセラレータによって、前記セキュリティ回路外に配置されている診断システムとのセキュリティ保護された通信のための通信パスを提供し、前記セキュリティ回路に提供され、前記キーメモリに記憶されている情報によって認証された証明書に応じて、前記制御回路の前記少なくとも1つの選択された領域に対する前記読出しアクセスと前記読出し・書込みアクセスとの間の選択を行い、前記読出しアクセス又は前記読出し・書込みアクセスを実行するように設計されている、システムオンチップ。
【請求項2】
前記制御回路の前記少なくとも1つの選択された領域に対する前記読出しアクセス又は前記読出し・書込みアクセスが、前記通信パスを介して前記診断システムから前記セキュリティ回路に伝達される少なくとも1つの診断命令を実行可能であるように構成されている、請求項1に記載のシステムオンチップ。
【請求項3】
前記セキュリティ回路が、ソフトウェアによって、前記セキュリティ保護された通信を実行するように、及び/又は前記制御回路に前記診断命令を提供するように設計されている、請求項2に記載のシステムオンチップ。
【請求項4】
前記セキュリティ回路が、前記ソフトウェアを実行するように設計されているCPU又は仮想機械を備える、請求項3に記載のシステムオンチップ。
【請求項5】
前記ソフトウェアが、ソフトウェア通信スタックを備える、請求項3又は4に記載のシステムオンチップ。
【請求項6】
前記ソフトウェアが、イーサネットソフトウェア通信スタックを備える、請求項3~5のいずれか一項に記載のシステムオンチップ。
【請求項7】
前記CPU又は前記仮想機械が、前記制御回路の前記少なくとも1つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されており、前記制御回路の前記選択された領域が、前記マスタタグに基づいて前記アクセスを拒む又は可能にするように設計されている、請求項
4に記載のシステムオンチップ。
【請求項8】
前記通信パスがネットワークを備える、請求項1~7のいずれか一項に記載のシステムオンチップ。
【請求項9】
前記ネットワークが、少なくとも一部、ワイヤレスデータ伝送を含む、請求項8に記載のシステムオンチップ。
【請求項10】
前記制御回路の前記少なくとも1つの選択された領域が、前記制御回路の複数の選択された領域を含み、
前記セキュリティ回路が、前記制御回路の前記複数の選択された領域それぞれについて個別に、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択を行うように設計されている、請求項1~9のいずれか一項に記載のシステムオンチップ。
【請求項11】
前記セキュリティ回路が、さらに、認証が失敗した場合に前記読出しアクセスも前記読出し・書込みアクセスも可能にしないように設計されている、請求項1~10のいずれか一項に記載のシステムオンチップ。
【請求項12】
前記セキュリティ回路が、認証が失敗した場合にアラームを発動するように設計されている、請求項1~11のいずれか一項に記載のシステムオンチップ。
【請求項13】
前記セキュリティ回路が、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択の際に少なくとも1つの追加のパラメータを考慮するように設計されている、請求項1~12のいずれか一項に記載のシステムオンチップ。
【請求項14】
前記追加のパラメータが、前記デバイスの動作安全性、前記デバイスの動作状態、及び/又は前記証明書の提供の時点に対する前記読出しアクセス又は前記読出し/書込みアクセスの重要性に関するものである、請求項13に記載のシステムオンチップ。
【請求項15】
前記デバイスの前記動作状態の前記考慮が、前記セキュリティ回路が、前記デバイスが第1の所定の動作状態にあるとき、少なくとも、前記制御回路の全ての領域に対する、又は前記制御回路の選択された領域の少なくとも1つ若しくは複数に対する前記読出し・書込みアクセスを完全に禁止し、及び/又は、前記デバイスが第2の所定の動作状態にあるとき、前記制御回路の全ての領域又は少なくとも前記制御回路の前記選択された領域の1つ若しくは複数に対する読出し・書込みアクセスを可能にするように設計されていることを意味する、請求項14に記載のシステムオンチップ。
【請求項16】
前記第1の
所定の動作状態が、「アクティブであり、機能的にセキュアな」動作状態である、請求項15に記載のシステムオンチップ。
【請求項17】
前記第1の
所定の動作状態が、「アクティブであり、機能的セキュリティが制限された/機能的セキュリティがない」動作状態である、請求項15に記載のシステムオンチップ。
【請求項18】
前記セキュリティ回路が、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択の際に、動作安全性の面で重要な読出しアクセス又は読出し・書込みアクセスと、監視のみの、動作安全性の面で重要でない読出しアクセス又は読出し・書込みアクセスとを区別するように設計されている、請求項1~17のいずれか一項に記載のシステムオンチップ。
【請求項19】
前記少なくとも1つの選択された領域が、前記制御回路の仮想機械及び/又は診断ハードウェア及び/又はデバッグハードウェアを備える、請求項1~18のいずれか一項に記載のシステムオンチップ。
【請求項20】
前記診断ハードウェア及び/又はデバッグハードウェアが、前記セキュリティ回路のみによって使用可能であるように構成可能である、請求項19に記載のシステムオンチップ。
【請求項21】
さらに、前記診断システム、前記セキュリティ回路、及び/又は前記制御回路の命令に従って前記通信パスを閉じるように設計されている、請求項1~20のいずれか一項に記載のシステムオンチップ。
【請求項22】
システムオンチップを動作させるための方法であって、
複数の制御回路領域を有する制御回路によってデバイスを制御するステップと、
セキュリティ回路と前記セキュリティ回路の外部に配置されている診断システムとの間のセキュリティ保護された通信のための通信パスを提供するステップであって、前記セキュリティ回路が、個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを備え、前記キーメモリ及び前記ハードウェアアクセラレータによって、前記セキュリティ保護された通信のための前記通信パスを提供するように設計されている、ステップと、
前記セキュリティ回路に提供され、前記キーメモリに記憶されている情報によって認証された証明書に応じて、前記制御回路
の少なくとも1つの選択された領域について、読出しアクセス又は読出し・書込みアクセスが保証可能であるかどうかを判断するステップと、
前記セキュリティ回路によって、前記制御回路領域の
前記少なくとも1つ
の選択された領域に対する前記読出しアクセスのみ又は前記読出し・書込みアクセスを選択的に可能にするステップと、
前記読出しアクセス又は前記読出し・書込みアクセスを実行するステップと
を含む方法。
【請求項23】
前記制御回路の前記少なくとも1つの選択された領域に対する前記読出しアクセス又は前記読出し・書込みアクセスが、前記通信パスを介して前記診断システムから前記セキュリティ回路に伝達される少なくとも1つの診断命令を実行可能であるように構成されている、請求項22に記載の方法。
【請求項24】
前記セキュリティ回路が、ソフトウェアによって、前記セキュリティ保護された通信を実行するように設計されている、請求項22又は23に記載の方法。
【請求項25】
前記セキュリティ回路が、前記ソフトウェアを実行するように設計されているCPU又は仮想機械を備える、請求項24に記載の方法。
【請求項26】
前記ソフトウェアが、ソフトウェア通信スタックを備える、請求項24又は25に記載の方法。
【請求項27】
前記ソフトウェアが、イーサネットソフトウェア通信スタックを備える、請求項24~26のいずれか一項に記載の方法。
【請求項28】
前記CPU又は前記仮想機械が、前記制御回路の前記少なくとも1つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されており、前記制御回路の前記
少なくとも1つの選択された領域が、前記マスタタグに基づいて前記アクセスを拒む又は可能にするように設計されている、請求項2
5に記載の方法。
【請求項29】
前記通信パスがネットワークを備える、請求項22~28のいずれか一項に記載の方法。
【請求項30】
前記ネットワークが、少なくとも一部、ワイヤレスデータ伝送を含む、請求項29に記載の方法。
【請求項31】
前記制御回路の前記少なくとも1つの選択された領域が、前記制御回路の複数の選択された領域を含み、
前記セキュリティ回路が、前記制御回路の前記複数の選択された領域それぞれについて個別に、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択を行うように設計されている、請求項22~30のいずれか一項に記載の方法。
【請求項32】
前記セキュリティ回路が、さらに、認証が失敗した場合に前記読出しアクセスも前記読出し・書込みアクセスも可能にしないように設計されている、請求項22~31のいずれか一項に記載の方法。
【請求項33】
前記セキュリティ回路が、認証が失敗した場合にアラームを発動するように設計されている、請求項22~32のいずれか一項に記載の方法。
【請求項34】
前記セキュリティ回路が、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択の際に少なくとも1つの追加のパラメータを考慮するように設計されている、請求項22~33のいずれか一項に記載の方法。
【請求項35】
前記追加のパラメータが、前記デバイスの動作安全性、前記デバイスの動作状態、及び/又は前記証明書の提供の時点に対する前記読出しアクセス又は前記読出し/書込みアクセスの重要性に関するものである、請求項34に記載の方法。
【請求項36】
前記デバイスの前記動作状態の前記考慮が、前記セキュリティ回路が、前記デバイスが第1の所定の動作状態にあるとき、少なくとも、前記制御回路の全ての領域に対する、又は前記制御回路の前記
少なくとも1つの選択された領域の少なくとも1つ若しくは複数に対する前記読出し・書込みアクセスを完全に禁止し、及び/又は、前記デバイスが第2の所定の動作状態にあるとき、前記制御回路の全ての領域又は少なくとも前記制御回路の前記
少なくとも1つの選択された領域の1つ若しくは複数に対する読出し・書込みアクセスを可能にするように設計されている、請求項35に記載の方法。
【請求項37】
前記第1の
所定の動作状態が、「アクティブであり、機能的にセキュアな」動作状態である、請求項36に記載の方法。
【請求項38】
前記第1の
所定の動作状態が、「アクティブであり、機能的セキュリティが制限された/機能的セキュリティがない」動作状態である、請求項36に記載の方法。
【請求項39】
前記セキュリティ回路が、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択の際に、動作安全性の面で重要な読出しアクセス又は読出し・書込みアクセスと、監視のみの、動作安全性の面で重要でない読出しアクセス又は読出し・書込みアクセスとを区別するように設計されている、請求項22~38のいずれか一項に記載の方法。
【請求項40】
前記少なくとも1つの選択された領域が、前記制御回路の仮想機械及び/又は診断ハードウェア及び/又はデバッグハードウェアを備える、請求項22~39のいずれか一項に記載の方法。
【請求項41】
前記診断ハードウェア及び/又はデバッグハードウェアが、前記セキュリティ回路のみによって使用可能であるように構成可能である、請求項40に記載の方法。
【請求項42】
前記診断システム、前記セキュリティ回路、及び/又は前記制御回路の命令に従って前記通信パスを閉じるステップ
をさらに含む、請求項22~41のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムオンチップ(SoC)及びシステムオンチップを動作させるための方法に関する。
【背景技術】
【0002】
「システムオンチップ」とも呼ばれるマルチコアマイクロコントローラは、複雑であり(動作)安全性に重要な(リアルタイム)ハードウェアシステムを制御又は調整することを可能にする。
【0003】
ドイツ語の概念「Sicherheit」及びそれに関連する概念(「sicherheitskritisch」など)は、日本語では「安全性」及び「セキュリティ」という概念によってそれぞれ区別される2つの異なる文脈で使用される。ここで、「安全性」とは、動作安全性、すなわち、システムの使用がシステム自体にもその環境(例えばユーザ)にも損傷を加えない状態でシステムが動作されることを表す。一方、「セキュリティ」とは、データセキュリティを表す。したがって、システムによって提供可能又は実行可能なデータ及び/又は機能へのアクセスは、アクセス権限者のみが可能である。本明細書では、区別のために、データセキュリティに関しては、「セキュリティ」という概念(及びそこから派生する概念、例えば「セキュアな」など)又は「データセキュリティ」を使用し、動作安全性に関しては、「安全性」という概念(及びそこから派生する概念、例えば「安全な」など)を使用する。文脈において特に指定されていない限り、「セキュリティ」という概念は(さらに区分することなく)動作セキュリティとデータセキュリティとの両方を意味する。
【0004】
上述した複雑なシステムは、本質的に無制限の入力(値)と状態空間を有することができる。したがって、特定の異常(例えば、期待される望ましい状態及びまた予想される望ましくない状態から逸脱する状態)は、現場でのみ、つまりユーザの元での動作時にのみ発生することがあり得る。この種の異常は、期待されていない入力値、及び/又はシステムのデータセキュリティに対する攻撃がその原因である可能性があり、システムの利用可能性に影響を持つ可能性がある。
【0005】
これは以下のことを意味する。そのような複雑なシステムに対して、ユーザの元でのシステムの動作中、異常(及び場合によってはその原因)を認識するために、フレキシブルであり且つシステムのデータセキュリティ(及びまた動作安全性)を保証するアクセスオプションを可能にする必要がある。
【0006】
現在利用可能なシステムの幾つかでは、(動作)ソフトウェアが診断及びログブック機能を備えることができる。ただし、これにより、典型的には、最初から期待されていた異常又は誤動作のみが検出される。そのような診断ツールを使用する際、異常を示した特定のシステム、例えば乗用車に、後付けで、誤り認識又は誤り訂正オプション(デバッグ機能とも呼ばれる)が装備されることがあり、例えば診断ユニットに連結されることがある。しかし、誤り認識又は誤り訂正オプションは、異常を容易に再現可能であり、診断ユニットの連結によりシステムが変更されたことによってその異常に影響が及ぼされていないときにしか成功しない。しかし、そのような手法は、いずれにせよ開発段階でしか使用できず、システムが既にユーザの所有下にあるときには使用できない。
【0007】
内蔵型のホストシステム102のためのデバッグオプションを備えた現在利用可能なさらなるシステムオンチップ100が
図1A~
図1Cに示されている。ここで、
図1Aは、システムオンチップ100全体及びそれに関連する外部デバッグデバイス104に関する概要を示し、
図1B及び
図1Cは、ホストシステム102でのデバッグアクセスが構成され得る2つの例を示す。
【0008】
システムオンチップ100は、ホストシステム102への(データセキュリティの面で)セキュリティ保護されたアクセスチャネル(「デバッグチャネル」)を提供する。
【0009】
認証されたデバッグチャネルを構築するために、ハードウェアセキュリティモジュール(HSM)112のシステムオンチップ100が使用される。HSM112は、例えば「セキュアCPU」と呼ばれるセキュリティプロセッサ118、「暗号セル」と呼ばれるROMライブラリ114、デバッグ制御ユニット(DCU;「Debug Control Unit」)116、インターフェース110、ブートROM112、及びセキュリティ保護されたデータメモリ(「セキュアRAM」)120などのデータセキュリティコンポーネントを備えた、ホストシステム102から物理的に分離されたモジュールを成す。
【0010】
ROMライブラリ114は、デバッグ入力ポート(DAP;「Debug Access Port」)106によって、及びインターフェース110によって外部デバッグデバイス104からHSM112に供給される(デバッグ)証明書108をチェックするために使用される。このSoC100でのみデバッグ証明書を認証に使用できるようにすることを保証するために、チップ上の変更不能にプログラムされたOTP-RAM124に保存されている秘密のSoC固有の鍵でデバッグ証明書に署名する必要があり得る。
【0011】
(デバッグ)証明書108の伝達と共に又は伝達後、外部デバッグデバイス104は、(例えばデバッグ入力ポート106によって)ホストシステム、例えば(デバッグ)入力ポート132、132D(
図1Aには図示せず。ホストシステム102への入力においてスイッチ126が金庫として図示されている場所にある;
図1Bには、(デバッグ)入力ポート132、132Dが示されている)にデバッグ命令を伝送することができる。
【0012】
しかし、(デバッグ)入力ポート132、132Dは、(デバッグ)証明書108がHSM112において認証されるまで、(スイッチ126によって)閉じたままである。認証後、デバッグインターフェース(例えば、ホストCPU128のデバッグ入力ポート132、132D及び別のシステムリソース130、140、142)へのアクセスを制御及び実現するように設計されているDCU116を使用して、(デバッグ)入力ポート132、132D(又は場合によっては、ホストCPU138及びホストメモリ142に対するそれぞれ1つのデバッグ入力ポート132、132D)を解放する。
【0013】
ホストシステム102へのデバッグ入力ポート132、132Dを開いた後、外部デバッグデバイス104から伝達されたデバッグ命令をホストシステム102において実行することができる。
【0014】
ここで、デバッグ入力ポート132、132Dによって伝達されるデバッグ命令が、例えばJTAG標準に準拠したプロトコルによって伝送されることが企図される。
【0015】
ホストシステム102での(デバッグプロトコルとしての)デバッグ命令の実行は、ここで例えば
図1Bに示されるように、デバッグのために特別に提供されたコンポーネントによって行うことができる。例えば、特別用途のコンポーネントは、物理的USBポート132Dと、USBデバイスコントローラ134Dと、標準命令を備えたモジュール136とを備えることができる。この構成は、デバイスを動作させるために設計された残りのシステム(特に、関連する物理的USBポート132、USBデバイスコントローラ134、及びCPU128)に最小限に介入し、残りのシステムが(まだ又は再び)いわゆる「ベアメタル」状態にある、すなわち例えばソフトウェアがまだそこにインストールされていないときにもデバッグオプションを提供するという利点がある。しかし、そのためには、特別用途の高価な追加のコンポーネント(例えば、物理的USBポート132D、USBデバイスコントローラ134D、及び標準命令を備えたモジュール136)が提供されなければならない。
【0016】
より費用対効果の高い例では、例えば
図1Cに示されるように、ホストシステム102における(デバッグプロトコルとしての)デバッグ命令は、デバイスを動作させるために設計されているコンポーネントによって行うことができる。これは、例えば、デバイスを動作させるように設計されている物理的USBポート132、USBデバイスコントローラ134、及びCPU128が、同時にデバッグプロトコルも実行するように設計されていることを意味する。これは、一方では侵略的であり、他方ではCPU128が実行中であることを必要とする。なぜなら、CPU128の一時停止(これはデバッグ時に場合によっては必要とされることがある)によって、同時にデバッグ機能も消えるからである。
【0017】
したがって、一方では、追加のコンポーネントを必要とせず、したがって費用対効果が高く、しかし他方では、それでも、デバッグ機能を失うことなく、デバイスを制御/動作するために使用される全てのCPUを必要に応じて一時停止することができるシステムオンチップを提供する必要がある。
【0018】
図1A~
図1Cのシステムオンチップ100のさらなる態様は、DCU116によるデバッグポート132、132Dの開放に関する。これは、デバッグポート132、132Dの開放は、JTAG標準に従って使用可能なホストシステム内の全てのデバッグシステム又は機能を解放するメインスイッチの切替え(開放)として明確に表すことができるからである。
【0019】
ユーザへのデバイス(SoC100を含む)の提供前に、すなわち例えば製造元でそのようなデバッグが行われる限り、そのような構成は問題ないことがある。
【0020】
しかし、上述したように、異常なプロセスを認識するために動作中に(すなわちユーザの元で)デバイス又はSoC100を監視することが目的とされる限り、デバッグオプションが、監視機能だけでなく、同時に例えばブレークポイントを設定するオプションも提供することが課題となり得る。例えば、デバイスは乗用車のエンジン制御機構でよく、走行中に、制御されずに、外部デバッグアクセスによってソフトウェアが非アクティブ化されることにより、エンジンが故障する可能性があり、したがってユーザ及び/又は第三者を危険な状況に陥らせる可能性がある。
【0021】
したがって、様々なデバッグレベルの解放を可能にするシステムオンチップを提供することが望ましいことがあり、デバッグレベルのうちの少なくとも1つは、デバイスの動作中にデバイス又はシステムオンチップの監視を可能にし、同時にデバイスの動作安全性を保証する。
【発明の概要】
【課題を解決するための手段】
【0022】
様々な例示的実施形態において、デバッグリソースの制御は、システムオンチップに組み込まれたハードウェア及びソフトウェアユニットによって行われ、このユニットは、ツールの認証のために提供される鍵、パスワード、及び/又は証明書に基づいて、ツール(例えば診断システム)の特権レベルを認識する。影響/相互作用又は観察は、特権レベルに基づいて許可(又は禁止)される。例えば、所定の特権レベルは、特定の仮想機械の活動のみを追跡することができることを意味することがある。追跡は、例えば、様々な観察ポイント(例えばプログラムフローにおける時点又は位置)で可能にされている又は可能にされることがある。
【0023】
様々な例示的実施形態において、セキュアに、しかしまたフレキシブルに遠隔アクセスによって制御システム(例えばデバイスの制御システム)を監視するためのシステム又は方法が提供される。さらに、提供されるシステム又は方法は、非常にロバストであり、費用対効果が高い。
【0024】
様々な例示的実施形態において、監視用の制御システムのハードウェアセキュリティモジュールが使用され、これは、セキュアな環境であり、(例えば、独自のシステム周辺機器及びメモリにより)システムの残りの部分から独立しているので特に適している。また、動作安全性の面で重要な幾つかの基本的な側面は、セキュリティサブシステムによるさらなる修正なしで既に実現されていることがある。
【0025】
さらに、多くの場合、典型的なセキュリティタスクによって、ハードウェアセキュリティモジュールが完全には活用されていない可能性があり得る。これは、特に開発段階中に当てはまることがある。なぜなら、開発中には、セキュリティ機能がまったく必要とされない又は非常に限られた範囲でしか必要とされない可能性があり得るからである。したがって、有利には、追加の高価なハードウェアなしで、診断機能、特に通信パスを提供することができる。
【0026】
さらに、HSMは、独立したサブシステムであり、これは、(通常のマルチコア)制御システムが停止されている又は停止されるときでさえ、診断システムとの通信を維持することを意味する。
【0027】
様々な例示的実施形態において、システムオンチップが提供される。本システムオンチップは、複数の制御回路領域を有する制御回路であって、デバイスを制御するように設計されている制御回路と、個別にセキュリティ保護されたキーメモリ及び少なくとも1つの暗号処理用のハードウェアアクセラレータを含むセキュリティ回路とを備えるシステムオンチップであって、セキュリティ回路が、制御回路領域の少なくとも1つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするように設計されており、セキュリティ回路が、さらに、キーメモリ及び少なくとも1つのハードウェアアクセラレータによって、セキュリティ回路外に配置されている診断システムとのセキュリティ保護された通信のための通信パスを提供し、セキュリティ回路に提供され、キーメモリに記憶されている情報によって認証された証明書に応じて、制御回路の少なくとも1つの選択された領域に対する読出しアクセスと読出し・書込みアクセスとの間の選択を行い、読出しアクセス又は読出し・書込みアクセスを実行するように設計されていてよい。
【0028】
制御回路の少なくとも1つの選択された領域に対する読出しアクセス又は読出し・書込みアクセスは、通信パスを介して診断システムからセキュリティ回路に伝達される少なくとも1つの診断命令を実行可能であるように構成されていてよい。
【0029】
セキュリティ回路は、ソフトウェアによって、セキュリティ保護された通信を実行するように設計されていてよい。
【0030】
セキュリティ回路は、ソフトウェアを実行するように設計されているCPU又は仮想機械を備えていてよい。
【0031】
ソフトウェアは、ソフトウェア通信スタック、例えばイーサネットソフトウェア通信スタックを備えることができる。
【0032】
CPU又は仮想機械は、制御回路の少なくとも1つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されていてよい。これにより、診断システムに、CPU又は仮想機械が基本的に備えているアクセスオプションよりも少ない又はそれらとは異なるアクセスオプションを提供することが可能にされ得る。
【0033】
様々な例示的実施形態において、通信パスは、ネットワークを備えることができる。様々な例示的実施形態において、ネットワークは、少なくとも一部、ワイヤレスデータ伝送を含むことができる。
【0034】
様々な例示的実施形態において、制御回路の少なくとも1つの選択された領域は、制御回路の複数の選択された領域を含むことができ、セキュリティ回路は、制御回路の複数の選択された領域それぞれについて個別に、読出しアクセスと読出し・書込みアクセスとの間の選択を行うように設計されていることがある。言い換えると、制御回路の選択された領域の第1の部分(例えば、1つもない、1つ、又は複数)に対しては読出しアクセス(のみ)が可能にされており、同時に、第1の部分とは異なる、制御回路の選択された領域の第2の部分(例えば、1つもない、1つ、又は複数)に対しては読出し・書込みアクセスが可能にされている。
【0035】
様々な例示的実施形態において、セキュリティ回路は、認証が失敗した場合に読出しアクセスも読出し・書込みアクセスも可能にしないように設計されていることがある。
【0036】
場合によっては、セキュリティ回路は、さらに、認証が失敗した場合に、例えばデバイスにおいてアラームを発動するように設計されていることがある。
【0037】
様々な例示的実施形態において、セキュリティ回路は、読出しアクセスと読出し・書込みアクセスとの間の選択の際に少なくとも1つの追加のパラメータを考慮するように設計されていることがある。追加のパラメータは、例えば、デバイスの動作安全性、デバイスの動作状態、及び/又は証明書の提供の時点に対する読出しアクセス又は読出し/書込みアクセスの重要性に関するものであり得る。
【0038】
デバイスの動作安全性に対する読出しアクセス又は読出し/書込みアクセスの重要性の考慮は、以下のことを意味することがある。セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択(或いはまたアクセスの完全な禁止)の際に、動作安全性に重要となり得るデバッグ命令(例えば「一時停止/停止」、「休止」など)と、監視機能のみを有する別のデバッグ命令(例えば、計数、追跡など)とを明確に区別するように設計されている。ここで、通常、動作安全性の面で重要な命令は、書込みアクセスを要求することがあり、監視機能に関しては、通常は読出しアクセスのみで十分であり得る。幾つかの場合には、例えば、読出しによって自動的に上書きされる(FIFO)メモリからの読出しの際には、場合によっては、読出しアクセスのみでも、動作安全性の面で重要なものとして分類されていることがある。
【0039】
デバイスの動作状態の考慮は、以下のことを意味することがある。セキュリティ回路は、デバイスが第1の所定の動作状態にあるときには、制御回路の全ての領域、又は制御回路の選択された領域の少なくとも1つ又は複数に対する読出し・書込みアクセス(或いはまた動作安全性の面で重要な読出しアクセス)を完全に禁止し、及び/又はデバイスが第2の所定の動作状態にあるときには、制御回路の全ての領域、又は制御回路の選択された領域の少なくとも1つ又は複数に対する読出し・書込みアクセス(或いはまた動作安全性の面で重要な読出しアクセス)を可能にするように設計されていることがある。
【0040】
第1の所定の動作状態は、「アクティブ」動作状態でよく、言い換えると、デバイスがアクティブである又は動作している動作状態でよい。
【0041】
第1の所定の動作状態は、「非アクティブ」動作状態でよく、言い換えると、デバイスが非アクティブである、若しくは動作していない、又は静止/休止状態にある動作状態でよい。
【0042】
証明書の提供の時点の考慮は、限られた有効期間を有する証明書を提供することを可能にすることができる。
【0043】
少なくとも1つの選択された領域は、制御回路の仮想機械、診断ハードウェア、及び/又はデバッグハードウェアでよく、又はそれらを備えることができる。
【0044】
システムオンチップは、診断システム、セキュリティ回路、及び/又は制御回路の命令に従って通信パスを閉じるように設計されていることがある。システムオンチップは、さらに、通信パスを閉じた後に再起動を実行するように設計されていることがある。
【0045】
本発明の例示的実施形態が図に示されており、以下でより詳細に説明する。
【図面の簡単な説明】
【0046】
【
図1A】従来技術によるシステムオンチップとそれに関連する外部デバッグデバイスの概略図である。
【
図1B】
図1Aからのシステムオンチップのホストシステムの概略図である。
【
図1C】
図1Aからのシステムオンチップのホストシステムの概略図である。
【
図2A】様々な例示的実施形態によるシステムオンチップの概略図である。
【
図2B】様々な例示的実施形態によるシステムオンチップの概略図である。
【
図3】様々な例示的実施形態によるシステムオンチップを動作させるための方法の流れ図である。
【発明を実施するための形態】
【0047】
以下の詳細な説明では添付図面を参照する。添付図面は、本明細書の一部を成し、例示の目的で、本発明を実施することができる具体的な実施形態を示す。この点において、「上」、「下」、「前」、「後ろ」、「前側」、「後側」など方向を示す用語は、述べている図面の向きを参照して用いる。実施形態の構成要素は、幾つかの異なる向きで位置決めすることができるので、方向を示す用語は、例示の目的のものであり、なんら限定するものではない。本発明の保護範囲から逸脱することなく、別の実施形態を使用することもでき、構造的又は論理的な変更を行うこともできることを理解されたい。本明細書で述べる様々な例示的実施形態の特徴は、特に明記しない限り、組み合わせることができることを理解されたい。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本発明の保護範囲は、添付の特許請求の範囲によって定義される。
【0048】
本明細書の範囲内で、「接続され」、「連結され」、及び「結合され」という概念は、直接的及び間接的な接続、直接的又は間接的な連結、及び直接的又は間接的な結合を述べるために使用される。図中、同一又は同様の要素には、適宜、同一の参照符号が付されている。
【0049】
図2A及び
図2Bはそれぞれ、様々な例示的実施形態によるシステムオンチップ200の概略図を示す。
【0050】
図2Aに示すように、システムオンチップ200は、複数の制御回路領域128、130を有する制御回路102を備えることができる。例えば、複数の制御回路領域は、制御回路102のCPU128又は他のリソース130を備えることができ、例えば相互接続140、メモリ142、又は別のリソース、例えば制御回路の仮想機械、診断ハードウェア、及び/又はデバッグハードウェアでよく、又はそれらを備えることができる(これについては、
図1B又は
図1Cの対応する同様の制御回路102を参照のこと)。各制御回路領域は、例えば、そのアドレス領域によって識別可能であり得る。
【0051】
制御回路102は、デバイス(図示せず)を制御するように設計されていることがある。デバイスは、本質的に、典型的には制御回路102によって制御又は調整される任意の各デバイスでよく、例えば、車両又は機械のモータ、医療機器、キャッシュレジスタシステムなどでよい。
【0052】
システムオンチップ200は、さらに、セキュリティ回路(暗号セキュリティ回路又は短縮してセキュリティ回路と呼ぶ)220を備えることができる。セキュリティ回路220は、例えば、ハードウェアセキュリティモジュール(HSM)220として形成されていることがある。
【0053】
本明細書では、「セキュアな」という概念は、情報セキュリティを表し、機能的なセキュリティは表さない。
【0054】
HSMは、暗号処理及びセキュリティ用途の効率的でありセキュアな実行を保証する、論理的に分離され、時として物理的にも分離されたハードウェアユニットである。
【0055】
セキュリティ回路220は、例えばデバイスの動作時に必要となり得る(データ)セキュリティの面で重要な機能を制御回路に提供するように設計されていることがある。セキュリティの面で重要な機能は、例えば、乱数、鍵、及びPINの生成、及び/又はデータの暗号化と解読を含むことができる。
【0056】
セキュリティの面で重要な機能を実行するために、セキュリティ回路220は、プロセッサ118(CPU、本明細書ではセキュリティCPUとも呼ぶ)に加えて、(暗号鍵を記憶するための)個別にセキュリティ保護されたキーメモリ144と、暗号処理用(例えば、ハッシュ関数用、及び/又は対称及び/又は非対称暗号用)のハードウェアアクセラレータ146とを備えることができる。
【0057】
セキュリティ回路220は、さらに、専用リソースへ、例えば制御回路102内のCPU及び/又はメモリに対する個別の読出し/書込みアクセスを提供することができる。
【0058】
様々な例示的実施形態において、セキュリティ回路220には、さらに、サイドチャネル攻撃から保護するためのメカニズムが装備されていることがある。セキュリティ標準(FIPS 140-1又はコモンクライテリアなど)が、HSMの認証に関する基準を規定している。
【0059】
自動車環境におけるHSMの現在の用途は、「セキュアブート」、セキュアデータ通信(CAN、イーサネット、及びLINを介する)、及びメモリ保護(IPセキュリティ用)である。
【0060】
上述したように、例えば現場で、制御回路102及び/又はそれによって制御されるデバイスを監視することが望ましい又は必要であり得る。
【0061】
この目的で、診断システム104が提供されている又は提供されることがある。
【0062】
システムオンチップ200(特にセキュリティ回路220)と診断システム104との間の(情報技術的な意味で)セキュアな通信を可能にする(セキュアな)通信パスを診断システム104とシステムオンチップ200との間に提供するために、診断システム104からセキュリティ回路220にアクセス権限証明書が伝達されることがある。
【0063】
セキュリティ回路220は、キーメモリ144及びハードウェアアクセラレータ146によってアクセス権限証明書を認証し、それに基づいて、セキュリティ回路220の外部(場合によってはさらにシステムオンチップ200の外部)に配置された診断システム104とのセキュリティ保護された通信のための(セキュアな)通信パスを提供するように設計されていることがある。
【0064】
セキュリティ回路220は、さらに、アクセス権限証明書を評価して、制御回路102の制御回路領域128、130に対する様々なアクセスオプションの中からの選択をアクセス権限証明書が可能にするように設計されていることがある。
【0065】
例えば、セキュリティ回路220は、各制御回路領域128、130に対して、読出しアクセス(のみ)若しくは読出し・書込みアクセスを可能にする、又はアクセスを阻止するように設計されていることがある。
【0066】
キーメモリ144に記憶されている情報によって(及び場合によってはハードウェアアクセラレータ146の補助によって)認証されたアクセス権限証明書は、例えばセキュリティCPU118によって、セキュリティ回路220に保存されているアクセス権限へのアクセス権限証明書の割当てと比較されることがある。
【0067】
セキュリティ回路220は、割り当てられたアクセス権限に基づいて、制御回路102の少なくとも1つの選択された領域128、130に対する読出しアクセス若しくは読出し・書込みアクセスを可能にする、又はアクセスを阻止するように設計されていることがある。
【0068】
セキュリティ回路220は、制御回路102の少なくとも1つの選択された領域128、130に対する読出しアクセス又は読出し・書込みアクセスを実行するように設計されていることがある。
【0069】
制御回路102の少なくとも1つの選択された領域128、130に対する読出しアクセス又は読出し・書込みアクセスは、通信パスを介して診断システム104からセキュリティ回路220に伝達される少なくとも1つの診断命令を実行可能であるように構成されていることがある。
【0070】
これは以下のことを意味する。「スイッチ」126を開いた後、診断又はデバッグ命令及び情報が診断システム104とホストシステム102との間で直接交換される
図1A~1Cに関連して説明したシステムオンチップ100とは異なり、様々な例示的実施形態によるシステムオンチップ200では、診断システムは、その監視及び/又はデバッグ命令をセキュリティ回路220に伝達し、これらの命令は、診断命令の対象となる各制御回路領域128、130に関する読出し権限又は読出し・書込み権限を考慮に入れて、セキュリティ回路220から制御回路102に伝達される。
【0071】
セキュリティ回路220は、ソフトウェアによって、診断システム104とのセキュリティ保護された通信を実行するように、及び/又は制御回路102に診断命令を提供するように設計されていることがある。例えば、ソフトウェアは、診断システム104とのセキュリティ保護された通信を実行するため又は制御回路102に診断命令を提供するためにそれぞれソフトウェアパッケージを備えることができる。
【0072】
様々な例示的実施形態において、セキュリティ回路220のCPU118又は仮想機械は、ソフトウェアを実行するように設計されていることがある。
【0073】
(通信)ソフトウェアは、ソフトウェア通信スタック、例えばイーサネットソフトウェア通信スタックを備えることができる。
【0074】
CPU118又は仮想機械は、制御回路102の少なくとも1つの選択された領域128、130に対するアクセスのための複数のマスタタグをサポートするように設計されていることがある。これにより、診断システムに、CPU118又は仮想機械が基本的に備えているアクセスオプションよりも少ない又はそれらとは異なるアクセスオプションを提供することが可能にされ得る。
【0075】
これは以下のことを意味する。セキュリティ回路220又はCPU(若しくは仮想機械)は、基本的に、書込みアクセスによって制御回路102の選択された領域128、130それぞれにアクセスするように設計されていることがあるが、制御回路102の個々の又は全ての選択された領域128、130へのアクセスモードを例えば読取りアクセスのみ又はアクセス禁止に制限するために、複数のマスタタグが提供されている。
【0076】
既に述べたように、診断システム104によって要求されたアクセスのセキュリティ権限のチェックが、セキュリティ回路220によって行われる。その結果行われる制御回路102へのアクセスに関して、マスタタグによって、制御回路自体において安全性権限をチェックすることができ、それにより、制御回路102を危険なアクセスから保護することができる。ハードウェア又はソフトウェアエラーによりセキュリティ回路220が不正アクセスを行い、危険な結果をもたらすことを排除することができないため、これは必要である。
【0077】
セキュリティ回路220は、読出しアクセスを可能にするために、所定のマスタタグに関して、いわゆるアクセス許可レジスタ内でそのマスタタグに割り当てられた位置に、読出しアクセス権に対応する値を入力するように設計されていることがある。
【0078】
同様に、セキュリティ回路220は、読出し・書込みアクセスを可能にするために、所定のさらなるマスタタグに関して、アクセス許可レジスタ内で上記さらなるマスタタグに割り当てられた位置に、読出し・書込みアクセス権に対応する値を入力するように設計されていることがある。
【0079】
様々な例示的実施形態において、このアクセス制御は、アクセス許可レジスタの上書きによっても保証されていることがあり、その際、情報技術的なセキュリティ要求を満たすだけでなく、さらにデバイスの動作安全性も保証するように、マスタタグによって指定されているマスタに対してのみ上書きが許可される。様々な例示的実施形態において、対応する情報を、例えば、バスシステムにおけるサイド情報又はインバンド情報として伝送することができる。これらの例示的実施形態は、構成/実現が容易であるが、マスタ(又は対応するソフトウェア)が高い(例えば最高の)安全性要件と高い(例えば最高の)セキュリティ要件とを満たさなければならないので比較的高価である。
【0080】
そうではなく、様々な例示的実施形態において、制御回路102の安全性CPU(例えば、CPU128又はさらなるCPUが安全性CPUとして設計されていることがある)は、初期化段階で、例えばアクセスの権利を付与されているリソース128、130へのマスタタグの割当てとして、アクセス権限をロック(固定)するように構成することができる。セキュリティ回路118は、それに関連するモジュールでのアクセス権限をチェックするように設計されていることがある。
【0081】
どちらの構成も、動作安全性(安全性)もデータ安全性(セキュリティ)も保証するロックを備えたシステムオンチップを提供することを可能にする。
【0082】
様々な例示的実施形態において、診断システムへの通信パスは、ネットワークを備えることができる。様々な例示的実施形態において、ネットワークは、少なくとも一部、ワイヤレスデータ伝送を含むことができる。
【0083】
様々な例示的実施形態において、制御回路102の少なくとも1つの選択された領域128、130は、制御回路の複数の選択された領域を含むことができる。
【0084】
セキュリティ回路220は、制御回路102の複数の選択された領域128、130それぞれについて個別に、読出しアクセスと読出し・書込みアクセスとの間の選択を行うように設計されていることがある。
【0085】
言い換えると、制御回路102の選択された領域128、130の第1の部分(例えば、1つもない、1つ、又は複数)に対しては読出しアクセス(のみ)が可能にされている又は可能にされることがあり、同時に、第1の部分とは異なる、制御回路102の選択された領域128、130の第2の部分(例えば、1つもない、1つ、又は複数)に対しては読出し・書込みアクセスが可能にされている又は可能にされることがある。
【0086】
様々な例示的実施形態において、セキュリティ回路220は、認証が失敗した場合に読出しアクセスも読出し・書込みアクセスも可能にしないように設計されていることがある。場合によっては、セキュリティ回路220は、さらに、認証が失敗した場合に、例えばデバイスにおいてアラームを発動するように設計されていることがある。
【0087】
様々な例示的実施形態において、セキュリティ回路220は、読出しアクセスと読出し・書込みアクセスとの間の選択の際に少なくとも1つの追加のパラメータを考慮するように設計されていることがある。追加のパラメータは、例えば、デバイスの動作安全性、デバイスの動作状態、及び/又は証明書の提供の時点に対する読出しアクセス又は読出し/書込みアクセスの重要性に関するものであり得る。
【0088】
デバイスの動作安全性に対する読出しアクセス又は読出し/書込みアクセスの重要性の考慮は、以下のことを意味することがある。セキュリティ回路220が、読出しアクセスと読出し・書込みアクセスとの間の選択(或いはまたアクセスの完全な禁止)の際に、動作安全性に重要となり得るデバッグ命令(例えば「一時停止/停止」、「休止」など)と、監視機能のみを有する別のデバッグ命令(例えば、計数、追跡など)とを明確に区別するように設計されている。ここで、通常、動作安全性の面で重要な命令は、書込みアクセスを要求することがあり、監視機能に関しては、通常は読出しアクセスのみで十分であり得る。幾つかの場合には、例えば、読出し後に自動的に上書きされるメモリ(例えばメモリ130の1つ)からの読出しの際には、場合によっては、読出しアクセスのみでも、動作安全性の面で重要なものとして分類されていることがある。
【0089】
デバイスの動作状態の考慮は、以下のことを意味することがある。セキュリティ回路220は、デバイスが第1の所定の動作状態にあるときには、制御回路102の全ての領域、又は制御回路102の選択された領域の少なくとも1つ又は複数に対する読出し・書込みアクセス(或いはまた動作安全性の面で重要な読出しアクセス)を完全に禁止し、及び/又はデバイスが第2の所定の動作状態にあるときには、制御回路102の全ての領域128、130、又は制御回路102の選択された領域128、130の少なくとも1つ又は複数に対する読出し・書込みアクセス(或いはまた動作安全性の面で重要な読出しアクセス)を可能にするように設計されていることがある。
【0090】
第1の所定の動作状態は、「アクティブ」動作状態でよく、言い換えると、デバイスがアクティブである又は動作している動作状態でよく、例えば、稼働中のエンジンや動作中の診断医療機器などである。
【0091】
第1の所定の動作状態は、「非アクティブ」動作状態でよく、言い換えると、デバイスが非アクティブである、若しくは動作していない、又は静止/休止状態にある動作状態でよく、例えば、修理のために工場にある自動車両などである。
【0092】
上述した基準に基づいて、システムオンチップ200に関して様々な診断モードが生成されることがある。
【0093】
例えば、いわゆる「セーフイネーブル」モードが提供されることがあり、このモードでは、制御回路102又はデバイスの状態の監視のみが可能であるようにアクセス権限が調節されている(読出し権限のみ、又はさらには読出し後の上書きを除外した読出し権限のみ)。
【0094】
このモードで使用される場合、いわゆるオンチップトレースシステム(診断回路(デバッグ及びトレースシステムDTS)290の一部)のみが、書込みアクセスによって構成される必要がある。この場合、例えばマスタタグを使用して、オンチップトレースシステムがセキュリティ回路220のみによって構成可能であるように、アクセス権限のあるマスタの構成が調節されていることがある。これにより、例えばCPU128の1つで実行されているマルウェアがDTS290を使用して、トレースシステムによって制御システム102、特にソフトウェア及びデータを分析することはできないことが保証されている又は保証されることがある。
【0095】
そのようなモードは、例えば、デバイスの動作中に調節されている又は調節されることがある。ここで、アクセスは、例えばクラウドによって安全な(「安全且つセキュアな」)遠隔診断のために使用されることがある。
【0096】
さらなる例として、いわゆる「特権デバッグモード」が提供されることがあり、このモードでは、読出し権限及びまた書込み権限に加えて、選択された権限のみが割り当てられていることがある。したがって、制御回路102又はデバイスの状態の監視に加えて、例えば個々のアクセス権限者によるデバッグも可能にされている又は可能にされることがある。そのようなモードは、例えば、デバイスのテスト動作中に調節されている又は調節されることがある。このモード又は同様のモードにより、例えばデバイスのネットワーク(例えば自動車両ネットワーク)への直接のアクセス時に、例えばセキュアな(主に情報技術的にセキュアな)遠隔デバッグが可能にされ得る。
【0097】
SoC200の製造及び/又はSoC200とデバイスとの接続中、又はその後、アクセス権限を制限しないことが有意義又は必要であり得る。そのような「セットアップ」又は「インストールモード」では、制御回路102への本質的に無制限の読出し・書込みアクセスが可能にされていることがある。
【0098】
証明書の提供の時点の考慮は、例えば、製造後又はメンテナンス/修理後の限られた期間にわたって情報を取り出すことができるようにするために、限られた有効期間を有する証明書を提供することを可能にすることができる。
【0099】
システムオンチップ200は、診断システム104、セキュリティ回路220、及び/又は制御回路102の命令に従って通信パスを閉じるように設計されていることがある。システムオンチップ200は、さらに、通信パスを閉じた後に再起動を実行するように設計されていることがある。
【0100】
様々な例示的実施形態による
図2Bに示されるシステムオンチップ200は、その例示のためのものであり、セキュリティ回路220は、例えば通信(COM)周辺機器140によって、例えばイーサネットを介して、チップ全体にアクセスすることができ、セキュアな通信パスを提供する。これは以下のことを意味する。診断システム104(図示せず)が、
図2BでのSoC200の外部からCOM周辺機器と接続される。言い換えると、CPUは、分析ツールとしての診断システム104の外部ホストと通信するために、各通信(COM)周辺機器140、例えばイーサネットを使用することができる。
【0101】
さらに、セキュリティ回路220が、制御回路102の診断のためのシステム(例えば、例えばCPU上に提供される又は仮想機械の一部としてのソフトウェア)を提供することが例示されている。診断回路290は、本明細書ではDTSと呼ぶ。
図2Bには、一方としてのセキュリティ回路220及び通信(COM)周辺機器140と他方としてのDTS290との特別な接続が示されているが、これらのデータ接続は、従来のオンチップバス又はネットワークを介して提供されることもある。
【0102】
この場合、例えばCPU128の1つで実行されているマルウェアが診断回路(DTS)290を使用することができないことが保証されている又は保証される必要がある。したがって、アクセス権限のあるマスタの構成は、セキュリティの観点から信頼できる全てのマスタに使用を制限することを許可しなければならない。
【0103】
このとき、このトレースシステムは、セキュリティ回路のみによってのみ構成可能でよい。そうでないと、CPU128のいずれかで実行されているマルウェアが、トレースシステムを用いて制御回路、特にソフトウェア及びデータを分析するために使用されることがある。
【0104】
まとめると、ネットワークを介して外部ツールソフトウェアと通信し、外部ツールソフトウェアからの命令に従って診断及びデバッグハードウェアリソースを制御するセキュリティCPU又はセキュリティ仮想機械上でソフトウェアが実行されるシステムが提供される。ここで、通信は、そのデータセキュリティに関してセキュリティ保護されている、すなわち例えば認証及び/又は暗号化されていることがある。
【0105】
ソフトウェアは、様々な例示的実施形態において、データ(例えば監視/追跡データ)をアップロード及び/又はダウンロードし、ブレークポイントを設定し、監視システムを構成するように設計されていることがある。
【0106】
様々な例示的実施形態において、異なる権限レベルが事前に取り決められていることがあり、次いで、権限レベルに応じて、許可されるアクションの範囲が(例えばセキュリティ回路220によって)制限されている又は制限されることがある。
【0107】
例えば上述したように、動作安全性の面で重要なデバッグアクション(一時停止、休止など)と他のデバッグアクション(計数、追跡など)とを明確に分けるために、各権限レベルに応じて調節可能な、許可されるアクションの範囲が使用されることがある。
【0108】
様々な例示的実施形態において、システムオンチップによって、アクション及び追跡の範囲を仮想機械レベルに限定することを可能にする追跡システムが提供されることがある。これは、例えば、特定の仮想機械に関するプログラム及び/又はデータトレースのみが可能であることを意味することができる。
【0109】
様々な例示的実施形態において、認証に使用される証明書用の鍵が静的又は動的に変更されることがある(例えば、一般的に取り決められている鍵配布プロトコルに従って)。
【0110】
セキュリティ回路220のセキュリティCPU118によって制御回路に診断命令が提供されることによって、一方では、この目的のために特別に用意されるCPUは必要とされない。しかし他方で、セキュリティCPU118は、制御回路102のCPU228から独立しており、したがってデバッグ時に場合によっては全てのCPU128を停止させることができ、それによって診断ソフトウェアが故障することはない。
【0111】
図3は、様々な例示的実施形態によるシステムオンチップを動作させるための方法の流れ
図300を示す。
【0112】
この方法は、複数の制御回路領域を有する制御回路によってデバイスを制御するステップ(310)と、セキュリティ回路とセキュリティ回路の外部に配置されている診断システムとの間のセキュリティ保護された通信のための通信パスを提供するステップであって、セキュリティ回路が、個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを備え、キーメモリ及びハードウェアアクセラレータによって、セキュリティ保護された通信のための通信パスを提供するように設計されている、ステップ(320)と、セキュリティ回路に提供され、キーメモリに記憶されている情報によって認証された証明書に応じて、制御回路の少なくとも1つの選択された領域について、読出しアクセス又は読出し・書込みアクセスが保証可能であるかどうかを判断するステップ(330)と、セキュリティ回路によって、制御回路領域の少なくとも1つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするステップ(340)と、読出しアクセス又は読出し・書込みアクセスを実行するステップ(350)とを含む。
【0113】
以下、まとめとして、幾つかの例示的実施形態を提示する。
【0114】
例示的実施形態1は、システムオンチップである。このシステムオンチップは、複数の制御回路領域を有する制御回路であって、デバイスを制御するように設計されている制御回路と、個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを含むセキュリティ回路とを備え、セキュリティ回路が、制御回路領域の少なくとも1つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするように設計されており、セキュリティ回路が、さらに、キーメモリ及びハードウェアアクセラレータによって、セキュリティ回路外に配置されている診断システムとのセキュリティ保護された通信のための通信パスを提供し、セキュリティ回路に提供され、キーメモリに記憶されている情報によって認証された証明書に応じて、制御回路の少なくとも1つの選択された領域に対する読出しアクセスと読出し・書込みアクセスとの間の選択を行い、読出しアクセス又は読出し・書込みアクセスを実行するように設計されている。
【0115】
実施形態2は、制御回路の少なくとも1つの選択された領域に対する読出しアクセス又は読出し・書込みアクセスが、通信パスを介して診断システムからセキュリティ回路に伝達される少なくとも1つの診断命令を実行可能であるように構成されている、実施形態1に記載のシステムオンチップである。
【0116】
実施形態3は、セキュリティ回路が、ソフトウェアによって、セキュリティ保護された通信を実行するように、及び/又は制御回路に診断命令を提供するように設計されている、実施形態2に記載のシステムオンチップである。
【0117】
実施形態4は、セキュリティ回路が、ソフトウェアを実行するように設計されているCPU又は仮想機械を備える、実施形態3に記載のシステムオンチップである。
【0118】
実施形態5は、ソフトウェアが、ソフトウェア通信スタックを備える、実施形態3又は4に記載のシステムオンチップである。
【0119】
実施形態6は、ソフトウェアが、イーサネットソフトウェア通信スタックを備える、実施形態3~5のいずれか1つに記載のシステムオンチップである。
【0120】
実施形態7は、CPU又は仮想機械が、制御回路の少なくとも1つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されており、制御回路の選択された領域が、マスタタグに基づいてアクセスを拒む又は可能にするように設計されている、実施形態4~6のいずれか1つに記載のシステムオンチップである。
【0121】
実施形態8は、通信パスがネットワークを備える、実施形態1~7のいずれか1つに記載のシステムオンチップである。
【0122】
実施形態9は、ネットワークが、少なくとも一部、ワイヤレスデータ伝送を含む、実施形態8に記載のシステムオンチップである。
【0123】
実施形態10は、制御回路の少なくとも1つの選択された領域が、制御回路の複数の選択された領域を含み、セキュリティ回路が、制御回路の複数の選択された領域それぞれについて個別に、読出しアクセスと読出し・書込みアクセスとの間の選択を行うように設計されている、実施形態1~9のいずれか1つに記載のシステムオンチップである。
【0124】
実施形態11は、セキュリティ回路が、さらに、認証が失敗した場合に読出しアクセスも読出し・書込みアクセスも可能にしないように設計されている、実施形態1~10のいずれか1つに記載のシステムオンチップである。
【0125】
実施形態12は、セキュリティ回路が、認証が失敗した場合にアラームを発動するように設計されている、実施形態1~11のいずれか1つに記載のシステムオンチップである。
【0126】
実施形態13は、セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択の際に少なくとも1つの追加のパラメータを考慮するように設計されている、実施形態1~12のいずれか1つに記載のシステムオンチップである。
【0127】
実施形態14は、追加のパラメータが、デバイスの動作安全性、デバイスの動作状態、及び/又は証明書の提供の時点に対する読出しアクセス又は読出し/書込みアクセスの重要性に関するものである、実施形態13に記載のシステムオンチップである。
【0128】
実施形態15は、デバイスの動作状態の考慮が、セキュリティ回路が、デバイスが第1の所定の動作状態にあるとき、少なくとも、制御回路の全ての領域に対する、又は制御回路の選択された領域の少なくとも1つ若しくは複数に対する読出し・書込みアクセスを完全に禁止し、及び/又は、デバイスが第2の所定の動作状態にあるとき、制御回路の全ての領域又は少なくとも制御回路の選択された領域の1つ若しくは複数に対する読出し・書込みアクセスを可能にするように設計されていることを意味する、実施形態14に記載のシステムオンチップである。
【0129】
実施形態16は、第1の動作状態が、「アクティブであり、機能的にセキュアな」動作状態である、実施形態15に記載のシステムオンチップである。
【0130】
実施形態17は、第1の動作状態が、「アクティブであり、機能的セキュリティが制限された/機能的セキュリティがない」動作状態である、実施形態15に記載のシステムオンチップである。
【0131】
実施形態18は、セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択の際に、動作安全性の面で重要な読出しアクセス又は読出し・書込みアクセスと、監視のみの、動作安全性の面で重要でない読出しアクセス又は読出し・書込みアクセスとを区別するように設計されている、実施形態1~17のいずれか1つに記載のシステムオンチップである。
【0132】
実施形態19は、少なくとも1つの選択された領域が、制御回路の仮想機械及び/又は診断ハードウェア及び/又はデバッグハードウェアを備える、実施形態1~18のいずれか1つに記載のシステムオンチップである。
【0133】
実施形態20は、診断ハードウェア及び/又はデバッグハードウェアが、セキュリティ回路のみによって使用可能であるように構成可能である、実施形態19に記載のシステムオンチップである。
【0134】
実施形態21は、さらに、診断システム、セキュリティ回路、及び/又は制御回路の命令に従って通信パスを閉じるように設計されている、実施形態1~20のいずれか1つに記載のシステムオンチップである。
【0135】
実施形態22は、システムオンチップを動作させるための方法である。この方法は、複数の制御回路領域を有する制御回路によってデバイスを制御するステップと、セキュリティ回路とセキュリティ回路の外部に配置されている診断システムとの間のセキュリティ保護された通信のための通信パスを提供するステップであって、セキュリティ回路が、個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを備え、キーメモリ及びハードウェアアクセラレータによって、セキュリティ保護された通信のための通信パスを提供するように設計されている、ステップと、セキュリティ回路に提供され、キーメモリに記憶されている情報によって認証された証明書に応じて、制御回路の少なくとも1つの選択された領域について、読出しアクセス又は読出し・書込みアクセスが保証可能であるかどうかを判断するステップと、セキュリティ回路によって、制御回路領域の少なくとも1つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするステップと、読出しアクセス又は読出し・書込みアクセスを実行するステップとを含む。
【0136】
実施形態23は、制御回路の少なくとも1つの選択された領域に対する読出しアクセス又は読出し・書込みアクセスが、通信パスを介して診断システムからセキュリティ回路に伝達される少なくとも1つの診断命令を実行可能であるように構成されている、実施形態22に記載の方法である。
【0137】
実施形態24は、セキュリティ回路が、ソフトウェアによって、セキュリティ保護された通信を実行するように設計されている、実施形態22又は23に記載の方法である。
【0138】
実施形態25は、セキュリティ回路が、ソフトウェアを実行するように設計されているCPU又は仮想機械を備える、実施形態24に記載の方法である。
【0139】
実施形態26は、ソフトウェアが、ソフトウェア通信スタックを備える、実施形態24又は25に記載の方法である。
【0140】
実施形態27は、ソフトウェアが、イーサネットソフトウェア通信スタックを備える、実施形態24~26のいずれか1つに記載の方法である。
【0141】
実施形態28は、CPU又は仮想機械が、制御回路の少なくとも1つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されており、制御回路の選択された領域が、マスタタグに基づいてアクセスを拒む又は可能にするように設計されている、実施形態25~27のいずれか1つに記載の方法である。
【0142】
実施形態29は、通信パスがネットワークを備える、実施形態22~28のいずれか1つに記載の方法である。
【0143】
実施形態30は、ネットワークが、少なくとも一部、ワイヤレスデータ伝送を含む、実施形態29に記載の方法である。
【0144】
実施形態31は、制御回路の少なくとも1つの選択された領域が、制御回路の複数の選択された領域を含み、セキュリティ回路が、制御回路の複数の選択された領域それぞれについて個別に、読出しアクセスと読出し・書込みアクセスとの間の選択を行うように設計されている、実施形態22~30のいずれか1つに記載の方法である。
【0145】
実施形態32は、セキュリティ回路が、さらに、認証が失敗した場合に読出しアクセスも読出し・書込みアクセスも可能にしないように設計されている、実施形態22~31のいずれか1つに記載の方法である。
【0146】
実施形態33は、セキュリティ回路が、認証が失敗した場合にアラームを発動するように設計されている、実施形態22~32のいずれか1つに記載の方法である。
【0147】
実施形態34は、セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択の際に少なくとも1つの追加のパラメータを考慮するように設計されている、実施形態22~33のいずれか1つに記載の方法である。
【0148】
実施形態35は、追加のパラメータが、デバイスの動作安全性、デバイスの動作状態、及び/又は証明書の提供の時点に対する読出しアクセス又は読出し/書込みアクセスの重要性に関するものである、実施形態34に記載の方法である。
【0149】
実施形態36は、デバイスの動作状態の考慮が、セキュリティ回路が、デバイスが第1の所定の動作状態にあるとき、少なくとも、制御回路の全ての領域に対する、又は制御回路の選択された領域の少なくとも1つ若しくは複数に対する読出し・書込みアクセスを完全に禁止し、及び/又は、デバイスが第2の所定の動作状態にあるとき、制御回路の全ての領域又は少なくとも制御回路の選択された領域の1つ若しくは複数に対する読出し・書込みアクセスを可能にするように設計されている、実施形態35に記載の方法である。
【0150】
実施形態37は、第1の動作状態が、「アクティブであり、機能的にセキュアな」動作状態である、実施形態36に記載の方法である。
【0151】
実施形態38は、第1の動作状態が、「アクティブであり、機能的セキュリティが制限された/機能的セキュリティがない」動作状態である、実施形態36に記載の方法である。
【0152】
実施形態39は、セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択の際に、動作安全性の面で重要な読出しアクセス又は読出し・書込みアクセスと、監視のみの、動作安全性の面で重要でない読出しアクセス又は読出し・書込みアクセスとを区別するように設計されている、実施形態22~38のいずれか1つに記載の方法である。
【0153】
実施形態40は、少なくとも1つの選択された領域が、制御回路の仮想機械及び/又は診断ハードウェア及び/又はデバッグハードウェアを備え、制御回路の選択された領域が、マスタタグに基づいてアクセスを拒む又は可能にするように設計されている、実施形態22~39のいずれか1つに記載の方法である。
【0154】
実施形態41は、診断システム、セキュリティ回路、及び/又は制御回路の命令に従って通信パスを閉じるステップをさらに含む、実施形態22~40のいずれか1つに記載の方法である。
【符号の説明】
【0155】
100 システムオンチップ
102 ホストシステム
104 外部デバッグデバイス
106、132、132D 入力ポート
108 証明書
110 インターフェース
112 ハードウェアセキュリティモジュール
114 ROMライブラリ
116 デバッグ制御ユニット
118 セキュリティプロセッサ
120 データメモリ
126 スイッチ
128 CPU
130、140、142 システムリソース
136 モジュール