(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6556864
(24)【登録日】2019年7月19日
(45)【発行日】2019年8月7日
(54)【発明の名称】電子装置のインテグリティを検証するシステム及び方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20190729BHJP
G09C 1/00 20060101ALI20190729BHJP
G06F 21/64 20130101ALI20190729BHJP
G06F 21/57 20130101ALI20190729BHJP
【FI】
H04L9/00 675B
G09C1/00 640D
G06F21/64
G06F21/57
【請求項の数】14
【全頁数】21
(21)【出願番号】特願2017-556165(P2017-556165)
(86)(22)【出願日】2017年3月3日
(65)【公表番号】特表2018-519705(P2018-519705A)
(43)【公表日】2018年7月19日
(86)【国際出願番号】SG2017050102
(87)【国際公開番号】WO2017171634
(87)【国際公開日】20171005
【審査請求日】2017年10月26日
(31)【優先権主張番号】10201602449P
(32)【優先日】2016年3月29日
(33)【優先権主張国】SG
(73)【特許権者】
【識別番号】517116441
【氏名又は名称】ファーウェイ インターナショナル プライベート リミテッド
【氏名又は名称原語表記】HUAWEI INTERNATIONAL PTE. LTD.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ウ ヨンジョン
(72)【発明者】
【氏名】ウェン シュエジュン
(72)【発明者】
【氏名】ファン チョンファン
(72)【発明者】
【氏名】リ ティエヤン
【審査官】
青木 重徳
(56)【参考文献】
【文献】
特開2016−010031(JP,A)
【文献】
特開2016−009884(JP,A)
【文献】
特開2009−104258(JP,A)
【文献】
特開2006−164184(JP,A)
【文献】
米国特許出願公開第2015/0317481(US,A1)
【文献】
米国特許出願公開第2012/0042376(US,A1)
【文献】
米国特許出願公開第2009/0222910(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/57
G06F 21/64
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
電子装置のシステムインテグリティを検証する方法であって、前記方法は、
前記電子装置内のセキュア環境の中で提供される検証モジュールにより、チャレンジを生成するステップと、
前記検証モジュールから、前記電子装置内の通常環境の中で提供されるスキャナモジュールへ、前記チャレンジを送信するステップであって、前記チャレンジは、前記スキャナモジュールに、前記通常環境の中でインテグリティ検証機能を実行して、応答を生成するよう指示し、前記インテグリティ検証機能は、既知の悪意コードについてカーネル内のコードをスキャンすること、プロセスリストをスキャンすること、ルート又はジェイルブレイクの痕跡についてメモリを調ること、メモリのページテーブルをスキャンすること、カーネル又はアプリケーションの状態及び特権パラメータを調べること、のうちの少なくとも1つである、ステップと、
前記スキャナモジュールにより、前記スキャナモジュール内に設けられた公開鍵又はプライベート鍵を用いて前記応答を暗号化し、及び前記暗号化した応答を前記検証モジュールへ送信するステップと、
前記検証モジュールにより、前記暗号化された応答の復号化に成功するか否かに基づき、前記スキャナモジュールのインテグリティを検証し、
前記スキャナモジュールの前記インテグリティが検証されたことの決定に応答して、前記検証モジュールにより、前記応答を、前記セキュア環境の中で提供されるセキュアデータベースに含まれるデータと照合し、一致が見付かるか否かに基づき前記応答が有効か否かを決定し、
前記応答が無効であることの決定に応答して、前記検証モジュールにより、前記システムインテグリティが検証されなかったと決定して、軽減措置を実行する、ステップと、
を含む方法。
【請求項2】
前記検証モジュールを用いて前記チャレンジを生成する前記ステップの前に、前記方法は、
前記検証モジュールにより、前記通常環境の中で提供される前記スキャナモジュールのインテグリティを検証するステップ、
を含む請求項1に記載の方法。
【請求項3】
前記通常環境の中で提供される前記スキャナモジュールの前記インテグリティを検証する前記ステップは、
前記検証モジュールにより、検証応答要求を生成し、前記検証応答要求を前記検証モジュールから前記スキャナモジュールへ送信するステップであって、前記検証応答要求は、前記スキャナモジュールに、暗号化した検証応答を生成し及び前記暗号化した検証応答を前記検証モジュールへ送信するよう指示する、ステップと、
前記検証モジュールにより、前記暗号化された検証応答が有効か否かを決定するステップであって、それにより、前記応答が無効であることの決定に応答して、前記軽減措置を実行する、ステップと、
を含む、請求項2に記載の方法。
【請求項4】
前記暗号化された検証応答が有効か否かを決定する前記ステップは、
前記検証モジュールにより、前記暗号化した検証応答を復号するステップであって、それにより、前記検証応答が復号化されることの決定に応答して、前記復号化した検証応答を前記セキュア環境の中で提供されるセキュアデータベースに含まれる検証データと照合し、一致が見付からないとき、前記検証応答は無効として決定される、ステップ、
を含む、請求項3に記載の方法。
【請求項5】
前記軽減措置は、
前記通常環境の中で提供されるソフトウェアモジュールの実行を抑制するステップ、
を含む、請求項1乃至4のいずれか一項に記載の方法。
【請求項6】
前記電子装置における前記セキュア環境は、前記電子装置のセキュアワールド仮想プロセッサを有し、前記電子装置における前記通常環境は、前記電子装置の通常ワールド仮想プロセッサを有し、前記セキュア環境は、前記通常環境とハードウェア独立である、請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
プリセット時間間隔が経過したか否かを決定するステップと、
前記プリセット時間間隔が経過すると、前記電子装置の前記システムインテグリティを検証する前記方法を繰り返すステップと、
更に含む請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
電子装置のシステムインテグリティを検証するシステムであって、前記システムは、
セキュア環境と通常環境とを有する処理ユニットと、
前記処理ユニットにより読み取り可能な非一時的媒体と、
を含み、前記媒体は、前記処理ユニットにより実行されると、前記処理ユニットに、
前記セキュア環境の中で提供される検証モジュールを用いて、チャレンジを生成させ、
前記検証モジュールから、前記通常環境の中で提供されるスキャナモジュールへ、前記チャレンジを送信させ、前記チャレンジは、前記スキャナモジュールに、前記通常環境の中でインテグリティ検証機能を実行して、応答を生成するよう指示し、前記インテグリティ検証機能は、既知の悪意コードについてカーネル内のコードをスキャンすること、プロセスリストをスキャンすること、ルート又はジェイルブレイクの痕跡についてメモリを調べること、メモリのページテーブルをスキャンすること、カーネル又はアプリケーションの状態及び特権パラメータを調べること、のうちの少なくとも1つであり、
前記スキャナモジュールを用いて、前記スキャナモジュール内に設けられた公開鍵又はプライベート鍵を用いて前記応答を暗号化させ、及び前記暗号化した応答を前記検証モジュールへ送信させ、
前記検証モジュールを用いて、前記暗号化された応答の復号化に成功するか否かに基づき、前記スキャナモジュールのインテグリティを検証させ、
前記スキャナモジュールの前記インテグリティが検証されたことの決定に応答して、前記検証モジュールを用いて、前記応答を、前記セキュア環境の中で提供されるセキュアデータベースに含まれるデータと照合し、一致が見付かるか否かに基づき前記応答が有効か否かを決定させ、
前記応答が無効であることの決定に応答して、前記システムインテグリティが検証されなかったと決定して、軽減措置を実行させる、
命令を格納する、システム。
【請求項9】
前記検証モジュールを用いて前記チャレンジを生成させる前記命令の前に、前記媒体は、
前記処理ユニットに、
前記セキュア環境の中で提供される前記検証モジュールを用いて、前記通常環境の中で提供される前記スキャナモジュールのインテグリティを検証する、
よう指示する命令を格納する、請求項8に記載のシステム。
【請求項10】
前記通常環境の中で提供される前記スキャナモジュールの前記インテグリティを検証させる前記命令は、
前記処理ユニットに、
前記検証モジュールを用いて、検証応答要求を生成し、前記検証応答要求を前記検証モジュールから前記スキャナモジュールへ送信し、前記検証応答要求は、前記スキャナモジュールに、暗号化した検証応答を生成し及び前記暗号化した検証応答を前記検証モジュールへ送信するよう指示し、
前記検証モジュールを用いて、前記暗号化された検証応答が有効か否かを決定し、それにより、前記応答が無効であることの決定に応答して、前記軽減措置を実行する、
よう指示する命令を含む、請求項9に記載のシステム。
【請求項11】
前記暗号化した検証応答が有効かどうかを決定させる前記命令は、
前記処理ユニットに、
前記検証モジュールを用いて、前記暗号化された検証応答を復号し、それにより、前記検証応答が復号化されることの決定に応答して、前記復号化した検証応答を前記セキュア環境の中で提供されるセキュアデータベースに含まれる検証データと照合し、一致が見付からないとき、前記検証応答は無効として決定される、
よう指示する命令を含む、請求項10に記載のシステム。
【請求項12】
前記軽減措置は、
前記処理ユニットに、前記通常環境の中で提供されるソフトウェアモジュールの実行を抑制するよう指示する命令、
を含む、請求項8乃至11のいずれか一項に記載のシステム。
【請求項13】
前記電子装置における前記セキュア環境は、前記電子装置のセキュアワールド仮想プロセッサを有し、前記電子装置における前記通常環境は、前記電子装置の通常ワールド仮想プロセッサを有し、前記セキュア環境は、前記通常環境とハードウェア独立である、請求項8乃至12のいずれか一項に記載のシステム。
【請求項14】
前記媒体は、
前記処理ユニットに、
プリセット時間間隔が経過したか否かを決定し、
前記プリセット時間間隔が経過すると、前記電子装置の前記システムインテグリティを検証することを繰り返す、
よう指示する命令を更に格納する、請求項8乃至13のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子装置のシステムインテグリティを検証するシステム及び方法に関する。電子装置は、電子装置のセキュア環境の中で提供される検証モジュールと、電子装置の通常環境の中で提供されるスキャナモジュールとを含み、それにより、セキュア環境は通常環境にあるハードウェアと独立したハードウェアを含み、つまり、これら2つの環境はハードウェア独立である。電子装置のインテグリティ検証の間、検証モジュールは、通常環境においてインストールされたスキャナモジュール及びオペレーティングシステムの両方のインテグリティを検証する。
【背景技術】
【0002】
スーパーユーザ及び/又は管理者アクセスを得る又は電子装置からの全ユーザ制限の削除を目的として電子装置に行われる権限のない変更、例えば、Adnroidオペレーティングシステムのルーティング又はiPh
oneオペレーティングシステムのジェイルブレイクは、電子装置をセキュリティ違反に対して脆弱にし、装置の全体的セキュリティを危険にさらす。電子装置内の重要な又は特権のあるモジュールは、装置のオペレーティングシステム(Operating System、OS)カーネル内で又は装置のシステム内で実行されるシステムの重要プロセス又はシステムの管理デーモンを含む。
【0003】
電子装置に対する大部分の権限のない変更は、装置のオペレーティングシステムに何らかの痕跡を残す。例えば、Linux装置では、このような装置がルートされるとき、ルーティングプロセスは、SUコマンドモジュール(つまり、権限のないアプリケーションがより高い特権を獲得できるようにするモジュール)を生成する、又は特定プロセスに与えられる特権を段階的に拡大する。したがって、装置がルートされているか否かを検証する方法は、SUコマンドモジュールについて又は特定プロセスの特権の段階的拡大について、装置をスキャンすることを含む。装置のインテグリティを検証する他の方法は、ルート/システム権限を有する不明プロセスについて、装置のファイルシステムを調べること、特定カーネルコードの固定メモリ位置を調べること、又は装置のメモリの動的部分を調べること、を含む。当然、悪意ある攻撃者は、これらのスキャニング技術に適応し、彼らの足跡をカバーし、それにより検出を回避する新しい方法を絶えず考え出すだろう。
【0004】
このようなアンチマルウェアソリューションの直面する共通問題は、検出/保護プログラムが、通常、保護されるべきオペレーティングシステムにインストールされることである。したがって、攻撃者がシステム内で実行しているこのようなアンチマルウェアソリューションの存在に気付く場合、攻撃者は、アンチマルウェアソリューションを変更させる攻撃を実施し、それによりソリューションの有用性を効果的に無効にすることができる。要するに、通常動作空間の中にインストールされたアンチマルウェアソリューションは、常に、良く設計された攻撃に対して脆弱である。
【0005】
装置のインテグリティを決定する提案される方法は、装置カーネルのデータを元のカーネルに含まれるデータと定期的に照らし合わせることを含む。この方法を実行するモジュールは、装置のセキュア状態の中で提供される。理論的には、スーパーユーザ又はシステム管理者のみが、このようなセキュア領域内に設けられたモジュールにアクセスし又は変更を行うことができるので、検証モジュールは、標準的に、このようなセキュア領域の範囲内にインストールされる。これは、このようなセキュア領域内にインストールされたモジュールが、攻撃及び権限のない変更から隔離されることを保証する。
【0006】
これを行う従来知られたソリューションは、Trust Zone−based Integrity Measurement Architecture(TIMA)ソリューションである。TIMAソリューションは、完全に信頼できる環境で実行し、その結果、いかなる攻撃もTIMAメカニズムを変更できない。しかしながら、通常オペレーティングシステム内にインストールされたアプリケーションはTIMAソリューションの中で利用されないので、これは、TIMAソリューションが単純な攻撃痕跡しか調べることができないことを意味する。例えば、それは、カーネルコードが変更されているか否かを(つまり、既知のメモリ領域のデジタルハッシュを計算し及び結果を所定値と比較することにより)調べることができるだけであり、信頼できる環境に格納された秘密鍵によりモジュールの署名を検証することができるだけである。結果として、それは、変更されているデータ、変更されているプロセス特権、等のような、装置又は装置のオペレーティングシステムに対する複雑な変化を検出できない。実際に、検出されずにTIMA実装装置を攻撃するために使用できる幾つかの攻撃ツール、例えば、「towelroot」、「pingpong root」、及び「kingroot」が存在する。さらに、信頼できる環境内にインストールされたアプリケーション又はモジュールに対して更新を実施することは一層困難である。結果として、信頼できる環境内のこれらのモジュールは、これらのモジュールの更新の非効率及び困難により、最新攻撃を扱うことができない。
【0007】
装置のインテグリティを検証する又は装置を攻撃から保護する他の提案される方法は、リモートサーバにより絶えず更新される情報を利用することを含む。攻撃サンプルを分析することにより、リモートサーバは、検証/保護プロセスの精度及び効率を向上でき、この更新された情報は、定期的に装置に更新される。セキュアなブート/信頼できるブート/dm−verityは、検証されたコンポーネントのみがロードされ及びシステム内で実行されることを許される場合に、全部ではないが大部分の攻撃が検出され解決されるという思想による他のソリューションである。これを達成するために、これらのソリューションは、ロードされるべきモジュールが、プレインストールされたモジュールにより検証されることを必要とする。それにより、プレインストールされたモジュールは、ハードウェア検証モジュールにより最初に検証される。さらに、セキュアなブートソリューションは、重要コンポーネントが、「boot−chain」として知られる技術を用いて、システム起動により実行されることも保証する。例えば、Linuxオペレーティングシステムでは、提案されるセキュアなboot−chainソリューションは、装置が最初に電源を入れられるとき、以下のブートシーケンスを実施する。
【0008】
1)装置のプロセッサは、装置が製造された後に編集できない所定位置からブートローダプログラムをロードする、
2)ブートローダプログラムは、BIOSがパーソナルコンピュータに対して行うことと類似する装置の基本入力及び出力プロセスを扱う「u−boot」又は汎用ブートローダを検証しロードする、
3)u−bootは、次に、Androidシステムをロードするカーネルをロードする。
【0009】
以上に提案されたセキュアなブートソリューションは、ハードウェアコンポーネントを用いて検証を実行させる。しかしながら、これらの検証は、モジュールが最初にロードされるときに実行されるだけであり、それ以降更なる検証ステップは実行されない。結果として、このソリューションは、上述の攻撃ツールのようなランタイム攻撃に対してオペレーティングシステムを保護しない。
【0010】
上述の理由から、当業者は、効率的且つ信頼できる方法で電子装置のシステムインテグリティを検証するシステム及び方法を提案するよう絶えず努力している。
【発明の概要】
【0011】
本発明による実施形態により提供されるシステム及び方法により、上述の及び他の問題が解決され、及び業界における進歩が成される。
【0012】
本発明によるシステム及び方法の実施形態の第1の利点は、電子装置のシステムのインテグリティを検証する前に、装置の通常オペレーティングシステム内に提供されるスキャナモジュールのインテグリティが、装置の信頼できる環境内にインストールされた検証モジュールにより検証されることである。この追加検証レイヤは、システムの信頼性が危険にさらされないことを保証する。
【0013】
本発明によるシステム及び方法の実施形態の第2の利点は、スキャナモジュールのインテグリティの検証が(そのために、このモジュールは、通常オペレーティングシステム内で提供される)、装置のシステムインテグリティの検証ステップと結合でき、それにより、検証ステップに費やす追加時間の必要を打ち消すことである。
【0014】
本発明によるシステム及び方法の実施形態の第3の利点は、応答が検証モジュールによってのみ復号化できる暗号化方法を用いて暗号化されるので、スキャナモジュールにより生成される応答が、偽造され、ハッキングされ、又は変更され得えないことである。
【0015】
本発明によるシステム及び方法の実施形態の第4の利点は、装置のシステムインテグリティの検証が、定期的に実行でき、装置の電源投入又はブートアップのときのみに限られないことである。
【0016】
本発明によるシステム及び方法の実施形態の第5の利点は、検証モジュールと異なり、スキャナモジュールが通常環境内にインストールされるので、最新アンチマルウェア、アンチルーティング、又はアンチジェイルブレイクプログラムにより、スキャナモジュールが容易に且つ絶えず更新できることである。
【0017】
上述の利点は、以下の方法で動作する本発明による方法の実施形態により提供される。
【0018】
本発明の第1の態様によると、電子装置のシステムインテグリティを検証する方法は、前記電子装置内のセキュア環境の中で提供される検証モジュールにより、チャレンジを生成するステップと、前記検証モジュールから、前記電子装置内の通常環境の中で提供されるスキャナモジュールへ、前記チャレンジを送信するステップであって、前記チャレンジは、前記スキャナモジュールに、前記通常環境の中でインテグリティ検証機能を実行して応答を生成するよう指示する、ステップと、前記スキャナモジュールにより、前記応答を暗号化し、及び前記暗号化した応答を前記検証モジュールへ送信するステップと、前記検証モジュールにより、前記スキャナモジュールのインテグリティを検証し、それにより、前記スキャナモジュールの前記インテグリティが検証されたことの決定に応答して、前記検証モジュールにより、前記応答が有効か否かを決定し、それにより、前記応答が無効であることの決定に応答して、軽減措置を実行する、ステップと、を含む。
【0019】
第1の態様を参照して、第1の態様の第1の可能な実装方法では、前記スキャナモジュールの前記インテグリティを検証する前記ステップは、前記検証モジュールにより、前記暗号化した応答を復号化するステップであって、それにより、前記暗号化した応答の復号化の成功に応答して、前記スキャナモジュールの前記インテグリティを検証する、ステップと、を含む。
【0020】
第1の態様又は第1の態様の第1の可能な実装方法を参照して、第1の態様の第2の可能な実装方法では、前記電子装置内の前記セキュア環境は、前記電子装置のセキュアワールド仮想プロセッサを含む。
【0021】
第1の態様、第1の態様の第1又は第2の可能な実装方法を参照して、第1の態様の第3の可能な実装方法では、前記電子装置内の前記通常環境は、前記電子装置の通常ワールド仮想プロセッサを含む。
【0022】
第1の態様、第1の態様の第1、第2又は第3の可能な実装方法を参照して、第1の態様の第4の可能な実装方法では、前記検証機能は、カーネルのスキャン、プロセスリストのスキャン、メモリページテーブルのスキャン、又はカーネル保護メカニズムの状態及びパラメータのチェック、を含む。
【0023】
第1の態様、第1の態様の第1、第2、第3又は第4の可能な実装方法を参照して、第1の態様の第5の可能な実装方法では、前記応答を暗号化する前記ステップは、プライベート又は公開鍵により前記応答を暗号化するステップであって、前記プライベート又は公開鍵は、前記スキャナ及び検証モジュールの中で提供される、ステップ、を含む。
【0024】
第1の態様、又は第1の態様の第1、第2、第3、第4又は第5の可能な実装方法を参照して、第1の態様の第6の可能な実装方法では、前記応答が有効かどうかを決定する前記ステップは、前記応答を、前記セキュア環境内で提供されるセキュアデータベースに含まれるデータと照合するステップであって、一致が見付からない場合、前記応答は無効として決定される、ステップ、を含む。
【0025】
第1の態様、又は第1の態様の第1、第2、第3、第4、第5又は第6の可能な実装方法を参照して、第1の態様の第7の可能な実装方法では、前記検証モジュールを用いて前記チャレンジを生成する前記ステップの前に、前記方法は、前記検証モジュールにより、前記通常環境の中で提供される前記スキャナモジュールのインテグリティを検証するステップ、を含む。
【0026】
第1の態様の第7の可能な実装方法を参照して、第1の態様の第8の可能な実装方法では、前記通常環境の中で提供される前記スキャナモジュールの前記インテグリティを検証する前記ステップは、前記検証モジュールにより、検証応答要求を生成し、前記検証応答要求を前記検証モジュールからスキャナモジュールへ送信するステップであって、前記検証応答要求は、前記スキャナモジュールに、暗号化した検証応答を生成し及び前記暗号化した検証応答を前記検証モジュールへ送信するよう指示する、ステップと、前記検証モジュールにより、前記暗号化した検証応答が有効か否かを決定するステップであって、それにより、前記応答が無効であることの決定に応答して、前記軽減措置を実行する、ステップと、を含む。
【0027】
第1の態様の第8の可能な実装方法を参照して、第1の態様の第9の可能な実装方法では、前記暗号化した検証応答が有効か否かを決定する前記ステップは、前記検証モジュールにより、前記暗号化した検証応答を復号するステップであって、それにより、前記検証応答が復号化されることの決定に応答して、前記復号化した検証応答を前記セキュア環境の中で提供されるセキュアデータベースに含まれる検証データと照合し、一致が見付からないとき、前記検証応答は無効として決定される、ステップ、を含む。
【0028】
第1の態様、又は第1の態様の第1、第2、第3、第4、第5、第6、又は第7の可能な実装方法を参照して、第1の態様の第10の可能な実装方法では、前記軽減措置は、前記通常環境内で提供されるソフトウェアモジュールの実行を抑制するステップを含む。
【0029】
本発明の第1の態様を参照して、第1の態様の第11の可能な実装方法では、前記セキュア環境は前記通常環境とハードウェア独立である。
【0030】
第1の態様、又は第1の態様の第1、第2、第3、又は第4の可能な実装方法を参照して、第1の態様の第12の可能な実装方法では、前記スキャナモジュール内の前記検証機能は難読化される。
【0031】
本発明の第1の態様を参照して、第1の態様の第13の可能な実装方法では、前記検証モジュールを用いて前記チャレンジを生成する前記ステップの前に、前記方法は、前記電子装置により、前記電子装置の電源投入を検出するステップと、前記電子装置内の前記セキュア環境内の前記検証されたモジュールをロードするステップと、を含む。
【0032】
本発明の第1の態様、又は第1の態様の第13の可能な実装方法を参照して、第1の態様の第14の可能な実装方法では、前記方法は、プリセット時間間隔が経過したか否かを決定するステップと、前記プリセット時間間隔が経過すると、前記電子装置の前記システムインテグリティを検証する前記方法を繰り返すステップと、を更に含む。
【0033】
本発明の第2の態様によると、電子装置のシステムインテグリティを検証するシステムであって、前記システムは、セキュア環境と通常環境とを有する処理ユニットと、前記処理ユニットにより読み取り可能な非一時的媒体と、を含み、前記媒体は、前記処理ユニットにより実行されると、前記処理ユニットに、前記セキュア環境の中で提供される検証モジュールを用いて、チャレンジを生成させ、前記検証モジュールから、前記通常環境の中で提供されるスキャナモジュールへ、前記チャレンジを送信させ、前記チャレンジは、前記スキャナモジュールに、前記通常環境の中でインテグリティ検証機能を実行して応答を生成するよう指示し、前記スキャナモジュールを用いて前記応答を暗号化させ、及び前記暗号化した応答を前記検証モジュールへ送信させ、前記検証モジュールを用いて前記スキャナモジュールのインテグリティを検証させ、それにより、前記スキャナモジュールの前記インテグリティが検証されたことの決定に応答して、前記検証モジュールを用いて、前記応答が有効か否かを決定させ、それにより、前記応答が無効であることの決定に応答して、軽減措置を実行させる、命令を格納する、システム。
【0034】
第2の態様を参照して、第2の態様の第1の可能な実装方法では、前記スキャナモジュールの前記インテグリティを検証させる前記命令は、前記処理ユニットに、前記検証モジュールを用いて前記暗号化した応答を復号化し、それにより、前記暗号化した応答の復号化の成功に応答して、前記スキャナモジュールの前記インテグリティを検証する、よう指示する命令を含む。
【0035】
第2の態様又は第2の態様の第1の可能な実装方法を参照して、第2の態様の第2の可能な実装方法では、前記処理ユニット内の前記セキュア環境は、セキュアワールド仮想プロセッサを含む。
【0036】
第2の態様、第2の態様の第1又は第2の可能な実装方法を参照して、第2の態様の第3の可能な実装方法では、前記処理ユニット内の前記通常環境は、通常ワールド仮想プロセッサを含む。
【0037】
第2の態様、第2の態様の第1、第2又は第3の可能な実装方法を参照して、第2の態様の第4の可能な実装方法では、前記検証機能は、カーネルをスキャンし、プロセスリストをスキャンし、メモリページテーブルをスキャンし、又はカーネル保護メカニズムの状態及びパラメータをチェックする、よう前記処理ユニットに指示する命令を含む。
【0038】
第2の態様、第2の態様の第1、第2、第3又は第4の可能な実装方法を参照して、第2の態様の第5の可能な実装方法では、前記応答を暗号化するための前記命令は、プライベート又は公開鍵により前記応答を暗号化し、前記プライベート又は公開鍵は、前記スキャナ及び検証モジュールの中で提供される、よう前記処理ユニットに指示する命令を含む。
【0039】
第2の態様、又は第2の態様の第1、第2、第3、第4又は第5の可能な実装方法を参照して、第2の態様の第6の可能な実装方法では、前記応答が有効かどうかを決定するための前記命令は、前記応答を、前記セキュア環境内で提供されるセキュアデータベースに含まれるデータと照合し、一致が見付からない場合、前記応答は無効として決定される、よう前記処理ユニットに指示する命令を含む。
【0040】
第2の態様、又は第2の態様の第1、第2、第3、第4、第5又は第6の可能な実装方法を参照して、第2の態様の第7の可能な実装方法では、前記検証モジュールを用いて前記チャレンジを生成するための前記命令の前に、前記命令は、前記セキュア環境の中で提供される前記検証モジュールを用いて、前記通常環境の中で提供される前記スキャナモジュールのインテグリティを検証する、よう前記処理ユニットに指示する命令を含む。
【0041】
第2の態様の第7の可能な実装方法を参照して、第2の態様の第8の可能な実装方法では、前記通常環境の中で提供される前記スキャナモジュールの前記インテグリティを検証させる前記命令は、前記処理ユニットに、前記検証モジュールを用いて、検証応答要求を生成し、前記検証応答要求を前記検証モジュールから前記スキャナモジュールへ送信し、前記検証応答要求は、前記スキャナモジュールに、暗号化した検証応答を生成し及び前記暗号化した検証応答を前記検証モジュールへ送信するよう指示し、前記検証モジュールを用いて、前記暗号化した検証応答が有効か否かを決定し、それにより、前記応答が無効であることの決定に応答して、前記軽減措置を実行する、よう指示する命令を含む。
【0042】
第2の態様の第8の可能な実装方法を参照して、第2の態様の第9の可能な実装方法では、前記暗号化した検証応答が有効かどうかを決定する前記命令は、前記処理ユニットに、前記検証モジュールを用いて、前記暗号化した検証応答を復号し、それにより、前記検証応答が復号化されることの決定に応答して、前記復号化した検証応答を前記セキュア環境の中で提供されるセキュアデータベースに含まれる検証データと照合し、一致が見付からないとき、前記検証応答は無効として決定される、よう指示する命令を含む。
【0043】
第2の態様、又は第2の態様の第1、第2、第3、第4、第5、第6、又は第7の可能な実装方法を参照して、第2の態様の第10の可能な実装方法では、前記軽減措置は、前記処理ユニットに、前記通常環境内で提供されるソフトウェアモジュールの実行を抑制するよう指示する命令を含む。
【0044】
本発明の第2の態様を参照して、第2の態様の第11の可能な実装方法では、前記セキュア環境は前記通常環境とハードウェア独立である。
【0045】
第2の態様、又は第2の態様の第1、第2、第3、又は第4の可能な実装方法を参照して、第2の態様の第12の可能な実装方法では、前記スキャナモジュール内の前記検証機能は難読化される。
【0046】
本発明の第2の態様を参照して、第2の態様の第13の可能な実装方法では、前記検証モジュールを用いて前記チャレンジを生成することを指示する前に、前記システムは、前記処理ユニットに、前記電子装置の電源投入を検出し、前記電子装置内の前記セキュア環境内の前記検証されたモジュールをロードする、よう指示する命令を含む。
【0047】
第2の態様又は第2の態様の第13の可能な実装方法を参照して、第2の態様の第14の可能な実装方法では、前記スキャナモジュールは難読化される。
【図面の簡単な説明】
【0048】
本発明による上述の利点及び特徴は、以下の詳細な説明に記載され、及び以下の図面に示される。
【
図1】本発明の実施形態による、実施形態を実装する電子装置内のコンポーネントを表すブロック図を示す。
【
図2】本発明の実施形態による、プロセッサのセキュア環境及び通常環境の例示的ブロック図を示す。
【
図3】本発明の実施形態による、電子装置のインテグリティの検証のためのタイミング図を示す。
【
図4】本発明の実施形態による、電子装置のインテグリティ検証のための検証モジュールで実行されるプロセスのフロー図を示す。
【
図5】本発明の実施形態による、通常環境の中で提供されるスキャナモジュールのインテグリティを検証するプロセスのフロー図を示す。
【
図6】本発明の実施形態による、スキャナモジュール及び電子装置のインテグリティの検証のための暗号化応答を生成するスキャナモジュールで実行されるプロセスのフロー図を示す。
【発明を実施するための形態】
【0049】
本発明は、電子装置のシステムインテグリティを検証するシステム及び方法に関する。電子装置は、電子装置のセキュア環境の中にインストールされる検証モジュールと、電子装置の通常環境の中にインストールされるスキャナモジュールとを設けられ、それにより、セキュア環境は通常環境にあるハードウェアと独立したハードウェアを含み、つまり、これら2つの環境はハードウェア独立である。
【0050】
図1は、本発明の実施形態による、実施形態を実施する電子装置100に含まれて良い処理システム及び処理システムのコンポーネントを示すブロック図を示す。電子装置100は、限定ではないが、スマートフォン、タブレットコンピュータ、モバイルコンピュータ、ノートブック、スマートウォッチのようなウェアラブル電子装置、等のような通信機能を実行可能な任意の装置を含んで良い。当業者は、各電子装置の正確な構成が異なって良く、各電子装置の正確な構成が変化して良く、及び
図1が単に例として与えられることを理解する。
【0051】
本発明の実施形態では、電子装置100は、制御部101と、ユーザインタフェース102と、を含む。ユーザインタフェース102は、ユーザと電子装置100との間の手動相互作用を可能にするよう構成され、この目的のために、ユーザが電子装置100を制御するため命令を入力するために必要な入力/出力コンポーネントを含む。当業者は、ユーザインタフェース102のコンポーネントが実施形態毎に変化して良いが、標準的に、ディスプレイ140、キーボード135、及びトラックパッド136のうちの1又は複数を含むことを認識する。
【0052】
制御部101は、バス115を介してユーザインタフェース102とデータ通信し、メモリ120、本実施形態の方法を実行するために命令及びデータを処理する回路基板に搭載される中央処理ユニット(Central Processing Unit、CPU)105、オペレーティングシステム106、ユーザインタフェース102及び本実施形態ではネットワークカード150の形式の通信インタフェースと通信する入力/出力(I/O)インタフェース130、を含む。ネットワークカード150は、例えば、電子装置100から有線又は無線ネットワークを介して他の処理装置へデータを送信するため、又は有線又は無線ネットワークを介してデータを受信するために利用されて良い。ネットワークカード150により利用され得る無線ネットワークは、限定ではないが、Wireless−Fidelity(Wi−Fi)、Bluetooth、Near Field Communication(NFC)、セルラネットワーク、衛星ネットワーク、電信ネットワーク、広域ネットワーク(Wide Area Networks、WAN)、等を含んで良い。
【0053】
メモリ120及びオペレーティングシステム106は、バス110を介してCPU105とデータ通信する。メモリコンポーネントは、揮発性及び不揮発性メモリの両方、並びに、ランダムアクセスメモリ(Random Access Memory、RAM)120、読み出し専用メモリ(Read Only Memory、ROM)125、及び1又は複数の固体ドライブ(solid−state drive、SSD)を含む大容量記憶装置145、を含む1より多くの各種類のメモリを含む。当業者は、メモリコンポーネントが非一時的コンピュータ可読媒体を含み、一時的な伝搬信号を除く全てのコンピュータ可読媒体を含むと解釈されるべきであることを認識する。標準的に、命令は、メモリコンポーネント内のプログラムコードとして格納されるが、ハードウェアによっても実現できる。メモリ120は、揮発性又は不揮発性メモリに格納されて良いソフトウェアアプリケーションのようなカーネル及び/又はプログラミングモジュールを含んで良い。
【0054】
ここで、用語「CPU」は、概して、このような命令を処理できる任意の装置又はコンポーネントを表すために使用され、マイクロプロセッサ、マイクロコントローラ、プログラマブル論理装置、又は他の計算装置を含んで良い。つまり、CPU105は、入力を受信し、メモリに格納された命令に従いそれらを処理し、及び(例えばメモリコンポーネントへの又はディスプレイ140上の)出力を生成する、任意の適切な論理回路により提供されて良い。本実施形態では、CPU105は、メモリアドレス可能空間を有するシングルコア又はマルチコアプロセッサであって良い。一例では、CPU105は、例えば8コアCPUを含むマルチコアであって良い。
【0055】
図2は、本発明の実施形態による、セキュア環境仮想プロセッサ210(以後、「セキュア環境」として知られる)と通常環境仮想プロセッサ205(以後、「通常環境」として知られる)とを提供するプロセッサ105の例示的なブロック図を示す。通常環境205は、最小限のセキュリティ設定により通常モードで動作するよう構成されている、オペレーティングシステム206、カーネル222、アプリケーション224、及びスキャナ220を含んで良い。これに対し、セキュア環境210は、セキュアオペレーティングシステム、セキュアカーネル、セキュアデータベース235、及びセキュア検証モジュール230により提供されて良い。
【0056】
セキュア環境210は、通常環境205からハードウェア分離されて良く、それにより、通常環境内に置かれるアプリケーション、カーネル、モジュール及びオペレーティングシステムが、セキュア環境内で提案されるアプリケーション、カーネル、モジュール及びオペレーティングシステムにアクセスできないことを保証する。このようなハードウェアに基づく分離は、限定ではないが、Advanced RISC Machines(ARM)により提供されるプロセッサアーキテクチャにより提供されて良い。ARMプロセッサでは、このようなハードウェアに基づく分離は、Trust Zone技術として実装される。ARMプロセッサのTrust Zone技術は、単一の物理プロセッサコアにおけるコード実行を2つの環境であるセキュア環境と通常環境とに分けるハードウェアに基づく分離を可能にする。当業者は、セキュア210及び通常205環境にインストールされる
図2に示すソフトウェア又はモジュールが、このようなオペレーティングシステムの開発コードを用いて記述されて良く、又は以下に記載するような各モジュールにより必要とされるプロセスを実行するために、このようなオペレーティングシステムのためにコーディングされた既存クラス又はコンポーネントから変更されて良いこと、並びに、データ又は情報がこれらのモジュール間で必要に応じて転送されて良いことを理解する。
【0057】
セキュア環境内にインストールされたコンポーネントは、厳しいセキュリティ要件を課され、結果として、限られた機能を実行でき、装置の製造者又は装置のスーパーユーザによりアクセスされ又は変更されることができるだけである。これは、セキュア環境内のアプリケーション、モジュール又はカーネルの更新をうんざりする非現実的な選択肢にしてしまう。
【0058】
通常環境205内で提供されるオペレーティングシステム206は、Android、Linux、IPhone OS(iOS)又は電子装置100若しくはモバイル装置での使用に適する任意の他のオペレーティングシステムのような、任意のオペレーティングシステムを含み得る。カーネル222及び/又はアプリケーション224は、電子装置100のリソースを管理するための命令を実行して良い。通常環境205内で提供されるスキャナモジュール220は、オペレーティングシステム206、カーネル222、又はアプリケーション224へ命令又はコマンドを提供するよう構成されて良く、更にこれらのコンポーネントの各々から応答を受信するように構成されて良い。しかしながら、留意すべきことに、通常環境205内のコンポーネントは、データベース235又は検証器230のようなセキュア環境内で提供されるコンポーネントにアクセスし又はそれを制御してはならない。通常環境内にインストールされたコンポーネントは、しかしながら、セキュア環境210内にインストールされたコンポーネントへデータを送信し又はそれから命令を受信して良い。通常環境205のコンポーネントから送信されるデータは、セキュア環境210内のコンポーネントにより処理されないような特性のデータとしてコマンド又は命令を含んではならない。
【0059】
図3は、本発明の実施形態による、電子装置100のインテグリティの検証のためのタイミング図を示す。
図2に先に示したように、検証モジュール230は、セキュア環境210内で提供される。検証モジュール210は、次に通常環境205内のコンポーネントへ送信される、検証要求のような命令(以後、「チャレンジ」として知られる)又は種々の要求を生成するよう構成されるアプリケーション又はセキュアプログラムを含んで良い。
図2に示すシステムは、以下の方法で動作する。検証器230は、先ず、スキャナモジュール220により実行されるべき特定命令を含むチャレンジを生成する。本発明の実施形態では、このチャレンジは、公開鍵又はプライベート鍵暗号化を用いて暗号化されて良く、そのために、対応する公開又はプライベート鍵は予めスキャナモジュール220に提供されている。ステップ305で、生成されたチャレンジは、次に、スキャナモジュール220へ送信される。チャレンジを受信すると、スキャナモジュール220は、チャレンジ内に含まれる命令を実行する。チャレンジが暗号化されている場合、スキャナモジュール220は、適切な復号鍵を用いてチャレンジを復号化し、次にその中に含まれる命令を実行する。これは、チャレンジ、チャレンジに含まれる命令、及び命令の中で指定されるスキャン機能/目標が、全ての他のモジュール及び/又はプロセスから秘密にされることを保証する。
【0060】
命令は、オペレーティングシステム206のインテグリティを検証するステップを実行するための、スキャナモジュール220に対するコマンドを含んで良く、これは、オペレーティングシステム206により提供されるデフォルト機能及び関数を用いることにより行われて良い。本発明の実施形態では、命令は、限定ではないが、既知の悪意コードについてカーネル222内のコードをスキャンし、プロセスリストをスキャンし、ルート又はジェイルブレイクの痕跡についてメモリ120を調べ、メモリ120のページテーブルをスキャンし、カーネル222又はアプリケーション224の状態及び特権パラメータを調べるアルゴリズムを実行するための、スキャナモジュール220に対するコマンドを含んで良い。全てのこれらのインテグリティ検証アルゴリズムは、スキャナモジュール220内に格納されて良い。本発明の実施形態では、スキャナモジュール220内に含まれるインテグリティ検証アルゴリズム及び/又はスキャナモジュール220は、難読化されて良く、それによりスキャナモジュール220及びこれらのコードが悪意ある攻撃者により読み取られ及び/又は分析されることを防ぐ。留意すべきことに、難読化されたスキャナモジュール220は、依然として、検証モジュール210から受信した命令を実行できる。言い換えると、スキャンモジュール220は、スキャナモジュール220が受信した命令を実行できる前に、難読化解除される必要がない。したがって、難読化されたスキャナモジュール220は、常に、常時難読化されたままである。検証命令を暗号化させることにより、及びスキャナモジュール220を難読化させることにより、これは、通常動作環境205内で提供されるスキャナモジュール220が通常環境205内の他のモジュールからの権限のないアクセスから二重に隠蔽されることを保証する。当業者は、本発明から逸脱することなく、新たに発見された悪意コード又は攻撃を解決するために新しい更新が開発されるとき、新しい検証アルゴリズムがスキャナモジュール220に提供され得ることを理解する。これらの更新は、モジュールが通常動作環境205内にインストールされるので、スキャナモジュール220に容易にインストールできる。スキャナモジュール220によるインテグリティ検証アルゴリズムの実行は、ステップ310で行われる。
【0061】
検証機能が実行された後、個々のカーネル、アプリケーション及び/又はモジュールからの検証結果及び応答は、次に、スキャナモジュール220へ返される。これは、ステップ315で行われる。応答は、スキャナモジュール220において全て照合される。スキャナモジュール220は、次に、スキャナモジュール220内に設けられた公開又はプライベート鍵を用いて照合された応答を暗号化することに進む。当業者は、他の暗号化又は場合によっては難読化技術さえも、本発明から逸脱することなく、照合された応答を暗号化するために利用されて良いことを理解する。暗号化された照合された応答は、次に、ステップ320で、検証モジュール230へ送信される。
【0062】
検証モジュール230は、次に、暗号化された応答を用いて、スキャナモジュール220のインテグリティを検証する。本発明の実施形態では、検証モジュール230が暗号化された応答の復号化に成功した場合、これは、応答を暗号化するために同じ暗号鍵及び/又はアルゴリズムが使用されたので、スキャナモジュール220のインテグリティが危険にさらされていないことを意味する。暗号化された応答を復号化するために、検証モジュール230は、セキュアデータベース235から秘密公開/プライベート鍵を読み出す必要がある。これは、ステップ325で行われる。
【0063】
データベース235は、検証モジュール230によ
る要求を分析し、要求が有効な要求か否か、つまり、要求された秘密鍵がそのレコードに含まれるか否かを決定する。要求された秘密鍵が利用可能でない場合、これは、システムのインテグリティが危険にさらされていることの警告をトリガして良い。反対に、秘密鍵が読み出しに成功し得る場合、この秘密鍵は、次に、ステップ330で検証モジュール230へ転送される。
【0064】
検証モジュール230は、次に、暗号化された応答を復号化するために秘密鍵を利用する。応答が復号化できない場合、又は復号化が無意味な結果を生じた場合、これは、スキャナモジュール220が危険にさらされていることを強く示唆し、次に検証モジュール230により軽減措置が実行され得る。本発明の実施形態では、軽減措置は、電子装置のロック、それにより更なるアプリケーションが実行することを防ぎ、電子装置の電源断、及び/又は軽減措置が電子装置において開始されていることをサーバに通知する、リモートサーバへの警報の送信、を含み得る。当業者は、本発明から逸脱することなく他の軽減ステップが取られて良いことを理解する。代替で、応答が復号化に成功した場合、これは、スキャナモジュール220のインテグリティが無傷であることを意味し、応答は次に検証モジュール230により更に分析される。
【0065】
先に生成されたチャレンジに含まれるコマンドに基づき、検証モジュール230は、次に、セキュアデータベース235から期待結果セットを読み出す。データベース235から読み出された結果は、次に、復号化された応答に含まれる結果と比較される。両方の結果セットが内部チェックリストと一致する又はそれを満たす場合、次に応答は有効として決定され、次に検証モジュール230は、電子装置100のインテグリティが危険にさらされていないことを決定する。代替で、結果セットが一致しない場合、又はチェックリストの全部の内容が満たされない場合、これは、電子装置100のインテグリティが脅かされており、次に軽減措置が検証モジュール230により実行される必要があることを意味する。上述のように、検証モジュール230により取られ得る軽減措置は、限定ではないが、電子装置のロック、それにより更にアプリケーションが実行することを防ぎ、電子装置の電源断、及び/又は軽減措置が電子装置において開始されていることをサーバに通知する、リモートサーバへの警報の送信、を含む。
【0066】
本発明の例示的な実施形態では、本発明のシステムは、Bring−Your−Own−Device(BYOD)システム内の装置のためのアンチルーティング検出システムとして実装されて良い。BYODシステムでは、従業員は、彼ら自身の電子装置を用いて彼らの会社の機密データを閲覧することを許可される。これらのデータの機密性が脅かされないことを保証するために、会社は、電子装置が無傷のオペレーティングシステム(OS)、つまりルート又はジェイルブレイクされていないOSを有することを保証する必要がある。纏めると、会社は、装置のオペレーティングシステムにより実装されるセキュリティ手段が無傷のままであること、そのためにユーザが制御特権への限定アクセスを許可されるだけであることを確かめる必要がある。
【0067】
本発明の本実施形態では、2つのプログラム又はモジュールは、先ず、従業員が彼らの装置をBYODシステムに追加するとき、電子装置にインストールされる。第1プログラム又はモジュールは、装置の信頼できる実行環境(Trusted Execution Environment、TEE)又はその等価なセキュア環境にインストールされるべき検証モジュールであり、第2プログラムは、装置の豊かな実行環境(Rich Execution Environment、REE)又はその等価な通常環境にインストールされるべきスキャナモジュールである。
【0068】
検証モジュールは、検証モジュールがスキャナモジュールに例えばカーネルコードをスキャンし、プロセスリストをスキャンし、SUモジュールについて調べ、メモリページテーブルをスキャンし、カーネル保護メカニズムの状態及びパラメータを調べ、及び多くの他のことを実行することを依頼して良いタスクリストを含み得る。これらのタスクは、検証モジュール内で提供される要求送信側プログラムを用いて選択されて良く、そのために、このプログラムは、目標/コマンドセットを含む検証要求又はチャレンジをスキャナモジュールへ送信する。本発明の実施形態では、要求送信側プログラムは、タイマ及び関数コールバックハンドラを備えられて良く、要求送信側プログラムが定期的に及び/又は重要なBYOD機能が開始されようとしているときに、開始できるようにする。
【0069】
検証モジュールは、スキャナモジュールにより返送される応答を復号化し検証するために検証アルゴリズムにより使用できるプライベート鍵(これは、対称復号鍵でもあり得る)も含んで良い。上述に加え、検証モジュールは、無効化された応答の受信又は応答の復号化の失敗に応答して、電話機のロック、電話機のシャットダウン、及び/又は応答当局への通知のような軽減措置を実行するよう構成される応答ハンドラも含む。
【0070】
REE環境にインストールされるスキャナモジュールは、検証モジュールへ送信されるべき応答を暗号化するために使用され得る公開鍵(これは対称暗号鍵でもあり得る)を含み、公開鍵は難読化及びホワイトボックス技術により保護されて良い。スキャナモジュールは、検証モジュールから受信した命令又はコマンドを実行するために使用されるスキャニングアルゴリズムセットも含み、これらのアルゴリズムも難読化されて良い。スキャナモジュールは、暗号化した結果を検証器へ返送する前に、スキャニングアルゴリズムの結果を暗号化するために公開鍵を利用する応答アルゴリズムも含む。本発明の実施形態では、スキャナモジュールは、オペレーティングシステムのシステムモジュールとして実装され、例えば、オペレーティングシステムがAndroidオペレーティングシステムである場合、スキャナモジュールは、Androidカーネルによりロードされ得るAndroidシステムモジュールとして実装されるだろう。
【0071】
本発明の実施形態では、検証モジュールは、(汎用ブートがロードされる前又はその直後に)電子装置がブートアップする又は電源投入される度に自動的にロードされて良い。このブートシーケンスは、従来知られているセキュアブートチェーン技術と類似している。検証モジュールは、ロードされた後に、装置のTEEに留まり、したがって、ハードウェア独立によりREEにインストールされたアプリケーションから隠蔽される。これは、検証モジュールが実行中のときに、悪意ある攻撃者がモジュールをアンロードすること又はその設定を変更することができないことを意味する。同様に、セキュアブートチェーンは、カーネルをREEにロードした後に、スキャナモジュールをREE又は通常環境にロードする。スキャナモジュールがロードされた直後、及びオペレーティングシステムがロードされる前に、スキャナモジュールは、カーネルをスキャンし、検証器へ正しいカーネルの参照を送信する。その後、REE内のオペレーティングシステムがロードされ、通常通り実行する。
【0072】
本発明の他の実施形態では、検証モジュールは、5分乃至1時間の間のランダムな時間間隔で定期的に実行されて良い。これは、検証モジュールが、スキャナモジュールに、システムインテグリティスキャンを定期的に要求することを意味する。
図3に示すようなステップ305〜330は、このシステムインテグリティスキャンの間、実行される。ランダムな間隔は、装置の性能と装置のセキュリティとの間の平衡を達成するために調整される。効率を更に向上するために、検証モジュールは、装置の電源状態、装置の充電状態、装置のCPU作業負荷、1日のうちの時間、等に基づき、実行時間間隔を調整して良い。留意すべきことに、検証モジュールにより要求される全ての必要な情報は、TEE又は装置のセキュア官許に含まれるカーネル及びアプリケーションから得られて良い。
【0073】
本発明の別の例示的な実施形態では、本発明のシステムは、オンライントランザクションアプリケーションが電子装置と金融機関との間で実行され得る前に装置のインテグリティを検証するプレオンライントランザクションシステムとして実装されて良い。本実施形態では、システムは、装置に含まれる金融データのような機密データがオンライントランザクション中に保護されることを保証する。さらに、システムは、トランザクションがユーザにより実際に権限付与されることも保証する。さらに、本実施形態では、システムは、鍵ロガーアプリケーションが、ユーザのパスワード又は任意の他の機密情報を盗もうとする装置のシステム内で実行中でないことも検証する。
【0074】
同様に、検証モジュールは、装置の信頼できる実行環境(Trusted Execution Environment、TEE)又はその等価なセキュア環境内にインストールされ、スキャナモジュールは、装置の豊かな実行環境(Rich Execution Environment、REE)又はその等価な通常環境にインストールされる。
【0075】
本実施形態では、検証器がチャレンジを生成しスキャナモジュールへ送信する前に、つまりステップ305の前に、検証モジュールは、先ず、スキャナモジュールのインテグリティを検証する。これは、スキャナモジュールのデジタル署名を検証することにより、又はスキャナモジュールのメモリ内容をチェックすることにより、行うことができる。例えば、対応する金融機関は、認可スキャナモジュールのデジタル署名を計算するために使用されるプライベート鍵を有し、検証モジュールは、スキャナモジュールが本当に銀行によりデジタル署名されている適正バージョンであることを検証するために使用される対応する公開鍵を有する。公開鍵は、標準的にTEE内に提供されるセキュアデータベースに格納される。金融機関に関連付けられるプログラムがスキャナモジュールが更新されること(例えば、新しい機能をサポートすること、又は許可プロセスリストを編集すること、等)を要求するときはいつも、金融機関は、スキャナモジュールの新しいバージョンを、対応するデジタル署名と一緒に(例えば、オンラインポータルを介して)、リリースする。ユーザは、次に、かれらの装置に更新をダウンロードし及びインストールしなければならない。検証器は、ユーザの秘密データ(例えば、パスワード)が新しい悪意プログラム/攻撃によりロギングされ又はキャプチャされることを防ぐために、モジュールのデジタル署名を用いてスキャナモジュールのインテグリティを定期的に調べる。検証モジュールが更新することは一層困難なので、元の検証モジュールが依然としてスキャナモジュールにより実行される更新されたスキャニング動作の応答を検証できるような方法で、新しい検証対象がスキャナモジュールに追加される。これがどのように達成できるかの一例は、スキャナモジュールからの応答が、銀行のプライベート鍵を用いてデジタル署名されている期待結果を含むことである。
【0076】
スキャナモジュールのインテグリティが危険にさらされている場合、又はスキャナモジュールにより生成された応答が検証されていない、つまり、システムが危険にさらされている場合、検証モジュールは、対応するモジュール又はシステムのインテグリティが危険にさらされていることを金融機関に通知するような、軽減措置を実行する。幾つかのシナリオでは、このような通知を装置から受信しても、金融機関がリスクは許容可能であると決定した場合、トランザクションは依然として進むことを許可されることがある。したがって、金融機関が適正な脅威評価分析を実行するために、検証モジュールは、金融機関へ通知を送信するとき、インテグリティ検証エラーに関する詳細事項、例えば実行中アプリケーション、適合されなかった目標、スキャナモジュールから返された結果、等に関する詳細事項も提供しなければならない。
【0077】
本発明の一実施形態によると、電子装置のシステムインテグリティを検証する方法は、以下の4つのステップを含む:
ステップ1、電子装置内のセキュア環境の中で提供される検証モジュールにより、チャレンジを生成するステップ;
ステップ2、検証モジュールから、電子装置の通常環境の中で提供されるスキャナモジュールへ、チャレンジを送信するステップであって、チャレンジは、スキャナモジュールに、通常環境内でインテグリティ検証機能を実行し、応答を生成するよう指示する、ステップ;
ステップ3、スキャナモジュールにより、応答を暗号化し、暗号化した応答を検証モジュールへ送信するステップ;
ステップ4、検証モジュールにより、スキャナモジュールのインテグリティを検証するステップであって、それにより、スキャナモジュールのインテグリティが検証されたという決定に応答して、検証モジュールにより、応答が有効かどうかを決定し、それにより、応答が無効であるという決定に応答して、軽減措置を実行する、ステップ。
【0078】
このようなシステム又は方法を提供するために、装置のセキュア環境内にインストールされた検証モジュール及び装置の通常環境内にインストールされたスキャナモジュールを用いて電子装置のシステムインテグリティを検証するプロセスが必要である。以下の記載及び
図4〜6は、本発明によるプロセスを提供するプロセスの実施形態を記載する。
【0079】
図4は、本発明の実施形態による、装置のシステムインテグリティを検証するために電子装置のセキュア環境内にインストールされた検証モジュールにより実行されるプロセス400を示す。プロセス400は、ステップ405で、電子装置の通常環境内で提供されるスキャナモジュールへ送信されるべきチャレンジを生成することにより、開始する。チャレンジは、システムのインテグリティを検証するために、スキャナモジュールにより実行されるべき特定の命令を含む。チャレンジが生成されると、チャレンジは、次に、送信され、スキャナモジュールにより実行される。プロセス400は、次に、ステップ410で、スキャナモジュールから暗号化された応答を受信する。応答は、次に、ステップ415で、プロセス400により復号化される。プロセス400は、検証モジュール内に格納されたプライベート及び/又は公開鍵を用いて暗号化された応答を復号化して良く、プロセス400は、必要な秘密鍵をセキュア環境内で提供されるセキュアデータベースから読み出して良い。暗号化された応答が復号化に成功しなかった場合、プロセス400は、ステップ420に進み、それにより、プロセス400は、次に、必要な軽減措置を実行するために進行する。次に、プロセス400は終了する。
【0080】
代替で、ステップ415で応答が復号化に成功した場合、プロセス400はステップ425へ進む。ステップ425で、プロセス400は、セキュアデータベースから読み出されるべき所要データ又はチェックリストを決定するために応答をレビューする。プロセス400は、次に、読み出したデータを、復号化された応答の中に含まれるデータと比較して、応答の有効性を決定する。これは、ステップ430で行われる。プロセス400が応答は有効であると決定した場合、これは、システムのインテグリティが無傷であることを意味し、プロセス400はステップAに進む。反対に、応答が無効であると決定された場合、プロセス400は、代わりにステップ420へ進み、それにより、軽減措置がプロセス400により実行される。次に、プロセス400は終了する。
【0081】
本発明の更なる実施形態では、ステップAで検証モジュールが、電子装置は電源断され及び電源投入された(つまり、ブートアップ)ことの指示を受信した場合、検証モジュールは、任意の他のプロセスが実行される及びプロセス400を実行する前に、最初に開始する。プロセス400は、次に、通常環境内でカーネル又はオペレーティングシステムが開始され得る前に、ステップ405〜430を繰り返させる。本発明の更に別の実施形態では、ステップAで、プリセット時間間隔又は期間が経過した後に、プロセス400は、電子装置のシステムインテグリティを検証するためにステップ405〜430を繰り返させる。
【0082】
本発明の別の実施形態では、プロセス400がステップ405でチャレンジを生成する前に、プロセス400は、先ず、通常環境にインストールされたスキャナモジュールのインテグリティを検証する。この事前チャレンジ検証ステップは、
図4のステップBで行われる。
図5は、本発明の実施形態による、スキャナモジュールのインテグリティを検証するために検証モジュールにより実行されるプロセス500を示す。プロセス500は、ステップ505で開始し、それにより、検証応答要求が生成される。検証応答要求は、スキャナモジュールに、検証及びスキャナモジュールの両方に知られている秘密鍵(例えば、プライベート鍵又は公開鍵)を用いて暗号化された応答を生成させる。要求が生成されると、要求は、次に、スキャナモジュールへ送信される。スキャナモジュールは、受信した要求に含まれる命令を実行する。プロセス500は、次に、ステップ510で、スキャナモジュールから暗号化された検証応答を受信する。プロセス500は、次に、ステップ515で、受信した応答を検証することに進む。応答の検証は、暗号化された応答の復号化を含んで良く、それにより、応答が復号化に成功した場合、これは、プロセス500に応答が有効であることを示す。反対に、応答が復号化に成功できなかった場合、これは、応答が無効であることを示す。ステップ515で応答が有効であるとプロセス500により決定された場合、プロセス500は次に終了する。しかしながら、ステップ515で応答が無効であると決定された場合、プロセス500は、ステップ520へ進み、それにより、軽減措置が実行される。次に、プロセス500は終了する。
【0083】
図6は、本発明の実施形態による、スキャナモジュール及び電子装置のインテグリティの検証について暗号化された応答を生成する、電子装置の通常環境の中でスキャナモジュールにより実行されるプロセス600を示す。プロセス600は、ステップ605で開始し、それにより、プロセス600は検証モジュールからチャレンジを受信する。簡単に纏めるために、チャレンジは、プロセス600により実行されるべき全ての検証ステップを含む。プロセス600は、次に、ステップ610で、チャレンジの中で示されるような全ての検証機能を実行するために進行する。各機能が完了した後に、プロセス600は、各特定機能について生成された応答を収集し、全ての応答を単一の統一応答に順に並べる。統一応答は、次に、ステップ615で、秘密鍵(例えば、プライベート鍵又は公開鍵)を用いて暗号化される。この暗号化された応答は、次に、ステップ620で検証モジュールへ送信され、プロセス600は次に終了する。
【0084】
以上は、以下の請求項に記載されるような本発明によるシステム及びプロセスの実施形態の説明である。他者が以下の請求項の範囲に包含される代替を設計でき及びそうし得ることが想定される。