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
program
integrity
user
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.)
Active
Application number
JP2009026589A
Other languages
Japanese (ja)
Other versions
JP2010182196A (en
Inventor
敬祐 竹森
隆将 磯原
優 三宅
Original Assignee
Kddi株式会社
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株式会社 filed Critical Kddi株式会社
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
Application status is Active legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Description

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

公開サーバへ侵入し、公開サーバ内のデータやアプリケーションを改竄する事件が多発している。 Penetrate to the public server, incident to tamper with data and applications in the public server occur frequently. 多くの公開サーバはデータセンタで運用されており、サーバ管理者は、リモートアクセスによって公開サーバにアクセスして検証用アプリケーションを起動し、検証用アプリケーションが出力する検証結果によって公開サーバ内の侵入の痕跡や改竄の有無を検証(リモート検証)する。 Many public servers are operated in data centers, server administrator accesses the public server by the remote access start the verification application, traces of penetration of the public server by the verification result of the verification application outputs the presence or absence of or alteration to verify (remote verification).

しかし、一旦サーバへの侵入を許してしまうと、Rootkitをカーネルに埋め込んで応答を偽る攻撃や、検証用アプリケーションを改竄して応答を偽る攻撃、検証結果を改竄する攻撃など、検証結果の完全性を担保できない問題がある。 However, once could allow the entry into the server, attacks and disguise the response by embedding a Rootkit to the kernel, attack falsify response to tampering with the verification application, such as the attacks that tampering with the verification result, the verification result integrity there is a problem that can not be collateral. これに対して、昨今のサーバの多くには、Trusted Platform Module(TPM)と呼ばれる、耐タンパ性を有するチップが搭載されており、サーバの起動時にカーネルとアプリケーションの完全性(改竄されていないこと)をリモート検証する仕組みはあった。 In contrast, many recent server, called Trusted Platform Module (TPM), are chip mounting a tamper-resistant, it has not been integrity of the kernel and application (tampering when the server is started ) was a mechanism to remotely verify.

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

また、稼働中のカーネルの完全性を保証する仕組みとして、SecVisor(非特許文献1参照)と呼ばれる技術がある。 Further, as a mechanism to ensure the integrity of the kernel running, there is a technique called SecVisor (see Non-Patent Document 1). SecVisorは、メモリ上で稼動中のカーネル領域に対するユーザ空間(ユーザアプリケーション)からのアクセスを禁止する仕組みを実現している。 SecVisor realizes a mechanism to prohibit access from user space to the kernel space running in memory (user application). さらに、SecVisorは、カーネルの起動時にカーネルの状態を検証し、カーネルの完全性が確認された場合にのみ起動処理を継続する仕組みも持つ。 In addition, SecVisor verifies the state of the kernel at boot time of the kernel, also has a mechanism to continue the only start-up process if the integrity of the kernel has been confirmed. したがって、SecVisorによって、起動時ならびに稼動中のカーネルの完全性を保証することができる。 Therefore, it is possible that by SecVisor, to ensure the integrity of the kernel of the start-up and running.

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

しかし、TPMでは、起動時のみしかカーネルとアプリケーションの完全性を保証することができず、稼動中のサーバに対するバッファオーバフロー攻撃などによる侵入を受けた場合に、カーネルとアプリケーションの完全性を保証できない。 However, the TPM, can not only only at the time of start-up to ensure the integrity of the kernel and applications, when subjected to invasion by such as buffer overflow attacks against the server running, we can not guarantee the integrity of the kernel and applications. また、SecVisorでは、カーネルの完全性を常に担保できるものの、ユーザアプリケーションの完全性を保証できない。 In addition, in SecVisor, but can always ensure the integrity of the kernel, we can not guarantee the integrity of the user application. また、DigSigでは、起動時のアプリケーションの完全性は保証できるものの、カーネルの完全性を保証できない。 In addition, in DigSig, but can guarantee the integrity of the application at the time of start-up, we can not guarantee the integrity of the kernel.

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

本発明は、上記の課題を解決するためになされたもので、OSのカーネルおよびユーザアプリケーションのプログラムを記憶するプログラム記憶手段と、前記カーネルのプログラムが格納されるカーネル領域と、前記ユーザアプリケーションのプログラムが格納されるユーザ領域とを有するメモリと、前記カーネルの起動時に当該カーネルの完全性を検証するカーネル検証手段と、前記メモリに格納されたプログラムに従って処理を実行するCPUと、前記ユーザアプリケーションから前記カーネル領域に対するデータの書き込みを禁止する禁止手段と、を備え、前記CPUは、前記カーネル検証手段によって、前記カーネルが改竄されていないことが確認できた場合に、前記カーネルのプログラムを前記プログラム記憶手段から前記カーネル領域に読 The present invention has been made to solve the above problems, a program storage means for storing a program of an OS kernel and user applications, and kernel space where the kernel program is stored, the user application program a memory having a user area but stored, and kernel verification means for verifying the integrity of the kernel at startup of the kernel, a CPU for executing processing according to a program stored in the memory, said from the user application comprising a prohibiting means for prohibiting the writing of data to the kernel region, wherein the CPU, the by the kernel verification unit, when the kernel it was confirmed that not tampered, the said kernel program program storage means read in the kernel area from 込んで前記カーネルを起動する処理と、前記カーネルによって、前記ユーザアプリケーションの起動時に前記ユーザアプリケーションの完全性を検証し、前記ユーザアプリケーションが改竄されていないことが確認できた場合に、前記ユーザアプリケーションのプログラムを前記プログラム記憶手段から前記ユーザ領域に読み込んで前記ユーザアプリケーションを起動する処理と、を実行することを特徴とする情報処理装置である。 A process of starting the kernel crowded, by the kernel, the integrity of the user application and verified during startup of the user application, if the user application is confirmed that no tampering, the user application a process of starting the user application programs from said program storage means is read into the user area, an information processing apparatus, characterized by the execution.

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

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

また、本発明は、情報処理装置とファイル検証装置を備えたファイル検証システムであって、前記情報処理装置は、OSのカーネルおよびユーザアプリケーションのプログラムを記憶するプログラム記憶手段と、前記カーネルのプログラムが格納されるカーネル領域と、前記ユーザアプリケーションのプログラムが格納されるユーザ領域とを有するメモリと、前記カーネルの起動時に当該カーネルの完全性を検証するカーネル検証手段と、前記メモリに格納されたプログラムに従って処理を実行するCPUと、前記ユーザアプリケーションから前記カーネル領域に対するデータの書き込みを禁止する禁止手段と、ファイルを記憶するファイル記憶手段と、を備え、前記CPUは、前記カーネル検証手段によって、前記カーネルが改竄されていないことが Further, the present invention is a file verification system having an information processing apparatus and a file verification processing apparatus, a program storage means for storing a program of an OS kernel and user applications, the kernel program and kernel space to be stored, according to the memory and a user area where user application programs are stored, and kernel verification means for verifying the integrity of the kernel at startup of the kernel program stored in the memory a CPU for executing processing, the comprising a prohibiting means for the user application to prohibit the writing of data to the kernel space, and a file storage means for storing a file, wherein the CPU is by the kernel verification means, said kernel it has not been tampered with 認できた場合に、前記カーネルのプログラムを前記プログラム記憶手段から前記カーネル領域に読み込んで前記カーネルを起動する処理と、前記カーネルによって、前記ユーザアプリケーションの起動時に前記ユーザアプリケーションの完全性を検証し、前記ユーザアプリケーションが改竄されていないことが確認できた場合に、前記ユーザアプリケーションのプログラムを前記プログラム記憶手段から前記ユーザ領域に読み込んで前記ユーザアプリケーションを起動する処理と、前記ユーザアプリケーションによって、前記ファイルのハッシュ値を算出する処理と、前記カーネルによって、前記ハッシュ値に電子署名を施す処理と、前記ユーザアプリケーションによって、前記ハッシュ値と前記電子署名を外部の端末へ送信する処理と、を If made sure, a process of starting the kernel loads the kernel program from the program storage means to said kernel region, by the kernel, the integrity of the user application and verified during startup of the user application, if the user application is confirmed that no tampering, the process for starting the user application reads the program of the user application from the program storage unit to the user area, by the user application, the file a process of calculating a hash value, by the kernel, a process of applying a digital signature to the hash value, by the user application, a process of transmitting the electronic signature and the hash value to the external terminal, the 実行し、前記ファイル検証装置は、前記情報処理装置から前記ハッシュ値と前記電子署名を受信する受信手段と、前記ハッシュ値に基づいて前記ファイルの完全性を検証する第1の検証手段と、前記電子署名に基づいて前記ハッシュ値の完全性を検証する第2の検証手段と、を備えたことを特徴とするファイル検証システムである。 Run the file verification device includes a receiving means for receiving the digital signature and the hash value from the information processing apparatus, the first verification means for verifying the integrity of the file based on the hash value, the second verifying means for verifying the integrity of the hash value based on the electronic signature is a file verification system comprising the.

本発明によれば、カーネルが改竄されていないことが確認できた場合にカーネルが起動され、カーネルの稼働中は、カーネル領域に対するユーザアプリケーションからのアクセスが禁止されるため、起動時および稼働中のカーネルの完全性が保証される。 According to the present invention, is activated kernel when it was confirmed that the kernel has not been falsified, the kernel of the running, since the access from the user application to the kernel region is inhibited, startup and ongoing operation the integrity of the kernel is guaranteed. また、完全性の保証されたカーネルによって、ユーザアプリケーションが改竄されていないことが確認できた場合にユーザアプリケーションが起動されるので、起動時のユーザアプリケーションの完全性が保証される。 Moreover, the integrity of the guaranteed kernel, the user application is launched when the user application is confirmed that no tampering the integrity of the user application at startup is guaranteed. したがって、完全性が保証されたカーネルから、完全性が保証されたユーザアプリケーションを起動することができる。 Therefore, the kernel integrity is guaranteed, it is possible to launch the user application integrity is guaranteed.

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

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

HDD10は、OS(オペレーティングシステム)の根幹をなすカーネルが実行する処理を規定するカーネルプログラムや、OSの動作に必要なシステムファイル、各種アプリケーションが実行する処理を規定するユーザアプリケーションプログラム等を記憶する。 HDD10 stores user application programs to define the process of OS or kernel program that defines the processing that the kernel executes underlying the (operating system), the system files required for operation of the OS, various application executes. メモリ11は、CPU12が実行するプログラムや、演算に必要なデータを一時的に記憶する。 Memory 11 temporarily stores programs and data required for operation CPU12 performs. メモリ11は、カーネルプログラムが格納されるカーネル領域110と、ユーザアプリケーションプログラムが格納されるユーザ領域111とを備えている。 Memory 11 includes a kernel region 110 kernel program is stored, and a user area 111 of the user application programs are stored. さらに、カーネル領域110は、カーネルプログラム自体が格納されるプログラム領域と、起動したカーネルプログラムが処理を行うために必要なデータが格納されるデータ領域とを備えている。 Furthermore, kernel space 110 includes a program area in which the kernel program itself is stored, and a data area in which data is stored necessary for the kernel program started processing.

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

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

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

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

図2は、カーネルを起動するときの処理の様子を示している。 Figure 2 shows how the process when starting the kernel. カーネル起動制御部15は、外部から改竄できない、耐タンパ性を有するチップであり、処理を実行するCPUや、データを格納するためのメモリを内部に備えている。 Kernel boot control unit 15 can not be tampered from the outside, a chip having a tamper-resistant, CPU and to execute the processing, and a memory for storing data therein. カーネル起動制御部15は、前述したTPMによって実現される。 Kernel boot control unit 15 is implemented by the TPM mentioned above. 以下、カーネル起動制御部15の動作を説明する。 Hereinafter, the operation of the kernel boot control unit 15.

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

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

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

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

一方、両方のハッシュ値が同一である場合、カーネル23が改竄されていないことが確認できたので、カーネル起動制御部15は処理をCPU12に受け渡し、CPU12はカーネル23を起動する。 On the other hand, if both hash values ​​are identical, so it was confirmed that the kernel 23 has not been tampered, the kernel boot control unit 15 transfer the process to CPU 12, CPU 12 activates the kernel 23. 以上のようにして、完全性が保証されたカーネル23を起動することができる。 As described above, it is possible to load the kernel 23 integrity is guaranteed. 上記では、TPMによって完全なカーネルを起動する方法を実現しているが、前述したSecVisorを利用した場合も、同様にハッシュ値によりカーネルの完全性を確認してからカーネルを起動する方法を実現することができる。 In the above, although realizing how to start a full kernel by TPM, even when using SecVisor described above, to realize a method of starting the kernel after checking the integrity of the kernel in the same hashed value be able to.

(2)完全なカーネルによる完全なユーザアプリケーションの起動 図3は、上記により完全性が確認されたカーネルからユーザアプリケーションを起動するときの処理の様子を示している。 (2) activation Figure 3 the complete user application with full kernel, shows how the process when starting the user application from the kernel integrity by the was confirmed. 図3および後述する図6において、カーネル空間30およびユーザ空間40は、CPU12およびメモリ11のリソースを含んで構成されている。 6 to FIG. 3 and described below, kernel space 30 and user space 40 is configured to include resources CPU12 and memory 11.

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

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

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

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

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

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

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

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

(3)稼働中のカーネルの完全性の担保 稼働中のカーネルの完全性は以下の3つの方法により担保される。 (3) the integrity of the kernel in the integrity of the security operation of the running kernel is backed by the following three methods. これらの方法のうち1つだけを実装しても効果は得られるが、全ての方法を実装することで、カーネルの完全性をより高めることもできる。 Effect implement only one of these methods can be obtained, by implementing all the methods, it is also possible to further enhance the integrity of the kernel. また、これらの方法と同様の方法がSecVisorによっても実現されている。 Further, the same method as these methods are also implemented by SecVisor.

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

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

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

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

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

CPU12から出力された仮想アドレスがカーネル領域110の物理アドレスに相当しない場合、すなわちCPU12がカーネル領域110以外の領域にアクセスしようとしている場合(図5のアクセス52)、その領域の物理アドレスがメモリ管理部14からメモリ11へ出力される。 If the virtual address outputted from the CPU12 does not correspond to the physical address of the kernel region 110, i.e., if the CPU12 is trying to access a region other than the kernel area 110 (access Figure 5 52), the physical address memory management of the area output from the section 14 to the memory 11. また、CPU12から出力された仮想アドレスがカーネル領域110の物理アドレスに相当する場合、すなわちCPU12がカーネル領域110にアクセスしようとしている場合(図5のアクセス53)、CPU12がアクセスしようとしていたカーネル領域110とは異なる領域の物理アドレスがメモリ管理部14からメモリ11へ出力される。 Also, if the virtual address outputted from the CPU12 may correspond to the physical address of the kernel region 110, i.e. CPU12 is trying to access the kernel region 110 (access Figure 5 53), the kernel region 110 CPU12 is trying to access the physical address of the different regions are output from the memory management unit 14 to the memory 11 and. したがって、ユーザアプリケーションがカーネル領域110に書き込みを行おうとしても、カーネル領域110以外の領域に書き込みを行うことになる。 Thus, user application even tried to write into kernel space 110, it will be written to the region other than the kernel region 110. このようにして、ユーザアプリケーションによってカーネル領域110に不正な上書きが行われることを防止し、稼働中のカーネルの完全性を保証することができる。 In this way, it is possible by the user application prevents unauthorized overwriting the kernel region 110 is performed to ensure the integrity of the running kernel.

第3の方法は、カーネルのバッファオーバフロー攻撃を防止することによって、カーネル領域110に不正な上書きが行われることを防止する方法である。 A third method, by preventing buffer overflow attacks kernel is a method for preventing unauthorized overwriting is performed in the kernel space 110. カーネルのバッファオーバフロー攻撃では、カーネル領域110のデータ領域に悪意の実行プログラムが格納され、この実行プログラムがデータ領域上で起動され、悪意の処理が実行される。 The kernel buffer overflow attacks, stored malicious executable in the data area of ​​the kernel region 110, the execution program is started on the data area, processing malicious is executed. また、この処理によってカーネル領域110のプログラム領域に書き込みが行われ、カーネルプログラムが改竄されてしまう。 Also, writing in the program area of ​​the kernel space 110 is performed by this process, the kernel program from being falsified.

そこで、CPU12は、カーネルプログラムに従って、カーネル領域110のデータ領域の実行権限を実行不可とする設定を行う。 Therefore, CPU 12 in accordance with the kernel program, the setting to disable executes the execution authority of the data area of ​​the kernel region 110. したがって、ユーザアプリケーションによってカーネル領域110のデータ領域に悪意の実行プログラムが格納された場合でも、その実行プログラムの実行が許可されないので、カーネル領域110に不正な上書きが行われることを防止し、稼働中のカーネルの完全性を保証することができる。 Therefore, even if a malicious executable in the data area of ​​the kernel region 110 stored by the user application, so is not permitted the execution of the execution program, prevents unauthorized overwriting is performed in the kernel region 110, a running it is possible to guarantee the integrity of the kernel.

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

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

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

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

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

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

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

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

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

上述したように、本実施形態によれば、カーネルが改竄されていないことが確認できた場合にカーネルが起動され、カーネルの稼働中は、メモリ11のカーネル領域110に対するユーザアプリケーションからのアクセスが禁止されるため、起動時および稼働中のカーネルの完全性が保証される。 As described above, according to this embodiment is activated kernel when it was confirmed that the kernel has not been falsified, the kernel of the operating, access from the user application to the kernel region 110 of the memory 11 is prohibited because it is the integrity of the kernel in the start-up and operation is guaranteed. また、完全性の保証されたカーネルによって、ユーザアプリケーションが改竄されていないことが確認できた場合にユーザアプリケーションが起動されるので、起動時のユーザアプリケーションの完全性が保証される。 Moreover, the integrity of the guaranteed kernel, the user application is launched when the user application is confirmed that no tampering the integrity of the user application at startup is guaranteed. したがって、完全性が保証されたカーネルから、完全性が保証されたユーザアプリケーションを起動することができる。 Therefore, the kernel integrity is guaranteed, it is possible to launch the user application integrity is guaranteed. また、完全性が保証された検証用アプリケーションを起動することによって、完全な検証用アプリケーションがファイルの状態を確認することができる。 Also, by starting the verification application integrity is guaranteed, it is possible to complete verification application verifies the status of the file.

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

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

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

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

Claims (2)

  1. OSのカーネルおよびユーザアプリケーションのプログラムを記憶するプログラム記憶手段と、 A program storage means for storing a program of an OS kernel and user applications,
    前記カーネルのプログラムが格納されるカーネル領域と、前記ユーザアプリケーションのプログラムが格納されるユーザ領域とを有するメモリと、 A memory having a user area and a kernel region where the kernel program is stored, the user application programs are stored,
    前記カーネルの起動時に当該カーネルの完全性を検証するカーネル検証手段と、 And kernel verification means for verifying the integrity of the kernel at startup of the kernel,
    前記メモリに格納されたプログラムに従って処理を実行するCPUと、 A CPU for executing processing according to a program stored in said memory,
    前記ユーザアプリケーションから前記カーネル領域に対するデータの書き込みを禁止する禁止手段と、 And inhibiting means for inhibiting the writing of data to the kernel space from the user application,
    システムファイルを記憶するファイル記憶手段と、 And file storage means for storing system files,
    を備え、前記CPUは、 Wherein the CPU is
    前記カーネル検証手段によって、前記カーネルが改竄されていないことが確認できた場合に、前記カーネルのプログラムを前記プログラム記憶手段から前記カーネル領域に読み込んで前記カーネルを起動する処理と、 By the kernel verification unit, a process of the kernel when it is confirmed that they are not tampered, activates the kernel reads the kernel of the program in the kernel space from said program storage means,
    前記カーネルによって、前記ユーザアプリケーションの起動時に前記ユーザアプリケーションの完全性を検証し、前記ユーザアプリケーションが改竄されていないことが確認できた場合に、前記ユーザアプリケーションのプログラムを前記プログラム記憶手段から前記ユーザ領域に読み込んで前記ユーザアプリケーションを起動する処理と、 By the kernel, the verifies the integrity of the user application at the start of the user application, wherein when the user application is confirmed that no tampering, the user area programs of the user application from the program storage means a process of starting the user application loading, the
    前記ユーザアプリケーションによって、前記システムファイルのハッシュ値を算出する処理と、 By the user application, a process of calculating a hash value of the system files,
    前記カーネルによって、前記ハッシュ値に電子署名を施す処理と、 By the kernel, a process of applying a digital signature to the hash value,
    前記ユーザアプリケーションによって、前記ハッシュ値に基づいて前記システムファイルの完全性を検証する処理と、 By the user application, a process of verifying the integrity of the system files on the basis of the hash value,
    前記ユーザアプリケーションによって、前記電子署名に基づいて前記ハッシュ値の完全性を検証する処理と、 By the user application, a process of verifying the integrity of the hash value based on the electronic signature,
    を実行することを特徴とする情報処理装置。 The information processing apparatus which is characterized in that the run.
  2. 情報処理装置とファイル検証装置を備えたファイル検証システムであって、 A file verification system that includes an information processing apparatus and file verification device,
    前記情報処理装置は、 The information processing apparatus,
    OSのカーネルおよびユーザアプリケーションのプログラムを記憶するプログラム記憶手段と、 A program storage means for storing a program of an OS kernel and user applications,
    前記カーネルのプログラムが格納されるカーネル領域と、前記ユーザアプリケーションのプログラムが格納されるユーザ領域とを有するメモリと、 A memory having a user area and a kernel region where the kernel program is stored, the user application programs are stored,
    前記カーネルの起動時に当該カーネルの完全性を検証するカーネル検証手段と、 And kernel verification means for verifying the integrity of the kernel at startup of the kernel,
    前記メモリに格納されたプログラムに従って処理を実行するCPUと、 A CPU for executing processing according to a program stored in said memory,
    前記ユーザアプリケーションから前記カーネル領域に対するデータの書き込みを禁止する禁止手段と、 And inhibiting means for inhibiting the writing of data to the kernel space from the user application,
    システムファイルを記憶するファイル記憶手段と、 And file storage means for storing system files,
    を備え、前記CPUは、 Wherein the CPU is
    前記カーネル検証手段によって、前記カーネルが改竄されていないことが確認できた場合に、前記カーネルのプログラムを前記プログラム記憶手段から前記カーネル領域に読み込んで前記カーネルを起動する処理と、 By the kernel verification unit, a process of the kernel when it is confirmed that they are not tampered, activates the kernel reads the kernel of the program in the kernel space from said program storage means,
    前記カーネルによって、前記ユーザアプリケーションの起動時に前記ユーザアプリケーションの完全性を検証し、前記ユーザアプリケーションが改竄されていないことが確認できた場合に、前記ユーザアプリケーションのプログラムを前記プログラム記憶手段から前記ユーザ領域に読み込んで前記ユーザアプリケーションを起動する処理と、 By the kernel, the verifies the integrity of the user application at the start of the user application, wherein when the user application is confirmed that no tampering, the user area programs of the user application from the program storage means a process of starting the user application loading, the
    前記ユーザアプリケーションによって、前記システムファイルのハッシュ値を算出する処理と、 By the user application, a process of calculating a hash value of the system files,
    前記カーネルによって、前記ハッシュ値に電子署名を施す処理と、 By the kernel, a process of applying a digital signature to the hash value,
    前記ユーザアプリケーションによって、前記ハッシュ値と前記電子署名を前記ファイル検証装置へ送信する処理と、 By the user application, a process of transmitting the electronic signature and the hash value to the file verification device,
    を実行し、 The execution,
    前記ファイル検証装置は、 The file verification device,
    前記情報処理装置から前記ハッシュ値と前記電子署名を受信する受信手段と、 A receiving unit that receives the electronic signature and the hash value from the information processing apparatus,
    前記ハッシュ値に基づいて前記システムファイルの完全性を検証する第1の検証手段と、 A first verifying means for verifying the integrity of the system files on the basis of the hash value,
    前記電子署名に基づいて前記ハッシュ値の完全性を検証する第2の検証手段と、 Second verifying means for verifying the integrity of the hash value based on the electronic signature,
    を備えたことを特徴とするファイル検証システム。 File verification system, characterized in that with.
JP2009026589A 2009-02-06 2009-02-06 Information processing apparatus and file verification system Active 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 Active 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 (7)

* 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
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 キヤノン電子株式会社 The information processing apparatus, an information processing system and information processing method
JP6254414B2 (en) * 2012-10-09 2017-12-27 キヤノン電子株式会社 The information processing apparatus, an 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
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

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
Kauer OSLO: Improving the Security of Trusted Computing.
US9842203B2 (en) Secure system for allowing the execution of authorized computer program code
JP5497171B2 (en) System and method for providing a secure virtual machine
EP2691908B1 (en) System and method for virtual machine monitor based anti-malware security
CN101154256B (en) Methods and arrangements to launch trusted, co-existing environments
KR100692347B1 (en) System and method for resetting a platform configuration register
US8505103B2 (en) Hardware trust anchor
US9392016B2 (en) System and method for below-operating system regulation and control of self-modifying code
US8650642B2 (en) System and method for below-operating system protection of an operating system kernel
US9989043B2 (en) System and method for processor-based security
JP4855679B2 (en) Encapsulation of high platform module functional reliability by server management coprocessor subsystem internal tcpa
US7313705B2 (en) Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
JP6067449B2 (en) Information processing apparatus, information processing program
US9762399B2 (en) System and method for validating program execution at run-time using control flow signatures
JP6484255B2 (en) Host attestation, including trusted execution environment
KR100949022B1 (en) Projection of trustworthiness from a trusted environment to an untrusted environment
US7716494B2 (en) Establishing a trusted platform in a digital processing system
CN103907101B (en) System and method for protection rootkit kernel manager environment
JP4837985B2 (en) System and method for securely booting a computer having a trusted processing module
JP4498735B2 (en) Secure machine platform to interface with the operating system and customized control program
JP3363379B2 (en) Method and apparatus for protecting the application data secure storage area
US20120324236A1 (en) Trusted Snapshot Generation
US8782801B2 (en) Securing stored content for trusted hosts and safe computing environments
US7694121B2 (en) System and method for protected operating system boot using state validation
US20120255014A1 (en) System and method for below-operating system repair of related malware-infected threads and resources

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110819

A521 Written amendment

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 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130328

A521 Written amendment

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

Free format text: JAPANESE INTERMEDIATE CODE: R150