JP2016010031A - Remote integrity verification system, method and program - Google Patents

Remote integrity verification system, method and program Download PDF

Info

Publication number
JP2016010031A
JP2016010031A JP2014130252A JP2014130252A JP2016010031A JP 2016010031 A JP2016010031 A JP 2016010031A JP 2014130252 A JP2014130252 A JP 2014130252A JP 2014130252 A JP2014130252 A JP 2014130252A JP 2016010031 A JP2016010031 A JP 2016010031A
Authority
JP
Japan
Prior art keywords
information
verification
integrity verification
unit
checksum
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014130252A
Other languages
Japanese (ja)
Other versions
JP6257460B2 (en
Inventor
隆志 松中
Takashi Matsunaka
隆志 松中
歩 窪田
Ayumi Kubota
歩 窪田
アンジェロ サペロ クリストファー
Angelo Sapello Christopher
アンジェロ サペロ クリストファー
ゴッシュ アブフラジット
Ghosh Abhrajit
ゴッシュ アブフラジット
ポイリシャー アレックス
Poylisher Alexander
ポイリシャー アレックス
チアン ジェイソン
Chiang Jason
チアン ジェイソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Vencore Labs Inc
Original Assignee
KDDI Corp
TT Government Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp, TT Government Solutions Inc filed Critical KDDI Corp
Priority to JP2014130252A priority Critical patent/JP6257460B2/en
Publication of JP2016010031A publication Critical patent/JP2016010031A/en
Application granted granted Critical
Publication of JP6257460B2 publication Critical patent/JP6257460B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a remote integrity verification system, method and program for achieving integrity verification of platform, capable of detecting verification avoid attack of an attacker, without the premise of mounting a special hardware module.SOLUTION: In a remote integrity verification system 1, an integrity verification module 31 in a verification target device 30 determines whether or not it is started by start-up means 32. When a determination is made that it is not started by the start-up means 32, the integrity verification module 31 notifies the information indicating abnormal start, and when a determination is made that it is started by the start-up means 32, calculates the checksum of program code of the integrity verification module 31 itself, including a code based on a received random number information, and transmits to an integrity verification device 10. The integrity verification device 10 verifies the checksum thus received, and determines whether or not the verification target device 30 is integral.

Description

本発明は、遠隔完全性検証システム、方法及びプログラムに関する。   The present invention relates to a remote integrity verification system, method and program.

従来より、コンピュータのセキュリティ対策として様々な手法が提案されている。例えば、特許文献1から4や、非特許文献1から5などが知られている。   Conventionally, various methods have been proposed as security measures for computers. For example, Patent Documents 1 to 4 and Non-Patent Documents 1 to 5 are known.

特許文献1は、コンピュータ機器に搭載されたモジュールを利用して当該コンピュータにインストールされたOS、アプリケーションなどのソフトウェアの完全性を検証する技術である。   Patent Document 1 is a technique for verifying the integrity of software such as an OS and an application installed in a computer using a module installed in the computer device.

特許文献2は、コンピュータなど情報処理装置にインストールされたアプリケーションの完全性を検証する技術である。当該技術は、まず当該装置に搭載されたTPM(Trust Platform Module)など完全性検証の信頼性の根幹(Root of Trust)となるモジュールをベースに、当該装置にインストールされたOSの完全性検証を行う。その後、完全性が検証された当該OSがアプリケーションの完全性を検証し、完全性が保証された形で当該アプリケーションを起動することで、当該アプリケーションの完全性を保証する。   Patent Document 2 is a technique for verifying the integrity of an application installed in an information processing apparatus such as a computer. The technology first verifies the integrity of the OS installed in the device based on a module that serves as the foundation of reliability verification (Root of Trust) such as TPM (Trust Platform Module) installed in the device. Do. Thereafter, the OS whose integrity has been verified verifies the integrity of the application, and the integrity of the application is guaranteed by starting the application in a form in which the integrity is guaranteed.

特許文献3は、コンピュータ機器にインストールされたOSの完全性を検証する技術である。当該OSのシャットダウン時に当該機器のBIOS、ブートローダ、当該OSの完全性を検証することで、再起動時の検証に係る処理を軽減し、起動速度を向上させている。当該技術においても完全性検証の信頼性の根幹はROM(Read Only Memory)など特別なハードウェアに委ねている。   Patent Document 3 is a technique for verifying the integrity of an OS installed in a computer device. By verifying the integrity of the BIOS, the boot loader, and the OS when the OS is shut down, processing related to verification at the time of restart is reduced and the startup speed is improved. Also in this technology, the reliability of integrity verification is left to special hardware such as ROM (Read Only Memory).

特許文献4は、装置のOSの完全性を検証する際に必要となる鍵を、当該装置とは別のサーバ装置に保存することで、当該鍵の漏えいによる完全性検証の偽装を防止する技術である。   Patent Document 4 discloses a technique for preventing impersonation of integrity verification due to leakage of a key by storing a key necessary for verifying the integrity of the OS of the device in a server device different from the device. It is.

非特許文献1及び非特許文献2は、検証対象装置内のOSなどプラットフォームソフトウェアの検証を、当該プラットフォームソフトウェア内にインストールされたソフトウェアモジュールによって行う技術である。当該技術は、当該ソフトウェアモジュールと検証サーバで構成される。検証を実施する際には、まず当該検証サーバから当該モジュールへ乱数を送信する。当該モジュールは当該乱数と当該モジュール自身のコード、及び検証用署名生成関数のコードから検証用署名を生成し、当該検証サーバに送信する。当該モジュールは、さらに検証用署名生成関数を用いてOSのコードから検証用署名を生成し、当該検証サーバに送信する。当該検証サーバは送信された検証用署名を検証し、当該署名が正しい値の場合のみ当該検証対象装置内のOSは改ざんされていないと判定する。   Non-Patent Document 1 and Non-Patent Document 2 are technologies for performing verification of platform software such as an OS in a verification target device using a software module installed in the platform software. The technology is composed of the software module and a verification server. When performing verification, first, a random number is transmitted from the verification server to the module. The module generates a verification signature from the random number, the code of the module itself, and the code of the verification signature generation function, and transmits the verification signature to the verification server. The module further generates a verification signature from the OS code using the verification signature generation function, and transmits the verification signature to the verification server. The verification server verifies the transmitted verification signature, and determines that the OS in the verification target device has not been falsified only when the signature has a correct value.

非特許文献3は、ソフトウェアモジュールをもとに検証対象装置内のOSの完全性を検証する技術である。当該技術は、複数のプロセッサをもつ装置において、攻撃者が複数のプロセッサを用いて当該モジュールよりも先に偽装した検証用署名を生成することで検出を回避する攻撃への対策が施されている。   Non-Patent Document 3 is a technique for verifying the integrity of an OS in a verification target device based on a software module. In the technology having a plurality of processors, countermeasures against an attack that avoids detection by an attacker using a plurality of processors to generate a verification signature spoofed before the module is implemented. .

非特許文献4は、検証対象装置内の仮想プラットフォームソフトウェア(ハイパーバイザ)を、当該装置に搭載されたハードウェアモジュールを用いて検証する技術である。さらに当該技術は、検証対象装置に検証用に改修された独自のBIOSを導入することで完全性検証を実現している。   Non-Patent Document 4 is a technique for verifying virtual platform software (hypervisor) in a verification target apparatus using a hardware module mounted on the apparatus. Further, the technology realizes integrity verification by introducing a unique BIOS modified for verification into the verification target device.

非特許文献5は、仮想環境上のOSの検証を、ハイパーバイザ内で当該OSを監視することで実施する技術である。当該技術は、攻撃者が当該技術の機能をもつソフトウェアモジュールを改ざんできないなど、攻撃者に制約がある環境下でのみ正しい検証を実施することができる。   Non-Patent Document 5 is a technique for performing verification of an OS on a virtual environment by monitoring the OS in a hypervisor. This technology can perform correct verification only in an environment where there is a restriction on the attacker, for example, an attacker cannot tamper with a software module having the function of the technology.

特表2008−537224号公報Special table 2008-537224 特開2010−182196号公報JP 2010-182196 A 特開2012−32925号公報JP 2012-32925 A 特開2011−3020号公報JP 2011-3020 A

Seshadri,Arvind,Mark Luk,Elaine Shi,Adrian Perrig,Leendert van Doorn,and Pradeep Khosla. ”Pioneer:verifying code integrity and enforcing untampered code execution on legacy systems.” In ACM SIGOPS Operating Systems Review,vol.39,no.5,pp.1−16.ACM,2005.Seshadri, Arvind, Mark Luk, Elaine Shi, Adrian Perrig, Leendert van Doorn, and Pradeep Khosla. "Pioneer: verifying code integrity and encoding unexecuted code execution on legacy systems." In ACM SIGOPS Operating Systems Review, vol. 39, no. 5, pp. 1-16. ACM, 2005. Kovah,Xeno,Corey Kallenberg,Chris Weathers,Amy Herzog,Matthew Albin,and John Butterworth. ”New results for Timing−Based attestation.” In Security and Privacy (SP),2012 IEEE Symposium on,pp.239−253.IEEE,2012.Kovah, Xeno, Corey Kallenberg, Chris Weathers, Amy Herzog, Matthew Albin, and John Butterworth. “New results for Timing-Based attestation.” In Security and Privacy (SP), 2012 IEEE Symposium on, pp. 239-253. IEEE, 2012. Yan,Qiang,Jin Han,Yingjiu Li,Robert H. Deng,and Tieyan Li. ”A software−based root−of−trust primitive on multicore platforms.” In Proceedings of the 6th ACM Symposium on Information,Computer and Communications Security,pp.334−343.ACM,2011.Yan, Qiang, Jin Han, Yingjiu Li, Robert H. Deng, and Tieyan Li. "A software-based root-of-trust primitive on multicore platforms." In Proceedings of the 6th ACM Symposium on Information, Computer and Society. 334-343. ACM, 2011. Azab,Ahmed M.,Peng Ning,Zhi Wang,Xuxian Jiang,Xiaolan Zhang,and Nathan C. Skalsky. ”HyperSentry: enabling stealthy in−context measurement of hypervisor integrity.” In Proceedings of the 17th ACM conference on Computer and communications security,pp.38−49.ACM,2010.Azab, Ahmed M. et al. , Peng Ning, Zhi Wang, Xuxian Jiang, Xiaolan Zhang, and Nathan C. et al. Skalsky. “HyperSentry: enabling treatment in-context measurement of hypervisor integrity,” In Proceedings of the 17th ACM conference on computer and commun. 38-49. ACM, 2010. Sharif,Monirul I.,Wenke Lee,Weidong Cui,and Andrea Lanzi. ”Secure in−vm monitoring using hardware virtualization.” In Proceedings of the 16th ACM conference on Computer and communications security,pp.477−487.ACM,2009.Sharif, Monitor I. , Wenke Lee, Weidong Cui, and Andrea Lanzi. “Secure in-vm monitoring using hardware virtualization.” In Proceedings of the 16th ACM conference on commu- nications and communications, pp. 477-487. ACM, 2009.

しかしながら、特許文献1から特許文献4、非特許文献4では、TPMなどのハードウェアモジュールの利用を前提においている。そのため、当該モジュールを搭載していない装置に対しては適用できない。また、ハードウェアモジュールに搭載されている暗号アルゴリズム、ハッシュアルゴリズムの危殆化、さらに当該モジュールの実装に脆弱性が見つかった際は、当該技術による検証自体を信頼できなくなる。その際、信頼性の維持のためには当該モジュールの置換が必要となるが、それには新しいモジュールの購入、置換作業など金銭面、作業面のコストがかかる。
また、非特許文献1から非特許文献3は、上記のハードウェアモジュールを利用する際の欠点を鑑み、ソフトウェアで実現されたモジュールをベースに完全性検証を実施している。しかしながら、攻撃者が検証処理の開始を検知して自身の攻撃コードを隠ぺいするような検証を回避する行動を行う場合に対して対策がなされていない。
さらに、非特許文献5は、攻撃者に制約下がある環境下でのみ有効となる技術である。そのため、上記のような検証回避を行う攻撃者、及び検証を行うソフトウェアモジュールの改ざんを行う攻撃者に対して耐性がない。
However, Patent Document 1 to Patent Document 4 and Non-Patent Document 4 assume the use of a hardware module such as a TPM. Therefore, it cannot be applied to an apparatus not equipped with the module. In addition, when a cryptographic algorithm and a hash algorithm mounted on a hardware module are compromised and a vulnerability is found in the implementation of the module, the verification itself by the technology cannot be trusted. At that time, replacement of the module is necessary to maintain reliability, but this requires money and work costs such as purchase of a new module and replacement work.
In addition, Non-Patent Document 1 to Non-Patent Document 3 carry out integrity verification based on a module realized by software in view of the drawbacks of using the above hardware module. However, no countermeasure is taken against the case where an attacker performs the action of avoiding verification such as detecting the start of verification processing and hiding his attack code.
Furthermore, Non-Patent Document 5 is a technique that is effective only in an environment in which an attacker is restricted. Therefore, there is no resistance to an attacker who avoids the verification as described above and an attacker who falsifies the software module to be verified.

そこで、上述のような従来の技術の欠点を鑑み、TPMなど特殊なハードウェアモジュールの搭載を前提とせず、攻撃者の検証回避攻撃の検出が可能な、プラットフォームの完全性検証を実現するシステムが求められている。   Therefore, in view of the drawbacks of the conventional technology as described above, a system that realizes platform integrity verification capable of detecting an attacker's verification avoidance attack without assuming the installation of a special hardware module such as TPM. It has been demanded.

本発明は、特殊なハードウェアモジュールの搭載を前提とせず、攻撃者の検証回避攻撃の検出が可能な、プラットフォームの完全性検証を実現する遠隔完全性検証システム、方法及びプログラムを提供することを目的とする。   It is an object of the present invention to provide a remote integrity verification system, method, and program for realizing platform integrity verification that can detect an attacker's verification avoidance attack without assuming the installation of a special hardware module. Objective.

具体的には、以下のような解決手段を提供する。
(1) 検証される装置である検証対象装置において作動するようにインストールされた完全性検証モジュールと、前記検証対象装置の完全性を検証する完全性検証装置とを備える遠隔完全性検証システムであって、前記完全性検証装置は、検査に用いるための乱数情報を含む検査要求を前記検証対象装置に送信する要求送信手段を備え、前記検証対象装置は、前記完全性検証モジュールを起動する起動手段を備え、前記完全性検証モジュールは、前記起動手段が前記完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させる分岐情報記憶制御部と、前記起動手段によって起動されたか否かを前記分岐情報記憶手段に記憶された前記分岐情報に基づいて判定する起動判定部と、前記起動手段によって起動されていないと前記起動判定部によって判定された場合に、異常な起動を示す情報を通知する異常起動通知部と、前記起動手段によって起動されたと前記起動判定部によって判定された場合に、前記要求送信手段によって送信された前記検査要求を受信する要求受信部と、前記要求受信部によって受信された前記乱数情報に基づくコードを含めた、前記完全性検証モジュール自身のプログラムコードのチェックサムを計算するチェックサム計算部と、前記検証対象装置における検査情報を前記完全性検証装置に送信する検査情報送信部と、を有し、前記検査情報送信部は、前記異常起動通知部によって通知された異常な起動を示す情報、又は前記チェックサム計算部によって計算された前記チェックサムを含む前記検査情報を前記完全性検証装置に送信し、前記完全性検証装置は、前記検証対象装置の前記完全性検証モジュールから前記検査情報を受信する検査情報受信手段と、受信した前記検査情報が異常な起動を示す情報を含む場合に、前記検証対象装置が完全ではないと判定する検査情報判定手段と、受信した前記検査情報が前記チェックサムを含む場合に、計算された前記チェックサムを検証するチェックサム検証手段と、を備え、前記検査情報判定手段は、前記検査情報が異常な起動を示す情報を含まない場合に、前記チェックサム検証手段によって検証された情報に基づいて、前記検証対象装置が完全であるか否かをさらに判定する、遠隔完全性検証システム。
Specifically, the following solutions are provided.
(1) A remote integrity verification system comprising an integrity verification module installed to operate in a verification target device that is a device to be verified, and an integrity verification device that verifies the integrity of the verification target device. The integrity verification apparatus includes request transmission means for transmitting an inspection request including random number information to be used for inspection to the verification target apparatus, and the verification target apparatus activates the integrity verification module. And the integrity verification module is activated by the activation unit and a branch information storage control unit that stores the branch information recorded when the activation unit activates the integrity verification module in the branch information storage unit. An activation determination unit that determines whether or not the information is based on the branch information stored in the branch information storage unit; If it is determined by the activation determination unit that there is not, an abnormal activation notification unit that notifies information indicating abnormal activation, and if the activation determination unit determines that the activation determination unit has been activated, the request transmission unit A request receiving unit that receives the check request transmitted by a checksum, and a checksum that calculates a checksum of the program code of the integrity verification module itself, including a code based on the random number information received by the request receiving unit A calculation unit, and an inspection information transmission unit that transmits the inspection information in the verification target device to the integrity verification device, and the inspection information transmission unit performs the abnormal activation notified by the abnormal activation notification unit. Or the check information including the checksum calculated by the checksum calculation unit to the integrity verification device. And the integrity verification device includes a test information receiving means for receiving the test information from the integrity verification module of the verification target device, and when the received test information includes information indicating abnormal activation, Inspection information determination means for determining that the verification target device is not complete, and checksum verification means for verifying the calculated checksum when the received inspection information includes the checksum, and The inspection information determination unit further determines whether or not the verification target device is complete based on the information verified by the checksum verification unit when the inspection information does not include information indicating abnormal activation. Remote integrity verification system.

(1)の構成によれば、遠隔完全性検証システムにおいて、完全性検証装置は、検査に用いるための乱数情報を含む検査要求を検証対象装置に送信する。次に、検証対象装置は、完全性検証モジュールを起動し、完全性検証モジュールは、起動手段が完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させ、起動手段によって起動されたか否かを分岐情報記憶手段に記憶された分岐情報に基づいて判定する。完全性検証モジュールは、起動手段によって起動されていないと判定した場合に、異常な起動を示す情報を通知し、起動手段によって起動されたと判定した場合に、送信された検査要求を受信し、受信した乱数情報に基づくコードを含めた、完全性検証モジュール自身のプログラムコードのチェックサムを計算し、計算したチェックサムを含む検査情報を完全性検証装置に送信する。完全性検証装置は、検証対象装置の完全性検証モジュールから検査情報を受信し、受信した検査情報が異常な起動を示す情報を含む場合に、検証対象装置が完全ではないと判定し、受信した検査情報がチェックサムを含む場合に、計算されたチェックサムを検証し、検証した情報に基づいて、検証対象装置が完全であるか否かをさらに判定する。   According to the configuration of (1), in the remote integrity verification system, the integrity verification device transmits an inspection request including random number information to be used for the inspection to the verification target device. Next, the verification target device activates the integrity verification module, and the integrity verification module stores the branch information recorded when the activation unit activates the integrity verification module in the branch information storage unit, and the activation unit Is determined based on the branch information stored in the branch information storage means. When the integrity verification module determines that it has not been activated by the activation means, it notifies the information indicating abnormal activation, and when it is determined that it has been activated by the activation means, it receives and receives the transmitted inspection request. The checksum of the program code of the integrity verification module itself including the code based on the random number information is calculated, and the inspection information including the calculated checksum is transmitted to the integrity verification device. The integrity verification device receives the inspection information from the integrity verification module of the verification target device, and determines that the verification target device is not complete when the received inspection information includes information indicating abnormal activation, and has received When the inspection information includes a checksum, the calculated checksum is verified, and it is further determined whether the verification target device is complete based on the verified information.

したがって、(1)に係る遠隔完全性検証システムは、特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現する。   Therefore, the remote integrity verification system according to (1) enables the detection of an attacker's verification avoidance attack without assuming the installation of a special hardware module, and realizes platform integrity verification.

(2) 前記完全性検証装置は、前記検査情報送信手段による前記検査要求の送信から、前記検査情報受信手段による前記検査情報の受信までの所要時間を測定する時間測定手段と、前記時間測定手段によって測定された所要時間が所定値よりも小さいか否かを判定する所要時間判定手段と、をさらに備え、前記検査情報判定手段は、前記チェックサム検証手段によって検証された情報に基づいて前記検証対象装置が完全であると判定した場合に、さらに、前記所要時間判定手段による判定に基づいて、前記検証対象装置が完全であるか否かを判定する、(1)に記載の遠隔完全性検証システム。   (2) The integrity verification device includes a time measuring unit that measures a time required from transmission of the inspection request by the inspection information transmitting unit to reception of the inspection information by the inspection information receiving unit, and the time measuring unit Required time determining means for determining whether or not the required time measured by is less than a predetermined value, wherein the inspection information determining means is based on the information verified by the checksum verification means The remote integrity verification according to (1), wherein when it is determined that the target device is complete, it is further determined whether or not the verification target device is complete based on the determination by the required time determination unit. system.

したがって、(2)に係る遠隔完全性検証システムは、検証対象装置による所要時間をさらに判定することによって、攻撃者の検証回避攻撃の検出をさらに可能にし、プラットフォームの完全性検証を実現する。   Therefore, the remote integrity verification system according to (2) further determines the time required by the verification target device, thereby further enabling detection of an attacker's verification avoidance attack and realizing platform integrity verification.

(3) 前記完全性検証モジュールは、検査対象となるプラットフォームのプログラムコードからハッシュ値を計算するハッシュ値計算部をさらに有し、前記検査情報送信部は、前記ハッシュ値計算部によって計算された前記ハッシュ値をさらに検査情報に含めて送信し、前記完全性検証装置は、前記検査情報受信手段によって受信された前記ハッシュ値を検証するハッシュ値検証手段をさらに備え、前記検査情報判定手段は、前記所要時間判定手段による判定に基づいて、前記検証対象装置が完全であると判定した場合に、さらに、前記ハッシュ値検証手段によって検証された情報に基づいて、前記検証対象装置が完全であるか否かを判定する、(2)に記載の遠隔完全性検証システム。   (3) The integrity verification module further includes a hash value calculation unit that calculates a hash value from a program code of a platform to be inspected, and the inspection information transmission unit is calculated by the hash value calculation unit. The hash value is further included in the inspection information and transmitted, and the integrity verification device further includes a hash value verification unit that verifies the hash value received by the inspection information reception unit, and the inspection information determination unit includes When it is determined that the verification target device is complete based on the determination by the required time determination unit, whether the verification target device is complete based on the information verified by the hash value verification unit The remote integrity verification system according to (2), wherein:

したがって、(3)に係る遠隔完全性検証システムは、検証対象装置により計算されたハッシュ値をさらに判定することによって、攻撃者の検証回避攻撃の検出をさらに可能にし、プラットフォームの完全性検証を実現する。   Therefore, the remote integrity verification system according to (3) further enables detection of an attacker's verification avoidance attack by further determining the hash value calculated by the verification target device, thereby realizing platform integrity verification. To do.

(4) 前記チェックサム計算部は、前記検査情報に含まれる乱数情報に基づいて、前記完全性検証モジュール自身のプログラムコードのうち選択したプログラムコードに基づいて、前記チェックサムを計算する、(1)から(3)のいずれか一項に記載する遠隔完全性検証システム。   (4) The checksum calculation unit calculates the checksum based on the program code selected from the program codes of the integrity verification module itself based on random number information included in the check information. The remote integrity verification system according to any one of (3) to (3).

したがって、(4)に係る遠隔完全性検証システムは、選択したプログラムコードにより計算したチェックサム値をさらに判定することによって、攻撃者の検証回避攻撃の検出をさらに可能にし、プラットフォームの完全性検証を実現する。   Therefore, the remote integrity verification system according to (4) further enables detection of an attacker's verification avoidance attack by further determining the checksum value calculated by the selected program code, thereby enabling platform integrity verification. Realize.

(5) 前記チェックサム計算部は、前記検査情報に含まれる乱数情報に基づいて、前記分岐情報記憶手段に記憶された前記分岐情報を選択し、選択した前記分岐情報を含めて、前記チェックサムを計算する、(1)から(4)のいずれか一項に記載する遠隔完全性検証システム。   (5) The checksum calculation unit selects the branch information stored in the branch information storage unit based on random number information included in the check information, includes the selected branch information, and includes the checksum. The remote integrity verification system according to any one of (1) to (4), wherein:

したがって、(5)に係る遠隔完全性検証システムは、分岐情報の履歴情報を含めて計算されたチェックサム値をさらに判定することによって、攻撃者の検証回避攻撃の検出をさらに可能にし、プラットフォームの完全性検証を実現する。   Therefore, the remote integrity verification system according to (5) further enables detection of an attacker's verification avoidance attack by further determining the checksum value calculated including the history information of the branch information, Achieve integrity verification.

(6) (1)に記載の遠隔完全性検証システムが実行する方法であって、前記完全性検証装置において、前記要求送信手段が、検査に用いるための乱数情報を含む検査要求を前記検証対象装置に送信する要求送信ステップと、前記検証対象装置において、前記起動手段が、前記完全性検証モジュールを起動する起動ステップと、前記完全性検証モジュールにおいて、前記分岐情報記憶制御部が、前記起動手段が前記完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させる分岐情報記憶制御ステップと、前記起動判定部が、前記起動ステップによって起動されたか否かを前記分岐情報記憶手段に記憶された前記分岐情報に基づいて判定する起動判定ステップと、前記異常起動通知部が、前記起動ステップによって起動されていないと前記起動判定ステップによって判定された場合に、異常な起動を示す情報を通知する異常起動通知ステップと、前記要求受信部が、前記起動手段によって起動されたと前記起動判定部によって判定された場合に、前記要求送信手段によって送信された前記検査要求を受信する要求受信ステップと、前記チェックサム計算部が、前記要求受信ステップによって受信された前記乱数情報に基づくコードを含めた、前記完全性検証モジュール自身のプログラムコードのチェックサムを計算するチェックサム計算ステップと、前記検査情報送信部が、前記異常起動通知ステップによって通知された異常な起動を示す情報、又は前記チェックサム計算ステップによって計算された前記チェックサムを含む前記検査情報を前記完全性検証装置に送信するステップと、前記完全性検証装置において、前記検査情報受信手段が、前記検証対象装置の前記完全性検証モジュールから前記検査情報を受信する検査情報受信ステップと、前記検査情報判定手段が、受信した前記検査情報が異常な起動を示す情報を含む場合に、前記検証対象装置が完全ではないと判定する検査情報判定ステップと、前記チェックサム検証手段が、受信した前記検査情報が前記チェックサムを含む場合に、計算された前記チェックサムを検証するチェックサム検証ステップと、前記検査情報判定手段が、前記検査情報が異常な起動を示す情報を含まない場合に、前記チェックサム検証ステップによって検証された情報に基づいて、前記検証対象装置が完全であるか否かをさらに判定するステップと、を備える方法。   (6) A method executed by the remote integrity verification system according to (1), wherein in the integrity verification device, the request transmission means sends a verification request including random number information to be used for verification to the verification target A request transmitting step for transmitting to an apparatus; an activation step in which the activation means activates the integrity verification module in the verification target apparatus; and the branch information storage control unit in the integrity verification module; Branch information storage control step for storing the branch information recorded when starting the integrity verification module in the branch information storage means, and whether or not the start determination unit has been started by the start step. An activation determination step for determining based on the branch information stored in the storage means, and the abnormal activation notification unit includes the activation step. An abnormal activation notification step for notifying information indicating abnormal activation when the activation determination step determines that the request reception unit has been activated by the activation means. A request receiving step for receiving the inspection request transmitted by the request transmitting means, and the checksum calculator includes a code based on the random number information received by the request receiving step. A checksum calculation step for calculating a checksum of the program code of the integrity verification module itself, and information indicating abnormal start notified by the abnormal start notification step by the inspection information transmission unit, or the checksum calculation The test information including the checksum calculated by the step Transmitting to the integrity verification device; in the integrity verification device, the inspection information receiving means receives the inspection information from the integrity verification module of the verification target device; and the inspection information determination A means for determining that the verification target device is not complete when the received inspection information includes information indicating abnormal activation; and the checksum verification means A checksum verification step for verifying the calculated checksum when the checksum is included, and the checksum verification means when the inspection information determination means does not include information indicating abnormal activation. Further determining whether or not the verification target device is complete based on the information verified in the step; How to obtain.

したがって、(6)に係る方法は、特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現することができる。   Therefore, the method according to (6) enables detection of an attacker's verification avoidance attack without presuming the installation of a special hardware module, thereby realizing platform integrity verification.

(7) (1)に記載の遠隔完全性検証システムにおいて、前記完全性検証装置のコンピュータ及び前記検証対象装置のコンピュータに、(6)に記載の各ステップを実行させるためのプログラム。   (7) In the remote integrity verification system according to (1), a program for causing the computer of the integrity verification apparatus and the computer of the verification target apparatus to execute each step according to (6).

したがって、(7)に係るプログラムは、コンピュータに実行させて、特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現するようにすることができる。   Therefore, the program according to (7) can be executed by a computer to enable detection of an attacker's verification avoidance attack without assuming the installation of a special hardware module, thereby realizing platform integrity verification. Can be.

本発明によれば、TPMなど特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現することができる。
すなわち、本発明によれば、以下のように攻撃を検知することができる。
(1)攻撃者が完全性検証モジュールのコードを改ざんしようと攻撃しても、完全性検証モジュールのコードのチェックサムを計算、照合することで検知できる。
(2)攻撃者がプラットフォームソフトウェアのコードを改ざんしようと攻撃しても、プラットフォームソフトウェアのコードのハッシュ値を計算、照合することで検知できる。
(3)攻撃者が割り込み処理、メモリ上の分岐元アドレス、分岐先アドレスの書換によって検証手順の途中に介在し、改ざん、挿入コードを隠ぺいし、検証手順終了後に当該コードをメモリ上に再ロードする攻撃をしても、割り込みの無効化によって割り込みによる検証手順への介在を防止できる。また、命令分岐の履歴情報を加味したチェックサムの計算により、攻撃者の介在を検知できる。さらに、所要時間の検査によって改ざん、挿入コードの隠ぺい処理によって発生する所要時間の遅延を検知できる。
(4)攻撃者が事前にチェックサムを計算し、それを検査結果として送信することで検証処理を成功させようと攻撃しても、チェックサムの計算時に、チェックサムの計算に利用するコードをランダムに選択することで、事前計算が不可能となる。
According to the present invention, it is possible to detect an attacker's verification avoidance attack without realizing the installation of a special hardware module such as a TPM, thereby realizing platform integrity verification.
That is, according to the present invention, an attack can be detected as follows.
(1) Even if an attacker attacks to alter the code of the integrity verification module, it can be detected by calculating and checking the checksum of the code of the integrity verification module.
(2) Even if an attacker attacks to alter the platform software code, it can be detected by calculating and checking the hash value of the platform software code.
(3) An attacker intervenes in the middle of the verification procedure by interrupt processing, rewriting the branch source address and branch destination address in the memory, tampers with it, hides the inserted code, and reloads the code into the memory after the verification procedure is completed Even if an attack is performed, it is possible to prevent the interruption from being involved in the verification procedure by disabling the interruption. In addition, it is possible to detect the presence of an attacker by calculating a checksum that takes into account the history information of the instruction branch. Further, it is possible to detect a delay in the required time caused by falsification by the inspection of the required time and concealment processing of the inserted code.
(4) Even if an attacker attacks the verification process by calculating the checksum in advance and sending it as a check result, the code used for the checksum calculation is calculated when the checksum is calculated. By selecting at random, pre-calculation becomes impossible.

本発明の一実施形態に係る遠隔完全性検証システムの構成を示す図である。It is a figure which shows the structure of the remote integrity verification system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る遠隔完全性検証システムにおける完全性検証装置の構成を示す図である。It is a figure which shows the structure of the integrity verification apparatus in the remote integrity verification system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る遠隔完全性検証システムにおける完全性検証モジュールの構成を示す図である。It is a figure which shows the structure of the integrity verification module in the remote integrity verification system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る遠隔完全性検証システムの処理を示すフローチャートである。It is a flowchart which shows the process of the remote integrity verification system which concerns on one Embodiment of this invention.

以下、本発明の実施形態について、図を参照しながら説明する。
図1は、本発明の一実施形態に係る遠隔完全性検証システム1の構成を示す図である。遠隔完全性検証システム1は、検証される装置である検証対象装置30において作動するようにインストールされた完全性検証モジュール31と、検証対象装置30の完全性を検証する完全性検証装置10とを備える。以下の実施形態では、検証対象となるプラットフォームとしてハイパーバイザ(仮想化環境プラットフォームソフトウェア)を想定する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a diagram showing a configuration of a remote integrity verification system 1 according to an embodiment of the present invention. The remote integrity verification system 1 includes an integrity verification module 31 installed to operate in a verification target device 30 that is a device to be verified, and an integrity verification device 10 that verifies the integrity of the verification target device 30. Prepare. In the following embodiment, a hypervisor (virtualized environment platform software) is assumed as a platform to be verified.

図2は、本発明の一実施形態に係る遠隔完全性検証システム1における完全性検証装置10の構成を示す図である。図3は、本発明の一実施形態に係る遠隔完全性検証システム1における完全性検証モジュール31の構成を示す図である。
遠隔完全性検証システム1における完全性検証装置10は、検査情報検証手段11として検査情報判定手段111と、チェックサム検証手段112と、時間測定手段113と、所要時間判定手段114と、ハッシュ値検証手段115とを備え、通信手段12として要求送信手段121と、検査情報受信手段122とを備える。
遠隔完全性検証システム1における検証対象装置30は、起動手段32を備え、検証対象装置30においてインストールされた完全性検証モジュール31は、通信部313として要求受信部3131と、検査情報送信部3132とを有し、自己検証情報生成部311として分岐情報記憶制御部3111と、起動判定部3112と、異常起動通知部3113と、チェックサム計算部3114とを有し、プラットフォーム検証情報生成部312としてハッシュ値計算部3121を有し、分岐情報記憶手段320を有する。
FIG. 2 is a diagram showing a configuration of the integrity verification apparatus 10 in the remote integrity verification system 1 according to the embodiment of the present invention. FIG. 3 is a diagram showing a configuration of the integrity verification module 31 in the remote integrity verification system 1 according to an embodiment of the present invention.
The integrity verification apparatus 10 in the remote integrity verification system 1 includes an inspection information determination unit 111, a checksum verification unit 112, a time measurement unit 113, a required time determination unit 114, and a hash value verification as the inspection information verification unit 11. And a request transmission unit 121 and an inspection information reception unit 122 as the communication unit 12.
The verification target device 30 in the remote integrity verification system 1 includes an activation unit 32, and the integrity verification module 31 installed in the verification target device 30 includes a request reception unit 3131, a test information transmission unit 3132, and the communication unit 313. A branch information storage control unit 3111, an activation determination unit 3112, an abnormal activation notification unit 3113, and a checksum calculation unit 3114 as a self-verification information generation unit 311, and a hash as a platform verification information generation unit 312 A value calculation unit 3121, and a branch information storage unit 320.

完全性検証モジュール31による分岐情報及びチェックサム計算情報に基づく、完全性検証装置10による完全性の検証について説明する。   The integrity verification by the integrity verification apparatus 10 based on the branch information and checksum calculation information by the integrity verification module 31 will be described.

完全性検証装置10の要求送信手段121は、検査に用いるための乱数情報を含む検査要求を、検証対象装置30に送信する。   The request transmission unit 121 of the integrity verification apparatus 10 transmits an inspection request including random number information used for the inspection to the verification target apparatus 30.

検証対象装置30の起動手段32は、完全性検証モジュール31を起動する。具体的には、起動手段32は、例えば、検証対象装置30と完全性検証装置10との通信媒体としてシリアルケーブルを用いた構成の場合、シリアルケーブルを介した検査要求の受信により発生する割り込みのハンドラとして登録された完全性検証モジュール31を起動する。   The activation unit 32 of the verification target device 30 activates the integrity verification module 31. Specifically, for example, in the case of a configuration using a serial cable as a communication medium between the verification target device 30 and the integrity verification device 10, the activation unit 32 generates an interrupt generated by receiving an inspection request via the serial cable. The integrity verification module 31 registered as a handler is activated.

完全性検証モジュール31の分岐情報記憶制御部3111は、起動手段32が完全性検証モジュール31を起動する際に記録された分岐情報(例えば、分岐元レコード及び分岐先レコードのアドレス情報)を分岐情報記憶手段320に記憶させる。具体的には、分岐情報記憶制御部3111は、命令分岐の履歴情報として、例えばCPUのアーキテクチャーに搭載されている最後の分岐レコードを記憶するアーキテクチャー(例えば、LBR(Last Branch Record)機構など)を利用し、命令分岐の履歴情報を分岐情報として分岐情報記憶手段320に記憶させる。   The branch information storage control unit 3111 of the integrity verification module 31 uses the branch information (for example, the address information of the branch source record and the branch destination record) recorded when the activation unit 32 activates the integrity verification module 31 as branch information. The data is stored in the storage unit 320. Specifically, the branch information storage control unit 3111 stores, for example, the last branch record mounted in the CPU architecture as an instruction branch history information (for example, an LBR (Last Branch Record) mechanism). ), The branch information storage means 320 stores the instruction branch history information as branch information.

完全性検証モジュール31の起動判定部3112は、起動手段32によって起動されたか否かを分岐情報記憶手段320に記憶された分岐情報(例えば、分岐元レコード及び分岐先レコードのアドレス情報)に基づいて判定する。具体的には、起動判定部3112は、完全性検証モジュール31の起動後に命令分岐の履歴情報である分岐情報記憶手段320に記憶された情報に基づいて、最も新しい分岐の分岐元と分岐先のアドレス情報を参照し、完全性検証モジュール31が検査要求の受信によって起動されたかどうかを判定する。   The activation determination unit 3112 of the integrity verification module 31 determines whether or not it has been activated by the activation unit 32 based on the branch information stored in the branch information storage unit 320 (for example, the address information of the branch source record and the branch destination record). judge. Specifically, the activation determination unit 3112 determines the branch source and branch destination of the newest branch based on the information stored in the branch information storage unit 320 that is the history information of the instruction branch after the integrity verification module 31 is activated. With reference to the address information, it is determined whether or not the integrity verification module 31 has been activated by receiving a test request.

完全性検証モジュール31の異常起動通知部3113は、起動手段32によって起動されていない(例えば、検査要求の受信以外の契機によって起動された)と起動判定部3112によって判定された場合に、異常な起動を示す情報を通知する。   The abnormal activation notification unit 3113 of the integrity verification module 31 is abnormal when it is determined by the activation determination unit 3112 that it has not been activated by the activation unit 32 (for example, activated by a trigger other than reception of the inspection request). Notify information indicating activation.

完全性検証モジュール31の要求受信部3131は、起動手段32によって起動されたと起動判定部3112によって判定された場合に、完全性検証装置10の要求送信手段121によって送信された検査要求を受信する。   The request reception unit 3131 of the integrity verification module 31 receives the inspection request transmitted by the request transmission unit 121 of the integrity verification apparatus 10 when it is determined by the activation determination unit 3112 that it has been activated by the activation unit 32.

完全性検証モジュール31は、起動手段32によって起動されたと起動判定部3112によって判定された場合に、検証対象装置30のすべての割り込みを無効にするとしてもよい。例えば、マスク可能な割り込みについては割り込みを禁止(Disable)するように設定し、マスク不可能な割り込み(NMI:Non−Maskable Interrupt)については、当該割り込みのハンドラを変更し、別のソフトウェアに処理が移行しないようにするとしてもよい。   The integrity verification module 31 may invalidate all the interrupts of the verification target device 30 when it is determined by the activation determination unit 3112 that it has been activated by the activation unit 32. For example, interrupts that can be masked are set to be disabled (Disable), and interrupts that cannot be masked (NMI: Non-Maskable Interrupt) are changed to be handled by another software. It may be possible not to migrate.

完全性検証モジュール31のチェックサム計算部3114は、要求受信部3131によって受信された乱数情報に基づくコードを含めた、完全性検証モジュール31自身のプログラムコードのチェックサムを計算する。なお、完全性検証モジュール31は、検証対象装置30において固定のアドレスにロードされて作動するとしてよい。また、完全性検証モジュール31が検証対象装置30において可変のアドレスにロードされて作動する場合には、完全性検証装置10において完全性検証モジュール31がロードされている状態を復元可能としてよい。   The checksum calculator 3114 of the integrity verification module 31 calculates the checksum of the program code of the integrity verification module 31 itself, including the code based on the random number information received by the request receiver 3131. Note that the integrity verification module 31 may be loaded into a fixed address and operated in the verification target device 30. When the integrity verification module 31 is loaded and operated at a variable address in the verification target device 30, it is possible to restore the state in which the integrity verification module 31 is loaded in the integrity verification device 10.

その際、チェックサム計算部3114は、検査情報に含まれる乱数情報に基づいて、完全性検証モジュール31自身のプログラムコードのうち選択したプログラムコードに基づいて、チェックサムを計算するとしてもよい。具体的には、チェックサム計算部3114は、完全性検証装置10より送信された乱数情報を基に、例えば、乱数情報が5bf・・・の場合に、プログラムコードの最初から5番目のコードと、そのコードから11番目のコードと、さらにそのコードから15番目のコードとのように、ランダムに選択するとしてもよい。チェックサム計算部3114は、選択したコードに基づくチェックサムの計算を、乱数情報に基づくランダムな選択を含めて所定回数繰り返して実行し、最終的なチェックサムを得る。   At that time, the checksum calculator 3114 may calculate the checksum based on the program code selected from the program codes of the integrity verification module 31 itself based on the random number information included in the inspection information. Specifically, the checksum calculation unit 3114, based on the random number information transmitted from the integrity verification device 10, for example, when the random number information is 5bf... The 11th code from the code and the 15th code from the code may be selected at random. The checksum calculation unit 3114 repeatedly executes a checksum calculation based on the selected code, including a random selection based on random number information, a predetermined number of times to obtain a final checksum.

さらに、チェックサム計算部3114は、命令分岐の履歴情報をチェックサムの計算に加味してもよい。すなわち、チェックサム計算部3114は、検査情報に含まれる乱数情報に基づいて、分岐情報記憶手段320に記憶された分岐情報を選択し、選択した分岐情報を含めて、チェックサムを計算する。
例えば、チェックサム計算部3114は、チェックサムの計算における各繰り返し処理のはじめに、命令分岐の履歴情報をチェックサムの計算に加えるかどうかを判断する。チェックサム計算部3114は、この判断を当該乱数情報に基づき行う。命令分岐の履歴情報をチェックサムの計算に加える場合、チェックサム計算部3114は、計算に加味する履歴情報を、分岐情報記憶手段320から、乱数情報に基づきランダムに選択する(例えば、乱数情報が5bf・・・の場合に、分岐情報の記憶数(例えば、16個)以内の値のうち最初の値である「5」に基づいて、最新から5番目の分岐情報を選択する)。そして、チェックサム計算部3114は、選択された分岐情報と、上述のように別途選択されたコードとからチェックサムを計算する。
Further, the checksum calculation unit 3114 may add the instruction branch history information to the checksum calculation. That is, the checksum calculator 3114 selects the branch information stored in the branch information storage unit 320 based on the random number information included in the check information, and calculates the checksum including the selected branch information.
For example, the checksum calculation unit 3114 determines whether to add the instruction branch history information to the checksum calculation at the beginning of each iterative process in the checksum calculation. The checksum calculation unit 3114 makes this determination based on the random number information. When adding the instruction branch history information to the checksum calculation, the checksum calculation unit 3114 randomly selects history information to be added to the calculation from the branch information storage unit 320 based on the random number information (for example, the random number information is In the case of 5bf..., The fifth latest branch information is selected based on “5” that is the first value among the values within the number of stored branch information (for example, 16). Then, the checksum calculation unit 3114 calculates a checksum from the selected branch information and the code separately selected as described above.

検査情報送信部3132は、異常起動通知部3113によって通知された異常な起動を示す情報、又はチェックサム計算部3114によって計算されたチェックサムを含む検査情報を完全性検証装置10に送信する。   The inspection information transmission unit 3132 transmits information indicating the abnormal activation notified by the abnormal activation notification unit 3113 or inspection information including the checksum calculated by the checksum calculation unit 3114 to the integrity verification apparatus 10.

完全性検証装置10の検査情報受信手段122は、検証対象装置30の完全性検証モジュール31から検査情報を受信する。   The inspection information receiving unit 122 of the integrity verification apparatus 10 receives inspection information from the integrity verification module 31 of the verification target apparatus 30.

完全性検証装置10の検査情報判定手段111は、受信した検査情報が異常な起動を示す情報を含む場合に、検証対象装置30が完全ではないと判定する。   The inspection information determination unit 111 of the integrity verification apparatus 10 determines that the verification target apparatus 30 is not complete when the received inspection information includes information indicating abnormal activation.

完全性検証装置10のチェックサム検証手段112は、受信した検査情報がチェックサムを含む場合に、計算されたチェックサムを検証する。具体的には、チェックサム検証手段112は、要求送信手段121によって送信された乱数情報と、完全性検証モジュール31のコードとから、完全性検証モジュール31で実行されるチェックサムの計算処理を復元し、チェックサムを計算する。そして、チェックサム検証手段112は、復元して計算されたチェックサムの値を検証用情報として、完全性検証モジュール31より送信された検査情報と照合する。   The checksum verification means 112 of the integrity verification apparatus 10 verifies the calculated checksum when the received inspection information includes a checksum. Specifically, the checksum verification unit 112 restores the checksum calculation process executed by the integrity verification module 31 from the random number information transmitted by the request transmission unit 121 and the code of the integrity verification module 31. And calculate the checksum. Then, the checksum verification unit 112 collates the checksum value calculated by restoration with the inspection information transmitted from the integrity verification module 31 as verification information.

完全性検証装置10の検査情報判定手段111は、検査情報が異常な起動を示す情報を含まない場合に、チェックサム検証手段112によって検証された情報に基づいて、検証対象装置30が完全であるか否かをさらに判定する。具体的には、検査情報判定手段111は、チェックサム検証手段112によって計算されたチェックサムの情報と、完全性検証モジュール31により送信されたチェックサム情報とが一致する場合に、検証対象装置30が完全であると判定する。   The inspection information determination unit 111 of the integrity verification device 10 is that the verification target device 30 is complete based on the information verified by the checksum verification unit 112 when the inspection information does not include information indicating abnormal activation. It is further determined whether or not. Specifically, the check information determination unit 111, when the checksum information calculated by the checksum verification unit 112 and the checksum information transmitted by the integrity verification module 31 match, Is determined to be complete.

さらに、検証対象装置30からの応答時間に基づく、完全性検証装置10による完全性の検証について説明する。   Furthermore, the verification of integrity by the integrity verification device 10 based on the response time from the verification target device 30 will be described.

時間測定手段113は、検査情報送信手段による検査要求の送信から、検査情報受信手段122による検査情報の受信までの所要時間を測定する。   The time measuring unit 113 measures the time required from the transmission of the inspection request by the inspection information transmitting unit to the reception of the inspection information by the inspection information receiving unit 122.

所要時間判定手段114は、時間測定手段113によって測定された所要時間が所定値よりも小さいか否かを判定する。具体的には、所要時間判定手段114は、当該所要時間を所定値と比較し、差が所定の範囲内である場合(例えば、差≦所定値±所定範囲である場合)に、所要時間が所定値よりも小さいと判定する。   The required time determination unit 114 determines whether the required time measured by the time measurement unit 113 is smaller than a predetermined value. Specifically, the required time determination unit 114 compares the required time with a predetermined value, and when the difference is within a predetermined range (for example, when the difference ≦ predetermined value ± predetermined range), the required time It is determined that the value is smaller than the predetermined value.

検査情報判定手段111は、チェックサム検証手段112によって検証された情報に基づいて検証対象装置30が完全であると判定した場合に、さらに、所要時間判定手段114による判定に基づいて、検証対象装置30が完全であるか否かを判定する。   When the inspection information determination unit 111 determines that the verification target device 30 is complete based on the information verified by the checksum verification unit 112, the inspection information determination unit 111 further determines the verification target device based on the determination by the required time determination unit 114. It is determined whether 30 is complete.

さらに、完全性検証モジュール31によるハッシュ値計算に基づく、完全性検証装置10による完全性の検証について説明する。   Further, the verification of integrity by the integrity verification device 10 based on the hash value calculation by the integrity verification module 31 will be described.

完全性検証モジュール31のハッシュ値計算部3121は、検査対象となるプラットフォームのプログラムコードからハッシュ値を計算する。具体的には、ハッシュ値計算部3121は、ハイパーバイザのハッシュ値(例えば、ハイパーバイザのコードに基づくハッシュ値)を計算する。ハッシュ値計算部3121は、例えばSHA−1などのハッシュ関数を用いて、ハッシュ値の計算を行う。   The hash value calculation unit 3121 of the integrity verification module 31 calculates a hash value from the program code of the platform to be inspected. Specifically, the hash value calculation unit 3121 calculates a hypervisor hash value (for example, a hash value based on the hypervisor code). The hash value calculation unit 3121 calculates a hash value using a hash function such as SHA-1.

検査情報送信部3132は、ハッシュ値計算部3121によって計算されたハッシュ値をさらに検査情報に含めて送信する。
完全性検証装置10のハッシュ値検証手段115は、検査情報受信手段122によって受信されたハッシュ値を検証する。具体的には、ハッシュ値検証手段115は、受信された検査情報に含まれるハッシュ値と、完全性検証装置10において保持するプラットフォーム検証用情報に含まれる検証用ハッシュ値とを照合する。
検査情報判定手段111は、所要時間判定手段114による判定に基づいて、検証対象装置30が完全であると判定した場合に、さらに、ハッシュ値検証手段115によって検証された情報に基づいて、検証対象装置30が完全であるか否かを判定する。
検査情報判定手段111は、ハッシュ値検証手段115による照合が一致する場合に、ハイパーバイザは攻撃されていないと判断し、検証対象装置30が完全であると判定する。
The inspection information transmission unit 3132 further transmits the hash value calculated by the hash value calculation unit 3121 in the inspection information.
The hash value verification unit 115 of the integrity verification apparatus 10 verifies the hash value received by the inspection information reception unit 122. Specifically, the hash value verification unit 115 collates the hash value included in the received inspection information with the verification hash value included in the platform verification information held in the integrity verification apparatus 10.
When it is determined that the verification target device 30 is complete based on the determination by the required time determination unit 114, the inspection information determination unit 111 further performs verification based on the information verified by the hash value verification unit 115. It is determined whether the device 30 is complete.
When the collation by the hash value verification unit 115 matches, the inspection information determination unit 111 determines that the hypervisor is not attacked and determines that the verification target device 30 is complete.

図4は、本発明の一実施形態に係る遠隔完全性検証システム1の処理を示すフローチャートである。本発明の一実施形態に係る遠隔完全性検証システム1における、完全性検証装置10は、コンピュータ及びその周辺装置が備えるハードウェア並びに該ハードウェアを制御するソフトウェアによって構成され、以下の処理は、制御部(例えば、CPU)が、OSの下で所定のソフトウェアに従い実行する処理である。また、完全性検証モジュール31は、コンピュータ及びその周辺装置を備える検証対象装置30においてインストールされ、以下の処理は、検証対象装置30の制御部(例えば、CPU)によって実行される処理である。   FIG. 4 is a flowchart showing processing of the remote integrity verification system 1 according to an embodiment of the present invention. In the remote integrity verification system 1 according to an embodiment of the present invention, the integrity verification device 10 is configured by hardware included in a computer and its peripheral devices, and software that controls the hardware. A unit (for example, CPU) is a process executed according to predetermined software under the OS. The integrity verification module 31 is installed in the verification target device 30 including a computer and its peripheral devices, and the following processing is processing executed by a control unit (for example, CPU) of the verification target device 30.

ステップS101において、完全性検証装置10のCPU(要求送信手段121)は、検査に用いるための乱数情報を含む検査要求を、検証対象装置30に送信する。   In step S <b> 101, the CPU (request transmission unit 121) of the integrity verification apparatus 10 transmits an inspection request including random number information used for the inspection to the verification target apparatus 30.

ステップS201において、検証対象装置30のCPU(起動手段32)は、完全性検証モジュール31を起動する。   In step S <b> 201, the CPU (starting unit 32) of the verification target device 30 starts the integrity verification module 31.

ステップS301において、完全性検証モジュール31(分岐情報記憶制御部3111、起動判定部3112、異常起動通知部3113、検査情報送信部3132)は、起動手段32が完全性検証モジュール31を起動する際に記録された分岐情報(例えば、分岐元レコード及び分岐先レコードのアドレス情報)を分岐情報記憶手段320に記憶させ、起動手段32によって起動されたか否かを分岐情報記憶手段320に記憶された分岐情報(例えば、分岐元レコード及び分岐先レコードのアドレス情報)に基づいて判断する。この判断が、YESの場合、CPUは、処理をステップS302に移し、NOの場合、CPUは、異常な起動を示す情報を含む検査情報を完全性検証装置10に送信し、完全性検証モジュール31の処理を終了し、遠隔完全性検証システム1の処理は、完全性検証装置10のステップS102に移行する。ステップS102において、完全性検証装置10(検査情報判定手段111)は、検査情報を受信し、受信した検査情報が異常な起動を示す情報を含む場合に、検証対象装置30が完全ではないと判定し、検証対象装置30が攻撃を受けていることを報知して、処理を終了する。   In step S <b> 301, the integrity verification module 31 (the branch information storage control unit 3111, the activation determination unit 3112, the abnormal activation notification unit 3113, and the examination information transmission unit 3132) is activated when the activation unit 32 activates the integrity verification module 31. The recorded branch information (for example, the address information of the branch source record and the branch destination record) is stored in the branch information storage unit 320, and the branch information stored in the branch information storage unit 320 as to whether or not it has been started by the start unit 32 The determination is made based on (for example, address information of the branch source record and the branch destination record). If the determination is YES, the CPU moves the process to step S302. If the determination is NO, the CPU transmits inspection information including information indicating abnormal activation to the integrity verification apparatus 10 and the integrity verification module 31. The process of the remote integrity verification system 1 proceeds to step S102 of the integrity verification apparatus 10. In step S102, the integrity verification apparatus 10 (inspection information determination unit 111) receives the inspection information, and determines that the verification target apparatus 30 is not complete when the received inspection information includes information indicating abnormal activation. Then, the verification target device 30 is notified that it is under attack, and the process is terminated.

ステップS302において、完全性検証モジュール31(要求受信部3131)は、送信された検査要求を受信し、検証対象装置30の割り込みを無効にし、別のソフトウェアに処理が移行しないようにする。   In step S302, the integrity verification module 31 (request reception unit 3131) receives the transmitted inspection request, invalidates the interrupt of the verification target device 30, and prevents the processing from being transferred to another software.

ステップS303において、完全性検証モジュール31(チェックサム計算部3114)は、要求受信部3131によって受信された乱数情報に基づくコードを含めた、完全性検証モジュール31自身のプログラムコードのチェックサムを計算する。   In step S303, the integrity verification module 31 (checksum calculation unit 3114) calculates the checksum of the program code of the integrity verification module 31 itself including the code based on the random number information received by the request reception unit 3131. .

ステップS304において、完全性検証モジュール31(検査情報送信部3132)は、チェックサム計算部3114によって計算されたチェックサムを含む検査情報を完全性検証装置10に送信する。   In step S <b> 304, the integrity verification module 31 (the inspection information transmission unit 3132) transmits the inspection information including the checksum calculated by the checksum calculation unit 3114 to the integrity verification apparatus 10.

ステップS305において、完全性検証モジュール31(ハッシュ値計算部3121)は、検査対象となるプラットフォームのプログラムコードからハッシュ値を計算する。   In step S305, the integrity verification module 31 (hash value calculation unit 3121) calculates a hash value from the program code of the platform to be inspected.

ステップS306において、完全性検証モジュール31(検査情報送信部3132)は、ハッシュ値計算部3121によって計算されたハッシュ値を含む検査情報を完全性検証装置10に送信する。   In step S <b> 306, the integrity verification module 31 (the inspection information transmission unit 3132) transmits the inspection information including the hash value calculated by the hash value calculation unit 3121 to the integrity verification apparatus 10.

ステップS103において、完全性検証装置10のCPU(検査情報受信手段122)は、検証対象装置30の完全性検証モジュール31からチェックサム値を含む検査情報を受信する。   In step S <b> 103, the CPU (inspection information receiving unit 122) of the integrity verification apparatus 10 receives inspection information including a checksum value from the integrity verification module 31 of the verification target apparatus 30.

ステップS104において、完全性検証装置10のCPU(検査情報受信手段122)は、検証対象装置30の完全性検証モジュール31からハッシュ値を含む検査情報を受信する。   In step S <b> 104, the CPU (inspection information receiving unit 122) of the integrity verification apparatus 10 receives inspection information including a hash value from the integrity verification module 31 of the verification target apparatus 30.

ステップS105において、完全性検証装置10のCPU(チェックサム検証手段112、検査情報判定手段111)は、完全性検証モジュール31で実行されるチェックサムの計算処理を復元し計算したチェックサムと、受信したチェックサムとを照合する。照合の結果が一致する場合(YESの場合)、CPUは、処理をステップS106に移し、照合の結果が一致しない場合(NOの場合)、CPUは、検証対象装置30が完全ではないと判定し、検証対象装置30が攻撃を受けていることを報知して、処理を終了する。   In step S105, the CPU (checksum verification unit 112, inspection information determination unit 111) of the integrity verification apparatus 10 restores the checksum calculation process executed by the integrity verification module 31, and receives the checksum. Checked against checksum. If the collation results match (if YES), the CPU moves the process to step S106. If the collation results do not match (NO), the CPU determines that the verification target device 30 is not complete. Then, the verification target device 30 is notified that it is under attack, and the process is terminated.

ステップS106において、完全性検証装置10のCPU(時間測定手段113、所要時間判定手段114、検査情報判定手段111)は、ステップS101における検査要求の送信時に開始し、ステップS103における受信時に終了していた時間測定による測定時間が、所定値よりも小さいか否かを判断する。この判断が、YESの場合、CPUは、処理をステップS107に移し、この判断が、NOの場合、CPUは、検証対象装置30が完全ではないと判定し、検証対象装置30が攻撃を受けていることを報知して、処理を終了する。   In step S106, the CPU (time measurement unit 113, required time determination unit 114, inspection information determination unit 111) of the integrity verification apparatus 10 starts when the inspection request is transmitted in step S101 and ends when it is received in step S103. It is determined whether or not the measurement time by the time measurement is smaller than a predetermined value. If this determination is YES, the CPU moves the process to step S107. If this determination is NO, the CPU determines that the verification target device 30 is not complete, and the verification target device 30 is under attack. The process is terminated.

ステップS107において、完全性検証装置10のCPU(ハッシュ値検証手段115、検査情報判定手段111)は、受信された検査情報に含まれるハッシュ値と、完全性検証装置10において保持するプラットフォーム検証用情報に含まれる検証用ハッシュ値とを照合する。照合の結果が一致しない場合(NOの場合)、CPUは、検証対象装置30が完全ではないと判定し、検証対象装置30が攻撃を受けていることを報知して、処理を終了し、照合の結果が一致する場合(YESの場合)、CPUは、検証対象装置30が完全であると判定し、検証対象装置30が攻撃を受けていないことを報知して、処理を終了する。   In step S <b> 107, the CPU (hash value verification unit 115, inspection information determination unit 111) of the integrity verification apparatus 10 includes the hash value included in the received inspection information and the platform verification information held in the integrity verification apparatus 10. Is compared with the verification hash value included in. If the verification results do not match (in the case of NO), the CPU determines that the verification target device 30 is not complete, informs that the verification target device 30 is under attack, ends the processing, and performs verification. If the results match (YES), the CPU determines that the verification target device 30 is complete, informs that the verification target device 30 is not under attack, and ends the process.

本実施形態によれば、遠隔完全性検証システム1において、完全性検証装置10は、検査に用いるための乱数情報を含む検査要求を検証対象装置30に送信する。次に、検証対象装置30は、完全性検証モジュール31を起動し、完全性検証モジュール31は、起動手段32が完全性検証モジュール31を起動する際に記録された分岐情報を分岐情報記憶手段320に記憶させ、起動手段32によって起動されたか否かを分岐情報記憶手段320に記憶された分岐情報に基づいて判定する。完全性検証モジュール31は、起動手段32によって起動されていないと判定した場合に、異常な起動を示す情報を通知し、完全性検証装置10は、検証対象装置30が完全ではないと判定する。完全性検証モジュール31は、起動手段32によって起動されたと判定した場合に、送信された検査要求を受信し、受信した乱数情報に基づくコードを含めた、完全性検証モジュール31自身のプログラムコードのチェックサムを計算し、計算したチェックサムを含む検査情報を完全性検証装置10に送信する。完全性検証装置10は、検証対象装置30の完全性検証モジュール31から検査情報を受信し、受信したチェックサムを検証し、検証した情報に基づいて、検証対象装置30が完全であるか否かを判定する。
さらに、完全性検証装置10は、チェックサムによって検証された情報に基づいて検証対象装置30が完全であると判定した場合に、検査要求の送信から、検査情報の受信までの測定した所要時間が所定値よりも小さいか否かを判定し、検証対象装置30が完全であるか否かを判定する。
さらに、完全性検証装置10は、所要時間による判定に基づいて、検証対象装置30が完全であると判定した場合に、完全性検証モジュール31によってプラットフォームのプログラムコードから計算されたハッシュ値を検証し、検証対象装置30が完全であるか否かを判定する。
したがって、遠隔完全性検証システム1は、特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現することができる。
According to the present embodiment, in the remote integrity verification system 1, the integrity verification device 10 transmits an inspection request including random number information to be used for inspection to the verification target device 30. Next, the verification target device 30 activates the integrity verification module 31, and the integrity verification module 31 stores the branch information recorded when the activation unit 32 activates the integrity verification module 31 with the branch information storage unit 320. And whether or not it has been activated by the activation means 32 is determined based on the branch information stored in the branch information storage means 320. When the integrity verification module 31 determines that the activation means 32 has not been activated, the integrity verification module 31 notifies information indicating abnormal activation, and the integrity verification device 10 determines that the verification target device 30 is not complete. When the integrity verification module 31 determines that it has been activated by the activation means 32, the integrity verification module 31 receives the transmitted inspection request and checks the program code of the integrity verification module 31 itself including the code based on the received random number information. The sum is calculated, and the inspection information including the calculated checksum is transmitted to the integrity verification apparatus 10. The integrity verification apparatus 10 receives the inspection information from the integrity verification module 31 of the verification target apparatus 30, verifies the received checksum, and determines whether the verification target apparatus 30 is complete based on the verified information. Determine.
Furthermore, when the integrity verification apparatus 10 determines that the verification target apparatus 30 is complete based on the information verified by the checksum, the measured required time from the transmission of the inspection request to the reception of the inspection information. It is determined whether or not the value is smaller than a predetermined value, and it is determined whether or not the verification target device 30 is complete.
Furthermore, the integrity verification device 10 verifies the hash value calculated from the program code of the platform by the integrity verification module 31 when it is determined that the verification target device 30 is complete based on the determination by the required time. Then, it is determined whether the verification target device 30 is complete.
Therefore, the remote integrity verification system 1 can detect an attacker's verification avoidance attack without assuming the installation of a special hardware module, and can realize platform integrity verification.

以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。   As mentioned above, although embodiment of this invention was described, this invention is not restricted to embodiment mentioned above. The effects described in the embodiments of the present invention are only the most preferable effects resulting from the present invention, and the effects of the present invention are limited to those described in the embodiments of the present invention. is not.

例えば、本実施形態では、チェックサムにより検証対象装置30を検証した後に、ハッシュ値により検証対象装置30を検証するとしたが、ハッシュ値により検証対象装置30を検証した後に、チェックサムにより検証対象装置30を検証するとしてもよい。   For example, in this embodiment, after verifying the verification target device 30 with the checksum, the verification target device 30 is verified with the hash value. However, after verifying the verification target device 30 with the hash value, the verification target device with the checksum is performed. 30 may be verified.

1 遠隔完全性検証システム
10 完全性検証装置
11 検査情報検証手段
111 検査情報判定手段
112 チェックサム検証手段
113 時間測定手段
114 所要時間判定手段
115 ハッシュ値検証手段
12 通信手段
121 要求送信手段
122 検査情報受信手段
30 検証対象装置
31 完全性検証モジュール
311 自己検証情報生成部
3111 分岐情報記憶制御部
3112 起動判定部
3113 異常起動通知部
3114 チェックサム計算部
312 プラットフォーム検証情報生成部
3121 ハッシュ値計算部
313 通信部
3131 要求受信部
3132 検査情報送信部
320 分岐情報記憶手段
32 起動手段
DESCRIPTION OF SYMBOLS 1 Remote integrity verification system 10 Integrity verification apparatus 11 Inspection information verification means 111 Inspection information determination means 112 Checksum verification means 113 Time measurement means 114 Time required determination means 115 Hash value verification means 12 Communication means 121 Request transmission means 122 Inspection information Receiving means 30 Verification target device 31 Integrity verification module 311 Self-verification information generation unit 3111 Branch information storage control unit 3112 Activation determination unit 3113 Abnormal activation notification unit 3114 Checksum calculation unit 312 Platform verification information generation unit 3121 Hash value calculation unit 313 Communication Unit 3131 request receiving unit 3132 examination information transmitting unit 320 branch information storage unit 32 activation unit

Claims (7)

検証される装置である検証対象装置において作動するようにインストールされた完全性検証モジュールと、前記検証対象装置の完全性を検証する完全性検証装置とを備える遠隔完全性検証システムであって、
前記完全性検証装置は、
検査に用いるための乱数情報を含む検査要求を前記検証対象装置に送信する要求送信手段を備え、
前記検証対象装置は、
前記完全性検証モジュールを起動する起動手段を備え、
前記完全性検証モジュールは、
前記起動手段が前記完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させる分岐情報記憶制御部と、
前記起動手段によって起動されたか否かを前記分岐情報記憶手段に記憶された前記分岐情報に基づいて判定する起動判定部と、
前記起動手段によって起動されていないと前記起動判定部によって判定された場合に、異常な起動を示す情報を通知する異常起動通知部と、
前記起動手段によって起動されたと前記起動判定部によって判定された場合に、前記要求送信手段によって送信された前記検査要求を受信する要求受信部と、
前記要求受信部によって受信された前記乱数情報に基づくコードを含めた、前記完全性検証モジュール自身のプログラムコードのチェックサムを計算するチェックサム計算部と、
前記検証対象装置における検査情報を前記完全性検証装置に送信する検査情報送信部と、を有し、
前記検査情報送信部は、前記異常起動通知部によって通知された異常な起動を示す情報、又は前記チェックサム計算部によって計算された前記チェックサムを含む前記検査情報を前記完全性検証装置に送信し、
前記完全性検証装置は、
前記検証対象装置の前記完全性検証モジュールから前記検査情報を受信する検査情報受信手段と、
受信した前記検査情報が異常な起動を示す情報を含む場合に、前記検証対象装置が完全ではないと判定する検査情報判定手段と、
受信した前記検査情報が前記チェックサムを含む場合に、計算された前記チェックサムを検証するチェックサム検証手段と、を備え、
前記検査情報判定手段は、前記検査情報が異常な起動を示す情報を含まない場合に、前記チェックサム検証手段によって検証された情報に基づいて、前記検証対象装置が完全であるか否かをさらに判定する、
遠隔完全性検証システム。
A remote integrity verification system comprising an integrity verification module installed to operate on a verification target device that is a device to be verified, and an integrity verification device for verifying the integrity of the verification target device,
The integrity verification device comprises:
A request transmission means for transmitting an inspection request including random number information to be used for inspection to the verification target device;
The verification target device is:
Activating means for activating the integrity verification module;
The integrity verification module is
A branch information storage control unit for storing branch information recorded when the activation unit activates the integrity verification module in a branch information storage unit;
An activation determination unit that determines whether the activation is performed by the activation unit based on the branch information stored in the branch information storage unit;
An abnormal activation notifying unit for notifying information indicating abnormal activation when the activation determining unit determines that the activation means is not activated;
A request receiving unit that receives the inspection request transmitted by the request transmitting unit when the activation determining unit determines that the activation is activated by the activation unit;
A checksum calculator that calculates a checksum of the program code of the integrity verification module itself, including a code based on the random number information received by the request receiver;
An inspection information transmission unit that transmits inspection information in the verification target device to the integrity verification device;
The inspection information transmission unit transmits information indicating abnormal activation notified by the abnormal activation notification unit or the inspection information including the checksum calculated by the checksum calculation unit to the integrity verification device. ,
The integrity verification device comprises:
Inspection information receiving means for receiving the inspection information from the integrity verification module of the verification target device;
When the received inspection information includes information indicating abnormal activation, inspection information determination means for determining that the verification target device is not complete,
Checksum verification means for verifying the calculated checksum when the received check information includes the checksum;
The inspection information determination unit further determines whether or not the verification target device is complete based on the information verified by the checksum verification unit when the inspection information does not include information indicating abnormal activation. judge,
Remote integrity verification system.
前記完全性検証装置は、
前記検査情報送信部による前記検査要求の送信から、前記検査情報受信手段による前記検査情報の受信までの所要時間を測定する時間測定手段と、
前記時間測定手段によって測定された所要時間が所定値よりも小さいか否かを判定する所要時間判定手段と、をさらに備え、
前記検査情報判定手段は、前記チェックサム検証手段によって検証された情報に基づいて前記検証対象装置が完全であると判定した場合に、さらに、前記所要時間判定手段による判定に基づいて、前記検証対象装置が完全であるか否かを判定する、
請求項1に記載の遠隔完全性検証システム。
The integrity verification device comprises:
Time measuring means for measuring a time required from transmission of the inspection request by the inspection information transmitting section to reception of the inspection information by the inspection information receiving means;
A required time determining means for determining whether the required time measured by the time measuring means is smaller than a predetermined value;
When the inspection information determination unit determines that the verification target device is complete based on the information verified by the checksum verification unit, the verification information determination unit further determines the verification target based on the determination by the required time determination unit Determine if the device is complete,
The remote integrity verification system of claim 1.
前記完全性検証モジュールは、
検査対象となるプラットフォームのプログラムコードからハッシュ値を計算するハッシュ値計算部をさらに有し、
前記検査情報送信部は、前記ハッシュ値計算部によって計算された前記ハッシュ値をさらに検査情報に含めて送信し、
前記完全性検証装置は、
前記検査情報受信手段によって受信された前記ハッシュ値を検証するハッシュ値検証手段をさらに備え、
前記検査情報判定手段は、前記所要時間判定手段による判定に基づいて、前記検証対象装置が完全であると判定した場合に、さらに、前記ハッシュ値検証手段によって検証された情報に基づいて、前記検証対象装置が完全であるか否かを判定する、
請求項2に記載の遠隔完全性検証システム。
The integrity verification module is
A hash value calculator for calculating a hash value from the program code of the platform to be inspected;
The inspection information transmission unit further includes the hash value calculated by the hash value calculation unit and transmits the inspection information,
The integrity verification device comprises:
A hash value verification unit that verifies the hash value received by the inspection information reception unit;
The inspection information determination unit, when it is determined that the verification target device is complete based on the determination by the required time determination unit, and further, based on the information verified by the hash value verification unit Determine whether the target device is complete,
The remote integrity verification system of claim 2.
前記チェックサム計算部は、前記検査情報に含まれる乱数情報に基づいて、前記完全性検証モジュール自身のプログラムコードのうち選択したプログラムコードに基づいて、前記チェックサムを計算する、請求項1から3のいずれか一項に記載する遠隔完全性検証システム。   The checksum calculation unit calculates the checksum based on a program code selected from among program codes of the integrity verification module itself based on random number information included in the check information. The remote integrity verification system according to any one of the above. 前記チェックサム計算部は、前記検査情報に含まれる乱数情報に基づいて、
前記分岐情報記憶手段に記憶された前記分岐情報を選択し、選択した前記分岐情報を含めて、前記チェックサムを計算する、請求項1から4のいずれか一項に記載する遠隔完全性検証システム。
The checksum calculation unit is based on random number information included in the inspection information.
The remote integrity verification system according to any one of claims 1 to 4, wherein the branch information stored in the branch information storage unit is selected, and the checksum is calculated including the selected branch information. .
請求項1に記載の遠隔完全性検証システムが実行する方法であって、
前記完全性検証装置において、
前記要求送信手段が、検査に用いるための乱数情報を含む検査要求を前記検証対象装置に送信する要求送信ステップと、
前記検証対象装置において、
前記起動手段が、前記完全性検証モジュールを起動する起動ステップと、
前記完全性検証モジュールにおいて、
前記分岐情報記憶制御部が、前記起動手段が前記完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させる分岐情報記憶制御ステップと、
前記起動判定部が、前記起動ステップによって起動されたか否かを前記分岐情報記憶手段に記憶された前記分岐情報に基づいて判定する起動判定ステップと、
前記異常起動通知部が、前記起動ステップによって起動されていないと前記起動判定ステップによって判定された場合に、異常な起動を示す情報を通知する異常起動通知ステップと、
前記要求受信部が、前記起動手段によって起動されたと前記起動判定部によって判定された場合に、前記要求送信手段によって送信された前記検査要求を受信する要求受信ステップと、
前記チェックサム計算部が、前記要求受信ステップによって受信された前記乱数情報に基づくコードを含めた、前記完全性検証モジュール自身のプログラムコードのチェックサムを計算するチェックサム計算ステップと、
前記検査情報送信部が、前記異常起動通知ステップによって通知された異常な起動を示す情報、又は前記チェックサム計算ステップによって計算された前記チェックサムを含む前記検査情報を前記完全性検証装置に送信するステップと、
前記完全性検証装置において、
前記検査情報受信手段が、前記検証対象装置の前記完全性検証モジュールから前記検査情報を受信する検査情報受信ステップと、
前記検査情報判定手段が、受信した前記検査情報が異常な起動を示す情報を含む場合に、前記検証対象装置が完全ではないと判定する検査情報判定ステップと、
前記チェックサム検証手段が、受信した前記検査情報が前記チェックサムを含む場合に、計算された前記チェックサムを検証するチェックサム検証ステップと、
前記検査情報判定手段が、前記検査情報が異常な起動を示す情報を含まない場合に、前記チェックサム検証ステップによって検証された情報に基づいて、前記検証対象装置が完全であるか否かをさらに判定するステップと、を備える方法。
A method performed by the remote integrity verification system of claim 1, comprising:
In the integrity verification device,
A request transmitting step in which the request transmitting means transmits an inspection request including random number information to be used for inspection to the verification target device;
In the verification target device,
An activation step in which the activation means activates the integrity verification module;
In the integrity verification module,
A branch information storage control step, wherein the branch information storage control unit stores the branch information recorded when the starter starts the integrity verification module in the branch information storage;
An activation determination step for determining whether the activation determination unit is activated in the activation step based on the branch information stored in the branch information storage unit;
An abnormal activation notification step of notifying information indicating an abnormal activation when the abnormal activation notification unit is not activated by the activation step and determined by the activation determination step;
A request receiving step for receiving the inspection request transmitted by the request transmitting means when the request determining section determines that the activation determining section has activated the request receiving section;
A checksum calculation step in which the checksum calculation unit calculates a checksum of the program code of the integrity verification module itself including a code based on the random number information received by the request reception step;
The inspection information transmitting unit transmits information indicating abnormal activation notified by the abnormal activation notification step or the inspection information including the checksum calculated by the checksum calculation step to the integrity verification device. Steps,
In the integrity verification device,
A test information receiving step in which the test information receiving means receives the test information from the integrity verification module of the verification target device;
When the inspection information determination means includes information indicating abnormal activation, the inspection information determination step for determining that the verification target device is not complete,
A checksum verification step in which the checksum verification means verifies the calculated checksum when the received check information includes the checksum;
The inspection information determination means further determines whether the verification target device is complete based on the information verified by the checksum verification step when the inspection information does not include information indicating abnormal activation. Determining.
請求項1に記載の遠隔完全性検証システムにおいて、前記完全性検証装置のコンピュータ及び前記検証対象装置のコンピュータに、請求項6に記載の各ステップを実行させるためのプログラム。   7. The program for causing a computer of the integrity verification apparatus and a computer of the verification target apparatus to execute each step according to claim 6 in the remote integrity verification system according to claim 1.
JP2014130252A 2014-06-25 2014-06-25 Remote integrity verification system, method and program Active JP6257460B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014130252A JP6257460B2 (en) 2014-06-25 2014-06-25 Remote integrity verification system, method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014130252A JP6257460B2 (en) 2014-06-25 2014-06-25 Remote integrity verification system, method and program

Publications (2)

Publication Number Publication Date
JP2016010031A true JP2016010031A (en) 2016-01-18
JP6257460B2 JP6257460B2 (en) 2018-01-10

Family

ID=55227317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014130252A Active JP6257460B2 (en) 2014-06-25 2014-06-25 Remote integrity verification system, method and program

Country Status (1)

Country Link
JP (1) JP6257460B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018519705A (en) * 2016-03-29 2018-07-19 ファーウェイ インターナショナル プライベート リミテッドHuawei International Pte. Ltd. System and method for verifying integrity of electronic device
WO2019059148A1 (en) * 2017-09-20 2019-03-28 Necプラットフォームズ株式会社 Bios management device, bios management system, bios management method, and bios management program-stored recording medium
CN111433774A (en) * 2017-12-08 2020-07-17 西门子股份公司 Method and validation device for integrity validation of a system
JP7430817B2 (en) 2020-03-13 2024-02-13 華為技術有限公司 COMMUNICATION METHODS, DEVICES AND SYSTEMS

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259848A (en) * 2005-03-15 2006-09-28 Matsushita Electric Ind Co Ltd Program execution device, program execution method and program
JP2009506439A (en) * 2005-08-25 2009-02-12 フォーティファイ ソフトウェア, インコーポレイテッド Apparatus and method for program analysis and complementation to provide security
JP2011003020A (en) * 2009-06-18 2011-01-06 Toyota Infotechnology Center Co Ltd Computer system and program starting method
US20120124385A1 (en) * 2006-04-20 2012-05-17 Siemens Aktiengesellschaft Method, controller and system for detecting infringements of the authenticity of system components
JP2014098951A (en) * 2012-11-13 2014-05-29 Kddi Corp Terminal device, integrity verification system, and program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259848A (en) * 2005-03-15 2006-09-28 Matsushita Electric Ind Co Ltd Program execution device, program execution method and program
JP2009506439A (en) * 2005-08-25 2009-02-12 フォーティファイ ソフトウェア, インコーポレイテッド Apparatus and method for program analysis and complementation to provide security
US20120124385A1 (en) * 2006-04-20 2012-05-17 Siemens Aktiengesellschaft Method, controller and system for detecting infringements of the authenticity of system components
JP2011003020A (en) * 2009-06-18 2011-01-06 Toyota Infotechnology Center Co Ltd Computer system and program starting method
JP2014098951A (en) * 2012-11-13 2014-05-29 Kddi Corp Terminal device, integrity verification system, and program

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018519705A (en) * 2016-03-29 2018-07-19 ファーウェイ インターナショナル プライベート リミテッドHuawei International Pte. Ltd. System and method for verifying integrity of electronic device
US10659237B2 (en) 2016-03-29 2020-05-19 Huawei International Pte. Ltd. System and method for verifying integrity of an electronic device
WO2019059148A1 (en) * 2017-09-20 2019-03-28 Necプラットフォームズ株式会社 Bios management device, bios management system, bios management method, and bios management program-stored recording medium
JP2019057044A (en) * 2017-09-20 2019-04-11 Necプラットフォームズ株式会社 Bios management device, bios management system, bios management method, and bios management program
CN111433774A (en) * 2017-12-08 2020-07-17 西门子股份公司 Method and validation device for integrity validation of a system
CN111433774B (en) * 2017-12-08 2024-03-19 西门子股份公司 Method and device for confirming integrity of system
JP7430817B2 (en) 2020-03-13 2024-02-13 華為技術有限公司 COMMUNICATION METHODS, DEVICES AND SYSTEMS

Also Published As

Publication number Publication date
JP6257460B2 (en) 2018-01-10

Similar Documents

Publication Publication Date Title
US10176330B2 (en) Global platform health management
CN109669734B (en) Method and apparatus for starting a device
US9690498B2 (en) Protected mode for securing computing devices
CN110334521B (en) Trusted computing system construction method and device, trusted computing system and processor
US8701187B2 (en) Runtime integrity chain verification
US9652276B2 (en) Hypervisor and virtual machine protection
US10915632B2 (en) Handling of remote attestation and sealing during concurrent update
CN105608386A (en) Trusted computing terminal integrity measuring and proving method and device
KR20180013854A (en) System and method for verifying the integrity of electronic devices
JP6257460B2 (en) Remote integrity verification system, method and program
CN110334515B (en) Method and device for generating measurement report based on trusted computing platform
CN110245495B (en) BIOS checking method, configuration method, device and system
US11062033B2 (en) Independent integrity verification of security policy data in applications on a client
US8499351B1 (en) Isolated security monitoring system
EP3338214B1 (en) Secure computation environment
CN113641463A (en) Virtualization system credibility authentication method, system and computer readable storage medium
WO2014183643A1 (en) Check method and check device for chip having secure startup function
CN116956298A (en) Application running environment detection method and device
CN112988262B (en) Method and device for starting application program on target platform
WO2013028059A1 (en) Verification system for trusted platform
US20200244461A1 (en) Data Processing Method and Apparatus
WO2019137614A1 (en) Apparatus and method for runtime integrity protection for execution environments
KR102343406B1 (en) Apparatus and computer program for protecting data files
US20240020360A1 (en) Computer system, software tampering verification method, and non-transitory computer readable medium
CN117932691A (en) BMC data writing method, system, device and medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171205

R150 Certificate of patent or registration of utility model

Ref document number: 6257460

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250