JP5346608B2 - Information processing apparatus and file verification system - Google Patents
Information processing apparatus and file verification system Download PDFInfo
- 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
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.
しかし、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.
以下、図面を参照し、本発明の実施形態を説明する。図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
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
CPU12は、メモリ11に格納された各種プログラムに従った処理を実行することで各種機能を実現する。カーネルプログラムがHDD10からメモリ11のカーネル領域110に読み込まれてカーネルが起動されると、CPU12は、プロセス管理やメモリ管理等のカーネルの機能に係る処理を実行する。また、ユーザアプリケーションプログラムがHDD10からメモリ11のユーザ領域111に読み込まれてユーザアプリケーションが起動されると、CPU12は、画像処理やデータ通信等のユーザアプリケーションの機能に係る処理を実行する。
The
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
次に、本実施形態による情報処理装置の動作を説明する。本実施形態では、(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
図2は、カーネルを起動するときの処理の様子を示している。カーネル起動制御部15は、外部から改竄できない、耐タンパ性を有するチップであり、処理を実行するCPUや、データを格納するためのメモリを内部に備えている。カーネル起動制御部15は、前述したTPMによって実現される。以下、カーネル起動制御部15の動作を説明する。
FIG. 2 shows a state of processing when starting the kernel. The kernel
情報処理装置が初めて起動されるとき、カーネル起動制御部15は、BIOS21、ブートローダ22、カーネル23のそれぞれのプログラムからハッシュ値を算出する。ハッシュ値は、ハッシュ関数を用いて算出される値であり、入力値に対して一意となる値である。カーネル起動制御部15は、算出したBIOS21、ブートローダ22、カーネル23のそれぞれのハッシュ値を内部のメモリに保持する。この時点では、BIOS21、ブートローダ22、カーネル23は改竄されていないものとする。
When the information processing apparatus is activated for the first time, the kernel
2回目以後の起動時にカーネル起動制御部15は、まず、BIOS21のプログラムのハッシュ値を算出し、そのハッシュ値を、内部のメモリに保持しているBIOS21のプログラムのハッシュ値と比較する。両方のハッシュ値が異なる場合、BIOS21が改竄されている可能性があるため、カーネル起動制御部15は、BIOS21の起動を中止する命令をCPU12に送る。この命令を受け取ったCPU12はBIOS21の起動を中止する。
At the second and subsequent boots, the kernel
一方、両方のハッシュ値が同一である場合、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
一方、両方のハッシュ値が同一である場合、ブートローダ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
一方、両方のハッシュ値が同一である場合、カーネル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
(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
カーネル空間30は、カーネルとしての機能を実現するための処理を実行するCPU12のリソースと、その処理を実行するためにメモリ11に割り当てられたカーネル領域110とを含んでいる。また、ユーザ空間40は、ユーザアプリケーションとしての機能を実現するための処理を実行するCPU12のリソースと、その処理を実行するためにメモリ11に割り当てられたユーザ領域111とを含んでいる。
The
カーネル空間30に属する起動制御部31は、プロセスがユーザアプリケーションを起動するときにカーネルに対して行うシステムコール(起動要求)を検出し、ユーザアプリケーションの起動を制御する。Linux(登録商標)には、カーネルにおいてセキュリティ機能を拡張するフレームワークであるLinux(登録商標) Security Module(LSM)が実装されている。LSMでは、ファイルやプロセスの操作が行われた際に、ユーザが定義したセキュリティ検証機構を呼び出して権限の検証やログの生成を行うための監視ポイントが設けられている。カーネル空間30に属する起動制御部31は、このLSMの監視ポイントに相当する。
The
検証部32は、起動制御部31によってユーザアプリケーションの起動要求が検出された場合に、ユーザアプリケーションプログラムの完全性を検証する。この検証を行うため、検証部32は検証に必要な公開鍵Kpを有している。起動制御部31および検証部32が動作している間、これらの実体(プログラム)はメモリ11のカーネル領域110内のプログラム領域に格納されている。また、HDD10に格納されているアプリケーションプログラムには、検証部32が有する公開鍵Kpに対応する秘密鍵でアプリケーションプログラムのハッシュ値が暗号化された電子署名が予め付加されている。
The
ユーザアプリケーションは以下のようにして起動される。まず、カーネル空間30またはユーザ空間40上の何らかのプロセスがユーザアプリケーションを起動するためにシステムコール(起動要求)を発生する(ステップS100)。起動制御部31はこの起動要求を検出し、検証部32に処理を受け渡す(ステップS110)。検証部32は、起動を要求されたユーザアプリケーションプログラムをHDD10からメモリ11のカーネル領域110内のデータ領域に読み込む(ステップS120)。
The user application is started as follows. First, a process on the
検証部32は、ユーザアプリケーションに付加されている電子署名を公開鍵Kpで復号し、ハッシュ値を得る。また、検証部32は、ユーザアプリケーションプログラムからハッシュ値を算出する。そして、検証部32は、電子署名を復号して得たハッシュ値と、ユーザアプリケーションプログラムから算出したハッシュ値とを比較することによって、ユーザアプリケーションの完全性を検証する(ステップS130)。
The
両方のハッシュ値が異なる場合、ユーザアプリケーションプログラムが改竄されている可能性がある。また、両方のハッシュ値が一致した場合、ユーザアプリケーションプログラムの完全性が保証される。検証部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
通知を受けた起動制御部31は、検証結果に基づいてアプリケーションの起動を制御する。検証の結果、改竄が検知された場合には、起動制御部31はアプリケーションの起動処理を中止する。また、検証の結果、ユーザアプリケーションプログラムの完全性が確認できた場合には、起動制御部31は、カーネル領域110内のデータ領域に格納されているユーザアプリケーションプログラムをユーザ領域111に移動し、ユーザアプリケーションを起動させる(ステップS150)。
Upon receiving the notification, the
カーネル空間30内の起動制御部31と検証部32の完全性はカーネルの起動時に保証されており、また、後述するように稼働中のカーネルの完全性も保証されることから、上記のようにしてカーネル空間30から起動されたユーザアプリケーションの完全性が保証される。上記と同様の方法はDigSigによっても実現されている。
The integrity of the
(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
DMA13から出力されたアドレスがカーネル領域110のアドレスに相当しない場合、すなわちDMA13がカーネル領域110以外の領域にアクセスしようとしている場合(図4のアクセス50)、メモリ管理部14はアクセスを許可する。また、DMA13から出力されたアドレスがカーネル領域110のアドレスに相当する場合、すなわちDMA13がカーネル領域110にアクセスしようとしている場合(図4のアクセス51)、メモリ管理部14はアクセスを禁止する。このようにして、DMA13からカーネル領域110に不正な上書きが行われることを防止し、稼働中のカーネルの完全性を保証することができる。
When the address output from the
図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
本実施形態では、変換テーブルとして、カーネル用とユーザアプリケーション用の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
メモリ管理部14は、変換テーブルに基づいて、CPU12から出力された仮想アドレスを物理アドレスに変換する。要求元がカーネルである場合、メモリ管理部14はカーネル用の変換テーブルにより仮想アドレスを物理アドレスに変換する。カーネル用の変換テーブルではカーネルはカーネル領域110にアクセスすることができる。また、要求元がユーザアプリケーションである場合、メモリ管理部14はユーザアプリケーション用の変換テーブルにより仮想アドレスを物理アドレスに変換する。具体的には以下のようになる。
The
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
第3の方法は、カーネルのバッファオーバフロー攻撃を防止することによって、カーネル領域110に不正な上書きが行われることを防止する方法である。カーネルのバッファオーバフロー攻撃では、カーネル領域110のデータ領域に悪意の実行プログラムが格納され、この実行プログラムがデータ領域上で起動され、悪意の処理が実行される。また、この処理によってカーネル領域110のプログラム領域に書き込みが行われ、カーネルプログラムが改竄されてしまう。
The third method is to prevent the
そこで、CPU12は、カーネルプログラムに従って、カーネル領域110のデータ領域の実行権限を実行不可とする設定を行う。したがって、ユーザアプリケーションによってカーネル領域110のデータ領域に悪意の実行プログラムが格納された場合でも、その実行プログラムの実行が許可されないので、カーネル領域110に不正な上書きが行われることを防止し、稼働中のカーネルの完全性を保証することができる。
Therefore, the
(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
カーネル空間30に属するハッシュインタフェース33は、カーネルとユーザアプリケーションの間でデータの入出力を行うためのキャラクタベースのインタフェースである。カーネル空間30に属する署名部34は秘密鍵Ksを保持しており、この秘密鍵Ksで暗号化を行い、電子署名を生成する。
The hash interface 33 belonging to the
検証用アプリケーション41は以下のようにしてHDD10内のシステムファイルの検証を行う。まず、検証用アプリケーション41はHDD10からメモリ11のユーザ領域111にシステムファイルを読み込み、システムファイルのハッシュ値を算出する。このハッシュ値はシステムファイルの状態を表しており、システムファイルが改竄されると、ハッシュ値が変化することになる。検証用アプリケーション41は、システムファイルを識別する情報(ファイル名等)と、算出したハッシュ値とを関連付けてリスト化したハッシュ値リストをユーザ領域111に保持する。また、検証用アプリケーション41は、ハッシュ値リスト全体からさらにハッシュ値を算出する(ステップS200)
The verification application 41 verifies the system file in the
検証用アプリケーション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
上記のようにしてHDD10に格納されたハッシュ値リストに基づいて、HDD10上のシステムファイルが改竄されているか否かを検証することができる。すなわち、所定のシステムファイルについて第1のタイミングで取得されたハッシュ値リスト内のハッシュ値と、第2のタイミングで取得されたハッシュ値リスト内のハッシュ値とを比較し、両方のハッシュ値が一致していなければ、システムファイルが改竄されたことを検知することができる。また、両方のハッシュ値が一致していれば、システムファイルが改竄されていないことを確認することができる。
Based on the hash value list stored in the
一方、ハッシュ値リストに付加されている電子署名を検証することにより、ハッシュ値リストが改竄されているか否かを検証することができる。すなわち、ハッシュ値リストに付加されている電子署名を秘密鍵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
上述したように、本実施形態によれば、カーネルが改竄されていないことが確認できた場合にカーネルが起動され、カーネルの稼働中は、メモリ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
上記のように完全な検証用アプリケーションがファイルの状態を確認することができるが、検証用アプリケーションの出力結果であるハッシュ値リストが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
本実施形態は公開サーバ等のサーバに適用可能なだけでなく、携帯電話等にも適用することが可能である。例えば、ユーザが所有する携帯電話の状態を電話会社がリモート検証したり、ユーザに貸し出したセットトップボックス等の家電製品の状態をサービス提供会社がリモート検証したりすることが可能である。 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
Claims (2)
前記カーネルのプログラムが格納されるカーネル領域と、前記ユーザアプリケーションのプログラムが格納されるユーザ領域とを有するメモリと、
前記カーネルの起動時に当該カーネルの完全性を検証するカーネル検証手段と、
前記メモリに格納されたプログラムに従って処理を実行する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:
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)
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)
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 |
-
2009
- 2009-02-06 JP JP2009026589A patent/JP5346608B2/en not_active Expired - Fee Related
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 |