(57)【要約】【課題】デバイスがデータの非対称検証を行えるようにすることを提供する。【解決手段】デバイスのための検証拡張方法は、第１のデータと関連付けられた署名を検証するリクエストに応答して、デバイス外ストレージから非対称検証アプリケーションを入手するステップと、非対称検証アプリケーションをロードするステップと、非対称検証アプリケーションを実行するステップと、非対称検証アプリケーションを使用し、非対称鍵暗号法を使用して第１のデータと関連付けられた署名を検証するステップとを含む。【選択図】図２
2020088854.tif 000002
【特許請求の範囲】
【請求項１】
デバイスのための検証拡張方法であって、
第１のデータと関連付けられた署名を検証するリクエストに応答して、デバイス外ストレージから非対称検証アプリケーションを入手するステップと、
前記非対称検証アプリケーションをロードするステップと、
前記非対称検証アプリケーションを実行するステップと、
前記非対称検証アプリケーションを使用し、非対称鍵暗号法を使用して前記第１のデータと関連付けられた前記署名を検証するステップと
を含む、検証拡張方法。
【請求項２】
前記第１のデータと関連付けられた前記署名が、前記第１のデータのハッシュの署名である、請求項１に記載の検証拡張方法。
【請求項３】
前記第１のデータが、さらなるアプリケーションである、請求項１又は２に記載の検証拡張方法。
【請求項４】
前記非対称検証アプリケーションを実行する前に、第１のハッシュ機能及び初期アプリケーション・ハッシュを使用して、前記非対称検証アプリケーションを検証し、肯定的な検証結果に応答して、前記非対称検証アプリケーションを実行する、請求項１から３までのいずれか一項に記載の検証拡張方法。
【請求項５】
前記非対称検証アプリケーションが、前記デバイスのマスタ・ブートローダを使用して検証される、請求項４に記載の検証拡張方法。
【請求項６】
前記初期アプリケーション・ハッシュが、デバイス内ストレージから取得される、請求項４又は５に記載の検証拡張方法。
【請求項７】
前記初期アプリケーション・ハッシュが、前記デバイスの製造又は組立て中に前記デバイスに埋め込まれる、請求項６に記載の検証拡張方法。
【請求項８】
前記非対称検証アプリケーションが、デバイス内ストレージに格納された１つ又は複数の鍵を使用して前記署名を検証する、請求項１から７までのいずれか一項に記載の検証拡張方法。
【請求項９】
複数の鍵がデバイス内ストレージに格納され、前記鍵のそれぞれが特権レベルと関連付けられ、前記第１のデータと関連付けられた前記署名を検証する前記鍵の前記特権レベルと関連付けられた制約が、前記第１のデータに適用される、請求項８に記載の検証拡張方法。
【請求項１０】
前記１つ又は複数の鍵が、前記デバイスの製造又は組立て中に前記デバイスに埋め込まれる、請求項８又は９に記載の検証拡張方法。
【請求項１１】
前記非対称検証アプリケーションが、前記非対称検証アプリケーションに埋め込まれた１つ又は複数の鍵を使用して前記署名を検証する、請求項１から７までのいずれか一項に記載の検証拡張方法。
【請求項１２】
前記第１のデータと関連付けられた前記署名の肯定的又は否定的な検証に応答して、前記非対称検証アプリケーションがアンロードされる、請求項１から１１までのいずれか一項に記載の検証拡張方法。
【請求項１３】
前記第１のデータを含む複数のデータに対応する複数の署名が、前記非対称検証アプリケーションを使用して検証され、前記複数の署名が個別に肯定的又は否定的に検証されることが完了したのに応答して、前記非対称検証アプリケーションがアンロードされる、請求項１から１２までのいずれか一項に記載の検証拡張方法。
【請求項１４】
前記第１のデータと関連付けられた前記署名の肯定的な検証に応答して、前記第１のデータがロードされる、請求項１から１３までのいずれか一項に記載の検証拡張方法。
【請求項１５】
前記第１のデータと関連付けられた前記署名が、前記第１のデータのハッシュの署名であり、前記第１のデータと関連付けられた前記署名の肯定的な検証に応答して、前記第１のデータの前記ハッシュが前記デバイスに格納される、請求項１から１４までのいずれか一項に記載の検証拡張方法。
【請求項１６】
前記第１のデータを入手するステップと、
前記第１のデータをロードするステップと、
前記第１のデータの前記ハッシュ及び第２のハッシュ機能を使用して、前記第１のデータを検証するステップと
をさらに含む、請求項１５に記載の検証拡張方法。
【請求項１７】
前記第１のデータの肯定的な検証に応答して、前記第１のデータが、実行されるか、又は実行可能コードによる使用のために利用できるようにされる、請求項１６に記載の検証拡張方法。
【請求項１８】
前記第１のデータが、実行されるか、又は実行可能コードによる使用のために利用できるようにされた後、前記第１のデータの前記ハッシュが、デバイスから取り除かれる、請求項１７に記載の検証拡張方法。
【請求項１９】
前記第１のハッシュ機能及び前記第２のハッシュ機能のアルゴリズムが、同じ計算機能を使用するが、入力として異なるデータをとる、請求項１６から１８までのいずれか一項に記載の検証拡張方法。
【請求項２０】
前記デバイスが、ハードウェア非対称検証回路を含まない、請求項１から１９までのいずれか一項に記載の検証拡張方法。
【請求項２１】
請求項１から２０までのいずれか一項に記載の方法を行うようにデバイスを制御するためのコンピュータ・プログラム。
【請求項２２】
請求項２１に記載のコンピュータ・プログラムを格納するストレージ媒体。
【請求項２３】
データ処理を行うための処理回路と、
請求項１から２０までのいずれか一項に記載の方法を行うように前記処理回路を制御するためのコンピュータ・プログラムを格納するデータ・ストレージと
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技法は、電子デバイスの分野に関する。より詳細には、本技法は、デバイスがデータの非対称検証を行えるようにすることに関する。
【背景技術】
【０００２】
電子デバイスは、モバイル銀行取引、健康ケア・サービスへのアクセス、又は仕事の細目の取扱いなどの、慎重を要する可能性のある情報の取扱いを伴うことがあるサービスにアクセスするためにますます使用されている。また、モノのインターネット（ＩｏＴ：Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）の展開の増加に伴い、例えば、ユーザがいるかどうかを示す温度データ又は近接情報などのセンサ情報を提供することができる電子デバイスによって提供された情報に基づいて、暖房、空調、又は街灯などのシステムが制御されることが、より普通になりつつある。これらのシナリオにおいて、これらのデバイスに対するソフトウェア・アップデートが安全に行われ、悪意のある当事者によって危険にさらされたこと、又はそうでなければ、操作されたことがないということを保証することが重要になる可能性がある。
【０００３】
デバイスによって受信されたソフトウェア・アップデートを検証することができる暗号化技法が提供されることが可能である。しかし、ＩｏＴにおけるセンサ、アクチュエータ、又は他のデバイスなどの非常に小さいコンピューティング・デバイスにおいて、メモリ・ストレージ容量、処理能力、及び通信帯域幅は極度に抑制されることがあり、このことが、行われる可能性のある暗号化技法を限定する可能性がある。さらに、このようなデバイスは典型的には、専用暗号ハードウェアを欠いている。
【０００４】
デバイス上でセキュアなソフトウェア・アップデートを行う際、対称鍵が漏れてセキュリティを役に立たなくするという高いリスクを非対称暗号の使用が取り除くので、一般的には、対称暗号の代わりに非対称暗号を使用する方がよい。しかし、ＩｏＴデバイスの限定的な能力を考慮すると、非対称暗号の使用は、めったに行われない活動（すなわち、ソフトウェア・アップデートの検証）のためにＩｏＴデバイスのストレージ容量のかなりの部分を確保する非対称暗号ソフトウェアの大きさの理由から、実行不可能であることが示されてきた。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示の少なくとも一定の実施例は、上記で提示されたような、より多くのこれらの問題の１つに対処する。
【課題を解決するための手段】
【０００６】
特定の態様及び実施例が、添付の特許請求の範囲に提示されている。
【０００７】
１つの観点から眺めると、デバイスのための検証拡張方法が提供されることが可能であり、方法は、第１のデータと関連付けられた署名を検証するリクエストに応答して、デバイス外ストレージ（ｏｆｆ−ｄｅｖｉｃｅ  ｓｔｏｒａｇｅ）から非対称検証アプリケーションを入手することと、非対称検証アプリケーションをロードすることと、非対称検証アプリケーションを実行することと、非対称検証アプリケーションを使用し、非対称鍵暗号法を使用して第１のデータと関連付けられた署名を検証することと、を含む。
【０００８】
デバイス外ストレージに非対称検証アプリケーションを格納すること、及び必要なときに非対称検証アプリケーションを入手することによって、非対称検証アプリケーションのためにデバイス上のメモリを永続的に確保する必要性が回避される。このことにより、ＩｏＴデバイスなどの能力が抑制されたデバイスが高セキュリティの非対称鍵暗号法を利用することが実現可能になる。
【０００９】
いくつかの実例において、第１のデータと関連付けられた署名は、第１のデータのハッシュの署名である。このことにより、第１のデータ全体とは対照的に、ハッシュの署名を検証する必要があるだけで、署名の検証における計算上の複雑性が低減されることが可能である。
【００１０】
いくつかの実例において、第１のデータは、さらなるアプリケーションである。このことにより、アプリケーションの完全性／安全性は、アプリケーションがロード／インストールされ、実行される前に、検証されることが可能である。いくつかの実例において、第１のアプリケーションは、フラッシュに書き込むこと、ストレージをフォーマットすること、鍵をインポートすること、又はヒューズをプログラムすること、などの特定のタスクを行うために使用されるソフトウェアであることが可能である。
【００１１】
いくつかの実例において、非対称検証アプリケーションを実行する前に、デバイスは、第１のハッシュ機能及び初期アプリケーション・ハッシュを使用して、非対称検証アプリケーションを検証し、肯定的な検証結果に応答して、デバイスは、非対称検証アプリケーションを実行する。このことにより、非対称検証アプリケーション自体の完全性が確認されることが可能であり、したがって、偽造した非対称検証アプリケーションを悪意のある当事者がデバイスに提示する可能性を回避することによって、セキュリティをさらに向上させる。
【００１２】
いくつかの実例において、非対称検証アプリケーションは、デバイスのマスタ・ブートローダを使用して検証される。このように、非対称検証アプリケーションは、デバイスの低レベル処理によって検証されることが可能であり、したがって、計算上のオーバヘッド、及びセキュリティ脆弱性のさらなるポイントを持ち込む可能性のある、さらなる中間処理の必要性を回避する。
【００１３】
いくつかの実例において、初期アプリケーション・ハッシュは、デバイス内ストレージ（ｏｎ−ｄｅｖｉｃｅ  ｓｔｏｒａｇｅ）から取得される。このことにより、デバイス上の初期アプリケーション・ハッシュの格納を回避するのに必要なスペースは、回避されることが可能である。さらに、初期アプリケーション・ハッシュをデバイス内ストレージに格納しないことによって、初期アプリケーション・ハッシュがデバイスから抽出される可能性があるというリスクが低減され、したがってセキュリティを向上させる。
【００１４】
いくつかの実例において、初期アプリケーション・ハッシュは、デバイスの製造又は組立て中にデバイスに埋め込まれる。このことにより、初期アプリケーション・ハッシュは、必要なときにすぐに利用でき（すなわち、初期アプリケーション・ハッシュが入手される間のさらなる遅延が、したがって回避されることが可能である）、初期アプリケーション・ハッシュは、デバイスの製造又は組立て後の、悪意のある当事者による修正／改ざんに対して耐性がある。さらに、初期アプリケーション・ハッシュをデバイスに通信する（例えば、送信する）必要性を回避することによって、初期アプリケーション・ハッシュをデバイスに通信するのに必要な通信帯域幅は節約されることが可能であり、このことは、ＩｏＴデバイスなどの帯域幅が抑制されるデバイスにおいて特に重要である可能性がある。
【００１５】
さらに、初期アプリケーション・ハッシュを通信／送信しないことによって、悪意のある当事者によって、初期アプリケーション・ハッシュが通信／送信中に傍受されるか、修正されることになる（例えば、つまり、初期アプリケーション・ハッシュが、任意の未承認のアプリケーションに対応していた）という可能性が回避される。さらに、初期アプリケーション・ハッシュの配布は、別の当事者を信用する必要なく、製造業者又は組立業者によって、このように制御されることが可能である。
【００１６】
いくつかの実例において、非対称検証アプリケーションは、デバイス内ストレージに格納された１つ又は複数の鍵を使用して署名を検証する。このことにより、デバイス内ストレージに１つ又は複数の鍵を格納することによって、１つ又は複数の鍵は、必要なときにすぐに利用できる（すなわち、鍵が入手される間のさらなる遅延が回避されることが可能である）。さらに、１つ又は複数の鍵を通信／送信する必要性を回避することによって、１つ又は複数の鍵をデバイスに通信するのに必要な通信帯域幅が節約され、このことは、ＩｏＴデバイスなどの帯域幅が抑制されるデバイスにおいて特に重要である可能性がある。さらに、１つ又は複数の鍵を通信／送信しないことによって、悪意のある当事者によって鍵が傍受されることになる可能性が回避される。
【００１７】
いくつかの実例において、複数の鍵がデバイス内ストレージに格納され、鍵のそれぞれが特権レベルと関連付けられ、第１のデータと関連付けられた署名を検証する鍵の特権レベルと関連付けられた制約が、この第１のデータに適用される。このことにより、デバイスは、同じ検証処理を使用して、特権レベルと関連付けられた種々の制約が適用されることになるデータの範囲を取り扱うことを可能にされる。したがって、複数の異なる処理が異なる特権レベルのデータを検証する必要性が回避されることが可能であり、このことにより、必要なストレージ空間を低減させ、複雑性を低減させる。
【００１８】
いくつかの実例において、１つ又は複数の鍵は、デバイスの製造又は組立て中にデバイスに埋め込まれる。このことにより、１つ又は複数の鍵は、必要なときにすぐに利用でき（すなわち、鍵が入手される間のさらなる遅延が、したがって、回避されることが可能である）、１つ又は複数の鍵は、デバイスの製造又は組立て後の、悪意のある当事者による修正／改ざんに対する耐性がある。さらに、１つ又は複数の鍵を通信／送信する必要性を回避することによって、１つ又は複数の鍵をデバイスに通信するのに必要な通信帯域幅が節約されることが可能であり、このことは、ＩｏＴデバイスなどの帯域幅が抑制されるデバイスにおいて特に重要である。
【００１９】
さらに、１つ又は複数の鍵を通信／送信しないことによって、悪意のある当事者によって鍵が傍受される可能性が回避される。さらに、１つ又は複数の鍵の配布は、別の当事者を信用する必要なく、製造業者又は組立業者によって、このように制御されることが可能である。
【００２０】
いくつかの実例において、非対称検証アプリケーションは、非対称検証アプリケーションに埋め込まれた１つ又は複数の鍵を使用して署名を検証する。このことにより、１つ又は複数の鍵は、非対称検証アプリケーションとともに統合パッケージの中でデバイスに提供されることが可能である。
【００２１】
いくつかの実例において、第１のデータと関連付けられた署名の肯定的又は否定的な検証に応答して、非対称検証アプリケーションはアンロードされる。このことにより、非対称検証アプリケーションによって占有されたメモリは、他の用途のためにメモリを解放する用途の後、回復されることが可能である。例えば、非対称検証アプリケーションをアンロードすることによって、ファームウェア更新を行えるようにするのに十分なメモリが解放されることが可能である。より一般には、例えば、非対称検証アプリケーションをアンロードすることは、メモリの大きさが任意のフットプリントをソフトウェア・アップデートのために使用して、デバイス上でソフトウェア・アップデートを行えるようにする。
【００２２】
いくつかの実例において、第１のデータを含む複数のデータに対応する複数の署名は、非対称検証アプリケーションを使用して検証され、複数の署名が個別に肯定的又は否定的に検証されることが完了したのに応答して、非対称検証アプリケーションはアンロードされる。
【００２３】
このことにより、デバイスは、非対称検証アプリケーションを入手、ロード、及び実行する単一のインスタンスで複数の署名の検証を可能にすることによって、非対称検証アプリケーションを何度も入手及び／又はロード及び／又は実行する必要性を回避することができ、このことにより通信帯域幅を節約する。さらに、このように複数の署名を検証することによって、検証結果は、よりタイムリ且つ効率的な手法で提供されることが可能である。つまり、デバイスは、非対称検証アプリケーションをメモリから出し入れするために繰り返しスワップすることを回避することができる。
【００２４】
いくつかの実例において、第１のデータと関連付けられた署名の肯定的な検証に応答して、第１のデータはロードされる。このことにより、データはデバイスに実際に利用できるようになる。データがアプリケーションである場合、デバイスのロードは、アプリケーションのためのインストール処理を含むことができる。いくつかの実例において、例えば、データが十分に小さい場合、署名は、まさにデータ自体のものである可能性があり、このことにより、データのハッシュを使用して検証する必要性を回避する。
【００２５】
いくつかの実例において、第１のデータと関連付けられた署名は、第１のデータのハッシュの署名であり、第１のデータと関連付けられた署名の肯定的な検証に応答して、第１のデータのハッシュはデバイスに格納される。このことにより、デバイスはこれから、第１のデータが受信されるときは、第１のデータを検証するためにデータのハッシュを用意しておく。データの大きい項目に対して、署名の非対称検証は、ハッシュを検証する計算負荷より計算負荷がはるかに大きくなる傾向があるので、ハッシュの署名の使用は、より効率的である可能性がある。したがって、大きい第１のデータを単に非対称に検証するより、大きい第１のデータの小さいハッシュを検証すること、及び小さいハッシュの署名を非対称に検証することがより効率的である。
【００２６】
いくつかの実例において、方法は、第１のデータを入手することと、第１のデータをロードすることと、第１のデータのハッシュ及び第２のハッシュ機能を使用して、第１のデータを検証することと、をさらに含む。つまり、例えば、デバイスは、入手した第１のデータのハッシュを生成し、デバイスが以前に格納していたか、そうでなければ利用できるようにしておいたハッシュ（例えば、非対称検証アプリケーションによって検証されたハッシュ）に、入手した第１のデータのハッシュがマッチするかどうかをチェックする。このことにより、第１のデータと関連付けられた署名が、第１のデータのハッシュの署名であるとき、第１のデータは入手され、以前にデバイスに格納されたハッシュを使用して検証されることが可能である。
【００２７】
いくつかの実例において、第２のハッシュ機能を使用した第１のデータの肯定的な検証に応答して、第１のデータは、実行可能コードによる使用のために実行されるか、利用できるようにされる。このことにより、第１のデータがさらなるアプリケーションであるとき、さらなるアプリケーションはデバイス上で実際に実行され、第１のデータが非実行可能コードであるとき、第１のデータは、デバイス上での実行可能コードによる使用のために利用できるようにされる。いくつかの実例において、入手したデータにマッチするハッシュが見つからない場合、データは実行されることも、実行可能コードによる使用のために利用できるようにされることもなく、任意選択で、ユーザ又はオペレータは、マッチしないことに対して注意を喚起される。
【００２８】
いくつかの実例において、第１のデータが、実行されるか、又は実行可能コードによる使用のために利用できるようにされた後、第１のデータのハッシュが、デバイスから取り除かれる。このことにより、デバイスに第１のハッシュを格納することと関連付けられたスペースは、回復されることが可能である。さらに、このことは、さらなる時点において第１のデータが再び検証されること（すなわち、第１のデータのハッシュが、もはやデバイスには利用できないので）を防ぐように機能することができる。
【００２９】
いくつかの実例において、第１のハッシュ機能及び第２のハッシュ機能のアルゴリズムは、同じ計算機能を使用するが、入力として異なるデータをとる。このことにより、単一の計算ハッシュ機能しかデバイスに格納される必要がないので、スペースを節約し、全体的に、ハッシュ機能の性能についてのさらなるハードウェア／ソフトウェアの最適化を可能にする。さらに、いくつかの実例において、例えば、デバイスのマスタ・ブートローダを使用して、非対称検証アプリケーションを検証するために使用されたものと正確に同じハッシュ処理が、第１のデータを検証するために使用されることが可能である。したがって、１つの観点から、デバイスは、１つの第１のデータ（例えば、非対称検証アプリケーション又はさらなるアプリケーション）を受信することに応答して、デバイスに格納されたハッシュ全てのリストを単純にチェックし、これらのハッシュのいずれかが、デバイス自体によって生成された、受信した第１のデータのハッシュにマッチするかどうかを確かめることができる。
【００３０】
いくつかの実例において、デバイスは、ハードウェア非対称検証回路を含まない。このことにより、いずれかの非対称検証がハードウェアで直接的に行われることはできず、代わりにソフトウェアで行われなければならない。このことは、デバイスに専用非対称検証回路を収容することと関連付けられたコスト及び物理スペースを節約する。このことは、性能、サイズ、及びエネルギー消費量が非常に抑制される可能性のあるＩｏＴデバイスにとって特に重要である。
【００３１】
１つの観点から眺めると、上述の方法のいずれかを行うようにデバイスを制御するためのコンピュータ・プログラムが提供されることが可能である。いくつかの実例において、コンピュータ・プログラムは、ストレージ媒体に格納される。
【００３２】
１つの観点から眺めると、データ処理を行うための処理回路と、上述の方法のいずれかを行うように処理回路を制御するためのコンピュータ・プログラムを格納するデータ・ストレージと、を備える装置が提供されることが可能である。
【００３３】
他の態様も、本開示を見直すと、特に、図面の簡単な説明、発明を実施するための形態、及び特許請求の範囲のセクションを見直すと、明らかになるであろう。
【００３４】
添付の図面を参照しながら実例としてのみ、本開示の実例がこれから説明される。
【図面の簡単な説明】
【００３５】
【図１】データの非対称検証をデバイスが行うことを可能にするための、本開示の教示による第１の方法の実例を概略的に示す図である。
【図２】データの非対称検証をデバイスが行うことを可能にするための、本開示の教示による第２の方法の実例を概略的に示す図である。
【図３】本開示の教示を実行するために使用されることが可能な電子デバイスの実例を概略的に示す図である。
【発明を実施するための形態】
【００３６】
本開示は様々な修正及び代替形式が可能であるが、具体的なアプローチが図面の中で実例として示され、本明細書において詳細に説明される。しかし、ここに添付されたこの図面及び詳細な説明は、開示された特定の形式に本開示を限定することを意図するものではなく、むしろ本開示は、特許請求された発明の精神及び範囲に含まれる全ての修正、均等物、及び代替をカバーするためのものであるということを理解されたい。
【００３７】
本開示の上述の実例の特徴は、任意の適切な組合せで好都合に、また区別なく使用されることが可能であるということが認識されるであろう。
【００３８】
図１は、データの非対称検証をデバイスが行うことを可能にするための、本開示の教示による第１の方法の実例１００の概略図を示し、以下のステップを含む。
【００３９】
ステップＳ１１０において、第１のデータと関連付けられた署名を検証するリクエストに応答して、デバイス外ストレージからデバイスによって非対称検証アプリケーションが入手される。方法は次に、ステップＳ１１５に続く。
【００４０】
ステップＳ１１５において、デバイスは、非対称検証アプリケーションをロードする。方法は次に、ステップＳ１２０に続く。
【００４１】
ステップＳ１２０において、デバイスは、非対称検証アプリケーションを実行する。方法は次に、ステップＳ１３０に続く。
【００４２】
ステップＳ１３０において、デバイスは、非対称鍵暗号法を実行するために、非対称検証アプリケーションを使用して第１のデータと関連付けられた署名を検証する。非対称検証アプリケーションは、１つ又は複数の鍵を使用して署名を検証する。これらの１つ又は複数の鍵は格納されることも、いくつかの異なる場所から取得されることも可能である。いくつかの実例において、１つ又は複数の鍵のうちの少なくとも１つは、デバイス自体のデバイス内ストレージに格納される。
【００４３】
いくつかの実例において、複数の鍵がデバイス内ストレージに格納され、ここで、鍵のそれぞれは、種々の特権レベルと関連付けられる。各特権レベルは、１つ又は複数の制約と関連付けられ、特定のデータ（例えば、第１のデータ）と関連付けられた署名を検証する鍵の特権レベルは、どの制約がこのデータに適用されるかを判断する（すなわち、特定の鍵に対応する制約が適用される）。例えば、１つの鍵は、デバイス上での特権モードの実行を可能にする最上位の鍵であることが可能であり、例えば、デバイスの製造業者／組立業者自身によって使用されることが可能である。別の鍵は、例えば、実行を許可されることはなく、例えば第三者に提供されることが可能である。
【００４４】
追加又は代替として、いくつかの実例において、１つ又は複数の鍵のうちの少なくとも１つは、例えば、デバイスの製造業者又は組立てによって、デバイスの製造又は組立て中にデバイスに埋め込まれる。いくつかの実例において、デバイスは、複数の製造業者／組立業者によって製造されている／組み立てられている可能性があり、これらの製造業者／組立業者のそれぞれは、１つ又は複数の鍵をデバイスに埋め込む可能性がある。追加又は代替として、いくつかの実例においては、１つ又は複数の鍵のうちの少なくとも１つは、非対称検証アプリケーションが入手されるときに、非対称検証アプリケーションとともに１つ又は複数の鍵のうちの１つが、デバイスによって一体化して入手されるように、非対称検証アプリケーションに埋め込まれることが可能である。いくつかの実例において、１つ又は複数の鍵は、デバイスのデバイス内ストレージに永続的には格納されず、代わりに、必要なときにデバイス外ストレージからオンデマンドでデバイスによって入手されることが可能である。
【００４５】
いくつかの実例において、非対称検証アプリケーションのいずれかのアンロードより前に、非対称検証アプリケーションの単一の入手、ロード、及び実行イベント中に、非対称検証アプリケーションによって、複数のデータに対応する複数の署名が検証されることが可能である。
【００４６】
ステップＳ１３０における第１のデータと関連付けられた署名の否定的な検証に応答して、方法は、ステップＳ１４０に進む。ステップＳ１４０において、非対称検証アプリケーションはアンロードされる。いくつかの実例において、非対称検証アプリケーションは、否定的な検証に応答してアンロードされないということが明白に意図される。例えば、非対称検証アプリケーションは、ある将来の時点における第２のデータの検証を可能にするために、デバイス上でロードされたまま、及び／又は実行したままであることが可能である。
【００４７】
ステップＳ１３０における第１のデータと関連付けられた署名の肯定的な検証に応答して、方法は、ステップＳ１５０に進む。ステップＳ１５０において、非対称検証アプリケーションはアンロードされる。いくつかの実例において、非対称検証アプリケーションは、肯定的な検証に応答してアンロードされないということが明白に意図される。例えば、非対称検証アプリケーションは、さらなるデータが現在有効であると認められる必要があるユーザ又はリモート・デバイスによる承認など、特定のトリガ条件が満たされるまで、デバイス上でロードされたまま、及び／又は実行したままであることが可能である。方法は次に、ステップＳ１６０に続く。
【００４８】
ステップＳ１６０において、第１のデータと関連付けられた署名の肯定的な検証に応答して、第１のデータはロードされる。いくつかの実例において、ステップＳ１５０の前にステップＳ１６０が行われるということが明白に意図される。いくつかの実例において、第１のデータは、ある将来の時点においてロードされるだけであるか、又は全くロードされないということも明白に意図される。例えば、デバイスは、ある将来の時点において第１のデータが必要とされる場合、第１のデータと関連付けられた署名を先に検証することができる。
【００４９】
図２は、データの非対称検証をデバイスが行うことを可能にするための、本開示の教示による第２の方法の実例２００の概略図を示し、以下のステップを含む。
【００５０】
第２の方法の実例において行われるいくつかのステップは、別途説明される場合を除いて、第１の方法の実例において行われる対応するステップと実質的に同一の手法で進み、したがって、再び詳細に論じられることはない。具体的には、ステップＳ２１０はステップＳ１１０と実質的に同一であり、ステップＳ２１５はステップＳ１１５と実質的に同一であり、ステップＳ２２０はステップＳ１２０と実質的に同一であり、ステップＳ２３０はステップＳ１３０と実質的に同一であり、ステップＳ２４０はステップＳ１４０と実質的に同一であり、ステップＳ２５０はステップＳ１５０と実質的に同一である。
【００５１】
第２の方法の実例において、ステップＳ２１５の後、しかしステップＳ２２０の前に、ステップＳ２１８が行われる。ステップＳ２１８において、非対称検証アプリケーションを実行する前に、非対称検証アプリケーション自体が検証される。非対称検証アプリケーションは、第１のハッシュ機能及び初期アプリケーション・ハッシュの使用を通じて検証される。例えば、非対称検証アプリケーションのハッシュがデバイスによって生成され、この生成されたハッシュが初期アプリケーション・ハッシュにマッチするかどうかがチェックされる。第１のハッシュ機能は、セキュリティをさらに向上させるための暗号学的ハッシュ機能であることが可能である。適切なハッシュ・アルゴリズムの実例は、ＭＤ５、ＳＨＡのファミリ（例えば、ＳＨＡ−２５６）、又は他の任意の適切なハッシュ・アルゴリズムを含む。
【００５２】
いくつかの実例において、非対称検証アプリケーションは、デバイスのマスタ・ブートローダなどのデバイスの低レベル処理を使用して検証される。いくつかの実例において、初期アプリケーション・ハッシュは、デバイス内ストレージから取得される。他の実例において、初期アプリケーション・ハッシュは、デバイス外ストレージからオンデマンドで取得されることが可能である。いくつかの実例において、初期アプリケーション・ハッシュは、デバイスの製造又は組立て中にデバイス内ストレージに埋め込まれる。製造／組立て中、いくつかの実例において、初期アプリケーション・ハッシュは、製造／組立ての直後にデバイスに格納された唯一のハッシュであることが可能である。
【００５３】
肯定的な検証結果に応答して、方法は、ステップＳ２２０に進み、非対称検証アプリケーションが実行される。否定的な検証結果に応答して、非対称検証アプリケーションは、実行されない。いくつかの実例において、否定的な検証結果に応答して、非対称検証アプリケーションはアンロードされることが可能である。
【００５４】
第２の方法の実例において、第１のデータと関連付けられた署名は、第１のデータのハッシュの署名である。さらに、第２の方法の実例において、第１のデータは、さらなるアプリケーションである（例えば、セキュア・センシング・アプリケーション、銀行取引アプリケーション、又はデバイス・セキュリティ監視）。第１の方法の実例は、第１のデータと関連付けられた署名が第１のデータのハッシュの署名であり、第１のデータがさらなるアプリケーションである状況で行われることも可能であるということが明白に意図される。
【００５５】
逆に、第２の方法の実例は、第１のデータと関連付けられた署名が第１のデータのハッシュの署名ではない場合、及び第１のデータがさらなるアプリケーションではない（例えば、非実行可能なデータである）場合に行われることが可能であるということが明白に意図される。
【００５６】
しかし、描写された実例において、方法は、Ｓ２２０において非対称検証アプリケーションが実行された後、ステップＳ２３０に進み、ステップＳ２３０において、さらなるアプリケーションのハッシュの署名が検証される。
【００５７】
図２において、ステップＳ２５０は、ステップＳ２３０の直後且つステップＳ２７０の前に行われるものとして描写される。しかし、ステップＳ２５０は一方で、ステップＳ２７０の後且つステップＳ２８０の前に行われることが可能であるということ、又はステップＳ２５０は一方で、ステップＳ２８０の後且つステップＳ２９０の前に行われることが可能であるということ、又はステップＳ２５０は一方で、ステップＳ２９０の後に行われることが可能であるということ、が明白に意図される。
【００５８】
ステップＳ２７０において、ステップＳ２３０におけるさらなるアプリケーションのハッシュの肯定的な検証に応答して、さらなるアプリケーションのハッシュは、デバイスに格納される。他の実例において、さらなるアプリケーションのハッシュは、デバイス外ストレージに格納されることが可能である。
【００５９】
ステップＳ２８０において、デバイスは、さらなるアプリケーションを入手してロードし、さらなるアプリケーションに対して検証処理を行う。具体的には、デバイスは、例えば、デバイス自体によって入手したさらなるアプリケーションのハッシュを生成して、このハッシュを、さらなるアプリケーションの格納済ハッシュと比較することによって、第２のハッシュ機能とともに、さらなるアプリケーションの格納済ハッシュを使用して、入手したさらなるアプリケーションを検証する。
【００６０】
第１のハッシュ機能と同様に、第２のハッシュ機能は、セキュリティをさらに向上させるための暗号学的ハッシュ機能であることが可能である。適切なハッシュ・アルゴリズムの実例は、ＭＤ５、ＳＨＡのファミリ（例えば、ＳＨＡ−２５６）、又は他の任意の適切なハッシュ・アルゴリズムを含む。いくつかの実例において、第１のハッシュ機能及び第２のハッシュ機能のアルゴリズムは、同じ計算機能を使用するが、入力として異なるデータをとる。
【００６１】
ステップＳ２８０におけるさらなるアプリケーションの肯定的な検証に応答して、描写された方法はステップＳ２９０に進み、ここで、さらなるアプリケーションが実行される。他の実例において、さらなるアプリケーションは、肯定的な検証に応答してすぐに実行されなくてもよく、代わりに、デバイスは、ある将来のポイントにおいてさらなるアプリケーションをオンデマンドで実行する準備ができている状態にされる。ステップＳ２８０におけるさらなるアプリケーションの否定的な検証に応答して、さらなるアプリケーションは実行されず、いくつかの実例において、さらなるアプリケーションはアンロードされる。いくつかの実例において、第１のアプリケーションがデバイス上で実行された後、第１のアプリケーションのハッシュは、ハッシュによって使用されたメモリを回復させるために廃棄されることが可能である。
【００６２】
図１及び図２において特定の順序で提示され、実行されるものとして特定のステップが提示されるが、これらのステップの様々なものが任意選択であるということ、及び／又は代替の順序で行われることが可能であるということが理解されよう。いくつかのこのような任意選択のステップ及び代替の順序は、上記の第１及び第２の方法の実例の説明の中で明白に列挙されてきたが、例えば、特許請求の範囲のセットで提示されるように、一定の他のステップは任意選択であり、及び／又は代替の順序で行われることが可能であるということが明白に意図される。
【００６３】
図３は、電子デバイス３００の実例を概略的に示す。デバイスは、プログラム命令に応答してデータ処理を行うための処理回路３１０、処理回路３１０によって処理されることになるデータ及び命令を格納するためのデータ・ストレージ３２０を有する。データ・ストレージ３２０は、セキュア領域３３０に格納されたデータが、信頼できる環境の中で実行しないソフトウェアにアクセスできないように、ハードウェア・メカニズムによって（例えば、メモリ保護ユニット、若しくは信頼できる実行環境を提供するセキュリティ・メカニズムを使用して）、又はソフトウェア・メカニズムによって（例えば、暗号化）、保護されるセキュア領域３３０を有することが可能である。デバイス３００は、外部デバイスと通信するための通信インターフェース３４０を有する。例えば、通信インターフェース３４０は、イーサネット（登録商標）、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ（登録商標）、等など、他の任意の範囲の種々の通信プロトコルを使用することができる。デバイスは、温度、圧力、近くのユーザの近傍、等などの一定の外部条件を検知するための１つ又は複数のセンサ３５０を有することが可能である。提供される特定のセンサ３５０は、デバイスの目的に依存することが可能である。図３は、デバイスにおいて提供される可能性のある可能なハードウェアの実例にすぎず、他の構成要素が提供されることも可能であるということが理解されよう。例えば、ユーザ対話が予想されるいくつかのデバイスは、ユーザに情報を表示するため、ユーザから入力を受け取るためのディスプレイ及び／又はユーザ・インターフェース・モジュールを提供されることが可能である。他のタイプのデバイスは単に、データをキャプチャし、データを外部デバイスに送信するセンサであることが可能であるので、これらのタイプのデバイスは、ユーザ・インターフェース又はディスプレイを必要としなくてもよい。いくつかの実例において、デバイスは、「汎用の」処理回路３１０を通じて任意の非対称検証が行われなければならないように、専用のハードウェア非対称検証回路（例えば、非対称アクセラレーション・ハードウェア）を含まない。
【００６４】
上記で論じられた方法は、デバイス上で実行するコンピュータ・プログラムの制御下で行われることが可能である。したがって、コンピュータ・プログラムは、上記で論じられる方法のいずれかを行うようにデバイスを制御するための命令を含むことができる。プログラムは、ストレージ媒体に格納されることが可能である。ストレージ媒体は、非一時的記録媒体又は一時的信号媒体であることが可能である。
【００６５】
本出願において、「〜を行うように構成される（ｃｏｎｆｉｇｕｒｅｄ  ｔｏ  ．．．）」という用語は、定義された動作を行うことができる構成を装置の要素が有することを意味するために使用される。この文脈において、「構成」は、ハードウェア又はソフトウェアの配置又は相互接続の手法を意味する。例えば、装置は、定義された動作を行う専用のハードウェアであることが可能であり、またプロセッサ又は他の処理デバイスが、機能を行うようにプログラムされることも可能である。「〜を行うように構成される」は、定義された動作を行うために何らかの方式で装置の要素が変更される必要があることを意味しない。
【００６６】
添付の図面を参照しながら、本開示の例証的な教示が本明細書において詳細に説明されてきたが、本発明はこれらの正確な教示に限定されないということ、及び添付の特許請求の範囲によって定義されるように、本発明の範囲及び精神から逸脱することなく、様々な変更及び修正が当業者によって、本発明において行われることが可能であるということが理解されよう。
【図１】
2020088854.tif 000003
【図２】
2020088854.tif 000004
【図３】
2020088854.tif 000005
【外国語明細書】
2020088854000001.pdf