JP2019057167A - Computer program, device and determining method - Google Patents

Computer program, device and determining method Download PDF

Info

Publication number
JP2019057167A
JP2019057167A JP2017181637A JP2017181637A JP2019057167A JP 2019057167 A JP2019057167 A JP 2019057167A JP 2017181637 A JP2017181637 A JP 2017181637A JP 2017181637 A JP2017181637 A JP 2017181637A JP 2019057167 A JP2019057167 A JP 2019057167A
Authority
JP
Japan
Prior art keywords
monitoring module
execution environment
normal
confirmation information
module
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.)
Pending
Application number
JP2017181637A
Other languages
Japanese (ja)
Inventor
篤浩 佐橋
Atsuhiro Sahashi
篤浩 佐橋
嘉昭 植村
Yoshiaki Uemura
嘉昭 植村
亮大 中村
Ryota Nakamura
亮大 中村
智恒 浜野
Tomotsune Hamano
智恒 浜野
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2017181637A priority Critical patent/JP2019057167A/en
Publication of JP2019057167A publication Critical patent/JP2019057167A/en
Pending legal-status Critical Current

Links

Images

Abstract

To provide a computer program, a device, and a determining method which bring the device in a safer state.SOLUTION: In order to execute a predetermined processing in a secured execution environment which is virtually separated from a normal execution environment and is safer as compared with the normal execution environment, a computer program makes a computer execute a processing executed in the normal execution environment for determining whether a monitoring module for monitoring a monitoring object in the normal execution environment is normal or abnormal.SELECTED DRAWING: Figure 1

Description

本発明は、コンピュータプログラム、デバイス及び判定方法に関する。   The present invention relates to a computer program, a device, and a determination method.

IoT(Internet of Things)では、多種多様なデバイスがネットワークに接続されることで新たな付加価値を生み出している。このようなデバイスに対するセキュリティ上の攻撃には多種多様な手法が存在し、より安全なセキュリティ対策が検討されている。   IoT (Internet of Things) creates new added value by connecting a wide variety of devices to a network. There are various methods for security attacks on such devices, and safer security measures are being studied.

例えば、特許文献1には、外界からの攻撃を防止するための安全な実行環境を提供する技術が開示されている。   For example, Patent Literature 1 discloses a technology that provides a safe execution environment for preventing attacks from the outside world.

特許第6130612号公報Japanese Patent No. 6130612

上述のようなデバイスは、様々な場所に設置され、人手を介さずに自動的にネットワークに接続され、オンライン環境で使用される。外界からの攻撃を防止するため、例えば、ネットワークの状態、実行環境下で稼働しているプロセスの挙動などを監視する監視モジュールが必要となるが、監視モジュールが攻撃対象となり、監視モジュールの機能停止又は改ざんが行われると異常な動作を引き起こす事態となる。   Devices as described above are installed in various places, are automatically connected to a network without human intervention, and are used in an online environment. To prevent attacks from the outside world, for example, a monitoring module that monitors the status of the network and the behavior of processes running in the execution environment is required. Or, if tampering is performed, an abnormal operation is caused.

本発明は、斯かる事情に鑑みてなされたものであり、デバイスをより安全な状態にすることができるコンピュータプログラム、デバイス及び判定方法を提供することを目的とする。   The present invention has been made in view of such circumstances, and an object of the present invention is to provide a computer program, a device, and a determination method that can make the device safer.

本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるためのコンピュータプログラムであって、コンピュータに、前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する処理を実行させる。   A computer program according to an embodiment of the present invention is a computer program for causing a computer to execute a required process in a secure execution environment that is virtually separated from a normal execution environment and safer than the normal execution environment. And causing the computer to execute processing for determining normality / abnormality of a monitoring module that is executed in the normal execution environment and monitors a monitoring target in the normal execution environment.

本発明の実施の形態に係るデバイスは、ノーマル実行環境及び該ノーマル実行環境よりも安全なセキュア実行環境を仮想的に分離して実行環境を提供する仮想化モジュールを備え、本発明の実施の形態に係るコンピュータプログラムを前記セキュア実行環境にインストール可能とする。   A device according to an embodiment of the present invention includes a virtualization module that virtually separates a normal execution environment and a secure execution environment that is safer than the normal execution environment to provide an execution environment. Can be installed in the secure execution environment.

本発明の実施の形態に係る判定方法は、監視対象を監視する監視モジュールの正常・異常を判定する判定方法であって、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で動作するセキュアモジュールは、前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する。   A determination method according to an embodiment of the present invention is a determination method for determining normality / abnormality of a monitoring module that monitors a monitoring target, which is virtually separated from a normal execution environment and safer than the normal execution environment. The secure module that operates in the secure execution environment is executed in the normal execution environment, and determines whether the monitoring module that monitors the monitoring target in the normal execution environment is normal or abnormal.

本発明によれば、デバイスをより安全な状態にすることができる。   According to the present invention, the device can be put in a safer state.

本実施の形態のデバイスの構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the device of this Embodiment. 本実施の形態の認証モジュールによる起動時の動作の一例を示す説明図である。It is explanatory drawing which shows an example of the operation | movement at the time of starting by the authentication module of this Embodiment. 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第1実施を示す説明図である。It is explanatory drawing which shows 1st implementation of the normal / abnormal determination operation | movement of the monitoring module by the authentication module of this Embodiment. 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第2実施を示す説明図である。It is explanatory drawing which shows 2nd implementation of the determination operation | movement of normality / abnormality of the monitoring module by the authentication module of this Embodiment. 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第3実施を示す説明図である。It is explanatory drawing which shows 3rd implementation of the determination operation | movement of the monitoring module normal / abnormal by the authentication module of this Embodiment. 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第4実施を示す説明図である。It is explanatory drawing which shows 4th implementation of the determination operation | movement of the monitoring module normal / abnormal by the authentication module of this Embodiment. 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第5実施を示す説明図である。It is explanatory drawing which shows 5th implementation of the determination operation | movement of the monitoring module normal / abnormal by the authentication module of this Embodiment. 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定処理の手順の第1実施を示すフローチャートである。It is a flowchart which shows 1st implementation of the procedure of the determination process of the normality / abnormality of the monitoring module by the authentication module of this Embodiment. 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定処理の手順の第1実施を示すフローチャートである。It is a flowchart which shows 1st implementation of the procedure of the determination process of the normality / abnormality of the monitoring module by the authentication module of this Embodiment. 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定処理の手順の第2実施を示すフローチャートである。It is a flowchart which shows 2nd implementation of the procedure of the determination process of the normality / abnormality of the monitoring module by the authentication module of this Embodiment.

以下、本発明の実施の形態を図面に基づいて説明する。図1は本実施の形態のデバイス100の構成の一例を示すブロック図である。デバイス100は、「モノのインターネット」(IoT)でいうところの「モノ」に該当するデバイス(電子デバイスとも称する)を含む。デバイス100は、例えば、単一のSoC(System on a Chip)で構成され、一個の半導体チップ上にシステムの動作に必要な機能の多く、あるいは全ての機能を一体化して実装している。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing an example of the configuration of the device 100 according to the present embodiment. The device 100 includes a device (also referred to as an electronic device) corresponding to “thing” in the “Internet of Things” (IoT). The device 100 is composed of, for example, a single SoC (System on a Chip), and many or all functions necessary for system operation are integrated and mounted on a single semiconductor chip.

デバイス100は、ネットワーク通信部12を備える。ネットワーク通信部12は、デバイス100をネットワークに接続する機能を有し、ネットワーク上のサービスサーバ(不図示)との間で情報の送受信を行うことができる。ネットワーク通信部12は、不図示のセンサ類で検出した情報をサービスサーバ(不図示)に送信することができる。   The device 100 includes a network communication unit 12. The network communication unit 12 has a function of connecting the device 100 to the network, and can send and receive information to and from a service server (not shown) on the network. The network communication unit 12 can transmit information detected by sensors (not shown) to a service server (not shown).

デバイス100では、仮想化技術を実現するハイパーバイザー10によって、仮想的に分離された複数の実行環境が提供されている。図1では、二つの実行環境が図示されている。一の実行環境は、ノーマル領域20(ノーマル実行環境、ノーマルドメインとも称する)であり、他の実行環境は、セキュア領域30(セキュア実行環境、セキュアドメインとも称する)である。すなわち、ハイパーバイザー10は、CPU11上で動作し、ノーマル領域20の仮想コンピュータ及びセキュア領域30の仮想コンピュータをデバイス100上で構築している。なお、ハイパーバイザー10の機能の一部をハードウェア化し、プロセッサコアなどに組み込み高速化を図ることができる。この場合、プロセッサコアには、例えば、TrustZone(登録商標)と称される技術を搭載することができる。ノーマル領域20とセキュア領域30との間では、メモリ空間、入出力装置などが分離されている。   In the device 100, a plurality of execution environments virtually separated by the hypervisor 10 that implements the virtualization technology is provided. In FIG. 1, two execution environments are illustrated. One execution environment is a normal area 20 (also referred to as a normal execution environment or a normal domain), and the other execution environment is a secure area 30 (also referred to as a secure execution environment or a secure domain). That is, the hypervisor 10 operates on the CPU 11 and constructs a virtual computer in the normal area 20 and a virtual computer in the secure area 30 on the device 100. Note that a part of the functions of the hypervisor 10 can be implemented as hardware and incorporated into a processor core or the like to increase the speed. In this case, for example, a technology called TrustZone (registered trademark) can be mounted on the processor core. A memory space, an input / output device, and the like are separated between the normal area 20 and the secure area 30.

ノーマル領域20は、広く一般的に利用されているOSの実行環境であり、セキュア領域30へのアクセスが制限される以外、特段の機能制約がない実行環境である。   The normal area 20 is an OS execution environment that is widely used in general, and is an execution environment that has no particular functional restrictions except that access to the secure area 30 is restricted.

セキュア領域30は、例えば、セキュリティ機能を隔離する目的で、同一のSoC上でノーマル領域20とは別に提供される独立した実行環境である。セキュア領域30は、ノーマル領域20からのアクセスが制限されている。   The secure area 30 is an independent execution environment provided separately from the normal area 20 on the same SoC, for example, for the purpose of isolating security functions. Access to the secure area 30 from the normal area 20 is restricted.

上述のように、ノーマル領域20からセキュア領域30にはアクセスできないように制限されるので、ノーマル領域20からセキュア領域30で実行する処理を呼び出すためには、ハイパーバイザー10を経由しなければならない。   As described above, since the normal area 20 is restricted so that the secure area 30 cannot be accessed, in order to call the process executed in the secure area 30 from the normal area 20, it is necessary to go through the hypervisor 10.

ノーマル領域20には、リッチOS21、揮発性のメモリ22、不揮発性のストレージ27、監視モジュール23、ファイルシステム24、アプリケーション25、26などが存在する。また、セキュア領域30には、セキュアOS31、揮発性のセキュアメモリ32、不揮発性のセキュアストレージ34、コンピュータプログラムとしての認証モジュール33などが存在する。なお、アプリケーションの数は二つに限定されない。   The normal area 20 includes a rich OS 21, a volatile memory 22, a nonvolatile storage 27, a monitoring module 23, a file system 24, applications 25 and 26, and the like. The secure area 30 includes a secure OS 31, a volatile secure memory 32, a nonvolatile secure storage 34, an authentication module 33 as a computer program, and the like. Note that the number of applications is not limited to two.

ファイルシステム24は、ストレージ27に含まれるフォルダ及びパスの構造を解釈し、アクセスするために利用される。   The file system 24 is used for interpreting and accessing the structure of folders and paths included in the storage 27.

メモリ22には、ノーマル領域20のストレージ27に格納されたデータが展開される。また、メモリ22には、監視モジュール23で利用される一時的なデータ(例えば、セッション鍵など)が格納される。メモリ22の内容は、セキュア領域30のアプリケーション(例えば、認証モジュール33など)からも参照することができる。   Data stored in the storage 27 of the normal area 20 is expanded in the memory 22. The memory 22 stores temporary data (for example, a session key) used by the monitoring module 23. The contents of the memory 22 can also be referred from an application (for example, the authentication module 33) in the secure area 30.

ストレージ27には、認証情報、公開鍵α及び監視モジュール23の実行ファイルなどの情報が格納され、必要に応じて当該情報はメモリ22に展開される。なお、認証情報、公開鍵αは、ファイルとして保存されていてもよく、監視モジュール23の実行コード中にハードコードされていてもよい。ファイルとして保存する場合は、アクセス権の設定、データの暗号化などの措置を複合的に講じることが望ましい。また、監視モジュール23の実行コード中にハードコードする場合は、難読化又は暗号化などアプリケーションの保護を施すことが望ましい。   The storage 27 stores information such as authentication information, the public key α, and the execution file of the monitoring module 23, and the information is expanded in the memory 22 as necessary. Note that the authentication information and the public key α may be stored as a file, or may be hard-coded in the execution code of the monitoring module 23. When saving as a file, it is desirable to take multiple measures such as setting access rights and encrypting data. In addition, when hard-coding the execution code of the monitoring module 23, it is desirable to protect the application such as obfuscation or encryption.

セキュアメモリ32は、セキュア領域30のセキュアストレージ34に格納されたデータが展開される。また、セキュアメモリ32には、認証モジュール33で利用される一時的なデータ(例えば、セッション鍵など)が格納される。セキュアメモリ32の内容は、ノーマル領域20のアプリケーションからは参照することができない。   In the secure memory 32, data stored in the secure storage 34 in the secure area 30 is expanded. The secure memory 32 stores temporary data (for example, a session key) used by the authentication module 33. The contents of the secure memory 32 cannot be referenced from the application in the normal area 20.

セキュアストレージ34には、認証情報、秘密鍵β、監視モジュール23の実行コード又は該実行コードのハッシュ値、認証モジュール33の実行ファイルなどの情報が格納され、必要に応じて当該情報は、セキュアメモリ32に展開される。認証情報、秘密鍵β、監視モジュール23の実行コード又は該実行コードのハッシュ値はファイルとして保存されてもよく、あるいは、認証モジュール33の実行コード中にハードコードされていてもよい。認証情報は、監視モジュール23を認証するための情報である。   The secure storage 34 stores authentication information, a secret key β, an execution code of the monitoring module 23 or a hash value of the execution code, an execution file of the authentication module 33, and the information is stored in a secure memory as necessary. 32. The authentication information, the secret key β, the execution code of the monitoring module 23 or the hash value of the execution code may be stored as a file, or may be hard-coded in the execution code of the authentication module 33. The authentication information is information for authenticating the monitoring module 23.

監視モジュール23は、ノーマル領域20内の監視対象を監視する。監視対象は、例えば、ノーマル領域20で動作するアプリケーション25、26、リッチOS21等から出力されるログファイル(実行履歴、デバッグ情報、アプリケーション間の通信ログなど)、ノーマル領域20で稼働しているアプリケーション25、26の挙動、ファイルシステム24の変更、セキュリティポリシーの変更、ネットワークの状態及びネットワークを伝送するパケットの中身などを含む。なお、監視対象は、上述のものに限定されない。   The monitoring module 23 monitors the monitoring target in the normal area 20. The monitoring target includes, for example, applications 25 and 26 that operate in the normal area 20, log files (execution history, debug information, communication logs between applications, and the like) output from the rich OS 21, etc., and applications that are operating in the normal area 20 25, 26 behaviors, file system 24 changes, security policy changes, network status, contents of packets transmitted over the network, and the like. Note that the monitoring target is not limited to the above.

認証モジュール33は、認証情報の照合処理、復号処理、ハッシュ値の算出処理、監視モジュール23の正常・異常を判定する処理などを行うことができる。   The authentication module 33 can perform authentication information verification processing, decryption processing, hash value calculation processing, processing for determining whether the monitoring module 23 is normal or abnormal, and the like.

認証モジュール33が、監視モジュール23の正常・異常を判定することにより、監視モジュール23が外部からの攻撃に晒されて正常な動作をすることができない場合、監視モジュール23の異常を判定することができ、外部からの攻撃を検出することができる。また、認証モジュール33は、監視モジュール23が動作するノーマル領域20から分離されたより安全なセキュア領域30で動作するので、外部からの攻撃に晒される可能性は極めて低く、ハッキングの難易度を高め、デバイス100をより安全な状態に保つことができる。   When the authentication module 33 determines normality / abnormality of the monitoring module 23 and the monitoring module 23 cannot be operated normally due to an external attack, the abnormality of the monitoring module 23 may be determined. Can detect attacks from the outside. Further, since the authentication module 33 operates in a safer secure area 30 separated from the normal area 20 in which the monitoring module 23 operates, the authentication module 33 is extremely unlikely to be exposed to an attack from the outside, increasing the difficulty of hacking, The device 100 can be kept in a safer state.

次に、認証モジュール33の動作について具体的に説明する。   Next, the operation of the authentication module 33 will be specifically described.

図2は本実施の形態の認証モジュール33による起動時の動作の一例を示す説明図である。起動時は、例えば、デバイス100の起動時(リッチOS21の起動時)、ノーマル領域20内のアプリケーション25、26を立ち上げ時などを含む。以下、ステップP1からP6について説明する。   FIG. 2 is an explanatory diagram showing an example of an operation at the time of activation by the authentication module 33 of the present embodiment. The startup includes, for example, startup of the device 100 (when the rich OS 21 is started), startup of the applications 25 and 26 in the normal area 20, and the like. Hereinafter, steps P1 to P6 will be described.

ステップP1では、監視モジュール23は、ストレージ27からメモリ22に展開された認証情報を公開鍵αで暗号化したデータを送信する。   In step P1, the monitoring module 23 transmits data obtained by encrypting the authentication information expanded from the storage 27 to the memory 22 with the public key α.

ステップP2では、認証モジュール33は、受信したデータを秘密鍵βで復号し、復号して得られた認証情報とセキュアメモリ32に展開した認証情報との照合を行う。   In step P <b> 2, the authentication module 33 decrypts the received data with the secret key β and collates the authentication information obtained by the decryption with the authentication information developed in the secure memory 32.

ステップP3では、認証モジュール33は、認証情報が一致している場合、認証完了を送信する。両方の認証情報が一致する場合、監視モジュール23から取得した認証情報は正当であると判定することができる。また、両方の認証情報が一致しない場合、監視モジュール23から取得した認証情報は正当でないと判定することができる。これにより、なりすまし等の不正を防止することができる。   In step P3, the authentication module 33 transmits authentication completion if the authentication information matches. If both pieces of authentication information match, it can be determined that the authentication information acquired from the monitoring module 23 is valid. If both pieces of authentication information do not match, it can be determined that the authentication information acquired from the monitoring module 23 is not valid. Thereby, fraud such as impersonation can be prevented.

ステップP4では、監視モジュール23は、セッション鍵を生成する。   In step P4, the monitoring module 23 generates a session key.

ステップP5では、監視モジュール23は、セッション鍵を公開鍵αで暗号化したデータを送信する。   In step P5, the monitoring module 23 transmits data obtained by encrypting the session key with the public key α.

ステップP6では、認証モジュール33は、受信したデータを秘密鍵βで復号してセッション鍵を取得する。これにより、認証モジュール33と監視モジュール23とは、お互いに共通のセッション鍵を有することができ、以後の通信に使用することができる。   In step P6, the authentication module 33 obtains a session key by decrypting the received data with the secret key β. Thereby, the authentication module 33 and the monitoring module 23 can have a common session key, and can be used for subsequent communications.

図3は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第1実施を示す説明図である。以下、ステップP11からP15について説明する。   FIG. 3 is an explanatory diagram showing a first embodiment of a normal / abnormal determination operation of the monitoring module 23 by the authentication module 33 of the present embodiment. Hereinafter, steps P11 to P15 will be described.

ステップP11では、監視モジュール23は、確認情報を送信する。   In step P11, the monitoring module 23 transmits confirmation information.

ステップP12では、認証モジュール33は、監視モジュール23から確認情報を受信することができたので、監視モジュール23は正常であると判定する。   In step P12, since the authentication module 33 has received the confirmation information from the monitoring module 23, the authentication module 33 determines that the monitoring module 23 is normal.

ステップP13では、監視モジュール23は、確認情報を送信する。ステップP13の時点とステップP11の時点との間の所定時間Tは、予め定められており、例えば、10秒、20秒、30秒、1分など、デバイス100の使用環境、機能等に応じて適宜決定することができる。確認情報の出力のタイミングは、周期的に限定されるものではなく、例えば、デバイス100のCPU11の負荷が増加した場合、あるいは異常の予兆を検知した場合など不定期的でもよい。   In step P13, the monitoring module 23 transmits confirmation information. The predetermined time T between the time point of Step P13 and the time point of Step P11 is determined in advance. For example, 10 seconds, 20 seconds, 30 seconds, 1 minute, etc., depending on the usage environment, function, etc. of the device 100 It can be determined as appropriate. The output timing of the confirmation information is not limited periodically, and may be irregular, for example, when the load on the CPU 11 of the device 100 increases or when a sign of abnormality is detected.

ステップP14では、認証モジュール33は、直近に確認情報を受信した時点から所定時間Tが経過する以前に、監視モジュール23から確認情報を再度受信することができたので、監視モジュール23は正常であると判定する。   In Step P14, the authentication module 33 is able to receive the confirmation information again from the monitoring module 23 before the predetermined time T has elapsed since the last time when the confirmation information was received, so the monitoring module 23 is normal. Is determined.

ステップP15では、ステップP13の時点から所定時間Tが経過しているにも関わらず、監視モジュール23は、確認情報を送信することができない。   In step P15, the monitoring module 23 cannot transmit confirmation information even though the predetermined time T has elapsed since the time of step P13.

ステップP16では、認証モジュール33は、監視モジュール23から確認情報を再度受信することができないので、監視モジュール23は異常であると判定する。   In Step P16, the authentication module 33 cannot receive the confirmation information from the monitoring module 23 again, and therefore determines that the monitoring module 23 is abnormal.

上述のように、確認情報が出力されるタイミングを経過しても、監視モジュール23が確認情報を出力しない場合、監視モジュール23が異常であると判定することができる。   As described above, if the monitoring module 23 does not output the confirmation information even after the timing at which the confirmation information is output, it can be determined that the monitoring module 23 is abnormal.

図4は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第2実施を示す説明図である。以下、ステップP21からP25について説明する。   FIG. 4 is an explanatory diagram showing a second embodiment of the normal / abnormal judgment operation of the monitoring module 23 by the authentication module 33 of the present embodiment. Hereinafter, steps P21 to P25 will be described.

ステップP21では、監視モジュール23は、変数Xに乱数Aを格納する。変数Xは、監視モジュール23側の確認情報となる。   In step P21, the monitoring module 23 stores the random number A in the variable X. The variable X becomes confirmation information on the monitoring module 23 side.

ステップP22では、監視モジュール23は、変数Xをセッション鍵で暗号化したデータを送信する。   In step P22, the monitoring module 23 transmits data obtained by encrypting the variable X with the session key.

ステップP23では、認証モジュール33は、受信したデータをセッション鍵で復号して得られた変数Xを変数Yに格納する。変数Yは、認証モジュール33側の確認情報となる。   In step P23, the authentication module 33 stores the variable X obtained by decrypting the received data with the session key in the variable Y. The variable Y becomes confirmation information on the authentication module 33 side.

ステップP24では、ステップP22の時点から所定時間Tだけ経過したので、監視モジュール23は、変数Xをセッション鍵で暗号化したデータを送信する。   In step P24, since the predetermined time T has elapsed since the time of step P22, the monitoring module 23 transmits data obtained by encrypting the variable X with the session key.

ステップP25では、認証モジュール33は、受信したデータをセッション鍵で復号して変数Xを取得する。変数Yが格納されているので、認証モジュール33は、変数Xと変数Yとが一致するか否かを判定する。変数Xと変数Yとが一致する場合、監視モジュール23が正常であると判定することができる。変数Xと変数Yとが一致しない場合、監視モジュール23が異常であると判定することができる。   In Step P25, the authentication module 33 acquires the variable X by decrypting the received data with the session key. Since the variable Y is stored, the authentication module 33 determines whether or not the variable X and the variable Y match. When the variable X and the variable Y match, it can be determined that the monitoring module 23 is normal. When the variable X and the variable Y do not match, it can be determined that the monitoring module 23 is abnormal.

上述のように、確認情報がセッション鍵で保護されるので、認証情報の盗聴又は改ざんを防止することができる。   As described above, since the confirmation information is protected by the session key, it is possible to prevent eavesdropping or falsification of the authentication information.

図5は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第3実施を示す説明図である。以下、ステップP31からP36について説明する。   FIG. 5 is an explanatory diagram showing a third embodiment of the normal / abnormal judgment operation of the monitoring module 23 by the authentication module 33 of the present embodiment. Hereinafter, steps P31 to P36 will be described.

ステップP31では、監視モジュール23は、変数Xに乱数Aを格納する。変数Xは、監視モジュール23側の確認情報となる。   In step P31, the monitoring module 23 stores the random number A in the variable X. The variable X becomes confirmation information on the monitoring module 23 side.

ステップP32では、監視モジュール23は、変数Xをセッション鍵で暗号化したデータを送信する。   In Step P32, the monitoring module 23 transmits data obtained by encrypting the variable X with the session key.

ステップP33では、認証モジュール33は、受信したデータをセッション鍵で復号して得られた変数Xを変数Yに格納する。変数Yは、認証モジュール33側の確認情報となる。   In step P33, the authentication module 33 stores the variable X obtained by decrypting the received data with the session key in the variable Y. The variable Y becomes confirmation information on the authentication module 33 side.

ステップP34では、監視モジュール23は、変数Xに(X+d)を格納する。ここでは、確認情報を更新する所定のアルゴリズムは、更新の都度、所定値dを加算するというアルゴリズムとなる。なお、所定のアルゴリズムは、上述の例に限定されない。   In Step P34, the monitoring module 23 stores (X + d) in the variable X. Here, the predetermined algorithm for updating the confirmation information is an algorithm in which the predetermined value d is added every time the update is performed. The predetermined algorithm is not limited to the above example.

ステップP35では、ステップP32の時点から所定時間Tだけ経過したので、監視モジュール23は、変数Xをセッション鍵で暗号化したデータを送信する。   In step P35, since the predetermined time T has elapsed from the time of step P32, the monitoring module 23 transmits data obtained by encrypting the variable X with the session key.

ステップP36では、認証モジュール33は、受信したデータをセッション鍵で復号して変数Xを取得する。変数Yが格納されているので、認証モジュール33は、前述のアルゴリズムと同じアルゴリズムを用いて、変数Yを(Y+d)とする。認証モジュール33は、変数Xと変数(Y+d)とが一致するか否かを判定する。変数Xと変数(Y+d)とが一致する場合、監視モジュール23が正常であると判定することができる。監視モジュール23が正常である場合、認証モジュール33は、変数Yに変数X(=Y+d)を格納する。変数Xと変数(Y+d)とが一致しない場合、監視モジュール23が異常であると判定することができる。   In step P36, the authentication module 33 acquires the variable X by decrypting the received data with the session key. Since the variable Y is stored, the authentication module 33 sets the variable Y to (Y + d) using the same algorithm as described above. The authentication module 33 determines whether or not the variable X matches the variable (Y + d). When the variable X matches the variable (Y + d), it can be determined that the monitoring module 23 is normal. When the monitoring module 23 is normal, the authentication module 33 stores the variable X (= Y + d) in the variable Y. When the variable X and the variable (Y + d) do not match, it can be determined that the monitoring module 23 is abnormal.

上述のように、監視モジュール23が正常であれば、同じアルゴリズムで更新される確認情報は同一となる。確認情報が同一でない場合には、監視モジュール23が正しく確認情報を更新することができていないので、監視モジュール23が異常であると判定することができる。また、認証情報を更新することにより、リプレイ攻撃を防止することができる。   As described above, if the monitoring module 23 is normal, the confirmation information updated by the same algorithm is the same. If the confirmation information is not the same, the monitoring module 23 cannot correctly update the confirmation information, so it can be determined that the monitoring module 23 is abnormal. In addition, replay attacks can be prevented by updating the authentication information.

上述の例では、監視モジュール23が正常であるか否かを、監視モジュール23が送信する確認情報に基づいて判定する構成であったが、監視モジュール23が正常・異常の判定は、これに限定されない。以下では、監視モジュール23の実行コード(実行ファイル)を用いる構成について説明する。   In the above-described example, whether or not the monitoring module 23 is normal is determined based on the confirmation information transmitted by the monitoring module 23. However, the monitoring module 23 is limited to normal / abnormal determination. Not. Below, the structure using the execution code (execution file) of the monitoring module 23 is demonstrated.

図6は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第4実施を示す説明図である。   FIG. 6 is an explanatory diagram showing a fourth embodiment of the normal / abnormal judgment operation of the monitoring module 23 by the authentication module 33 of the present embodiment.

認証モジュール33は、ノーマル領域20内のメモリ22に展開された監視モジュール23の実行コードを取得する。実行コードは、監視モジュール23の全部でもよく一部でもよい。   The authentication module 33 acquires the execution code of the monitoring module 23 developed in the memory 22 in the normal area 20. The execution code may be all or a part of the monitoring module 23.

認証モジュール33は、取得した実行コードと、セキュア領域30内のセキュアメモリ32に展開した監視モジュール23の実行コードとが同一であるか否かを判定する。実行コードが一致する場合、監視モジュールが正常であると判定することができる。実行コードが一致しない場合、監視モジュールが異常であると判定することができる。   The authentication module 33 determines whether or not the acquired execution code is the same as the execution code of the monitoring module 23 developed in the secure memory 32 in the secure area 30. If the execution codes match, it can be determined that the monitoring module is normal. If the execution codes do not match, it can be determined that the monitoring module is abnormal.

これにより、監視モジュール23の改ざんなどを検出することができる。   Thereby, falsification of the monitoring module 23 can be detected.

図7は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第5実施を示す説明図である。   FIG. 7 is an explanatory diagram showing a fifth embodiment of the normal / abnormal determination operation of the monitoring module 23 by the authentication module 33 of the present embodiment.

認証モジュール33は、ノーマル領域20内のメモリ22に展開された監視モジュール23の実行コードを取得する。認証モジュール33は、取得した実行コードのハッシュ値を算出する。なお、ハッシュ値の算出には、適宜のハッシュ関数を用いることができる。   The authentication module 33 acquires the execution code of the monitoring module 23 developed in the memory 22 in the normal area 20. The authentication module 33 calculates a hash value of the acquired execution code. An appropriate hash function can be used for calculating the hash value.

認証モジュール33は、算出したハッシュ値と、セキュアメモリ32に展開した監視モジュール23の実行コードのハッシュ値とが同一であるか否かを判定する。ハッシュ値が一致する場合、監視モジュールが正常であると判定することができる。ハッシュ値が一致しない場合、監視モジュールが異常であると判定することができる。   The authentication module 33 determines whether the calculated hash value and the hash value of the execution code of the monitoring module 23 developed in the secure memory 32 are the same. If the hash values match, it can be determined that the monitoring module is normal. If the hash values do not match, it can be determined that the monitoring module is abnormal.

これにより、監視モジュール23の改ざんなどを検出することができる。   Thereby, falsification of the monitoring module 23 can be detected.

認証モジュール33は、監視モジュールが23異常であると判定した場合、ノーマル領域20で実行されるリッチOS21を再起動する処理を行う。リッチOS21の再起動を行うことにより、改ざんされたファイルの初期化、不正なファイルの除去などを行うことができ、ノーマル領域20内の監視モジュール23を含むアプリケーション25、26、リッチOS21、ファイルシステム24等の修復することができる。また、ノーマル領域20内で動作するネットワーク通信部12なども初期化することができ、ノーマル領域20の修復を行うことができる。   The authentication module 33 performs a process of restarting the rich OS 21 executed in the normal area 20 when the monitoring module determines that the abnormality is 23. By restarting the rich OS 21, it is possible to initialize a file that has been tampered with, remove an illegal file, and the like. Applications 25 and 26 including the monitoring module 23 in the normal area 20, the rich OS 21, and the file system 24 etc. can be restored. In addition, the network communication unit 12 operating in the normal area 20 can be initialized, and the normal area 20 can be restored.

また、ノーマル領域20がハッキングなどの攻撃を受けた場合、例えば、ノーマル領域20内に不正なアプリケーション又は不正なファイル(正常時には存在しないアプリケーション又はファイル)が導入される。このような場合、監視モジュール23が検知し、認証モジュール33に通知することにより、認証モジュール33は、ノーマル領域20を再起動して修復する(不正なアプリケーション又は不正なファイルを削除する)ことができる。   Further, when the normal area 20 is attacked such as hacking, for example, an unauthorized application or an unauthorized file (an application or file that does not exist at normal time) is introduced into the normal area 20. In such a case, the monitoring module 23 detects and notifies the authentication module 33, so that the authentication module 33 can restart and repair the normal area 20 (delete an unauthorized application or an unauthorized file). it can.

図8及び図9は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定処理の手順の第1実施を示すフローチャートである。認証モジュール33は、監視モジュール23の認証情報を暗号化したデータを取得し(S11)、取得したデータを復号して認証情報を取得する(S12)。認証モジュール33は、認証情報が一致するか否かを判定する(S13)。   FIG. 8 and FIG. 9 are flowcharts showing a first embodiment of the procedure of normality / abnormality determination processing of the monitoring module 23 by the authentication module 33 of this embodiment. The authentication module 33 acquires data obtained by encrypting the authentication information of the monitoring module 23 (S11), decrypts the acquired data, and acquires authentication information (S12). The authentication module 33 determines whether the authentication information matches (S13).

認証情報が一致しない場合(S13でNO)、認証モジュール33は、後述のステップS23の処理を行う。認証情報が一致する場合(S13でYES)、認証モジュール33は、セッション鍵を暗号化したデータを取得し(S14)、取得したデータを復号してセッション鍵を取得する(S15)。   If the authentication information does not match (NO in S13), the authentication module 33 performs a process in step S23 described later. If the authentication information matches (YES in S13), the authentication module 33 acquires data obtained by encrypting the session key (S14), decrypts the acquired data, and acquires the session key (S15).

認証モジュール33は、確認情報をセッション鍵で暗号化したデータを取得し(S16)、取得したデータをセッション鍵で復号して確認情報を取得する(S17)。認証モジュール33は、取得した確認情報をセキュアメモリ32に格納する(S18)。   The authentication module 33 acquires data obtained by encrypting the confirmation information with the session key (S16), and decrypts the acquired data with the session key to obtain confirmation information (S17). The authentication module 33 stores the acquired confirmation information in the secure memory 32 (S18).

認証モジュール33は、確認情報をセッション鍵で暗号化したデータを取得したか否かを判定し(S19)、データを取得していない場合(S19でNO)、直近のデータ取得時点から所定時間経過しているか否かを判定する(S20)。所定時間経過していない場合(S20でNO)、認証モジュール33は、ステップS19の処理を続ける。所定時間経過した場合(S20でYES)、認証モジュール33は、後述のステップS23の処理を行う。   The authentication module 33 determines whether or not the data obtained by encrypting the confirmation information with the session key has been acquired (S19). If the data has not been acquired (NO in S19), a predetermined time has elapsed since the most recent data acquisition time point. It is determined whether or not (S20). If the predetermined time has not elapsed (NO in S20), the authentication module 33 continues the process of step S19. If the predetermined time has elapsed (YES in S20), the authentication module 33 performs a process in step S23 described later.

データを取得した場合(S19でYES)、認証モジュール33は、確認情報が一致するか否かを判定する(S21)。確認情報が一致する場合(S21でYES)、認証モジュール33は、監視モジュール23は正常であると判定し(S22)、後述のステップS25の処理を行う。   When data is acquired (YES in S19), the authentication module 33 determines whether or not the confirmation information matches (S21). If the confirmation information matches (YES in S21), the authentication module 33 determines that the monitoring module 23 is normal (S22), and performs the process of step S25 described later.

確認情報が一致しない場合(S21でNO)、認証モジュール33は、監視モジュール23は異常であると判定し(S23)、リッチOS21を再起動し(S24)、処理を終了するか否かを判定する(S25)。処理を終了しない場合(S25でNO)、認証モジュール33は、ステップS16以降の処理を行う。処理を終了する場合(S25でYES)、認証モジュール33は、処理を終了する。   When the confirmation information does not match (NO in S21), the authentication module 33 determines that the monitoring module 23 is abnormal (S23), restarts the rich OS 21 (S24), and determines whether to end the process. (S25). When the process is not terminated (NO in S25), the authentication module 33 performs the process after step S16. When the process ends (YES in S25), the authentication module 33 ends the process.

図10は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定処理の手順の第2実施を示すフローチャートである。認証モジュール33は、メモリ22に展開された監視モジュール23の実行コードを取得し(S31)、取得した実行コードのハッシュ値を算出する(S32)。   FIG. 10 is a flowchart showing a second embodiment of the procedure of normality / abnormality determination processing of the monitoring module 23 by the authentication module 33 of this embodiment. The authentication module 33 acquires the execution code of the monitoring module 23 developed in the memory 22 (S31), and calculates the hash value of the acquired execution code (S32).

認証モジュール33は、算出したハッシュ値と、セキュアメモリ32に展開していた監視モジュール23の実行コードのハッシュ値とを比較し(S33)、ハッシュ値が一致するか否かを判定する(S34)。ハッシュ値が一致する場合(S34でYES)、認証モジュール33は、監視モジュール23は正常であると判定し(S35)、処理を終了する。   The authentication module 33 compares the calculated hash value with the hash value of the execution code of the monitoring module 23 developed in the secure memory 32 (S33), and determines whether or not the hash values match (S34). . If the hash values match (YES in S34), the authentication module 33 determines that the monitoring module 23 is normal (S35) and ends the process.

ハッシュ値が一致しない場合(S34でNO)、認証モジュール33は、監視モジュール23は異常であると判定し(S36)、リッチOS21を再起動し(S37)、処理を終了する。   If the hash values do not match (NO in S34), the authentication module 33 determines that the monitoring module 23 is abnormal (S36), restarts the rich OS 21 (S37), and ends the process.

上述のように、本実施の形態によれば、ハッキングの難易度を高め、デバイスをより安全な状態に保つことができる。   As described above, according to the present embodiment, it is possible to increase the difficulty level of hacking and keep the device in a safer state.

本実施の形態において、監視モジュール23は、認証情報を保護するため、難読化、動的解析対策などを施すこともできる。これにより、リバースエンジニアリングされた場合、あるいは、監視モジュール23を動作させた場合に、認証情報の内容が解読されることを防止できる。   In the present embodiment, the monitoring module 23 can also take obfuscation, dynamic analysis measures, etc. in order to protect the authentication information. Accordingly, it is possible to prevent the contents of the authentication information from being decoded when reverse engineering is performed or when the monitoring module 23 is operated.

本実施の形態において、監視モジュール23は、監視対象の異常を検知した場合、ログを記録すること、あるいはネットワークを介して外部の端末に異常検知の通知を行うことができる。また、異常検知を認証モジュール33に通知して、ノーマル領域20を再起動させることもできる。   In the present embodiment, when the monitoring module 23 detects an abnormality of the monitoring target, the monitoring module 23 can record a log or notify the external terminal of the abnormality detection via the network. In addition, the abnormality detection can be notified to the authentication module 33 and the normal area 20 can be restarted.

本実施の形態に係るコンピュータプログラムは、コンピュータに、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるためのコンピュータプログラムであって、コンピュータに、前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する処理を実行させる。   A computer program according to the present embodiment is a computer program for causing a computer to execute a required process in a secure execution environment that is virtually separated from the normal execution environment and safer than the normal execution environment. In addition, a process for determining normality / abnormality of a monitoring module that is executed in the normal execution environment and monitors a monitoring target in the normal execution environment is executed.

本実施の形態に係るデバイスは、ノーマル実行環境及び該ノーマル実行環境よりも安全なセキュア実行環境を仮想的に分離して実行環境を提供する仮想化モジュールを備え、本実施の形態に係るコンピュータプログラムを前記セキュア実行環境にインストール可能とする。   A device according to the present embodiment includes a virtualization module that virtually separates a normal execution environment and a secure execution environment safer than the normal execution environment to provide the execution environment, and the computer program according to the present embodiment Can be installed in the secure execution environment.

本実施の形態に係る判定方法は、監視対象を監視する監視モジュールの正常・異常を判定する判定方法であって、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で動作するセキュアモジュールは、前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する。   The determination method according to the present embodiment is a determination method for determining the normality / abnormality of a monitoring module that monitors a monitoring target, which is virtually separated from the normal execution environment and secure execution that is safer than the normal execution environment The secure module that operates in the environment is executed in the normal execution environment, and determines whether the monitoring module that monitors the monitoring target in the normal execution environment is normal or abnormal.

デバイスには、例えば、ハイパーバイザーなどの仮想化技術を用いたモジュールによって仮想的に分離された複数(例えば、二つ)の実行環境が提供されている。一の実行環境は、ノーマル実行環境(ノーマルドメインとも称する)であり、リッチOS、アプリケーションなどが動作するものである。他の実行環境は、セキュア実行環境(セキュアドメインとも称する)であり、ノーマル実行環境と分離され、セキュリティ上より安全な実行環境である。本実施の形態のコンピュータプログラムは、認証モジュールであり、セキュア実行環境で動作する。監視モジュールは、ノーマル実行環境で動作する。   A device is provided with a plurality of (for example, two) execution environments that are virtually separated by a module using a virtualization technology such as a hypervisor. One execution environment is a normal execution environment (also referred to as a normal domain) in which a rich OS, an application, and the like operate. Another execution environment is a secure execution environment (also referred to as a secure domain), which is separated from the normal execution environment and is a safer execution environment. The computer program according to the present embodiment is an authentication module and operates in a secure execution environment. The monitoring module operates in a normal execution environment.

監視モジュールは、ノーマル実行環境内の監視対象を監視する。監視対象は、例えば、ノーマル実行環境で動作するアプリケーション及びリッチOS等から出力されるログファイル(実行履歴、デバッグ情報、アプリケーション間の通信ログなど)、ノーマル実行環境で稼働しているアプリケーション(プロセス)、ネットワークの状態及びネットワークを伝送するパケットの中身などを含む。   The monitoring module monitors the monitoring target in the normal execution environment. The monitoring target is, for example, an application operating in the normal execution environment, a log file output from a rich OS or the like (execution history, debug information, communication log between applications, etc.), an application (process) operating in the normal execution environment , The status of the network and the contents of the packet transmitted over the network.

認証モジュールは、監視モジュールの正常・異常を判定する処理を行う。これにより、監視モジュールが外部からの攻撃に晒されて正常な動作をすることができない場合、監視モジュールの異常を判定することができ、外部からの攻撃を検出することができる。また、認証モジュールは、監視モジュールが動作するノーマル実行環境から分離されたより安全なセキュア実行環境で動作するので、外部からの攻撃に晒される可能性は極めて低く、デバイスをより安全な状態に保つことができる。   The authentication module performs processing for determining whether the monitoring module is normal or abnormal. Thereby, when the monitoring module is exposed to an attack from the outside and cannot operate normally, the abnormality of the monitoring module can be determined and the attack from the outside can be detected. In addition, the authentication module operates in a safer secure execution environment that is separated from the normal execution environment in which the monitoring module operates. Therefore, the authentication module is extremely unlikely to be exposed to external attacks and keeps the device in a more secure state. Can do.

本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが出力する、認証情報を暗号化した情報を取得する処理と、取得した情報を所定の秘密鍵で復号して得られた認証情報及び前記セキュア実行環境内のセキュアメモリに展開した認証情報を照合する処理とを実行させる。   The computer program according to the present embodiment is a computer program for acquiring information obtained by encrypting authentication information output from the monitoring module, and authentication information obtained by decrypting the acquired information with a predetermined secret key. And a process of verifying the authentication information expanded in the secure memory in the secure execution environment.

認証モジュールは、監視モジュールが認証情報を暗号化した情報を出力すると、当該情報を取得する。ノーマル実行環境内のメモリには、予め認証情報、暗号化のための鍵(例えば、公開鍵)が展開されている。監視モジュールは、認証情報を公開鍵で暗号化した情報(データ)を、ハイパーバイザーを介してセキュア実行環境内の認証モジュールに出力する。   When the monitoring module outputs information obtained by encrypting the authentication information, the authentication module acquires the information. Authentication information and a key for encryption (for example, a public key) are developed in advance in a memory in the normal execution environment. The monitoring module outputs information (data) obtained by encrypting the authentication information with the public key to the authentication module in the secure execution environment via the hypervisor.

認証モジュールは、取得した情報を所定の秘密鍵で復号して認証情報を取得すると、取得した認証情報とセキュア実行環境内のセキュアメモリに展開した認証情報とを照合する。両方の認証情報が一致する場合、監視モジュールから取得した認証情報は正当であると判定することができる。また、両方の認証情報が一致しない場合、監視モジュールから取得した認証情報は正当でないと判定することができる。これにより、なりすまし等の不正を防止することができる。   When the authentication module acquires the authentication information by decrypting the acquired information with a predetermined secret key, the authentication module collates the acquired authentication information with the authentication information developed in the secure memory in the secure execution environment. When both pieces of authentication information match, it can be determined that the authentication information acquired from the monitoring module is valid. If both pieces of authentication information do not match, it can be determined that the authentication information acquired from the monitoring module is not valid. Thereby, fraud such as impersonation can be prevented.

本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが繰り返し出力する確認情報を取得する処理と、取得した確認情報に基づいて、前記監視モジュールの正常・異常を判定する処理とを実行させる。   The computer program according to the present embodiment executes a process of acquiring confirmation information repeatedly output by the monitoring module and a process of determining normality / abnormality of the monitoring module based on the acquired confirmation information. Let

認証モジュールは、監視モジュールが繰り返し出力する確認情報を取得する。確認情報の出力は、例えば、10秒に1回、1分に1回の如く周期的でもよく、デバイスのCPUの負荷が増加した場合、あるいは異常の予兆を検知した場合など不定期的でもよい。   The authentication module acquires confirmation information repeatedly output by the monitoring module. The confirmation information may be output periodically, for example, once every 10 seconds, once every minute, or irregularly such as when the load on the CPU of the device increases or when a sign of abnormality is detected. .

認証モジュールは、取得した確認情報に基づいて、監視モジュールの正常・異常を判定する。例えば、確認情報が出力されるタイミングを経過しても、監視モジュールが確認情報を出力しない場合、監視モジュールが異常であると判定することができる。また、監視モジュールが出力した確認情報が、所定の確認情報と異なる場合、監視モジュールが異常であると判定することができる。   The authentication module determines whether the monitoring module is normal or abnormal based on the acquired confirmation information. For example, if the monitoring module does not output the confirmation information even after the timing at which the confirmation information is output, it can be determined that the monitoring module is abnormal. Further, when the confirmation information output by the monitoring module is different from the predetermined confirmation information, it can be determined that the monitoring module is abnormal.

本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが出力する、所定のセッション鍵を暗号化したセッション鍵情報を取得する処理と、取得したセッション鍵情報を所定の秘密鍵で復号してセッション鍵を取得する処理と、前記監視モジュールが出力する、前記所定のセッション鍵で確認情報を暗号化した暗号化確認情報を取得する処理と、取得した暗号化確認情報を取得したセッション鍵で復号して確認情報を取得する処理とを実行させる。   The computer program according to the present embodiment obtains session key information obtained by encrypting a predetermined session key output from the monitoring module, and decrypts the acquired session key information with a predetermined secret key. A process for obtaining a session key, a process for obtaining encryption confirmation information obtained by encrypting the confirmation information with the predetermined session key, and a session key for obtaining the obtained encryption confirmation information. A process of decoding and acquiring confirmation information is executed.

認証モジュールは、監視モジュールが所定のセッション鍵を暗号化したセッション鍵情報を出力すると、当該セッション鍵情報を取得する。セッション鍵の暗号化は、ノーマル実行環境内のメモリに予め展開された鍵(例えば、公開鍵)を用いることができる。   When the monitoring module outputs session key information obtained by encrypting a predetermined session key, the authentication module acquires the session key information. For the encryption of the session key, a key (for example, a public key) previously developed in a memory in the normal execution environment can be used.

認証モジュールは、取得したセッション鍵情報を所定の秘密鍵で復号してセッション鍵を取得する。これにより、認証モジュールと監視モジュールとは、お互いに共通のセッション鍵を有することができ、以後の通信に使用することができる。   The authentication module acquires the session key by decrypting the acquired session key information with a predetermined secret key. Accordingly, the authentication module and the monitoring module can have a common session key, and can be used for subsequent communication.

認証モジュールは、監視モジュールが所定のセッション鍵で確認情報を暗号化した暗号化確認情報を出力すると、当該暗号化確認情報を取得する。認証モジュールは、取得した暗号化確認情報を取得したセッション鍵で復号して確認情報を取得する。   When the monitoring module outputs the encryption confirmation information obtained by encrypting the confirmation information with a predetermined session key, the authentication module acquires the encryption confirmation information. The authentication module obtains the confirmation information by decrypting the obtained encryption confirmation information with the obtained session key.

これにより、確認情報がセッション鍵で保護されるので、認証情報の盗聴や改ざんを防止することができる。   As a result, the confirmation information is protected by the session key, so that the authentication information can be prevented from being wiretapped or falsified.

本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが出力する、出力の都度所定のアルゴリズムで更新される確認情報を前記所定のセッション鍵で暗号化した暗号化確認情報を取得する処理と、取得した暗号化確認情報を前記取得したセッション鍵で復号して確認情報を取得する処理と、取得した確認情報が、前記所定のアルゴリズムで更新されているか否かを判定する処理と、前記所定のアルゴリズムで更新されていない場合、前記監視モジュールが異常であると判定する処理とを実行させる。   The computer program according to the present embodiment obtains, in the computer, encrypted confirmation information obtained by encrypting confirmation information output by the monitoring module and updated with a predetermined algorithm every time output with the predetermined session key. Processing for decrypting the obtained encryption confirmation information with the obtained session key to obtain confirmation information, processing for determining whether the obtained confirmation information is updated by the predetermined algorithm, If it is not updated with a predetermined algorithm, a process for determining that the monitoring module is abnormal is executed.

認証モジュールは、監視モジュールが出力の都度所定のアルゴリズムで更新される確認情報を所定のセッション鍵で暗号化した暗号化確認情報を出力すると、当該暗号化確認情報を取得する。すなわち、監視モジュールは、暗号化確認情報を出力する場合、その都度、所定のアルゴリズムで確認情報を更新するので、出力の都度、確認情報は更新される。   The authentication module obtains the encryption confirmation information when the monitoring module outputs the encryption confirmation information obtained by encrypting the confirmation information updated with a predetermined algorithm each time it is output with a predetermined session key. That is, since the monitoring module updates the confirmation information with a predetermined algorithm each time the encryption confirmation information is output, the confirmation information is updated each time it is output.

認証モジュールは、取得した暗号化確認情報を取得したセッション鍵で復号して確認情報を取得する。認証モジュールは、取得した確認情報が、所定のアルゴリズムで更新されているか否かを判定し、所定のアルゴリズムで更新されていない場合、監視モジュールが異常であると判定する。   The authentication module obtains the confirmation information by decrypting the obtained encryption confirmation information with the obtained session key. The authentication module determines whether or not the acquired confirmation information has been updated with a predetermined algorithm, and determines that the monitoring module is abnormal if it has not been updated with a predetermined algorithm.

監視モジュールが正常であれば、同じアルゴリズムで更新される確認情報は同一となる。確認情報が同一でない場合には、監視モジュールが正しく確認情報を更新することができていないので、監視モジュールが異常であると判定することができる。認証情報の更新を行うことにより、リプレイ攻撃を防止することができる。   If the monitoring module is normal, the confirmation information updated by the same algorithm is the same. If the confirmation information is not the same, the monitoring module cannot correctly update the confirmation information, so it can be determined that the monitoring module is abnormal. Replay attacks can be prevented by updating the authentication information.

本実施の形態に係るコンピュータプログラムは、コンピュータに、前記ノーマル実行環境内のメモリに展開された前記監視モジュールの実行コードを取得する処理と、取得した実行コードと、前記セキュア実行環境内のセキュアメモリに展開した前記監視モジュールの実行コードとが同一であるか否かを判定する処理と、実行コード同士が同一でないと判定した場合、前記監視モジュールが異常であると判定する処理とを実行させる。   The computer program according to the present embodiment includes a computer for acquiring the execution code of the monitoring module expanded in the memory in the normal execution environment, the acquired execution code, and the secure memory in the secure execution environment. The process for determining whether or not the execution code of the monitoring module developed in the same is the same, and the process for determining that the monitoring module is abnormal when it is determined that the execution codes are not the same are executed.

認証モジュールは、ノーマル実行環境内のメモリに展開された監視モジュールの実行コードを取得する。実行コードは、監視モジュールの全部でもよく一部でもよい。   The authentication module acquires the execution code of the monitoring module expanded in the memory in the normal execution environment. The execution code may be all or part of the monitoring module.

認証モジュールは、取得した実行コードと、セキュア実行環境内のセキュアメモリに展開した監視モジュールの実行コードとが同一であるか否かを判定し、実行コード同士が同一でないと判定した場合、監視モジュールが異常であると判定する。   The authentication module determines whether or not the acquired execution code is the same as the execution code of the monitoring module deployed in the secure memory in the secure execution environment. Is determined to be abnormal.

これにより、監視モジュールの改ざんなどを検出することができる。   As a result, falsification of the monitoring module can be detected.

本実施の形態に係るコンピュータプログラムは、コンピュータに、取得した実行コードのハッシュ値を算出する処理と、算出したハッシュ値と、前記セキュア実行環境内のセキュアメモリに展開した前記監視モジュールの実行コードのハッシュ値とが同一であるか否かを判定する処理と、ハッシュ値同士が同一でないと判定した場合、前記監視モジュールが異常であると判定する処理とを実行させる。   The computer program according to the present embodiment includes a computer that calculates a hash value of the acquired execution code, a calculated hash value, and an execution code of the monitoring module that is expanded in a secure memory in the secure execution environment. A process for determining whether or not the hash values are the same and a process for determining that the monitoring module is abnormal when it is determined that the hash values are not the same are executed.

認証モジュールは、取得した実行コードのハッシュ値を算出する。   The authentication module calculates a hash value of the acquired execution code.

認証モジュールは、算出したハッシュ値と、セキュア実行環境内のセキュアメモリに展開した監視モジュールの実行コードのハッシュ値とが同一であるか否かを判定し、ハッシュ値同士が同一でないと判定した場合、監視モジュールが異常であると判定する。   When the authentication module determines whether the calculated hash value is the same as the hash value of the execution code of the monitoring module deployed in the secure memory in the secure execution environment, and if the hash values are not the same It is determined that the monitoring module is abnormal.

これにより、監視モジュールの改ざんなどを検出することができる。   As a result, falsification of the monitoring module can be detected.

本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが異常であると判定した場合、前記ノーマル実行環境で実行されるOSを再起動する処理を実行させる。   The computer program according to the present embodiment causes the computer to execute a process for restarting the OS executed in the normal execution environment when it is determined that the monitoring module is abnormal.

認証モジュールは、監視モジュールが異常であると判定した場合、ノーマル実行環境で実行されるOSを再起動する処理を行う。OSの再起動を行うことにより、改ざんされたファイルの初期化、不正なファイルの除去などを行うことができ、ノーマル実行環境内の監視モジュールを含むアプリケーション、OS等の修復することができる。   If it is determined that the monitoring module is abnormal, the authentication module performs processing for restarting the OS executed in the normal execution environment. By restarting the OS, it is possible to initialize a falsified file, remove an illegal file, etc., and restore an application, OS, etc. including a monitoring module in the normal execution environment.

10 ハイパーバイザー
11 CPU
12 ネットワーク通信部
20 ノーマル領域
21 リッチOS
22 メモリ
23 監視モジュール
24 ファイルシステム
25、26 アプリケーション
30 セキュア領域
31 セキュアOS
32 セキュアメモリ
33 認証モジュール
10 Hypervisor 11 CPU
12 Network communication part 20 Normal area 21 Rich OS
22 memory 23 monitoring module 24 file system 25, 26 application 30 secure area 31 secure OS
32 Secure memory 33 Authentication module

Claims (10)

コンピュータに、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるためのコンピュータプログラムであって、
コンピュータに、
前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する処理を実行させるコンピュータプログラム。
A computer program for causing a computer to execute a required process in a secure execution environment that is virtually separated from the normal execution environment and safer than the normal execution environment,
On the computer,
A computer program that is executed in the normal execution environment and executes processing for determining normality / abnormality of a monitoring module that monitors a monitoring target in the normal execution environment.
コンピュータに、
前記監視モジュールが出力する、認証情報を暗号化した情報を取得する処理と、
取得した情報を所定の秘密鍵で復号して得られた認証情報及び前記セキュア実行環境内のセキュアメモリに展開した認証情報を照合する処理と
を実行させる請求項1に記載のコンピュータプログラム。
On the computer,
Processing for obtaining information obtained by encrypting the authentication information output by the monitoring module;
The computer program according to claim 1, wherein the authentication information obtained by decrypting the acquired information with a predetermined secret key and the verification process of the authentication information developed in the secure memory in the secure execution environment are executed.
コンピュータに、
前記監視モジュールが繰り返し出力する確認情報を取得する処理と、
取得した確認情報に基づいて、前記監視モジュールの正常・異常を判定する処理と
を実行させる請求項1又は請求項2に記載のコンピュータプログラム。
On the computer,
Processing for acquiring confirmation information repeatedly output by the monitoring module;
The computer program according to claim 1, wherein the computer program executes a process of determining whether the monitoring module is normal or abnormal based on the acquired confirmation information.
コンピュータに、
前記監視モジュールが出力する、所定のセッション鍵を暗号化したセッション鍵情報を取得する処理と、
取得したセッション鍵情報を所定の秘密鍵で復号してセッション鍵を取得する処理と、
前記監視モジュールが出力する、前記所定のセッション鍵で確認情報を暗号化した暗号化確認情報を取得する処理と、
取得した暗号化確認情報を取得したセッション鍵で復号して確認情報を取得する処理と
を実行させる請求項3に記載のコンピュータプログラム。
On the computer,
A process of acquiring session key information obtained by encrypting a predetermined session key output by the monitoring module;
A process of obtaining the session key by decrypting the obtained session key information with a predetermined secret key;
A process of acquiring encrypted confirmation information obtained by encrypting the confirmation information with the predetermined session key output by the monitoring module;
The computer program according to claim 3, wherein the obtained encryption confirmation information is decrypted with the obtained session key to obtain confirmation information.
コンピュータに、
前記監視モジュールが出力する、出力の都度所定のアルゴリズムで更新される確認情報を前記所定のセッション鍵で暗号化した暗号化確認情報を取得する処理と、
取得した暗号化確認情報を前記取得したセッション鍵で復号して確認情報を取得する処理と、
取得した確認情報が、前記所定のアルゴリズムで更新されているか否かを判定する処理と、
前記所定のアルゴリズムで更新されていない場合、前記監視モジュールが異常であると判定する処理と
を実行させる請求項4に記載のコンピュータプログラム。
On the computer,
The process of obtaining the encrypted confirmation information obtained by encrypting the confirmation information, which is output by the monitoring module, and updated with a predetermined algorithm each time the output is performed, with the predetermined session key;
Processing for decrypting the obtained encryption confirmation information with the obtained session key to obtain confirmation information;
A process for determining whether the acquired confirmation information is updated by the predetermined algorithm;
The computer program according to claim 4, wherein, when not updated by the predetermined algorithm, a process of determining that the monitoring module is abnormal is executed.
コンピュータに、
前記ノーマル実行環境内のメモリに展開された前記監視モジュールの実行コードを取得する処理と、
取得した実行コードと、前記セキュア実行環境内のセキュアメモリに展開した前記監視モジュールの実行コードとが同一であるか否かを判定する処理と、
実行コード同士が同一でないと判定した場合、前記監視モジュールが異常であると判定する処理と
を実行させる請求項1から請求項5のいずれか一項に記載のコンピュータプログラム。
On the computer,
Processing to obtain the execution code of the monitoring module expanded in the memory in the normal execution environment;
A process for determining whether or not the acquired execution code is the same as the execution code of the monitoring module expanded in the secure memory in the secure execution environment;
The computer program according to any one of claims 1 to 5, wherein when the execution codes are determined not to be the same, a process of determining that the monitoring module is abnormal is executed.
コンピュータに、
取得した実行コードのハッシュ値を算出する処理と、
算出したハッシュ値と、前記セキュア実行環境内のセキュアメモリに展開した前記監視モジュールの実行コードのハッシュ値とが同一であるか否かを判定する処理と、
ハッシュ値同士が同一でないと判定した場合、前記監視モジュールが異常であると判定する処理と
を実行させる請求項6に記載のコンピュータプログラム。
On the computer,
A process of calculating a hash value of the acquired execution code;
A process of determining whether or not the calculated hash value and the hash value of the execution code of the monitoring module developed in the secure memory in the secure execution environment are the same;
The computer program according to claim 6, wherein when it is determined that the hash values are not the same, a process for determining that the monitoring module is abnormal is executed.
コンピュータに、
前記監視モジュールが異常であると判定した場合、前記ノーマル実行環境で実行されるOSを再起動する処理を実行させる請求項1から請求項7のいずれか一項に記載のコンピュータプログラム。
On the computer,
The computer program according to any one of claims 1 to 7, wherein when the monitoring module is determined to be abnormal, a process for restarting an OS executed in the normal execution environment is executed.
ノーマル実行環境及び該ノーマル実行環境よりも安全なセキュア実行環境を仮想的に分離して実行環境を提供する仮想化モジュールを備え、請求項1から請求項8のいずれか一項に記載のコンピュータプログラムを前記セキュア実行環境にインストール可能とするデバイス。   The computer program according to any one of claims 1 to 8, comprising a virtualization module that virtually separates a normal execution environment and a secure execution environment safer than the normal execution environment to provide the execution environment. That can be installed in the secure execution environment. 監視対象を監視する監視モジュールの正常・異常を判定する判定方法であって、
ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で動作するセキュアモジュールは、
前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する判定方法。
A determination method for determining normality / abnormality of a monitoring module that monitors a monitoring target,
A secure module that is virtually separated from the normal execution environment and operates in a secure execution environment that is safer than the normal execution environment,
A determination method for determining normality / abnormality of a monitoring module that is executed in the normal execution environment and monitors a monitoring target in the normal execution environment.
JP2017181637A 2017-09-21 2017-09-21 Computer program, device and determining method Pending JP2019057167A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017181637A JP2019057167A (en) 2017-09-21 2017-09-21 Computer program, device and determining method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017181637A JP2019057167A (en) 2017-09-21 2017-09-21 Computer program, device and determining method

Publications (1)

Publication Number Publication Date
JP2019057167A true JP2019057167A (en) 2019-04-11

Family

ID=66107547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017181637A Pending JP2019057167A (en) 2017-09-21 2017-09-21 Computer program, device and determining method

Country Status (1)

Country Link
JP (1) JP2019057167A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021014539A1 (en) * 2019-07-22 2021-01-28
JP2021056644A (en) * 2019-09-27 2021-04-08 大日本印刷株式会社 Device and computer program and monitoring method
WO2022254519A1 (en) * 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Monitoring device, monitoring system, and monitoring method
JP7296556B1 (en) * 2022-09-27 2023-06-23 パナソニックIpマネジメント株式会社 Information processing device, control method and program for information processing device
JP7325072B1 (en) * 2022-09-14 2023-08-14 パナソニックIpマネジメント株式会社 Information processing device, control method and program for information processing device
WO2024057571A1 (en) * 2022-09-14 2024-03-21 パナソニックオートモーティブシステムズ株式会社 Information processing device, method for controlling information processing device, and program
WO2024070001A1 (en) * 2022-09-27 2024-04-04 パナソニックオートモーティブシステムズ株式会社 Information processing device, method for controlling information processing device, and program

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021014539A1 (en) * 2019-07-22 2021-01-28
WO2021014539A1 (en) * 2019-07-22 2021-01-28 日本電気株式会社 Security management device, security management method, and non-transient computer-readable medium
JP7290166B2 (en) 2019-07-22 2023-06-13 日本電気株式会社 SECURITY MANAGEMENT DEVICE, SECURITY MANAGEMENT METHOD, AND PROGRAM
JP2021056644A (en) * 2019-09-27 2021-04-08 大日本印刷株式会社 Device and computer program and monitoring method
JP7352158B2 (en) 2019-09-27 2023-09-28 大日本印刷株式会社 Devices, computer programs and monitoring methods
JP2023002832A (en) * 2021-05-31 2023-01-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Monitoring device, monitoring system, and monitoring method
JP7189397B1 (en) * 2021-05-31 2022-12-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ MONITORING DEVICE, MONITORING SYSTEM AND MONITORING METHOD
JP7253663B2 (en) 2021-05-31 2023-04-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ MONITORING DEVICE, MONITORING SYSTEM AND MONITORING METHOD
WO2022255247A1 (en) * 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Monitoring device, monitoring system, and monitoring method
WO2022254519A1 (en) * 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Monitoring device, monitoring system, and monitoring method
JP7325072B1 (en) * 2022-09-14 2023-08-14 パナソニックIpマネジメント株式会社 Information processing device, control method and program for information processing device
JP7411902B1 (en) 2022-09-14 2024-01-12 パナソニックIpマネジメント株式会社 Information processing device, control method and program for information processing device
WO2024057571A1 (en) * 2022-09-14 2024-03-21 パナソニックオートモーティブシステムズ株式会社 Information processing device, method for controlling information processing device, and program
JP7296556B1 (en) * 2022-09-27 2023-06-23 パナソニックIpマネジメント株式会社 Information processing device, control method and program for information processing device
WO2024070001A1 (en) * 2022-09-27 2024-04-04 パナソニックオートモーティブシステムズ株式会社 Information processing device, method for controlling information processing device, and program

Similar Documents

Publication Publication Date Title
Kolodenker et al. Paybreak: Defense against cryptographic ransomware
CN110799941B (en) Anti-theft and tamper-proof data protection
JP2019057167A (en) Computer program, device and determining method
US10367834B2 (en) Systems and methods for implementing intrusion prevention
Kim et al. Predictability of Android OpenSSL's pseudo random number generator
EP2887576B1 (en) Software key updating method and device
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
US20170034189A1 (en) Remediating ransomware
CN112074836A (en) Apparatus and method for protecting data through trusted execution environment
Xu et al. Data-provenance verification for secure hosts
EP3270318B1 (en) Dynamic security module terminal device and method for operating same
TWI669626B (en) Processing method, server and client for preventing copy attacks
CN112257086B (en) User privacy data protection method and electronic equipment
Ling et al. Secure boot, trusted boot and remote attestation for ARM TrustZone-based IoT Nodes
US11403428B2 (en) Protecting integrity of log data
CN111614467B (en) System backdoor defense method and device, computer equipment and storage medium
Banescu et al. Software-based protection against changeware
US10635826B2 (en) System and method for securing data in a storage medium
KR20110131627A (en) Apparatus for detecting malicious code using structure and characteristic of file, and terminal thereof
US20150172310A1 (en) Method and system to identify key logging activities
CN113127873A (en) Credible measurement system of fortress machine and electronic equipment
AU2013403029B2 (en) CRM security core
Qin et al. RIPTE: runtime integrity protection based on trusted execution for IoT device
CN116956298A (en) Application running environment detection method and device
CN108228219B (en) Method and device for verifying BIOS validity during in-band refreshing of BIOS