(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】ブートローダ検証拡張方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240723BHJP
G06F 21/64 20130101ALI20240723BHJP
G06F 21/51 20130101ALI20240723BHJP
【FI】
H04L9/32 200B
G06F21/64
G06F21/51
【外国語出願】
(21)【出願番号】P 2019202960
(22)【出願日】2019-11-08
【審査請求日】2022-11-07
(32)【優先日】2018-11-16
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】514098986
【氏名又は名称】トラストニック リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】ニコラス シャット
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2003-318891(JP,A)
【文献】特開2011-3020(JP,A)
【文献】特開2003-223235(JP,A)
【文献】国際公開第2014/059136(WO,A2)
【文献】国際公開第2010/066304(WO,A1)
【文献】特開2012-32925(JP,A)
【文献】特開2015-55898(JP,A)
【文献】特開2017-225054(JP,A)
【文献】米国特許出願公開第2010/0287363(US,A1)
【文献】米国特許出願公開第2010/0199086(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/64
G06F 21/51
(57)【特許請求の範囲】
【請求項1】
デバイス
によって実行される検証拡張方法であって、
さらなるアプリケーションと関連付けられた署名を検証するリクエストに応答して、デバイス外ストレージから非対称検証アプリケーションを入手するステップと、
前記非対称検証アプリケーションをロードするステップと、
初期アプリケーション・ハッシュをデバイス内ストレージから取得するステップと、
第1のハッシュ機能及び初期アプリケーション・ハッシュを使用して、前記非対称検証アプリケーションを検証するステップと、
前記非対称検証アプリケーションの前記検証の肯定的な検証結果に応答して、前記非対称検証アプリケーションを実行するステップと、
前記非対称検証アプリケーションを使用し、非対称鍵暗号法を使用して前記
さらなるアプリケーションと関連付けられた前記署名を検証するステップと
を含む、検証拡張方法。
【請求項2】
前記
さらなるアプリケーションと関連付けられた前記署名が、前記
さらなるアプリケーションのハッシュの署名である、請求項1に記載の検証拡張方法。
【請求項3】
前記非対称検証アプリケーションが、前記デバイスのマスタ・ブートローダを使用して検証され
ている、請求項
1又は2に記載の検証拡張方法。
【請求項4】
前記初期アプリケーション・ハッシュが、前記デバイスの製造又は組立て中に前記デバイスに埋め込まれ
ている、請求項
1から3までのいずれか一項に記載の検証拡張方法。
【請求項5】
前記非対称検証アプリケーションが、デバイス内ストレージに格納された1つ又は複数の鍵を使用して前記署名を検証する、請求項1から
4までのいずれか一項に記載の検証拡張方法。
【請求項6】
複数の鍵
をデバイス内ストレージに格納
するステップをさらに含み、前記鍵のそれぞれが特権レベルと関連付けられ、前記
さらなるアプリケーションと関連付けられた前記署名を検証する前記鍵の前記特権レベルと関連付けられた制約が、前記
さらなるアプリケーションに適用され
ている、請求項
5に記載の検証拡張方法。
【請求項7】
前記1つ又は複数の鍵が、前記デバイスの製造又は組立て中に前記デバイスに埋め込まれ
ている、請求項
5又は
6に記載の検証拡張方法。
【請求項8】
前記非対称検証アプリケーションが、前記非対称検証アプリケーションに埋め込まれた1つ又は複数の鍵を使用して前記署名を検証する、請求項1から
4までのいずれか一項に記載の検証拡張方法。
【請求項9】
前記
さらなるアプリケーションと関連付けられた前記署名の肯定的又は否定的な検証に応答して、前記非対称検証アプリケーション
をアンロード
するステップをさらに含む、請求項1から
8までのいずれか一項に記載の検証拡張方法。
【請求項10】
前記
さらなるアプリケーションを含む複数のデータに対応する複数の署名
を、前記非対称検証アプリケーションを使用して検証
するステップと、前記複数の署名が個別に肯定的又は否定的に検証されることが完了したのに応答して、前記非対称検証アプリケーション
をアンロード
するステップとをさらに含む、請求項1から
9までのいずれか一項に記載の検証拡張方法。
【請求項11】
前記
さらなるアプリケーションと関連付けられた前記署名の肯定的な検証に応答して、前記
さらなるアプリケーションをロード
するステップをさらに含む、請求項1から
10までのいずれか一項に記載の検証拡張方法。
【請求項12】
前記
さらなるアプリケーションと関連付けられた前記署名が、前記
さらなるアプリケーションのハッシュの署名であり、前記
さらなるアプリケーションと関連付けられた前記署名の肯定的な検証に応答して、前記
さらなるアプリケーションの前記ハッシュ
を前記デバイスに格納
するステップをさらに含む、請求項1から1
1までのいずれか一項に記載の検証拡張方法。
【請求項13】
前記
さらなるアプリケーションを入手するステップと、
前記
さらなるアプリケーションをロードするステップと、
前記
さらなるアプリケーションの前記ハッシュ及び第2のハッシュ機能を使用して、前記
さらなるアプリケーションを検証するステップと
をさらに含む、請求項1
2に記載の検証拡張方法。
【請求項14】
前記
さらなるアプリケーションの肯定的な検証に応答して、前記
さらなるアプリケーションを、実行
するステップ、又は実行可能コードによる使用のために利用できるように
するステップをさらに含む、請求項1
3に記載の検証拡張方法。
【請求項15】
前記
さらなるアプリケーションが、実行されるか、又は実行可能コードによる使用のために利用できるようにされた後、前記
さらなるアプリケーションの前記ハッシュ
を、デバイスから取り除
くステップをさらに含む、請求項1
4に記載の検証拡張方法。
【請求項16】
前記第1のハッシュ機能及び前記第2のハッシュ機能のアルゴリズムが、同じ計算機能を使用するが、入力として異なるデータをとる、請求項1
3から1
5までのいずれか一項に記載の検証拡張方法。
【請求項17】
前記デバイスが、ハードウェア非対称検証回路を含まない、請求項1から1
6までのいずれか一項に記載の検証拡張方法。
【請求項18】
請求項1から
17までのいずれか一項に記載の
検証拡張方法を行うようにデバイスを制御するためのコンピュータ・プログラム。
【請求項19】
請求項
18に記載のコンピュータ・プログラムを格納するストレージ媒体。
【請求項20】
データ処理を行うための処理回路と、
請求項1から
17までのいずれか一項に記載の
検証拡張方法を行うように前記処理回路を制御するためのコンピュータ・プログラムを格納するデータ・ストレージと
を備える、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本技法は、電子デバイスの分野に関する。より詳細には、本技法は、デバイスがデータの非対称検証を行えるようにすることに関する。
【背景技術】
【0002】
電子デバイスは、モバイル銀行取引、健康ケア・サービスへのアクセス、又は仕事の細目の取扱いなどの、慎重を要する可能性のある情報の取扱いを伴うことがあるサービスにアクセスするためにますます使用されている。また、モノのインターネット(IoT:Internet of Things)の展開の増加に伴い、例えば、ユーザがいるかどうかを示す温度データ又は近接情報などのセンサ情報を提供することができる電子デバイスによって提供された情報に基づいて、暖房、空調、又は街灯などのシステムが制御されることが、より普通になりつつある。これらのシナリオにおいて、これらのデバイスに対するソフトウェア・アップデートが安全に行われ、悪意のある当事者によって危険にさらされたこと、又はそうでなければ、操作されたことがないということを保証することが重要になる可能性がある。
【0003】
デバイスによって受信されたソフトウェア・アップデートを検証することができる暗号化技法が提供されることが可能である。しかし、IoTにおけるセンサ、アクチュエータ、又は他のデバイスなどの非常に小さいコンピューティング・デバイスにおいて、メモリ・ストレージ容量、処理能力、及び通信帯域幅は極度に抑制されることがあり、このことが、行われる可能性のある暗号化技法を限定する可能性がある。さらに、このようなデバイスは典型的には、専用暗号ハードウェアを欠いている。
【0004】
デバイス上でセキュアなソフトウェア・アップデートを行う際、対称鍵が漏れてセキュリティを役に立たなくするという高いリスクを非対称暗号の使用が取り除くので、一般的には、対称暗号の代わりに非対称暗号を使用する方がよい。しかし、IoTデバイスの限定的な能力を考慮すると、非対称暗号の使用は、めったに行われない活動(すなわち、ソフトウェア・アップデートの検証)のためにIoTデバイスのストレージ容量のかなりの部分を確保する非対称暗号ソフトウェアの大きさの理由から、実行不可能であることが示されてきた。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示の少なくとも一定の実施例は、上記で提示されたような、より多くのこれらの問題の1つに対処する。
【課題を解決するための手段】
【0006】
特定の態様及び実施例が、添付の特許請求の範囲に提示されている。
【0007】
1つの観点から眺めると、デバイスのための検証拡張方法が提供されることが可能であり、方法は、第1のデータと関連付けられた署名を検証するリクエストに応答して、デバイス外ストレージ(off-device storage)から非対称検証アプリケーションを入手することと、非対称検証アプリケーションをロードすることと、非対称検証アプリケーションを実行することと、非対称検証アプリケーションを使用し、非対称鍵暗号法を使用して第1のデータと関連付けられた署名を検証することと、を含む。
【0008】
デバイス外ストレージに非対称検証アプリケーションを格納すること、及び必要なときに非対称検証アプリケーションを入手することによって、非対称検証アプリケーションのためにデバイス上のメモリを永続的に確保する必要性が回避される。このことにより、IoTデバイスなどの能力が抑制されたデバイスが高セキュリティの非対称鍵暗号法を利用することが実現可能になる。
【0009】
いくつかの実例において、第1のデータと関連付けられた署名は、第1のデータのハッシュの署名である。このことにより、第1のデータ全体とは対照的に、ハッシュの署名を検証する必要があるだけで、署名の検証における計算上の複雑性が低減されることが可能である。
【0010】
いくつかの実例において、第1のデータは、さらなるアプリケーションである。このことにより、アプリケーションの完全性/安全性は、アプリケーションがロード/インストールされ、実行される前に、検証されることが可能である。いくつかの実例において、第1のアプリケーションは、フラッシュに書き込むこと、ストレージをフォーマットすること、鍵をインポートすること、又はヒューズをプログラムすること、などの特定のタスクを行うために使用されるソフトウェアであることが可能である。
【0011】
いくつかの実例において、非対称検証アプリケーションを実行する前に、デバイスは、第1のハッシュ機能及び初期アプリケーション・ハッシュを使用して、非対称検証アプリケーションを検証し、肯定的な検証結果に応答して、デバイスは、非対称検証アプリケーションを実行する。このことにより、非対称検証アプリケーション自体の完全性が確認されることが可能であり、したがって、偽造した非対称検証アプリケーションを悪意のある当事者がデバイスに提示する可能性を回避することによって、セキュリティをさらに向上させる。
【0012】
いくつかの実例において、非対称検証アプリケーションは、デバイスのマスタ・ブートローダを使用して検証される。このように、非対称検証アプリケーションは、デバイスの低レベル処理によって検証されることが可能であり、したがって、計算上のオーバヘッド、及びセキュリティ脆弱性のさらなるポイントを持ち込む可能性のある、さらなる中間処理の必要性を回避する。
【0013】
いくつかの実例において、初期アプリケーション・ハッシュは、デバイス内ストレージ(on-device storage)から取得される。このことにより、デバイス上の初期アプリケーション・ハッシュの格納を回避するのに必要なスペースは、回避されることが可能である。さらに、初期アプリケーション・ハッシュをデバイス内ストレージに格納しないことによって、初期アプリケーション・ハッシュがデバイスから抽出される可能性があるというリスクが低減され、したがってセキュリティを向上させる。
【0014】
いくつかの実例において、初期アプリケーション・ハッシュは、デバイスの製造又は組立て中にデバイスに埋め込まれる。このことにより、初期アプリケーション・ハッシュは、必要なときにすぐに利用でき(すなわち、初期アプリケーション・ハッシュが入手される間のさらなる遅延が、したがって回避されることが可能である)、初期アプリケーション・ハッシュは、デバイスの製造又は組立て後の、悪意のある当事者による修正/改ざんに対して耐性がある。さらに、初期アプリケーション・ハッシュをデバイスに通信する(例えば、送信する)必要性を回避することによって、初期アプリケーション・ハッシュをデバイスに通信するのに必要な通信帯域幅は節約されることが可能であり、このことは、IoTデバイスなどの帯域幅が抑制されるデバイスにおいて特に重要である可能性がある。
【0015】
さらに、初期アプリケーション・ハッシュを通信/送信しないことによって、悪意のある当事者によって、初期アプリケーション・ハッシュが通信/送信中に傍受されるか、修正されることになる(例えば、つまり、初期アプリケーション・ハッシュが、任意の未承認のアプリケーションに対応していた)という可能性が回避される。さらに、初期アプリケーション・ハッシュの配布は、別の当事者を信用する必要なく、製造業者又は組立業者によって、このように制御されることが可能である。
【0016】
いくつかの実例において、非対称検証アプリケーションは、デバイス内ストレージに格納された1つ又は複数の鍵を使用して署名を検証する。このことにより、デバイス内ストレージに1つ又は複数の鍵を格納することによって、1つ又は複数の鍵は、必要なときにすぐに利用できる(すなわち、鍵が入手される間のさらなる遅延が回避されることが可能である)。さらに、1つ又は複数の鍵を通信/送信する必要性を回避することによって、1つ又は複数の鍵をデバイスに通信するのに必要な通信帯域幅が節約され、このことは、IoTデバイスなどの帯域幅が抑制されるデバイスにおいて特に重要である可能性がある。さらに、1つ又は複数の鍵を通信/送信しないことによって、悪意のある当事者によって鍵が傍受されることになる可能性が回避される。
【0017】
いくつかの実例において、複数の鍵がデバイス内ストレージに格納され、鍵のそれぞれが特権レベルと関連付けられ、第1のデータと関連付けられた署名を検証する鍵の特権レベルと関連付けられた制約が、この第1のデータに適用される。このことにより、デバイスは、同じ検証処理を使用して、特権レベルと関連付けられた種々の制約が適用されることになるデータの範囲を取り扱うことを可能にされる。したがって、複数の異なる処理が異なる特権レベルのデータを検証する必要性が回避されることが可能であり、このことにより、必要なストレージ空間を低減させ、複雑性を低減させる。
【0018】
いくつかの実例において、1つ又は複数の鍵は、デバイスの製造又は組立て中にデバイスに埋め込まれる。このことにより、1つ又は複数の鍵は、必要なときにすぐに利用でき(すなわち、鍵が入手される間のさらなる遅延が、したがって、回避されることが可能である)、1つ又は複数の鍵は、デバイスの製造又は組立て後の、悪意のある当事者による修正/改ざんに対する耐性がある。さらに、1つ又は複数の鍵を通信/送信する必要性を回避することによって、1つ又は複数の鍵をデバイスに通信するのに必要な通信帯域幅が節約されることが可能であり、このことは、IoTデバイスなどの帯域幅が抑制されるデバイスにおいて特に重要である。
【0019】
さらに、1つ又は複数の鍵を通信/送信しないことによって、悪意のある当事者によって鍵が傍受される可能性が回避される。さらに、1つ又は複数の鍵の配布は、別の当事者を信用する必要なく、製造業者又は組立業者によって、このように制御されることが可能である。
【0020】
いくつかの実例において、非対称検証アプリケーションは、非対称検証アプリケーションに埋め込まれた1つ又は複数の鍵を使用して署名を検証する。このことにより、1つ又は複数の鍵は、非対称検証アプリケーションとともに統合パッケージの中でデバイスに提供されることが可能である。
【0021】
いくつかの実例において、第1のデータと関連付けられた署名の肯定的又は否定的な検証に応答して、非対称検証アプリケーションはアンロードされる。このことにより、非対称検証アプリケーションによって占有されたメモリは、他の用途のためにメモリを解放する用途の後、回復されることが可能である。例えば、非対称検証アプリケーションをアンロードすることによって、ファームウェア更新を行えるようにするのに十分なメモリが解放されることが可能である。より一般には、例えば、非対称検証アプリケーションをアンロードすることは、メモリの大きさが任意のフットプリントをソフトウェア・アップデートのために使用して、デバイス上でソフトウェア・アップデートを行えるようにする。
【0022】
いくつかの実例において、第1のデータを含む複数のデータに対応する複数の署名は、非対称検証アプリケーションを使用して検証され、複数の署名が個別に肯定的又は否定的に検証されることが完了したのに応答して、非対称検証アプリケーションはアンロードされる。
【0023】
このことにより、デバイスは、非対称検証アプリケーションを入手、ロード、及び実行する単一のインスタンスで複数の署名の検証を可能にすることによって、非対称検証アプリケーションを何度も入手及び/又はロード及び/又は実行する必要性を回避することができ、このことにより通信帯域幅を節約する。さらに、このように複数の署名を検証することによって、検証結果は、よりタイムリ且つ効率的な手法で提供されることが可能である。つまり、デバイスは、非対称検証アプリケーションをメモリから出し入れするために繰り返しスワップすることを回避することができる。
【0024】
いくつかの実例において、第1のデータと関連付けられた署名の肯定的な検証に応答して、第1のデータはロードされる。このことにより、データはデバイスに実際に利用できるようになる。データがアプリケーションである場合、デバイスのロードは、アプリケーションのためのインストール処理を含むことができる。いくつかの実例において、例えば、データが十分に小さい場合、署名は、まさにデータ自体のものである可能性があり、このことにより、データのハッシュを使用して検証する必要性を回避する。
【0025】
いくつかの実例において、第1のデータと関連付けられた署名は、第1のデータのハッシュの署名であり、第1のデータと関連付けられた署名の肯定的な検証に応答して、第1のデータのハッシュはデバイスに格納される。このことにより、デバイスはこれから、第1のデータが受信されるときは、第1のデータを検証するためにデータのハッシュを用意しておく。データの大きい項目に対して、署名の非対称検証は、ハッシュを検証する計算負荷より計算負荷がはるかに大きくなる傾向があるので、ハッシュの署名の使用は、より効率的である可能性がある。したがって、大きい第1のデータを単に非対称に検証するより、大きい第1のデータの小さいハッシュを検証すること、及び小さいハッシュの署名を非対称に検証することがより効率的である。
【0026】
いくつかの実例において、方法は、第1のデータを入手することと、第1のデータをロードすることと、第1のデータのハッシュ及び第2のハッシュ機能を使用して、第1のデータを検証することと、をさらに含む。つまり、例えば、デバイスは、入手した第1のデータのハッシュを生成し、デバイスが以前に格納していたか、そうでなければ利用できるようにしておいたハッシュ(例えば、非対称検証アプリケーションによって検証されたハッシュ)に、入手した第1のデータのハッシュがマッチするかどうかをチェックする。このことにより、第1のデータと関連付けられた署名が、第1のデータのハッシュの署名であるとき、第1のデータは入手され、以前にデバイスに格納されたハッシュを使用して検証されることが可能である。
【0027】
いくつかの実例において、第2のハッシュ機能を使用した第1のデータの肯定的な検証に応答して、第1のデータは、実行可能コードによる使用のために実行されるか、利用できるようにされる。このことにより、第1のデータがさらなるアプリケーションであるとき、さらなるアプリケーションはデバイス上で実際に実行され、第1のデータが非実行可能コードであるとき、第1のデータは、デバイス上での実行可能コードによる使用のために利用できるようにされる。いくつかの実例において、入手したデータにマッチするハッシュが見つからない場合、データは実行されることも、実行可能コードによる使用のために利用できるようにされることもなく、任意選択で、ユーザ又はオペレータは、マッチしないことに対して注意を喚起される。
【0028】
いくつかの実例において、第1のデータが、実行されるか、又は実行可能コードによる使用のために利用できるようにされた後、第1のデータのハッシュが、デバイスから取り除かれる。このことにより、デバイスに第1のハッシュを格納することと関連付けられたスペースは、回復されることが可能である。さらに、このことは、さらなる時点において第1のデータが再び検証されること(すなわち、第1のデータのハッシュが、もはやデバイスには利用できないので)を防ぐように機能することができる。
【0029】
いくつかの実例において、第1のハッシュ機能及び第2のハッシュ機能のアルゴリズムは、同じ計算機能を使用するが、入力として異なるデータをとる。このことにより、単一の計算ハッシュ機能しかデバイスに格納される必要がないので、スペースを節約し、全体的に、ハッシュ機能の性能についてのさらなるハードウェア/ソフトウェアの最適化を可能にする。さらに、いくつかの実例において、例えば、デバイスのマスタ・ブートローダを使用して、非対称検証アプリケーションを検証するために使用されたものと正確に同じハッシュ処理が、第1のデータを検証するために使用されることが可能である。したがって、1つの観点から、デバイスは、1つの第1のデータ(例えば、非対称検証アプリケーション又はさらなるアプリケーション)を受信することに応答して、デバイスに格納されたハッシュ全てのリストを単純にチェックし、これらのハッシュのいずれかが、デバイス自体によって生成された、受信した第1のデータのハッシュにマッチするかどうかを確かめることができる。
【0030】
いくつかの実例において、デバイスは、ハードウェア非対称検証回路を含まない。このことにより、いずれかの非対称検証がハードウェアで直接的に行われることはできず、代わりにソフトウェアで行われなければならない。このことは、デバイスに専用非対称検証回路を収容することと関連付けられたコスト及び物理スペースを節約する。このことは、性能、サイズ、及びエネルギー消費量が非常に抑制される可能性のあるIoTデバイスにとって特に重要である。
【0031】
1つの観点から眺めると、上述の方法のいずれかを行うようにデバイスを制御するためのコンピュータ・プログラムが提供されることが可能である。いくつかの実例において、コンピュータ・プログラムは、ストレージ媒体に格納される。
【0032】
1つの観点から眺めると、データ処理を行うための処理回路と、上述の方法のいずれかを行うように処理回路を制御するためのコンピュータ・プログラムを格納するデータ・ストレージと、を備える装置が提供されることが可能である。
【0033】
他の態様も、本開示を見直すと、特に、図面の簡単な説明、発明を実施するための形態、及び特許請求の範囲のセクションを見直すと、明らかになるであろう。
【0034】
添付の図面を参照しながら実例としてのみ、本開示の実例がこれから説明される。
【図面の簡単な説明】
【0035】
【
図1】データの非対称検証をデバイスが行うことを可能にするための、本開示の教示による第1の方法の実例を概略的に示す図である。
【
図2】データの非対称検証をデバイスが行うことを可能にするための、本開示の教示による第2の方法の実例を概略的に示す図である。
【
図3】本開示の教示を実行するために使用されることが可能な電子デバイスの実例を概略的に示す図である。
【発明を実施するための形態】
【0036】
本開示は様々な修正及び代替形式が可能であるが、具体的なアプローチが図面の中で実例として示され、本明細書において詳細に説明される。しかし、ここに添付されたこの図面及び詳細な説明は、開示された特定の形式に本開示を限定することを意図するものではなく、むしろ本開示は、特許請求された発明の精神及び範囲に含まれる全ての修正、均等物、及び代替をカバーするためのものであるということを理解されたい。
【0037】
本開示の上述の実例の特徴は、任意の適切な組合せで好都合に、また区別なく使用されることが可能であるということが認識されるであろう。
【0038】
図1は、データの非対称検証をデバイスが行うことを可能にするための、本開示の教示による第1の方法の実例100の概略図を示し、以下のステップを含む。
【0039】
ステップS110において、第1のデータと関連付けられた署名を検証するリクエストに応答して、デバイス外ストレージからデバイスによって非対称検証アプリケーションが入手される。方法は次に、ステップS115に続く。
【0040】
ステップS115において、デバイスは、非対称検証アプリケーションをロードする。方法は次に、ステップS120に続く。
【0041】
ステップS120において、デバイスは、非対称検証アプリケーションを実行する。方法は次に、ステップS130に続く。
【0042】
ステップS130において、デバイスは、非対称鍵暗号法を実行するために、非対称検証アプリケーションを使用して第1のデータと関連付けられた署名を検証する。非対称検証アプリケーションは、1つ又は複数の鍵を使用して署名を検証する。これらの1つ又は複数の鍵は格納されることも、いくつかの異なる場所から取得されることも可能である。いくつかの実例において、1つ又は複数の鍵のうちの少なくとも1つは、デバイス自体のデバイス内ストレージに格納される。
【0043】
いくつかの実例において、複数の鍵がデバイス内ストレージに格納され、ここで、鍵のそれぞれは、種々の特権レベルと関連付けられる。各特権レベルは、1つ又は複数の制約と関連付けられ、特定のデータ(例えば、第1のデータ)と関連付けられた署名を検証する鍵の特権レベルは、どの制約がこのデータに適用されるかを判断する(すなわち、特定の鍵に対応する制約が適用される)。例えば、1つの鍵は、デバイス上での特権モードの実行を可能にする最上位の鍵であることが可能であり、例えば、デバイスの製造業者/組立業者自身によって使用されることが可能である。別の鍵は、例えば、実行を許可されることはなく、例えば第三者に提供されることが可能である。
【0044】
追加又は代替として、いくつかの実例において、1つ又は複数の鍵のうちの少なくとも1つは、例えば、デバイスの製造業者又は組立てによって、デバイスの製造又は組立て中にデバイスに埋め込まれる。いくつかの実例において、デバイスは、複数の製造業者/組立業者によって製造されている/組み立てられている可能性があり、これらの製造業者/組立業者のそれぞれは、1つ又は複数の鍵をデバイスに埋め込む可能性がある。追加又は代替として、いくつかの実例においては、1つ又は複数の鍵のうちの少なくとも1つは、非対称検証アプリケーションが入手されるときに、非対称検証アプリケーションとともに1つ又は複数の鍵のうちの1つが、デバイスによって一体化して入手されるように、非対称検証アプリケーションに埋め込まれることが可能である。いくつかの実例において、1つ又は複数の鍵は、デバイスのデバイス内ストレージに永続的には格納されず、代わりに、必要なときにデバイス外ストレージからオンデマンドでデバイスによって入手されることが可能である。
【0045】
いくつかの実例において、非対称検証アプリケーションのいずれかのアンロードより前に、非対称検証アプリケーションの単一の入手、ロード、及び実行イベント中に、非対称検証アプリケーションによって、複数のデータに対応する複数の署名が検証されることが可能である。
【0046】
ステップS130における第1のデータと関連付けられた署名の否定的な検証に応答して、方法は、ステップS140に進む。ステップS140において、非対称検証アプリケーションはアンロードされる。いくつかの実例において、非対称検証アプリケーションは、否定的な検証に応答してアンロードされないということが明白に意図される。例えば、非対称検証アプリケーションは、ある将来の時点における第2のデータの検証を可能にするために、デバイス上でロードされたまま、及び/又は実行したままであることが可能である。
【0047】
ステップS130における第1のデータと関連付けられた署名の肯定的な検証に応答して、方法は、ステップS150に進む。ステップS150において、非対称検証アプリケーションはアンロードされる。いくつかの実例において、非対称検証アプリケーションは、肯定的な検証に応答してアンロードされないということが明白に意図される。例えば、非対称検証アプリケーションは、さらなるデータが現在有効であると認められる必要があるユーザ又はリモート・デバイスによる承認など、特定のトリガ条件が満たされるまで、デバイス上でロードされたまま、及び/又は実行したままであることが可能である。方法は次に、ステップS160に続く。
【0048】
ステップS160において、第1のデータと関連付けられた署名の肯定的な検証に応答して、第1のデータはロードされる。いくつかの実例において、ステップS150の前にステップS160が行われるということが明白に意図される。いくつかの実例において、第1のデータは、ある将来の時点においてロードされるだけであるか、又は全くロードされないということも明白に意図される。例えば、デバイスは、ある将来の時点において第1のデータが必要とされる場合、第1のデータと関連付けられた署名を先に検証することができる。
【0049】
図2は、データの非対称検証をデバイスが行うことを可能にするための、本開示の教示による第2の方法の実例200の概略図を示し、以下のステップを含む。
【0050】
第2の方法の実例において行われるいくつかのステップは、別途説明される場合を除いて、第1の方法の実例において行われる対応するステップと実質的に同一の手法で進み、したがって、再び詳細に論じられることはない。具体的には、ステップS210はステップS110と実質的に同一であり、ステップS215はステップS115と実質的に同一であり、ステップS220はステップS120と実質的に同一であり、ステップS230はステップS130と実質的に同一であり、ステップS240はステップS140と実質的に同一であり、ステップS250はステップS150と実質的に同一である。
【0051】
第2の方法の実例において、ステップS215の後、しかしステップS220の前に、ステップS218が行われる。ステップS218において、非対称検証アプリケーションを実行する前に、非対称検証アプリケーション自体が検証される。非対称検証アプリケーションは、第1のハッシュ機能及び初期アプリケーション・ハッシュの使用を通じて検証される。例えば、非対称検証アプリケーションのハッシュがデバイスによって生成され、この生成されたハッシュが初期アプリケーション・ハッシュにマッチするかどうかがチェックされる。第1のハッシュ機能は、セキュリティをさらに向上させるための暗号学的ハッシュ機能であることが可能である。適切なハッシュ・アルゴリズムの実例は、MD5、SHAのファミリ(例えば、SHA-256)、又は他の任意の適切なハッシュ・アルゴリズムを含む。
【0052】
いくつかの実例において、非対称検証アプリケーションは、デバイスのマスタ・ブートローダなどのデバイスの低レベル処理を使用して検証される。いくつかの実例において、初期アプリケーション・ハッシュは、デバイス内ストレージから取得される。他の実例において、初期アプリケーション・ハッシュは、デバイス外ストレージからオンデマンドで取得されることが可能である。いくつかの実例において、初期アプリケーション・ハッシュは、デバイスの製造又は組立て中にデバイス内ストレージに埋め込まれる。製造/組立て中、いくつかの実例において、初期アプリケーション・ハッシュは、製造/組立ての直後にデバイスに格納された唯一のハッシュであることが可能である。
【0053】
肯定的な検証結果に応答して、方法は、ステップS220に進み、非対称検証アプリケーションが実行される。否定的な検証結果に応答して、非対称検証アプリケーションは、実行されない。いくつかの実例において、否定的な検証結果に応答して、非対称検証アプリケーションはアンロードされることが可能である。
【0054】
第2の方法の実例において、第1のデータと関連付けられた署名は、第1のデータのハッシュの署名である。さらに、第2の方法の実例において、第1のデータは、さらなるアプリケーションである(例えば、セキュア・センシング・アプリケーション、銀行取引アプリケーション、又はデバイス・セキュリティ監視)。第1の方法の実例は、第1のデータと関連付けられた署名が第1のデータのハッシュの署名であり、第1のデータがさらなるアプリケーションである状況で行われることも可能であるということが明白に意図される。
【0055】
逆に、第2の方法の実例は、第1のデータと関連付けられた署名が第1のデータのハッシュの署名ではない場合、及び第1のデータがさらなるアプリケーションではない(例えば、非実行可能なデータである)場合に行われることが可能であるということが明白に意図される。
【0056】
しかし、描写された実例において、方法は、S220において非対称検証アプリケーションが実行された後、ステップS230に進み、ステップS230において、さらなるアプリケーションのハッシュの署名が検証される。
【0057】
図2において、ステップS250は、ステップS230の直後且つステップS270の前に行われるものとして描写される。しかし、ステップS250は一方で、ステップS270の後且つステップS280の前に行われることが可能であるということ、又はステップS250は一方で、ステップS280の後且つステップS290の前に行われることが可能であるということ、又はステップS250は一方で、ステップS290の後に行われることが可能であるということ、が明白に意図される。
【0058】
ステップS270において、ステップS230におけるさらなるアプリケーションのハッシュの肯定的な検証に応答して、さらなるアプリケーションのハッシュは、デバイスに格納される。他の実例において、さらなるアプリケーションのハッシュは、デバイス外ストレージに格納されることが可能である。
【0059】
ステップS280において、デバイスは、さらなるアプリケーションを入手してロードし、さらなるアプリケーションに対して検証処理を行う。具体的には、デバイスは、例えば、デバイス自体によって入手したさらなるアプリケーションのハッシュを生成して、このハッシュを、さらなるアプリケーションの格納済ハッシュと比較することによって、第2のハッシュ機能とともに、さらなるアプリケーションの格納済ハッシュを使用して、入手したさらなるアプリケーションを検証する。
【0060】
第1のハッシュ機能と同様に、第2のハッシュ機能は、セキュリティをさらに向上させるための暗号学的ハッシュ機能であることが可能である。適切なハッシュ・アルゴリズムの実例は、MD5、SHAのファミリ(例えば、SHA-256)、又は他の任意の適切なハッシュ・アルゴリズムを含む。いくつかの実例において、第1のハッシュ機能及び第2のハッシュ機能のアルゴリズムは、同じ計算機能を使用するが、入力として異なるデータをとる。
【0061】
ステップS280におけるさらなるアプリケーションの肯定的な検証に応答して、描写された方法はステップS290に進み、ここで、さらなるアプリケーションが実行される。他の実例において、さらなるアプリケーションは、肯定的な検証に応答してすぐに実行されなくてもよく、代わりに、デバイスは、ある将来のポイントにおいてさらなるアプリケーションをオンデマンドで実行する準備ができている状態にされる。ステップS280におけるさらなるアプリケーションの否定的な検証に応答して、さらなるアプリケーションは実行されず、いくつかの実例において、さらなるアプリケーションはアンロードされる。いくつかの実例において、第1のアプリケーションがデバイス上で実行された後、第1のアプリケーションのハッシュは、ハッシュによって使用されたメモリを回復させるために廃棄されることが可能である。
【0062】
図1及び
図2において特定の順序で提示され、実行されるものとして特定のステップが提示されるが、これらのステップの様々なものが任意選択であるということ、及び/又は代替の順序で行われることが可能であるということが理解されよう。いくつかのこのような任意選択のステップ及び代替の順序は、上記の第1及び第2の方法の実例の説明の中で明白に列挙されてきたが、例えば、特許請求の範囲のセットで提示されるように、一定の他のステップは任意選択であり、及び/又は代替の順序で行われることが可能であるということが明白に意図される。
【0063】
図3は、電子デバイス300の実例を概略的に示す。デバイスは、プログラム命令に応答してデータ処理を行うための処理回路310、処理回路310によって処理されることになるデータ及び命令を格納するためのデータ・ストレージ320を有する。データ・ストレージ320は、セキュア領域330に格納されたデータが、信頼できる環境の中で実行しないソフトウェアにアクセスできないように、ハードウェア・メカニズムによって(例えば、メモリ保護ユニット、若しくは信頼できる実行環境を提供するセキュリティ・メカニズムを使用して)、又はソフトウェア・メカニズムによって(例えば、暗号化)、保護されるセキュア領域330を有することが可能である。デバイス300は、外部デバイスと通信するための通信インターフェース340を有する。例えば、通信インターフェース340は、イーサネット(登録商標)、WiFi(登録商標)、Bluetooth(登録商標)、ZigBee(登録商標)、等など、他の任意の範囲の種々の通信プロトコルを使用することができる。デバイスは、温度、圧力、近くのユーザの近傍、等などの一定の外部条件を検知するための1つ又は複数のセンサ350を有することが可能である。提供される特定のセンサ350は、デバイスの目的に依存することが可能である。
図3は、デバイスにおいて提供される可能性のある可能なハードウェアの実例にすぎず、他の構成要素が提供されることも可能であるということが理解されよう。例えば、ユーザ対話が予想されるいくつかのデバイスは、ユーザに情報を表示するため、ユーザから入力を受け取るためのディスプレイ及び/又はユーザ・インターフェース・モジュールを提供されることが可能である。他のタイプのデバイスは単に、データをキャプチャし、データを外部デバイスに送信するセンサであることが可能であるので、これらのタイプのデバイスは、ユーザ・インターフェース又はディスプレイを必要としなくてもよい。いくつかの実例において、デバイスは、「汎用の」処理回路310を通じて任意の非対称検証が行われなければならないように、専用のハードウェア非対称検証回路(例えば、非対称アクセラレーション・ハードウェア)を含まない。
【0064】
上記で論じられた方法は、デバイス上で実行するコンピュータ・プログラムの制御下で行われることが可能である。したがって、コンピュータ・プログラムは、上記で論じられる方法のいずれかを行うようにデバイスを制御するための命令を含むことができる。プログラムは、ストレージ媒体に格納されることが可能である。ストレージ媒体は、非一時的記録媒体又は一時的信号媒体であることが可能である。
【0065】
本出願において、「~を行うように構成される(configured to ...)」という用語は、定義された動作を行うことができる構成を装置の要素が有することを意味するために使用される。この文脈において、「構成」は、ハードウェア又はソフトウェアの配置又は相互接続の手法を意味する。例えば、装置は、定義された動作を行う専用のハードウェアであることが可能であり、またプロセッサ又は他の処理デバイスが、機能を行うようにプログラムされることも可能である。「~を行うように構成される」は、定義された動作を行うために何らかの方式で装置の要素が変更される必要があることを意味しない。
【0066】
添付の図面を参照しながら、本開示の例証的な教示が本明細書において詳細に説明されてきたが、本発明はこれらの正確な教示に限定されないということ、及び添付の特許請求の範囲によって定義されるように、本発明の範囲及び精神から逸脱することなく、様々な変更及び修正が当業者によって、本発明において行われることが可能であるということが理解されよう。