(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024068626
(43)【公開日】2024-05-20
(54)【発明の名称】チップのセキュアブート制御方法、装置、電子機器及び記憶媒体
(51)【国際特許分類】
G06F 21/57 20130101AFI20240513BHJP
H04L 9/32 20060101ALI20240513BHJP
【FI】
G06F21/57 350
H04L9/32 200A
H04L9/32 200E
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023147420
(22)【出願日】2023-09-12
(31)【優先権主張番号】202211394929.8
(32)【優先日】2022-11-08
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】522378775
【氏名又は名称】北京地平▲線▼信息技▲術▼有限公司
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】チンユー リウ
(72)【発明者】
【氏名】ウェンシン リー
(72)【発明者】
【氏名】ジン リー
(72)【発明者】
【氏名】ボー ドン
(72)【発明者】
【氏名】イーチャオ ルー
(72)【発明者】
【氏名】ヂェン パン
(57)【要約】
【課題】
チップのセキュアブート制御方法、装置、電子機器及び記憶媒体を提供する。
【解決手段】
チップのセキュアブート制御方法は、チップブート手順の予め設定された段階で、ハードウェアセキュリティモジュールが取得した復号結果から、予め設定された段階で検証すべき第1ミラーデータ及び第1ミラーデータに対応する第1検証コードを決定するステップと、第1ミラーデータに基づいて第2検証コードを決定するステップと、第2検証コードと第1検証コードとを比較して、比較結果を取得するステップと、比較結果に基づいて、前記第1ミラーデータの完全性検証結果を決定するステップと、完全性検証結果に基づいて、予め設定された段階で、第1ミラーデータに対応するセキュアブートプログラムを実行するステップと、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
チップブート手順の予め設定された段階で、ハードウェアセキュリティモジュールが取得した復号結果から、前記予め設定された段階で検証すべき第1ミラーデータ及び前記第1ミラーデータに対応する第1検証コードを決定するステップと、
前記第1ミラーデータに基づいて第2検証コードを決定するステップと、
前記第2検証コードと前記第1検証コードとを比較して、比較結果を取得するステップと、
前記比較結果に基づいて、前記第1ミラーデータの完全性検証結果を決定するステップと、
前記完全性検証結果に基づいて、前記予め設定された段階で、前記第1ミラーデータに対応するセキュアブートプログラムを実行するステップと、を含む、
チップのセキュアブート制御方法。
【請求項2】
ハードウェアセキュリティモジュールが取得した復号結果から、前記予め設定された段階で検証すべき第1ミラーデータ及び前記第1ミラーデータに対応する第1検証コードを決定するステップの前に、さらに、
前記ハードウェアセキュリティモジュールと第1メモリとの間の通信ハンドシェイク信号を検出するステップと、
前記通信ハンドシェイク信号に基づいて、有効制御信号を決定するステップと、
前記有効制御信号に応答して、前記ハードウェアセキュリティモジュールが接続されたバスから前記ハードウェアセキュリティモジュールによって伝送される前記復号結果を取得するステップと、を含む請求項1に記載のチップのセキュアブート制御方法。
【請求項3】
ハードウェアセキュリティモジュールが取得した復号結果から、前記予め設定された段階で検証すべき第1ミラーデータ及び前記第1ミラーデータに対応する第1検証コードを決定するステップの前に、さらに、
外部記憶装置から前記予め設定された段階に対応する暗号化ミラーデータをロードするステップと、
前記ハードウェアセキュリティモジュールが前記暗号化ミラーデータを復号して、前記復号結果を取得するように、前記暗号化ミラーデータを前記ハードウェアセキュリティモジュールに伝送するステップと、を含む請求項1に記載のチップのセキュアブート制御方法。
【請求項4】
前記復号結果を第1メモリに記憶するステップをさらに含み、
前記第2検証コードと前記第1検証コードとを比較して、比較結果を取得するステップは、
第1レジスタに割り込み完了信号を書き込むステップと、
前記第1レジスタにおける前記割り込み完了信号を検出したことに応答して、前記第1メモリから前記第1検証コードを取得するステップと、
前記第2検証コードと前記第1検証コードとを比較して、前記比較結果を取得するステップと、を含む、
請求項3に記載のチップのセキュアブート制御方法。
【請求項5】
前記第1ミラーデータに基づいて第2検証コードを決定するステップは、
前記予め設定された段階に対応する検証アルゴリズム情報を含む事前設定された検証設定情報を取得するステップと、
前記検証設定情報及び前記第1ミラーデータに基づいて、前記第1ミラーデータの前記第2検証コードを生成するステップと、を含む請求項1に記載のチップのセキュアブート制御方法。
【請求項6】
ハードウェアセキュリティモジュールが取得した復号結果から、前記予め設定された段階で検証すべき第1ミラーデータ及び前記第1ミラーデータに対応する第1検証コードを決定するステップの前に、さらに、
読み取り専用メモリから初期ブートプログラムを取得するステップと、
前記初期ブートプログラムを実行して、初期検証設定情報を取得するステップと、
前記初期検証設定情報に基づいて、前記チップのセキュアブートに対して初期設定を行うステップと、
前記初期設定の完了に応答して、前記チップブート手順の前記予め設定された段階に入るステップと、を含む請求項1に記載のチップのセキュアブート制御方法。
【請求項7】
ハードウェアセキュリティモジュールに接続され、チップブート手順の予め設定された段階で、前記ハードウェアセキュリティモジュールが取得した復号結果から、前記予め設定された段階で検証すべき第1ミラーデータ及び前記第1ミラーデータに対応する第1検証コードを決定し、前記第1ミラーデータに基づいて第2検証コードを決定するハードウェアアクセラレーションモジュールと、
前記ハードウェアアクセラレーションモジュールに接続され、前記第2検証コードと前記第1検証コードとを比較して、比較結果を取得する第1処理モジュールと、
前記比較結果に基づいて、前記第1ミラーデータの完全性検証結果を決定する第2処理モジュールと、
前記完全性検証結果に基づいて、前記予め設定された段階で、前記第1ミラーデータに対応するセキュアブートプログラムを実行する第3処理モジュールと、を含む、
チップのセキュアブート制御装置。
【請求項8】
前記ハードウェアアクセラレーションモジュールは、バスモニタと、検証コード生成器と、を含み、
前記バスモニタは、バスのバイパスを介して前記ハードウェアセキュリティモジュールに接続され、前記ハードウェアセキュリティモジュールと第1メモリとの間の通信ハンドシェイク信号を検出し、前記通信ハンドシェイク信号に基づいて前記検証コード生成器に、前記ハードウェアセキュリティモジュールによって伝送される前記復号結果を採集するように前記検証コード生成器に通知するための有効制御信号を送信し、
前記検証コード生成器は、前記バスモニタに接続され、さらに、バスのバイパスを介して前記ハードウェアセキュリティモジュールに接続され、前記バスモニタの前記有効制御信号に応答して、前記ハードウェアセキュリティモジュールが接続されたバスから前記ハードウェアセキュリティモジュールによって伝送される前記復号結果を採集し、前記復号結果における前記第1ミラーデータに基づいて前記第2検証コードを決定する、請求項7に記載のチップのセキュアブート制御装置。
【請求項9】
ロードモジュールと、前記ハードウェアセキュリティモジュールと、をさらに含み、
前記ロードモジュールは、外部記憶装置から前記予め設定された段階に対応する暗号化ミラーデータをロードし、
前記ハードウェアセキュリティモジュールは、前記ロードモジュールに接続され、前記暗号化ミラーデータを復号して、前記復号結果を取得する、請求項7に記載のチップのセキュアブート制御装置。
【請求項10】
第1メモリをさらに含み、
前記ハードウェアセキュリティモジュールは、さらに、前記復号結果を前記第1メモリに記憶し、
前記ハードウェアアクセラレーションモジュールは、さらに、
前記第1処理モジュールに接続され、割り込み完了信号を記憶する第1レジスタを含み、
前記ハードウェアアクセラレーションモジュールは、さらに、前記第2検証コードを決定した後、前記第1レジスタに前記割り込み完了信号を書きこんで、前記第1処理モジュールに前記第2検証コードが生成されたことを通知し、
前記第1処理モジュールは、さらに、前記第1レジスタにおける前記割り込み完了信号を検出したことに応答して、前記第1メモリから前記第1検証コードを取得し、前記第2検証コードと前記第1検証コードとを比較して、前記比較結果を取得する、請求項9に記載のチップのセキュアブート制御装置。
【請求項11】
前記ハードウェアアクセラレーションモジュールに接続され、前記予め設定された段階に対応する検証アルゴリズム情報を含む検証設定情報を記憶する第2レジスタをさらに含み、
前記ハードウェアアクセラレーションモジュールは、さらに、前記第2レジスタから前記検証設定情報を取得し、前記検証設定情報及び前記第1ミラーデータに基づいて、前記第1ミラーデータの前記第2検証コードを生成する、請求項7に記載のチップのセキュアブート制御装置。
【請求項12】
第2メモリと、初期処理モジュールと、をさらに含み、
前記第2メモリは、初期ブートプログラム及び前記ハードウェアアクセラレーションモジュールの初期検証設定情報を記憶し、
前記初期処理モジュールは、前記第2メモリに記憶されている前記初期ブートプログラムを実行して、初期ブート段階に入り、前記初期ブートプログラムに基づいて、前記第2メモリから前記初期検証設定情報を取得し、前記初期検証設定情報に基づいて前記ハードウェアアクセラレーションモジュールに対して初期化設定を行って、前記チップブート手順の前記予め設定された段階に入る、請求項7に記載のチップのセキュアブート制御装置。
【請求項13】
請求項1~6のいずれか1項に記載のチップのセキュアブート制御方法を実行するためのコンピュータプログラムが記憶されているコンピュータ可読記憶媒体。
【請求項14】
電子機器であって、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するメモリと、を含み、
前記プロセッサは、前記メモリから前記実行可能な命令を読み取り、前記命令を実行して請求項1~6のいずれか1項に記載のチップのセキュアブート制御方法を実行し、又は、
前記電子機器は、
請求項7~12のいずれか1項に記載のチップのセキュアブート制御装置を含む、電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、機能安全(Functional Safety)技術に関し、特に、チップのセキュアブート制御方法、装置、電子機器及び記憶媒体に関する。
【背景技術】
【0002】
インテリジェントドライブチップのセキュアブートは、主に、従来の車載MCU(Microcontroller Unit、マイクロコントローラーユニット)に基づいて実施され、具体的に言えば、HSM(Hardware Security Module、ハードウェアセキュリティモジュール)によってsecurity Boot(情報セキュアブート)が実施される。従来の車載MCUは、内蔵Flash(フラッシュメモリ)を使用するため、内部Flashに記憶されているデータに対して、boot(ブート)の手順で、記憶されているデータの署名検証操作(例えば、秘密鍵に基づく署名は、公開鍵によって検証される)を実行するだけでよく、記憶されているデータに対する暗号化と復号の操作に関わらないため、従来のMCUにおいて、Safety Boot(機能セキュアブート)の問題を考慮する必要がなく、HSMに対して追加の機能安全要求がない。しかし、インテリジェントドライブ技術の発展に伴い、インテリジェントドライブチップに高度な製造プロセスが広く使用され始め、Flashの内蔵を実現することができなくなり、そのため、現在の主流のインテリジェントドライブチップは、外部Flashの使用により不揮発性の記憶が実現され、セキュリティのニーズに応じて、外部Flashに記憶されるデータを暗号化して記憶する必要があり、インテリジェントドライブチップのセキュアブート手順において、記憶されているデータに対して署名検証操作を行う必要があるだけでなく、記憶されているデータに対して暗号化と復号の操作を行う必要もあり、HSMが復号を行う動作手順において、復号後のデータに機能安全に関連する障害が発生する可能性があり、インテリジェントドライブチップのセキュアブートに関する性能が低下しやすくなる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
上記のセキュアブートフローによるインテリジェントドライブチップのセキュアブートに関する性能の低下等の技術的問題を解決するために、本開示を提案する。本開示の実施例は、チップのセキュアブート制御方法、装置、電子機器及び記憶媒体を提供する。
【課題を解決するための手段】
【0004】
本開示の実施例のある態様によれば、チップのセキュアブート制御方法を提供し、当該方法は、チップブート手順の予め設定された段階で、ハードウェアセキュリティモジュールが取得した復号結果から、前記予め設定された段階で検証すべき第1ミラーデータ及び前記第1ミラーデータに対応する第1検証コードを決定するステップと、前記第1ミラーデータに基づいて第2検証コードを決定するステップと、前記第2検証コードと前記第1検証コードとを比較して、比較結果を取得するステップと、前記比較結果に基づいて、前記第1ミラーデータの完全性検証結果を決定するステップと、前記完全性検証結果に基づいて、前記予め設定された段階で、前記第1ミラーデータに対応するセキュアブートプログラムを実行するステップと、を含む。
【0005】
本開示の実施例の別の態様によれば、チップのセキュアブート制御装置を提供し、当該装置は、ハードウェアセキュリティモジュールに接続され、チップブート手順の予め設定された段階で、前記ハードウェアセキュリティモジュールが取得した復号結果から、前記予め設定された段階で検証すべき第1ミラーデータ及び前記第1ミラーデータに対応する第1検証コードを決定し、前記第1ミラーデータに基づいて第2検証コードを決定するハードウェアアクセラレーションモジュールと、前記ハードウェアアクセラレーションモジュールに接続され、前記第2検証コードと前記第1検証コードとを比較して、比較結果を取得する第1処理モジュールと、前記比較結果に基づいて、前記第1ミラーデータの完全性検証結果を決定する第2処理モジュールと、前記完全性検証結果に基づいて、前記予め設定された段階で、前記第1ミラーデータに対応するセキュアブートプログラムを実行する第3処理モジュールと、を含む。
【0006】
本開示の実施例の又の態様によれば、上記のいずれか1つの実施例に記載のチップのセキュアブート制御方法を実行するためのコンピュータプログラムが記憶されているコンピュータ可読記憶媒体を提供する。
【0007】
本開示の実施例の更なる態様によれば、電子機器を提供し、前記電子機器は、プロセッサと、前記プロセッサが実行可能な命令を記憶するメモリと、を含み、前記プロセッサは、前記メモリから前記実行可能な命令を読み取り、前記命令を実行して、上記のいずれか1つの実施例に記載のチップのセキュアブート制御方法を実施し、又は、前記電子機器は、上記のいずれか1つの実施例に記載のチップのセキュアブート制御装置を含む。
【発明の効果】
【0008】
本開示の上記の実施例にて提供されるチップのセキュアブート制御方法、装置、電子機器及び記憶媒体に基づいて、チップブート手順の予め設定された段階で、ハードウェアセキュリティモジュールが取得した復号結果における第1ミラーデータに対して完全性検証を行うことにより、ハードウェアセキュリティモジュールの復号操作が第1ミラーデータを損傷しないことを確保することができ、それにより、ハードウェアセキュリティモジュールの機能安全を保証することができ、チップブートのセキュリティを効果的に向上させる。
【0009】
以下、図面及び実施例により、本開示の技術的解決手段についてさらに詳細に説明する。
【図面の簡単な説明】
【0010】
本開示の上記及び他の目的、特徴や利点は、図面を参照しながら本開示の実施例についてより詳細に説明することにより、明らかになる。図面は、本開示の実施例の更なる理解を提供するために使用され、明細書の一部になり、本開示の実施例とともに本開示を説明するためのものであり、本開示を限定するものではない。図面において、同じ符号は、通常、同じ部材又はステップを表す。
【
図1】本開示にて提供されるチップのセキュアブート制御方法の例示的な適用シーンである。
【
図2】本開示のある例示的な実施例にて提供されるチップのセキュアブート制御方法の模式的なフローチャートである。
【
図3】本開示の別の例示的な実施例にて提供されるチップのセキュアブート制御方法の模式的なフローチャートである。
【
図4】本開示のある例示的な実施例にて提供されるチップのセキュアブート制御装置の構造模式図である。
【
図5】本開示の別の例示的な実施例にて提供されるチップのセキュアブート制御装置の構造模式図である。
【
図6】本開示のある例示的な実施例にて提供されるハードウェアアクセラレーションモジュール61の構造模式図である。
【
図7】本開示の更なる例示的な実施例にて提供されるチップのセキュアブート制御装置の構造模式図である。
【
図8】本開示の更なる他の例示的な実施例にて提供されるチップのセキュアブート制御装置の構造模式図である。
【
図9】本開示の電子機器の適用実施例の構造模式図である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、本開示による例示的な実施例について詳細に説明する。説明された実施例は、本開示の一部の実施例にすぎず、本開示の全ての実施例ではないことは明らかであり、本開示は、本明細書に説明されている例示的な実施例に限定されにないことを理解されたい。
【0012】
別途に具体的に説明しない限り、これらの実施例に記述される部材及びステップの相対的な配置、数式及び数値は、本開示の範囲を限定するものではないことに留意されたい。
【0013】
当業者であれば、本開示の実施例における「第1」、「第2」等の用語は、異なるステップ、機器又はモジュール等を区別するために使用されるだけで、いかなる特定の技術的意味を表すものではなく、それらの間の必然的な論理的順序を表すものでもない。
【0014】
また、本開示の実施例において、「複数」とは、2つ又は2つ以上を言ってもよく、「少なくとも1つ」は、1つ、2つ、又は2つ以上で言ってもよい。
【0015】
本開示の実施例は、端末機器、コンピュータシステム、サーバ等の電子機器に適用されることができ、それを他の多くの汎用又は専用の計算システム環境又は設定と共に操作することができる。端末機器、コンピュータシステム、サーバ等の電子機器と共に使用するのに適する周知の端末機器、計算システム、環境及び/又は設定の例として、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルド又はラップトップ機器、マイクロプロセッサに基づくシステム、セットトップボックス、プログラマブル家電、ネットワークパーソナルコンピュータ、小型コンピュータシステム、大型コンピュータシステム、及び上記のいずれかのシステムを含む分散型クラウド計算技術環境等が含まれるが、これらに限定されない。
本開示の概要
【0016】
本開示の実施中に、発明者らは、インテリジェントドライブチップのセキュアブートは、主に、従来の車載MCU(Microcontroller Unit、マイクロコントローラーユニット)に基づいて実施され、具体的に言えば、HSM(Hardware Security Module、ハードウェアセキュリティモジュール)によってsecurity Boot(セキュアブート)が実施される。従来の車載MCUは、内蔵Flash(フラッシュメモリ)を使用するため、内部Flashに記憶されているデータに対して、boot(ブート)の手順で、記憶されているデータの署名検証操作(例えば、秘密鍵に基づく署名は、公開鍵によって検証される)を実行するだけでよく、記憶されているデータに対する暗号化と復号の操作に関わらないため、従来のMCUにおいて、Safety Boot(セキュアブート)の問題を考慮する必要がなく、HSMに対して追加の機能安全要求がない。しかし、インテリジェントドライブ技術の発展に伴い、インテリジェントドライブチップに高度な製造プロセスが広く使用され始め、Flashの内蔵を実現することができなくなり、そのため、現在の主流のインテリジェントドライブチップは、外部Flashの使用により不揮発性の記憶が実現され、セキュリティのニーズに応じて、外部Flashに記憶されるデータを暗号化して記憶する必要があり、インテリジェントドライブチップのセキュアブート手順において、記憶されているデータに対して署名検証操作を行う必要があるだけでなく、記憶されているデータに対して暗号化と復号の操作を行う必要もあり、HSMが復号を行う動作手順において、復号後のデータに機能安全に関連する障害が発生する可能性があり、インテリジェントドライブのセキュアブートに関する性能が低下しやすくなる。
例示的な概要
【0017】
図1は、本開示にて提供されるチップのセキュアブート制御方法の例示的な適用シーンである。
【0018】
インテリジェントドライブのシーンにおいて、インテリジェントドライブチップをブートする時、まず、内部読み取り専用メモリに予め記憶されている初期ブートプログラムを取得し、当該初期ブートプログラムを実行して後続のブート段階に入り、例えば、初期ブートプログラムを実行する段階をBL0段階と呼んでもよく、後続のブート段階には、BL1段階及びBL2段階が含まれ、具体的には、実際のニーズに応じて設定することができる。外部機器から暗号化ミラーデータをロードする必要のある各段階を予め設定された段階とすることができ、暗号化ミラーデータは、ブート段階で実行されるミラーデータ(第1ミラーデータとも呼び得る)を暗号化して取得した暗号化結果であり、ミラーデータのセキュリティを保証するために用いられ、後続で当該ミラーデータに対して完全性検証を行うために、本開示では、ミラーデータを、ミラーデータの第1検証コードと共に暗号化して、対応する暗号化ミラーデータを取得することができる。第1ミラーデータは、対応する段階のセキュアブートプログラムを含むファイルである。本開示のチップのセキュアブート制御方法(チップのセキュアブート制御装置により当該方法を実行する)を利用して、いずれかの予め設定された段階で、外部記憶装置からロードされる暗号化ミラーデータをハードウェアセキュリティモジュール(HSMと略称)に伝送し、HSMは、暗号化ミラーデータを復号して、復号結果を取得し、当該復号結果には、当該段階で検証すべき第1ミラーデータ及びそれに対応する第1検証コードが含まれ、当該第1ミラーデータに対して完全性検証を行うために、当該第1ミラーデータに基づいて第2検証コードを決定し、第2検証コードと第1検証コードとを比較して、比較結果を取得することができる。第1検証コードが、HSMで復号する前の第1ミラーデータの検証コードであり、第2検証コードが、HSMで復号した後の第1ミラーデータの検証コードであるため、両者を比較して、HSMの復号操作により第1ミラーデータが損傷されない場合、第2検証コードが第1検証コードと一致するはずであることを表し、両者が一致しなければ、HSMの復号操作により第1ミラーデータが損傷される可能性があることを表し、これに基づいて、第1ミラーデータの完全性検証を完了することができ、検証結果が合格である第1ミラーデータのみに対して、対応するセキュアブートプログラムを実行し、HSMの復号操作機能のセキュリティを保証し、チップのセキュアブートを実現し、さらに、インテリジェントドライブのセキュリティを向上させる。
例示的な方法
【0019】
図2は、本開示のある例示的な実施例にて提供されるチップのセキュアブート制御方法の模式的なフローチャートである。本実施例は、電子機器、例えば車載計算プラットフォーム、車載計算プラットフォーム上のインテリジェントドライブチップ等のチップに適用されることができる。
図2に示すように、ステップ201~ステップ205を含む。
【0020】
ステップ201において、チップブート手順の予め設定された段階で、ハードウェアセキュリティモジュールにより取得した復号結果から、予め設定された段階で検証すべき第1ミラーデータ及び第1ミラーデータに対応する第1検証コードを決定する。
【0021】
ここで、チップブート手順は、実際のニーズに応じて複数の段階に設定されることができ、異なる段階でそれに対応するブート機能を完了することができ、具体的には、実際のニーズに応じて設定することができる。例えば、チップに電気を投入した後、チップブートフローを3つの段階に分けることができ、第1段階で、まず内部読み取り専用メモリに記憶された初期ブートプログラムを実行し、当該初期ブートプログラムをBL0呼んでもよく、第1段階で実施される機能には、例えばシステムクロックの初期化、関連のブート周辺機器(例えばハードウェアアクセラレーションモジュール)の初期化、ハードウェアのブート方式の判断等が含まれ、さらに、BL1(RAM(Random Access Memory、ランダムアクセスメモリ)やシリアルポートの初期化、スタック空間の割り当て、BSSセグメントのクリア、BL2(BL2は、本段階で使用しようとするハードウェア、ローダブル・カーネル等を初期化するためのブートプログラムである)のロード等に用いられるブートプログラム)の暗号化ミラーデータをロードして、ハードウェアセキュリティモジュール(HSM)に伝送することができ、ハードウェアセキュリティモジュールにより当該暗号化ミラーデータを復号して、復号結果を取得する。ここで、復号の具体的な操作は、実際のニーズに応じて設定することができ、例えば、対称暗号化アルゴリズム又は非対称暗号化アルゴリズムに基づいて暗号化と復号が実施され、具体的な説明を省略する。当該復号結果を取得した後、当該復号結果から当該予め設定された段階で検証すべき第1ミラーデータ及び当該第1ミラーデータに対応する第1検証コードを決定し、当該第1検証コードは、暗号化する前に第1ミラーデータ及び予め設定された検証アルゴリズムに基づいて決定した検証コードであり、後続で第1ミラーデータに対して完全性検証を行うために用いられる。ここで、予め設定された検証アルゴリズムには、アルゴリズムモード、初期値、計算長さ等の検証コードの生成に必要な情報が含まれ、具体的には、実際のニーズに応じて設定することができる。BL0~BL2は、具体的には、実際のニーズに応じて設定することができ、本開示では限定しない。
【0022】
同様に、第1段階でBL1のブートプログラムを実行し、第2段階に入り、第2段階は予め設定された段階として、第2段階ではBL2の暗号化ミラーデータをロードして、HSMの復号により復号結果を取得し、復号結果から当該予め設定された段階で検証すべき第1ミラーデータ及び当該第1ミラーデータに対応する第1検証コードを決定し、このように類推して、各予め設定された段階で本開示の方法を実行することができ、ここでは、詳細な説明を省略し、以下、1つの予め設定された段階を例として、後続の処理フローについて説明する。
【0023】
実際の適用において、チップブートフロー段階の具体的な分割は、実際のニーズに応じて設定されることができ、本開示では限定しない。
【0024】
ステップ202において、第1ミラーデータに基づいて第2検証コードを決定する。
【0025】
ここで、第2検証コードは、ハードウェアセキュリティモジュールの復号により第1ミラーデータを取得してから、第1ミラーデータ及び第1検証コードを生成するのと一致する予め設定された検証アルゴリズムに基づいて生成された検証コードであり、第1ミラーデータに対して完全性検証行うために用いられる。
【0026】
ステップ203において、第2検証コードと第1検証コードとを比較して、比較結果を取得する。
【0027】
ここで、比較結果には、第2検証コードと第1検証コードとが同じである又は異なる結果が含まれ得る。
【0028】
ステップ204において、比較結果に基づいて、第1ミラーデータの完全性検証結果を決定する。
【0029】
ここで、完全性検証結果には、合格と不合格の2種類の結果が含まれ得る。第1検証コードが、HSMで復号する前の第1ミラーデータの検証コードであり、第2検証コードが、HSMで復号した後の第1ミラーデータの検証コードであるため、両者を比較して、HSMの復号操作により第1ミラーデータが損傷されないか又はエラーが生成していない場合、第2検証コードは第1検証コードと同じであるべきであり、両者が同じであると、完全性検証結果が合格であることを表す。両者が異なると、HSMの復号操作により第1ミラーデータが損傷される可能性があり、完全性検証結果が不合格である。これに基づいて、第1ミラーデータの完全性検証を完了することができる。
【0030】
ステップ205において、完全性検証結果に基づいて、予め設定された段階で第1ミラーデータに対応するセキュアブートプログラムを実行する。
【0031】
ここで、完全性検証結果が合格である第1ミラーデータのみに対して、対応するセキュアブートプログラムを実行して、HSMの復号操作機能のセキュリティを保証し、チップのセキュアブートを実現し、インテリジェントドライブのセキュリティを向上させる。完全性検証結果が不合格であれば、ブートフローを終了する。
【0032】
実際の適用において、ステップ201~202とステップ203~205とは、同じ処理モジュールによって実施されてもよいし、異なる処理モジュールによって実施されてもよく、例えば、ステップ201~202は、ハードウェア処理モジュールによって実施され、ステップ203~205は、チップ内のセキュリティコアによって実施され、ハードウェア処理モジュールは、セーフティコア(Safety Core)から独立したハードウェア回路であり、具体的には、実際のニーズに応じて設定することができる。
【0033】
本実施例にて提供されるチップのセキュアブート制御方法は、チップブート手順の予め設定された段階で、ハードウェアセキュリティモジュールが取得した復号結果における第1ミラーデータに対して完全性検証を行うことにより、ハードウェアセキュリティモジュールの復号操作が第1ミラーデータを損傷しないことを確保することができ、それにより、ハードウェアセキュリティモジュールの機能安全を保証することができ、チップブートのセキュリティを効果的に向上させる。
【0034】
図3は、本開示の別の例示的な実施例にて提供されるチップのセキュアブート制御方法の模式的なフローチャートである。
【0035】
ある選択可能な例において、ステップ201の前に、本開示の方法は、さらに、ステップ301~ステップ303を含んでもよい。
【0036】
ステップ301において、ハードウェアセキュリティモジュールと第1メモリとの間の通信ハンドシェイク信号を検出する。
【0037】
ここで、第1メモリは、チップ内部のメモリ、具体的にはRAM又はSRAM(Static Random-Access Memory、スタティックランダムアクセスメモリ)等であってもよく、チップの対応するプロセッサ(例えば、セーフティコア)が読み取って実行するようにするために、ハードウェアセキュリティモジュールが復号して取得した復号結果を第1メモリに記憶する必要がある。本開示は、ハードウェアセキュリティモジュールと第1メモリとの間の通信ハンドシェイク信号を検出することにより、ハードウェアセキュリティモジュールがいつ第1メモリに復号結果を伝送するかを確定する。通信ハンドシェイク信号は、実際のハンドシェイクプロトコルに応じて決定されてもよく、例えば、通信ハンドシェイク信号には、VALID信号及びREADY信号が含まれてもよく、具体的に限定しない。
【0038】
ステップ302において、通信ハンドシェイク信号に基づいて、有効制御信号を決定する。
【0039】
ここで、通信ハンドシェイク信号を検出することにより、ハードウェアセキュリティモジュールがいつから復号結果を伝送し始めたかを確定することができ、これに基づいて、ハードウェアセキュリティモジュールによって伝送される復号結果の採集又は取得を開始することができることを表す有効制御信号を決定することができる。例えば、VALID及びREADYを検出した後、ハードウェアセキュリティモジュールと第1メモリとのハンドシェイクが成功し、データの伝送を準備することを表し、有効制御信号を決定する。
【0040】
ステップ303において、有効制御信号に応答して、ハードウェアセキュリティモジュールが接続されたバスから、ハードウェアセキュリティモジュールによって伝送される復号結果を取得する。
【0041】
ここで、有効制御信号が決定されて、復号結果の取得を開始することができることを表す場合、ハードウェアセキュリティモジュールが接続されたバスから、ハードウェアセキュリティモジュールによって伝送される復号結果を取得することができる。
【0042】
ある選択可能な例において、バスのバイパスによりハードウェアセキュリティモジュールと第1メモリとの通信ハンドシェイク信号を検出することができる。バスのバイパスは、ハードウェアセキュリティモジュールと第1メモリとのバスを介する通信内容を当該バイパスから同時に伝送することができ、当該バイパスには、対応の検出部材が設けられており、当該検出部材は、ハードウェアセキュリティモジュールと第1メモリとの通信ハンドシェイク信号及び伝送するデータを受信することができ、有効制御信号は、データバスによって伝送されるデータを受信して採集するか否かを決定するために用いられ、有効制御信号がない場合、データバスによって送信されるデータを受信しなく、有効制御信号が決定されて、データバスが有効な復号結果を伝送し始めたことを表すときから、データバスによって伝送されるデータを受信し、それによって伝送される復号結果を取得することができる。
【0043】
本開示は、ハードウェアセキュリティモジュールと第1メモリとの間の通信ハンドシェイク情報を検出して、有効制御信号を決定した後、ハードウェアセキュリティモジュールが接続されたバスから復号結果を取得することにより、ハードウェアセキュリティモジュールの第1メモリへのデータ伝送に影響を与えず、完全性検証と復号結果の記憶を並行して処理することができ、検証効率を効果的に向上させ、チップブートフローの時間を短縮することができる。
【0044】
ある選択可能な例において、さらに、バスのバイパスを介してハードウェアセキュリティモジュールと第1メモリとの間の通信をハードウェア処理モジュール(ハードウェアアクセラレーションモジュールと呼び得る)にバイパスすることができ、ハードウェアにより完全性検証を実施するか、又は第2検証コードの生成を実施し、検証効率を一層向上させ、チップブート効率を向上させる。
【0045】
ある選択可能な例において、ハードウェアセキュリティモジュールが取得した復号結果から、予め設定された段階で検証すべき第1ミラーデータ及び第1ミラーデータに対応する第1検証コードを決定するステップ201の前に、さらに、ステップ401とステップ402を含む。
【0046】
ステップ401において、外部記憶装置から予め設定された段階に対応する暗号化ミラーデータをロードする。
【0047】
ここで、外部記憶装置は、チップ外部の、暗号化ミラーデータを記憶するための記憶装置である。チップブート手順において、初期ブートプログラムのみが、チップ内部のROM(Read-Only Memory、読み取り専用メモリ)に記憶され、後続のブートに必要なブートプログラムは、いずれも外部から内部RAMにロードする必要があり、ブートプログラムのセキュリティを保証するために、暗号化ミラーデータとして外部記憶装置に記憶されることが一般的であり、そのため、ブート手順において、各段階で、外部記憶装置から対応の暗号化ミラーデータをロードする必要があり、本真なミラーデータを取得したい場合、ハードウェアセキュリティモジュールで復号処理を行う必要がある。
【0048】
ステップ402において、ハードウェアセキュリティモジュールが暗号化ミラーデータを復号して、復号結果を取得するように、暗号化ミラーデータをハードウェアセキュリティモジュールに伝送する。
【0049】
ここで、ハードウェアセキュリティモジュールが暗号化ミラーデータに対して復号処理を行う必要があるため、暗号化ミラーデータをハードウェアセキュリティモジュールに伝送する必要があり、ハードウェアセキュリティモジュールが暗号化ミラーデータを取得して、ハードウェアセキュリティモジュールの関連のハードウェアに基づいて、暗号化ミラーデータの復号を実施して、復号結果を取得する。
【0050】
ある選択可能な例において、ハードウェアセキュリティモジュールは、暗号化ミラーデータを取得した後に、暗号化ミラーデータに対して署名検証を行うことができ、署名検証とは、データの合法性を検証することをいい、例えば、暗号化ミラーデータをロードと伝送する際に、暗号化ミラーデータの証明書、デジタル署名等の、合法性を識別するための情報を運んで、又は、復号して復号結果を取得した後に、第1ミラーデータに署名検証を行うことができ、例えば、復号結果には、さらに、第1ミラーデータの証明書、デジタル署名等の、第1ミラーデータの合法性を識別するための情報が含まれてもよく、これらの情報に基づいて第1ミラーデータに対して署名検証を行い、具体的な署名検証の原理の詳細な説明は省略する。
【0051】
本開示は、ハードウェアセキュリティモジュールのハードウェアに基づいて、外部記憶装置からロードされた暗号化ミラーデータを復号し、復号速度及びリアルタイム性を効果的に保証し、それにより、チップのブート速度を保証し、チップブートフローの時間を短縮し、且つ外部記憶装置に記憶されるのは、ミラーデータの暗号化データであり、チップブートのセキュリティを一層保証する。
【0052】
ある選択可能な例において、本開示の方法は、さらに、
復号結果を第1メモリに記憶するステップ403を含む。
【0053】
ここで、第1メモリは、チップ内部のRAM又はSRAMであってもよく、ハードウェアセキュリティモジュールは、暗号化ミラーデータの復号処理を完了した後、取得した復号結果を第1メモリに記憶して、チップブートフローの使用に供することができる。
【0054】
第2検証コードと第1検証コードとを比較して、比較結果を取得するステップ203は、ステップ2031~ステップ2033を含む。
【0055】
ステップ2031において、第1レジスタに割り込み完了信号を書き込む。
【0056】
ここで、割り込み完了信号は、関連の処理モジュール(又はサブモジュール)に現在第2検証コードの生成が完了したことを通知するために用いられ、ステップ202で、第1ミラーデータの第2検証コードを決定した後、第1レジスタに割り込み完了信号を書き込むこともでき、本開示の装置には、割り込みに応答する関連の処理モジュール又はサブモジュールがあって、第1レジスタの状態をリアルタイム又は定期的に検出する。
【0057】
ステップ2032において、第1レジスタにおける割り込み完了信号を検出したことに応答して、第1メモリから第1検証コードを取得する。
【0058】
ここで、第1レジスタにおける割り込み完了信号が検出されると、第2検証コードが生成されたことを表し、第1メモリから第1検証コードを取得して、第2検証コードとの比較に使用することができる。
【0059】
ステップ2033において、第2検証コードと第1検証コードとを比較して、比較結果を取得する。
【0060】
例示的に、完全性検証に使用される検証アルゴリズムは、CRC(巡回冗長検査)アルゴリズム、HASH(ハッシュ)アルゴリズム等であってもよく、例えば、HASHアルゴリズムについて、第1検証コード及び第2検証コードは、それぞれ暗号化される前の第1ミラーデータのハッシュ値及び復号後の第1ミラーデータのハッシュ値である。第2検証コードと第1検証コードとの比較とは、両者の値が同じであるかを比較することであり、比較結果を取得する。具体的な比較原理についての詳細な説明を省略する。
【0061】
ある選択可能な例において、ステップ2033は、ハードウェア比較回路で実現されてもよく、検証のリアルタイム性を一層向上させる。
【0062】
ある選択可能な例において、第1検証コードを決定した後、さらに、第1検証コードを第3レジスタに書き込むことができ、第2検証コードを取得した後、さらに、第2検証コードを第4レジスタに書き込むことができ、第3レジスタ及び第4レジスタは、それぞれ比較器の入力端に接続されて、比較器の2つの入力になり、比較器に基づいて、第2検証コードと第1検証コードとの比較が実施される。
【0063】
本開示では、第1ミラーデータの第2検証コードが生成された後、割り込み信号を介して応答を割り込むことで第2検証コードと第1検証コードとを比較して、完全性検証を完了することができ、それにより、第2検証コードの生成は、プロセッサ(例えば、セーフティコア)の時間をとらずに、プロセッサから独立したモジュール又はサブモジュールによって実施されることができ、チップブートの時間遅延を一層短縮し、リアルタイム性を向上させる。また、ハードウェアに基づいて第2検証コードと第1検証コードとの比較を実施することができ、リアルタイム性を一層向上させる。
【0064】
ある選択可能な例において、第1ミラーデータに基づいて第2検証コードを決定するステップ202は、ステップ2021とステップ2022とを含む。
【0065】
ステップ2021において、予め設定された段階に対応する検証アルゴリズム情報を含む事前設定された検証設定情報を取得する。
【0066】
ここで、検証設定情報は、特定の記憶領域に予め設定されたものであってもよく、例えば、レジスタに予め設定され、検証アルゴリズム情報には、検証のためのアルゴリズムモード、計算長さ、及び他の関連の情報が含まれてもよく、具体的な内容は、実際の検証アルゴリズムに応じて決定することができ、本開示では限定しない。ここで、アルゴリズムモードは、具体的な検証アルゴリズム、例えばCRCアルゴリズム、ハッシュアルゴリズム等であってもよい。ここで、CRCアルゴリズムは、除算及び剰余の原理を利用して、エラー検出機能を実現するものであり、具体的な原理の詳細な説明を省略する。ハッシュアルゴリズムは、任意の長さの2進数値を短い固定長の2進数値にマッピングするものであり、この短い2進数値をハッシュ値と呼び、検証コードとする。計算長さとは、検証コード長さ、例えばハッシュアルゴリズムで計算して得たハッシュ値の長さであり得る。異なる段階のブートフローは、同じ又は異なる検証設定情報に対応することができ、具体的には、実際のニーズに応じて設定することができる。
【0067】
ステップ2022において、検証設定情報及び第1ミラーデータに基づいて、第1ミラーデータの第2検証コードを生成する。
【0068】
具体的には、検証設定情報における検証アルゴリズム情報に基づいて、第1ミラーデータに対して、対応のアルゴリズムの計算を行って、第2検証コードを取得する。
【0069】
例示的に、予め設定されたハッシュアルゴリズムに基づいて、第1ミラーデータに対してハッシュ計算を行い、計算長さが8ビットであれば、8ビットの2進数のハッシュ値を取得し、第2検証コードとする。
【0070】
本開示は、事前に設定された検証設定情報により、第1ミラーデータの第2検証コードを生成し、実際のニーズに応じて、複数種類の検証アルゴリズムを適用することができ、それにより、汎用性を向上させる。
【0071】
ある選択可能な例において、ハードウェアセキュリティモジュールが取得した復号結果から、予め設定された段階で検証すべき第1ミラーデータ及び第1ミラーデータに対応する第1検証コードを決定するステップ201の前に、さらに、ステップ501~ステップ504を含む。
【0072】
ステップ501において、読み取り専用メモリから初期ブートプログラムを取得する。
【0073】
ここで、読み取り専用メモリは、チップ内部ROMであり、初期ブートプログラムは、読み取り専用メモリに予め記憶されたブートプログラムであり、チップに電気を投入した後、チップは、関連のプロセッサ又はプロセッサコア(例えば、セーフティコア)をブートして、先にROMにおける当該初期ブートプログラムを実行して、チップのブートフローを始める。
【0074】
ステップ502において、初期ブートプログラムを実行して、初期検証設定情報を取得する。
【0075】
ここで、初期ブートプログラム機能は、いくつかの関連の初期化及び設定を行うことであり、初期検証設定情報は、初期ブートプログラムとともにROMに記憶された情報であり得り、初期ブートプログラムを実行する場合にロードされる暗号化ミラーデータに対応する検証設定情報を含み得る。
【0076】
ステップ503において、初期検証設定情報に基づいて、チップのセキュアブートに対して初期設定を行う。
【0077】
ここで、初期設定には、初期検証設定情報に基づいて、第2検証コードを生成するためのモジュール又はサブモジュールに対して、対応する検証アルゴリズム、計算長さ等の対応する設定を行うことが含まれ得る。例えば、第2検証コードを生成するためのモジュールが、セーフティコアから独立したハードウェアモジュールである場合、初期検証設定情報に基づいて当該ハードウェアモジュールを設定することにより、当該ハードウェアモジュールが検証コードの生成動作を正常に完了する。具体的な設定は、実際のニーズに応じて設定することができる。
【0078】
ある選択可能な例において、初期ブートプログラムを実行して完了した初期化設定には、さらに、他の関連の初期化及び設定、例えば前述の関連のブート周辺機器の初期化が含まれ得り、具体的には、実際のニーズに応じて設定することができる。
【0079】
ステップ504において、初期設定の完了に応答して、チップブート手順の予め設定された段階に入る。
【0080】
ここで、初期化設定の完了は、後続で実行する必要のあるブートプログラムの暗号化ミラーデータをロードする必要があり、例えば、前述の初期ブートプログラムを実行するBL0は、BL1の暗号化ミラーデータのロードを完了し、さらに、本開示の方法により、当該段階でBL1に対する完全性検証を完了し、検証に合格して、BL1のセキュアブートプログラムを実行し、BL1を実行する手順において、BL2の暗号化ミラーデータをロードしてから、本開示の方法により、BL2に対する完全性検証を完了し、このように類推して、ブートフローの全ての段階を完了するまで、すなわち、チップのセキュアブートを完了するまで続くことになる。
【0081】
本開示では、初期ブートプログラムでチップのセキュアブートに対する初期検証設定情報の設定を実現することにより、チップがブートして、ハードウェアセキュリティモジュールの復号結果に対して完全性検証を行うことができ、ハードウェアセキュリティモジュールの復号機能のセキュリティを保証し、チップブートのセキュリティを向上させる。
【0082】
本開示の実施例にて提供されるいずれか1つのチップのセキュアブート制御方法は、データ処理能力を有する任意の適切な機器によって実行されてもよく、前記機器には、端末機器及びサーバ等が含まれるが、これらに限定されない。又は、本開示の実施例にて提供されるいずれか1つのチップのセキュアブート制御方法は、プロセッサによって実行され得り、例えば、プロセッサが、メモリに記憶されている対応の命令を呼び出して本開示の実施例に言及されたいずれか1つのチップのセキュアブート制御方法を実行する。以下、詳細な説明を省略する。
例示的な装置
【0083】
図4は、本開示のある例示的な実施例にて提供されるチップのセキュアブート制御装置の構造模式図である。当該実施例の装置は、本開示の対応の方法実施例を実施するために用いられ、
図4に示す装置は、ハードウェアアクセラレーションモジュール61、第1処理モジュール62、第2処理モジュール63、及び第3処理モジュール64を含む。
【0084】
ハードウェアアクセラレーションモジュール61は、ハードウェアセキュリティモジュールに接続され、チップブート手順の予め設定された段階で、ハードウェアセキュリティモジュールが取得した復号結果から、予め設定された段階で検証すべき第1ミラーデータ及び第1ミラーデータに対応する第1検証コードを決定し、第1ミラーデータに基づいて第2検証コードを決定する。第1処理モジュール62は、ハードウェアアクセラレーションモジュールに接続され、第2検証コードと第1検証コードとを比較して、比較結果を取得する。第2処理モジュール63は、比較結果に基づいて、第1ミラーデータの完全性検証結果を決定する。第3処理モジュール64は、完全性検証結果に基づいて、予め設定された段階で第1ミラーデータに対応するセキュアブートプログラムを実行する。
【0085】
ある選択可能な例において、第1処理モジュール62、第2処理モジュール63、及び第3処理モジュール64は、チップにおけるブートのためのプロセッサコア、例えばセーフティコアであってもよく、セーフティコアの性能は、具体的には実際のニーズに応じて設定することができ、例えば、低遅延のプロセッサコアに基づいて、セキュリティ及び信頼性が高く、低遅延の、一定のセキュリティレベル(例えば、ASILD(Automotive Safety Integrity Level D、自動車安全水準D))を満たすセーフティコアを構築する。
【0086】
ある選択可能な例において、ハードウェアアクセラレーションモジュール61及び/又は第1処理モジュール62は、ソフトウェアモジュールであっても、ハードウェア回路モジュールであってもよく、具体的には、実際のニーズに応じて設定することができる。
【0087】
ある選択可能な例において、ハードウェアアクセラレーションモジュール61は、バスを介して第1処理モジュール62、第2処理モジュール63、及び第3処理モジュール64に接続され得る。
【0088】
本開示は、チップブート手順の予め設定された段階で、ハードウェアセキュリティモジュールが取得した復号結果における第1ミラーデータに対して完全性検証を行うことにより、ハードウェアセキュリティモジュールの復号操作が第1ミラーデータを損傷しないことを確保することができ、それにより、ハードウェアセキュリティモジュールの機能安全を保証することができ、チップブートのセキュリティを効果的に向上させる。
【0089】
図5は、本開示の別の例示的な実施例にて提供されるチップのセキュアブート制御装置の構造模式図である。
【0090】
ある選択可能な例において、ハードウェアアクセラレーションモジュール61は、バスモニタ611及び検証コード生成器612を含み、バスモニタ611は、バスのバイパスを介してハードウェアセキュリティモジュールに接続され、ハードウェアセキュリティモジュールと第1メモリとの間の通信ハンドシェイク信号を検出し、通信ハンドシェイク信号に基づいて検証コード生成器に、ハードウェアセキュリティモジュールによって伝送される復号結果を採集し始めるように検証コード生成器に通知するための有効制御信号を送信する。検証コード生成器612は、バスモニタ611に接続され、さらに、バスのバイパスを介してハードウェアセキュリティモジュールに接続され、バスモニタの有効制御信号に応答して、ハードウェアセキュリティモジュールが接続されたバスからハードウェアセキュリティモジュールによって伝送される復号結果を採集し、復号結果における第1ミラーデータに基づいて第2検証コードを決定する。
【0091】
ここで、通信ハンドシェイク信号が制御信号であるため、バスモニタ611は、通信ハンドシェイク信号を監視するために、バスのバイパスの制御バスに接続されてもよい。検証コード生成器612は、伝送される復号結果データを採集するために用いられるため、バスのバイパスのデータバスに接続されてもよく、具体的には、実際のニーズに応じて設定することができ、対応する機能を実施することができればよい。バスのバイパスの機能は、通信ハンドシェイク信号のリアルタイム検出及び復号結果のリアルタイム採集を達成するために、ハードウェアセキュリティモジュールと第1メモリとの間の通信内容を、バスのバイパスを介して当該ハードウェアアクセラレーションモジュール61に並行して送信することである。有効制御信号の意味は、前述の方法実施例を参照されたい。ここでは、詳細な説明を省略する。復号結果を取得した後の検証コード生成器612の具体的な操作は、前述の方法実施例を参照されたい。
【0092】
ある選択可能な例において、リアルタイム性を一層向上させるために、バスモニタ611及び検証コード生成器612は、ハードウェアで実現するこどかできる。
【0093】
本開示では、バスのバイパスに基づいて復号結果における検証すべきミラーデータの検証コード等の計算を実施することができ、バス経路上の他の回路に影響を与えず、且つハードウェアにより、ハードウェアセキュリティモジュールの復号結果における検証すべきミラーデータの検証コードの迅速な計算を実施することができ、さらに、セキュリティ処理モジュールが計算で取得した検証コードと、復号結果における検証コードとを比較して、ミラーデータの完全性を決定し、ソフトウェアの計算時間を取る必要がなく、ハードウェア経路上の余分な遅延を引き起こすこともなく、一定のセキュリティレベルニーズを満たすことを保証する状況で、ブートフロー全体の時間を効果的に短縮し、ブート速度を向上させる。
【0094】
ある選択可能な例において、本開示の装置は、さらに、ロードモジュール65及びハードウェアセキュリティモジュール66を含む。
ロードモジュール65は、外部記憶装置から予め設定された段階に対応する暗号化ミラーデータをロードする。ハードウェアセキュリティモジュール66は、ロードモジュール65に接続され、暗号化ミラーデータを復号して、復号結果を取得する。
【0095】
ある選択可能な例において、ロードモジュール65は、バスを介してハードウェアセキュリティモジュール66に接続されてもよく、又は、ロードモジュール65は、プロセッサ又はプロセッサコアにおけるモジュールとして、プロセッサ又はプロセッサコアとバスとの接続を介して、ハードウェアセキュリティモジュール66に接続され、具体的には、実際のニーズに応じて設定することができる。
【0096】
本開示では、予め設定された段階で外部記憶装置に記憶されている実行すべきセキュアブートプログラムの暗号化ミラーデータをチップ内部にロードすることにより、チップが、ハードウェアセキュリティモジュールにより当該暗号化ミラーデータを復号して、実行すべきセキュアブートプログラムのミラーデータを取得し、チップブートに外部記憶機能を提供し、チップ内部の記憶コストを低減する。
【0097】
ある選択可能な例において、本開示の装置は、さらに、第1メモリ67を含み、ハードウェアセキュリティモジュール66は、さらに、復号結果を第1メモリ67に記憶する。
【0098】
ここで、第1メモリ67は、チップ内部のRAM又はSRAMであってもよく、ハードウェアセキュリティモジュール66は、バスを介して第1メモリ67と通信することができる。
【0099】
ある選択可能な例において、ハードウェアアクセラレーションモジュール61は、さらに、第1処理モジュール62に接続され、割り込み完了信号を記憶するための第1レジスタ613を含み、ハードウェアアクセラレーションモジュール61は、さらに、第2検証コードを決定した後、第1レジスタ613に割り込み完了信号を書き込んで、第1処理モジュール62に第2検証コードが生成されたことを通知する。第1処理モジュール62は、さらに、第1レジスタ613における割り込み完了信号を検出したことに応答して、第1メモリ67から第1検証コードを取得し、第2検証コードと第1検証コードとを比較して、比較結果を取得する。
【0100】
ここで、第1レジスタ613は、任意の実施可能なレジスタであってもよく、例えば、チップに既存のレジスタを使用するか、又は本開示のニーズに基づいてレジスタを追加する。具体的には、実際のニーズに応じて設定することができる。ハードウェアアクセラレーションモジュール61又は前述の検証コード生成器612は、第2検証コードが生成された後、第2検証コードを第1レジスタ613に書き込んで、第1処理モジュール62に、第2検証コードが生成されたことを通知することができる。第1処理モジュール62は、第1レジスタ613を定期的又はリアルタイムに検出することができ、これにより、割り込み完了信号に応答し、後続の第2検証コードと第1検証コードとの比較を完了して、完全性検証を完了する。
【0101】
ある選択可能な例において、ハードウェアアクセラレーションモジュール61が、第2検証コードと第1検証コードとの比較を実施する比較器を含んでもよく、対応する比較結果レジスタで比較結果を記憶することもでき、当該比較結果レジスタは、第1処理モジュール62に接続されることができることにより、第1処理モジュール62は、比較結果を直接取得することができ、完全性検証のリアルタイム性を一層向上させる。
【0102】
本開示では、第1レジスタに割り込み完了信号を記憶することにより、検証コードの生成がプロセッサから独立することができ、検証コードの生成が完了した後、プロセッサが割り込み要求に応答して完全性検証結果を確定するように、割り込み完了信号によりプロセッサに割り込み要求を送信し、リアルタイム性を一層向上させる。
【0103】
ある選択可能な例において、本開示の装置は、さらに、ハードウェアアクセラレーションモジュール61に接続され、当該段階に対応する検証アルゴリズム情報を含む検証設定情報を記憶するための第2レジスタ68を含み、ハードウェアアクセラレーションモジュール61は、さらに、第2レジスタ68から検証設定情報を取得し、検証設定情報及び第1ミラーデータに基づいて、第1ミラーデータの第2検証コードを生成する。
【0104】
ここで、第2レジスタ68は、任意の実施可能なレジスタを用いることができ、具体的には、実際のニーズに応じて設定することができ、第2レジスタ68に記憶されている内容は、ブートフローの完全性検証の前の任意のタイミングに応じて設定されることができ、具体的には、実際のニーズに応じて設定されることができる。選択可能に、各段階の検証設定情報は、初期ブートコードと共にチップ内のROMに予め記憶されてもよく、具体的に限定しない。検証設定情報の具体的な内容及び作用原理は、前述の実施例を参照されたい。ここでは、詳細な説明を省略する。
【0105】
本開示は、第2レジスタに予め設定された段階の検証設定情報を記憶して、予め設定された段階で復号された第1ミラーデータの完全性検証をサポートし、検証コードの迅速な生成を保証し、リアルタイム性を一層向上させる。
【0106】
ある選択可能な例において、本開示の装置は、さらに、第2メモリ69及び初期処理モジュール70を含み、第2メモリ69は、初期ブートプログラム及びハードウェアアクセラレーションモジュール61の初期検証設定情報を記憶する。初期処理モジュール70は、第2メモリ69に記憶されている初期ブートプログラムを実行して、初期ブート段階に入り、初期ブートプログラムに基づいて、第2メモリ69から初期検証設定情報を取得し、初期検証設定情報に基づいてハードウェアアクセラレーションモジュール61に対して初期化設定を行って、チップブート手順の予め設定された段階に入る。
【0107】
ここで、第2メモリ69は、チップにおける読み取り専用メモリ(ROM)であってもよく、ROMに初期ブートプログラムが予め記憶されており、チップに電気を投入した後、初期処理モジュール70は、動作し始め、ROMにおける初期ブートプログラムを実行し、初期ブートプログラムは、ハードウェアアクセラレーションモジュール61に対して初期化設定を行うことにより、ハードウェアアクセラレーションモジュール61は正常に動作することができ、もちろん、チップの他の関連のモジュール又は機能を設定して、ブート手順の予め設定された段階に入るように導くことも含むことができ、予め設定された段階で当該段階に対応するブート動作を完了することは、外部記憶装置から暗号化ミラーデータをロードし、ハードウェアセキュリティモジュール66に伝送して復号し、ハードウェアセキュリティモジュール66が復号して取得した復号結果を、それぞれバス及びバスのバイパスを介して第1メモリ67及びハードウェアアクセラレーションモジュール61に伝送し、ハードウェアアクセラレーションモジュール61が復号結果を取得し、第2レジスタ68に記憶されている当該段階の検証設定情報に基づいて復号結果における第1ミラーデータの第2検証コードを生成し、第1レジスタ613に割り込み完了信号を書き込んで、第1処理モジュール62に通知し、第1処理モジュール62は、第1メモリ67から復号結果における第1検証コードを取得するとともに、ハードウェアセキュリティモジュールから第2検証コード取得し、第2検証コードと第1検証コードとを比較して、比較結果を取得し、さらに、比較結果に基づいて完全性検証結果を決定し、完全性検証結果が合格であることに応答して、第1ミラーデータに対応するセキュアブートプログラムを実行することを含む。具体的な原理は、前述の実施例を参照されたい。ここでは、詳細な説明を省略する。
【0108】
本開示は、初期ブートプログラムをチップの読み取り専用メモリに予め記憶することにより、チップに電気を投入した後、ブートのための関連のプロセッサコア(例えば、セーフティコア)は、まず、読み取り専用メモリにおける初期ブートプログラムを実行することができ、それにより、チップが後続のブート段階に入るように、チップの初期ブートフローに入り、チップのセキュアブートが実現される。
【0109】
ある選択可能な例において、ハードウェアアクセラレーションモジュール61は、さらに、
検証コード生成器612に接続され、第2検証コードを記憶するための第4レジスタ614を含み、
検証コード生成器612は、さらに、第2検証コードを第4レジスタ614に書き込む。
【0110】
ここで、第4レジスタ614として、任意の実施可能なレジスタを用いることができ、具体的には、実際のニーズに応じて設定することができる。
【0111】
ある選択可能な例において、
図6は、本開示のある例示的な実施例にて提供されるハードウェアアクセラレーションモジュール61の構造模式図である。本例において、ハードウェアアクセラレーションモジュール61は、全部又は一部がハードウェアにより実現されてもよく、当該ハードウェアアクセラレーションモジュール61は、さらに、第1検証コードを記憶するための第3レジスタ615と、比較器616とを含んでもよい。第3レジスタ615及び第4レジスタ614は、それぞれ比較器616の入力端に接続されることができることにより、ハードウェアにより第2検証コードと第1検証コードとの比較が実施され、検証のリアルタイム性を一層向上させる。比較器616が第1レジスタ613に接続される場合、当該割り込み完了信号は、比較器616の比較結果を運ぶことができ、それにより、割り込み完了信号を比較結果と共に第1処理モジュール62に伝送することができ、第1処理モジュール62は、割り込みに応答して、比較結果に基づいて完全性検証結果を直接に決定することができ、検証のリアルタイム性を一層向上させる。
【0112】
ある選択可能な例において、本開示の装置は、さらに、暗号化ミラーデータを記憶するための外部記憶装置71を含み得る。
【0113】
図7は、本開示の更なる例示的な実施例にて提供されるチップのセキュアブート制御装置の構造模式図である。本例において、上記の第1処理モジュール62、第2処理モジュール63、第3処理モジュール64、ロードモジュール65、及び初期処理モジュール70は、チップにおけるセーフティコアにおけるモジュールであり、ハードウェアアクセラレーションモジュール61は、セーフティコアから独立したハードウェアモジュールであり、セーフティコア、ハードウェアセキュリティモジュール66、ハードウェアアクセラレーションモジュール61、第1メモリ67、第2メモリ69、及び外部メモリ71は、バスを介して互いに通信する。チップに電気を投入すると、セーフティコアが第2メモリ69に記憶された初期ブートプログラムをブートして、ハードウェアアクセラレーションモジュール61に対して初期化設定を行う。これにより、ハードウェアアクセラレーションモジュール61が正常な動作に入り、ブートフローが予め設定された段階に入った後、セーフティコアは、外部メモリ71から当該予め設定された段階に対応する暗号化ミラーデータをロードして、バスを介してハードウェアセキュリティモジュール66に伝送し、ハードウェアセキュリティモジュール66が暗号化ミラーデータを復号して(先に、署名検証を行ってから復号することもできる)、復号結果を取得し、復号結果を、バスを介して第1メモリ67に書き込み、ハードウェアアクセラレーションモジュール61は、バスのバイパスを介してハードウェアセキュリティモジュール66と第1メモリ67との通信ハンドシェイク信号を監視し、有効制御信号を確定した後、バスから伝送される復号結果を取得し、第2レジスタ68に事前設定された検証設定情報に基づいて第1ミラーデータの第2検証コードを生成し、第2検証コードを第4レジスタ614に書き込み、第2検証コードが生成された後、第1レジスタ613に割り込み完了信号を書き込んで、セーフティコアに第2検証コードが生成されたことを通知し、セーフティコアは、割り込み完了信号に応答して、バスを介して第1メモリ67から第1検証コードを取得するとともに、第4レジスタ614から第2検証コードを取得し、第2検証コードと第1検証コードとを比較して、比較結果を取得し、さらに、比較結果に基づいて、完全性検証結果を決定し、完全性検証結果が合格であることに応答して、第1ミラーデータに対応するセキュアブートプログラムを実行する。
【0114】
本開示では、バスのバイパスを介してハードウェアセキュリティモジュールの復号結果を取得し、ハードウェアにより第2検証コードの生成が実施され、セーフティコアソフトウェアで第2検証コードを計算することに比べ、処理時間を大幅に短縮することができ、それにより、リアルタイム性を効果的に向上させ、チップのセキュアブートを保証する状況で、チップのセキュアブート速度を効果的に向上させる。
【0115】
ある選択可能な例において、
図8は、本開示の更なる他の例示的な実施例にて提供されるチップのセキュアブート制御装置の構造模式図である。本例において、ハードウェアアクセラレーションモジュール61及び第2レジスタ68は、ハードウェアセキュリティモジュール66内に設けられることができ、ハードウェアセキュリティモジュール66の復号結果は、バスを介して第1メモリ67に伝送される一方、ハードウェアアクセラレーションモジュール61に伝送され、ハードウェアアクセラレーションモジュール61は、第1ミラーデータの第2検証コードを生成して第4レジスタ614に書き込むとともに、第1レジスタ613に割り込み完了信号を書き込み、後続の比較及び他の関連の処理を行うように、セーフティコアに通知し、具体的には、前述の例を参照さらたい。ここでは、詳細な説明を省略する。
【0116】
ある選択可能な例において、ある予め設定された段階の第1ミラーデータの完全性検証結果が不合格である場合、チップのセキュアブートに失敗し、ソフトウェアによるリカバリ又は外部への通知後のリカバリ等のリカバリ操作を行ってもよく、新しいセキュアブートフローの実行を再開する。
【0117】
本開示では、バスのバイパス及びハードウェアアクセラレーションモジュールを介して完全性検証を実現し、チップハードウェア経路の余分な遅延を引き起こすことなく、且つ、他の回路にも影響与えず、ハードウェアに基づいて、検証コードの計算を迅速に実施することができ、プロセッサソフトウェアを利用して完全性検証を完了することに比べて、ブート時間を一層短縮することができる。且つ、ハードウェアセキュリティモジュールの冗長設定(即ち、2つのハードウェアセキュリティモジュールを設けて、同時に復号し、両者の復号結果を比較して、一致すれば、検証に合格であると考え、そうでなければ、検証に不合格であると考える)により、復号結果の完全性検証を実現することに比べて、本開示は、ハードウェアコストを効果的に低減することができる。
例示的な電子機器
【0118】
本開示の実施例は、さらに、電子機器を提供し、当該電子機器は、コンピュータプログラムを記憶するためのメモリと、
前記メモリに記憶されているコンピュータプログラムを実行し、前記コンピュータプログラムが実行されると、本開示の上記のいずれか1つの実施例に記載のチップのセキュアブート制御方法が実施される、プロセッサと、を含む。
【0119】
図9は、本開示の電子機器のある適用実施例の構造模式図である。本実施例において、当該電子機器10は、1つ又は複数のプロセッサ11及びメモリ12を含む。
【0120】
プロセッサ11は、中央処理装置(CPU)であっても、データ処理能力及び/又は命令実行能力を有する他の形態の処理ユニットであってもよく、電子機器10における他のコンポーネントを制御して、所望の機能を実行することができる。
【0121】
メモリ12は、1つ又は複数のコンピュータプログラム製品を含んでもよく、前記コンピュータプログラム製品には、様々な形態のコンピュータ可読記憶媒体、例えば揮発性メモリ及び/又は不揮発性メモリが含まれ得る。前記揮発性メモリには、例えば、ランダムアクセスメモリ(RAM)及び/又はキャッシュ(cache)等が含まれ得る。前記不揮発性メモリには、例えば、読み取り専用メモリ(ROM)、磁気ディスク、フラッシュメモリ等が含まれ得る。前記コンピュータ可読記憶媒体に1つ又は複数のコンピュータプログラム命令を記憶することができ、プロセッサ11は、前記プログラム命令を実行して、上記の本開示の各実施例の方法及び/又は他の所望の機能を実施することができる。前記コンピュータ可読記憶媒体に、さらに、入力信号、信号成分、ノイズ成分等の様々な内容を記憶することができる。
【0122】
ある例において、電子機器10は、さらに、入力装置13及び出力装置14を含み得り、これらのコンポーネントは、バスシステム及び/又は他の形態の接続機構(図示せず)を介して互いに接続される。
【0123】
例えば、入力装置13は、上記のマイクロホンやマイクロホンアレイであってもよく、音源の入力信号を取り込むために用いられる。
【0124】
また、入力装置13には、さらに、キーボード、マウス等が含まれ得る。
【0125】
出力装置14は、外部に、決定された距離情報、方向情報等を含む様々な情報を出力することができる。出力装置14には、ディスプレイ、スピーカー、プリンタ、通信ネットワーク及びそれに接続される遠隔出力機器等が含まれ得る。
【0126】
もちろん、簡素化のために、
図9に、電子機器10の本開示に関連するコンポーネントの一部のみを示し、バス、入力/出力インターフェース等のコンポーネントを省略した。これ以外に、具体的な適用状況に応じて、電子機器10は、さらに、いずれの他の適切なコンポーネントを含んでもよい。
例示的なコンピュータプログラム製品及びコンピュータ可読記憶媒体
【0127】
上記の方法及び機器以外に、本開示の実施例は、コンピュータプログラム命令を含むコンピュータプログラム製品であってもよく、前記コンピュータプログラム命令がプロセッサによって実行されると、前記プロセッサが、本明細書の上記の「例示的な方法」の部分で説明した本開示の様々な実施例の方法におけるステップを実行する。
【0128】
以上、本開示の基本原理を具体的な実施例を参照しながら説明したが、本開示で言及された利点、長所、効果等は、例示に過ぎず、限定するものではなく、本開示の各実施例がそれらの利点、長所、効果等を必ず備えていると考えるべきではないことに留意されたい。また、上記に開示した具体的な詳細は、例示的なものであり、理解を容易にするためのものに過ぎず、限定するものではなく、上記の詳細は、本開示が必ず上記の具体的な詳細を採用して実現しなければならないと制限するものではない。
【0129】
本明細書における各実施例はいずれも段階的方式で記述し、各実施例で重点的に説明しているのは、他の実施例との相違点であり、各実施例間で同じ又は類似の部分がある場合は、互に参照すればよい。システム実施例については、方法実施例と基本的に対応しているため、記述は比較的簡潔であり、関連のする部分は、方法実施例の該当する説明を参照すればよい。
【0130】
本開示に係るデバイス、装置、機器、システムのブロック図は、単なる例示的な例に過ぎず、必ずブロック図に示される方式で接続、配置、構成を行うことを要求または暗示することを意図していない。当業者であれば、これらのデバイス、装置、機器、システムを任意の方法で接続、配置、構成することができることを認識する。
【0131】
本開示の方法及び装置は、多くの方法で実現され得る。例えば、本開示の方法及び装置は、ソフトウェア、ハードウェア、ファームウェア、又はソフトウェア、ハードウェア、ファームウェアの任意の組み合わせによって実現され得る。前記方法のステップの上述の順序は、単に説明するためのものにすぎず、本開示の方法のステップは、特に明記されない限り、上記で具体的に説明した順序に限定されない。また、いくつかの実施例では、本開示は、記録媒体に記録されたプログラムとして実施され、これらのプログラムは、本開示による方法を実施するための機械読み取り可能な命令を含む。したがって、本開示は、本開示に係る方法を実行するためのプログラムを記憶する記録媒体も含む。
【0132】
なお、本開示の装置、機器、及び方法において、各部材又は各ステップは分解及び/又は再結合可能である。これらの分解及び/又は再結合は本開示の等価解決手段と見なすべきである。