(57)【要約】      （修正有）【課題】システムオンチップを安全に動作させる方法を提供する。【解決手段】システムオンチップ１００は、複数の制御回路領域を有する制御回路１０２と、個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを含むセキュリティ回路１１２とを備える。セキュリティ回路１１２は、制御回路領域の少なくとも１つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にする。セキュリティ回路１１２は、セキュリティ回路１１２外に配置されている診断システム１０４とのセキュリティ保護された通信のための通信パスを提供する。セキュリティ回路１１２は、キーメモリに記憶されている情報によって認証された証明書１０８に応じて、制御回路１０２の少なくとも１つの選択された領域に対する読出しアクセスと読出し・書込みアクセスとの間の選択を行い、読出しアクセス又は読出し・書込みアクセスを実行する。【選択図】図１Ａ
2020091849.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御回路領域を有する制御回路であって、デバイスを制御するように設計されている制御回路と、
個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを含むセキュリティ回路とを備えるシステムオンチップであって、
前記セキュリティ回路が、前記制御回路領域の少なくとも１つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするように設計されており、
前記セキュリティ回路が、さらに、前記キーメモリ及び前記ハードウェアアクセラレータによって、前記セキュリティ回路外に配置されている診断システムとのセキュリティ保護された通信のための通信パスを提供し、前記セキュリティ回路に提供され、前記キーメモリに記憶されている情報によって認証された証明書に応じて、前記制御回路の前記少なくとも１つの選択された領域に対する前記読出しアクセスと前記読出し・書込みアクセスとの間の選択を行い、前記読出しアクセス又は前記読出し・書込みアクセスを実行するように設計されている、システムオンチップ。
【請求項２】
前記制御回路の前記少なくとも１つの選択された領域に対する前記読出しアクセス又は前記読出し・書込みアクセスが、前記通信パスを介して前記診断システムから前記セキュリティ回路に伝達される少なくとも１つの診断命令を実行可能であるように構成されている、請求項１に記載のシステムオンチップ。
【請求項３】
前記セキュリティ回路が、ソフトウェアによって、前記セキュリティ保護された通信を実行するように、及び／又は前記制御回路に前記診断命令を提供するように設計されている、請求項２に記載のシステムオンチップ。
【請求項４】
前記セキュリティ回路が、前記ソフトウェアを実行するように設計されているＣＰＵ又は仮想機械を備える、請求項３に記載のシステムオンチップ。
【請求項５】
前記ソフトウェアが、ソフトウェア通信スタックを備える、請求項３又は４に記載のシステムオンチップ。
【請求項６】
前記ソフトウェアが、イーサネットソフトウェア通信スタックを備える、請求項３〜５のいずれか一項に記載のシステムオンチップ。
【請求項７】
前記ＣＰＵ又は前記仮想機械が、前記制御回路の前記少なくとも１つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されており、前記制御回路の前記選択された領域が、前記マスタタグに基づいて前記アクセスを拒む又は可能にするように設計されている、請求項４〜６のいずれか一項に記載のシステムオンチップ。
【請求項８】
前記通信パスがネットワークを備える、請求項１〜７のいずれか一項に記載のシステムオンチップ。
【請求項９】
前記ネットワークが、少なくとも一部、ワイヤレスデータ伝送を含む、請求項８に記載のシステムオンチップ。
【請求項１０】
前記制御回路の前記少なくとも１つの選択された領域が、前記制御回路の複数の選択された領域を含み、
前記セキュリティ回路が、前記制御回路の前記複数の選択された領域それぞれについて個別に、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択を行うように設計されている、請求項１〜９のいずれか一項に記載のシステムオンチップ。
【請求項１１】
前記セキュリティ回路が、さらに、認証が失敗した場合に前記読出しアクセスも前記読出し・書込みアクセスも可能にしないように設計されている、請求項１〜１０のいずれか一項に記載のシステムオンチップ。
【請求項１２】
前記セキュリティ回路が、認証が失敗した場合にアラームを発動するように設計されている、請求項１〜１１のいずれか一項に記載のシステムオンチップ。
【請求項１３】
前記セキュリティ回路が、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択の際に少なくとも１つの追加のパラメータを考慮するように設計されている、請求項１〜１２のいずれか一項に記載のシステムオンチップ。
【請求項１４】
前記追加のパラメータが、前記デバイスの動作安全性、前記デバイスの動作状態、及び／又は前記証明書の提供の時点に対する前記読出しアクセス又は前記読出し／書込みアクセスの重要性に関するものである、請求項１３に記載のシステムオンチップ。
【請求項１５】
前記デバイスの前記動作状態の前記考慮が、前記セキュリティ回路が、前記デバイスが第１の所定の動作状態にあるとき、少なくとも、前記制御回路の全ての領域に対する、又は前記制御回路の選択された領域の少なくとも１つ若しくは複数に対する前記読出し・書込みアクセスを完全に禁止し、及び／又は、前記デバイスが第２の所定の動作状態にあるとき、前記制御回路の全ての領域又は少なくとも前記制御回路の前記選択された領域の１つ若しくは複数に対する読出し・書込みアクセスを可能にするように設計されていることを意味する、請求項１４に記載のシステムオンチップ。
【請求項１６】
前記第１の動作状態が、「アクティブであり、機能的にセキュアな」動作状態である、請求項１５に記載のシステムオンチップ。
【請求項１７】
前記第１の動作状態が、「アクティブであり、機能的セキュリティが制限された／機能的セキュリティがない」動作状態である、請求項１５に記載のシステムオンチップ。
【請求項１８】
前記セキュリティ回路が、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択の際に、動作安全性の面で重要な読出しアクセス又は読出し・書込みアクセスと、監視のみの、動作安全性の面で重要でない読出しアクセス又は読出し・書込みアクセスとを区別するように設計されている、請求項１〜１７のいずれか一項に記載のシステムオンチップ。
【請求項１９】
前記少なくとも１つの選択された領域が、前記制御回路の仮想機械及び／又は診断ハードウェア及び／又はデバッグハードウェアを備える、請求項１〜１８のいずれか一項に記載のシステムオンチップ。
【請求項２０】
前記診断ハードウェア及び／又はデバッグハードウェアが、前記セキュリティ回路のみによって使用可能であるように構成可能である、請求項１９に記載のシステムオンチップ。
【請求項２１】
さらに、前記診断システム、前記セキュリティ回路、及び／又は前記制御回路の命令に従って前記通信パスを閉じるように設計されている、請求項１〜２０のいずれか一項に記載のシステムオンチップ。
【請求項２２】
システムオンチップを動作させるための方法であって、
複数の制御回路領域を有する制御回路によってデバイスを制御するステップと、
セキュリティ回路と前記セキュリティ回路の外部に配置されている診断システムとの間のセキュリティ保護された通信のための通信パスを提供するステップであって、前記セキュリティ回路が、個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを備え、前記キーメモリ及び前記ハードウェアアクセラレータによって、前記セキュリティ保護された通信のための前記通信パスを提供するように設計されている、ステップと、
前記セキュリティ回路に提供され、前記キーメモリに記憶されている情報によって認証された証明書に応じて、前記制御回路の前記少なくとも１つの選択された領域について、読出しアクセス又は読出し・書込みアクセスが保証可能であるかどうかを判断するステップと、
前記セキュリティ回路によって、前記制御回路領域の少なくとも１つに対する前記読出しアクセスのみ又は前記読出し・書込みアクセスを選択的に可能にするステップと、
前記読出しアクセス又は前記読出し・書込みアクセスを実行するステップと
を含む方法。
【請求項２３】
前記制御回路の前記少なくとも１つの選択された領域に対する前記読出しアクセス又は前記読出し・書込みアクセスが、前記通信パスを介して前記診断システムから前記セキュリティ回路に伝達される少なくとも１つの診断命令を実行可能であるように構成されている、請求項２２に記載の方法。
【請求項２４】
前記セキュリティ回路が、ソフトウェアによって、前記セキュリティ保護された通信を実行するように設計されている、請求項２２又は２３に記載の方法。
【請求項２５】
前記セキュリティ回路が、前記ソフトウェアを実行するように設計されているＣＰＵ又は仮想機械を備える、請求項２４に記載の方法。
【請求項２６】
前記ソフトウェアが、ソフトウェア通信スタックを備える、請求項２４又は２５に記載の方法。
【請求項２７】
前記ソフトウェアが、イーサネットソフトウェア通信スタックを備える、請求項２４〜２６のいずれか一項に記載の方法。
【請求項２８】
前記ＣＰＵ又は前記仮想機械が、前記制御回路の前記少なくとも１つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されており、前記制御回路の前記選択された領域が、前記マスタタグに基づいて前記アクセスを拒む又は可能にするように設計されている、請求項２５〜２７のいずれか一項に記載の方法。
【請求項２９】
前記通信パスがネットワークを備える、請求項２２〜２８のいずれか一項に記載の方法。
【請求項３０】
前記ネットワークが、少なくとも一部、ワイヤレスデータ伝送を含む、請求項２９に記載の方法。
【請求項３１】
前記制御回路の前記少なくとも１つの選択された領域が、前記制御回路の複数の選択された領域を含み、
前記セキュリティ回路が、前記制御回路の前記複数の選択された領域それぞれについて個別に、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択を行うように設計されている、請求項２２〜３０のいずれか一項に記載の方法。
【請求項３２】
前記セキュリティ回路が、さらに、認証が失敗した場合に前記読出しアクセスも前記読出し・書込みアクセスも可能にしないように設計されている、請求項２２〜３１のいずれか一項に記載の方法。
【請求項３３】
前記セキュリティ回路が、認証が失敗した場合にアラームを発動するように設計されている、請求項２２〜３２のいずれか一項に記載の方法。
【請求項３４】
前記セキュリティ回路が、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択の際に少なくとも１つの追加のパラメータを考慮するように設計されている、請求項２２〜３３のいずれか一項に記載の方法。
【請求項３５】
前記追加のパラメータが、前記デバイスの動作安全性、前記デバイスの動作状態、及び／又は前記証明書の提供の時点に対する前記読出しアクセス又は前記読出し／書込みアクセスの重要性に関するものである、請求項３４に記載の方法。
【請求項３６】
前記デバイスの前記動作状態の前記考慮が、前記セキュリティ回路が、前記デバイスが第１の所定の動作状態にあるとき、少なくとも、前記制御回路の全ての領域に対する、又は前記制御回路の前記選択された領域の少なくとも１つ若しくは複数に対する前記読出し・書込みアクセスを完全に禁止し、及び／又は、前記デバイスが第２の所定の動作状態にあるとき、前記制御回路の全ての領域又は少なくとも前記制御回路の前記選択された領域の１つ若しくは複数に対する読出し・書込みアクセスを可能にするように設計されている、請求項３５に記載の方法。
【請求項３７】
前記第１の動作状態が、「アクティブであり、機能的にセキュアな」動作状態である、請求項３６に記載の方法。
【請求項３８】
前記第１の動作状態が、「アクティブであり、機能的セキュリティが制限された／機能的セキュリティがない」動作状態である、請求項３６に記載の方法。
【請求項３９】
前記セキュリティ回路が、前記読出しアクセスと前記読出し・書込みアクセスとの間の選択の際に、動作安全性の面で重要な読出しアクセス又は読出し・書込みアクセスと、監視のみの、動作安全性の面で重要でない読出しアクセス又は読出し・書込みアクセスとを区別するように設計されている、請求項２２〜３８のいずれか一項に記載の方法。
【請求項４０】
前記少なくとも１つの選択された領域が、前記制御回路の仮想機械及び／又は診断ハードウェア及び／又はデバッグハードウェアを備える、請求項２２〜３９のいずれか一項に記載の方法。
【請求項４１】
前記診断ハードウェア及び／又はデバッグハードウェアが、前記セキュリティ回路のみによって使用可能であるように構成可能である、請求項４０に記載の方法。
【請求項４２】
前記診断システム、前記セキュリティ回路、及び／又は前記制御回路の命令に従って前記通信パスを閉じるステップ
をさらに含む、請求項２２〜４１のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムオンチップ（ＳｏＣ）及びシステムオンチップを動作させるための方法に関する。
【背景技術】
【０００２】
「システムオンチップ」とも呼ばれるマルチコアマイクロコントローラは、複雑であり（動作）安全性に重要な（リアルタイム）ハードウェアシステムを制御又は調整することを可能にする。
【０００３】
ドイツ語の概念「Ｓｉｃｈｅｒｈｅｉｔ」及びそれに関連する概念（「ｓｉｃｈｅｒｈｅｉｔｓｋｒｉｔｉｓｃｈ」など）は、日本語では「安全性」及び「セキュリティ」という概念によってそれぞれ区別される２つの異なる文脈で使用される。ここで、「安全性」とは、動作安全性、すなわち、システムの使用がシステム自体にもその環境（例えばユーザ）にも損傷を加えない状態でシステムが動作されることを表す。一方、「セキュリティ」とは、データセキュリティを表す。したがって、システムによって提供可能又は実行可能なデータ及び／又は機能へのアクセスは、アクセス権限者のみが可能である。本明細書では、区別のために、データセキュリティに関しては、「セキュリティ」という概念（及びそこから派生する概念、例えば「セキュアな」など）又は「データセキュリティ」を使用し、動作安全性に関しては、「安全性」という概念（及びそこから派生する概念、例えば「安全な」など）を使用する。文脈において特に指定されていない限り、「セキュリティ」という概念は（さらに区分することなく）動作セキュリティとデータセキュリティとの両方を意味する。
【０００４】
上述した複雑なシステムは、本質的に無制限の入力（値）と状態空間を有することができる。したがって、特定の異常（例えば、期待される望ましい状態及びまた予想される望ましくない状態から逸脱する状態）は、現場でのみ、つまりユーザの元での動作時にのみ発生することがあり得る。この種の異常は、期待されていない入力値、及び／又はシステムのデータセキュリティに対する攻撃がその原因である可能性があり、システムの利用可能性に影響を持つ可能性がある。
【０００５】
これは以下のことを意味する。そのような複雑なシステムに対して、ユーザの元でのシステムの動作中、異常（及び場合によってはその原因）を認識するために、フレキシブルであり且つシステムのデータセキュリティ（及びまた動作安全性）を保証するアクセスオプションを可能にする必要がある。
【０００６】
現在利用可能なシステムの幾つかでは、（動作）ソフトウェアが診断及びログブック機能を備えることができる。ただし、これにより、典型的には、最初から期待されていた異常又は誤動作のみが検出される。そのような診断ツールを使用する際、異常を示した特定のシステム、例えば乗用車に、後付けで、誤り認識又は誤り訂正オプション（デバッグ機能とも呼ばれる）が装備されることがあり、例えば診断ユニットに連結されることがある。しかし、誤り認識又は誤り訂正オプションは、異常を容易に再現可能であり、診断ユニットの連結によりシステムが変更されたことによってその異常に影響が及ぼされていないときにしか成功しない。しかし、そのような手法は、いずれにせよ開発段階でしか使用できず、システムが既にユーザの所有下にあるときには使用できない。
【０００７】
内蔵型のホストシステム１０２のためのデバッグオプションを備えた現在利用可能なさらなるシステムオンチップ１００が図１Ａ〜図１Ｃに示されている。ここで、図１Ａは、システムオンチップ１００全体及びそれに関連する外部デバッグデバイス１０４に関する概要を示し、図１Ｂ及び図１Ｃは、ホストシステム１０２でのデバッグアクセスが構成され得る２つの例を示す。
【０００８】
システムオンチップ１００は、ホストシステム１０２への（データセキュリティの面で）セキュリティ保護されたアクセスチャネル（「デバッグチャネル」）を提供する。
【０００９】
認証されたデバッグチャネルを構築するために、ハードウェアセキュリティモジュール（ＨＳＭ）１１２のシステムオンチップ１００が使用される。ＨＳＭ１１２は、例えば「セキュアＣＰＵ」と呼ばれるセキュリティプロセッサ１１８、「暗号セル」と呼ばれるＲＯＭライブラリ１１４、デバッグ制御ユニット（ＤＣＵ；「Ｄｅｂｕｇ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ」）１１６、インターフェース１１０、ブートＲＯＭ１１２、及びセキュリティ保護されたデータメモリ（「セキュアＲＡＭ」）１２０などのデータセキュリティコンポーネントを備えた、ホストシステム１０２から物理的に分離されたモジュールを成す。
【００１０】
ＲＯＭライブラリ１１４は、デバッグ入力ポート（ＤＡＰ；「Ｄｅｂｕｇ  Ａｃｃｅｓｓ  Ｐｏｒｔ」）１０６によって、及びインターフェース１１０によって外部デバッグデバイス１０４からＨＳＭ１１２に供給される（デバッグ）証明書１０８をチェックするために使用される。このＳｏＣ１００でのみデバッグ証明書を認証に使用できるようにすることを保証するために、チップ上の変更不能にプログラムされたＯＴＰ−ＲＡＭ１２４に保存されている秘密のＳｏＣ固有の鍵でデバッグ証明書に署名する必要があり得る。
【００１１】
（デバッグ）証明書１０８の伝達と共に又は伝達後、外部デバッグデバイス１０４は、（例えばデバッグ入力ポート１０６によって）ホストシステム、例えば（デバッグ）入力ポート１３２、１３２Ｄ（図１Ａには図示せず。ホストシステム１０２への入力においてスイッチ１２６が金庫として図示されている場所にある；図１Ｂには、（デバッグ）入力ポート１３２、１３２Ｄが示されている）にデバッグ命令を伝送することができる。
【００１２】
しかし、（デバッグ）入力ポート１３２、１３２Ｄは、（デバッグ）証明書１０８がＨＳＭ１１２において認証されるまで、（スイッチ１２６によって）閉じたままである。認証後、デバッグインターフェース（例えば、ホストＣＰＵ１２８のデバッグ入力ポート１３２、１３２Ｄ及び別のシステムリソース１３０、１４０、１４２）へのアクセスを制御及び実現するように設計されているＤＣＵ１１６を使用して、（デバッグ）入力ポート１３２、１３２Ｄ（又は場合によっては、ホストＣＰＵ１３８及びホストメモリ１４２に対するそれぞれ１つのデバッグ入力ポート１３２、１３２Ｄ）を解放する。
【００１３】
ホストシステム１０２へのデバッグ入力ポート１３２、１３２Ｄを開いた後、外部デバッグデバイス１０４から伝達されたデバッグ命令をホストシステム１０２において実行することができる。
【００１４】
ここで、デバッグ入力ポート１３２、１３２Ｄによって伝達されるデバッグ命令が、例えばＪＴＡＧ標準に準拠したプロトコルによって伝送されることが企図される。
【００１５】
ホストシステム１０２での（デバッグプロトコルとしての）デバッグ命令の実行は、ここで例えば図１Ｂに示されるように、デバッグのために特別に提供されたコンポーネントによって行うことができる。例えば、特別用途のコンポーネントは、物理的ＵＳＢポート１３２Ｄと、ＵＳＢデバイスコントローラ１３４Ｄと、標準命令を備えたモジュール１３６とを備えることができる。この構成は、デバイスを動作させるために設計された残りのシステム（特に、関連する物理的ＵＳＢポート１３２、ＵＳＢデバイスコントローラ１３４、及びＣＰＵ１２８）に最小限に介入し、残りのシステムが（まだ又は再び）いわゆる「ベアメタル」状態にある、すなわち例えばソフトウェアがまだそこにインストールされていないときにもデバッグオプションを提供するという利点がある。しかし、そのためには、特別用途の高価な追加のコンポーネント（例えば、物理的ＵＳＢポート１３２Ｄ、ＵＳＢデバイスコントローラ１３４Ｄ、及び標準命令を備えたモジュール１３６）が提供されなければならない。
【００１６】
より費用対効果の高い例では、例えば図１Ｃに示されるように、ホストシステム１０２における（デバッグプロトコルとしての）デバッグ命令は、デバイスを動作させるために設計されているコンポーネントによって行うことができる。これは、例えば、デバイスを動作させるように設計されている物理的ＵＳＢポート１３２、ＵＳＢデバイスコントローラ１３４、及びＣＰＵ１２８が、同時にデバッグプロトコルも実行するように設計されていることを意味する。これは、一方では侵略的であり、他方ではＣＰＵ１２８が実行中であることを必要とする。なぜなら、ＣＰＵ１２８の一時停止（これはデバッグ時に場合によっては必要とされることがある）によって、同時にデバッグ機能も消えるからである。
【００１７】
したがって、一方では、追加のコンポーネントを必要とせず、したがって費用対効果が高く、しかし他方では、それでも、デバッグ機能を失うことなく、デバイスを制御／動作するために使用される全てのＣＰＵを必要に応じて一時停止することができるシステムオンチップを提供する必要がある。
【００１８】
図１Ａ〜図１Ｃのシステムオンチップ１００のさらなる態様は、ＤＣＵ１１６によるデバッグポート１３２、１３２Ｄの開放に関する。これは、デバッグポート１３２、１３２Ｄの開放は、ＪＴＡＧ標準に従って使用可能なホストシステム内の全てのデバッグシステム又は機能を解放するメインスイッチの切替え（開放）として明確に表すことができるからである。
【００１９】
ユーザへのデバイス（ＳｏＣ１００を含む）の提供前に、すなわち例えば製造元でそのようなデバッグが行われる限り、そのような構成は問題ないことがある。
【００２０】
しかし、上述したように、異常なプロセスを認識するために動作中に（すなわちユーザの元で）デバイス又はＳｏＣ１００を監視することが目的とされる限り、デバッグオプションが、監視機能だけでなく、同時に例えばブレークポイントを設定するオプションも提供することが課題となり得る。例えば、デバイスは乗用車のエンジン制御機構でよく、走行中に、制御されずに、外部デバッグアクセスによってソフトウェアが非アクティブ化されることにより、エンジンが故障する可能性があり、したがってユーザ及び／又は第三者を危険な状況に陥らせる可能性がある。
【００２１】
したがって、様々なデバッグレベルの解放を可能にするシステムオンチップを提供することが望ましいことがあり、デバッグレベルのうちの少なくとも１つは、デバイスの動作中にデバイス又はシステムオンチップの監視を可能にし、同時にデバイスの動作安全性を保証する。
【発明の概要】
【課題を解決するための手段】
【００２２】
様々な例示的実施形態において、デバッグリソースの制御は、システムオンチップに組み込まれたハードウェア及びソフトウェアユニットによって行われ、このユニットは、ツールの認証のために提供される鍵、パスワード、及び／又は証明書に基づいて、ツール（例えば診断システム）の特権レベルを認識する。影響／相互作用又は観察は、特権レベルに基づいて許可（又は禁止）される。例えば、所定の特権レベルは、特定の仮想機械の活動のみを追跡することができることを意味することがある。追跡は、例えば、様々な観察ポイント（例えばプログラムフローにおける時点又は位置）で可能にされている又は可能にされることがある。
【００２３】
様々な例示的実施形態において、セキュアに、しかしまたフレキシブルに遠隔アクセスによって制御システム（例えばデバイスの制御システム）を監視するためのシステム又は方法が提供される。さらに、提供されるシステム又は方法は、非常にロバストであり、費用対効果が高い。
【００２４】
様々な例示的実施形態において、監視用の制御システムのハードウェアセキュリティモジュールが使用され、これは、セキュアな環境であり、（例えば、独自のシステム周辺機器及びメモリにより）システムの残りの部分から独立しているので特に適している。また、動作安全性の面で重要な幾つかの基本的な側面は、セキュリティサブシステムによるさらなる修正なしで既に実現されていることがある。
【００２５】
さらに、多くの場合、典型的なセキュリティタスクによって、ハードウェアセキュリティモジュールが完全には活用されていない可能性があり得る。これは、特に開発段階中に当てはまることがある。なぜなら、開発中には、セキュリティ機能がまったく必要とされない又は非常に限られた範囲でしか必要とされない可能性があり得るからである。したがって、有利には、追加の高価なハードウェアなしで、診断機能、特に通信パスを提供することができる。
【００２６】
さらに、ＨＳＭは、独立したサブシステムであり、これは、（通常のマルチコア）制御システムが停止されている又は停止されるときでさえ、診断システムとの通信を維持することを意味する。
【００２７】
様々な例示的実施形態において、システムオンチップが提供される。本システムオンチップは、複数の制御回路領域を有する制御回路であって、デバイスを制御するように設計されている制御回路と、個別にセキュリティ保護されたキーメモリ及び少なくとも１つの暗号処理用のハードウェアアクセラレータを含むセキュリティ回路とを備えるシステムオンチップであって、セキュリティ回路が、制御回路領域の少なくとも１つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするように設計されており、セキュリティ回路が、さらに、キーメモリ及び少なくとも１つのハードウェアアクセラレータによって、セキュリティ回路外に配置されている診断システムとのセキュリティ保護された通信のための通信パスを提供し、セキュリティ回路に提供され、キーメモリに記憶されている情報によって認証された証明書に応じて、制御回路の少なくとも１つの選択された領域に対する読出しアクセスと読出し・書込みアクセスとの間の選択を行い、読出しアクセス又は読出し・書込みアクセスを実行するように設計されていてよい。
【００２８】
制御回路の少なくとも１つの選択された領域に対する読出しアクセス又は読出し・書込みアクセスは、通信パスを介して診断システムからセキュリティ回路に伝達される少なくとも１つの診断命令を実行可能であるように構成されていてよい。
【００２９】
セキュリティ回路は、ソフトウェアによって、セキュリティ保護された通信を実行するように設計されていてよい。
【００３０】
セキュリティ回路は、ソフトウェアを実行するように設計されているＣＰＵ又は仮想機械を備えていてよい。
【００３１】
ソフトウェアは、ソフトウェア通信スタック、例えばイーサネットソフトウェア通信スタックを備えることができる。
【００３２】
ＣＰＵ又は仮想機械は、制御回路の少なくとも１つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されていてよい。これにより、診断システムに、ＣＰＵ又は仮想機械が基本的に備えているアクセスオプションよりも少ない又はそれらとは異なるアクセスオプションを提供することが可能にされ得る。
【００３３】
様々な例示的実施形態において、通信パスは、ネットワークを備えることができる。様々な例示的実施形態において、ネットワークは、少なくとも一部、ワイヤレスデータ伝送を含むことができる。
【００３４】
様々な例示的実施形態において、制御回路の少なくとも１つの選択された領域は、制御回路の複数の選択された領域を含むことができ、セキュリティ回路は、制御回路の複数の選択された領域それぞれについて個別に、読出しアクセスと読出し・書込みアクセスとの間の選択を行うように設計されていることがある。言い換えると、制御回路の選択された領域の第１の部分（例えば、１つもない、１つ、又は複数）に対しては読出しアクセス（のみ）が可能にされており、同時に、第１の部分とは異なる、制御回路の選択された領域の第２の部分（例えば、１つもない、１つ、又は複数）に対しては読出し・書込みアクセスが可能にされている。
【００３５】
様々な例示的実施形態において、セキュリティ回路は、認証が失敗した場合に読出しアクセスも読出し・書込みアクセスも可能にしないように設計されていることがある。
【００３６】
場合によっては、セキュリティ回路は、さらに、認証が失敗した場合に、例えばデバイスにおいてアラームを発動するように設計されていることがある。
【００３７】
様々な例示的実施形態において、セキュリティ回路は、読出しアクセスと読出し・書込みアクセスとの間の選択の際に少なくとも１つの追加のパラメータを考慮するように設計されていることがある。追加のパラメータは、例えば、デバイスの動作安全性、デバイスの動作状態、及び／又は証明書の提供の時点に対する読出しアクセス又は読出し／書込みアクセスの重要性に関するものであり得る。
【００３８】
デバイスの動作安全性に対する読出しアクセス又は読出し／書込みアクセスの重要性の考慮は、以下のことを意味することがある。セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択（或いはまたアクセスの完全な禁止）の際に、動作安全性に重要となり得るデバッグ命令（例えば「一時停止／停止」、「休止」など）と、監視機能のみを有する別のデバッグ命令（例えば、計数、追跡など）とを明確に区別するように設計されている。ここで、通常、動作安全性の面で重要な命令は、書込みアクセスを要求することがあり、監視機能に関しては、通常は読出しアクセスのみで十分であり得る。幾つかの場合には、例えば、読出しによって自動的に上書きされる（ＦＩＦＯ）メモリからの読出しの際には、場合によっては、読出しアクセスのみでも、動作安全性の面で重要なものとして分類されていることがある。
【００３９】
デバイスの動作状態の考慮は、以下のことを意味することがある。セキュリティ回路は、デバイスが第１の所定の動作状態にあるときには、制御回路の全ての領域、又は制御回路の選択された領域の少なくとも１つ又は複数に対する読出し・書込みアクセス（或いはまた動作安全性の面で重要な読出しアクセス）を完全に禁止し、及び／又はデバイスが第２の所定の動作状態にあるときには、制御回路の全ての領域、又は制御回路の選択された領域の少なくとも１つ又は複数に対する読出し・書込みアクセス（或いはまた動作安全性の面で重要な読出しアクセス）を可能にするように設計されていることがある。
【００４０】
第１の所定の動作状態は、「アクティブ」動作状態でよく、言い換えると、デバイスがアクティブである又は動作している動作状態でよい。
【００４１】
第１の所定の動作状態は、「非アクティブ」動作状態でよく、言い換えると、デバイスが非アクティブである、若しくは動作していない、又は静止／休止状態にある動作状態でよい。
【００４２】
証明書の提供の時点の考慮は、限られた有効期間を有する証明書を提供することを可能にすることができる。
【００４３】
少なくとも１つの選択された領域は、制御回路の仮想機械、診断ハードウェア、及び／又はデバッグハードウェアでよく、又はそれらを備えることができる。
【００４４】
システムオンチップは、診断システム、セキュリティ回路、及び／又は制御回路の命令に従って通信パスを閉じるように設計されていることがある。システムオンチップは、さらに、通信パスを閉じた後に再起動を実行するように設計されていることがある。
【００４５】
本発明の例示的実施形態が図に示されており、以下でより詳細に説明する。
【図面の簡単な説明】
【００４６】
【図１Ａ】従来技術によるシステムオンチップとそれに関連する外部デバッグデバイスの概略図である。
【図１Ｂ】図１Ａからのシステムオンチップのホストシステムの概略図である。
【図１Ｃ】図１Ａからのシステムオンチップのホストシステムの概略図である。
【図２Ａ】様々な例示的実施形態によるシステムオンチップの概略図である。
【図２Ｂ】様々な例示的実施形態によるシステムオンチップの概略図である。
【図３】様々な例示的実施形態によるシステムオンチップを動作させるための方法の流れ図である。
【発明を実施するための形態】
【００４７】
以下の詳細な説明では添付図面を参照する。添付図面は、本明細書の一部を成し、例示の目的で、本発明を実施することができる具体的な実施形態を示す。この点において、「上」、「下」、「前」、「後ろ」、「前側」、「後側」など方向を示す用語は、述べている図面の向きを参照して用いる。実施形態の構成要素は、幾つかの異なる向きで位置決めすることができるので、方向を示す用語は、例示の目的のものであり、なんら限定するものではない。本発明の保護範囲から逸脱することなく、別の実施形態を使用することもでき、構造的又は論理的な変更を行うこともできることを理解されたい。本明細書で述べる様々な例示的実施形態の特徴は、特に明記しない限り、組み合わせることができることを理解されたい。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本発明の保護範囲は、添付の特許請求の範囲によって定義される。
【００４８】
本明細書の範囲内で、「接続され」、「連結され」、及び「結合され」という概念は、直接的及び間接的な接続、直接的又は間接的な連結、及び直接的又は間接的な結合を述べるために使用される。図中、同一又は同様の要素には、適宜、同一の参照符号が付されている。
【００４９】
図２Ａ及び図２Ｂはそれぞれ、様々な例示的実施形態によるシステムオンチップ２００の概略図を示す。
【００５０】
図２Ａに示すように、システムオンチップ２００は、複数の制御回路領域１２８、１３０を有する制御回路１０２を備えることができる。例えば、複数の制御回路領域は、制御回路１０２のＣＰＵ１２８又は他のリソース１３０を備えることができ、例えば相互接続１４０、メモリ１４２、又は別のリソース、例えば制御回路の仮想機械、診断ハードウェア、及び／又はデバッグハードウェアでよく、又はそれらを備えることができる（これについては、図１Ｂ又は図１Ｃの対応する同様の制御回路１０２を参照のこと）。各制御回路領域は、例えば、そのアドレス領域によって識別可能であり得る。
【００５１】
制御回路１０２は、デバイス（図示せず）を制御するように設計されていることがある。デバイスは、本質的に、典型的には制御回路１０２によって制御又は調整される任意の各デバイスでよく、例えば、車両又は機械のモータ、医療機器、キャッシュレジスタシステムなどでよい。
【００５２】
システムオンチップ２００は、さらに、セキュリティ回路（暗号セキュリティ回路又は短縮してセキュリティ回路と呼ぶ）２２０を備えることができる。セキュリティ回路２２０は、例えば、ハードウェアセキュリティモジュール（ＨＳＭ）２２０として形成されていることがある。
【００５３】
本明細書では、「セキュアな」という概念は、情報セキュリティを表し、機能的なセキュリティは表さない。
【００５４】
ＨＳＭは、暗号処理及びセキュリティ用途の効率的でありセキュアな実行を保証する、論理的に分離され、時として物理的にも分離されたハードウェアユニットである。
【００５５】
セキュリティ回路２２０は、例えばデバイスの動作時に必要となり得る（データ）セキュリティの面で重要な機能を制御回路に提供するように設計されていることがある。セキュリティの面で重要な機能は、例えば、乱数、鍵、及びＰＩＮの生成、及び／又はデータの暗号化と解読を含むことができる。
【００５６】
セキュリティの面で重要な機能を実行するために、セキュリティ回路２２０は、プロセッサ１１８（ＣＰＵ、本明細書ではセキュリティＣＰＵとも呼ぶ）に加えて、（暗号鍵を記憶するための）個別にセキュリティ保護されたキーメモリ１４４と、暗号処理用（例えば、ハッシュ関数用、及び／又は対称及び／又は非対称暗号用）のハードウェアアクセラレータ１４６とを備えることができる。
【００５７】
セキュリティ回路２２０は、さらに、専用リソースへ、例えば制御回路１０２内のＣＰＵ及び／又はメモリに対する個別の読出し／書込みアクセスを提供することができる。
【００５８】
様々な例示的実施形態において、セキュリティ回路２２０には、さらに、サイドチャネル攻撃から保護するためのメカニズムが装備されていることがある。セキュリティ標準（ＦＩＰＳ  １４０−１又はコモンクライテリアなど）が、ＨＳＭの認証に関する基準を規定している。
【００５９】
自動車環境におけるＨＳＭの現在の用途は、「セキュアブート」、セキュアデータ通信（ＣＡＮ、イーサネット、及びＬＩＮを介する）、及びメモリ保護（ＩＰセキュリティ用）である。
【００６０】
上述したように、例えば現場で、制御回路１０２及び／又はそれによって制御されるデバイスを監視することが望ましい又は必要であり得る。
【００６１】
この目的で、診断システム１０４が提供されている又は提供されることがある。
【００６２】
システムオンチップ２００（特にセキュリティ回路２２０）と診断システム１０４との間の（情報技術的な意味で）セキュアな通信を可能にする（セキュアな）通信パスを診断システム１０４とシステムオンチップ２００との間に提供するために、診断システム１０４からセキュリティ回路２２０にアクセス権限証明書が伝達されることがある。
【００６３】
セキュリティ回路２２０は、キーメモリ１４４及びハードウェアアクセラレータ１４６によってアクセス権限証明書を認証し、それに基づいて、セキュリティ回路２２０の外部（場合によってはさらにシステムオンチップ２００の外部）に配置された診断システム１０４とのセキュリティ保護された通信のための（セキュアな）通信パスを提供するように設計されていることがある。
【００６４】
セキュリティ回路２２０は、さらに、アクセス権限証明書を評価して、制御回路１０２の制御回路領域１２８、１３０に対する様々なアクセスオプションの中からの選択をアクセス権限証明書が可能にするように設計されていることがある。
【００６５】
例えば、セキュリティ回路２２０は、各制御回路領域１２８、１３０に対して、読出しアクセス（のみ）若しくは読出し・書込みアクセスを可能にする、又はアクセスを阻止するように設計されていることがある。
【００６６】
キーメモリ１４４に記憶されている情報によって（及び場合によってはハードウェアアクセラレータ１４６の補助によって）認証されたアクセス権限証明書は、例えばセキュリティＣＰＵ１１８によって、セキュリティ回路２２０に保存されているアクセス権限へのアクセス権限証明書の割当てと比較されることがある。
【００６７】
セキュリティ回路２２０は、割り当てられたアクセス権限に基づいて、制御回路１０２の少なくとも１つの選択された領域１２８、１３０に対する読出しアクセス若しくは読出し・書込みアクセスを可能にする、又はアクセスを阻止するように設計されていることがある。
【００６８】
セキュリティ回路２２０は、制御回路１０２の少なくとも１つの選択された領域１２８、１３０に対する読出しアクセス又は読出し・書込みアクセスを実行するように設計されていることがある。
【００６９】
制御回路１０２の少なくとも１つの選択された領域１２８、１３０に対する読出しアクセス又は読出し・書込みアクセスは、通信パスを介して診断システム１０４からセキュリティ回路２２０に伝達される少なくとも１つの診断命令を実行可能であるように構成されていることがある。
【００７０】
これは以下のことを意味する。「スイッチ」１２６を開いた後、診断又はデバッグ命令及び情報が診断システム１０４とホストシステム１０２との間で直接交換される図１Ａ〜１Ｃに関連して説明したシステムオンチップ１００とは異なり、様々な例示的実施形態によるシステムオンチップ２００では、診断システムは、その監視及び／又はデバッグ命令をセキュリティ回路２２０に伝達し、これらの命令は、診断命令の対象となる各制御回路領域１２８、１３０に関する読出し権限又は読出し・書込み権限を考慮に入れて、セキュリティ回路２２０から制御回路１０２に伝達される。
【００７１】
セキュリティ回路２２０は、ソフトウェアによって、診断システム１０４とのセキュリティ保護された通信を実行するように、及び／又は制御回路１０２に診断命令を提供するように設計されていることがある。例えば、ソフトウェアは、診断システム１０４とのセキュリティ保護された通信を実行するため又は制御回路１０２に診断命令を提供するためにそれぞれソフトウェアパッケージを備えることができる。
【００７２】
様々な例示的実施形態において、セキュリティ回路２２０のＣＰＵ１１８又は仮想機械は、ソフトウェアを実行するように設計されていることがある。
【００７３】
（通信）ソフトウェアは、ソフトウェア通信スタック、例えばイーサネットソフトウェア通信スタックを備えることができる。
【００７４】
ＣＰＵ１１８又は仮想機械は、制御回路１０２の少なくとも１つの選択された領域１２８、１３０に対するアクセスのための複数のマスタタグをサポートするように設計されていることがある。これにより、診断システムに、ＣＰＵ１１８又は仮想機械が基本的に備えているアクセスオプションよりも少ない又はそれらとは異なるアクセスオプションを提供することが可能にされ得る。
【００７５】
これは以下のことを意味する。セキュリティ回路２２０又はＣＰＵ（若しくは仮想機械）は、基本的に、書込みアクセスによって制御回路１０２の選択された領域１２８、１３０それぞれにアクセスするように設計されていることがあるが、制御回路１０２の個々の又は全ての選択された領域１２８、１３０へのアクセスモードを例えば読取りアクセスのみ又はアクセス禁止に制限するために、複数のマスタタグが提供されている。
【００７６】
既に述べたように、診断システム１０４によって要求されたアクセスのセキュリティ権限のチェックが、セキュリティ回路２２０によって行われる。その結果行われる制御回路１０２へのアクセスに関して、マスタタグによって、制御回路自体において安全性権限をチェックすることができ、それにより、制御回路１０２を危険なアクセスから保護することができる。ハードウェア又はソフトウェアエラーによりセキュリティ回路２２０が不正アクセスを行い、危険な結果をもたらすことを排除することができないため、これは必要である。
【００７７】
セキュリティ回路２２０は、読出しアクセスを可能にするために、所定のマスタタグに関して、いわゆるアクセス許可レジスタ内でそのマスタタグに割り当てられた位置に、読出しアクセス権に対応する値を入力するように設計されていることがある。
【００７８】
同様に、セキュリティ回路２２０は、読出し・書込みアクセスを可能にするために、所定のさらなるマスタタグに関して、アクセス許可レジスタ内で上記さらなるマスタタグに割り当てられた位置に、読出し・書込みアクセス権に対応する値を入力するように設計されていることがある。
【００７９】
様々な例示的実施形態において、このアクセス制御は、アクセス許可レジスタの上書きによっても保証されていることがあり、その際、情報技術的なセキュリティ要求を満たすだけでなく、さらにデバイスの動作安全性も保証するように、マスタタグによって指定されているマスタに対してのみ上書きが許可される。様々な例示的実施形態において、対応する情報を、例えば、バスシステムにおけるサイド情報又はインバンド情報として伝送することができる。これらの例示的実施形態は、構成／実現が容易であるが、マスタ（又は対応するソフトウェア）が高い（例えば最高の）安全性要件と高い（例えば最高の）セキュリティ要件とを満たさなければならないので比較的高価である。
【００８０】
そうではなく、様々な例示的実施形態において、制御回路１０２の安全性ＣＰＵ（例えば、ＣＰＵ１２８又はさらなるＣＰＵが安全性ＣＰＵとして設計されていることがある）は、初期化段階で、例えばアクセスの権利を付与されているリソース１２８、１３０へのマスタタグの割当てとして、アクセス権限をロック（固定）するように構成することができる。セキュリティ回路１１８は、それに関連するモジュールでのアクセス権限をチェックするように設計されていることがある。
【００８１】
どちらの構成も、動作安全性（安全性）もデータ安全性（セキュリティ）も保証するロックを備えたシステムオンチップを提供することを可能にする。
【００８２】
様々な例示的実施形態において、診断システムへの通信パスは、ネットワークを備えることができる。様々な例示的実施形態において、ネットワークは、少なくとも一部、ワイヤレスデータ伝送を含むことができる。
【００８３】
様々な例示的実施形態において、制御回路１０２の少なくとも１つの選択された領域１２８、１３０は、制御回路の複数の選択された領域を含むことができる。
【００８４】
セキュリティ回路２２０は、制御回路１０２の複数の選択された領域１２８、１３０それぞれについて個別に、読出しアクセスと読出し・書込みアクセスとの間の選択を行うように設計されていることがある。
【００８５】
言い換えると、制御回路１０２の選択された領域１２８、１３０の第１の部分（例えば、１つもない、１つ、又は複数）に対しては読出しアクセス（のみ）が可能にされている又は可能にされることがあり、同時に、第１の部分とは異なる、制御回路１０２の選択された領域１２８、１３０の第２の部分（例えば、１つもない、１つ、又は複数）に対しては読出し・書込みアクセスが可能にされている又は可能にされることがある。
【００８６】
様々な例示的実施形態において、セキュリティ回路２２０は、認証が失敗した場合に読出しアクセスも読出し・書込みアクセスも可能にしないように設計されていることがある。場合によっては、セキュリティ回路２２０は、さらに、認証が失敗した場合に、例えばデバイスにおいてアラームを発動するように設計されていることがある。
【００８７】
様々な例示的実施形態において、セキュリティ回路２２０は、読出しアクセスと読出し・書込みアクセスとの間の選択の際に少なくとも１つの追加のパラメータを考慮するように設計されていることがある。追加のパラメータは、例えば、デバイスの動作安全性、デバイスの動作状態、及び／又は証明書の提供の時点に対する読出しアクセス又は読出し／書込みアクセスの重要性に関するものであり得る。
【００８８】
デバイスの動作安全性に対する読出しアクセス又は読出し／書込みアクセスの重要性の考慮は、以下のことを意味することがある。セキュリティ回路２２０が、読出しアクセスと読出し・書込みアクセスとの間の選択（或いはまたアクセスの完全な禁止）の際に、動作安全性に重要となり得るデバッグ命令（例えば「一時停止／停止」、「休止」など）と、監視機能のみを有する別のデバッグ命令（例えば、計数、追跡など）とを明確に区別するように設計されている。ここで、通常、動作安全性の面で重要な命令は、書込みアクセスを要求することがあり、監視機能に関しては、通常は読出しアクセスのみで十分であり得る。幾つかの場合には、例えば、読出し後に自動的に上書きされるメモリ（例えばメモリ１３０の１つ）からの読出しの際には、場合によっては、読出しアクセスのみでも、動作安全性の面で重要なものとして分類されていることがある。
【００８９】
デバイスの動作状態の考慮は、以下のことを意味することがある。セキュリティ回路２２０は、デバイスが第１の所定の動作状態にあるときには、制御回路１０２の全ての領域、又は制御回路１０２の選択された領域の少なくとも１つ又は複数に対する読出し・書込みアクセス（或いはまた動作安全性の面で重要な読出しアクセス）を完全に禁止し、及び／又はデバイスが第２の所定の動作状態にあるときには、制御回路１０２の全ての領域１２８、１３０、又は制御回路１０２の選択された領域１２８、１３０の少なくとも１つ又は複数に対する読出し・書込みアクセス（或いはまた動作安全性の面で重要な読出しアクセス）を可能にするように設計されていることがある。
【００９０】
第１の所定の動作状態は、「アクティブ」動作状態でよく、言い換えると、デバイスがアクティブである又は動作している動作状態でよく、例えば、稼働中のエンジンや動作中の診断医療機器などである。
【００９１】
第１の所定の動作状態は、「非アクティブ」動作状態でよく、言い換えると、デバイスが非アクティブである、若しくは動作していない、又は静止／休止状態にある動作状態でよく、例えば、修理のために工場にある自動車両などである。
【００９２】
上述した基準に基づいて、システムオンチップ２００に関して様々な診断モードが生成されることがある。
【００９３】
例えば、いわゆる「セーフイネーブル」モードが提供されることがあり、このモードでは、制御回路１０２又はデバイスの状態の監視のみが可能であるようにアクセス権限が調節されている（読出し権限のみ、又はさらには読出し後の上書きを除外した読出し権限のみ）。
【００９４】
このモードで使用される場合、いわゆるオンチップトレースシステム（診断回路（デバッグ及びトレースシステムＤＴＳ）２９０の一部）のみが、書込みアクセスによって構成される必要がある。この場合、例えばマスタタグを使用して、オンチップトレースシステムがセキュリティ回路２２０のみによって構成可能であるように、アクセス権限のあるマスタの構成が調節されていることがある。これにより、例えばＣＰＵ１２８の１つで実行されているマルウェアがＤＴＳ２９０を使用して、トレースシステムによって制御システム１０２、特にソフトウェア及びデータを分析することはできないことが保証されている又は保証されることがある。
【００９５】
そのようなモードは、例えば、デバイスの動作中に調節されている又は調節されることがある。ここで、アクセスは、例えばクラウドによって安全な（「安全且つセキュアな」）遠隔診断のために使用されることがある。
【００９６】
さらなる例として、いわゆる「特権デバッグモード」が提供されることがあり、このモードでは、読出し権限及びまた書込み権限に加えて、選択された権限のみが割り当てられていることがある。したがって、制御回路１０２又はデバイスの状態の監視に加えて、例えば個々のアクセス権限者によるデバッグも可能にされている又は可能にされることがある。そのようなモードは、例えば、デバイスのテスト動作中に調節されている又は調節されることがある。このモード又は同様のモードにより、例えばデバイスのネットワーク（例えば自動車両ネットワーク）への直接のアクセス時に、例えばセキュアな（主に情報技術的にセキュアな）遠隔デバッグが可能にされ得る。
【００９７】
ＳｏＣ２００の製造及び／又はＳｏＣ２００とデバイスとの接続中、又はその後、アクセス権限を制限しないことが有意義又は必要であり得る。そのような「セットアップ」又は「インストールモード」では、制御回路１０２への本質的に無制限の読出し・書込みアクセスが可能にされていることがある。
【００９８】
証明書の提供の時点の考慮は、例えば、製造後又はメンテナンス／修理後の限られた期間にわたって情報を取り出すことができるようにするために、限られた有効期間を有する証明書を提供することを可能にすることができる。
【００９９】
システムオンチップ２００は、診断システム１０４、セキュリティ回路２２０、及び／又は制御回路１０２の命令に従って通信パスを閉じるように設計されていることがある。システムオンチップ２００は、さらに、通信パスを閉じた後に再起動を実行するように設計されていることがある。
【０１００】
様々な例示的実施形態による図２Ｂに示されるシステムオンチップ２００は、その例示のためのものであり、セキュリティ回路２２０は、例えば通信（ＣＯＭ）周辺機器１４０によって、例えばイーサネットを介して、チップ全体にアクセスすることができ、セキュアな通信パスを提供する。これは以下のことを意味する。診断システム１０４（図示せず）が、図２ＢでのＳｏＣ２００の外部からＣＯＭ周辺機器と接続される。言い換えると、ＣＰＵは、分析ツールとしての診断システム１０４の外部ホストと通信するために、各通信（ＣＯＭ）周辺機器１４０、例えばイーサネットを使用することができる。
【０１０１】
さらに、セキュリティ回路２２０が、制御回路１０２の診断のためのシステム（例えば、例えばＣＰＵ上に提供される又は仮想機械の一部としてのソフトウェア）を提供することが例示されている。診断回路２９０は、本明細書ではＤＴＳと呼ぶ。図２Ｂには、一方としてのセキュリティ回路２２０及び通信（ＣＯＭ）周辺機器１４０と他方としてのＤＴＳ２９０との特別な接続が示されているが、これらのデータ接続は、従来のオンチップバス又はネットワークを介して提供されることもある。
【０１０２】
この場合、例えばＣＰＵ１２８の１つで実行されているマルウェアが診断回路（ＤＴＳ）２９０を使用することができないことが保証されている又は保証される必要がある。したがって、アクセス権限のあるマスタの構成は、セキュリティの観点から信頼できる全てのマスタに使用を制限することを許可しなければならない。
【０１０３】
このとき、このトレースシステムは、セキュリティ回路のみによってのみ構成可能でよい。そうでないと、ＣＰＵ１２８のいずれかで実行されているマルウェアが、トレースシステムを用いて制御回路、特にソフトウェア及びデータを分析するために使用されることがある。
【０１０４】
まとめると、ネットワークを介して外部ツールソフトウェアと通信し、外部ツールソフトウェアからの命令に従って診断及びデバッグハードウェアリソースを制御するセキュリティＣＰＵ又はセキュリティ仮想機械上でソフトウェアが実行されるシステムが提供される。ここで、通信は、そのデータセキュリティに関してセキュリティ保護されている、すなわち例えば認証及び／又は暗号化されていることがある。
【０１０５】
ソフトウェアは、様々な例示的実施形態において、データ（例えば監視／追跡データ）をアップロード及び／又はダウンロードし、ブレークポイントを設定し、監視システムを構成するように設計されていることがある。
【０１０６】
様々な例示的実施形態において、異なる権限レベルが事前に取り決められていることがあり、次いで、権限レベルに応じて、許可されるアクションの範囲が（例えばセキュリティ回路２２０によって）制限されている又は制限されることがある。
【０１０７】
例えば上述したように、動作安全性の面で重要なデバッグアクション（一時停止、休止など）と他のデバッグアクション（計数、追跡など）とを明確に分けるために、各権限レベルに応じて調節可能な、許可されるアクションの範囲が使用されることがある。
【０１０８】
様々な例示的実施形態において、システムオンチップによって、アクション及び追跡の範囲を仮想機械レベルに限定することを可能にする追跡システムが提供されることがある。これは、例えば、特定の仮想機械に関するプログラム及び／又はデータトレースのみが可能であることを意味することができる。
【０１０９】
様々な例示的実施形態において、認証に使用される証明書用の鍵が静的又は動的に変更されることがある（例えば、一般的に取り決められている鍵配布プロトコルに従って）。
【０１１０】
セキュリティ回路２２０のセキュリティＣＰＵ１１８によって制御回路に診断命令が提供されることによって、一方では、この目的のために特別に用意されるＣＰＵは必要とされない。しかし他方で、セキュリティＣＰＵ１１８は、制御回路１０２のＣＰＵ２２８から独立しており、したがってデバッグ時に場合によっては全てのＣＰＵ１２８を停止させることができ、それによって診断ソフトウェアが故障することはない。
【０１１１】
図３は、様々な例示的実施形態によるシステムオンチップを動作させるための方法の流れ図３００を示す。
【０１１２】
この方法は、複数の制御回路領域を有する制御回路によってデバイスを制御するステップ（３１０）と、セキュリティ回路とセキュリティ回路の外部に配置されている診断システムとの間のセキュリティ保護された通信のための通信パスを提供するステップであって、セキュリティ回路が、個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを備え、キーメモリ及びハードウェアアクセラレータによって、セキュリティ保護された通信のための通信パスを提供するように設計されている、ステップ（３２０）と、セキュリティ回路に提供され、キーメモリに記憶されている情報によって認証された証明書に応じて、制御回路の少なくとも１つの選択された領域について、読出しアクセス又は読出し・書込みアクセスが保証可能であるかどうかを判断するステップ（３３０）と、セキュリティ回路によって、制御回路領域の少なくとも１つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするステップ（３４０）と、読出しアクセス又は読出し・書込みアクセスを実行するステップ（３５０）とを含む。
【０１１３】
以下、まとめとして、幾つかの例示的実施形態を提示する。
【０１１４】
例示的実施形態１は、システムオンチップである。このシステムオンチップは、複数の制御回路領域を有する制御回路であって、デバイスを制御するように設計されている制御回路と、個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを含むセキュリティ回路とを備え、セキュリティ回路が、制御回路領域の少なくとも１つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするように設計されており、セキュリティ回路が、さらに、キーメモリ及びハードウェアアクセラレータによって、セキュリティ回路外に配置されている診断システムとのセキュリティ保護された通信のための通信パスを提供し、セキュリティ回路に提供され、キーメモリに記憶されている情報によって認証された証明書に応じて、制御回路の少なくとも１つの選択された領域に対する読出しアクセスと読出し・書込みアクセスとの間の選択を行い、読出しアクセス又は読出し・書込みアクセスを実行するように設計されている。
【０１１５】
実施形態２は、制御回路の少なくとも１つの選択された領域に対する読出しアクセス又は読出し・書込みアクセスが、通信パスを介して診断システムからセキュリティ回路に伝達される少なくとも１つの診断命令を実行可能であるように構成されている、実施形態１に記載のシステムオンチップである。
【０１１６】
実施形態３は、セキュリティ回路が、ソフトウェアによって、セキュリティ保護された通信を実行するように、及び／又は制御回路に診断命令を提供するように設計されている、実施形態２に記載のシステムオンチップである。
【０１１７】
実施形態４は、セキュリティ回路が、ソフトウェアを実行するように設計されているＣＰＵ又は仮想機械を備える、実施形態３に記載のシステムオンチップである。
【０１１８】
実施形態５は、ソフトウェアが、ソフトウェア通信スタックを備える、実施形態３又は４に記載のシステムオンチップである。
【０１１９】
実施形態６は、ソフトウェアが、イーサネットソフトウェア通信スタックを備える、実施形態３〜５のいずれか１つに記載のシステムオンチップである。
【０１２０】
実施形態７は、ＣＰＵ又は仮想機械が、制御回路の少なくとも１つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されており、制御回路の選択された領域が、マスタタグに基づいてアクセスを拒む又は可能にするように設計されている、実施形態４〜６のいずれか１つに記載のシステムオンチップである。
【０１２１】
実施形態８は、通信パスがネットワークを備える、実施形態１〜７のいずれか１つに記載のシステムオンチップである。
【０１２２】
実施形態９は、ネットワークが、少なくとも一部、ワイヤレスデータ伝送を含む、実施形態８に記載のシステムオンチップである。
【０１２３】
実施形態１０は、制御回路の少なくとも１つの選択された領域が、制御回路の複数の選択された領域を含み、セキュリティ回路が、制御回路の複数の選択された領域それぞれについて個別に、読出しアクセスと読出し・書込みアクセスとの間の選択を行うように設計されている、実施形態１〜９のいずれか１つに記載のシステムオンチップである。
【０１２４】
実施形態１１は、セキュリティ回路が、さらに、認証が失敗した場合に読出しアクセスも読出し・書込みアクセスも可能にしないように設計されている、実施形態１〜１０のいずれか１つに記載のシステムオンチップである。
【０１２５】
実施形態１２は、セキュリティ回路が、認証が失敗した場合にアラームを発動するように設計されている、実施形態１〜１１のいずれか１つに記載のシステムオンチップである。
【０１２６】
実施形態１３は、セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択の際に少なくとも１つの追加のパラメータを考慮するように設計されている、実施形態１〜１２のいずれか１つに記載のシステムオンチップである。
【０１２７】
実施形態１４は、追加のパラメータが、デバイスの動作安全性、デバイスの動作状態、及び／又は証明書の提供の時点に対する読出しアクセス又は読出し／書込みアクセスの重要性に関するものである、実施形態１３に記載のシステムオンチップである。
【０１２８】
実施形態１５は、デバイスの動作状態の考慮が、セキュリティ回路が、デバイスが第１の所定の動作状態にあるとき、少なくとも、制御回路の全ての領域に対する、又は制御回路の選択された領域の少なくとも１つ若しくは複数に対する読出し・書込みアクセスを完全に禁止し、及び／又は、デバイスが第２の所定の動作状態にあるとき、制御回路の全ての領域又は少なくとも制御回路の選択された領域の１つ若しくは複数に対する読出し・書込みアクセスを可能にするように設計されていることを意味する、実施形態１４に記載のシステムオンチップである。
【０１２９】
実施形態１６は、第１の動作状態が、「アクティブであり、機能的にセキュアな」動作状態である、実施形態１５に記載のシステムオンチップである。
【０１３０】
実施形態１７は、第１の動作状態が、「アクティブであり、機能的セキュリティが制限された／機能的セキュリティがない」動作状態である、実施形態１５に記載のシステムオンチップである。
【０１３１】
実施形態１８は、セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択の際に、動作安全性の面で重要な読出しアクセス又は読出し・書込みアクセスと、監視のみの、動作安全性の面で重要でない読出しアクセス又は読出し・書込みアクセスとを区別するように設計されている、実施形態１〜１７のいずれか１つに記載のシステムオンチップである。
【０１３２】
実施形態１９は、少なくとも１つの選択された領域が、制御回路の仮想機械及び／又は診断ハードウェア及び／又はデバッグハードウェアを備える、実施形態１〜１８のいずれか１つに記載のシステムオンチップである。
【０１３３】
実施形態２０は、診断ハードウェア及び／又はデバッグハードウェアが、セキュリティ回路のみによって使用可能であるように構成可能である、実施形態１９に記載のシステムオンチップである。
【０１３４】
実施形態２１は、さらに、診断システム、セキュリティ回路、及び／又は制御回路の命令に従って通信パスを閉じるように設計されている、実施形態１〜２０のいずれか１つに記載のシステムオンチップである。
【０１３５】
実施形態２２は、システムオンチップを動作させるための方法である。この方法は、複数の制御回路領域を有する制御回路によってデバイスを制御するステップと、セキュリティ回路とセキュリティ回路の外部に配置されている診断システムとの間のセキュリティ保護された通信のための通信パスを提供するステップであって、セキュリティ回路が、個別にセキュリティ保護されたキーメモリ及び暗号処理用のハードウェアアクセラレータを備え、キーメモリ及びハードウェアアクセラレータによって、セキュリティ保護された通信のための通信パスを提供するように設計されている、ステップと、セキュリティ回路に提供され、キーメモリに記憶されている情報によって認証された証明書に応じて、制御回路の少なくとも１つの選択された領域について、読出しアクセス又は読出し・書込みアクセスが保証可能であるかどうかを判断するステップと、セキュリティ回路によって、制御回路領域の少なくとも１つに対する読出しアクセスのみ又は読出し・書込みアクセスを選択的に可能にするステップと、読出しアクセス又は読出し・書込みアクセスを実行するステップとを含む。
【０１３６】
実施形態２３は、制御回路の少なくとも１つの選択された領域に対する読出しアクセス又は読出し・書込みアクセスが、通信パスを介して診断システムからセキュリティ回路に伝達される少なくとも１つの診断命令を実行可能であるように構成されている、実施形態２２に記載の方法である。
【０１３７】
実施形態２４は、セキュリティ回路が、ソフトウェアによって、セキュリティ保護された通信を実行するように設計されている、実施形態２２又は２３に記載の方法である。
【０１３８】
実施形態２５は、セキュリティ回路が、ソフトウェアを実行するように設計されているＣＰＵ又は仮想機械を備える、実施形態２４に記載の方法である。
【０１３９】
実施形態２６は、ソフトウェアが、ソフトウェア通信スタックを備える、実施形態２４又は２５に記載の方法である。
【０１４０】
実施形態２７は、ソフトウェアが、イーサネットソフトウェア通信スタックを備える、実施形態２４〜２６のいずれか１つに記載の方法である。
【０１４１】
実施形態２８は、ＣＰＵ又は仮想機械が、制御回路の少なくとも１つの選択された領域にアクセスするための複数のマスタタグをサポートするように設計されており、制御回路の選択された領域が、マスタタグに基づいてアクセスを拒む又は可能にするように設計されている、実施形態２５〜２７のいずれか１つに記載の方法である。
【０１４２】
実施形態２９は、通信パスがネットワークを備える、実施形態２２〜２８のいずれか１つに記載の方法である。
【０１４３】
実施形態３０は、ネットワークが、少なくとも一部、ワイヤレスデータ伝送を含む、実施形態２９に記載の方法である。
【０１４４】
実施形態３１は、制御回路の少なくとも１つの選択された領域が、制御回路の複数の選択された領域を含み、セキュリティ回路が、制御回路の複数の選択された領域それぞれについて個別に、読出しアクセスと読出し・書込みアクセスとの間の選択を行うように設計されている、実施形態２２〜３０のいずれか１つに記載の方法である。
【０１４５】
実施形態３２は、セキュリティ回路が、さらに、認証が失敗した場合に読出しアクセスも読出し・書込みアクセスも可能にしないように設計されている、実施形態２２〜３１のいずれか１つに記載の方法である。
【０１４６】
実施形態３３は、セキュリティ回路が、認証が失敗した場合にアラームを発動するように設計されている、実施形態２２〜３２のいずれか１つに記載の方法である。
【０１４７】
実施形態３４は、セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択の際に少なくとも１つの追加のパラメータを考慮するように設計されている、実施形態２２〜３３のいずれか１つに記載の方法である。
【０１４８】
実施形態３５は、追加のパラメータが、デバイスの動作安全性、デバイスの動作状態、及び／又は証明書の提供の時点に対する読出しアクセス又は読出し／書込みアクセスの重要性に関するものである、実施形態３４に記載の方法である。
【０１４９】
実施形態３６は、デバイスの動作状態の考慮が、セキュリティ回路が、デバイスが第１の所定の動作状態にあるとき、少なくとも、制御回路の全ての領域に対する、又は制御回路の選択された領域の少なくとも１つ若しくは複数に対する読出し・書込みアクセスを完全に禁止し、及び／又は、デバイスが第２の所定の動作状態にあるとき、制御回路の全ての領域又は少なくとも制御回路の選択された領域の１つ若しくは複数に対する読出し・書込みアクセスを可能にするように設計されている、実施形態３５に記載の方法である。
【０１５０】
実施形態３７は、第１の動作状態が、「アクティブであり、機能的にセキュアな」動作状態である、実施形態３６に記載の方法である。
【０１５１】
実施形態３８は、第１の動作状態が、「アクティブであり、機能的セキュリティが制限された／機能的セキュリティがない」動作状態である、実施形態３６に記載の方法である。
【０１５２】
実施形態３９は、セキュリティ回路が、読出しアクセスと読出し・書込みアクセスとの間の選択の際に、動作安全性の面で重要な読出しアクセス又は読出し・書込みアクセスと、監視のみの、動作安全性の面で重要でない読出しアクセス又は読出し・書込みアクセスとを区別するように設計されている、実施形態２２〜３８のいずれか１つに記載の方法である。
【０１５３】
実施形態４０は、少なくとも１つの選択された領域が、制御回路の仮想機械及び／又は診断ハードウェア及び／又はデバッグハードウェアを備え、制御回路の選択された領域が、マスタタグに基づいてアクセスを拒む又は可能にするように設計されている、実施形態２２〜３９のいずれか１つに記載の方法である。
【０１５４】
実施形態４１は、診断システム、セキュリティ回路、及び／又は制御回路の命令に従って通信パスを閉じるステップをさらに含む、実施形態２２〜４０のいずれか１つに記載の方法である。
【符号の説明】
【０１５５】
１００  システムオンチップ
１０２  ホストシステム
１０４  外部デバッグデバイス
１０６、１３２、１３２Ｄ  入力ポート
１０８  証明書
１１０  インターフェース
１１２  ハードウェアセキュリティモジュール
１１４  ＲＯＭライブラリ
１１６  デバッグ制御ユニット
１１８  セキュリティプロセッサ
１２０  データメモリ
１２６  スイッチ
１２８  ＣＰＵ
１３０、１４０、１４２  システムリソース
１３６  モジュール
【図１Ａ】
2020091849.tif 000003
【図１Ｂ】
2020091849.tif 000004
【図１Ｃ】
2020091849.tif 000005
【図２Ａ】
2020091849.tif 000006
【図２Ｂ】
2020091849.tif 000007
【図３】
2020091849.tif 000008
【外国語明細書】
2020091849000001.pdf
2020091849000002.pdf
2020091849000003.pdf
2020091849000004.pdf