JP5961059B2 - Information processing apparatus and activation method thereof - Google Patents
Information processing apparatus and activation method thereof Download PDFInfo
- Publication number
- JP5961059B2 JP5961059B2 JP2012159797A JP2012159797A JP5961059B2 JP 5961059 B2 JP5961059 B2 JP 5961059B2 JP 2012159797 A JP2012159797 A JP 2012159797A JP 2012159797 A JP2012159797 A JP 2012159797A JP 5961059 B2 JP5961059 B2 JP 5961059B2
- Authority
- JP
- Japan
- Prior art keywords
- hibernation
- encrypted data
- data
- information processing
- processing apparatus
- 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
- 238000000034 method Methods 0.000 title claims description 97
- 230000010365 information processing Effects 0.000 title claims description 66
- 230000004913 activation Effects 0.000 title claims description 14
- 230000006266 hibernation Effects 0.000 claims description 292
- 230000008569 process Effects 0.000 description 82
- 101100519158 Arabidopsis thaliana PCR2 gene Proteins 0.000 description 56
- 238000001994 activation Methods 0.000 description 20
- 238000013500 data storage Methods 0.000 description 19
- 230000007958 sleep Effects 0.000 description 11
- 101150102573 PCR1 gene Proteins 0.000 description 10
- 230000015654 memory Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000003752 polymerase chain reaction Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 208000019116 sleep disease Diseases 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、電源供給の切断時における動作状態を再起動時に復元するハイバネーションを行う情報処理装置およびその起動方法に関する。 The present invention relates to an information processing apparatus that performs hibernation that restores an operation state at the time of restart when power supply is cut off, and a startup method thereof.
コンピュータに搭載されているソフトウェアの改竄検知を実行するために、TPM(Trusted Platform Module)と呼ばれるセキュリティチップを用いる技術が提案されている。この技術によれば、予めソフトウェアのハッシュ値が一致した時だけ復号できるような条件を付けた上で、データを暗号化してハードディスクなどに保持しておく。そして、ソフトウェアが起動する際、ソフトウェアのハッシュ値をTPMに登録する。その後、ハードディスクに保持されている暗号化データを利用する際、ソフトウェアが暗号化データをTPMに送信する。すると、TPMは登録されているハッシュ値と、受信した暗号化データの復号条件とを比較し、一致した場合にだけ暗号化データを復号して、ソフトウェアに返信する。一方、改竄されたソフトウェアが起動した場合、TPMに登録されたハッシュ値と、暗号化データの復号条件が一致しないため、TPMは暗号化データの復号を実行しない。これにより、改竄されていない正当なソフトウェアだけが暗号化データを復号して利用することが可能となる。 A technique using a security chip called a TPM (Trusted Platform Module) has been proposed to detect falsification of software installed in a computer. According to this technology, data is encrypted and stored in a hard disk or the like after preconditions that allow decryption only when the hash values of the software match each other. When the software is started, the software hash value is registered in the TPM. Thereafter, when using the encrypted data stored in the hard disk, the software transmits the encrypted data to the TPM. Then, the TPM compares the registered hash value with the decryption condition of the received encrypted data, and decrypts the encrypted data only when they match, and returns it to the software. On the other hand, when the tampered software is activated, the hash value registered in the TPM and the decryption condition of the encrypted data do not match, so the TPM does not decrypt the encrypted data. As a result, only legitimate software that has not been tampered with can decrypt and use the encrypted data.
このTPMの技術をハイバネーションに応用した技術が提案されている(例えば特許文献1参照)。ここでハイバネーションとは、サスペンド時に揮発性メモリの内容をハイバネーションデータとして外部記憶装置(HDD)に保存してから、コンピュータの電源を切る技術である。そして電源の再投入時に、HDDに保存されているハイバネーションデータを用いて揮発性メモリの内容を復元することで、サスペンド前の状態を復元する。 A technique in which this TPM technique is applied to hibernation has been proposed (see, for example, Patent Document 1). Here, hibernation is a technique in which the contents of the volatile memory are stored as hibernation data in an external storage device (HDD) when suspended, and then the computer is turned off. When the power is turned on again, the state before suspend is restored by restoring the contents of the volatile memory using the hibernation data stored in the HDD.
上記特許文献1に記載の技術によれば、ハイバネーションによるサスペンド時に、ハイバネーションデータのハッシュ値をTPMに登録し、登録した内容が暗号化データの復号条件に含まれるように、暗号化データに追加する。そして、サスペンド復帰時に、ハイバネーションデータのハッシュ値をTPMに登録してから、サスペンド前の状態を復元する。その後、暗号化データを利用する際には、暗号化データに含まれる複数の復号条件のうちの何れかと、TPMに登録されているハッシュ値とが一致した場合にのみ、暗号化データの復号を許可している。
According to the technique described in
特許文献1に記載の技術によれば、ソフトウェアの通常起動時に加え、ハイバネーション復帰時にも同様にソフトウェアの正当性を検証することが可能となる。このハイバネーション復帰における検証時には、暗号化データの復号条件にハイバネーションデータが反映されているため、すなわちハイバネーションデータの正当性検証が実行される。したがって、例えばハイバネーションによる休止中にハイバネーションデータが改竄された場合には暗号化データの利用を防止することが可能になる。
According to the technique described in
しかしながら、上記特許文献1に記載されたハイバネーションにTPMを応用する技術によれば、TPMにハッシュ値を登録する際、その時点で既にTPMに登録されているハッシュ値を考慮していない。そのため、既にTPMに何らかのハッシュ値が登録されていた場合、ハイバネーションデータが正当であるにも関わらず、ハイバネーション復帰時に暗号化データ内の復号条件とTPMに登録されているハッシュ値が一致しない可能性がある。上記技術では例えば、2回目以降のハイバネーション(再ハイバネーション)時には、前回のハイバネーション時のハイバネーションデータのハッシュ値がTPMに登録されているため、電源切断後のハイバネーション復帰が行えないことが考えられる。
However, according to the technique of applying TPM to hibernation described in
本発明は係る問題点に鑑み、登録値に応じてセキュリティデータの暗号化および復号を行うセキュリティチップを用いてハイバネーションを実行する情報処理装置において、以下の機能を実現することを目的とする。すなわち、電源供給の切断時にセキュリティチップに既に登録されている値を考慮して、再起動時に電源切断前の動作状態を復元すること可能とする。 An object of the present invention is to realize the following functions in an information processing apparatus that performs hibernation using a security chip that encrypts and decrypts security data according to a registered value. That is, considering the value already registered in the security chip when the power supply is cut off, it is possible to restore the operation state before the power cut off at the time of restart.
上記目的を達成するための一手段として、本発明の情報処理装置は以下の構成を備える。すなわち、情報処理装置の電源供給を管理する電源管理手段と、揮発性の主記憶手段および不揮発性の補助記憶手段と、セキュリティチップの登録値に基づき、情報処理装置のセキュリティ維持に用いられるセキュリティデータの暗号化および復号を行う暗号手段と、前記補助記憶手段を利用してハイバネーションを実行するハイバネーション制御手段と、を有し、前記ハイバネーション制御手段は、前記電源管理手段から前記電源供給の切断許可要求を受信した場合、前記補助記憶手段に予め保持された第1の暗号化データを前記暗号手段に復号させ、前記主記憶手段の記憶内容を示す動作状態データを前記補助記憶手段に格納し、前記動作状態データのハッシュ値を前記セキュリティチップに登録し、前記暗号手段によって前記第1の暗号化データから復号されたセキュリティデータを暗号化した第2の暗号化データを生成して、前記第2の暗号化データを前記補助記憶手段に格納し、前記電源管理手段に前記電源供給の切断許可を送信する、ことを特徴とする。 As a means for achieving the above object, an information processing apparatus of the present invention comprises the following arrangement. That is, security data used for maintaining the security of the information processing device based on the power management means for managing the power supply of the information processing device, the volatile main storage means and the nonvolatile auxiliary storage means, and the registered value of the security chip Encryption means for performing encryption and decryption, and hibernation control means for executing hibernation using the auxiliary storage means, wherein the hibernation control means requests the power supply disconnection request from the power management means Is received, the first encrypted data held in advance in the auxiliary storage means is decrypted by the encryption means, operation state data indicating the storage content of the main storage means is stored in the auxiliary storage means, A hash value of operation state data is registered in the security chip, and the first encryption is performed by the encryption means. Generating second encrypted data obtained by encrypting the security data decrypted from the data, storing the second encrypted data in the auxiliary storage means, and permitting the power management means to disconnect the power supply. It transmits, It is characterized by the above-mentioned.
本発明によれば、登録値に応じてセキュリティデータの暗号化および復号を行うセキュリティチップを用いてハイバネーションを実行する情報処理装置において、以下の効果が得られる。すなわち、電源供給の切断時にセキュリティチップに既に登録されている値を考慮して、再起動時に電源切断前の動作状態を復元することが可能となる。 According to the present invention, the following effects can be obtained in an information processing apparatus that performs hibernation using a security chip that encrypts and decrypts security data according to a registered value. In other words, it is possible to restore the operating state before the power is turned off at the time of restart in consideration of the value already registered in the security chip when the power supply is turned off.
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関わる本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. The following embodiments do not limit the present invention related to the scope of claims, and all combinations of features described in the present embodiments are essential for the solution means of the present invention. Is not limited.
<第1実施形態>
●装置構成
本実施形態の情報処理装置は、電源供給の切断時における動作状態を再起動時に復元するハイバネーション機能を有する。図1は、本実施形態に係る情報処理装置の基本構成を示すブロック図である。図1に示す情報処理装置18は、例えば一般に普及しているパーソナルコンピュータ(PC)であり、ROM11、HDD12、TPM13、RAM14、CPU19、およびパワーコントローラ20から構成される。
<First Embodiment>
Device Configuration The information processing apparatus according to the present embodiment has a hibernation function that restores the operating state when the power supply is cut off upon restart. FIG. 1 is a block diagram showing a basic configuration of the information processing apparatus according to the present embodiment. An
ROM11は、物理的、或いは論理的な書き換えが不可能な不揮発性メモリであり、BIOS15や、不図示の各種プログラム及びデータを記憶可能な補助記憶部である。ROM11は不揮発性メモリであるため、電源の供給がない場合も記憶内容を保持し続けることが可能である。BIOS15は、情報処理装置18の全体を制御するプログラムであり、情報処理装置18に電源が投入された際、装置内部で最初に起動されるプログラムである。
The
HDD12は、ブートローダー16やOS17の他、後述するハイバネーションデータ(動作状態データ)やハイバネーション補助値、及び不図示の各種プログラム及びデータを記憶可能な補助記憶部である。HDD12はROM11と同様に、電源の供給がない場合も記憶内容の保持を継続することが可能である。ブートローダー16は、起動するOSを制御するプログラムである。OS17は、HDD12等に保持されているアプリケーションプログラムの起動、RAM14のメモリ管理、不図示のキーボードからの入力や画面出力等の入出力機能の制御を行うプログラムである。
The
TPM13は、内部のレジスタへの登録値を用いてデータの暗号化および復号を行うセキュリティチップであり、耐タンパー性を有する。耐タンパー性とは、外部からの解析を困難にすると共に、外部から解析しようとした場合に内部に記憶されているプログラム或いはデータが破壊されてしまうような特性である。TPM13はその内部に、PCRと呼ばれる複数のレジスタ(PCR0,PCR1,PCR2)を備える。PCRは揮発性メモリによって構成されており、電源の供給がある間だけその内容を保持することができる。またTPM13は、外部から入力されたデータを所定の形式等に変換して所定のPCRに記憶する、「登録」と呼ばれる機能を備える。具体的な登録形式としては、以下の式(1)に従って算出されるハッシュ値である。
The TPM 13 is a security chip that encrypts and decrypts data using values registered in an internal register, and has tamper resistance. The tamper resistance is a characteristic that makes it difficult to analyze from the outside and destroys the program or data stored inside when trying to analyze from the outside. The
DATA_i+1=h(DATA_i|INPUT) …(1)
式(1)において、「INPUT」はTPM13の外部から入力されたデータ或いはそのハッシュ値であり、DATA_iはTPM13に登録する時点で既にPCRに記録されている値である。またh(x)は、値xに対するハッシュ関数であり、例えば原文(x)から固定長の疑似乱数を生成する等の演算により、ハッシュ値を算出する。ハッシュ関数としては、SHA1,SHA256,SHA512等の既存のハッシュ関数を利用することが可能である。また、「x|y」は値xと値yの連結である。また、DATA_i+1は外部から値INPUTが入力された場合に算出される結果値であり、DATA_i+1が所定のPCRに記憶されることになる。
DATA_i + 1 = h (DATA_i | INPUT)… (1)
In Expression (1), “INPUT” is data input from the outside of the
RAM14は、CPU19にて処理を行うためにプログラムや各種データ(動作状態)を一時的に格納する主記憶部である。RAM14は揮発性メモリであるため、電源供給が継続されている期間のみ記憶内容を保持することができる。
The
CPU19は、情報処理装置18内の各部の動作を制御、或いはRAM14にロードされたプログラムを実行することのできる電子回路である。
The
パワーコントローラ20は、情報処理装置18に対する、不図示の外部電源または内部電源からの電源供給を管理する電源管理部である。本実施形態のハイバネーション処理は、パワーコントローラ20による電源供給の切断許可要求の発生に応じて開始される。
The
以上、本実施形態における情報処理装置の構成について説明した。以下では、本実施形態の情報処理装置における起動処理、ハイバネーション処理、ハイバネーション復帰処理について説明するが、それぞれの説明を補足するために図7を併用する。図7は、情報処理装置18の内部におけるデータ遷移の具体例を示す図である。すなわち、後述する通常起動処理、ハイバネーション処理、ハイバネーション復帰処理によって、PCRやHDD12に保持されるデータ(後述するハイバネーションデータやハイバネーション補助値)がどのように変化するかを示している。以下、各処理を説明するフローチャートと併せて、図7に示す状態遷移を参照されたい。
The configuration of the information processing apparatus in the present embodiment has been described above. Hereinafter, a startup process, a hibernation process, and a hibernation return process in the information processing apparatus according to the present embodiment will be described. FIG. 7 is also used in order to supplement each description. FIG. 7 is a diagram illustrating a specific example of data transition in the
●起動処理(全体)
まず、本実施形態の情報処理装置における起動処理について、図2のフローチャートを用いて説明する。パワーコントローラ20の制御により情報処理装置18に電源が投入されると、情報処理装置18はBIOS15を最初に起動する(S21)。尚、情報処理装置18への電源投入前は、図7の状態71に示すように、TPM13内のPCR、RAM14、HDD12内のハイバネーションデータ(HBR)、の値は共に「0」である。そしてBIOS15が、TPM13の初期化を実行する(S22)。この初期化によって、TPM13内の全てのPCRは夫々、所定の値に初期化される。本実施形態では全てのPCRが「0」に初期化されるものとして説明するが、本発明はこの例に限定されず、全てのPCRを「0」以外の値に初期化したり、PCR毎に異なる値に初期化することも可能である。
● Startup process (whole)
First, the startup process in the information processing apparatus of this embodiment will be described with reference to the flowchart of FIG. When the
TPM13の初期化が完了すると、BIOS15は自分自身のハッシュ値を上記式(1)に従って算出し、TPM13に登録する(S23)。本実施形態では、BIOSのハッシュ値はPCR0に登録されるとする。本実施形態ではBIOS15の登録前に、PCRはS22で「0」に初期化されているため、結果的に以下の式(2)で算出される値がPCR0に登録される。
When the initialization of the
PCR0=h(0|h(BIOS)) …(2)
式(2)において、「BIOS」はBIOS15のプログラムコードである。S23のBIOS登録処理の結果、図7の状態72に示すように、PCR0にh(0|h(BIOS))が登録されることになる。
PCR0 = h (0 | h (BIOS))… (2)
In the formula (2), “BIOS” is a program code of BIOS15. As a result of the BIOS registration process in S23, h (0 | h (BIOS)) is registered in PCR0 as shown in
BIOS15の登録が完了すると、BIOS15は今回の起動がスリープからの復帰であるか否かを判断する(S24)。ここでスリープとは、情報処理装置18に電源を供給し続けた状態で、装置内部におけるCPU19等の各種回路の動作を停止させる省電力モードのことである。スリープ中は電源が供給し続けられるため、RAM14はその記憶内容が保持され続けることに留意されたい。
When the registration of the
S24でスリープ復帰であると判断されると、後述する暗号化データのうち、ハイバネーション用の暗号化データを削除して(S25)、起動処理を終了する。このとき、ハイバネーション用の暗号化データが存在していない場合には、何も処理を実行しない。スリープ復帰の場合は、RAM14にスリープ前の情報処理装置18の動作状態が保持されているため、この時点で情報処理装置18はスリープ前の動作状態に復帰したことになる。
If it is determined in S24 that the mode is the return from sleep, hibernation encrypted data is deleted from encrypted data to be described later (S25), and the activation process is terminated. At this time, if there is no encrypted data for hibernation, no processing is executed. In the case of returning from sleep, since the operation state of the
一方、S24でスリープ復帰でないと判断されると、次にBIOS15はハイバネーション復帰であるか否かを判断する(S26)。ここでハイバネーションとは、情報処理装置18への電源の供給を行わない省電力モードのことであり、ハイバネーション復帰とは、ハイバネーションによる電源供給切断後に、電源供給が再開されることによって情報処理装置18が起動されることである。なお、ハイバネーション中は電源の供給が行われないため、RAM14の内容及びCPU19の状態は保持されないことに留意されたい。このため、ハイバネーション前に、RAM14の内容及びCPU19の状態をハイバネーションデータとして生成し、該生成したハイバネーションデータをHDD12に記録した後、電源供給を停止する。ハイバネーション処理の詳細については後述する。
On the other hand, if it is determined in S24 that the sleep is not resumed, the
S26でハイバネーション復帰であると判断されると、ハイバネーション復帰処理を実行する(S27)が、ハイバネーション復帰でないと判断されると、通常起動処理を実行する(S28)。なお、S27のハイバネーション復帰処理、及びS28の通常起動処理の詳細については後述する。 If it is determined in S26 that the hibernation is restored, the hibernation restoration process is executed (S27). If it is determined that the hibernation is not restored, the normal activation process is executed (S28). Details of the hibernation return process in S27 and the normal activation process in S28 will be described later.
●通常起動処理(S28)
以下、上記S28における通常起動処理について、図3のフローチャートを用いて説明する。まず、BIOS15は、ブートローダー16のハッシュ値を式(1)に従って算出し、TPM13に登録する(S31)。本実施形態では、ブートローダーのハッシュ値はPCR1に登録するものとする。PCRはS22で「0」に初期化されているため、結果的に以下の式(3)で算出される値がPCR1に登録される。
Normal startup process (S28)
Hereinafter, the normal activation process in S28 will be described with reference to the flowchart of FIG. First, the
PCR1=h(0|h(BL)) …(3)
式(3)において、「BL」はブートローダー16のプログラムコードである。S31のブートローダー登録処理の結果、図7の状態72に示すように、PCR1にh(0|h(BL))が登録されることになる。
PCR1 = h (0 | h (BL))… (3)
In Expression (3), “BL” is the program code of the
ブートローダー16の登録が完了すると、BIOS15はブートローダー16を起動する(S32)。ブートローダー16が起動すると、ブートローダー16はOS17のハッシュ値を式(1)に従って算出し、TPM13に登録する(S33)。本実施形態では、OS17のハッシュ値はPCR2に登録するものとする。PCRはS22で「0」に初期化されているため、結果的に以下の式(4)で算出される値がPCR2に登録される。
When the registration of the
PCR2=h(0|h(OS)) …(4)
式(4)において、「OS」はOS17のプログラムコードである。S33のOS登録処理の結果、図7の状態72に示すように、PCR2にh(0|h(OS))が登録されることになる。
PCR2 = h (0 | h (OS))… (4)
In Expression (4), “OS” is the program code of OS17. As a result of the OS registration process in S33, h (0 | h (OS)) is registered in PCR2, as shown in
OS17の登録が完了すると、ブートローダー16はOS17を起動し(S34)、通常起動処理を終了する。
When the registration of the
以上説明した起動処理(図2)、及び通常起動処理(図3)により、情報処理装置18は図7の状態72に示すように、PCR0,PCR1,PCR2に、各ソフトウェアコンポーネントのハッシュ値が登録された状態になる。
Through the startup process (FIG. 2) and the normal startup process (FIG. 3) described above, the
●ハイバネーション処理
以下、本実施形態の情報処理装置18において実行されるハイバネーション処理について、図4のフローチャートを用いて説明する。ハイバネーション処理は、情報処理装置18が電源投入後に図2に示す起動処理によって起動した後、電源供給が切断される際に実行される。例えば、ユーザーが不図示のキーボードやマウスを用いて情報処理装置18に対してハイバネーションを指示した場合に、パワーコントローラ20から電源供給の切断許可要求が発行され、これを受信したBIOS15或いはOS17によって実行される。或いは、情報処理装置18への入力が所定時間ない場合に、自動的に実行される。本実施形態では、OS17がハイバネーション処理を実行するハイバネーション制御手段として機能するものとして説明を続けるが、本発明はこの例に限定されず、BIOS15でもハイバネーション処理を同様に実行可能である。
Hibernation Process Hereinafter, the hibernation process executed in the
OS17はまず、HDD12に予め確保されている暗号化データ記憶領域に、ハイバネーション用暗号化データがあるか否かを判定する(S41)。ハイバネーション用暗号化データがある場合にはハイバネーション用暗号化データを取得し(S42)、ない場合には通常起動用暗号化データを取得する(S43)。
First, the
ここで、本実施形態における暗号化データ記憶領域、及び暗号化データについて、図8を用いて説明する。 Here, the encrypted data storage area and the encrypted data in this embodiment will be described with reference to FIG.
まず図8(d)に、本実施形態における暗号化データ記憶領域の構成例を示す。暗号化データ記憶領域は、通常起動用暗号化データ記憶領域81と、ハイバネーション用暗号化データ記憶領域82から構成される。通常起動用暗号化データ記憶領域81には後述する通常起動用の暗号化データが記録され、ハイバネーション用暗号化データ記憶領域82には後述するハイバネーション用の暗号化データが記録される。これら暗号化データ記憶領域としては、HDD12等の不揮発性の記憶媒体を利用する。
First, FIG. 8D shows a configuration example of the encrypted data storage area in the present embodiment. The encrypted data storage area includes a normal startup encrypted
次に、図8(a),(b)を用いて、本実施形態における暗号化データについて説明する。本実施形態における暗号化データは、復号条件付きで暗号化されたデータである。復号条件とは、TPM13内のPCRの値がどのような値である時に、暗号化データの復号を許可するかを示す条件のことである。
Next, encrypted data in this embodiment will be described with reference to FIGS. 8 (a) and 8 (b). The encrypted data in this embodiment is data encrypted with a decryption condition. The decryption condition is a condition indicating what value the PCR value in the
図8(a)は、本実施形態における暗号化データの例を示す。図8(a)において、DataPが例えば装置固有の秘密情報等、情報処理装置18のセキュリティ維持に用いられるセキュリティデータである。また、h(0|h(BIOS)),h(0|h(BL))及びh(0|h(OS))が復号条件(第1の復号条件)であり、セキュリティデータと復号条件の全体が暗号化されている。以降の説明では、復号条件が左から順にPCR0,PCR1,PCR2の値に対応するものとして説明する。即ち、図8(a)に示す暗号化データの場合、PCR0がh(0|h(BIOS))、PCR1がh(0|h(BL))、及びPCR2がh(0|h(OS))である場合に、暗号化データを復号可能である。暗号化データを復号することで、結果的にセキュリティデータ(DataP)を取得できる。ここで、PCR0,PCR1,PCR2には夫々、上記式(2),(3),(4)により算出された値が格納される。即ち、図8(a)に示す暗号化データは、正当なBIOS15、ブートローダー16、及びOS17を用いて通常起動した場合に復号可能な暗号化データであることを示している。図8(a)に示す暗号化データは、通常起動用暗号化データ(第1の暗号化データ)として通常起動用暗号化データ記憶領域81に保持しておく。なお、通常起動用暗号化データは、情報処理装置18のメーカーまたはユーザー、或いはソフトウェアのベンダーが予め生成しておくようにする。
FIG. 8A shows an example of encrypted data in the present embodiment. In FIG. 8 (a), DataP is security data used for maintaining the security of the
図8(b)は、本実施形態における暗号化データの他の例を示す。図8(b)は、復号条件(第2の復号条件)がh(0|h(BIOS))及びh(h(0|h(OS))|h(HBR1))である暗号化データを示している。即ち、図8(b)に示す暗号化データの場合、PCR0がh(0|h(BIOS))で、PCR2がh(h(0|h(OS))|h(HBR1))である場合に、暗号化データを復号可能である。ここで、PCR0には上記式(2)により算出される値が格納され、PCR2には後述する式(5)によって算出される、ハイバネーションデータに基づく値が格納される。即ち、図8(b)に示す暗号化データは、正当なBIOS15、及びハイバネーションデータHBR1を用いて、後述するハイバネーション復帰処理を実行した場合に復号可能な暗号化データであることを示している。図8(b)に示す暗号化データは、後述するS410で、ハイバネーション用暗号化データ(第2の暗号化データ)として、ハイバネーション用暗号化データ記憶領域82に記録される。
FIG. 8 (b) shows another example of encrypted data in the present embodiment. FIG. 8 (b) shows encrypted data whose decryption conditions (second decryption conditions) are h (0 | h (BIOS)) and h (h (0 | h (OS)) | h (HBR1)). Show. That is, in the case of the encrypted data shown in FIG. 8 (b), when PCR0 is h (0 | h (BIOS)) and PCR2 is h (h (0 | h (OS)) | h (HBR1)) In addition, the encrypted data can be decrypted. Here, the value calculated by the above equation (2) is stored in PCR0, and the value based on the hibernation data calculated by equation (5) described later is stored in PCR2. That is, the encrypted data shown in FIG. 8B is encrypted data that can be decrypted when a hibernation restoration process described later is executed using the
したがって、通常起動した後に初回のハイバネーション処理を実行する段階では、ハイバネーション用暗号化データ記憶領域82には暗号化データが記録されていない。これにより、初回のハイバネーション処理の際は、S41においてハイバネーション用暗号化データは「なし」と判定され、結果としてS43で通常起動用暗号化データが取得される。一方、2回目以降のハイバネーション処理(例えば、ハイバネーション復帰後のハイバネーション処理)を実行する場合、前回のハイバネーション処理中に、S410(後述)で、ハイバネーション用暗号化データ記憶領域82に暗号化データが記録されている。これにより、2回目以降のハイバネーション処理の際は、S41においてハイバネーション用暗号化データが「ある」と判定され、結果としてS42でハイバネーション用暗号化データが取得される。
Therefore, at the stage of executing the first hibernation process after the normal activation, the encrypted data is not recorded in the hibernation encrypted
図4に戻って説明を続ける。上述したようにS42或いはS43において暗号化データを取得した後、OS17は、TPM13を用いて暗号化データを復号する(S44)。そして、TPM13による暗号化データの復号が成功したか否かを判定し(S45)、復号成功と判定された場合は処理をS46に進め、失敗したと判定した場合はハイバネーション処理を終了する。
Returning to FIG. 4, the description will be continued. As described above, after acquiring the encrypted data in S42 or S43, the
ここで、S45における復号成功か否かの判定方法について説明する。本実施形態において情報処理装置18は、上記図3で説明した通常起動処理、或いは後述する図5に示すハイバネーション復帰処理によって起動することが可能である。ここでは、情報処理装置18が通常起動処理によって起動した場合について説明する。なお、ハイバネーション復帰処理によって起動した場合については後述する。
Here, a method for determining whether or not the decoding is successful in S45 will be described. In the present embodiment, the
上述したように、情報処理装置18が通常起動した場合、BIOS15,ブートローダー16,OS17が改竄されていなければ、PCR0〜PCR2には夫々、h(0|h(BIOS)),h(0|h(BL)),h(0|h(OS))が登録されている。また、本実施形態では上述したように、図8(a)に示す暗号化データを復号しようとしている。よってTPM13は、各PCRに登録されたハッシュ値と、暗号化データの復号条件が一致するため、OS17から受信した暗号化データを復号することができる。一方、BIOS15,ブートローダー16,OS17の少なくとも何れかが改竄されている場合には、PCR0,PCR1,PCR2の何れかに、夫々h(0|h(BIOS)),h(0|h(BL)),h(0|h(OS))以外の値が登録されている。よってこの場合、TPM13はOS17から受信した暗号化データを復号しない。すなわちS45では、各PCRに登録されたハッシュ値と暗号化データの復号条件を比較し、完全一致であれば復号成功と判定し、そうでなければ復号失敗と判定する。
As described above, when the
S45で暗号化データの復号が成功したと判定された場合、OS17は、RAM14の内容及びCPU19の状態に基づいてハイバネーションデータを生成し(S46)、HDD12に保持する(S47)。
If it is determined in S45 that the decryption of the encrypted data has been successful, the
ここで、ハイバネーションデータについて説明する。上述したようにハイバネーションとは、情報処理装置18に電源を供給しない省電力モードである。電源が供給されないため、揮発性メモリであるRAM14、及びCPU19内のレジスタ(不図示)の内容はハイバネーション中に消去されてしまう。このため、ハイバネーション前にRAM14、及びCPU19内のレジスタの内容をファイルにコピーすることでハイバネーションデータを生成し、該ファイルをHDD12に保持するようにしている。HDD12は不揮発性であるため、電源供給が断たれた後もハイバネーション前のRAM14、及びCPU19内のレジスタの記憶内容を保持することができる。RAM14及びCPU19内のレジスタには、実行するプログラム、実行中にプログラムが利用するデータ、及び現在実行しているプログラムのアドレス等のデータが含まれている。本実施形態では、これらのデータを動作状態データと呼ぶ。即ちハイバネーションデータは、ハイバネーション時の動作状態データがファイルとして保持されたものである。
Here, the hibernation data will be described. As described above, hibernation is a power saving mode in which power is not supplied to the
本実施形態では、図7の状態73に示すように、1回目のハイバネーション処理時の動作状態を「動作状態1」と表記し、生成したハイバネーションデータをHBR1として表記する。
In the present embodiment, as shown in
次にOS17は、ハイバネーションデータのハッシュ値を上記式(1)に従って算出し、TPM13に登録する(S48)。本実施形態では、ハイバネーションデータのハッシュ値はPCR2に登録するものとする。ここでPCR2には、図3に示した通常起動処理において、S33で既にOS17のハッシュ値がh(0|h(OS))として登録されている。したがってS48では、結果的に以下の式(5)で算出される値がPCR2に登録される。
Next, the
PCR2=h(h(0|h(OS))|h(HBR1)) …(5)
式(5)において、「HBR1」はハイバネーションデータである。S48における登録処理の結果、図7の状態73に示すように、PCR2にh(h(0|h(OS))|h(HBR1))が登録される。すなわちPCR2には、通常起動時に登録されたh(0|h(OS))に対し、1回目のハイバネーションによってハイバネーションデータHBR1のハッシュ値h(HBR1)が追加登録される。
PCR2 = h (h (0 | h (OS)) | h (HBR1)) (5)
In Expression (5), “HBR1” is hibernation data. As a result of the registration process in S48, h (h (0 | h (OS)) | h (HBR1)) is registered in PCR2, as shown in
S48におけるハイバネーションデータの登録後、OS17はS44での復号により得られたセキュリティデータ(DataP)をTPM13を用いて暗号化する(S49:暗号手段)。TPM13ではすなわち、暗号化処理時点でのPCR0,PCR2の値を復号条件として、受信したセキュリティデータ(DataP)を暗号化し、該暗号化データをOS17に返信する。暗号化処理時点においてPCR0,PCR2には夫々、h(0|h(BIOS)),h(h(0|h(OS))|h(HBR1))が登録されているため、これらを復号条件(第2の復号条件)として、図8(b)に示す暗号化データが生成される。S49ではすなわち、S44で復号されたセキュリティデータ(DataP)を、現時点でのTPM13への登録内容を反映した復号条件により復号可能となるように暗号化して、ハイバネーション用暗号化データを生成する。
After registering the hibernation data in S48, the
そしてOS17は、TPM13が暗号化した暗号化データをハイバネーション用暗号化データ記憶領域82に格納し(S410)、パワーコントローラ20に電源供給の切断許可を送信することでハイバネーション処理を終了する。このとき、ハイバネーション用暗号化データ記憶領域82に既に暗号化データが存在していた場合には、これを上書きする。これにより、ハイバネーション処理が終了した時点で、暗号化データ記憶領域には、図8(a)に示す通常起動用暗号化データと、図8(b)に示すハイバネーション用暗号化データの2つが保持されていることになる。
Then, the
以上、本実施形態におけるハイバネーション処理について説明した。このハイバネーション処理により、TPM13内のPCR0,PCR1,PCR2は、図7の状態73に示すようになる。その後、情報処理装置18への電源供給が断たれると、揮発性メモリであるPCR,RAM14,CPU19のレジスタはデータが消去され(0になり)、図7の状態74に示す状態になる。
The hibernation process according to the present embodiment has been described above. By this hibernation process, PCR0, PCR1, and PCR2 in the
●ハイバネーション復帰処理
次に、本実施形態の情報処理装置において実行されるハイバネーション復帰処理について、図5のフローチャートを用いて説明する。本実施形態ではBIOS15がハイバネーション復帰処理を実行するものとして説明するが、本発明はこの例に限定されず、OS17でも同様にハイバネーション復帰処理を実行可能である。尚、上述したように、本実施形態におけるハイバネーション復帰処理は、図2のS23でBIOSが登録された後、S27で実行される。したがってハイバネーション復帰処理の開始時には、図7の状態75に示すように、PCR0にはh(0|h(BIOS))が登録されていることに留意されたい。
Hibernation Return Process Next, the hibernation return process executed in the information processing apparatus of this embodiment will be described with reference to the flowchart of FIG. In the present embodiment, the
BIOS15はまず、OS17を式(1)に従ってTPM13に登録する(S51)。本実施形態では、OSのハッシュ値はPCR2に登録する。なお、図2のS22で各PCRは「0」に初期化されているため、結果的に以下の式(6)で算出される値がPCR2に登録される。
First, the
PCR2=h(0|h(OS)) …(6)
式(6)において、「OS」はOS17のプログラムコードである。
PCR2 = h (0 | h (OS))… (6)
In Expression (6), “OS” is the program code of OS17.
S51でOS17の登録が完了した後、BIOS15はハイバネーション補助値の登録を実行する(S52)。ここで、S52におけるハイバネーション補助値の登録処理について、図6のフローチャートを用いて説明する。
After the OS17 registration is completed in S51, the
BIOS15はまず、カウンタiを1に初期化する(S61)。そして、i番目のハイバネーション補助値がHDD12に存在するか否かを判断し(S62)、存在する場合は処理をS63に進め、存在しない場合はハイバネーション補助値登録処理を終了する。
First, the
ここで、本実施形態におけるハイバネーション補助値について説明する。ハイバネーション補助値とは、本実施形態におけるハイバネーション復帰処理を確実に行うために参照される補助データであり、具体的にはハイバネーション時に生成されたハイバネーションデータのハッシュ値である。ハイバネーションデータのハッシュ値は、後述するS54で生成され、ハイバネーション補助値としてHDD12に累積格納される。すなわちハイバネーション補助値は、ハイバネーション毎に異なる値が生成され、これが累積されることで、ハイバネーションの回数分に応じた数の、それぞれ値が異なるハイバネーション補助値がHDD12に保持されることになる。HDD12におけるハイバネーション補助値の累積状況はすなわち、ハイバネーションの履歴を表わすことになる。
Here, the hibernation assistance value in the present embodiment will be described. The hibernation auxiliary value is auxiliary data that is referred to in order to reliably perform the hibernation restoration process in the present embodiment, and specifically, is a hash value of the hibernation data generated at the time of hibernation. The hash value of the hibernation data is generated in S54, which will be described later, and accumulated in the
図9は、本実施形態におけるハイバネーション補助値の例を説明する図である。図9(a),図9(b),図9(c)は夫々、1回目のハイバネーション復帰後、2回目のハイバネーション復帰後、3回目のハイバネーション復帰後、のハイバネーション補助値を示している。図9において、h(HBR1),h(HBR2),h(HBR3)は夫々、1回目のハイバネーションデータのハッシュ値、2回目のハイバネーションデータのハッシュ値、3回目のハイバネーションデータのハッシュ値である。図9に示すように本実施形態では、ハイバネーション補助値の数が、ハイバネーション復帰毎に増加する。なお本実施形態では、ハイバネーション復帰処理時に、後述するS54でハイバネーション補助値が生成・追加されるため、1回目のハイバネーション復帰時にはハイバネーション補助値が1つも存在しないことに留意されたい。即ち、1回目のハイバネーション復帰時には、S62において「NO」と判定され、ここ(S52)でのハイバネーション補助値の登録は行われない。 FIG. 9 is a diagram for explaining an example of the hibernation auxiliary value in the present embodiment. FIGS. 9 (a), 9 (b), and 9 (c) show the hibernation assistance values after the first hibernation return, the second hibernation return, and the third hibernation return, respectively. In FIG. 9, h (HBR1), h (HBR2), and h (HBR3) are a hash value of the first hibernation data, a hash value of the second hibernation data, and a hash value of the third hibernation data, respectively. As shown in FIG. 9, in the present embodiment, the number of hibernation assistance values increases each time hibernation returns. Note that in the present embodiment, during the hibernation restoration process, a hibernation assistance value is generated and added in S54, which will be described later, and therefore it should be noted that there is no hibernation assistance value at the time of the first hibernation restoration. That is, at the time of the first hibernation return, it is determined “NO” in S62, and the hibernation auxiliary value is not registered here (S52).
図6に戻って説明を続ける。S62でHDD12にi番目のハイバネーション補助値が存在すると判定された場合は、i番目のハイバネーション補助値のハッシュ値をTPM13に登録する(S63)。本実施形態では、ハイバネーション補助値のハッシュ値はPCR2に登録する。なお、S51でPCR2には既にh(0|h(OS))が登録されているため、結果的に以下の式(7)で算出される値がPCR2に登録される。
Returning to FIG. If it is determined in S62 that the i-th hibernation auxiliary value exists in the
PCR2=h(h(0|h(OS))|h(HBR1)) …(7)
式(7)において、「h(HBR1)」は初回、すなわち1回目のハイバネーション補助値である。
PCR2 = h (h (0 | h (OS)) | h (HBR1)) (7)
In Expression (7), “h (HBR1)” is the first, that is, the first hibernation assistance value.
S63でi番目のハイバネーション補助値を登録した後、BIOS15はカウンタiを1だけ増加させ(S64)、処理をS62に進める。
After registering the i-th hibernation auxiliary value in S63, the
以上説明したS62,S63,S64の処理を繰り返すことによって、例えば3番目のハイバネーション補助値を登録した後のPCR2には、以下の式(8)で算出される値が登録される。 By repeating the processing of S62, S63, and S64 described above, for example, the value calculated by the following equation (8) is registered in PCR2 after the third hibernation auxiliary value is registered.
PCR2=h(h(h(h(0|h(OS))|h(HBR1))|h(HBR2))|h(HBR3)) …(8)
式(8)において、「h(HBR2)」及び「h(HBR3)」は夫々、2番目及び3番目のハイバネーション補助値である。このように本実施形態では、HDD12に保持されている全てのハイバネーション補助値が順次、TPM13に登録される。尚、以下では説明を簡易とするために、まず1回目のハイバネーション復帰について説明する。この場合、S62で「NO」と判定されることになり、ハイバネーション補助値は未だ登録されず、PCR2には式(6)に示した値(OSのハッシュ値)が登録されている。2回目以降のハイバネーション復帰の場合については後述する。 以上、本実施形態におけるハイバネーション補助値登録処理(S52)について説明した。以下、図5に戻ってハイバネーション復帰処理の説明を続ける。
PCR2 = h (h (h (h (h | 0 (OS)) | h (HBR1)) | h (HBR2)) | h (HBR3)) (8)
In Expression (8), “h (HBR2)” and “h (HBR3)” are the second and third hibernation auxiliary values, respectively. As described above, in this embodiment, all the hibernation assistance values held in the
S52による累積ハイバネーション補助値の登録が完了すると、BIOS15は最新のハイバネーションデータをHDD12から取得し、そのハッシュ値を式(1)に従って算出し、TPM13に登録する(S53)。本実施形態では、ハイバネーションデータのハッシュ値はPCR2に登録する。ここで、S52でハイバネーション補助値が1つも登録されなかった場合には、PCR2には式(6)に示すh(0|h(OS))が登録されているため、結果的に以下の式(9)で算出される値がPCR2に登録されることになる。
When the registration of the cumulative hibernation auxiliary value in S52 is completed, the
PCR2=h(h(0|h(OS))|h(HBR1)) …(9)
式(9)において、「h(HBR1)」はHDD12から取得したハイバネーションデータのハッシュ値である。S53における登録処理の結果、図7の状態75に示すようにPCR2にh(h(0|h(OS))|h(HBR1))が登録されることになる。
PCR2 = h (h (0 | h (OS)) | h (HBR1)) (9)
In Expression (9), “h (HBR1)” is a hash value of the hibernation data acquired from the
S53におけるハイバネーションデータの登録後、BIOS15はHDD12から取得したハイバネーションデータのハッシュ値を算出し、該算出した値をハイバネーション補助値としてHDD12に保持する(S54)。このハイバネーション補助値は図9に示すように、前回保持したハイバネーション補助値に追加するように保持される。図7の状態75では、ハイバネーション補助値h(HBR1)がHDD12に保持されている。
After registering the hibernation data in S53, the
ここでS52〜S54の処理により、TPM13のPCR2には、最新のハイバネーションを含む、HDD12に累積された全てのハイバネーション補助値が登録されるが、このような登録が実現できれば、これらS52〜S54の処理順は問わない。例えば、S54での最新のハイバネーション補助値をHDD12に登録した後にS52の処理を行うようにすれば、S53の処理はS63に含まれるため不要となる。
Here, by the processing of S52 to S54, all the hibernation auxiliary values accumulated in the
次にBIOS15は、HDD12に保持されている暗号化データ(この場合、ハイバネーション用暗号化データ)をTPM13を用いて復号する(S55)。そして、復号が成功したか否かを判定し(S56)、復号が成功したと判定された場合は処理をS57に進め、失敗したと判定された場合は処理をS58に進める。
Next, the
ここで、S56における復号の成否の判定方法について説明する。まず、S56が実行されるのに先立ち、S23,S51,S53において、TPM13にはBIOS15と、OS17およびハイバネーションデータのハッシュ値が登録されていることに留意されたい。すなわち、1回目のハイバネーション復帰時には、S56の時点で、PCR0,PCR2の夫々に、式(2),式(9)に示す値が登録されている。一方、1回目のハイバネーション時に、S49で図8(b)に示すハイバネーション用暗号化データが生成されている。よって、正当なハイバネーションデータを用いてハイバネーション復帰を行おうとした場合には、TPM13に登録されているハッシュ値と、暗号化データの復号条件が一致するため、S56では復号成功と判定される。もしもハイバネーションデータが改竄されている場合には、TPM13に登録されているハッシュ値と、暗号化データ内の復号条件が一致しないため、S56では復号失敗と判定される。したがってS56では、ハイバネーションデータの正当性が適切に検証される。
Here, a method for determining success or failure of decoding in S56 will be described. First, it should be noted that before S56 is executed, in S23, S51, and S53, the
S56で復号成功と判定された場合、BIOS15はハイバネーションデータをRAM14にロードする(S57)。これにより、ハイバネーション前の情報処理装置18の動作状態が復元される。すなわち、図7の状態75に示すように、RAM14及びCPU19のレジスタの記憶内容が「動作状態1」となる。一方、S56で復号失敗と判定された場合、BIOS15は、図8(b)(或いは図8(c))に示すハイバネーション用暗号化データ、およびハイバネーション補助値をHDD12から削除し(S58)、情報処理装置18を再起動する(S59)。再起動後は図2に示す起動処理が再び実行され、この場合、スリープ復帰、及びハイバネーション復帰の何れでもないため、結果としてS28の通常起動処理が実行されることになる。
If it is determined in S56 that decoding is successful, the
以上、本実施形態における初回のハイバネーション復帰処理について説明した。このハイバネーション復帰処理により、情報処理装置18は図7の状態75に示す状態となる。
Heretofore, the first hibernation return process in the present embodiment has been described. By this hibernation return processing, the
●2回目以降のハイバネーションおよび復帰処理
以上は、通常起動処理により情報処理装置18が起動した後、初回のハイバネーション、及びハイバネーション復帰を行う場合について説明した。以下では、ハイバネーション復帰の後、更に2回目以降のハイバネーションを実行し、ハイバネーション復帰する場合について説明する。
The second and subsequent hibernation and restoration processes The above has described the case where the first hibernation and the hibernation restoration are performed after the
まず、初回のハイバネーション復帰の後の2回目以降のハイバネーション処理に関して、図4を用いて説明する。尚、以下では説明を簡略化するために、1回目のハイバネーション復帰処理後に2回目のハイバネーション処理を実行する例を示すが、2回目のハイバネーション復帰処理以降の場合にも同様の処理を繰り返せばよい。 First, the second and subsequent hibernation processes after the first hibernation return will be described with reference to FIG. In order to simplify the explanation below, an example is shown in which the second hibernation process is executed after the first hibernation return process. However, the same process may be repeated after the second hibernation return process. .
ハイバネーション復帰処理によって情報処理装置18が起動した場合、ハイバネーション用暗号化データ記憶領域82に、前回のハイバネーション時にS410でハイバネーション用暗号化データが登録されている。したがって、2回目以降のハイバネーションでは、まずS41でハイバネーション用暗号化データが「ある」と判断され、S42で、前回のハイバネーション時にS49で生成された、図8(b)に示すハイバネーション用暗号化データが取得される。
When the
そして、該取得したハイバネーション用暗号化データをTPM13で復号(S44)し、該復号が成功したか否かを判定するが(S45)、この判定処理が初回のハイバネーション時と異なる。情報処理装置18がハイバネーション復帰により起動した場合、図5に示した復帰処理により、PCR0,PCR2には夫々、h(0|h(BIOS)),h(h(0|h(OS))|h(HBR1))が登録されている(図7の状態75参照)。よってTPM13は、PCRのハッシュ値と、暗号化データ(図8(b))の復号条件が一致するため、OS17から受信した暗号化データを復号することができる。一方、BIOS15、或いはハイバネーションデータの何れかが改竄されている場合には、PCRのハッシュ値と暗号化データの復号条件が一致しないため、TPM13は暗号化データを復号しない。
Then, the obtained encrypted data for hibernation is decrypted by the TPM 13 (S44), and it is determined whether or not the decryption is successful (S45), but this determination processing is different from that at the first hibernation. When the
S45で復号成功と判定された後、OS17はハイバネーションデータを再度生成し(S46)、生成したHBR2をHDD12に保持する(S47)。このときの情報処理装置18は図7の状態76に示すようになる。すなわち、動作状態が動作状態2に変化しており、それに応じた新たなハイバネーションデータHBR2がHDD12に保持されている。これにより、ハイバネーション復帰後から再度ハイバネーションするまでの間における、情報処理装置18の動作状態の変化に対応することができる。
After determining that the decoding is successful in S45, the
次に、ハイバネーションデータのハッシュ値をTPM13に登録する(S48)。上述したように、ハイバネーションデータのハッシュ値はPCR2に登録される。このときPCR2には、1回目のハイバネーション復帰処理中にS53で登録されたh(h(0|h(OS))|h(HBR1))が登録されている(図7の75のPCR2参照)。したがって、結果として以下の式(10)で算出される値がPCR2に登録されることになる。 Next, the hash value of the hibernation data is registered in the TPM 13 (S48). As described above, the hash value of hibernation data is registered in PCR2. At this time, in PCR2, h (h (0 | h (OS)) | h (HBR1)) registered in S53 during the first hibernation restoration process is registered (see 75 PCR2 in FIG. 7). . Therefore, as a result, the value calculated by the following equation (10) is registered in PCR2.
PCR2=h(h(h(0|h(OS))|h(HBR1))|h(HBR2)) …(10)
式(10)において、「h(HBR2)」は2番目のハイバネーション補助値である。S48における登録処理の結果、図7の状態76に示すように、PCR2にh(h(h(0|h(OS))|h(HBR1))|h(HBR2))が登録されることになる。すなわちPCR2には、1回目のハイバネーション復帰時に登録された値に対し、2回目のハイバネーションによってハイバネーションデータHBR2のハッシュ値h(HBR2)が追加登録される。
PCR2 = h (h (h (0 | h (OS)) | h (HBR1)) | h (HBR2))… (10)
In Expression (10), “h (HBR2)” is the second hibernation auxiliary value. As a result of the registration process in S48, h (h (h (0 | h (OS)) | h (HBR1)) | h (HBR2)) is registered in PCR2, as shown in
S48でハイバネーションデータを登録した後、OS17はS44での復号により得られたセキュリティデータ(DataP)をTPM13を用いて暗号化する(S49)。このときTPM13は、PCR0,PCR2が復号条件となるように暗号化し、図8(c)に示すような暗号化データをOS17に返信する。図8(c)において、暗号化データの復号条件が図7の状態76におけるPCR2と同じであることに留意されたい。そしてOS17が、TPM13が暗号化した暗号化データをハイバネーション用暗号化データ記憶領域82に上書きして(S410)、ハイバネーション処理を終了する。これにより、2回目のハイバネーション処理が終了した時点で、暗号化データ記憶領域には、図8(a)に示す通常起動用暗号化データと、図8(c)に示すハイバネーション用暗号化データの2つが保持されていることになる。
After registering the hibernation data in S48, the
以上、情報処理装置18がハイバネーション復帰処理によって起動された後、再度ハイバネーションを実行した場合の例について説明した。この2回目のハイバネーション処理により、情報処理装置18におけるTPM13内の各PCRは、図7の状態76のようになる。その後、情報処理装置18への電源供給が断たれると、揮発性メモリであるPCRとRAM及びCPUのレジスタはデータが消去され(0になり)、図7の状態77のようになる。
The example in which the
次に、以上説明した2回目のハイバネーション処理後、再度ハイバネーション復帰する場合の処理(2回目のハイバネーション復帰処理)について、図5を用いて説明する。尚、説明を簡略化するために、以下では2回目のハイバネーション復帰処理について説明するが、3回目以降の復帰処理についても同様の処理を繰り返せばよい。 Next, processing (second hibernation return processing) in the case of returning to hibernation again after the second hibernation processing described above will be described with reference to FIG. In order to simplify the description, the second hibernation return process will be described below, but the same process may be repeated for the third and subsequent return processes.
2回目のハイバネーション復帰処理において、まずPCR2には式(6)によりh(0|h(OS))が登録される(S51)。次に、ハイバネーション補助値の登録(S52)を行う。このとき、前回のハイバネーション復帰時にS54でHDD12に格納された、1番目のハイバネーション補助値h(HBR1)が存在しているため、図6のS63においてハイバネーション補助値h(HBR1)がTPM13に登録される。本実施形態では、ハイバネーション補助値はPCR2に登録されるため、ここでは以下の式(11)で算出される値がPCR2に登録されることになる。
In the second hibernation return process, first, h (0 | h (OS)) is registered in the
PCR2=h(h(0|h(OS))|h(HBR1)) …(11)
次に、HDD12に保持されている2回目のハイバネーションデータのハッシュ値がTPM13に登録される(S53)。本実施形態では、ハイバネーションデータの補助値はPCR2に登録されるため、ここでは以下の式(12)で算出される値がPCR2に登録されることになる。
PCR2 = h (h (0 | h (OS)) | h (HBR1)) (11)
Next, the hash value of the second hibernation data held in the
PCR2=h(h(h(0|h(OS))|h(HBR1))|h(HBR2)) …(12)
式(12)において、「h(HBR2)」は2回目のハイバネーションデータのハッシュ値である。この登録処理の結果、図7の状態78に示すように、PCR2にはh(h(h(0|h(OS))|h(HBR1))|h(HBR2))が登録されることになる。
PCR2 = h (h (h (0 | h (OS)) | h (HBR1)) | h (HBR2))… (12)
In Expression (12), “h (HBR2)” is a hash value of the second hibernation data. As a result of this registration process, h (h (h (0 | h (OS)) | h (HBR1)) | h (HBR2)) is registered in PCR2, as shown in
そして、2回目のハイバネーションデータのハッシュ値をハイバネーション補助値としてHDD12に追加する(S54)。これにより、ハイバネーション補助値は図9(b)に示すように累積され、図7の状態78に示すように、HDD12には1回目のハイバネーション補助値h(HBR1)に加え、h(HBR2)が追加される。
Then, the hash value of the second hibernation data is added to the
ハイバネーション補助値の追加後、OS17はTPM13を用いて暗号化データを復号し(S55)、この復号処理が成功したか否かを判定する(S56)。2回目のハイバネーション復帰時には、S56の時点で、PCR0,PCR2の夫々に、式(2),式(12)に示す値が登録されていることになる(図7の状態78参照)。また、2回目のハイバネーション時に、S49で図8(c)に示す暗号化データを生成している。よって、正当なハイバネーションデータを用いてハイバネーション復帰をしようとした場合には、TPM13に登録されているハッシュ値と、暗号化データ内の復号条件が一致するため、S56で復号成功と判定される。一方、ハイバネーションデータが改竄されている場合には、TPM13に登録されているハッシュ値と、暗号化データ内の復号条件が一致しないため、S56で復号失敗と判定される。
After the addition of the hibernation auxiliary value, the
以上、2回目のハイバネーション復帰処理の場合について説明した。このハイバネーション復帰処理により、情報処理装置18は図7の状態78に示す状態となる。
The case of the second hibernation return process has been described above. By this hibernation return processing, the
以上説明したように本実施形態によれば、ハイバネーションによる電源切断時に、TPM13を用いて暗号化データを復号し、その時点での動作状態を復号条件に反映させてハイバネーション用の暗号化データを作成し、HDD12に保持しておく。そしてハイバネーション復帰時には直前のハイバネーション時の動作状態を累積保持しておくようにし、該累積された動作状態を復号条件として、TPM13でハイバネーション用暗号化データを復号する。したがって、ハイバネーション時に既にTPM13にハッシュ値が登録されているような場合であっても、ハイバネーションデータの正当性を正しく検証することができ、確実なハイバネーション復帰が可能となる。また、例えば偽造ソフトウェア等によってハイバネーションデータ用の復号条件が追加されることを防止できる。
As described above, according to the present embodiment, when the power is turned off due to hibernation, the encrypted data is decrypted using the
また、ハイバネーションデータが正当でない(正当性の検証失敗)と判定された場合には暗号化データおよびハイバネーション補助値を削除することで、HDD12の記憶領域を解放することができる。なお、正当なハイバネーションデータによるハイバネーションが繰り返し実行される場合には、例えばハイバネーション補助値の格納領域の容量に制限を設け、該制限に達したタイミングで、検証失敗と判定するようにしても良い。もちろん、制限に達しそうなタイミングでアラートの報知等を行っても良い。
Also, when it is determined that the hibernation data is not valid (validity verification failure), the storage area of the
なお、スリープとハイバネーションを組み合わせた起動処理を実行する際にも、本実施形態は適用可能である。例えば所定時間のスリープの後、ハイバネーションに移行する場合に、該ハイバネーションに対して本実施形態を適用することが考えられる。この場合、例えば上記特許文献1に記載された技術を適用した場合と比べて、本実施形態ではスリープ復帰とハイバネーション復帰を区別して(S24,S26)処理を行うため、ハイバネーション後の高速な復帰が可能となる。
<その他の実施形態>
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Note that this embodiment can also be applied when executing a startup process that combines sleep and hibernation. For example, when shifting to hibernation after sleeping for a predetermined time, it is conceivable to apply the present embodiment to the hibernation. In this case, for example, compared with the case where the technique described in
<Other embodiments>
The present invention is also realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and the computer of the system or apparatus (or CPU, MPU, etc.) reads the program. It is a process to be executed.
Claims (7)
揮発性の主記憶手段および不揮発性の補助記憶手段と、
セキュリティチップの登録値に基づき、情報処理装置のセキュリティ維持に用いられるセキュリティデータの暗号化および復号を行う暗号手段と、
前記補助記憶手段を利用してハイバネーションを実行するハイバネーション制御手段と、を有し、
前記ハイバネーション制御手段は、前記電源管理手段から前記電源供給の切断許可要求を受信した場合、
前記補助記憶手段に予め保持された第1の暗号化データを前記暗号手段に復号させ、
前記主記憶手段の記憶内容を示す動作状態データを前記補助記憶手段に格納し、
前記動作状態データのハッシュ値を前記セキュリティチップに登録し、
前記暗号手段によって前記第1の暗号化データから復号されたセキュリティデータを暗号化した第2の暗号化データを生成して、前記第2の暗号化データを前記補助記憶手段に格納し、
前記電源管理手段に前記電源供給の切断許可を送信する
ことを特徴とする情報処理装置。 Power management means for managing the power supply of the information processing apparatus;
Volatile main storage means and nonvolatile auxiliary storage means;
An encryption means for encrypting and decrypting security data used for maintaining security of the information processing device based on the registered value of the security chip;
Hibernation control means for executing hibernation using the auxiliary storage means,
When the hibernation control unit receives the power supply disconnection permission request from the power management unit,
Causing the encryption means to decrypt the first encrypted data held in advance in the auxiliary storage means,
Storing operation state data indicating the storage contents of the main storage means in the auxiliary storage means;
Registering the hash value of the operating state data in the security chip,
Generating second encrypted data obtained by encrypting the security data decrypted from the first encrypted data by the encryption means, and storing the second encrypted data in the auxiliary storage means;
An information processing apparatus that transmits a power supply disconnection permission to the power management means.
前記補助記憶手段に格納されている前記動作状態データのハッシュ値を補助データとして前記補助記憶手段に累積格納し、
前記補助記憶手段に累積された全ての前記補助データを前記セキュリティチップに登録し、
前記補助記憶手段に保持された前記第2の暗号化データを前記暗号手段に復号させて、前記第2の暗号化データの復号の成否を判定し、
前記第2の暗号化データの復号が成功した場合に、前記補助記憶手段に格納した動作状態データを前記主記憶手段に復元する
ことを特徴とする請求項1に記載の情報処理装置。 When the power supply is resumed after the power supply is disconnected by the power management means, the hibernation control means is
A hash value of the operation state data stored in the auxiliary storage unit is accumulated and stored in the auxiliary storage unit as auxiliary data,
Register all the auxiliary data accumulated in the auxiliary storage means in the security chip;
Allowing the encryption means to decrypt the second encrypted data held in the auxiliary storage means, and determining whether the second encrypted data is successfully decrypted;
2. The information processing apparatus according to claim 1, wherein when the decryption of the second encrypted data is successful, the operation state data stored in the auxiliary storage unit is restored to the main storage unit.
前記第2の暗号化データの復号が失敗した場合に、前記補助記憶手段から前記第2の暗号化データを削除する
ことを特徴とする請求項2に記載の情報処理装置。 The hibernation control means includes
3. The information processing apparatus according to claim 2, wherein when the decryption of the second encrypted data fails, the second encrypted data is deleted from the auxiliary storage unit.
前記セキュリティチップに、情報処理装置の起動に関わるプログラムコードのハッシュ値を登録した後に、前記動作状態データのハッシュ値を登録する
ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。 The hibernation control means includes
4. The hash value of the operation state data is registered after registering a hash value of a program code related to activation of an information processing apparatus in the security chip. Information processing device.
前記補助記憶手段に保持された前記第2の暗号化データを新たな前記第1の暗号化データとして、前記暗号手段による復号を行うことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。 When the hibernation control means receives the power supply disconnection permission request from the power management means after the power supply is resumed by the power management means,
5. The decryption by the encryption unit is performed using the second encrypted data held in the auxiliary storage unit as the new first encrypted data, according to any one of claims 1 to 4. The information processing apparatus described.
揮発性の主記憶手段および不揮発性の補助記憶手段と、
セキュリティチップの登録値に基づき、情報処理装置のセキュリティ維持に用いられるセキュリティデータの暗号化および復号を行う暗号手段と、
前記補助記憶手段を利用してハイバネーションを実行するハイバネーション制御手段と、
を有する情報処理装置の起動方法であって、
前記ハイバネーション制御手段は、前記電源管理手段から前記電源供給の切断許可要求を受信した場合、
前記補助記憶手段に予め保持された第1の暗号化データを前記暗号手段に復号させ、
前記主記憶手段の記憶内容を示す動作状態データを前記補助記憶手段に格納し、
前記動作状態データのハッシュ値を前記セキュリティチップに登録し、
前記暗号手段によって前記第1の暗号化データから復号されたセキュリティデータを暗号化した第2の暗号化データを生成して、前記第2の暗号化データを前記補助記憶手段に格納し、
前記電源管理手段に前記電源供給の切断許可を送信する、
ことを特徴とする情報処理装置の起動方法。 Power management means for managing the power supply of the information processing apparatus;
Volatile main storage means and nonvolatile auxiliary storage means;
An encryption means for encrypting and decrypting security data used for maintaining security of the information processing device based on the registered value of the security chip;
Hibernation control means for executing hibernation using the auxiliary storage means;
An information processing apparatus start-up method comprising:
When the hibernation control unit receives the power supply disconnection permission request from the power management unit,
Causing the encryption means to decrypt the first encrypted data held in advance in the auxiliary storage means,
Storing operation state data indicating the storage contents of the main storage means in the auxiliary storage means;
Registering the hash value of the operating state data in the security chip,
Generating second encrypted data obtained by encrypting the security data decrypted from the first encrypted data by the encryption means, and storing the second encrypted data in the auxiliary storage means;
Transmitting the power supply disconnection permission to the power management means;
A method for starting an information processing apparatus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012159797A JP5961059B2 (en) | 2012-07-18 | 2012-07-18 | Information processing apparatus and activation method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012159797A JP5961059B2 (en) | 2012-07-18 | 2012-07-18 | Information processing apparatus and activation method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014022944A JP2014022944A (en) | 2014-02-03 |
JP5961059B2 true JP5961059B2 (en) | 2016-08-02 |
Family
ID=50197383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012159797A Expired - Fee Related JP5961059B2 (en) | 2012-07-18 | 2012-07-18 | Information processing apparatus and activation method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5961059B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3614293A1 (en) * | 2018-08-24 | 2020-02-26 | Nagravision S.A. | Securing data stored in a memory of an iot device during a low power mode |
JP7242351B2 (en) * | 2019-03-11 | 2023-03-20 | キヤノン株式会社 | Electronic devices that can omit software tampering detection processing at startup |
WO2023145666A1 (en) * | 2022-01-25 | 2023-08-03 | 株式会社Jvcケンウッド | Embedded system boot method, boot program, and embedded system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725703B2 (en) * | 2005-01-07 | 2010-05-25 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
US8839000B2 (en) * | 2009-03-23 | 2014-09-16 | Hewlett-Packard Development Company, L.P. | System and method for securely storing data in an electronic device |
US8250379B2 (en) * | 2009-10-13 | 2012-08-21 | Microsoft Corporation | Secure storage of temporary secrets |
US8627464B2 (en) * | 2010-11-02 | 2014-01-07 | Microsoft Corporation | Globally valid measured operating system launch with hibernation support |
-
2012
- 2012-07-18 JP JP2012159797A patent/JP5961059B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014022944A (en) | 2014-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6067449B2 (en) | Information processing apparatus and information processing program | |
US9965268B2 (en) | Method and apparatus for preventing software version rollback | |
JP5369502B2 (en) | Device, management device, device management system, and program | |
US8438377B2 (en) | Information processing apparatus, method and computer-readable storage medium that encrypts and decrypts data using a value calculated from operating-state data | |
KR101699998B1 (en) | Secure storage of temporary secrets | |
JP6391439B2 (en) | Information processing apparatus, server apparatus, information processing system, control method, and computer program | |
JP4994903B2 (en) | Encryption key recovery method, information processing apparatus, and encryption key recovery program | |
JP6494373B2 (en) | Information processing apparatus, information processing apparatus control method, and computer program | |
US9665720B2 (en) | Image forming apparatus that performs update of firmware, and control method therefor | |
US20080215872A1 (en) | Method of booting electronic device and method of authenticating boot of electronic device | |
JP6399763B2 (en) | Information processing apparatus and information processing method | |
JP4947239B2 (en) | Information processing apparatus having configuration change verification function and control method thereof | |
JP7393226B2 (en) | Information processing equipment and how to start it | |
KR102547034B1 (en) | Information processing apparatus and control method thereof | |
JP5961059B2 (en) | Information processing apparatus and activation method thereof | |
JP5617981B2 (en) | Device, management device, device management system, and program | |
JP2020053002A (en) | Information processing apparatus, control method thereof, and program | |
JP2009301429A (en) | Method and apparatus for detecting software falsification, and image processor | |
US20230103698A1 (en) | Information processing apparatus and control method therefor | |
US11520662B2 (en) | Recovery from corruption | |
JP7263101B2 (en) | Information processing device, data verification method | |
JP5969845B2 (en) | Information processing apparatus and control method thereof | |
JP2020154601A (en) | Information processing device and its control method, and program | |
JP2022182837A (en) | Information processing apparatus and control method thereof | |
JP2013258512A (en) | Image forming apparatus, and back-up/restore method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150710 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160412 |
|
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: 20160527 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160624 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5961059 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |