以下、添付の図面を参照しながら本出願の実施形態の技術的解決策を説明する。本出願の実施形態で説明されているネットワークアーキテクチャおよびサービスシナリオは、本出願の実施形態における技術的解決策をより明確に説明することを意図されており、本出願の実施形態で提供される技術的解決策に対する限定を構成しない。当業者は、ネットワークアーキテクチャの進化および新しいサービスシナリオの出現により、本出願の実施形態で提供される技術的解決策が同様の技術的問題にも適用可能であることを知ることができる。
本出願における「1」、「2」、「3」、「第1」、「第2」、および「第3」などの序数は、複数の対象を区別するために使用され、複数の対象の順序を限定するために使用されるのではない。
本出願で言及される「Aおよび/またはB」は、Aのみが含まれる場合、Bのみが含まれる場合、またはAとBの両方が含まれる場合を含むものとして理解されるべきものである。
図1は、ネットワークデバイスのセキュアブートプロセスの概略図である。図1を参照されたい。電源投入後、ネットワークデバイスは、ブートロムセキュアブートコード(英語:Bootrom Secure Boot Code、略してBSBC)をまず実行し、次いでブートロム(英語:Bootrom)を実行し、その後、ブートコードBootLoaderを使用してオペレーティングシステム(英語:Operating System、略してOS)をロードし、Linux/VxWorks/Windows等のOSに対応するコードを具体的にはロードし、その後、OSがブートされた後に対応するアプリケーション(英語:Application、略してAPP)をロードする。ネットワークデバイスのブートプロセスのセキュリティを保証するために、信頼できる署名システム(例えば、認証局(英語:Certificate Authority、略してCA)サーバ)が使用されて、各アプリケーションのイメージファイルに対してデジタル署名を実行する。例えば、図1を参照されたい。署名システムは、Bootromコード、BootLoaderコード、OSコード、およびAPPコードに対するデジタル署名を、暗号化アルゴリズム1を使用して別々に実行し、Bootromコードの署名1、BootLoaderコードの署名2、OSコードの署名3、およびAPPコードの署名4を取得する。BSBCはネットワークデバイスのルートオブトラスト(英語:Root of Trust、略してRoT)と見なされ得るので、BSBCに対してデジタル署名が実行される必要はないことに留意されたい。例えば、ネットワークデバイスのセキュアブートプロセスは、電源投入後に、ネットワークデバイスがBSBCを最初に実行することを含んでもよく、BSBCは、対応する公開鍵を使用してBootromコードの署名1を検証し、検証に成功した後にのみBootromを実行し、次いで、Bootromは、対応する公開鍵を使用してBootLoaderコードの署名2を検証し、検証に成功した後にのみBootLoaderを実行し、次いで、BootLoaderは、対応する公開鍵を使用してOSコードの署名3を検証し、OSをブートし、次いで、OSは、対応する公開鍵を使用してAPPコードの署名4を検証し、検証に成功した後でAPPを実行する。いずれかの署名検証に失敗した場合、今回はセキュアブートに失敗したと判定されることに留意されたい。
ネットワークデバイス内のAPPは、APPコードに対してデジタル署名および署名検証を実行するプロセスを説明するための一例として使用される。APPコードに対してデジタル署名を実行するプロセスは、APPコードがネットワークデバイスに配信される前に、署名システムが、ハッシュアルゴリズムを使用してAPPコードのデジタルダイジェストdigest X1を最初に取得し、次いで、秘密鍵aを使用してdigest X1に対してデジタル署名を実行して、digestEncode X1を取得するステップを含み得る。APPコードがネットワークデバイスに配信されると、APPコードおよびdigestEncode X1がネットワークデバイスに送信される。APPコードに対して署名検証を実行するプロセスは、APPコードをロードする前に、ネットワークデバイスは、APPコードの署名中に使用されたものと同じハッシュアルゴリズムを使用してデジタルダイジェストdigest X2を最初に生成し、次いで、公開鍵Aを使用してdigestEncode X1に対して署名検証を実行してdigestDecode X3を取得し、digestDecode X3とdigest X2とが同じであるかどうかを判定するステップを含み得る。digestDecode X3とdigest X2とが同じである場合、APPコードが改ざんされておらず、認可された製造業者によってリリースされていると判定され得、その結果、ネットワークデバイスによってロードされるAPPコードが安全で信頼性があることが保証される。秘密鍵aおよび公開鍵Aは、ネットワークデバイスの製造業者によって提供される鍵のペアである。公開鍵Aは公的に可視であり、秘密鍵aは秘密であり、製造者に対応する署名システムにのみ可視である。デジタル署名技術は、デジタルダイジェスト技術と公開/秘密鍵技術との組み合わせと考えられることができることが知見され得る。ソフトウェアパッケージが改ざんされているかどうかは、デジタルダイジェスト技術を使用して検証されてもよく、デジタルダイジェストが権限であるかどうかは、公開/秘密鍵技術を使用して検証されてもよい。デジタル署名技術は、セキュアブートプロセスのための迅速かつ包括的なソフトウェア完全性保護および検証を提供する技術である。
図2aおよび図2bは、ネットワークデバイス10の2つの構造の概略図である。図2aを参照されたい。ネットワークデバイス10は、プロセッサ110およびFlashメモリ130を含み、セキュアストレージエンティティ120は、プロセッサ110に統合される。セキュアストレージエンティティ120の特徴は、セキュアストレージエンティティ120に書き込まれた内容が変更されたり消去されたりすることができないことである。例えば、セキュアストレージエンティティ120は、プロセッサ110内のワンタイムプログラマブル(英語:One Time Programmable、略してOTP)メモリであり、OTPメモリは、高いセキュリティを確保するために、電子ヒューズ(英語:Electronic Fuses、略してeFUSE)を使用することによってストレージ機能を実装してもよい。図2bを参照されたい。ネットワークデバイス10は、プロセッサ110、セキュアストレージエンティティ120、および不揮発性メモリ130を含む。セキュアストレージエンティティ120は、プロセッサ110から独立しており、セキュアストレージスペースを提供するように構成される。セキュアストレージエンティティ120は、例えば、独立したセキュリティチップであってもよい。セキュアストレージエンティティ120およびプロセッサ110は、通信接続されている。図2aおよび図2bにおいて、プロセッサ110は、セキュアストレージエンティティ120および不揮発性メモリ130に別々に通信接続されている。プロセッサ110は、通常、制御能力を有するチップ、例えば、中央処理装置(英語:Central Processing Unit、略してCPU)、マイクロプロセッサユニット(英語:Microprocessor Unit、略してMPU)、マイクロコントローラユニット(英語:Microcontroller Unit、略してMCU)、またはフィールドプログラマブルゲートアレイ(英語:Field Programmable Gate Array、略してFPGA)によって実装され、ネットワークデバイス10のブートプロセスにおける信頼チェーンの開始点である。プロセッサ110の完全性はハードウェアによって厳密に保護されているため、本出願のこの実施形態では、プロセッサ110は信頼できると考えられることができる。不揮発性メモリ130は、不揮発性メモリであり、例えば、電子的消去可能プログラマブル性能を有し、かつ、高速にデータを読み出すことができるメモリであってもよく、その結果、停電によってデータが失われることはない。不揮発性メモリ130は、BootLoaderコード、OSコード、およびアプリケーションコードなどのデータを格納するように構成されてもよい。不揮発性メモリ130は、ROM、PROM、EAROM、EPROM、EEPROM、およびFlashメモリを含むが、これらに限定されない。以下では、不揮発性メモリ130がFlashメモリ130である例が説明のために下記で用いられる。
通常、暗号化アルゴリズムおよび暗号化アルゴリズムに対応する公開鍵ベースライン値は、ネットワークデバイス10のプロセッサ110内にプリセットされる。ネットワークデバイス10の電源が投入されると、Flashメモリ130に格納されている、アプリケーションのイメージファイルがスタティックランダムアクセスメモリ(英語:Static Random-Access Memory、略してSRAM)にロードされ、セキュアブートを完了するために、暗号化アルゴリズムに対応し、セキュアストレージエンティティ120にプリセットされた暗号化リソースベースライン情報に基づいて、プロセッサ110にプリセットされた固有の暗号化アルゴリズムが呼び出されて、アプリケーションのイメージファイルを検証する。暗号化リソースベースライン情報は、暗号化アルゴリズムのステータス情報および暗号化アルゴリズムに対応する公開鍵ベースライン値を含み、公開鍵ベースライン値は、公開鍵の平文または公開鍵のハッシュ値であってもよい。
ネットワークデバイスのセキュリティを考慮して、セキュアブートに使用される固有の暗号化アルゴリズムおよび公開鍵ベースライン値は、通常、ネットワークデバイスで別々にプリセットされ、固有の暗号化アルゴリズムおよび公開鍵ベースライン値の内容はオンラインで変更または更新されることができない。しかしながら、多くの場合、ネットワークデバイスにプリセットされ、セキュアブートに使用される固有の暗号化アルゴリズムは、要件を満たさない可能性がある。例えば、ネットワークデバイス内のプロセッサの計算能力の向上または暗号理論の進化により、ネットワークデバイスにプリセットされた固有の暗号化アルゴリズムのセキュリティ保護強度が低下され、ネットワークデバイスのセキュアブートプロセスに対して効果的なセキュリティ保護が実行されることができない。別の例では、ユーザのセキュリティ規格間の違いにより、ネットワークデバイスにプリセットされた固有の暗号化アルゴリズムは、一部のユーザのセキュリティ規格の要件を満たさない場合がある。現在使用されている暗号化アルゴリズムおよび公開鍵が要件を満たすことができない場合、配信されたネットワークデバイスまたはチップは再設計のためにリコールされる必要がある。その結果、複雑なプロセス、高コスト、および不十分なユーザ体験などの一連の問題が発生する。
これに基づいて、本出願の一実施形態は、セキュアブートに使用される暗号化リソースを管理するための方法を提供し、その結果、セキュアブートに使用される暗号化アルゴリズムは、異なる要件に基づいてオンラインで調整されることができる。本出願の実施形態で提供される技術的解決策では、暗号化リソースベースライン情報は、ネットワークデバイスのセキュアストレージエンティティに予め格納される。暗号化リソースベースライン情報は、複数のタイプの暗号化リソースベースライン情報を含み、複数のタイプの暗号化リソースベースライン情報は、複数の暗号化アルゴリズムに1対1に対応し、各タイプの暗号化リソースベースライン情報は、対応する暗号化アルゴリズムのステータス情報を含む。例えば、複数の暗号化アルゴリズムは暗号化アルゴリズム1および暗号化アルゴリズム2を含み、暗号化アルゴリズム1は暗号化リソースベースライン情報1に対応し、暗号化リソースベースライン情報1は暗号化アルゴリズム1のステータス情報を含み、暗号化アルゴリズム1のステータス情報は暗号化アルゴリズム1の使用ステータスを示し、暗号化アルゴリズム2は暗号化リソースベースライン情報2に対応し、暗号化リソースベースライン情報2は暗号化アルゴリズム2のステータス情報を含み、暗号化アルゴリズム2のステータス情報は暗号化アルゴリズム2の使用ステータスを示す。暗号化リソースベースライン情報1は、セキュアブートプロセスにおいてネットワークデバイスによって使用される暗号化リソース1に対して完全性検証を実行するために使用され、暗号化リソース1は、ネットワークデバイスがセキュアブートを実行するときにネットワークデバイスによって使用される暗号化アルゴリズム1および公開鍵Bに対応する。暗号化リソースベースライン情報2は、セキュアブートプロセスにおいてネットワークデバイスによって使用される暗号化リソース2対して完全性検証を実行するために使用され、暗号化リソース2は、ネットワークデバイスがセキュアブートを実行するときにネットワークデバイスによって使用される暗号化アルゴリズム2および公開鍵Aに対応する。ネットワークデバイスが暗号化リソースを更新する必要があると仮定すると、ネットワークデバイスは指示情報1および指示情報2を取得してもよく、指示情報1は暗号化アルゴリズム1を一意に識別し、指示情報2は、セキュアストレージエンティティに格納された暗号化リソースベースライン情報1を更新するようにネットワークデバイスに指示する。このようにして、ネットワークデバイスは、指示情報1および指示情報2に基づいて、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1を更新してもよい。例えば、ネットワークデバイスは暗号化アルゴリズム1を有効化する。別の例では、ネットワークデバイスは暗号化アルゴリズム1を中断する。このようにして、複数のタイプの暗号化リソースベースライン情報は、ネットワークデバイスのセキュアストレージエンティティにプリセットされる。ネットワークデバイスがライブネットワークで動作するプロセスでは、暗号化アルゴリズムが更新される必要があるとき、暗号化アルゴリズムに対応する暗号化リソースベースライン情報が更新されることができ、その結果、暗号化アルゴリズムの使用ステータスが変更される。したがって、セキュアブートに使用される暗号化アルゴリズムは、異なる要件に基づいてオンラインで調整され、異なるセキュリティ要件に基づいてセキュアブートを適応的に実行することが可能であり、ネットワークデバイスのセキュリティが向上される。
加えて、本出願の一実施形態は、オンラインで調整された暗号化アルゴリズムに基づいて、セキュリティ要件を満たす暗号化アルゴリズムに基づいてネットワークデバイスのセキュアブートを実施するためのセキュアブート方法を提供する。例えば、ネットワークデバイスのセキュアストレージエンティティに予め格納された複数の暗号化アルゴリズムは、暗号化アルゴリズム1および暗号化アルゴリズム2を含む。暗号化アルゴリズム2がセキュアブートのためにネットワークデバイスによって現在使用されており、暗号化アルゴリズム1がセキュアブートを実行するために必要に応じて有効化される必要があると仮定すると、ネットワークデバイスは、セキュアブートに使用される暗号化アルゴリズム2を暗号化アルゴリズム1に更新し、セキュアブートに使用される公開鍵ベースライン値aを公開鍵ベースライン値bに更新し、次いで、公開鍵ベースライン値bを使用して公開鍵Bの整合性の検証を実行してもよく、完全性検証に成功した暗号化アルゴリズム1および公開鍵Bは、セキュアブートプロセスでロードされたイメージファイルの署名を検証するために使用される。このようにして、複数の暗号化アルゴリズムがネットワークデバイスのセキュアストレージエンティティにプリセットされる。ネットワークデバイスがライブネットワークで動作するプロセスでは、セキュアブートを実行するために新しい暗号化アルゴリズムが使用される必要があるとき、異なる要件に基づいて暗号化アルゴリズムを更新することによって、セキュアブートに使用される暗号化アルゴリズムがオンラインで調整されることができ、その結果、異なるセキュリティ要件に基づいて、セキュアブートを実行するために対応する暗号化アルゴリズムを柔軟に呼び出すことが可能である。したがって、ネットワークデバイスのセキュリティが向上される。
例えば、図2に示すネットワークデバイス10が一例として使用される。暗号化リソースベースライン情報は、ネットワークデバイス10のセキュアストレージエンティティ120にプリセットされる。暗号化リソースベースライン情報は、5つの暗号化アルゴリズムに対応する5つのタイプの暗号化リソースベースライン情報を含み、各タイプの暗号化リソースベースライン情報は、2つの識別情報と1つの公開鍵ベースライン値とを含む。5つの暗号化アルゴリズムは、それぞれRSAアルゴリズム、ECCアルゴリズム、SM2アルゴリズム、SHAアルゴリズム、およびSM3アルゴリズムである。対応する5つのタイプの暗号化リソースベースライン情報は以下の通りである:暗号化リソースベースライン情報1:RSAアルゴリズムに対応する有効化識別情報2、中断識別情報2、および公開鍵ベースライン値2;暗号化リソースベースライン情報2:ECCアルゴリズムに対応するアルゴリズム識別情報1、中断識別情報1、および公開鍵ベースライン値1;暗号化リソースベースライン情報3:SM2アルゴリズム3に対応する有効化識別情報3、中断識別情報3、および公開鍵ベースライン値3;暗号化リソースベースライン情報4:SHAアルゴリズムに対応する有効化識別情報4、中断識別情報4、および公開鍵ベースライン値4;および暗号化リソースベースライン情報5:SM3アルゴリズムに対応する有効化識別情報5、中断識別情報5、および公開鍵ベースライン値5。各識別情報は、一度記録されると変更されることができないことに留意されたい。例えば、有効化識別情報2が記録されている場合、RSAアルゴリズムのステータスが有効状態であることを示す、または、中断識別情報2が記録された場合、RSAアルゴリズムのステータスが中断状態であることを示す。暗号化アルゴリズムに対応する有効化識別情報が有効状態を示し、中断識別情報が非中断状態を示す場合にのみ、その暗号化アルゴリズムは、セキュアブートのための有効な暗号化アルゴリズムとして使用され得る。ネットワークデバイス10のFlashメモリ130は、暗号化リソースを格納し、暗号化リソースは、少なくとも有効な暗号化アルゴリズムに対応する公開鍵を含み得る。加えて、Flashメモリ130は、有効な暗号化アルゴリズムに対応する秘密鍵を使用してデジタル署名された、アプリケーションのイメージファイルをさらに含む。
例えば、ネットワークデバイス10は、配信時にRSAアルゴリズムを使用するように構成されていると仮定される。ネットワークデバイス10のセキュアストレージエンティティ120にプリセットされた暗号化リソースベースライン情報の構造については、図3aを参照されたい。有効化識別情報2が記録され、公開鍵ベースライン値aが公開鍵ベースライン値2に対応する位置に書き込まれ、他の識別情報および公開鍵ベースライン値に対応する別の位置が記録される状態にある。電源が投入された後、ネットワークデバイス10は、有効なRSAアルゴリズムおよびセキュアストレージエンティティ120内の対応する公開鍵ベースライン値aに基づいて、Flashメモリ130に格納された暗号化リソース(少なくともRSAアルゴリズムに対応する公開鍵Aを含む)に対して完全性検証を最初に実行してもよく、検証に成功したFlashメモリ130内の暗号化リソースを使用して、アプリケーションのイメージファイルの署名が検証される。検証に成功した後、ネットワークデバイス10のセキュアブートを完了するために、アプリケーションのイメージファイルがロードされる。公開鍵ベースライン値aは、公開鍵Aのハッシュ値であってもよいし、公開鍵Aの平文であってもよく、アプリケーションのイメージファイルは、公開鍵Aに対応する秘密鍵Aを使用してデジタル署名される。
別の例では、ネットワークデバイス10は、配信時にRSAアルゴリズムを使用するように構成されていると仮定される。新しい要件に基づいて、ユーザは、セキュアブートを実行するためにECCアルゴリズムを使用する必要がある。この場合、ネットワークデバイス10は、証明書1を取得し、証明書1に基づいて、セキュアストレージエンティティ120内の暗号化リソースベースライン情報を更新する。更新された暗号化リソースベースライン情報の構造については、図3bを参照されたい。図3aに示す構造と比較すると、有効化識別情報1が記録され、公開鍵ベースライン値1に対応する位置に公開鍵ベースライン値bが書き込まれる点が異なる。加えて、ネットワークデバイス10のFlashメモリ130内の暗号化リソースおよびアプリケーションのイメージファイルがさらに更新される。更新された暗号化リソースは、少なくともECCアルゴリズムに対応する公開鍵Bを含んでもよく、アプリケーションの更新されたイメージファイルは、公開鍵Bに対応する秘密鍵Bを使用してデジタル署名される。更新が完了された後、ネットワークデバイス10は再起動し、有効なECCアルゴリズムおよびセキュアストレージエンティティ120内の対応する公開鍵ベースライン値bに基づいて、Flashメモリ130に格納された暗号化リソース(少なくともECCアルゴリズムに対応する公開鍵Bを含む)に対して完全性検証を最初に実行してもよく、アプリケーションのイメージファイルの署名は、Flashメモリ130内の、検証に成功した暗号化リソースを使用して検証される。検証に成功した後、ネットワークデバイス10のセキュアブートを完了するために、アプリケーションのイメージファイルがロードされる。
さらに別の例では、セキュアブートのためにネットワークデバイス10によって使用される暗号化アルゴリズムがRSAアルゴリズムからECCアルゴリズムに更新された後、ECCアルゴリズムを使用してセキュアブートが正常に実行されると、セキュリティを確保するために、ネットワークデバイス10は無効なRSAアルゴリズムをさらに中断し得ると仮定される。特定のプロセスは、証明書2が取得され、ネットワークデバイス10が、証明書2に基づいて、セキュアストレージエンティティ120内の暗号化リソースベースライン情報を更新するステップを含み得る。更新された暗号化リソースベースライン情報の構造については、図3cを参照されたい。図3bに示す構造と比較すると、中断識別情報2が記録されている点が異なる。このようにして、ネットワークデバイス10のセキュアストレージエンティティ120内のRSAアルゴリズムは中断され、その結果、ロールバック攻撃が効果的に回避されることができ、具体的には、置換された非セキュアまたは非準拠の暗号化アルゴリズムがセキュアブートに使用されることが効果的に防止される。したがって、ネットワークデバイス10のセキュリティが向上される。
本出願の実施形態で提供される技術的解決策によれば、ネットワークデバイスのセキュアストレージエンティティ内の暗号化リソースベースライン情報は、異なるセキュリティ要件に基づいて、要件を満たす暗号化アルゴリズムを取得するために柔軟に更新するように、ライブネットワーク環境で安全に更新され得ることが知見され得る。したがって、セキュリティ要件を満たす暗号化アルゴリズムに基づいてセキュアブートが実行される。
本出願の実施形態におけるセキュアストレージエンティティ内の暗号化リソースベースライン情報を更新するプロセスは、前述の例では詳細に説明されていないことに留意されたい。具体的な実装形態の詳細については、図4、図7、および図9~図11に示す以下の実施形態の関連説明を参照されたい。
このシナリオが本出願の実施形態で提供されるシナリオの例にすぎず、本出願の実施形態がこのシナリオに限定されないことは理解されよう。
添付の図面を参照して、以下で、実施形態を使用することにより、本出願の実施形態における冗長暗号化アルゴリズムに基づいてセキュアブートを実行するための方法の具体的な実装形態を詳細に説明する。
本出願の実施形態で提供されるセキュアブートに使用される暗号化リソースを管理するための方法は、ネットワークデバイスまたは汎用埋め込みデバイスなどのデバイスに適用可能である。一例としてネットワークデバイスを使用すると、本方法は、例えば、ネットワークデバイス内のプロセッサによって実行され得る。ネットワークデバイス内のプロセッサは、暗号化リソースを管理するために、以下の方法100または方法200を実行するように構成される。
ネットワークデバイスのセキュアストレージエンティティでは、暗号化リソースベースライン情報は、複数のタイプの暗号化リソースベースライン情報を含み、複数のタイプの暗号化リソースベースライン情報は、複数の暗号化アルゴリズムに1対1に対応し、具体的には、各タイプの暗号化リソースベースライン情報は、1つの暗号化アルゴリズムに一意に対応し、各タイプの暗号化リソースベースライン情報は、一意に対応する暗号化アルゴリズムのステータス情報を含む。複数の暗号化アルゴリズムは、少なくとも暗号化アルゴリズム1および暗号化アルゴリズム2を含み得る。複数の暗号化アルゴリズムに対応する複数のタイプの暗号化リソースベースライン情報は、少なくとも暗号化リソースベースライン情報1および暗号化リソースベースライン情報2を含み得る。暗号化リソースベースライン情報1は、暗号化アルゴリズム1の使用ステータスを示すステータス情報1を含み、暗号化リソースベースライン情報2は、暗号化アルゴリズム2の使用ステータスを示すステータス情報2を含む。暗号化リソースベースライン情報1は、セキュアブートプロセスにおいてネットワークデバイスによって使用される暗号化リソース1に対して完全性検証を実行するために使用され、暗号化リソース1は、ネットワークデバイスがセキュアブートを実行するときにネットワークデバイスによって使用される暗号化アルゴリズム1および公開鍵Bに対応する。暗号化リソースベースライン情報2は、セキュアブートプロセスにおいてネットワークデバイスによって使用される暗号化リソース2対して完全性検証を実行するために使用され、暗号化リソース2は、ネットワークデバイスがセキュアブートを実行するときにネットワークデバイスによって使用される暗号化アルゴリズム2および公開鍵Aに対応する。加えて、各タイプの暗号化リソースベースライン情報は、複数の暗号化アルゴリズムのそれぞれに対応する公開鍵ベースライン値をさらに含んでもよい。ある場合には、セキュアストレージエンティティは、現在有効な暗号化アルゴリズムおよび中断されている暗号化アルゴリズムに対応する公開鍵ベースライン値のみを格納し、対応する公開鍵ベースライン値を格納するために有効化されておらずかつ中断されていない暗号化アルゴリズム用の記憶領域を確保する。暗号化アルゴリズムが有効化されると、対応する公開鍵ベースライン値は、効果的なセキュアブートを保証するために、対応する確保された記憶領域に書き込まれ得る。例えば、暗号化リソースベースライン情報の構造については、図3a~図3cを参照されたい。別の場合には、セキュアストレージエンティティには、対応する公開鍵ベースライン値が暗号化アルゴリズムごとに格納され、現在有効な暗号化アルゴリズムおよび暗号化アルゴリズムに対応する公開鍵ベースライン値がセキュアブートに使用される。これは、図3aに対応する。例えば、この場合の暗号化リソースベースライン情報の構造については、図3dを参照されたい。
暗号化アルゴリズムを中断することは、暗号化アルゴリズムを無効化することと、暗号化アルゴリズムを失効させることとの2つの可能な意味を含み得る。暗号化アルゴリズムを無効化することは、暗号化アルゴリズムが一時的に使用不可能な状態に設定され、その結果、暗号化アルゴリズムがセキュアブートに一時的に使用されないことを意味する。しかしながら、暗号化アルゴリズムは、実際の要件に基づいて後で再び有効化されてもよい。暗号化アルゴリズムを失効させることは、暗号化アルゴリズムの使用が終了され、暗号化アルゴリズムがネットワークデバイス内で永続的に無効になり、暗号化アルゴリズムが後で再び有効化されることができないことを意味する。
暗号化アルゴリズム1は、例えば、以下のアルゴリズム、すなわち、RSAアルゴリズム、ECCアルゴリズム、SHAアルゴリズム、SM3アルゴリズム、またはSM2アルゴリズムのいずれか1つであってもよい。暗号化アルゴリズム2は、例えば、以下のアルゴリズム、すなわち、RSAアルゴリズム、ECCアルゴリズム、SHAアルゴリズム、SM3アルゴリズム、またはSM2アルゴリズムのいずれか1つであってもよい。暗号化アルゴリズム2は、暗号化アルゴリズム1とは異なる。
図4は、本出願の一実施形態による、セキュアブートに使用される暗号化リソースを管理するための方法100の概略フローチャートである。図4を参照されたい。例えば、方法100は、以下のステップを含み得る。
S101.指示情報1および指示情報2を取得し、指示情報1は暗号化アルゴリズム1を一意に識別し、指示情報2は、セキュアストレージエンティティに格納された暗号化リソースベースライン情報1を更新するようにネットワークデバイスに指示する。
ネットワークデバイスがライブネットワークで動作するプロセスでは、ユーザまたはサプライヤが実際の要件に基づいて現在有効な暗号化アルゴリズム1を更新する必要がある場合、ネットワークデバイスは指示情報1および指示情報2を取得し得る。
ネットワークデバイスが指示情報1および指示情報2を取得する方式は、以下を含むが、これに限定されない:方式1:ネットワークデバイスは、ユーザまたはサプライヤによって送信された更新命令を受信し、更新命令は、暗号化リソースベースライン情報1を更新することを示し、更新命令は、指示情報1および指示情報2を搬送する。例えば、ユーザまたはサプライヤは、ネットワーク管理システムを使用してネットワークデバイスにコマンドラインを送信し、コマンドラインは、暗号化リソースベースライン情報1を更新することを示し、コマンドラインは、指示情報1および指示情報2を搬送する。方式2:ネットワークデバイスは更新ファイル1を取得し、更新ファイル1は指示情報1および指示情報2を含む。例えば、更新ファイル1は、実際の要件に基づいてユーザまたはサプライヤに対応するデバイスによって生成され、ネットワークデバイスに送信されてもよい。別の例では、更新ファイル1は、実際の要件に基づいてネットワークデバイス上のユーザまたはサプライヤによって、代替として構成されてもよい。方式3:ネットワークデバイスは、信頼できる認証ツールへの通信接続を直接確立し、認証ツールは、指示情報1および指示情報2を格納する。方式4:ネットワークデバイスは、ユーザまたはサプライヤによって送信された更新命令を受信し、更新命令は、暗号化リソースベースライン情報1を更新することを示す。更新命令に応答して、ネットワークデバイスは、信頼できるデバイス(例えば、認証局(英語:Certificate Authority、略してCA)サーバ)に更新ファイル1を要求し、要求された更新ファイル1は、指示情報1および指示情報2を含む。
指示情報1および指示情報2が更新ファイル1を使用して取得される例では、ネットワークデバイスが更新ファイル1を取得する方式は、以下を含むが、これらに限定されない:方式1:ネットワークデバイスは、ユーザまたはサプライヤによって送信された更新命令を受信し、更新命令は、暗号化リソースベースライン情報1を更新することを示し、更新命令は、更新ファイル1を搬送する。例えば、ユーザまたはサプライヤは、ネットワーク管理システムを使用してネットワークデバイスにコマンドラインを送信し、コマンドラインは暗号化リソースベースライン情報1を更新することを示し、コマンドラインは更新ファイル1を搬送する。方式2:ネットワークデバイスは、ユーザまたはサプライヤによって送信された更新命令を受信し、更新命令は、暗号化リソースベースライン情報1を更新することを示す。更新命令に応答して、ネットワークデバイスは、信頼できるデバイス(例えば、CAサーバ)に更新ファイル1を要求する。方式3:ネットワークデバイスは、信頼できる認証ツールへの通信接続を直接確立し、認証ツールは更新ファイル1を格納し、認証ツールは更新ファイル1をネットワークデバイスに直接伝送する。
更新ファイル1または更新命令を取得するためにネットワークデバイスによって使用される転送プロトコルは、簡易ネットワーク管理プロトコル(英語:Simple Network Management Protocol、略称SNMP)、ネットワーク構成プロトコル(英語:Network Configuration Protocol、略してNETCONF)、またはYANGモデルを含むが、これらに限定されない。
指示情報1は、暗号化アルゴリズム1を一意に識別する。具体的な実装形態では、数ビットのバイナリ値が指示情報1を識別し得る。例えば、表1に示すように、3ビットコードに対応するバイナリ値が使用されて、異なる指示情報1を表し得る。表1に示すコードと暗号化アルゴリズムとの対応関係は、プロセッサにプリセットされている。このようにして、プロセッサは、指示情報1に対応する特定のバイナリ値に基づいて、指示情報1によって識別される暗号化アルゴリズムを決定し得る。例えば、以下の表1に示すように、コードが{0、0、0}である場合、具体的には、コードに対応するバイナリ値が0である場合、指示情報1はRSAアルゴリズムを識別する。別の例では、コードが{0、0、1}である場合、具体的には、コードに対応するバイナリ値が1である場合、指示情報1はECCアルゴリズムを識別する。別の具体的な実装形態では、指示情報1は、ビットマッピング方式で代替として表されてもよい。例えば、表2に示すように、8ビットのコードは異なる指示情報1を表すように設定されてもよく、各ビットは各暗号化アルゴリズムに1対1に対応する。ビットと暗号化アルゴリズムとの対応関係は、プロセッサにプリセットされる。このようにして、プロセッサは、指示情報1に対応するビットに基づいて、指示情報1によって識別される暗号化アルゴリズムを決定し得る。例えば、以下の表2に示すように、指示情報1が00000001である場合、すなわち、プリセットビットの最下位ビットが1である場合、指示情報はRSAアルゴリズムを一意に識別する。別の例では、指示情報1が00000010である場合、すなわち、プリセットビットの最下位から2番目のビットが1である場合、指示情報はECCアルゴリズムを一意に識別する。
指示情報2は、セキュアストレージエンティティに格納された暗号化リソースベースライン情報1を更新するようにネットワークデバイスに指示する。暗号化リソースベースライン情報1を更新することは、指示情報1によって識別される暗号化アルゴリズム1を有効化すること、または暗号化アルゴリズム1を中断することの2つの可能な意味を有する。例えば、指示情報2は、暗号化アルゴリズム1を有効化することを示してもよい。別の例では、指示情報2は、暗号化アルゴリズム1を中断することを代替として示してもよい。
更新ファイル1が指示情報2を搬送する例は、指示情報2を取得する方法を説明するために使用される。具体例では、指示情報2の異なる意味は、更新ファイル1内の特定のフィールドの値を使用して示されてもよい。例えば、指示情報2は、更新ファイル1内にあり、ファイルタイプを示すフィールドであってもよい。更新ファイル1内にあり、ファイルタイプを示すフィールドの値が1である場合、更新ファイル1が有効化ファイルであることを示す。この場合、指示情報2は、暗号化アルゴリズム1を有効化することを示す。更新ファイル1内の、ファイルタイプを示すフィールドの値が0である場合、更新ファイル1が中断ファイルであることを示す。この場合、指示情報2は、暗号化アルゴリズム1を中断することを示す。別の具体例では、指示情報2は、代替として、更新ファイル1内の別個のフィールドであってもよい。例えば、指示情報2の特定の意味は、バイナリ値またはビットマッピング方式を使用して示されてもよい。
いくつかの可能な実装形態では、更新ファイル1が有効化ファイルであるとき、現在有効な暗号化アルゴリズムが暗号化アルゴリズム2であると仮定すると、指示情報1および指示情報2に加えて、更新ファイル1は、公開鍵Aおよび署名Xをさらに含み得る。署名Xは、更新ファイル1が秘密鍵Aおよび暗号化アルゴリズム2を使用してデジタル署名された後に取得される。加えて、更新ファイル1は、現在有効な暗号化アルゴリズム2の識別子をさらに搬送してもよく、識別子は更新ファイル1を検証するために使用される。
具体的な実施に際して、ネットワークデバイスが更新ファイル1を受信した後、ネットワークデバイスによって実行される検証プロセスは、以下を含み得る。S11:暗号化アルゴリズム2のものである、更新ファイル1内の識別子に基づいて、暗号化アルゴリズム2に対応する、暗号化リソースベースライン情報内の暗号化リソースベースライン情報2を取得する。S12:暗号化リソースベースライン情報2内の有効化識別情報2および中断識別情報2に基づいて、暗号化アルゴリズム2が有効化されかつ中断されていない有効な暗号化アルゴリズムであると判定する。S13:ネットワークデバイスは、暗号化アルゴリズム2に対応する暗号化リソースベースライン情報2内の公開鍵ベースライン値aを取得し、公開鍵ベースライン値aを使用して更新ファイル1内の公開鍵Aに対して完全性検証を実行する。S14:ネットワークデバイスは、暗号化アルゴリズム2および検証に成功した公開鍵Aを使用して署名Xを検証する。S15:署名Xの検証に成功した場合、ネットワークデバイスは、更新ファイル1が完全で信頼できると判定する。このようにして、以下のS102が実行されてもよい。例えば、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1内の有効化識別情報1は、更新ファイル1内の指示情報1および指示情報2に基づいて有効状態に設定される。
更新ファイル1内の公開鍵Aは、ネットワークデバイスのルート公開鍵であってもよいことに留意されたい。あるいは、ルート秘密鍵を公開する回数を減らし、ネットワークデバイスのセキュリティおよび信頼性を向上させ、セキュアストレージエンティティ内のストレージリソースを節約するために、更新ファイル1内の公開鍵Aは、代替として、ルート公開鍵に基づいてネットワークデバイスによって導出された公開鍵、例えば、ネットワークデバイスの二次公開鍵であってもよい。ルート公開鍵は一次公開鍵であり、二次公開鍵は、ルート公開鍵をセキュアハッシュアルゴリズム(英語:Secure Hash Algorithm、略してSHA)(例えば、SHA256)を使用して処理して、取得された結果である。
ネットワークデバイスのセキュアストレージエンティティに予め格納された公開鍵ベースライン値aは、公開鍵Aに一意に対応し、公開鍵Aに対して完全性検証を実行するために使用される。公開鍵ベースライン値aは、例えば、公開鍵Aの平文または公開鍵Aのハッシュ値であってもよい。公開鍵ベースライン値aは、更新ファイル1で搬送された公開鍵Aの完全性を検証するために使用される。加えて、暗号化アルゴリズム2が有効であるとき、ネットワークデバイスのセキュアブートプロセスにおいて、公開鍵ベースライン値aは、フラッシュ(Flash)メモリに格納された暗号化リソース内の公開鍵Aに対して完全性検証を実行するために使用される。
加えて、セキュリティを向上させるために、更新ファイル1は、ネットワークデバイスのデバイス識別情報をさらに含んでもよく、デバイス識別情報はネットワークデバイスを識別する。例えば、ネットワークデバイスのデバイス識別情報は、以下の情報、すなわち、ネットワークデバイス内のチップ識別子、ネットワークデバイスのハードウェア識別子、ネットワークデバイスが属するユーザの識別子、ネットワークデバイスが属する製造業者の識別子、デバイスが属するドメインの識別子、ネットワークデバイスのIPアドレス、ネットワークデバイスのMACアドレス、またはネットワークデバイスが属するネットワークセグメントのアドレスのうちのいずれか1つを含む。この場合、例えば、ネットワークデバイスが更新ファイル1を受信した後にネットワークデバイスによって実行される検証プロセスにおけるS15は、署名Xの検証に成功した後、更新ファイル1からネットワークデバイスのデバイス識別情報を取得し、デバイス識別情報に対する照合検証を実行することを含み得る。ネットワークデバイスのデバイス識別情報がネットワークデバイスと一致する場合、更新ファイル1は信頼できると見なされる。そうでない場合、更新ファイル1は信頼できないと見なされ、S102は実行されない。
具体的な実装形態では、S15の後でS102の前に、本出願のこの実施形態は、以下をさらに含み得る。S16:暗号化アルゴリズム1に対応し、暗号化リソースベースライン情報内にある暗号化リソースベースライン情報1を取得する。S17:暗号化リソースベースライン情報1内の有効化識別情報1および中断識別情報1に基づいて、暗号化アルゴリズム1が、有効化されておらずかつ中断されていない暗号化アルゴリズムであると判定する。このようにして、有効化されるべき暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1が暗号化リソースベースライン情報1を更新できる状態にあることが保証され、以下のS102を実行するために信頼できる検証が実行される。
いくつかの他の可能な実装形態では、更新ファイル1が中断ファイルであるとき、現在有効な暗号化アルゴリズムが暗号化アルゴリズム1であると仮定すると、指示情報1および指示情報2に加えて、更新ファイル1は、公開鍵Bおよび署名Yをさらに含み得る。署名Yは、更新ファイル1が秘密鍵Bおよび暗号化アルゴリズム1を使用してデジタル署名された後に取得される。加えて、更新ファイル1は、現在有効な暗号化アルゴリズム1の識別子をさらに搬送してもよく、識別子は更新ファイル1を検証するために使用される。
具体的な実施に際して、ネットワークデバイスが更新ファイル1を受信した後、ネットワークデバイスによって実行される検証プロセスは、以下を含み得る。S21:暗号化アルゴリズム1のものである、更新ファイル1内の識別子に基づいて、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1を取得する。S22:暗号化リソースベースライン情報1内の有効化識別情報1および中断識別情報1に基づいて、暗号化アルゴリズム1が有効化されかつ中断されていない有効な暗号化アルゴリズムであると判定する。S23:ネットワークデバイスは、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1内の公開鍵ベースライン値bを取得し、公開鍵ベースライン値bを使用して更新ファイル1内の公開鍵Bに対して完全性検証を実行する。S24:ネットワークデバイスは、暗号化アルゴリズム1および検証に成功した公開鍵Bを使用して署名Yを検証する。S25:署名Yの検証に成功した場合、ネットワークデバイスは、更新ファイル1が完全で信頼できると判定する。このようにして、以下のS102が実行されてもよい。例えば、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1内の中断識別情報1は、更新ファイル1内の指示情報1および指示情報2に基づいて中断状態に設定される。
更新ファイル1内の公開鍵Bは、ネットワークデバイスのルート公開鍵であってもよいし、ルート公開鍵に基づいてネットワークデバイスによって導出された公開鍵であってもよい。
ネットワークデバイスのセキュアストレージエンティティに予め格納された公開鍵ベースライン値bは、公開鍵Bに一意に対応し、公開鍵Aに対して完全性検証を実行するために使用される。公開鍵ベースライン値bは、例えば、公開鍵Bの平文または公開鍵Bのハッシュ値であってもよい。公開鍵ベースライン値bは、更新ファイル1で搬送された公開鍵Bの完全性を検証するために使用される。加えて、暗号化アルゴリズム1が有効であるとき、ネットワークデバイスのセキュアブートプロセスにおいて、公開鍵ベースライン値bは、フラッシュ(Flash)メモリに格納された暗号化リソース内の公開鍵Bに対して完全性検証を実行するために使用される。
加えて、セキュリティを向上させるために、更新ファイル1は、ネットワークデバイスのデバイス識別情報をさらに含んでもよく、デバイス識別情報はネットワークデバイスを識別する。この場合、例えば、ネットワークデバイスが更新ファイル1を受信した後にネットワークデバイスによって実行される検証プロセスにおけるS25は、署名Yの検証に成功した後、更新ファイル1からネットワークデバイスのデバイス識別情報を取得し、デバイス識別情報に対する照合検証を実行するステップを含み得る。ネットワークデバイスのデバイス識別情報がネットワークデバイスと一致する場合、更新ファイル1は信頼できると見なされる。そうでない場合、更新ファイル1は信頼できないと見なされ、S102は実行されない。
更新ファイル1の完全性および信頼性を保証するために、更新ファイル1は、例えば、証明書であってもよい。図5aに示すように、暗号化アルゴリズム1を有効化する証明書1は、例えば、証明書タイプ、公開鍵A、暗号化アルゴリズム1、および署名Xを搬送してもよい。加えて、証明書1は、公開鍵ベースライン値b、暗号化アルゴリズム2、およびネットワークデバイスのデバイス識別情報をさらに搬送してもよい。証明書タイプは、証明書1が有効化証明書であることを示すために、指示情報2として使用され得る。暗号化アルゴリズム1は、例えば、ECCアルゴリズムを示すために、指示情報1として使用される001または00000010であってもよい。図5bに示すように、暗号化アルゴリズム1を中断するために使用される証明書2は、例えば、証明書タイプ、暗号化アルゴリズム1、公開鍵B、および署名Yを搬送してもよい。加えて、証明書2は、ネットワークデバイスのデバイス識別情報をさらに搬送してもよい。証明書タイプは、証明書2が中断証明書であることを示すために、指示情報2として使用され得る。暗号化アルゴリズム1は、例えば、RSAアルゴリズムを示すために、指示情報1として使用される000または00000001であってもよい。証明書1および証明書2のフォーマットは、カスタマイズされることも、標準のX.509フォーマット(すなわち、暗号における公開鍵証明書の標準フォーマット)を使用することもできることに留意されたい。
本出願のこの実施形態では、更新ファイル1の形式は特に限定されないことに留意されたい。ファイルが指示情報1および指示情報2を搬送することができる限り、任意の形式のファイルが更新ファイル1として使用され得る。
S102:指示情報1および指示情報2に基づいて、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1を更新する。
例えば、指示情報2が暗号化アルゴリズム1を有効化することを示す場合、ネットワークデバイスは、指示情報2に基づいて暗号化アルゴリズム1の使用ステータスを有効状態に設定し得る。暗号化リソースベースライン情報が、例えばハードウェア記録の形態でネットワークデバイスのセキュアストレージエンティティに格納されるとき、S102は、暗号化アルゴリズム1の使用ステータスが有効状態であることを示すように、暗号化リソースベースライン情報1内の有効化識別情報1を設定するステップを含み得る。別の場合には、暗号化リソースベースライン情報がソフトウェアの形態でネットワークデバイスに安全に格納されているとき、例えば、S102は、暗号化アルゴリズム1に対応するソフトウェア状態ビットを有効状態に設定するステップを含み得る。具体的な実装形態では、セキュアストレージエンティティが複数のプリセット暗号化アルゴリズムの対応する公開鍵ベースライン値を格納する場合、暗号化アルゴリズム1を有効化することは、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1内の公開鍵ベースライン値bを有効化することを代替として示してもよい。別の具体的な実装形態では、複数のプリセット暗号化アルゴリズムについて、セキュアストレージエンティティが、有効化された暗号化アルゴリズムに対応する公開鍵ベースライン値のみを格納し、対応する公開鍵ベースライン値の空間が、有効化されていない暗号化アルゴリズムに対応する暗号化リソースベースライン情報に確保されている場合、例えば、S102で暗号化リソースベースライン情報1を更新するステップは、ネットワークデバイスによって、暗号化アルゴリズム1に対応する公開鍵ベースライン値bを取得し、公開鍵ベースライン値bをセキュアストレージエンティティに格納するステップを含み得る。例えば、公開鍵ベースライン値bは、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1の公開鍵ベースライン値1に対応する、セキュアストレージエンティティ内の位置に書き込まれる。指示情報1および指示情報2が更新ファイル1で搬送され、暗号化アルゴリズム1に対応する公開鍵ベースライン値bも更新ファイル1で搬送され得る場合、ネットワークデバイスが暗号化アルゴリズム1に対応する公開鍵ベースライン値bを取得することは、ネットワークデバイスが更新ファイル1から公開鍵ベースライン値bを取得することであってもよい。
例えば、暗号化アルゴリズム2がRSAアルゴリズムであり、暗号化アルゴリズム1がECCアルゴリズムであると仮定される。方法100が実行される前に、暗号化リソースベースライン情報のフォーマットについては、図3aを参照されたい。方法100が実行された後、暗号化リソースベースライン情報のフォーマットについては、図3bを参照されたい。
暗号化リソースベースライン情報が更新されるとき、または暗号化リソースベースライン情報が更新された後、Flashメモリ内の暗号化リソースおよびアプリケーションのイメージファイルも、ネットワークデバイスの再起動後に新たに有効化された暗号化アルゴリズム1に基づいてセキュアブートが実行されることができることを保証するために、対応して更新され得る。Flashメモリ内の暗号化リソースは、アプリケーションのものであり、ネットワークデバイスによってロードされたイメージファイルに対して完全性検証を実行するために使用され、セキュアストレージエンティティ内の暗号化リソースベースライン情報は、Flashメモリ内の暗号化リソースに対して完全性検証を実行するために使用される。Flashメモリ内の更新された暗号化リソースは、暗号化アルゴリズム1に対応する公開鍵Bを含むが、これに限定されない。
例えば、Flashメモリ内の暗号化リソース1およびアプリケーションのイメージファイル1が更新される前に、Flashメモリの構造については、図6aを参照されたい。暗号化リソース1は、少なくとも公開鍵Aを含み得る。アプリケーションのイメージファイル1は、Bootromコード、Bootromコードの署名1、BootLoaderコード、BootLoaderコードの署名2、OSコード、OSコードの署名3、APPコード、およびAPPコードの署名4を含んでもよく、署名1から署名4は、暗号化アルゴリズム2と暗号化アルゴリズム2に対応する秘密鍵Aとに基づいてデジタル署名を実行することによって得られる。具体的な実施に際して、暗号化アルゴリズム2に基づいてセキュアブートを実行するプロセスは、以下を含み得る。S31:ネットワークデバイスに電源を投入する。S32:S102が実行される前に、暗号化リソースベースライン情報内のベースライン情報2に基づいてFlashメモリ内の暗号化リソース1に対して完全性検証を実行する。S33:Flashメモリ内の暗号化リソース1に対して完全性検証に成功した場合、Flashメモリ内の暗号化リソース1を使用してアプリケーションのイメージファイル1に対して完全性検証を実行して、セキュアブートを完了する。
Flashメモリ内の暗号化リソース1およびアプリケーションのイメージファイル1が更新された後、Flashメモリの構造については、図6bを参照されたい。Flashメモリ内の更新された暗号化リソースは、暗号化リソース2と表記される。暗号化リソース2は、少なくとも暗号化アルゴリズム1に対応する公開鍵Bを含んでもよい。アプリケーションのイメージファイル2は、Bootromコード、Bootromコードの署名1’、BootLoaderコード、BootLoaderコードの署名2’、OSコード、OSコードの署名3’、APPコード、APPコードの署名4’を含んでもよく、署名1’~署名4’は、暗号化アルゴリズム1と暗号化アルゴリズム1に対応する秘密鍵Bとに基づくデジタル署名を実行することによって得られる。具体的な実施に際して、暗号化アルゴリズム1に基づいてセキュアブートを実行するプロセスは、以下を含み得る。S41:ネットワークデバイスに電源を投入する。S42:S102が実行された後、暗号化リソースベースライン情報内の暗号化リソースベースライン情報1に基づいて、Flashメモリ内の暗号化リソース2に対して完全性検証を実行する。S43:Flashメモリ内の暗号化リソース2に対する完全性検証に成功した場合、Flashメモリ内の暗号化リソース2を使用してアプリケーションのイメージファイル2に対して完全性検証を実行して、セキュアブートを完了する。
アプリケーションのイメージファイル2におけるBootromコード、BootLoaderコード、OSコード、APPコードは、アプリケーションのイメージファイル1におけるBootromコード、BootLoaderコード、OSコード、APPコードと同一であってもよいし、異なっていてもよい。これは、本出願のこの実施形態では特に限定されない。暗号化リソースベースライン情報が更新されたときにソフトウェアアップグレードが実行される場合、アプリケーションのイメージファイル2およびアプリケーションのイメージファイル1内のコードの一部またはすべてが異なる。
図3bに示された暗号化リソースベースライン情報内の暗号化リソースベースライン情報1に基づいてFlashメモリ内の暗号化リソース2に対して完全性検証を実行するS42は、以下を含み得る。S421:暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1内の公開鍵ベースライン値bに基づいてFlashメモリ内の暗号化リソース2内の公開鍵Bの完全性を検証する。例えば、暗号化リソースベースライン情報1内の公開鍵ベースライン値bが公開鍵Bのハッシュ値である場合、S421は、Flashメモリ内の暗号化リソース2内の公開鍵Bのハッシュ値を計算し、ハッシュ値が公開鍵ベースライン値bと同じであるかどうかを比較し、ハッシュ値が公開鍵ベースライン値bと同じである場合、Flashメモリ内の暗号化リソース2に対する完全性検証に成功したと判定するステップを含み得る。例えば、暗号化リソースベースライン情報1内の公開鍵ベースライン値bが公開鍵Bの平文である場合、S421は、Flashメモリ内の暗号化リソース2内の公開鍵Bが公開鍵ベースライン値bと同じであるかどうかを比較し、公開鍵Bが公開鍵ベースライン値bと同じである場合、Flashメモリ内の暗号化リソース2に対する完全性検証に成功したと判定するステップを含み得る。加えて、S42は、以下をさらに含み得る。S422:暗号化リソースベースライン情報1内の暗号化アルゴリズム1が暗号化リソース2内の暗号化アルゴリズム1と一致するかどうかを検証する。
別の例では、指示情報2が暗号化アルゴリズム1を中断することを示す場合、ネットワークデバイスは、指示情報2に基づいて暗号化アルゴリズム1のステータスを中断状態に設定し得る。暗号化アルゴリズム1を中断するステップは、暗号化アルゴリズム1を無効化し、暗号化アルゴリズム1を失効させるステップを含み得る。ある場合には、指示情報2が暗号化アルゴリズム1を無効化することを示す場合、例えば、S102は、暗号化アルゴリズム1を無効化するステップ、具体的には、暗号化アルゴリズム1の使用ステータスを無効状態に設定するステップを含み得る。別の場合には、指示情報2が暗号化アルゴリズム1を失効させることを示す場合、例えば、S102は、暗号化アルゴリズム1を失効させるステップ、具体的には、暗号化アルゴリズム1の使用ステータスを失効状態に設定するステップを含み得る。例えば、暗号化アルゴリズム1の使用ステータスを失効状態に設定するステップは、暗号化アルゴリズム1の使用ステータスが失効状態であることを示すために、暗号化アルゴリズム1に対応する失効識別情報1を設定するステップ、具体的には、暗号化アルゴリズム1に対応する失効識別情報1を記録するステップであってもよい。このようにして、ユーザ要件またはセキュリティ要件を満たすことができない暗号化アルゴリズムが中断され、その結果、ネットワークデバイスのセキュアブートが効果的に実施されることができ、ネットワークデバイスのセキュリティが向上されることが保証される。
例えば、ネットワークデバイス内の暗号化リソースベースライン情報1に対応する暗号化アルゴリズム1のみが現在のセキュリティ要件を満たしておらず、暗号化アルゴリズム1が使用のためにロールバックされる可能性があり、暗号化リソースベースライン情報1がソフトウェアの形態で安全に格納されている場合、例えば、S102において、暗号化アルゴリズム1に対応するソフトウェア状態ビットが無効状態に設定されてもよく、その結果、暗号化アルゴリズム1が使用のために引き続きロールバックされる必要があるときに、暗号化アルゴリズム1に対応するソフトウェア状態ビットが有効状態に設定されることができる。あるいは、ネットワークデバイス内の暗号化リソースベースライン情報1に対応する暗号化アルゴリズム1が現在のセキュリティ要件を満たしておらず、暗号化アルゴリズム1が使用のためにロールバックされる可能性がない場合、または暗号化リソースベースライン情報1がハードウェア記録の形態で格納されている場合、暗号化アルゴリズム1に対応する失効識別情報1は失効状態に設定され得る。失効識別情報1が失効状態に設定されると、暗号化アルゴリズム1は永続的に無効になり、使用のためにロールバックされることはできない。
具体的なの実装形態では、S102が実行される前に、ネットワークデバイスのセキュアブートがプリセット条件を満たす場合、新たに有効化された暗号化アルゴリズムを使用することによってセキュアブートが安定して完了されることができると見なされてもよく、ネットワークデバイスは、以前に使用された暗号化アルゴリズム1を中断するためにS102を実施してもよい。例えば、プリセット条件は、ネットワークデバイスが新たに有効化された暗号化アルゴリズムを使用してセキュアブートを正常に実行するプリセット回数、または、セキュアブートが成功した後であり、ネットワークデバイスが正常に動作しているプリセット期間を意味してもよい。
例えば、暗号化アルゴリズム1がRSAアルゴリズムであると仮定される。方法100が実行される前に、暗号化リソースベースライン情報のフォーマットについては、図3a、図3b、または図3dを参照されたい。方法100が実行された後、暗号化リソースベースライン情報のフォーマットについては、図3cを参照されたい。
このようにして、ユーザ要件またはセキュリティ要件を満たすことができない暗号化アルゴリズムが中断され、その結果、ネットワークデバイスのセキュアブートが効果的に実施されることができ、ネットワークセキュリティがある程度向上されることが保証される。
本出願のこの実施形態で提供される方法によれば、現在使用されている暗号化アルゴリズムがセキュリティ要件またはユーザ要件を満たすことができなくなると、ネットワークデバイスはオンラインで指示情報を取得し、指示情報に基づいて、ネットワークデバイスのセキュアストレージエンティティにプリセットされた暗号化リソースベースライン情報を更新し、要件を満たす暗号化アルゴリズムを有効化するか、または要件を満たさない暗号化アルゴリズムを中断することが知見され得る。このようにして、更新された暗号化リソースベースライン情報を使用してネットワークデバイス上でセキュアブートが実行され、たとえセキュアブートにおける暗号化アルゴリズムの要件が変更したとしても、ネットワークデバイスまたはネットワークデバイス内のチップはリコールおよび再設計される必要はない。本出願のこの実施形態で提供される方法によれば、暗号化リソースは、変更されたセキュリティ要件を満たすように便利かつ柔軟に更新されることができ、異なる暗号化アルゴリズムは、必要に応じてセキュアブートを実行するために異なる要件に基づいてオンラインで調整されることができ、その結果、ネットワークデバイスのセキュリティが向上される。
本出願のこの実施形態では、現在の暗号化アルゴリズム2が要件を満たすことができない場合、ネットワークデバイスは、新しい暗号化アルゴリズム1を有効化することによって暗号化アルゴリズム2を中断し、要件を満たすように暗号化リソースを管理し得る。これに基づいて、本出願の一実施形態は、セキュアブートに使用される暗号化リソースを管理するための方法200をさらに提供する。図7に示すように、例えば、方法200は以下のステップを含み得る。
S201:指示情報1および指示情報2を取得し、指示情報1は暗号化アルゴリズム1を一意に識別し、指示情報2は暗号化アルゴリズム1を有効化することを示す。
S202:指示情報1および指示情報2に基づいて暗号化アルゴリズム1を有効化する。
例えば、S201は、ネットワークデバイスによって更新ファイル1を取得するステップであって、更新ファイル1は指示情報1および指示情報2を搬送する、ステップを含み得る。
S201およびS202の関連説明については、方法100のS101およびS102で暗号化アルゴリズム1を有効化する関連説明を参照することに留意されたい。
S203:指示情報3および指示情報4を取得し、指示情報3は暗号化アルゴリズム2を一意に識別し、指示情報4は暗号化アルゴリズム2の使用を中断することを示す。
例えば、暗号化リソースベースライン情報内の暗号化アルゴリズム2を中断することは、暗号化アルゴリズム2を無効にすること、および暗号化アルゴリズム2を失効させることの2つの可能な意味を含み得る。具体的な説明については、S102の暗号化アルゴリズム1を中断する関連説明を参照されたい。
ネットワークデバイスが指示情報3および指示情報4を取得する方式については、方法100においてネットワークデバイスが指示情報1および指示情報2を取得する方式の関連説明を参照されたい。
指示情報3および指示情報4は、更新ファイルで搬送されてもよいことに留意されたい。更新ファイルを取得する方式については、S101の更新ファイル1を取得する方式の関連説明を参照されたい。
指示情報3は、暗号化アルゴリズム2を一意に識別する。指示情報3は、例えば、暗号化アルゴリズム2に対応するコードのバイナリ値であってもよい。例えば、指示情報3は{0、0、0}であり、RSAアルゴリズムを識別する。あるいは、指示情報3は、例えば、暗号化アルゴリズム2に対応するビットであってもよい。例えば、指示情報3は00000001であり、RSAアルゴリズムを識別する。
指示情報4は、ネットワークデバイスに暗号化アルゴリズム2を中断することを示す。指示情報3および指示情報4が更新ファイル内で搬送される場合、具体例では、更新ファイル内の特定のフィールドの値は、指示情報4の異なる意味を示してもよい。例えば、指示情報4は、更新ファイル内にあり、ファイルタイプを示すフィールドであってもよい。別の具体例では、指示情報4は、代替として、更新ファイル内の別個のフィールドであってもよい。例えば、指示情報4の特定の意味は、バイナリ値またはビットマッピング方式を使用して示されてもよい。
例えば、S203は、ネットワークデバイスが更新ファイル2を取得することであってもよく、更新ファイル2は指示情報3および指示情報4を含んでもよい。更新ファイル2および更新ファイル1は、暗号化リソースを管理するために使用される2つの異なるファイルである。更新ファイル1のファイルタイプは有効化ファイルであり、更新ファイル2のタイプは中断ファイルである。例えば、更新ファイル2は、実際の要件に基づいてユーザまたはサプライヤに対応するデバイスによって生成され、ネットワークデバイスに送信されてもよい。別の例では、更新ファイル2は、実際の要件に基づいてネットワークデバイス上のユーザまたはサプライヤによって代替として構成されてもよい。更新ファイル2を取得する方式については、S101の更新ファイル1を取得する方式の関連説明を参照することに留意されたい。
指示情報3および指示情報4に加えて、更新ファイル2は、公開鍵Bおよび署名Zをさらに含んでもよい。署名Zは、新たに有効化された暗号化アルゴリズム1および暗号化アルゴリズム1に対応する秘密鍵Bを使用して更新ファイル2がデジタル署名された後に取得される。加えて、更新ファイル2は、現在有効な暗号化アルゴリズム1の識別子をさらに含んでもよく、識別子は、ネットワークデバイスのセキュリティを向上させるために、更新ファイル2を検証するために使用される。
具体的な実施に際して、ネットワークデバイスが更新ファイル2を受信した後、ネットワークデバイスによって実行される検証プロセスは、以下を含み得る。S51:暗号化アルゴリズム1のものである、更新ファイル2内の識別子に基づいて、暗号化アルゴリズム1に対応する、暗号化リソースベースライン情報内の暗号化リソースベースライン情報1を取得する。S52:暗号化リソースベースライン情報1内の有効化識別情報1および中断識別情報1に基づいて、暗号化アルゴリズム1が有効化されかつ中断されていない有効な暗号化アルゴリズムであると判定する。S53:ネットワークデバイスは、暗号化リソースベースライン情報1内の公開鍵ベースライン値bを取得し、公開鍵ベースライン値bを使用して更新ファイル2内の公開鍵Bに対して完全性検証を実行する。S54:ネットワークデバイスは、暗号化アルゴリズム1および検証に成功した公開鍵Bを使用して署名Zを検証する。S55:署名Zの検証に成功した場合、ネットワークデバイスは、更新ファイル2が完全で信頼できると判定する。このようにして、以下のS204が実行されてもよい。例えば、暗号化アルゴリズム2の使用ステータスが中断状態であることを示すために、更新ファイル2内の指示情報3および指示情報4に基づいて、暗号化アルゴリズム2に対応する暗号化リソースベースライン情報2内の中断識別情報2が設定される。
更新ファイル2内の公開鍵Bは、ネットワークデバイスのルート公開鍵であってもよく、更新ファイル2内の公開鍵Bは、ルート公開鍵に基づいてネットワークデバイスによって導出された公開鍵、例えばネットワークデバイスの二次公開鍵であってもよいことに留意されたい。
加えて、セキュリティを向上させるために、更新ファイル2は、ネットワークデバイスのデバイス識別情報をさらに含んでもよい。この場合、例えば、ネットワークデバイスが更新ファイル2を受信した後にネットワークデバイスによって実行される検証プロセスにおけるS55は、署名Zの検証に成功した後、更新ファイル2からネットワークデバイスのデバイス識別情報を取得し、デバイス識別情報に対する照合検証を実行するステップを含み得る。ネットワークデバイスのデバイス識別情報がネットワークデバイスと一致する場合、更新ファイル2は信頼できると見なされ、そうでない場合、更新ファイル2は信頼できないと見なされ、S204は実行されない。
指示情報を搬送する更新ファイルの完全性および信頼性を保証するために、指示情報を搬送する更新ファイルは、例えば証明書であってもよい。指示情報1および指示情報2が更新ファイル1で搬送され、指示情報3および指示情報4が更新ファイル2で搬送される場合、更新ファイル1は図5aに示す証明書1であってもよく、更新ファイル2は図8aに示す証明書3であってもよい。証明書3は、証明書タイプ、暗号化アルゴリズム2、公開鍵B、および署名Zを搬送してもよい。加えて、証明書3は、ネットワークデバイスのデバイス識別情報をさらに搬送してもよい。証明書タイプは、証明書3が中断証明書であることを示すために、指示情報4として使用され得る。暗号化アルゴリズム2は、例えば、RSAアルゴリズムを示すために、指示情報3として使用される000または00000001であってもよい。
このようにして、一方の更新ファイルは指示情報1および指示情報2を搬送し、他方の更新ファイルは指示情報3および指示情報4を搬送する。ネットワークデバイスのセキュリティを改善することに基づいて、以前に使用された暗号化アルゴリズムは、新しい暗号化アルゴリズムが有効化され、セキュアブートに安定して使用された後にのみ中断されるように制御されることができ、その結果、新たに有効化された暗号化アルゴリズムを使用して実行されるセキュアブートの失敗または不安定によりネットワークデバイスが正常に動作できないという問題が効果的に回避され、ネットワークデバイスの信頼性が改善される。
別の例では、S203は、ネットワークデバイスが更新ファイル1から指示情報3および指示情報4を取得するステップであってもよい。更新ファイル1は、指示情報1~指示情報4を含んでもよい。このようにして、ネットワークデバイスは、S201とS203とを同時に実施してもよい。更新ファイル1のファイルタイプは、有効化および中断ファイルであり、具体的には、更新ファイル1は、暗号化アルゴリズム1を有効化し、暗号化アルゴリズム2を中断する機能を有する。例えば、更新ファイルのファイルタイプに対応するフィールドの値は、0、1、および2であってもよい。更新ファイル1のファイルタイプに対応するフィールドの値が0である場合、ネットワークデバイスは、更新ファイルが有効化ファイルであると判定し、更新ファイル1のファイルタイプに対応するフィールドの値が1である場合、ネットワークデバイスは、更新ファイルが中断ファイルであると判定し、または、更新ファイル1のファイルタイプに対応するフィールドの値が2である場合、ネットワークデバイスは、更新ファイルが有効化および中断ファイルであると判定する。
更新ファイル1は、指示情報1~指示情報4に加えて、公開鍵A、公開鍵ベースライン値b、および署名Wをさらに含んでもよい。署名Wは、更新ファイル1が無効な暗号化アルゴリズム2および暗号化アルゴリズム2に対応する秘密鍵Aを使用してデジタル署名された後に取得される。
具体的な実施に際して、ネットワークデバイスが更新ファイル1を受信した後、S202の前に実施された検証プロセスについては、S11~S15を参照されたい。S204が実行される前に、実施のための検証プロセスは、以下を含み得る。S61:ネットワークデバイスが、暗号化リソースベースライン情報2内の公開鍵ベースライン値aを取得し、公開鍵ベースライン値aを使用して更新ファイル1内の公開鍵Aの完全性検証を実行する。S62:ネットワークデバイスは、暗号化アルゴリズム2および検証に成功した公開鍵Aを使用して署名Wを検証する。S63:署名Wの検証に成功した場合、更新ファイル1は完全で信頼できると考えられる。このようにして、以下のS204が実行されてもよい。例えば、暗号化アルゴリズム2に対応する暗号化リソースベースライン情報2内の中断識別情報2は、更新ファイル1内の指示情報3および指示情報4に基づいて中断状態に設定される。
更新ファイル1内の公開鍵Aは、ネットワークデバイスのルート公開鍵であってもよく、更新ファイル1内の公開鍵Aは、ルート公開鍵に基づいてネットワークデバイスによって導出された公開鍵、例えばネットワークデバイスの二次公開鍵であってもよいことに留意されたい。
加えて、セキュリティを向上させるために、更新ファイル1は、ネットワークデバイスのデバイス識別情報をさらに含んでもよい。この場合、例えば、ネットワークデバイスが更新ファイル1を受信した後にネットワークデバイスによって実行される検証プロセスは、署名Wの検証に成功した後、更新ファイル1からネットワークデバイスのデバイス識別情報を取得し、デバイス識別情報に対する照合検証を実行するステップを含み得る。ネットワークデバイスのデバイス識別情報がネットワークデバイスと一致する場合、更新ファイル1は信頼できると見なされる。そうでない場合、更新ファイル1は信頼できないと見なされ、S204は実行されない。
指示情報を搬送する更新ファイルの完全性および信頼性を保証するために、指示情報を搬送する更新ファイルは、例えば証明書であってもよい。更新ファイル1は、例えば、図8bに示す証明書4であってもよい。証明書4は、証明書タイプ、暗号化アルゴリズム1、公開鍵A、暗号化アルゴリズム2、および署名Wを搬送してもよい。加えて、証明書4は、公開鍵ベースライン値bおよびネットワークデバイスのデバイス識別情報をさらに搬送してもよい。証明書タイプは、指示情報2および指示情報4として使用されてもよく、証明書4が有効化および中断証明書であることを示す。例えば、暗号化アルゴリズム1は、ECCアルゴリズムを示すために、指示情報1として使用される001または00000010であってもよい。例えば、暗号化アルゴリズム2は、RSAアルゴリズムを示すために、指示情報3として使用される000または00000001であってもよい。署名Wは、暗号化アルゴリズム2と暗号化アルゴリズム2に対応する秘密鍵Aとを使用して証明書4に対するデジタル署名を実行することによって得られる。この場合、S203は、新たに有効化された暗号化アルゴリズム1を使用してネットワークデバイス上でセキュアブートを実行した後、ネットワークデバイスは、S204に基づいて暗号化アルゴリズム2を中断するために、S61~S63において証明書4を検証し、検証に成功した後に証明書4から指示情報3および指示情報4を取得するステップを含んでもよい。
このようにして、1つの更新ファイルが指示情報1~指示情報4を搬送する。ネットワークデバイスのセキュリティを改善することに基づいて、新しい暗号化アルゴリズムの有効化および以前に使用された暗号化アルゴリズムの中断は、ただ1つの更新ファイルを使用することによって実施されることができるので、ネットワークにおける情報交換が低減され、ネットワークリソースが節約される。
S204:指示情報3および指示情報4に基づいて暗号化アルゴリズム2の使用を中断する。
例えば、S202の後、暗号化アルゴリズム1および暗号化リソースベースライン情報内の公開鍵ベースライン値bを使用してネットワークデバイスによって実行されるセキュアブートがプリセット条件を満たす場合、ネットワークデバイスは、指示情報3および指示情報4に基づいて暗号化アルゴリズム2を中断してもよい。この例では、指示情報3および指示情報4は、例えば、中断命令で搬送されてもよく、またはネットワークデバイスは、中断命令の指示に応答して、信頼できるデバイスから指示情報3および指示情報4を要求する。例えば、プリセット条件は、セキュアブートが成功するプリセット回数、または、セキュアブートが成功した後であり、ネットワークデバイスが正常に動作しているプリセット期間を意味してもよい。暗号化アルゴリズム1を使用して実行されるセキュアブートがプリセット条件を満たす場合、暗号化アルゴリズム1および更新された暗号化リソースベースライン情報1内の公開鍵ベースライン値bを使用することによって、セキュアブートが安定して完了されることができると考えられ得る。
別の例では、ネットワークデバイスがS202の後にフラグビットを構成する場合、フラグビットの値は、暗号化アルゴリズム1が最初に使用されることを示す。この場合、ネットワークデバイスが再起動した後、フラグビットに基づいて、暗号化アルゴリズム1が最初に使用されたと判定され得る場合、ネットワークデバイスは指示情報3および指示情報4を取得し、暗号化アルゴリズム2を中断する。このようにして、ネットワークデバイスは、中断命令を受信する必要はなく、フラグビットによって示されるように、S202の前に使用された暗号化アルゴリズム2を中断し得る。この例では、フラグビットは、暗号化アルゴリズム2が中断された後にさらに変更されてもよく、その結果、フラグビットの値は、暗号化アルゴリズム1が最初に使用されないことを示し、フラグビットによって示されるように暗号化アルゴリズムがその後中断されないことを保証する。
指示情報4が暗号化アルゴリズム2を中断することを示す場合、ネットワークデバイスは、指示情報4に基づいて暗号化アルゴリズム2の使用ステータスを無効状態または失効状態に設定し得る。ある場合には、暗号化リソースベースライン情報がハードウェア記録の形態でネットワークデバイスのセキュアストレージエンティティに格納されるとき、例えば、S204は、暗号化アルゴリズム2に対応する暗号化リソースベースライン情報2内の無効化識別情報2を無効状態に設定するステップ、または失効識別情報2を失効状態に設定するステップを含み得る。別の場合には、暗号化リソースベースライン情報がソフトウェアの形態でネットワークデバイスに安全に格納されている場合、例えば、S204は、暗号化アルゴリズム2に対応するソフトウェア状態ビットを無効状態または失効状態に設定するステップを含み得る。
例えば、暗号化アルゴリズム2がRSAアルゴリズムであり、暗号化アルゴリズム1がECCアルゴリズムであると仮定される。方法200が実行される前に、暗号化リソースベースライン情報のフォーマットについては、図3aを参照されたい。方法200のS202が実行された後、S204の前に、暗号化リソースベースライン情報のフォーマットについては、図3bを参照されたい。方法200のS204が実行された後、暗号化リソースベースライン情報の構造については、図3cを参照されたい。
いくつかの可能な実装形態では、S202の前に使用された暗号化アルゴリズム2の中断は、ネットワークデバイスによってローカルに構成されたポリシーに従って代替として完了されてもよい。具体的な実施に際して、ネットワークデバイスが暗号化アルゴリズム1を有効化した後、ネットワークデバイスが、プリセット期間内に暗号化アルゴリズム1を使用して実行されるセキュアブート中に例外が発生しないこと、またはプリセット回数だけ暗号化アルゴリズム1を使用して実行されるセキュアブートが成功したことをローカルに検出した場合、ネットワークデバイスは、ローカルポリシー内の暗号化アルゴリズム2を中断するための条件が満たされたと判定し、暗号化アルゴリズム2を中断する。このようにして、ネットワークデバイスは、暗号化アルゴリズム2を中断するために使用される更新ファイルをさらに受信する必要はなく、暗号化アルゴリズム1が有効化された後に指示情報3および指示情報4を取得する必要はない。ローカルに簡略化された構成は、暗号化アルゴリズム1が有効化された後、暗号化アルゴリズム2がセキュアブートを実行するためにロールバックされるために要件を満たすことができないという問題を回避し、暗号化アルゴリズム2が暗号化アルゴリズム1への更新に失敗したときに暗号化アルゴリズム2があまりにも早く中断されるためにネットワークデバイスがブートできないという問題を解決する。したがって、ネットワークリソースが節約され、ネットワークデバイスのセキュリティが向上される。
この実装形態では、新しい暗号化アルゴリズムを有効化することによってネットワークデバイスのセキュアブートが正常に完了できることが保証された後、指示情報がオンラインで取得され、ネットワークデバイスのセキュアストレージエンティティ内の以前に使用された暗号化リソースベースライン情報が指示情報に基づいて中断されることが知見され得る。これにより、要件を満たさない暗号化アルゴリズムを使用してセキュアブートが実行されることを防止し、ネットワークデバイスのセキュアブートがセキュリティ要件またはユーザ要件を満たすことができないという問題を克服し、その結果、ネットワークデバイスは、必要に応じて、セキュアブートに使用される暗号化リソースを効果的に調整することができる。したがって、ネットワークデバイスのセキュリティが向上される。
図9は、本出願の一実施形態による別のセキュアブート方法300の概略フローチャートである。図9を参照されたい。例えば、方法300は、以下のステップを含み得る。
S301:セキュアブートに使用される暗号化アルゴリズム2を暗号化アルゴリズム1に更新する。
具体的な実施に際して、S301は、以下を含み得る。S301a:暗号化アルゴリズム1を有効化する。S301b:暗号化アルゴリズム2を中断する。S301aの特定の実装形態の関連説明については、方法100の暗号化アルゴリズム1を有効化する関連説明を参照するか、または方法200のS201およびS202の関連説明を参照されたい。S301bの特定の実装形態の関連説明については、方法100の暗号化アルゴリズム1を中断する関連説明を参照するか、または方法200のS203およびS204の関連説明を参照されたい。
例えば、ネットワークデバイスが更新ファイル1および更新ファイル2を取得し、更新ファイル1が暗号化アルゴリズム1を有効化するために使用され、更新ファイル2が暗号化アルゴリズム2を中断するために使用されると仮定すると、例えば、S301aは、更新ファイル1に基づいて暗号化アルゴリズム1を有効化するステップを含んでもよく、例えば、S301bは、更新ファイル2に基づいて暗号化アルゴリズム2を中断するステップを含んでもよい。暗号化アルゴリズム1はECCアルゴリズムであり、暗号化アルゴリズム2はRSAアルゴリズムであり、更新ファイル1の特定のフォーマットは図5aに示す証明書1であると仮定され、更新ファイル2の特定のフォーマットについては図8aに示す証明書3を参照されたい。S301が実行される前に、ネットワークデバイスのセキュアストレージエンティティにおける暗号化リソースベースライン情報の構造については、図3aまたは図3dを参照されたい。S302が実行された後、ネットワークデバイスのセキュアストレージエンティティにおける暗号化リソースベースライン情報の構造については、図3cを参照されたい。更新ファイル2は、暗号化アルゴリズム2を失効させるために代替として使用されてもよい。この場合、例えば、S301bは、更新ファイル2に基づいて暗号化アルゴリズム2を失効させるステップを含んでもよい。
別の例として、ネットワークデバイスが更新ファイル1を取得し、更新ファイル1が暗号化アルゴリズム1を有効化し、暗号化アルゴリズム2を中断するために使用されると仮定すると、例えば、S301aは、更新ファイル1に基づいて暗号化アルゴリズム1を有効化するステップを含んでもよく、例えば、S301bは、更新ファイル1に基づいて暗号化アルゴリズム2を中断するステップを含んでもよい。暗号化アルゴリズム1はECCアルゴリズムであり、暗号化アルゴリズム2はRSAアルゴリズムであり、更新ファイル1の具体的なフォーマットは図8bに示す証明書4であると仮定される。S301が実行される前に、ネットワークデバイスのセキュアストレージエンティティにおける暗号化リソースベースライン情報の構造については、図3aまたは図3dを参照されたい。S302が実行された後、ネットワークデバイスのセキュアストレージエンティティにおける暗号化リソースベースライン情報の構造については、図3cを参照されたい。
暗号化アルゴリズム2の使用を中断するステップは、具体的には、暗号化アルゴリズム2を無効化するステップ、または暗号化アルゴリズム2を失効させるステップであり得ることに留意されたい。
S302:セキュアブートに使用される公開鍵ベースライン値aを公開鍵ベースライン値bに更新する。
特定の実装形態では、セキュアストレージエンティティが複数のプリセット暗号化アルゴリズムの対応する公開鍵ベースライン値を格納する場合、暗号化アルゴリズム1を有効化することはまた、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1内の公開鍵ベースライン値bを有効化することを示し、セキュアブートに使用される公開鍵ベースライン値aを公開鍵ベースライン値bに更新することを示してもよい。
別の具体的な実装形態では、複数のプリセット暗号化アルゴリズムについて、セキュアストレージエンティティが、有効化された暗号化アルゴリズムに対応する公開鍵ベースライン値のみを格納し、対応する公開鍵ベースライン値の空間が、有効化されていない暗号化アルゴリズムに対応する暗号化リソースベースライン情報に確保されている場合、ネットワークデバイスは、暗号化アルゴリズム1に対応する公開鍵ベースライン値bを代替として取得し得、例えば、S302は、ネットワークデバイスによって、公開鍵ベースライン値bをセキュアストレージエンティティに格納するステップを含み得る。例えば、公開鍵ベースライン値bは、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1の公開鍵ベースライン値1に対応する、セキュアストレージエンティティ内の位置に書き込まれる。指示情報1および指示情報2が更新ファイル1で搬送され、暗号化アルゴリズム1に対応する公開鍵ベースライン値bも更新ファイル1で搬送され得る場合、ネットワークデバイスが暗号化アルゴリズム1に対応する公開鍵ベースライン値bを取得することは、ネットワークデバイスが更新ファイル1から公開鍵ベースライン値bを取得することであってもよい。
公開鍵ベースライン値bは、公開鍵Bに一意に対応し、公開鍵Bに対して完全性検証を実行するために使用される。公開鍵ベースライン値bは、例えば、公開鍵Bの平文または公開鍵Bのハッシュ値であってもよい。
例えば、暗号化アルゴリズム2がRSAアルゴリズムであり、暗号化アルゴリズム1がECCアルゴリズムであると仮定される。S301が実行される前に、暗号化リソースベースライン情報のフォーマットについては、図3aを参照されたい。S301およびS302が実行された後、暗号化リソースベースライン情報のフォーマットについては、図3bを参照されたい。
S303:公開鍵ベースライン値bを使用して公開鍵Bの完全性を検証し、完全性検証に成功した暗号化アルゴリズム1および公開鍵Bは、セキュアブートプロセスにおいてロードされたイメージファイルの署名を検証するために使用される。
S301およびS302と同時に、またはS302の後に、Flashメモリ内の暗号化リソースおよびアプリケーションのイメージファイルも対応して更新されて、ネットワークデバイスの再起動後に新たに有効化された暗号化アルゴリズム1に基づいてセキュアブートが実行されることができることを保証し得る。Flashメモリ内の暗号化リソースは、アプリケーションのものであり、ネットワークデバイスによってロードされたイメージファイルに対して完全性検証を実行するために使用され、セキュアストレージエンティティ内の暗号化リソースベースライン情報は、Flashメモリ内の暗号化リソースに対して完全性検証を実行するために使用される。Flashメモリ内の更新された第2の暗号化リソースは、暗号化アルゴリズム1に対応する公開鍵Bを含むが、これに限定されない。
S303の公開鍵ベースライン値bを使用して公開鍵Bの完全性を検証する関連説明については、方法100の図6a、S31~S33、図6b、およびS41~S43の関連説明を参照されたい。
いくつかの可能な実装形態では、S303の後に、方法300は、以下をさらに含み得る。
S304:公開鍵Bに対する完全性検証に成功した場合に応答して、公開鍵Bおよび暗号化アルゴリズム1を使用して、セキュアブートプロセスにおいてロードされたイメージファイルを検証する。
例えば、セキュアブートプロセスにおいてロードされるイメージファイルは、限定はしないが、Bootromコード、BootLoaderコード、OSコード、およびAPPコードを含み得ることに留意されたい。S304の詳細については、図1に対応する説明を参照されたい。例えば、電源投入後、ネットワークデバイスはBSBCを最初に実行する。BSBCは、公開鍵Bと暗号化アルゴリズム1を使用してBootromコードの署名1を検証し、検証に成功した後にのみBootromを実行する。次に、Bootromは、公開鍵Bと暗号化アルゴリズム1を使用してBootLoaderコードの署名2を検証し、検証に成功した後にのみBootLoaderを実行する。次に、BootLoaderは、公開鍵Bと暗号化アルゴリズム2を使用してOSコードの署名3を検証し、OSを起動する。次に、OSは、公開鍵Bと暗号化アルゴリズム1を使用してAPPコードの署名4を検証し、検証に成功した後にAPPを実行する。署名1~4は、公開鍵Bおよび暗号化アルゴリズム1に基づいて、Bootromコード、BootLoaderコード、OSコード、APPコードに対して別々にデジタル署名を実行することで、信頼できる署名システムにより得られる。
信頼できる署名システムが公開鍵Bおよび暗号化アルゴリズム1を使用してAPPコードに対してデジタル署名を実行するプロセスは、ハッシュアルゴリズムを使用してAPPコードに対してハッシュ計算を最初に実行してデジタルダイジェストdigest Y1を取得し、次いで秘密鍵Bを使用してdigest Y1に対してデジタル署名を実行して署名digestEncode Y1を取得するステップを含んでもよい。信頼できる署名システムは、APPコードおよびdigestEncode Y1をネットワークデバイスに送信してもよく、ネットワークデバイスのFlashメモリは、APPコードおよびdigestEncode Y1を格納する。セキュアブートでは、APPコードの署名digestEncode Y1を検証するプロセスは、APPコードをロードする前に、ネットワークデバイスが、APPコードの署名中に使用されたものと同じハッシュアルゴリズムを使用してハッシュ計算を最初に実行して、デジタルダイジェストdigest Y2を生成し、次いで、公開鍵Bを使用してdigestEncode Y1に対して署名検証を実行して、digestDecode Y3を取得し、digestDecode Y3とdigest Y2とが同じであるかどうかを判定し得るステップを含んでもよい。digestDecode Y3とdigest Y2とが同じである場合、APPコードが改ざんされておらず、認可された製造業者によってリリースされていると判定することができ、その結果、ネットワークデバイスによってロードされるAPPコードが安全で信頼性があることが保証される。秘密鍵Bおよび公開鍵Bは、ネットワークデバイスの製造業者によって提供される鍵のペアである。公開鍵Bは公的に可視であり、秘密鍵Bは秘密であり、製造者に対応する署名システムにのみ可視である。
本出願のこの実施形態で提供される方法によれば、現在使用されている暗号化アルゴリズムがセキュリティ要件またはユーザ要件を満たすことができなくなると、ネットワークデバイスは、セキュアブートに使用される暗号化アルゴリズムおよび対応する公開鍵ベースライン値をオンラインで更新して、要件を満たす暗号化アルゴリズムを可能にすることが知見され得る。このようにして、新たに有効化された暗号化アルゴリズムは、便利で柔軟に有効化され、ネットワークデバイスまたはネットワークデバイス内のチップをリコールすることなく、新たに有効化された暗号化アルゴリズムを使用してネットワークデバイス上でセキュアブートが実行され、その結果、セキュアブートは、変更されたセキュリティ要件を満たし、異なる暗号化アルゴリズムは、要件を満たす暗号化アルゴリズムに基づいてセキュアブートを実行するために、異なる要件に基づいてオンラインで調整される。したがって、ネットワークデバイスのセキュリティが向上される。
図10は、本出願の一実施形態によるネットワークリソース管理方法400の概略フローチャートである。本方法400はネットワークデバイスによって実施される。例えば、ネットワークリソース管理方法400は、以下のステップを含み得る。
S401:第1の指示情報および第2の指示情報を取得し、第1の指示情報は、第1の暗号化アルゴリズムを一意に識別し、第2の指示情報は、セキュアストレージエンティティに格納された第1の暗号化リソースベースライン情報を更新するようにネットワークデバイスに命令するために使用され、第1の暗号化リソースベースライン情報は、セキュアブートプロセスにおいてネットワークデバイスによって使用される第1の暗号化リソースに対して完全性検証を実行するために使用され、第1の暗号化リソースは、ネットワークデバイスがセキュアブートを実行するときにネットワークデバイスによって使用される第1の暗号化アルゴリズムおよび第1の公開鍵に対応し、第1の暗号化リソースベースライン情報は、第1の暗号化アルゴリズムのステータス情報を含み、第1の暗号化アルゴリズムのステータス情報は、第1の暗号化アルゴリズムの使用ステータスを示す。
S402:第1の指示情報および第2の指示情報に基づいて第1の暗号化リソースベースライン情報を更新する。
複数の暗号化アルゴリズムにおける第1の暗号化アルゴリズムは、以下のアルゴリズム、すなわち、非対称暗号化アルゴリズムRSA、楕円曲線暗号ECCアルゴリズム、中国暗号化非対称暗号化アルゴリズムSM2、セキュアハッシュアルゴリズムSHA、または暗号化ハッシュアルゴリズムSM3のいずれか1つであってもよい。
ある場合には、セキュアストレージエンティティは、プロセッサ内のワンタイムプログラマブルストレージスペースであってもよく、別の場合には、セキュアストレージエンティティは、プロセッサから独立したセキュリティチップであってもよいことに留意されたい。
方法400におけるネットワークデバイスは、具体的には、方法100におけるネットワークデバイスまたは方法200におけるネットワークデバイスであり得る。関連する動作の詳細については、方法100または方法200でネットワークデバイスによって実行される動作を参照されたい。具体的には、S401およびS402の関連説明については、方法100のS101およびS102または方法200のS201およびS202を参照されたい。第1の指示情報は、方法100または方法200の指示情報1であってもよく、第2の指示情報は、方法100または方法200の指示情報2であってもよく、第1の暗号化アルゴリズムは、方法100または方法200の暗号化アルゴリズム1であってもよく、第1の暗号化リソースベースライン情報は、方法100の暗号化リソースベースライン情報1であってもよい。
可能な実装形態では、第2の指示情報は、第1の暗号化アルゴリズムを有効化するように命令するために特に使用される。この場合、例えば、S402の第1の暗号化リソースベースライン情報を更新するステップは、第1の暗号化アルゴリズムの使用ステータスを有効状態に設定するために、第1の暗号化アルゴリズムのステータス情報を変更するステップを含み得る。例えば、第1の暗号化アルゴリズムの使用ステータスを有効状態に設定するステップは、第1の暗号化アルゴリズムの使用ステータスが有効状態であることを示すために、第1の暗号化アルゴリズムに対応する有効化識別情報を設定するステップを含み得る。ある場合には、暗号化リソースベースライン情報がハードウェア記録の形態でネットワークデバイスのセキュアストレージエンティティに格納されるとき、例えば、S402は、第1の暗号化アルゴリズムに対応する第1の暗号化リソースベースライン情報内の有効化識別情報を有効状態に設定するステップを含み得る。別の場合には、暗号化リソースベースライン情報がソフトウェアの形態でネットワークデバイスに安全に格納されている場合、例えば、S402は、第1の暗号化アルゴリズムに対応するソフトウェアステータスビットを有効状態に設定するステップを含み得る。
更新された第1の暗号化リソースベースライン情報は、第1の公開鍵ベースライン値をさらに含み、第1の公開鍵ベースライン値は、第1の公開鍵に対して完全性検証を実行するために使用される。具体的な実装形態では、セキュアストレージエンティティが複数のプリセット暗号化アルゴリズムの対応する公開鍵ベースライン値を格納する場合、第1の暗号化アルゴリズムを有効化することはまた、暗号化アルゴリズムに対応する第1の暗号化リソースベースライン情報内の第1の公開鍵ベースライン値を有効化することを示し得る。別の具体的な実装形態では、複数のプリセット暗号化アルゴリズムについて、セキュアストレージエンティティが、有効化された暗号化アルゴリズムに対応する公開鍵ベースライン値のみを格納し、対応する公開鍵ベースライン値が書き込まれる空間が、有効化されていない暗号化アルゴリズムに対応する暗号化リソースベースライン情報に確保されている場合、S402において第1の暗号化リソースベースライン情報を更新するステップは、ネットワークデバイスによって、第1の暗号化アルゴリズムに対応する第1の公開鍵ベースライン値を取得し、第1の公開鍵ベースライン値をセキュアストレージエンティティに格納するステップを含み得る。例えば、第1の公開鍵ベースライン値は、第1の暗号化アルゴリズムに対応する第1の暗号化リソースベースライン情報の、セキュアストレージエンティティ内の対応する位置に書き込まれる。第1の指示情報および第2の指示情報が第1の更新ファイルで搬送され、第1の暗号化アルゴリズムに対応する第1の公開鍵ベースライン値も第1の更新ファイルで搬送され得る場合、ネットワークデバイスが第1の暗号化アルゴリズムに対応する第1の公開鍵ベースライン値を取得することは、ネットワークデバイスが第1の更新ファイルから第1の公開鍵ベースライン値を取得することであってもよい。
第1の公開鍵ベースライン値は、第1の公開鍵のハッシュ値または第1の公開鍵の平文である。第1の公開鍵ベースライン値は、第1の公開鍵に一意に対応し、第1の公開鍵に対して完全性検証を実行するために使用される。第1の公開鍵ベースライン値は、第1の更新ファイルで搬送された第1の公開鍵の完全性を検証するために使用される。加えて、第1の暗号化アルゴリズムが有効であるとき、ネットワークデバイスのセキュアブートプロセスにおいて、第1の公開鍵ベースライン値は、不揮発性メモリに格納された暗号化リソース内の第1の公開鍵に対して完全性検証を実行するために使用される。
例えば、S402の後でセキュアブートの前に、方法400は、不揮発性メモリ内の第2の暗号化リソースを第1の暗号化リソースに更新するステップであって、更新された第1の暗号化リソースは第1の暗号化アルゴリズムおよび第1の公開鍵を含む、ステップをさらに含み得る。この場合、方法400は、更新された第1の暗号化リソースベースライン情報に基づいてセキュアブートを実行するステップをさらに含み得る。例えば、セキュアブートプロセスは、更新された第1の暗号化リソースベースライン情報に基づいて、不揮発性メモリに格納された更新された暗号化リソースに対して完全性検証を実行するステップと、不揮発性メモリに格納された暗号化リソースに対しての完全性検証に成功した場合、第1の公開鍵および第1の暗号化アルゴリズムに基づいて、アプリケーションのものである、第1の秘密鍵を使用してデジタル署名されたイメージファイルを検証するステップと、を含み得る。更新された第1の暗号化リソースベースライン情報は、第1の公開鍵ベースライン値を含む。例えば、更新された第1の暗号化リソースベースライン情報に基づいて、不揮発性メモリに格納された更新された暗号化リソースに対して完全性検証を実行するステップは、第1の公開鍵ベースライン値を使用して、不揮発性メモリに格納された第1の公開鍵に対して完全性検証を実行するステップを含み得る。このようにして、この実施形態では、要件を満たす暗号化アルゴリズムが柔軟に更新された後、要件を満たす暗号化アルゴリズムに基づいてセキュアブートが実行されることができ、その結果、ネットワークデバイスのセキュリティおよびネットワークデバイスの使用経験が改善される。
例えば、S401は、第1の更新ファイルを取得するステップであって、第1の更新ファイルは第1の指示情報および第2の指示情報を搬送する、ステップを含み得る。第1の更新ファイルの完全性および信頼性を保証するために、第1の更新ファイルは、例えば、証明書であってもよい。証明書のフォーマットは、カスタマイズされることも、標準のX.509フォーマット(すなわち、暗号における公開鍵証明書の標準フォーマット)を使用することもできる。加えて、第1の更新ファイルは、代替として、第1の指示情報および第2の指示情報を搬送することができ、ネットワークデバイスによって識別および解析されることができる任意のフォーマットの別のファイルであってもよい。第1の更新ファイルは、本出願の実施形態では特に限定されない。
例えば、第1の更新ファイルは、第2の秘密鍵および第2の暗号化アルゴリズムを使用して署名され、複数の暗号化アルゴリズムは、第2の暗号化アルゴリズムを含み、セキュアストレージエンティティは、第2の暗号化リソースベースライン情報を格納し、第2の暗号化リソースベースライン情報は、セキュアブートプロセスにおいてネットワークデバイスによって使用される第2の暗号化リソースに対して完全性検証を実行するために使用され、第2の暗号化リソースは、第2の暗号化アルゴリズムおよび第2の公開鍵に対応する。第1の暗号化リソースを使用してセキュアブートを実行する前に、ネットワークデバイスは、第2の暗号化リソースを使用してセキュアブートを実行し、第1の更新ファイルは第2の公開鍵をさらに含み、第1の暗号化リソースベースライン情報を更新する前に、方法400は、第2の暗号化アルゴリズムおよび第2の公開鍵に基づいて第1の更新ファイルの署名を検証するステップをさらに含んでもよい。第2の公開鍵は、ネットワークデバイスのルート公開鍵であるか、または、第2の公開鍵は、ネットワークデバイスのルート鍵に基づいて導出された公開鍵であり、例えば、ネットワークデバイスの二次公開鍵であってもよい。第1の更新ファイルの検証に成功したとき、第1の更新ファイルは改ざんされておらず、信頼できる送信元からのものであると見なされ、第1の更新ファイルは信頼できると判定され、暗号化リソースは、第1の更新ファイル内の第1の指示情報および第2の指示情報に基づいて更新され得ることが知見され得る。
可能な実施形態では、第2の公開鍵ベースライン値は、セキュアストレージエンティティにプリセットされる。このようにして、第2の暗号化アルゴリズムおよび第2の公開鍵に基づいて第1の更新ファイルの署名を検証する前に、方法400は、セキュアストレージエンティティに格納された第2の公開鍵ベースライン値に基づいて、第1の更新ファイルで搬送された第2の公開鍵に対して完全性検証を実行するステップと、第2の公開鍵に対する完全性検証が成功した場合、第2の暗号化アルゴリズムおよび第2の公開鍵に基づいて第1の更新ファイルの署名を検証するステップと、をさらに含み得る。したがって、セキュリティがより高くなる。
別の可能な実施形態では、第1の更新ファイルは、ネットワークデバイスのデバイス識別情報をさらに含んでもよく、デバイス識別情報はネットワークデバイスを識別する。例えば、ネットワークデバイスのデバイス識別情報は、以下の情報、すなわち、ネットワークデバイス内のチップ識別子、ネットワークデバイスのハードウェア識別子、ネットワークデバイスが属するユーザの識別子、ネットワークデバイスが属する製造業者の識別子、デバイスが属するドメインの識別子、ネットワークデバイスのインターネットプロトコルIPアドレス、ネットワークデバイスのメディアアクセス制御MACアドレス、またはネットワークデバイスが属するネットワークセグメントのアドレスのうちのいずれか1つを含む。この場合、第1の更新ファイルの検証に成功した後に、第1の更新ファイル内のデバイス識別情報およびネットワークデバイスに対して照合検証がさらに実行されてもよい。検証に成功した後、第1の更新ファイルはネットワークデバイス用であると判定され、方法400は、暗号化リソースを更新するために、第1の更新ファイルに基づいて実施される。
いくつかの可能な実装形態では、セキュアストレージエンティティは、第2の暗号化リソースベースライン情報をさらに格納し、第2の暗号化リソースベースライン情報は、セキュアブートプロセスにおいてネットワークデバイスによって使用される第2の暗号化リソースに対して完全性検証を実行するために使用され、第2の暗号化リソースは、第2の暗号化アルゴリズムおよび第2の公開鍵に対応し、第1の暗号化リソースを使用してセキュアブートを実行する前に、ネットワークデバイスは、第2の暗号化リソースを使用してセキュアブートを実行する。この場合、方法400は、第3の指示情報および第4の指示情報を取得するステップであって、第3の指示情報は第2の暗号化アルゴリズムを一意に識別し、第4の指示情報は第2の暗号化アルゴリズムの使用を中断することを示す、ステップをさらに含み得る。例えば、第3の指示情報および第4の指示情報は、第1の更新ファイルで搬送されてもよい。具体的には、第1の指示情報、第2の指示情報、第3の指示情報、および第4の指示情報はすべて、第1の更新ファイルで搬送される。別の例では、第3の指示情報および第4の指示情報は、第2の更新ファイルで代替として搬送されてもよい。具体的には、第1の指示情報および第2の指示情報は第1の更新ファイルで搬送され、第3の指示情報および第4の指示情報は第2の更新ファイルで搬送される。第2の更新ファイルは、ネットワークデバイスによって識別および解析され得る任意のフォーマットの証明書または別のファイルであり得ることに留意されたい。第2の更新ファイルは、本出願の実施形態では特に限定されない。
この実装形態では、方法400は、第3の指示情報および第4の指示情報に基づいて第2の暗号化アルゴリズムの使用を中断するステップをさらに含み得る。例えば、第2の暗号化アルゴリズムの使用を中断するステップは、第1の暗号化リソースベースライン情報を更新した後に第2の暗号化アルゴリズムの使用を中断するステップを含み得る。
第2の暗号化アルゴリズムの使用を中断するステップは、第2の暗号化アルゴリズムを無効化するステップ、または第2の暗号化アルゴリズムを失効させるステップを含み得る。例えば、第2の暗号化アルゴリズムを無効化するステップは、第2の暗号化アルゴリズムの使用ステータスを無効状態に設定するステップを含み得、例えば、第2の暗号化アルゴリズムを失効させるステップは、第2の暗号化アルゴリズムの使用ステータスを失効状態に設定するステップを含み得る。例えば、第2の暗号化アルゴリズムの使用ステータスを失効状態に設定するステップは、具体的には、第2の暗号化アルゴリズムの使用ステータスが失効状態であることを示すために、第2の暗号化アルゴリズムに対応する失効識別情報を設定するステップであり得る。
第2の暗号化アルゴリズムは、以下の暗号化アルゴリズム、すなわち、非対称暗号化アルゴリズムRSA、楕円曲線暗号ECCアルゴリズム、中国暗号化非対称暗号化アルゴリズムSM2、セキュアハッシュアルゴリズムSHA、または暗号化ハッシュアルゴリズムSM3のいずれか1つであってもよく、第1の暗号化アルゴリズムと第2の暗号化アルゴリズムは異なる暗号化アルゴリズムである。
第2の暗号化アルゴリズムを中断する関連する実施形態の詳細については、方法200のS203およびS204でネットワークデバイスによって実行される動作を参照されたい。第3の指示情報は方法200の指示情報3であってもよく、第4の指示情報は方法200の指示情報4であってもよく、第2の暗号化アルゴリズムは方法200の暗号化アルゴリズム2であってもよい。
別の可能な実装形態では、第2の指示情報は、第1の暗号化アルゴリズムの使用を中断するようにネットワークデバイスに命令するために特に使用される。この場合、S402の第1の暗号化リソースベースライン情報を更新するステップは、具体的には、第1の暗号化アルゴリズムの使用ステータスを中断状態に設定するために、第1の暗号化アルゴリズムのステータス情報を変更するステップである。第1の暗号化アルゴリズムの使用を中断するステップは、第1の暗号化アルゴリズムを無効化するステップ、または第1の暗号化アルゴリズムを失効させるステップを含み得る。第1の暗号化アルゴリズムを無効化するために、第1の暗号化リソースベースライン情報を更新するステップは、例えば、第1の暗号化アルゴリズムの使用ステータスを無効状態に設定するために、第1の暗号化アルゴリズムのステータス情報を変更するステップを含み得る。第1の暗号化アルゴリズムを失効させるために、第1の暗号化リソースベースライン情報を更新するステップは、例えば、第1の暗号化アルゴリズムの使用ステータスを失効状態に設定するために、第1の暗号化アルゴリズムのステータス情報を変更するステップを含み得る。例えば、第1の暗号化アルゴリズムのステータス情報が失効識別情報を含む場合、第1の暗号化アルゴリズムの使用ステータスを失効状態に設定するために、第1の暗号化アルゴリズムのステータス情報を変更するステップは、第1の暗号化アルゴリズムの使用ステータスを失効状態に設定するために失効識別情報を設定するステップを含む。
第1の暗号化アルゴリズムを中断する関連する実施形態に関する詳細については、方法100においてネットワークデバイスによって実行される第1の暗号化アルゴリズムを中断する関連動作を参照されたい。第3の指示情報は方法100の指示情報1であってもよく、第4の指示情報は方法100の指示情報2であってもよく、第1の暗号化アルゴリズムは方法100の暗号化アルゴリズム1であってもよい。
このようにして、前述の実施形態では、新しい暗号化アルゴリズムを有効化し、新たに有効化された暗号化アルゴリズムを使用してネットワークデバイス上でセキュアブートを実行した後、ネットワークデバイスは、要件を満たさない暗号化アルゴリズムを中断することができ、その結果、要件を満たさない暗号化アルゴリズムは、ネットワークデバイスのセキュアブートに使用されない。したがって、要件を満たすセキュアブートが実施され、ネットワークデバイスのセキュリティが向上される。
本出願のこの実施形態で提供される方法400によれば、現在使用されている暗号化アルゴリズムがセキュリティ要件またはユーザ要件を満たすことができなくなると、ネットワークデバイスはオンラインで指示情報を取得し、指示情報に基づいて、ネットワークデバイスのセキュアストレージエンティティにプリセットされた暗号化リソースベースライン情報を更新し、要件を満たす暗号化アルゴリズムを有効化するか、または要件を満たさない暗号化アルゴリズムを中断することが知見され得る。このようにして、更新された暗号化リソースベースライン情報を使用してネットワークデバイス上でセキュアブートが実行され、たとえセキュアブートにおける暗号化アルゴリズムの要件が変更したとしても、ネットワークデバイスまたはネットワークデバイス内のチップはリコールおよび再設計される必要はない。本出願のこの実施形態で提供される方法によれば、暗号化リソースは、変更されたセキュリティ要件を満たすように便利かつ柔軟に更新されることができ、異なる暗号化アルゴリズムは、必要に応じてセキュアブートを実行するために異なる要件に基づいてオンラインで調整されることができ、その結果、ネットワークデバイスのセキュリティが向上される。
本出願のこの実施形態の方法400によれば、具体的な実装と達成される効果については、図4および図7に示されている実施形態の関連説明を参照するべきであることに留意されたい。
図11は、本出願の一実施形態によるセキュアブート方法500の概略フローチャートである。方法500はネットワークデバイスによって実施される。例えば、セキュアブート方法500は、以下のステップを含み得る。
S501:セキュアブートに使用される第1の暗号化アルゴリズムを第2の暗号化アルゴリズムに更新する。
S502:セキュアブートに使用される第1の公開鍵ベースライン値を第2の公開鍵ベースライン値に更新する。
S503:第2の公開鍵ベースライン値を使用して第2の公開鍵の完全性を検証し、完全性検証に成功した第2の暗号化アルゴリズムおよび第2の公開鍵は、セキュアブートプロセスにおいてロードされたイメージファイルを検証するために使用される。
複数の暗号化アルゴリズムにおける第1の暗号化アルゴリズムは、以下のアルゴリズム、すなわち、非対称暗号化アルゴリズムRSA、楕円曲線暗号ECCアルゴリズム、中国暗号化非対称暗号化アルゴリズムSM2、セキュアハッシュアルゴリズムSHA、または暗号化ハッシュアルゴリズムSM3のいずれか1つであってもよい。第2の暗号化アルゴリズムは、以下のアルゴリズム、すなわち、RSA、ECCアルゴリズム、SM2、SHA、またはSM3のいずれか1つであってもよい。第1の暗号化アルゴリズムと第2の暗号化アルゴリズムとは異なる。
ある場合には、ネットワークデバイス内にあり、暗号化リソースベースライン情報を安全に格納するために使用されるセキュアストレージエンティティは、プロセッサ内のワンタイムプログラマブルストレージスペースであってもよく、別の場合には、セキュアストレージエンティティは、プロセッサから独立したセキュリティチップであってもよい。暗号化リソースベースライン情報は、第1の暗号化リソースベースライン情報および第2の暗号化リソースベースライン情報を含み得る。第1の暗号化リソースベースライン情報は、第1の暗号化アルゴリズムのステータス情報を含み、第1の暗号化アルゴリズムのステータス情報は、第1の暗号化アルゴリズムの使用ステータスを示す。同様に、第2の暗号化リソースベースライン情報は、第2の暗号化アルゴリズムのステータス情報を含み、第2の暗号化アルゴリズムのステータス情報は、第2の暗号化アルゴリズムの使用ステータスを示す。第1の暗号化リソースベースライン情報は、セキュアブートプロセスにおいてネットワークデバイスによって使用される第1の暗号化リソースに対して完全性検証を実行するために使用され、第1の暗号化リソースは、ネットワークデバイスがセキュアブートを実行するときにネットワークデバイスによって使用される第1の暗号化アルゴリズムおよび第1の公開鍵に対応する。同様に、第2の暗号化リソースベースライン情報は、セキュアブートプロセスにおいてネットワークデバイスによって使用される第2の暗号化リソースに対して完全性検証を実行するために使用され、第2の暗号化リソースは、ネットワークデバイスがセキュアブートを実行するときにネットワークデバイスによって使用される第2の暗号化アルゴリズムおよび第2の公開鍵に対応する。この場合、S502の後、第2の暗号化リソースベースライン情報を使用して第2の暗号化リソースに対して完全性検証が実行され得、次いで、完全性検証に成功した第2の暗号化リソースを使用して、セキュアブートプロセスにおいてロードされたイメージファイルが検証される。
方法500におけるネットワークデバイスは、具体的には、方法300におけるネットワークデバイスであり得る。関連する動作の詳細については、方法300でネットワークデバイスによって実行される動作を参照されたい。具体的には、S501~S503の関連説明については、方法300のS301~S303を参照されたい。第1の暗号化アルゴリズムは方法300の暗号化アルゴリズム1であってもよく、第2の暗号化アルゴリズムは方法300の暗号化アルゴリズム2であってもよく、第1の公開鍵ベースライン値は方法300の公開鍵ベースライン値aであってもよく、第2の公開鍵ベースライン値は方法300の公開鍵ベースライン値bであってもよく、第2の公開鍵は方法300の公開鍵Bであってもよい。
例えば、S501において第1の暗号化アルゴリズムを第2の暗号化アルゴリズムに更新するステップは、以下を含み得る。S501a:第1の暗号化アルゴリズムを中断するステップ。S501b:第2の暗号化アルゴリズムを有効化するステップ。S501bの第1の暗号化アルゴリズムを中断することは、第1の暗号化アルゴリズムを失効させること、または第1の暗号化アルゴリズムを無効化することの2つの可能な意味を含む。
例えば、方法500は、第2の公開鍵に対する完全性検証に成功した場合、ネットワークデバイスは、第2の公開鍵および第2の暗号化アルゴリズムを使用して、セキュアブートプロセスにおいてロードされたイメージファイルを検証し得るステップをさらに含み得る。
具体的な実装形態では、複数のプリセットされた暗号化アルゴリズムについて、セキュアストレージエンティティが対応する公開鍵ベースライン値を格納する場合、S502の第2の公開鍵ベースライン値は、ネットワークデバイスのセキュアストレージエンティティにプリセットされてもよい。この場合、第2の暗号化アルゴリズムが有効化されていることは、第2の暗号化アルゴリズムに対応する第2の暗号化リソースベースライン情報内の第2の公開鍵ベースライン値が有効化されていることを示す。
別の具体的な実装形態では、複数のプリセット暗号化アルゴリズムについて、セキュアストレージエンティティが、有効化された暗号化アルゴリズムに対応する公開鍵ベースライン値のみを格納し、対応する公開鍵ベースライン値が書き込まれる空間が、有効化されていない暗号化アルゴリズムに対応する暗号化リソースベースライン情報に確保されている場合、ネットワークデバイスは、第1の暗号化アルゴリズムに対応する第1の公開鍵ベースライン値をさらに取得し得る。S502は、第2の公開鍵ベースライン値を取得し、第2の公開鍵ベースライン値をネットワークデバイスのセキュアストレージエンティティに格納するステップを含み得る。例えば、第2の公開鍵ベースライン値を取得する方式は、第1の更新ファイルを取得するステップであって、第1の更新ファイルは第2の公開鍵ベースライン値を搬送する、ステップと、第1の更新ファイルから第2の公開鍵ベースライン値を取得するステップと、を含み得る。第2の公開鍵ベースライン値は、ネットワークデバイスのセキュアストレージエンティティに格納される。例えば、第2の公開鍵ベースライン値は、第2の暗号化アルゴリズムに対応する第2の暗号化リソースベースライン情報の、セキュアストレージエンティティ内の対応する位置に書き込まれてもよい。
第2の公開鍵ベースライン値は、第2の公開鍵のハッシュ値または第2の公開鍵の平文である。第2の公開鍵ベースライン値は、第2の公開鍵に一意に対応し、第2の公開鍵に対して完全性検証を実行するために使用される。第2の公開鍵ベースライン値は、第1の更新ファイルで搬送された第2の公開鍵の完全性を検証するために使用される。加えて、第2の暗号化アルゴリズムが有効であるとき、ネットワークデバイスのセキュアブートプロセスにおいて、第2の公開鍵ベースライン値は、不揮発性メモリに格納された暗号化リソース内の第2の公開鍵に対して完全性検証を実行するために使用される。
例えば、502の後でセキュアブートの前に、方法500は、セキュアブートに使用され、不揮発性メモリに格納された第1の暗号化リソースを第2の暗号化リソースに更新するステップであって、第2の暗号化リソースは第2の公開鍵を含む、ステップをさらに含んでもよい。この場合、例えば、S503は、第2の公開鍵ベースライン値を使用して、不揮発性メモリに格納された第2の公開鍵に対して完全性検証を実行するステップを含んでもよい。不揮発性メモリに格納された第2の暗号化リソースに対する完全性検証に成功した場合、第2の公開鍵および第2の暗号化アルゴリズムに基づいて、アプリケーションのものである、第2の秘密鍵を使用してデジタル署名されたイメージファイルに対して署名検証が実行される。このようにして、この実施形態では、要件を満たす暗号化アルゴリズムが柔軟に更新された後、要件を満たす暗号化アルゴリズムに基づいてセキュアブートが実行されることができ、その結果、ネットワークデバイスのセキュリティおよびネットワークデバイスの使用経験が改善される。
例えば、S501のセキュアブートに使用される第1の暗号化アルゴリズムを第2の暗号化アルゴリズムに更新するステップは、第1の指示情報および第2の指示情報を取得するステップであって、第1の指示情報は第2の暗号化アルゴリズムを一意に識別し、第2の指示情報は、第2の暗号化アルゴリズムを有効化するようにネットワークデバイスに命令するために使用される、ステップと、次いで、第1の指示情報および第2の指示情報に基づいて第2の暗号化アルゴリズムを有効化するステップと、を含み得る。例えば、第2の暗号化アルゴリズムを有効化するステップは、第2の暗号化アルゴリズムの使用ステータスを有効状態に設定するステップであってもよい。第2の暗号化アルゴリズムの使用ステータスを有効状態に設定するステップは、第2の暗号化アルゴリズムの使用ステータスが有効状態であることを示すために、第2の暗号化アルゴリズムに対応する有効化識別情報を設定するステップを含み得る。
例えば、第1の指示情報および第2の指示情報を取得するステップは、第1の更新ファイルを取得するステップであって、第1の更新ファイルは第1の指示情報および第2の指示情報を搬送する、ステップを含み得る。第1の更新ファイルの完全性および信頼性を保証するために、第1の更新ファイルは、例えば、証明書であってもよい。証明書のフォーマットは、カスタマイズされることも、標準のX.509フォーマット(すなわち、暗号における公開鍵証明書の標準フォーマット)を使用することもできる。加えて、第1の更新ファイルは、代替として、第1の指示情報および第2の指示情報を搬送することができ、ネットワークデバイスによって識別および解析されることができる任意のフォーマットの別のファイルであってもよい。第1の更新ファイルは、本出願の実施形態では特に限定されない。
例えば、第1の更新ファイルは、第1の秘密鍵および第1の暗号化アルゴリズムを使用して署名されてもよい。第2の暗号化リソースを使用してセキュアブートを実行する前に、ネットワークデバイスは、第1の暗号化リソースを使用してセキュアブートを実行し、第1の暗号化リソースベースライン情報は、セキュアブートプロセスにおいてネットワークデバイスによって使用される第1の暗号化リソースに対して完全性検証を実行するために使用され、第1の暗号化リソースは、第1の暗号化アルゴリズムおよび第1の公開鍵に対応する。第1の更新ファイルは、第1の公開鍵をさらに含み得る。方法500は、第1の暗号化アルゴリズムおよび第1の公開鍵に基づいて第1の更新ファイルの署名を検証するステップをさらに含み得る。第1の公開鍵は、ネットワークデバイスのルート公開鍵であるか、または、第1の公開鍵は、ネットワークデバイスのルート鍵に基づいて導出された公開鍵であり、例えば、ネットワークデバイスの二次公開鍵である。第1の更新ファイルの検証に成功したとき、第1の更新ファイルは改ざんされておらず、信頼できる送信元からのものであると見なされ、第1の更新ファイルは信頼できると判定され、暗号化リソースは、第1の更新ファイル内の第1の指示情報および第2の指示情報に基づいて更新され得ることが知見され得る。
第1の公開鍵ベースライン値がネットワークデバイスのセキュアストレージエンティティにプリセットされている場合、第1の暗号化アルゴリズムおよび第1の公開鍵に基づいて第1の更新ファイルの署名を検証するステップの前に、方法500は、第1の公開鍵ベースライン値に基づいて、第1の更新ファイルで搬送された第1の公開鍵に対して完全性検証を実行するステップと、第2の公開鍵に対する完全性検証に成功した場合、第2の暗号化アルゴリズムおよび第2の公開鍵に基づいて第1の更新ファイルの署名を検証するステップと、をさらに含み得る。したがって、セキュリティがより高くなる。
第1の更新ファイルは、ネットワークデバイスのデバイス識別情報をさらに含んでもよく、デバイス識別情報はネットワークデバイスを識別するものと仮定される。例えば、ネットワークデバイスのデバイス識別情報は、以下の情報、すなわち、ネットワークデバイス内のチップ識別子、ネットワークデバイスのハードウェア識別子、ネットワークデバイスが属するユーザの識別子、ネットワークデバイスが属する製造業者の識別子、デバイスが属するドメインの識別子、ネットワークデバイスのIPアドレス、ネットワークデバイスのMACアドレス、またはネットワークデバイスが属するネットワークセグメントのアドレスのうちのいずれか1つを含む。この場合、第1の更新ファイルの検証に成功した後に、第1の更新ファイル内のデバイス識別情報およびネットワークデバイスに対して照合検証がさらに実行されてもよい。検証に成功した後、第1の更新ファイルはネットワークデバイスに対して有効なファイルであると判定され、方法500は、ネットワークデバイスのセキュアブートを完了するために、第1の更新ファイルに基づいて実施される。
いくつかの可能な実装形態では、第1の更新ファイルは、第3の指示情報および第4の指示情報をさらに含んでもよく、第3の指示情報は、第1の暗号化アルゴリズムを一意に識別し、第4の指示情報は、第1の暗号化アルゴリズムの使用を中断することを示す。第1の暗号化アルゴリズムの使用は、第3の指示情報および第4の指示情報に基づいて中断される。第1の暗号化アルゴリズムの使用を中断する実行機会は、例えば、セキュアブートに使用される第1の暗号化アルゴリズムが第2の暗号化アルゴリズムに更新された後であってもよい。
いくつかの他の可能な実装形態では、ネットワークデバイスが第2の暗号化アルゴリズムおよび第2の公開鍵に基づいてセキュアブートを実行した後、方法500は、第3の指示情報および第4の指示情報を取得するステップであって、第3の指示情報は第1の暗号化アルゴリズムを一意に識別し、第4の指示情報は第1の暗号化アルゴリズムの使用を中断することを示す、ステップをさらに含み得る。例えば、第3の指示情報および第4の指示情報は、第2の更新ファイルで搬送されてもよい。この場合、第3の指示情報および第4の指示情報を取得するステップは、第2の更新ファイルから第3の指示情報および第4の指示情報を取得するステップであってもよい。このようにして、ネットワークデバイスは、第3の指示情報および第4の指示情報に基づいて第1の暗号化アルゴリズムの使用を中断してもよい。ネットワークデバイスが第1の暗号化アルゴリズムの使用を中断する実行機会は、例えば、セキュアブートに使用される第1の暗号化アルゴリズムが第2の暗号化アルゴリズムに更新された後であってもよい。
第1の暗号化アルゴリズムの使用を中断するステップは、第1の暗号化アルゴリズムを無効化するステップ、または第1の暗号化アルゴリズムを失効させるステップを含み得る。例えば、第1の暗号化アルゴリズムを無効化するステップは、第1の暗号化アルゴリズムの使用ステータスを無効状態に設定するステップを含み得、例えば、第1の暗号化アルゴリズムを失効させるステップは、第1の暗号化アルゴリズムの使用ステータスを失効状態に設定するステップを含み得る。例えば、第1の暗号化アルゴリズムの使用ステータスを失効状態に設定するステップは、具体的には、第1の暗号化アルゴリズムの使用ステータスが失効状態であることを示すために、第1の暗号化アルゴリズムに対応する失効識別情報を設定するステップであり得る。
例えば、方法500は、第1の更新ファイルを取得するステップであって、第1の更新ファイルは第2の暗号化アルゴリズムを有効化することを示す、ステップをさらに含み得る。例えば、方法500は、第2の更新ファイルを取得するステップであって、第2の更新ファイルは第1の暗号化アルゴリズムを失効させることを示す、ステップをさらに含み得る。この場合、例えば、S501は、第1の更新ファイルに基づいて第2の暗号化アルゴリズムを有効化するステップと、第2の更新ファイルに基づいて第1の暗号化アルゴリズムを失効させるステップと、を含み得る。このようにして、ネットワークデバイスのセキュアブートに使用される暗号化アルゴリズムが柔軟に調整され、ネットワークデバイスのセキュリティが向上される。
本出願のこの実施形態で提供される方法500によれば、現在使用されている暗号化アルゴリズムがセキュリティ要件またはユーザ要件を満たすことができなくなると、ネットワークデバイスは、セキュアブートに使用される暗号化アルゴリズムおよび対応する公開鍵ベースライン値をオンラインで更新して、要件を満たす暗号化アルゴリズムを有効化することが知見され得る。このようにして、新たに有効化された暗号化アルゴリズムは、便利で柔軟に有効化され、ネットワークデバイスまたはネットワークデバイス内のチップをリコールすることなく、新たに有効化された暗号化アルゴリズムを使用してネットワークデバイス上でセキュアブートが実行され、その結果、セキュアブートは、変更されたセキュリティ要件を満たし、異なる暗号化アルゴリズムは、要件を満たす暗号化アルゴリズムに基づいてセキュアブートを実行するために、異なる要件に基づいてオンラインで調整される。したがって、ネットワークデバイスのセキュリティが向上される。
本出願の本実施形態の方法500によれば、具体的な実装と達成される効果については、図9に示されている実施形態の関連説明を参照するべきであることに留意されたい。
これに対応して、本出願の一実施形態は、図12に示すように、通信装置1200をさらに提供する。通信装置1200は、トランシーバユニット1201および処理ユニット1202を含む。トランシーバユニット1201は、方法100から方法500に示される実施形態のいずれかにおいてネットワークデバイスによって実施される受信および送信動作を実行するように構成される。処理ユニット1202は、方法100から方法500に示される実施形態のいずれかにおいてネットワークデバイスによって実施される受信および送信動作以外の動作を実行するように構成される。例えば、通信装置1200が方法100においてネットワークデバイスによって実施される方法を実行するとき、トランシーバユニット1201は、指示情報1および指示情報2を取得するように構成されてもよく、処理ユニット1202は、指示情報1および指示情報2に基づいて、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1を更新するように構成されてもよい。別の例として、通信装置1200が方法300でネットワークデバイスによって実施される方法を実行するとき、トランシーバユニット1201は、指示情報1および指示情報2を取得するように構成されてもよく、またはトランシーバユニット1201は、指示情報3および指示情報4を取得するように構成されてもよく、処理ユニット1202は、セキュアブートに使用される暗号化アルゴリズム2を暗号化アルゴリズム1に更新するように構成されてもよく、または処理ユニット1202は、セキュアブートに使用される公開鍵ベースライン値aを公開鍵ベースライン値bに更新するように構成されてもよく、または処理ユニット1202は、公開鍵ベースライン値bを使用して公開鍵Bの完全性を検証するように構成されてもよい。
加えて、本出願の一実施形態は、図13に示されているように、通信装置1300をさらに提供する。通信装置1300は、通信インターフェース1301とプロセッサ1302とを含む。通信インターフェース1301は、第1の通信インターフェース1301aおよび第2の通信インターフェース1301bを含む。第1の通信インターフェース1301aは、方法100から方法500に示される実施形態のいずれかにおいてネットワークデバイスによって行われる受信動作を実行するように構成される。第2の通信インターフェース1301bは、方法100から方法500に示される実施形態のいずれかにおいてネットワークデバイスによって行われる送信動作を実行するように構成される。プロセッサ1302は、方法100から方法500に示される実施形態のいずれかにおいてネットワークデバイスによって実行される受信動作および送信動作以外の動作を実行するように構成される。例えば、プロセッサ1302は、方法100の実施形態における動作、すなわち、指示情報1および指示情報2に基づいて、暗号化アルゴリズム1に対応する暗号化リソースベースライン情報1を更新する動作を実行し得る。別の例では、プロセッサ1302は、方法300の実施形態における動作、すなわち、セキュアブートに使用される暗号化アルゴリズム2を暗号化アルゴリズム1に更新する動作、セキュアブートに使用される公開鍵ベースライン値aを公開鍵ベースライン値bに更新する動作、および公開鍵ベースライン値bを使用して公開鍵Bの完全性を検証する動作を実行し得る。
加えて、本出願の一実施形態は、図14に示されているように、通信装置1400をさらに提供する。通信装置1400は、メモリ1401と、メモリ1401と通信するプロセッサ1402とを含む。メモリ1401は、コンピュータ可読命令を含む。プロセッサ1402は、コンピュータ可読命令を実行するように構成され、その結果、通信装置1400は、方法100から方法500に示された実施形態のいずれかにおいてネットワークデバイスによって実行される方法を実行する。
前述の実施形態で、プロセッサが、中央処理装置(英語:central processing unit、略してCPU)、ネットワークプロセッサ(英語:network processor、略してNP)、またはCPUとNPとの組み合わせであってよいことは理解されよう。あるいは、プロセッサは、特定用途向け集積回路(英語:application-specific integrated circuit、略してASIC)、プログラマブルロジックデバイス(英語:programmable logic device、略してPLD)、またはそれらの組み合わせであってもよい。PLDは、複合プログラマブルロジックデバイス(英語:complex programmable logic device、略してCPLD)、フィールドプログラマブルゲートアレイ(英語:field-programmable gate array、略してFPGA)、ジェネリックアレイロジック(英語:generic array logic、略してGAL)、またはそれらの任意の組み合わせであってよい。プロセッサは1つのプロセッサであってよく、または複数のプロセッサを含み得る。メモリは、揮発性メモリ(英語:volatile memory)、例えば、ランダムアクセスメモリ(英語:random-access memory、略してRAM)を、含み得、メモリは、不揮発性メモリ(英語:non-volatile memory)を、例えば、読み取り専用メモリ(英語:read-only memory、略してROM)、フラッシュメモリ(英語:flash memory)、ハードディスクドライブ(英語:hard disk drive、略してHDD)、またはソリッドステートドライブ(英語:solid-state drive、略してSSD)を、さらに含み得る。メモリは、前述のメモリの組み合わせをさらに含み得る。メモリは1つのメモリであってよく、または複数のメモリを含み得る。具体的な実装形態では、メモリはコンピュータ可読命令を格納し、コンピュータ可読命令は複数のソフトウェアモジュール、例えば、送信モジュール、処理モジュール、および受信モジュールを含む。それぞれのソフトウェアモジュールを実行した後に、プロセッサは、それぞれのソフトウェアモジュールの指示に基づいて対応する動作を実行し得る。本実施形態において、ソフトウェアモジュールによって実行される動作は、実際には、ソフトウェアモジュールの指示に基づいてプロセッサによって実行される動作である。メモリ内のコンピュータ可読命令を実行した後に、プロセッサは、コンピュータ可読命令の指示に基づいて、ネットワークデバイスによって実行され得るすべての動作を実行できる。
前述の実施形態では、通信装置1300の通信インターフェース1301は、通信装置と別のデバイスとの間の通信を実施するために、通信装置1200内のトランシーバユニット1201として特に使用され得ることが理解されよう。
本出願の一実施形態は通信装置1500をさらに提供することに留意されたい。通信装置1500は、プロセッサ1510を含む。プロセッサ1510は、方法100から方法500に示された実施形態のいずれかにおいてネットワークデバイスによって実行される動作を実行するように構成される。例えば、プロセッサ1510は、通信装置1200内の処理ユニット1202、通信装置1300内のプロセッサ1302、または通信装置1400内のプロセッサ1402であってもよい。例えば、図15aに示すように、通信装置1500は、プロセッサ1510およびセキュリティチップ1520を含み得る。セキュリティチップ1520は、プロセッサ1510に接続されている。セキュリティチップ1520は、複数のタイプの暗号化リソースベースライン情報を格納するように構成される。複数のタイプの暗号化リソースベースライン情報は、複数の暗号化アルゴリズムに1対1に対応し、複数の暗号化アルゴリズムはすべてセキュアブートに適用可能である。別の例では、図15bに示すように、通信装置1500はプロセッサ1510を含む。プロセッサ1510は、ワンタイムプログラマブルストレージスペース1511を含む。ワンタイムプログラマブルストレージスペース1511は、複数のタイプの暗号化リソースベースライン情報を格納するために使用される。複数のタイプの暗号化リソースベースライン情報は、複数の暗号化アルゴリズムに1対1に対応し、複数の暗号化アルゴリズムはすべてセキュアブートに適用可能である。例えば、複数の暗号化アルゴリズムは、以下の暗号化アルゴリズム、すなわち、非対称暗号化アルゴリズムRSA、楕円曲線暗号ECCアルゴリズム、非対称暗号化アルゴリズムSM2、セキュアハッシュアルゴリズムSHA、または暗号化ハッシュアルゴリズムSM3のうちの任意の2つ以上を含む。
加えて、本出願の一実施形態は、図16に示すように、セキュリティチップ1600をさらに提供する。セキュリティチップ1600は、通信インターフェース1610およびストレージエンティティ1620を含む。ストレージエンティティ1620は、複数のタイプの暗号化リソースベースライン情報を格納し、複数の暗号化リソースは、複数のセキュアブートプロセスでネットワークデバイスによって使用される必要がある暗号化アルゴリズム情報および鍵情報にそれぞれ対応し、各タイプの暗号化リソースベースライン情報は、セキュアブートのたびに1対1に対応し、各タイプの暗号化リソースベースライン情報は、セキュアブートのたびに使用される暗号化リソースに対する完全性検証を実行するために使用される。複数のタイプの暗号化リソースベースライン情報は、第1の暗号化リソースベースライン情報および第2の暗号化リソースベースライン情報を含む。第1の暗号化リソースベースライン情報は、ネットワークデバイスが第1のセキュアブートを実行するときにネットワークデバイスによって使用される第1の暗号化リソースに対する完全性検証を実行するために使用され、第1の暗号化リソースは、第1の暗号化アルゴリズムおよび第1の公開鍵に対応し、第1の暗号化リソースベースライン情報は、第1の暗号化アルゴリズムのステータス情報を含み、第1の暗号化アルゴリズムのステータス情報は、第1の暗号化アルゴリズムの使用ステータスを示す。第2の暗号化リソースベースライン情報は、ネットワークデバイスが第2のセキュアブートを実行するときにネットワークデバイスによって使用される第2の暗号化リソースに対して完全性検証を実行するために使用され、第2の暗号化リソースは、第2の暗号化アルゴリズムおよび第2の公開鍵に対応し、第2の暗号化リソースベースライン情報は、第2の暗号化アルゴリズムのステータス情報を含み、第2の暗号化アルゴリズムのステータス情報は、第2の暗号化アルゴリズムの使用ステータスを示し、第2のセキュアブートは、ネットワークデバイスが第1のセキュアブートを実行した後にネットワークデバイスによって実行されるセキュアブートであり、第1の暗号化アルゴリズムは、第2の暗号化アルゴリズムとは異なる。
セキュリティチップ1600は、通信インターフェース1610を介してプロセッサと通信し、プロセッサは、セキュリティチップ1600に格納された複数のタイプの暗号化リソースベースライン情報を管理するように構成される。例えば、プロセッサは、通信装置1200内の処理ユニット1202、セキュリティチップ1600内のプロセッサ1602、通信装置1400内のプロセッサ1402、または通信装置1500内のプロセッサ1510であってもよい。第1の暗号化リソースベースライン情報は第1の公開鍵ベースライン値を含み、第1の公開鍵ベースライン値は第1の公開鍵の完全性を検証するために使用され、第2の暗号化リソースベースライン情報は第2の公開鍵ベースライン値を含み、第2の公開鍵ベースライン値は第2の公開鍵の完全性を検証するために使用される。
セキュリティチップ1600は、例えば、図15aに示す通信装置1500におけるセキュリティチップ1520であってもよいことに留意されたい。
第1の暗号化アルゴリズムは、以下の暗号化プログラム、すなわち、非対称暗号化アルゴリズムRSA、楕円曲線暗号ECCアルゴリズム、中国暗号化非対称暗号化アルゴリズムSM2、セキュアハッシュアルゴリズムSHA、または暗号化ハッシュアルゴリズムSM3のうちの任意の2つ以上を含むことに留意されたい。第2の暗号化アルゴリズムは、以下の暗号化プログラム、すなわち、非対称暗号化アルゴリズムRSA、楕円曲線暗号ECCアルゴリズム、非対称暗号化アルゴリズムSM2、セキュアハッシュアルゴリズムSHA、または暗号化ハッシュアルゴリズムSM3のうちの任意の2つ以上を含む。
第1の暗号化アルゴリズムのステータス情報は、第1の中断識別情報を含み得る。第1の中断識別情報は、失効識別情報および/または無効化識別情報を含み得る。第1の暗号化アルゴリズムのステータス情報は、第1の有効化識別情報を、代替として含み得る。同様に、第2の暗号化アルゴリズムのステータス情報は、第2の中断識別情報を含み得る。第2の中断識別情報は、失効識別情報および/または無効化識別情報を含み得る。第2の暗号化アルゴリズムのステータス情報は、第2の有効化識別情報を、代替として含み得る。
加えて、本出願の一実施形態は、コンピュータ可読記憶媒体をさらに提供する。コンピュータ可読記憶媒体は命令を格納する。命令がコンピュータ上で実行されると、コンピュータは、方法100から方法500に示される実施形態のいずれかにおいてネットワークデバイスによって実行される方法を実行することを可能にされる。
加えて、本出願の一実施形態は、コンピュータプログラムまたはコンピュータ可読命令を含む、コンピュータプログラム製品をさらに提供する。コンピュータ上でコンピュータプログラムが動作するか、またはコンピュータ可読命令が動作すると、コンピュータは、方法100から方法500に示される実施形態のいずれかにおいてネットワークデバイスによって実行される方法を実行することを可能にされる。
当業者であれば、実施形態の方法の一部またはすべてのステップが、汎用ハードウェアプラットフォームに加えて、ソフトウェアによって実施され得ることを、実装の前述の説明から明確に理解できる。このような理解に基づいて、本出願の技術的解決策は、ソフトウェア製品の形態で実施され得る。コンピュータソフトウェア製品は、記憶媒体に、例えば、読み取り専用メモリ(英語:read-only memory、ROM)/RAM、磁気ディスク、または光ディスクに格納されてもよく、本出願の実施形態または実施形態の一部に記載された方法を実行することをコンピュータデバイス(これは、パーソナルコンピュータ、サーバ、またはルータなどのネットワーク通信デバイスであってよい)に命令するためのいくつかのプログラムコードまたはいくつかの命令を含む。
本明細書の実施形態はいずれも漸進的に説明されており、実施形態の同じ部分または類似する部分については、これらの実施形態を参照するべきであり、それぞれの実施形態は他の実施形態との違いに焦点を当てている。特に、装置およびデバイスの実施形態は、基本的に方法実施形態に類似するので、簡単に記載されている。関連する部分については、方法の実施形態の一部の説明を参照されたい。説明されているデバイスおよび装置の実施形態は例にすぎない。別々の部分として説明されているモジュールは、物理的に別々であってもなくてもよく、モジュールとして表示されている部分は、物理的なモジュールであってもなくてもよく、1箇所に配置されてよく、または複数のネットワークユニットに分散されてもよい。モジュールの一部またはすべては、実施形態の解決策の目的を達成するための実際の要件に基づいて選択されてもよい。当業者であれば、創造的努力がなくても、本発明の実施形態を理解および実施できる。
前述の説明は、本出願の例示的な実装形態にすぎず、本出願の保護範囲を制限することを意図されない。当業者が本出願から逸脱することなくいくつかの改善と改良を行うことができ、その改善と改良が本出願の保護範囲内に入ることに留意されたい。