Nothing Special   »   [go: up one dir, main page]

JP5346608B2 - Information processing apparatus and file verification system - Google Patents

Information processing apparatus and file verification system Download PDF

Info

Publication number
JP5346608B2
JP5346608B2 JP2009026589A JP2009026589A JP5346608B2 JP 5346608 B2 JP5346608 B2 JP 5346608B2 JP 2009026589 A JP2009026589 A JP 2009026589A JP 2009026589 A JP2009026589 A JP 2009026589A JP 5346608 B2 JP5346608 B2 JP 5346608B2
Authority
JP
Japan
Prior art keywords
kernel
user application
hash value
program
area
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.)
Expired - Fee Related
Application number
JP2009026589A
Other languages
Japanese (ja)
Other versions
JP2010182196A (en
Inventor
敬祐 竹森
隆将 磯原
優 三宅
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
Original Assignee
KDDI Corp
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 filed Critical KDDI Corp
Priority to JP2009026589A priority Critical patent/JP5346608B2/en
Publication of JP2010182196A publication Critical patent/JP2010182196A/en
Application granted granted Critical
Publication of JP5346608B2 publication Critical patent/JP5346608B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、セキュリティの向上を図った情報処理装置に関する。また、本発明は、本情報処理装置内のファイルの完全性を検証するファイル検証システムにも関する。   The present invention relates to an information processing apparatus that improves security. The present invention also relates to a file verification system that verifies the integrity of a file in the information processing apparatus.

公開サーバへ侵入し、公開サーバ内のデータやアプリケーションを改竄する事件が多発している。多くの公開サーバはデータセンタで運用されており、サーバ管理者は、リモートアクセスによって公開サーバにアクセスして検証用アプリケーションを起動し、検証用アプリケーションが出力する検証結果によって公開サーバ内の侵入の痕跡や改竄の有無を検証(リモート検証)する。   There have been many incidents of intrusion into public servers and tampering with data and applications in public servers. Many public servers are operated in the data center, and the server administrator accesses the public server by remote access, starts the verification application, and the verification result output from the verification application shows the trace of intrusion in the public server. Verify whether or not tampering (remote verification).

しかし、一旦サーバへの侵入を許してしまうと、Rootkitをカーネルに埋め込んで応答を偽る攻撃や、検証用アプリケーションを改竄して応答を偽る攻撃、検証結果を改竄する攻撃など、検証結果の完全性を担保できない問題がある。これに対して、昨今のサーバの多くには、Trusted Platform Module(TPM)と呼ばれる、耐タンパ性を有するチップが搭載されており、サーバの起動時にカーネルとアプリケーションの完全性(改竄されていないこと)をリモート検証する仕組みはあった。   However, once the intrusion to the server is allowed, the integrity of the verification result, such as an attack that embeds Rootkit in the kernel and falsifies the response, an attack that falsifies the response by falsifying the verification application, or an attack that falsifies the verification result There is a problem that cannot be secured. On the other hand, many modern servers have a tamper-resistant chip called Trusted Platform Module (TPM), and the integrity of the kernel and the application (not tampered) at server startup. ) Was a remote verification mechanism.

TPMは、外部からアクセスできない領域を持ったチップであり、その安全な領域に暗号鍵や電子署名用のプログラムが保存されている。TPMは、ホストが起動するタイミングで、カーネルとアプリケーケーションの状態をハッシュ値として保存し、リモートアクセスによる要求に従い、電子署名を施したハッシュ値を返信する。これによって、リモートアクセスしたサーバ管理者は起動時のホストの状態を把握することができる。TPMが実行する処理は、サーバのカーネルから独立している。これによって、カーネルが改竄された場合でも、その影響を受けない仕組みが実現されている。   The TPM is a chip having an area that cannot be accessed from the outside, and an encryption key and an electronic signature program are stored in the secure area. The TPM stores the state of the kernel and application as a hash value at the timing when the host starts, and returns a hash value with an electronic signature in accordance with a request by remote access. As a result, the remotely accessed server administrator can grasp the state of the host at the time of activation. The processing executed by TPM is independent of the server kernel. As a result, even if the kernel is tampered with, a mechanism that is not affected by it is realized.

また、稼働中のカーネルの完全性を保証する仕組みとして、SecVisor(非特許文献1参照)と呼ばれる技術がある。SecVisorは、メモリ上で稼動中のカーネル領域に対するユーザ空間(ユーザアプリケーション)からのアクセスを禁止する仕組みを実現している。さらに、SecVisorは、カーネルの起動時にカーネルの状態を検証し、カーネルの完全性が確認された場合にのみ起動処理を継続する仕組みも持つ。したがって、SecVisorによって、起動時ならびに稼動中のカーネルの完全性を保証することができる。   As a mechanism for guaranteeing the integrity of a running kernel, there is a technique called SecVisor (see Non-Patent Document 1). SecVisor implements a mechanism that prohibits access from the user space (user application) to the kernel area running on the memory. Furthermore, SecVisor has a mechanism that verifies the state of the kernel when the kernel is booted and continues the booting process only when the integrity of the kernel is confirmed. Thus, SecVisor can guarantee the integrity of the booted and running kernel.

また、ユーザアプリケーションの完全性を保証する仕組みとして、DigSig(非特許文献2参照)と呼ばれる技術がある。DigSigは、ユーザアプリケーションに電子署名を施しておき、アプリケーションの起動時に、電子署名による認証を行うことで、信頼された完全なアプリケーションのみを起動させる制御を実現している。   As a mechanism for guaranteeing the integrity of a user application, there is a technique called DigSig (see Non-Patent Document 2). DigSig implements control that activates only a trusted complete application by applying an electronic signature to a user application and authenticating with the electronic signature when the application is activated.

A. Seshadri, M. Luk, N. Qu, and A. Perrig, “SecVisor: A Tiny Hypervisor to Provide Lifetime Kernel Code Integrity for Commodity OSes,” 21st ACM Symposium on Operating Systems Principles, October, 2007A. Seshadri, M. Luk, N. Qu, and A. Perrig, “SecVisor: A Tiny Hypervisor to Provide Lifetime Kernel Code Integrity for Commodity OSes,” 21st ACM Symposium on Operating Systems Principles, October, 2007 A. Apvrille, M. Pourzandi, D. Gordon, V. Roy, "Stop Malicious Code Execution at Kernel Level," Linux World, Vol.2, No.1, January 2004A. Apvrille, M. Pourzandi, D. Gordon, V. Roy, "Stop Malicious Code Execution at Kernel Level," Linux World, Vol.2, No.1, January 2004

しかし、TPMでは、起動時のみしかカーネルとアプリケーションの完全性を保証することができず、稼動中のサーバに対するバッファオーバフロー攻撃などによる侵入を受けた場合に、カーネルとアプリケーションの完全性を保証できない。また、SecVisorでは、カーネルの完全性を常に担保できるものの、ユーザアプリケーションの完全性を保証できない。また、DigSigでは、起動時のアプリケーションの完全性は保証できるものの、カーネルの完全性を保証できない。   However, TPM can guarantee the integrity of the kernel and the application only at the time of startup, and cannot guarantee the integrity of the kernel and the application when receiving an intrusion due to a buffer overflow attack on a running server. SecVisor can always guarantee the integrity of the kernel, but cannot guarantee the integrity of the user application. DigSig can guarantee the integrity of the application at startup, but cannot guarantee the integrity of the kernel.

本発明は、上述した課題に鑑みてなされたものであって、完全性が保証されたカーネルから、完全性が保証されたユーザアプリケーションを起動することができる情報処理装置およびファイル検証システムを提供することを目的とする。   The present invention has been made in view of the above-described problems, and provides an information processing apparatus and a file verification system capable of starting a user application whose integrity is guaranteed from a kernel whose integrity is guaranteed. For the purpose.

本発明は、上記の課題を解決するためになされたもので、OSのカーネルおよびユーザアプリケーションのプログラムを記憶するプログラム記憶手段と、前記カーネルのプログラムが格納されるカーネル領域と、前記ユーザアプリケーションのプログラムが格納されるユーザ領域とを有するメモリと、前記カーネルの起動時に当該カーネルの完全性を検証するカーネル検証手段と、前記メモリに格納されたプログラムに従って処理を実行するCPUと、前記ユーザアプリケーションから前記カーネル領域に対するデータの書き込みを禁止する禁止手段と、を備え、前記CPUは、前記カーネル検証手段によって、前記カーネルが改竄されていないことが確認できた場合に、前記カーネルのプログラムを前記プログラム記憶手段から前記カーネル領域に読み込んで前記カーネルを起動する処理と、前記カーネルによって、前記ユーザアプリケーションの起動時に前記ユーザアプリケーションの完全性を検証し、前記ユーザアプリケーションが改竄されていないことが確認できた場合に、前記ユーザアプリケーションのプログラムを前記プログラム記憶手段から前記ユーザ領域に読み込んで前記ユーザアプリケーションを起動する処理と、を実行することを特徴とする情報処理装置である。   The present invention has been made to solve the above-described problems, and includes program storage means for storing an OS kernel and a user application program, a kernel area for storing the kernel program, and the user application program. A memory having a user area in which is stored, a kernel verification unit that verifies the integrity of the kernel when the kernel is started, a CPU that executes processing according to a program stored in the memory, and the user application And prohibiting means for prohibiting data writing to a kernel area, and when the CPU can confirm that the kernel has not been tampered with by the kernel verifying means, the CPU stores the program of the kernel in the program storing means. To the kernel area And starting the kernel, and verifying the integrity of the user application when the user application is started by the kernel, and confirming that the user application has not been tampered with. An information processing apparatus that executes a process of reading a program from the program storage unit into the user area and starting the user application.

また、本発明の情報処理装置は、ファイルを記憶するファイル記憶手段をさらに有し、前記CPUはさらに、前記ユーザアプリケーションによって、前記ファイルのハッシュ値を算出する処理を実行することを特徴とする。   The information processing apparatus according to the present invention further includes file storage means for storing a file, and the CPU further executes processing for calculating a hash value of the file by the user application.

また、本発明の情報処理装置において、前記CPUはさらに、前記カーネルによって、前記ハッシュ値に電子署名を施す処理を実行することを特徴とする。   In the information processing apparatus according to the present invention, the CPU further executes processing for applying an electronic signature to the hash value by the kernel.

また、本発明は、情報処理装置とファイル検証装置を備えたファイル検証システムであって、前記情報処理装置は、OSのカーネルおよびユーザアプリケーションのプログラムを記憶するプログラム記憶手段と、前記カーネルのプログラムが格納されるカーネル領域と、前記ユーザアプリケーションのプログラムが格納されるユーザ領域とを有するメモリと、前記カーネルの起動時に当該カーネルの完全性を検証するカーネル検証手段と、前記メモリに格納されたプログラムに従って処理を実行するCPUと、前記ユーザアプリケーションから前記カーネル領域に対するデータの書き込みを禁止する禁止手段と、ファイルを記憶するファイル記憶手段と、を備え、前記CPUは、前記カーネル検証手段によって、前記カーネルが改竄されていないことが確認できた場合に、前記カーネルのプログラムを前記プログラム記憶手段から前記カーネル領域に読み込んで前記カーネルを起動する処理と、前記カーネルによって、前記ユーザアプリケーションの起動時に前記ユーザアプリケーションの完全性を検証し、前記ユーザアプリケーションが改竄されていないことが確認できた場合に、前記ユーザアプリケーションのプログラムを前記プログラム記憶手段から前記ユーザ領域に読み込んで前記ユーザアプリケーションを起動する処理と、前記ユーザアプリケーションによって、前記ファイルのハッシュ値を算出する処理と、前記カーネルによって、前記ハッシュ値に電子署名を施す処理と、前記ユーザアプリケーションによって、前記ハッシュ値と前記電子署名を外部の端末へ送信する処理と、を実行し、前記ファイル検証装置は、前記情報処理装置から前記ハッシュ値と前記電子署名を受信する受信手段と、前記ハッシュ値に基づいて前記ファイルの完全性を検証する第1の検証手段と、前記電子署名に基づいて前記ハッシュ値の完全性を検証する第2の検証手段と、を備えたことを特徴とするファイル検証システムである。   The present invention is also a file verification system including an information processing apparatus and a file verification apparatus, the information processing apparatus comprising: a program storage unit that stores an OS kernel and a user application program; and the kernel program According to the program stored in the memory, a memory having a kernel area to be stored, a user area in which the program of the user application is stored, kernel verification means for verifying the integrity of the kernel when the kernel is started A CPU that executes processing; a prohibiting unit that prohibits writing of data to the kernel area from the user application; and a file storage unit that stores a file. Not being tampered with If it is confirmed, the process of reading the kernel program from the program storage unit into the kernel area and starting the kernel, and the kernel verifies the integrity of the user application when the user application is started, When it is confirmed that the user application has not been tampered with, a process of reading the user application program from the program storage unit into the user area and starting the user application; A process of calculating a hash value; a process of applying an electronic signature to the hash value by the kernel; and a process of transmitting the hash value and the electronic signature to an external terminal by the user application. The file verification apparatus executes a reception unit that receives the hash value and the electronic signature from the information processing apparatus, a first verification unit that verifies the integrity of the file based on the hash value, and A file verification system comprising: second verification means for verifying the integrity of the hash value based on an electronic signature.

本発明によれば、カーネルが改竄されていないことが確認できた場合にカーネルが起動され、カーネルの稼働中は、カーネル領域に対するユーザアプリケーションからのアクセスが禁止されるため、起動時および稼働中のカーネルの完全性が保証される。また、完全性の保証されたカーネルによって、ユーザアプリケーションが改竄されていないことが確認できた場合にユーザアプリケーションが起動されるので、起動時のユーザアプリケーションの完全性が保証される。したがって、完全性が保証されたカーネルから、完全性が保証されたユーザアプリケーションを起動することができる。   According to the present invention, when it is confirmed that the kernel has not been tampered with, the kernel is started, and access from the user application to the kernel area is prohibited while the kernel is running. Kernel integrity is guaranteed. In addition, since it is confirmed that the user application has not been tampered with by the kernel whose integrity is guaranteed, the integrity of the user application at the time of activation is guaranteed. Therefore, it is possible to start a user application whose integrity is guaranteed from a kernel whose integrity is guaranteed.

本発明の一実施形態による情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus by one Embodiment of this invention. 本発明の一実施形態において、カーネルを起動するときの処理の様子を示す参考図である。FIG. 6 is a reference diagram illustrating a state of processing when a kernel is activated in an embodiment of the present invention. 完全性が確認されたカーネルからユーザアプリケーションを起動するときの処理の様子を示す参考図である。It is a reference figure which shows the mode of a process when starting a user application from the kernel by which completeness was confirmed. 本発明の一実施形態において、カーネル領域へのアクセスを禁止する処理の様子を示す参考図である。FIG. 10 is a reference diagram illustrating a process of prohibiting access to a kernel area in an embodiment of the present invention. 本発明の一実施形態において、カーネル領域へのアクセスを禁止する処理の様子を示す参考図である。FIG. 10 is a reference diagram illustrating a process of prohibiting access to a kernel area in an embodiment of the present invention. 本発明の一実施形態において、検証用アプリケーションがシステムファイルの状態を確認するときの処理の様子を示す参考図である。In one Embodiment of this invention, it is a reference figure which shows the mode of a process when the application for verification confirms the state of a system file.

以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の一実施形態による情報処理装置の構成を示している。図1に示す情報処理装置は、HDD(ハードディスクドライブ)10、メモリ11、CPU12、DMA13、メモリ管理部14、カーネル起動制御部15を備えて構成されている。これらの構成はバス20に接続されている。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 shows the configuration of an information processing apparatus according to an embodiment of the present invention. The information processing apparatus shown in FIG. 1 includes an HDD (Hard Disk Drive) 10, a memory 11, a CPU 12, a DMA 13, a memory management unit 14, and a kernel activation control unit 15. These components are connected to the bus 20.

HDD10は、OS(オペレーティングシステム)の根幹をなすカーネルが実行する処理を規定するカーネルプログラムや、OSの動作に必要なシステムファイル、各種アプリケーションが実行する処理を規定するユーザアプリケーションプログラム等を記憶する。メモリ11は、CPU12が実行するプログラムや、演算に必要なデータを一時的に記憶する。メモリ11は、カーネルプログラムが格納されるカーネル領域110と、ユーザアプリケーションプログラムが格納されるユーザ領域111とを備えている。さらに、カーネル領域110は、カーネルプログラム自体が格納されるプログラム領域と、起動したカーネルプログラムが処理を行うために必要なデータが格納されるデータ領域とを備えている。   The HDD 10 stores a kernel program that defines processing executed by a kernel that forms the basis of an OS (operating system), a system file required for operating the OS, a user application program that defines processing executed by various applications, and the like. The memory 11 temporarily stores programs executed by the CPU 12 and data necessary for calculation. The memory 11 includes a kernel area 110 in which a kernel program is stored and a user area 111 in which a user application program is stored. Further, the kernel area 110 includes a program area in which the kernel program itself is stored and a data area in which data necessary for the activated kernel program to perform processing is stored.

CPU12は、メモリ11に格納された各種プログラムに従った処理を実行することで各種機能を実現する。カーネルプログラムがHDD10からメモリ11のカーネル領域110に読み込まれてカーネルが起動されると、CPU12は、プロセス管理やメモリ管理等のカーネルの機能に係る処理を実行する。また、ユーザアプリケーションプログラムがHDD10からメモリ11のユーザ領域111に読み込まれてユーザアプリケーションが起動されると、CPU12は、画像処理やデータ通信等のユーザアプリケーションの機能に係る処理を実行する。   The CPU 12 implements various functions by executing processing according to various programs stored in the memory 11. When the kernel program is read from the HDD 10 into the kernel area 110 of the memory 11 and the kernel is activated, the CPU 12 executes processing related to kernel functions such as process management and memory management. When the user application program is read from the HDD 10 into the user area 111 of the memory 11 and the user application is activated, the CPU 12 executes processing related to the function of the user application such as image processing and data communication.

DMA(Direct Memory Access)13は、CPU12を介さずにメモリ11とハードウェアの間でデータ転送を行うことが可能なハードウェアである。メモリ管理部14は、メモリ11に対するアクセスを管理する。CPU12によるメモリ11へのアクセスは、メモリ管理部14内のMMU(Memory Management Unit)によって管理され、DMA13によるメモリ11へのアクセスは、メモリ管理部14内のIOMMU(Input/Output MMU)によって管理される。メモリ管理部14内の一部の機能(例えばMMU)をCPU12に実装してもよい。カーネル起動制御部15は、情報処理装置の起動時にカーネルの起動を制御する。   The DMA (Direct Memory Access) 13 is hardware capable of transferring data between the memory 11 and hardware without using the CPU 12. The memory management unit 14 manages access to the memory 11. Access to the memory 11 by the CPU 12 is managed by an MMU (Memory Management Unit) in the memory management unit 14, and access to the memory 11 by the DMA 13 is managed by an IOMMU (Input / Output MMU) in the memory management unit 14. The Some functions (for example, MMU) in the memory management unit 14 may be mounted on the CPU 12. The kernel activation control unit 15 controls the activation of the kernel when the information processing apparatus is activated.

次に、本実施形態による情報処理装置の動作を説明する。本実施形態では、(1)完全なカーネルの起動、(2)完全なカーネルによる完全なユーザアプリケーションの起動、(3)稼働中のカーネルの完全性の担保、(4)完全な検証用アプリケーションがファイルの状態を確認した結果に対する完全なカーネルによる電子署名、が実現されている。   Next, the operation of the information processing apparatus according to the present embodiment will be described. In this embodiment, (1) a complete kernel is started, (2) a complete user application is started by a complete kernel, (3) the integrity of the running kernel is ensured, and (4) a complete verification application is provided. A complete kernel electronic signature for the result of checking the status of the file is realized.

(1)完全なカーネルの起動
情報処理装置の起動時にCPU12は、図示せぬROMからメモリ11のカーネル領域110にBIOS(Basic Input/Output System)のプログラムを読み込むことによってBIOSを起動する。続いて、CPU12は、BIOSによって、HDD10のMBR(Master Boot Record)からメモリ11のカーネル領域110にブートローダのプログラムを読み込むことによってブートローダを起動する。続いて、CPU12は、ブートローダによって、HDD10からメモリ11のカーネル領域110にカーネルプログラムを読み込むことによってカーネルを起動する。以上のようにしてカーネルが起動される。
(1) Complete Kernel Activation When the information processing apparatus is activated, the CPU 12 activates the BIOS by reading a BIOS (Basic Input / Output System) program from a ROM (not shown) into the kernel area 110 of the memory 11. Subsequently, the CPU 12 starts the boot loader by reading the boot loader program from the MBR (Master Boot Record) of the HDD 10 into the kernel area 110 of the memory 11 by the BIOS. Subsequently, the CPU 12 starts the kernel by reading the kernel program from the HDD 10 into the kernel area 110 of the memory 11 by the boot loader. The kernel is started as described above.

図2は、カーネルを起動するときの処理の様子を示している。カーネル起動制御部15は、外部から改竄できない、耐タンパ性を有するチップであり、処理を実行するCPUや、データを格納するためのメモリを内部に備えている。カーネル起動制御部15は、前述したTPMによって実現される。以下、カーネル起動制御部15の動作を説明する。   FIG. 2 shows a state of processing when starting the kernel. The kernel activation control unit 15 is a tamper-resistant chip that cannot be tampered with from the outside, and includes a CPU that executes processing and a memory that stores data. The kernel activation control unit 15 is realized by the TPM described above. Hereinafter, the operation of the kernel activation control unit 15 will be described.

情報処理装置が初めて起動されるとき、カーネル起動制御部15は、BIOS21、ブートローダ22、カーネル23のそれぞれのプログラムからハッシュ値を算出する。ハッシュ値は、ハッシュ関数を用いて算出される値であり、入力値に対して一意となる値である。カーネル起動制御部15は、算出したBIOS21、ブートローダ22、カーネル23のそれぞれのハッシュ値を内部のメモリに保持する。この時点では、BIOS21、ブートローダ22、カーネル23は改竄されていないものとする。   When the information processing apparatus is activated for the first time, the kernel activation control unit 15 calculates a hash value from each program of the BIOS 21, the boot loader 22, and the kernel 23. The hash value is a value calculated using a hash function, and is a value that is unique with respect to the input value. The kernel activation control unit 15 holds the calculated hash values of the BIOS 21, the boot loader 22, and the kernel 23 in an internal memory. At this point, it is assumed that the BIOS 21, the boot loader 22, and the kernel 23 have not been tampered with.

2回目以後の起動時にカーネル起動制御部15は、まず、BIOS21のプログラムのハッシュ値を算出し、そのハッシュ値を、内部のメモリに保持しているBIOS21のプログラムのハッシュ値と比較する。両方のハッシュ値が異なる場合、BIOS21が改竄されている可能性があるため、カーネル起動制御部15は、BIOS21の起動を中止する命令をCPU12に送る。この命令を受け取ったCPU12はBIOS21の起動を中止する。   At the second and subsequent boots, the kernel boot control unit 15 first calculates the hash value of the BIOS 21 program and compares the hash value with the hash value of the BIOS 21 program stored in the internal memory. If both hash values are different, there is a possibility that the BIOS 21 has been tampered with, so the kernel activation control unit 15 sends a command to the CPU 12 to stop activation of the BIOS 21. Receiving this command, the CPU 12 stops the activation of the BIOS 21.

一方、両方のハッシュ値が同一である場合、BIOS21が改竄されていないことが確認できたので、カーネル起動制御部15は処理をCPU12に受け渡し、CPU12はBIOS21を起動する。続いて、カーネル起動制御部15は、ブートローダ22のプログラムのハッシュ値を算出し、そのハッシュ値を、内部のメモリに保持しているブートローダ22のプログラムのハッシュ値と比較する。両方のハッシュ値が異なる場合、ブートローダ22が改竄されている可能性があるため、カーネル起動制御部15は、ブートローダ22の起動を中止する命令をCPU12に送る。この命令を受け取ったCPU12はブートローダ22の起動を中止する。   On the other hand, when both hash values are the same, since it has been confirmed that the BIOS 21 has not been tampered with, the kernel activation control unit 15 passes the processing to the CPU 12, and the CPU 12 activates the BIOS 21. Subsequently, the kernel activation control unit 15 calculates the hash value of the program of the boot loader 22 and compares the hash value with the hash value of the program of the boot loader 22 held in the internal memory. If both hash values are different, there is a possibility that the boot loader 22 has been tampered with, so the kernel activation control unit 15 sends an instruction to the CPU 12 to stop activation of the boot loader 22. Receiving this command, the CPU 12 stops the boot loader 22 from being activated.

一方、両方のハッシュ値が同一である場合、ブートローダ22が改竄されていないことが確認できたので、カーネル起動制御部15は処理をCPU12に受け渡し、CPU12はブートローダ22を起動する。続いて、カーネル起動制御部15は、カーネル23のプログラムのハッシュ値を算出し、そのハッシュ値を、内部のメモリに保持しているカーネル23のプログラムのハッシュ値と比較する。両方のハッシュ値が異なる場合、カーネル23が改竄されている可能性があるため、カーネル起動制御部15は、カーネル23の起動を中止する命令をCPU12に送る。この命令を受け取ったCPU12はカーネル23の起動を中止する。   On the other hand, when both hash values are the same, since it has been confirmed that the boot loader 22 has not been tampered with, the kernel activation control unit 15 passes the processing to the CPU 12, and the CPU 12 activates the boot loader 22. Subsequently, the kernel activation control unit 15 calculates a hash value of the program of the kernel 23 and compares the hash value with the hash value of the program of the kernel 23 held in the internal memory. If both hash values are different, the kernel 23 may have been tampered with, so the kernel activation control unit 15 sends to the CPU 12 an instruction to stop activation of the kernel 23. Receiving this command, the CPU 12 stops the activation of the kernel 23.

一方、両方のハッシュ値が同一である場合、カーネル23が改竄されていないことが確認できたので、カーネル起動制御部15は処理をCPU12に受け渡し、CPU12はカーネル23を起動する。以上のようにして、完全性が保証されたカーネル23を起動することができる。上記では、TPMによって完全なカーネルを起動する方法を実現しているが、前述したSecVisorを利用した場合も、同様にハッシュ値によりカーネルの完全性を確認してからカーネルを起動する方法を実現することができる。   On the other hand, when both hash values are the same, since it has been confirmed that the kernel 23 has not been tampered with, the kernel activation control unit 15 passes the processing to the CPU 12, and the CPU 12 activates the kernel 23. As described above, the kernel 23 whose integrity is guaranteed can be started. In the above, a method to start a complete kernel by TPM is realized, but even when SecVisor described above is used, a method to start the kernel after confirming the integrity of the kernel by the hash value is also realized. be able to.

(2)完全なカーネルによる完全なユーザアプリケーションの起動
図3は、上記により完全性が確認されたカーネルからユーザアプリケーションを起動するときの処理の様子を示している。図3および後述する図6において、カーネル空間30およびユーザ空間40は、CPU12およびメモリ11のリソースを含んで構成されている。
(2) Activation of Complete User Application with Complete Kernel FIG. 3 shows the processing when the user application is activated from the kernel whose integrity has been confirmed as described above. In FIG. 3 and FIG. 6 described later, the kernel space 30 and the user space 40 are configured to include resources of the CPU 12 and the memory 11.

カーネル空間30は、カーネルとしての機能を実現するための処理を実行するCPU12のリソースと、その処理を実行するためにメモリ11に割り当てられたカーネル領域110とを含んでいる。また、ユーザ空間40は、ユーザアプリケーションとしての機能を実現するための処理を実行するCPU12のリソースと、その処理を実行するためにメモリ11に割り当てられたユーザ領域111とを含んでいる。   The kernel space 30 includes a resource of the CPU 12 that executes processing for realizing a function as a kernel, and a kernel area 110 that is allocated to the memory 11 for executing the processing. Further, the user space 40 includes a resource of the CPU 12 that executes processing for realizing a function as a user application, and a user area 111 that is allocated to the memory 11 for executing the processing.

カーネル空間30に属する起動制御部31は、プロセスがユーザアプリケーションを起動するときにカーネルに対して行うシステムコール(起動要求)を検出し、ユーザアプリケーションの起動を制御する。Linux(登録商標)には、カーネルにおいてセキュリティ機能を拡張するフレームワークであるLinux(登録商標) Security Module(LSM)が実装されている。LSMでは、ファイルやプロセスの操作が行われた際に、ユーザが定義したセキュリティ検証機構を呼び出して権限の検証やログの生成を行うための監視ポイントが設けられている。カーネル空間30に属する起動制御部31は、このLSMの監視ポイントに相当する。   The activation control unit 31 belonging to the kernel space 30 detects a system call (activation request) made to the kernel when the process activates the user application, and controls the activation of the user application. Linux (registered trademark) is implemented with Linux (registered trademark) Security Module (LSM), which is a framework for extending security functions in the kernel. In LSM, when a file or process is operated, a monitoring point is provided to call a security verification mechanism defined by the user to verify authority and generate a log. The activation control unit 31 belonging to the kernel space 30 corresponds to this LSM monitoring point.

検証部32は、起動制御部31によってユーザアプリケーションの起動要求が検出された場合に、ユーザアプリケーションプログラムの完全性を検証する。この検証を行うため、検証部32は検証に必要な公開鍵Kpを有している。起動制御部31および検証部32が動作している間、これらの実体(プログラム)はメモリ11のカーネル領域110内のプログラム領域に格納されている。また、HDD10に格納されているアプリケーションプログラムには、検証部32が有する公開鍵Kpに対応する秘密鍵でアプリケーションプログラムのハッシュ値が暗号化された電子署名が予め付加されている。   The verification unit 32 verifies the integrity of the user application program when the activation control unit 31 detects a user application activation request. In order to perform this verification, the verification unit 32 has a public key Kp necessary for verification. While the activation control unit 31 and the verification unit 32 are operating, these entities (programs) are stored in the program area in the kernel area 110 of the memory 11. In addition, the application program stored in the HDD 10 is added with an electronic signature in which the hash value of the application program is encrypted with a secret key corresponding to the public key Kp of the verification unit 32.

ユーザアプリケーションは以下のようにして起動される。まず、カーネル空間30またはユーザ空間40上の何らかのプロセスがユーザアプリケーションを起動するためにシステムコール(起動要求)を発生する(ステップS100)。起動制御部31はこの起動要求を検出し、検証部32に処理を受け渡す(ステップS110)。検証部32は、起動を要求されたユーザアプリケーションプログラムをHDD10からメモリ11のカーネル領域110内のデータ領域に読み込む(ステップS120)。   The user application is started as follows. First, a process on the kernel space 30 or the user space 40 generates a system call (startup request) to start the user application (step S100). The activation control unit 31 detects this activation request and transfers the processing to the verification unit 32 (step S110). The verification unit 32 reads the user application program requested to be activated from the HDD 10 into the data area in the kernel area 110 of the memory 11 (step S120).

検証部32は、ユーザアプリケーションに付加されている電子署名を公開鍵Kpで復号し、ハッシュ値を得る。また、検証部32は、ユーザアプリケーションプログラムからハッシュ値を算出する。そして、検証部32は、電子署名を復号して得たハッシュ値と、ユーザアプリケーションプログラムから算出したハッシュ値とを比較することによって、ユーザアプリケーションの完全性を検証する(ステップS130)。   The verification unit 32 decrypts the electronic signature added to the user application with the public key Kp to obtain a hash value. The verification unit 32 calculates a hash value from the user application program. Then, the verification unit 32 verifies the integrity of the user application by comparing the hash value obtained by decrypting the electronic signature with the hash value calculated from the user application program (step S130).

両方のハッシュ値が異なる場合、ユーザアプリケーションプログラムが改竄されている可能性がある。また、両方のハッシュ値が一致した場合、ユーザアプリケーションプログラムの完全性が保証される。検証部32は検証結果を起動制御部31に通知する(ステップS140)。   If both hash values are different, the user application program may have been tampered with. If both hash values match, the integrity of the user application program is guaranteed. The verification unit 32 notifies the activation control unit 31 of the verification result (step S140).

通知を受けた起動制御部31は、検証結果に基づいてアプリケーションの起動を制御する。検証の結果、改竄が検知された場合には、起動制御部31はアプリケーションの起動処理を中止する。また、検証の結果、ユーザアプリケーションプログラムの完全性が確認できた場合には、起動制御部31は、カーネル領域110内のデータ領域に格納されているユーザアプリケーションプログラムをユーザ領域111に移動し、ユーザアプリケーションを起動させる(ステップS150)。   Upon receiving the notification, the activation control unit 31 controls the activation of the application based on the verification result. If tampering is detected as a result of the verification, the activation control unit 31 stops the application activation process. If the integrity of the user application program can be confirmed as a result of the verification, the activation control unit 31 moves the user application program stored in the data area in the kernel area 110 to the user area 111, and The application is activated (step S150).

カーネル空間30内の起動制御部31と検証部32の完全性はカーネルの起動時に保証されており、また、後述するように稼働中のカーネルの完全性も保証されることから、上記のようにしてカーネル空間30から起動されたユーザアプリケーションの完全性が保証される。上記と同様の方法はDigSigによっても実現されている。   The integrity of the boot control unit 31 and the verification unit 32 in the kernel space 30 is guaranteed at the time of booting the kernel, and the integrity of the running kernel is also guaranteed as will be described later. Thus, the integrity of the user application started from the kernel space 30 is guaranteed. A method similar to the above is also realized by DigSig.

(3)稼働中のカーネルの完全性の担保
稼働中のカーネルの完全性は以下の3つの方法により担保される。これらの方法のうち1つだけを実装しても効果は得られるが、全ての方法を実装することで、カーネルの完全性をより高めることもできる。また、これらの方法と同様の方法がSecVisorによっても実現されている。
(3) Ensuring the integrity of the operating kernel The integrity of the operating kernel is ensured by the following three methods. Even if only one of these methods is implemented, the effect can be obtained, but by implementing all the methods, the integrity of the kernel can be further improved. In addition, methods similar to these methods are realized by SecVisor.

図4は第1の方法を示している。メモリ11において、カーネル領域110として割り当てられる領域は予め固定されており、メモリ管理部14はカーネル領域110のアドレスを保持している。DMA13がメモリ11にアクセスするため、アクセスしたいメモリ11のアドレスをメモリ管理部14へ出力すると、メモリ管理部14は、DMA13から出力されたアドレスとカーネル領域110のアドレスとを比較する。   FIG. 4 shows the first method. In the memory 11, an area allocated as the kernel area 110 is fixed in advance, and the memory management unit 14 holds the address of the kernel area 110. Since the DMA 13 accesses the memory 11, when the address of the memory 11 to be accessed is output to the memory management unit 14, the memory management unit 14 compares the address output from the DMA 13 with the address of the kernel area 110.

DMA13から出力されたアドレスがカーネル領域110のアドレスに相当しない場合、すなわちDMA13がカーネル領域110以外の領域にアクセスしようとしている場合(図4のアクセス50)、メモリ管理部14はアクセスを許可する。また、DMA13から出力されたアドレスがカーネル領域110のアドレスに相当する場合、すなわちDMA13がカーネル領域110にアクセスしようとしている場合(図4のアクセス51)、メモリ管理部14はアクセスを禁止する。このようにして、DMA13からカーネル領域110に不正な上書きが行われることを防止し、稼働中のカーネルの完全性を保証することができる。   When the address output from the DMA 13 does not correspond to the address of the kernel area 110, that is, when the DMA 13 tries to access an area other than the kernel area 110 (access 50 in FIG. 4), the memory management unit 14 permits the access. Further, when the address output from the DMA 13 corresponds to the address of the kernel area 110, that is, when the DMA 13 tries to access the kernel area 110 (access 51 in FIG. 4), the memory management unit 14 prohibits the access. In this way, it is possible to prevent an unauthorized overwrite from the DMA 13 to the kernel area 110 and to ensure the integrity of the operating kernel.

図5は第2の方法を示している。一般的にコンピュータではメモリ管理方式として仮想記憶が採用されている。CPU12から見たメモリ11のアドレスは仮想アドレスであり、メモリ11の物理アドレス(実アドレス)とは異なる。メモリ管理部14は仮想アドレスと物理アドレスの対応関係を変換テーブルとして保持している。ユーザアプリケーションの起動時や終了時にCPU12は、カーネルの機能によって、変換テーブルの再構成を実行する。   FIG. 5 shows the second method. In general, a computer employs virtual storage as a memory management method. The address of the memory 11 viewed from the CPU 12 is a virtual address and is different from the physical address (real address) of the memory 11. The memory management unit 14 holds the correspondence between virtual addresses and physical addresses as a conversion table. When the user application is activated or terminated, the CPU 12 reconfigures the conversion table using the kernel function.

本実施形態では、変換テーブルとして、カーネル用とユーザアプリケーション用の2種類の変換テーブルが用いられる。ユーザアプリケーション用の変換テーブルでは、カーネル領域110に対応する仮想アドレスにはカーネル領域110の物理アドレスではなく、カーネル領域110以外の物理アドレスが割り当てられている。メモリ11にアクセスする要求が発生すると、CPU12はその要求がカーネルとユーザアプリケーションのどちらからの要求であるのかを判別し、要求元を識別する情報と共にアクセス先のメモリ11の仮想アドレスをメモリ管理部14へ出力する。   In this embodiment, two types of conversion tables for kernel and user application are used as conversion tables. In the user application conversion table, a physical address other than the kernel area 110 is assigned to a virtual address corresponding to the kernel area 110 instead of the physical address of the kernel area 110. When a request to access the memory 11 is generated, the CPU 12 determines whether the request is from the kernel or a user application, and stores the virtual address of the access destination memory 11 together with information for identifying the request source. 14 to output.

メモリ管理部14は、変換テーブルに基づいて、CPU12から出力された仮想アドレスを物理アドレスに変換する。要求元がカーネルである場合、メモリ管理部14はカーネル用の変換テーブルにより仮想アドレスを物理アドレスに変換する。カーネル用の変換テーブルではカーネルはカーネル領域110にアクセスすることができる。また、要求元がユーザアプリケーションである場合、メモリ管理部14はユーザアプリケーション用の変換テーブルにより仮想アドレスを物理アドレスに変換する。具体的には以下のようになる。   The memory management unit 14 converts the virtual address output from the CPU 12 into a physical address based on the conversion table. When the request source is a kernel, the memory management unit 14 converts the virtual address into a physical address by using a conversion table for the kernel. In the conversion table for the kernel, the kernel can access the kernel area 110. When the request source is a user application, the memory management unit 14 converts the virtual address into a physical address using the conversion table for the user application. Specifically:

CPU12から出力された仮想アドレスがカーネル領域110の物理アドレスに相当しない場合、すなわちCPU12がカーネル領域110以外の領域にアクセスしようとしている場合(図5のアクセス52)、その領域の物理アドレスがメモリ管理部14からメモリ11へ出力される。また、CPU12から出力された仮想アドレスがカーネル領域110の物理アドレスに相当する場合、すなわちCPU12がカーネル領域110にアクセスしようとしている場合(図5のアクセス53)、CPU12がアクセスしようとしていたカーネル領域110とは異なる領域の物理アドレスがメモリ管理部14からメモリ11へ出力される。したがって、ユーザアプリケーションがカーネル領域110に書き込みを行おうとしても、カーネル領域110以外の領域に書き込みを行うことになる。このようにして、ユーザアプリケーションによってカーネル領域110に不正な上書きが行われることを防止し、稼働中のカーネルの完全性を保証することができる。   When the virtual address output from the CPU 12 does not correspond to the physical address of the kernel area 110, that is, when the CPU 12 tries to access an area other than the kernel area 110 (access 52 in FIG. 5), the physical address of the area is the memory management. The data is output from the unit 14 to the memory 11. When the virtual address output from the CPU 12 corresponds to the physical address of the kernel area 110, that is, when the CPU 12 is trying to access the kernel area 110 (access 53 in FIG. 5), the kernel area 110 that the CPU 12 was trying to access The physical address of an area different from that is output from the memory management unit 14 to the memory 11. Therefore, even if the user application tries to write to the kernel area 110, it writes to an area other than the kernel area 110. In this way, it is possible to prevent the kernel area 110 from being illegally overwritten by the user application and to ensure the integrity of the running kernel.

第3の方法は、カーネルのバッファオーバフロー攻撃を防止することによって、カーネル領域110に不正な上書きが行われることを防止する方法である。カーネルのバッファオーバフロー攻撃では、カーネル領域110のデータ領域に悪意の実行プログラムが格納され、この実行プログラムがデータ領域上で起動され、悪意の処理が実行される。また、この処理によってカーネル領域110のプログラム領域に書き込みが行われ、カーネルプログラムが改竄されてしまう。   The third method is to prevent the kernel area 110 from being overwritten illegally by preventing a kernel buffer overflow attack. In the kernel buffer overflow attack, a malicious execution program is stored in the data area of the kernel area 110, and this execution program is activated on the data area to execute malicious processing. In addition, this processing writes to the program area of the kernel area 110, and the kernel program is falsified.

そこで、CPU12は、カーネルプログラムに従って、カーネル領域110のデータ領域の実行権限を実行不可とする設定を行う。したがって、ユーザアプリケーションによってカーネル領域110のデータ領域に悪意の実行プログラムが格納された場合でも、その実行プログラムの実行が許可されないので、カーネル領域110に不正な上書きが行われることを防止し、稼働中のカーネルの完全性を保証することができる。   Therefore, the CPU 12 performs a setting that disables execution authority of the data area of the kernel area 110 according to the kernel program. Therefore, even when a malicious execution program is stored in the data area of the kernel area 110 by the user application, the execution of the execution program is not permitted. Therefore, the kernel area 110 is prevented from being overwritten and is in operation. Can guarantee the integrity of the kernel.

(4)完全な検証用アプリケーションがファイルの状態を確認した結果に対する完全なカーネルによる電子署名
図6は、検証用アプリケーションがHDD10内のシステムファイルの状態を確認するときの処理の様子を示している。ユーザ空間40に属する検証用アプリケーション41は、図3に示した処理により起動されたユーザアプリケーションである。完全性が保証されている起動制御部31と検証部32の処理によって検証用アプリケーション41が起動されているので、検証用アプリケーション41の完全性が保証されている。
(4) A digital signature by the complete kernel for the result of the complete verification application confirming the state of the file FIG. 6 shows the processing when the verification application confirms the state of the system file in the HDD 10 . The verification application 41 belonging to the user space 40 is a user application activated by the processing shown in FIG. Since the verification application 41 is activated by the processing of the activation control unit 31 and the verification unit 32 whose integrity is guaranteed, the integrity of the verification application 41 is guaranteed.

カーネル空間30に属するハッシュインタフェース33は、カーネルとユーザアプリケーションの間でデータの入出力を行うためのキャラクタベースのインタフェースである。カーネル空間30に属する署名部34は秘密鍵Ksを保持しており、この秘密鍵Ksで暗号化を行い、電子署名を生成する。   The hash interface 33 belonging to the kernel space 30 is a character-based interface for inputting / outputting data between the kernel and the user application. The signature unit 34 belonging to the kernel space 30 holds a secret key Ks, and encrypts with this secret key Ks to generate an electronic signature.

検証用アプリケーション41は以下のようにしてHDD10内のシステムファイルの検証を行う。まず、検証用アプリケーション41はHDD10からメモリ11のユーザ領域111にシステムファイルを読み込み、システムファイルのハッシュ値を算出する。このハッシュ値はシステムファイルの状態を表しており、システムファイルが改竄されると、ハッシュ値が変化することになる。検証用アプリケーション41は、システムファイルを識別する情報(ファイル名等)と、算出したハッシュ値とを関連付けてリスト化したハッシュ値リストをユーザ領域111に保持する。また、検証用アプリケーション41は、ハッシュ値リスト全体からさらにハッシュ値を算出する(ステップS200)   The verification application 41 verifies the system file in the HDD 10 as follows. First, the verification application 41 reads a system file from the HDD 10 into the user area 111 of the memory 11 and calculates a hash value of the system file. This hash value represents the state of the system file. When the system file is falsified, the hash value changes. The verification application 41 holds in the user area 111 a hash value list in which information (file name or the like) for identifying a system file and a calculated hash value are associated and listed. Further, the verification application 41 further calculates a hash value from the entire hash value list (step S200).

検証用アプリケーション41は、ハッシュインタフェース33へハッシュ値リストのハッシュ値を出力し、署名を要求する(ステップS210)。ハッシュインタフェース33はハッシュ値を署名部34に渡す(ステップS220)。   The verification application 41 outputs the hash value of the hash value list to the hash interface 33 and requests a signature (step S210). The hash interface 33 passes the hash value to the signature unit 34 (step S220).

署名部34は、受け取ったハッシュ値を秘密鍵Ksで暗号化し、電子署名を生成する。署名部34は、生成した電子署名をハッシュインタフェース33に渡す(ステップS230)。ハッシュインタフェース33は電子署名を検証用アプリケーション41へ出力する(ステップS240)。検証用アプリケーション41は、保持しているハッシュ値リストに対して電子署名を付加し、HDD10に格納する(ステップS250)。   The signature unit 34 encrypts the received hash value with the secret key Ks and generates an electronic signature. The signature unit 34 passes the generated electronic signature to the hash interface 33 (step S230). The hash interface 33 outputs the electronic signature to the verification application 41 (step S240). The verification application 41 adds an electronic signature to the stored hash value list and stores it in the HDD 10 (step S250).

上記のようにしてHDD10に格納されたハッシュ値リストに基づいて、HDD10上のシステムファイルが改竄されているか否かを検証することができる。すなわち、所定のシステムファイルについて第1のタイミングで取得されたハッシュ値リスト内のハッシュ値と、第2のタイミングで取得されたハッシュ値リスト内のハッシュ値とを比較し、両方のハッシュ値が一致していなければ、システムファイルが改竄されたことを検知することができる。また、両方のハッシュ値が一致していれば、システムファイルが改竄されていないことを確認することができる。   Based on the hash value list stored in the HDD 10 as described above, it is possible to verify whether or not the system file on the HDD 10 has been falsified. That is, the hash value in the hash value list acquired at the first timing for the predetermined system file is compared with the hash value in the hash value list acquired at the second timing, and both hash values are equal. If not, it can detect that the system file has been tampered with. If both hash values match, it can be confirmed that the system file has not been tampered with.

一方、ハッシュ値リストに付加されている電子署名を検証することにより、ハッシュ値リストが改竄されているか否かを検証することができる。すなわち、ハッシュ値リストに付加されている電子署名を秘密鍵Ksに対応する公開鍵で復号して得たハッシュ値と、ハッシュ値リスト全体から算出したハッシュ値とを比較し、両方のハッシュ値が一致していなければ、ハッシュ値リストが改竄されたことを検知することができる。また、両方のハッシュ値が一致していれば、ハッシュ値リストが改竄されていないことを確認することができる。   On the other hand, it is possible to verify whether or not the hash value list has been tampered with by verifying the electronic signature added to the hash value list. That is, the hash value obtained by decrypting the digital signature added to the hash value list with the public key corresponding to the secret key Ks is compared with the hash value calculated from the entire hash value list, and both hash values are If they do not match, it can be detected that the hash value list has been tampered with. If both hash values match, it can be confirmed that the hash value list has not been tampered with.

上記の電子署名は、完全性が保証されているカーネルによって生成されたものなので、検証用アプリケーション41がシステムファイルの状態を確認した結果に対して、完全性の保証された電子署名を付加することができる。   Since the above-mentioned electronic signature is generated by a kernel whose integrity is guaranteed, an electronic signature whose integrity is guaranteed is added to the result of the verification application 41 confirming the state of the system file. Can do.

HDD10に格納されたハッシュ値リストの検証、およびハッシュ値リストに付加されている電子署名の検証をリモート側の端末(ファイル検証装置)で行うことが可能である。すなわち、CPU12は、通信を行うユーザアプリケーションによって、HDD10からハッシュ値リストを読み出し、リモート端末へ送信する処理を実行する。リモート端末はハッシュ値リストを受信し、自身のHDDに格納する。続いて、リモート端末は、HDDからハッシュ値リストを読み出し、上述したハッシュ値リストの検証、およびハッシュ値リストに付加されている電子署名の検証を行う。なお、リモート端末は、取得したハッシュ値リストと比較される正しいハッシュ値リストを予め保持しており、取得したハッシュ値リスト内のハッシュ値と、正しいハッシュ値とを比較することにより、HDD10上のシステムファイルが改竄されているか否かを検証する。   Verification of the hash value list stored in the HDD 10 and verification of the electronic signature added to the hash value list can be performed by a remote terminal (file verification device). That is, the CPU 12 executes a process of reading a hash value list from the HDD 10 and transmitting it to the remote terminal by a user application that performs communication. The remote terminal receives the hash value list and stores it in its own HDD. Subsequently, the remote terminal reads the hash value list from the HDD, verifies the hash value list described above, and verifies the electronic signature added to the hash value list. Note that the remote terminal holds a correct hash value list to be compared with the acquired hash value list in advance, and compares the hash value in the acquired hash value list with the correct hash value to thereby store the correct hash value list on the HDD 10. Verify whether the system file has been tampered with.

上述したように、本実施形態によれば、カーネルが改竄されていないことが確認できた場合にカーネルが起動され、カーネルの稼働中は、メモリ11のカーネル領域110に対するユーザアプリケーションからのアクセスが禁止されるため、起動時および稼働中のカーネルの完全性が保証される。また、完全性の保証されたカーネルによって、ユーザアプリケーションが改竄されていないことが確認できた場合にユーザアプリケーションが起動されるので、起動時のユーザアプリケーションの完全性が保証される。したがって、完全性が保証されたカーネルから、完全性が保証されたユーザアプリケーションを起動することができる。また、完全性が保証された検証用アプリケーションを起動することによって、完全な検証用アプリケーションがファイルの状態を確認することができる。   As described above, according to this embodiment, the kernel is activated when it is confirmed that the kernel has not been tampered with, and access from the user application to the kernel area 110 of the memory 11 is prohibited while the kernel is running. As a result, the integrity of the booting and running kernel is guaranteed. In addition, since it is confirmed that the user application has not been tampered with by the kernel whose integrity is guaranteed, the integrity of the user application at the time of activation is guaranteed. Therefore, it is possible to start a user application whose integrity is guaranteed from a kernel whose integrity is guaranteed. In addition, by starting the verification application whose integrity is guaranteed, the complete verification application can check the state of the file.

上記のように完全な検証用アプリケーションがファイルの状態を確認することができるが、検証用アプリケーションの出力結果であるハッシュ値リストがHDD10上で改竄される可能性がある。しかし、本実施形態では、ハッシュ値リストに対して、完全性が保証されたカーネルによる電子署名が付加されるので、その電子署名に基づいてHDD10上のハッシュ値リストの改竄を検知することができる。したがって、ハッシュ値リストの信頼性を向上することができる。   As described above, the complete verification application can check the state of the file, but the hash value list that is the output result of the verification application may be falsified on the HDD 10. However, in this embodiment, since an electronic signature by a kernel whose integrity is guaranteed is added to the hash value list, it is possible to detect falsification of the hash value list on the HDD 10 based on the electronic signature. . Therefore, the reliability of the hash value list can be improved.

本実施形態は公開サーバ等のサーバに適用可能なだけでなく、携帯電話等にも適用することが可能である。例えば、ユーザが所有する携帯電話の状態を電話会社がリモート検証したり、ユーザに貸し出したセットトップボックス等の家電製品の状態をサービス提供会社がリモート検証したりすることが可能である。   The present embodiment can be applied not only to a server such as a public server but also to a mobile phone or the like. For example, a telephone company can remotely verify the state of a mobile phone owned by a user, or a service provider can remotely verify the state of a home appliance such as a set-top box lent to the user.

以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。   As described above, the embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to the above-described embodiments, and includes design changes and the like without departing from the gist of the present invention. .

10・・・HDD(プログラム記憶手段、ファイル記憶手段)、11・・・メモリ、12・・・CPU、13・・・DMA、14・・・メモリ管理部(禁止手段)、15・・・カーネル起動制御部(カーネル検証手段)、20・・・バス、31・・・起動制御部、32・・・検証部、33・・・ハッシュインタフェース、34・・・署名部、110・・・カーネル領域、111・・・ユーザ領域   DESCRIPTION OF SYMBOLS 10 ... HDD (program storage means, file storage means), 11 ... Memory, 12 ... CPU, 13 ... DMA, 14 ... Memory management part (prohibition means), 15 ... Kernel Activation control unit (kernel verification means), 20 ... bus, 31 ... activation control unit, 32 ... verification unit, 33 ... hash interface, 34 ... signature unit, 110 ... kernel area 111 user area

Claims (2)

OSのカーネルおよびユーザアプリケーションのプログラムを記憶するプログラム記憶手段と、
前記カーネルのプログラムが格納されるカーネル領域と、前記ユーザアプリケーションのプログラムが格納されるユーザ領域とを有するメモリと、
前記カーネルの起動時に当該カーネルの完全性を検証するカーネル検証手段と、
前記メモリに格納されたプログラムに従って処理を実行するCPUと、
前記ユーザアプリケーションから前記カーネル領域に対するデータの書き込みを禁止する禁止手段と、
システムファイルを記憶するファイル記憶手段と、
を備え、前記CPUは、
前記カーネル検証手段によって、前記カーネルが改竄されていないことが確認できた場合に、前記カーネルのプログラムを前記プログラム記憶手段から前記カーネル領域に読み込んで前記カーネルを起動する処理と、
前記カーネルによって、前記ユーザアプリケーションの起動時に前記ユーザアプリケーションの完全性を検証し、前記ユーザアプリケーションが改竄されていないことが確認できた場合に、前記ユーザアプリケーションのプログラムを前記プログラム記憶手段から前記ユーザ領域に読み込んで前記ユーザアプリケーションを起動する処理と、
前記ユーザアプリケーションによって、前記システムファイルのハッシュ値を算出する処理と、
前記カーネルによって、前記ハッシュ値に電子署名を施す処理と、
前記ユーザアプリケーションによって、前記ハッシュ値に基づいて前記システムファイルの完全性を検証する処理と、
前記ユーザアプリケーションによって、前記電子署名に基づいて前記ハッシュ値の完全性を検証する処理と、
を実行することを特徴とする情報処理装置。
Program storage means for storing OS kernel and user application programs;
A memory having a kernel area in which the kernel program is stored; and a user area in which the user application program is stored;
Kernel verification means for verifying the integrity of the kernel at the time of booting the kernel;
A CPU that executes processing according to a program stored in the memory;
Prohibiting means for prohibiting data writing from the user application to the kernel area;
File storage means for storing system files;
The CPU comprises:
When the kernel verification means can confirm that the kernel has not been tampered with, a process of starting the kernel by reading the kernel program from the program storage means into the kernel area; and
When the kernel verifies the integrity of the user application when the user application is started and confirms that the user application has not been tampered with, the user application program is transferred from the program storage unit to the user area. Processing to load the application and start the user application;
Processing for calculating a hash value of the system file by the user application;
A process of applying an electronic signature to the hash value by the kernel;
Processing for verifying the integrity of the system file based on the hash value by the user application ;
Processing for verifying the integrity of the hash value based on the electronic signature by the user application;
An information processing apparatus characterized by executing
情報処理装置とファイル検証装置を備えたファイル検証システムであって、
前記情報処理装置は、
OSのカーネルおよびユーザアプリケーションのプログラムを記憶するプログラム記憶手段と、
前記カーネルのプログラムが格納されるカーネル領域と、前記ユーザアプリケーションのプログラムが格納されるユーザ領域とを有するメモリと、
前記カーネルの起動時に当該カーネルの完全性を検証するカーネル検証手段と、
前記メモリに格納されたプログラムに従って処理を実行するCPUと、
前記ユーザアプリケーションから前記カーネル領域に対するデータの書き込みを禁止する禁止手段と、
システムファイルを記憶するファイル記憶手段と、
を備え、前記CPUは、
前記カーネル検証手段によって、前記カーネルが改竄されていないことが確認できた場合に、前記カーネルのプログラムを前記プログラム記憶手段から前記カーネル領域に読み込んで前記カーネルを起動する処理と、
前記カーネルによって、前記ユーザアプリケーションの起動時に前記ユーザアプリケーションの完全性を検証し、前記ユーザアプリケーションが改竄されていないことが確認できた場合に、前記ユーザアプリケーションのプログラムを前記プログラム記憶手段から前記ユーザ領域に読み込んで前記ユーザアプリケーションを起動する処理と、
前記ユーザアプリケーションによって、前記システムファイルのハッシュ値を算出する処理と、
前記カーネルによって、前記ハッシュ値に電子署名を施す処理と、
前記ユーザアプリケーションによって、前記ハッシュ値と前記電子署名を前記ファイル検証装置へ送信する処理と、
を実行し、
前記ファイル検証装置は、
前記情報処理装置から前記ハッシュ値と前記電子署名を受信する受信手段と、
前記ハッシュ値に基づいて前記システムファイルの完全性を検証する第1の検証手段と、
前記電子署名に基づいて前記ハッシュ値の完全性を検証する第2の検証手段と、
を備えたことを特徴とするファイル検証システム。
A file verification system comprising an information processing device and a file verification device,
The information processing apparatus includes:
Program storage means for storing OS kernel and user application programs;
A memory having a kernel area in which the kernel program is stored; and a user area in which the user application program is stored;
Kernel verification means for verifying the integrity of the kernel at the time of booting the kernel;
A CPU that executes processing according to a program stored in the memory;
Prohibiting means for prohibiting data writing from the user application to the kernel area;
File storage means for storing system files ;
The CPU comprises:
When the kernel verification means can confirm that the kernel has not been tampered with, a process of starting the kernel by reading the kernel program from the program storage means into the kernel area; and
When the kernel verifies the integrity of the user application when the user application is started and confirms that the user application has not been tampered with, the user application program is transferred from the program storage unit to the user area. Processing to load the application and start the user application;
Processing for calculating a hash value of the system file by the user application;
A process of applying an electronic signature to the hash value by the kernel;
A process of transmitting the hash value and the electronic signature to the file verification device by the user application;
Run
The file verification device
Receiving means for receiving the hash value and the electronic signature from the information processing apparatus;
First verification means for verifying the integrity of the system file based on the hash value;
Second verification means for verifying the integrity of the hash value based on the electronic signature;
A file verification system comprising:
JP2009026589A 2009-02-06 2009-02-06 Information processing apparatus and file verification system Expired - Fee Related JP5346608B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009026589A JP5346608B2 (en) 2009-02-06 2009-02-06 Information processing apparatus and file verification system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009026589A JP5346608B2 (en) 2009-02-06 2009-02-06 Information processing apparatus and file verification system

Publications (2)

Publication Number Publication Date
JP2010182196A JP2010182196A (en) 2010-08-19
JP5346608B2 true JP5346608B2 (en) 2013-11-20

Family

ID=42763744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009026589A Expired - Fee Related JP5346608B2 (en) 2009-02-06 2009-02-06 Information processing apparatus and file verification system

Country Status (1)

Country Link
JP (1) JP5346608B2 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560845B2 (en) * 2011-01-14 2013-10-15 Apple Inc. System and method for tamper-resistant booting
JP6254414B2 (en) * 2012-10-09 2017-12-27 キヤノン電子株式会社 Information processing apparatus, information processing system, and information processing method
US9767280B2 (en) 2012-10-09 2017-09-19 Canon Denshi Kabushiki Kaisha Information processing apparatus, method of controlling the same, information processing system, and information processing method
WO2014057668A1 (en) * 2012-10-09 2014-04-17 キヤノン電子株式会社 Information processing device and control method therefor, information processing system, as well as information processing method
JP6253333B2 (en) * 2012-10-09 2017-12-27 キヤノン電子株式会社 Information processing apparatus, information processing system, and information processing method
KR101416717B1 (en) 2013-03-28 2014-07-09 (주)엠더블유스토리 System for preventing malicious intrusion based on smart device and method thereof
JP6208645B2 (en) * 2014-09-30 2017-10-04 富士通エフ・アイ・ピー株式会社 License management method and license management system
JP6744256B2 (en) * 2017-06-12 2020-08-19 日本電信電話株式会社 Confirmation system, control device, and confirmation method
JP6706278B2 (en) * 2018-03-27 2020-06-03 キヤノン株式会社 Information processing apparatus and information processing method
JP7179482B2 (en) * 2018-04-19 2022-11-29 キヤノン株式会社 Information processing device, control method, and its program
JP7378980B2 (en) * 2019-06-27 2023-11-14 キヤノン株式会社 Information processing device, information processing method and program
JP7333748B2 (en) * 2019-12-13 2023-08-25 株式会社日立製作所 Electronic devices and attack detection methods for electronic devices
JP7249968B2 (en) * 2020-03-09 2023-03-31 株式会社東芝 Information processing equipment and storage

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002352098A (en) * 2001-05-30 2002-12-06 Ricoh Co Ltd System, method and program for providing data control service and recording medium
JP2005148934A (en) * 2003-11-12 2005-06-09 Ricoh Co Ltd Information processor, program activation method, program activation program and recording medium
JP2007043321A (en) * 2005-08-01 2007-02-15 Hitachi Ltd Authenticity verification method and system of electronic document
US8332866B2 (en) * 2006-11-29 2012-12-11 Qualcomm Incorporated Methods, systems, and apparatus for object invocation across protection domain boundaries

Also Published As

Publication number Publication date
JP2010182196A (en) 2010-08-19

Similar Documents

Publication Publication Date Title
JP5346608B2 (en) Information processing apparatus and file verification system
US10516533B2 (en) Password triggered trusted encryption key deletion
US10740468B2 (en) Multiple roots of trust to verify integrity
KR101662618B1 (en) Measuring platform components with a single trusted platform module
US8909940B2 (en) Extensible pre-boot authentication
CN109918919B (en) Management of authentication variables
US8213618B2 (en) Protecting content on client platforms
CN109669734B (en) Method and apparatus for starting a device
EP3125149B1 (en) Systems and methods for securely booting a computer with a trusted processing module
JP4498735B2 (en) Secure machine platform that interfaces with operating system and customized control programs
US9424430B2 (en) Method and system for defending security application in a user's computer
JP4971466B2 (en) Secure boot of computing devices
US9087188B2 (en) Providing authenticated anti-virus agents a direct access to scan memory
US8291480B2 (en) Trusting an unverified code image in a computing device
KR101281678B1 (en) Method and Apparatus for authorizing host in portable storage device and providing information for authorizing host, and computer readable medium thereof
US20110289294A1 (en) Information processing apparatus
CN110321713B (en) Dynamic measurement method and device of trusted computing platform based on dual-system architecture
US20150089645A1 (en) Method and system for preventing and detecting security threats
KR20090005219A (en) Execution of a secured environment initialization instruction on a point-to-point interconnect system
JP2006501581A (en) Encapsulation of reliable platform module functions by TCPA inside server management coprocessor subsystem
JP2011210129A (en) Storage device, data processing device, registration method, and computer program
US11909882B2 (en) Systems and methods to cryptographically verify an identity of an information handling system
CN110046495B (en) Data structure measurement comparison
US20200233953A1 (en) Enclave handling on an execution platform
WO2014153635A1 (en) Method and system for platform and user application security on a device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130329

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: 20130723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Ref document number: 5346608

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees