JP5493951B2 - 情報処理装置、正当性検証方法及びプログラム - Google Patents

情報処理装置、正当性検証方法及びプログラム Download PDF

Info

Publication number
JP5493951B2
JP5493951B2 JP2010025656A JP2010025656A JP5493951B2 JP 5493951 B2 JP5493951 B2 JP 5493951B2 JP 2010025656 A JP2010025656 A JP 2010025656A JP 2010025656 A JP2010025656 A JP 2010025656A JP 5493951 B2 JP5493951 B2 JP 5493951B2
Authority
JP
Japan
Prior art keywords
processing apparatus
information processing
data
blob
value
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
JP2010025656A
Other languages
English (en)
Other versions
JP2010267246A (ja
Inventor
滋也 千田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2010025656A priority Critical patent/JP5493951B2/ja
Priority to US12/756,483 priority patent/US8438377B2/en
Publication of JP2010267246A publication Critical patent/JP2010267246A/ja
Priority to US13/859,453 priority patent/US8782388B2/en
Application granted granted Critical
Publication of JP5493951B2 publication Critical patent/JP5493951B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Power Sources (AREA)

Description

本発明は、情報処理装置、正当性検証方法及びプログラムに関する。
実現可能な機能が予め組み込まれた組み込み型機器において要求される機能の増大に対応してファームウェアの容量が年々増大している。それに伴い、起動に要する時間がだんだん長くなり高機能化するほど起動が遅い機器となるのが問題になりつつある。つまり、機器において実現可能な機能は増大するが、それに比例して機器の起動速度は低下していく。リソースをロードし初期化するために大きく時間をとられるようになるからである。機器において実現可能な機能が増大するのは例えば以下の理由による。
・OS(Operating System)やファームウェアの高機能化。多量のアプリケーションを支えるために仮想記憶をサポートしたOSが必要になり、OSのサイズが肥大化する。
・周辺機器の多様化。機器に搭載されるサポートすべきI/O機器が増え、そのためのファーム・アプリケーションが必要となる。特にパネル等のユーザインターフェースの高機能化により必要とされるデータ量が増大する。
・ソフトウェアの高機能化。製品の差別化を図るために高機能化する方向で競争がなされるため、ソフトウェアの機能は指数関数的に増大していく。
こういった状況を打破するための一つの方法が「ハイバネーション」である。ハイバネーションでは、機器の作動時にRAM(Random Access Memory)などのメインメモリに記憶されていたメモリイメージ及びCPUなどのハードウェアのコンテキスト情報などの機器の作動状態を示すデータ(作動状態データという)を記憶しておく。そして起動時に、保存していたメモリイメージを展開し、メモリイメージで動作していたハードウェアのコンテキスト情報を復元し復元地点から機器が作動することで、作動状態データが記憶された時の作動状態を復元する。このようなハイバネーションによれば、通常の起動に比べ格段に早い時間で起動することができる。このハイバネーションに関する技術は、例えば特許文献1〜2に記載されている。
ところで、組み込み機器においてセキュリティの向上が望まれている。このようなことから、組み込み機器で動作するソフトウェアの不正な改ざんを防止する技術が開発されている。例えば、組み込み機器の内部に使用者のプライベートな情報を秘匿して保存し、その組み込み機器に対して製造メーカが保証できる正当なソフトウェアが動作することを保証する正当性検証を行なうことで、不正なソフトウェアの動作を防止するTPM(Trusted Platform Module )を用いた仕組みが提案されている(例えば特許文献3参照)。
しかし、特許文献3の技術では、通常の起動時の各ソフトウェアのハッシュ値等を正当性検証時にTPMに登録し、登録されたハッシュ値の組み合わせが正しいときのみブロブ(Blob)と呼ばれる鍵を暗号化したデータを復号することができる事実から正当性の検証を行っていた。つまり、通常の起動時とは異なるハイバネーションによる起動時には、ハッシュ値の組み合わせを正しく得ることができないため、ソフトウェアの正当性を正しく検証することは困難であった。
本発明は、上記に鑑みてなされたものであって、ハイバネーションによる起動であっても、ソフトウェアの正当性を正しく検証可能な情報処理装置、正当性検証方法及びプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、情報処理装置であって、記憶内容を保持する記憶部と、電源の供給切断時当該情報処理装置の作動状態を示す作動状態データを生成して前記記憶部に記憶させ、前記電源の再供給時に、前記記憶部に記憶され前記作動状態データを読み出して当該情報処理装置の作動状態を復元するハイバネーションを行う制御部と、前記電源の供給切断時に、生成された前記作動状態データから計算される値に基づいてデータを暗号化し、前記電源の再供給時に、読み出された前記作動状態データから計算される値に基づいて、暗号化された前記データを復号するセキュリティチップと、前記電源の再供給時に、読み出された前記作動状態データから計算される値に基づいて、暗号化された前記データを復号可能か否かを判断することにより、前記ハイバネーションによる起動時の正当性を検証する検証部と、を備え、前記セキュリティチップは、当該情報処理装置を作動させる複数のソフトウェアのそれぞれから予め計算された値の組合せに基づいて前記データを暗号化し、当該情報処理装置の通常起動時に、前記複数のソフトウェアのそれぞれから計算される値の組合せに基づいて、暗号化された前記データを復号し、前記検証部は、当該情報処理装置の通常起動時に、前記複数のソフトウェアのそれぞれから計算される値の組合せに基づいて、暗号化された前記データを復号可能か否かを判断することにより、前記通常起動時の正当性を検証することを特徴とする。
また、本発明は、情報処理装置で実行される正当性検証方法であって、電源の供給切断時に当該情報処理装置の作動状態を示す作動状態データを生成して、記憶内容を保持する記憶部に記憶させ、前記電源の再供給時に、前記記憶部に記憶された前記作動状態データを読み出して当該情報処理装置の作動状態を復元するハイバネーションを行うステップと、前記電源の供給切断時に、生成された前記作動状態データから計算される値に基づいてデータを暗号化し、前記電源の再供給時に、読み出された前記作動状態データから計算される値に基づいて、暗号化された前記データを復号するステップと、前記電源の再供給時に、読み出された前記作動状態データから計算される値に基づいて、暗号化された前記データを復号可能か否かを判断することにより、前記ハイバネーションによる起動時の正当性を検証するステップと、当該情報処理装置を作動させる複数のソフトウェアのそれぞれから予め計算された値の組合せに基づいて前記データを暗号化し、当該情報処理装置の通常起動時に、前記複数のソフトウェアのそれぞれから計算される値の組合せに基づいて、暗号化された前記データを復号するステップと、当該情報処理装置の通常起動時に、前記複数のソフトウェアのそれぞれから計算される値の組合せに基づいて、暗号化された前記データを復号可能か否かを判断することにより、前記通常起動時の正当性を検証するステップとを含むことを特徴とする。
また、本発明は、上記の方法をコンピュータに実行させるためのプログラムである。
本発明によれば、ハイバネーションによる起動であっても、ソフトウェアの正当性を正しく検証可能になる。
図1は、一実施の形態に係る情報処理装置のハードウェア構成を例示する図である。 図2は、TPMの通常起動時の動作を模式的に示した図である。 図3は、TPMを用いた情報の暗号化及び復号を表す模式図である。 図4は、TPMを用いた情報の暗号化及び復号を表す模式図である。 図5は、「ハイバネーションによる起動時におけるTPM5の動作を模式的に示した図である。 図6は、トラストチェーンについて説明するための図である。 図7は、従来のTPM登録処理の手順を示すフローチャートである。 図8は、通常の起動時の正当性検証処理の手順を示すフローチャートである。 図9は、同実施の形態にかかるTPM登録処理の手順を示すフローチャートである。 図10は、ハイバネーションによる起動時の正当性検証処理の手順を示すフローチャートである。
以下に添付図面を参照して、この発明にかかる情報処理装置、正当性検証方法及びプログラムの実施の形態を詳細に説明する。
図1は本実施の形態に係る情報処理装置のハードウェア構成を例示する図である。尚、本実施の形態に係る情報処理装置はパーソナルコンピュータや、コピー機能、プリンタ機能、スキャナ機能及びファクシミリ機能のうち少なくとも1つの機能を有する画像形成装置やこれらの機能のうち少なくとも2つ以上の機能を有する複合機に適用しても良い。同図に示される情報処理装置は、CPU1,ASIC2,揮発性メモリ3,エンジンコントローラ4,TPM5,不揮発メモリ6,ネットワークデバイス7及びSDカードI/F8を備える。CPU1は、メインバス9を介してASIC2,エンジンコントローラ4に接続されている。ASIC2は揮発性メモリ3と接続されると共に、ローカルバス10を介してTPM5,不揮発メモリ6,ネットワークデバイス7,SDカードI/F8に接続される。
CPU1は、不揮発性メモリ6に記憶された各種プログラムを実行することにより情報処理装置全体を制御して各種機能を実現させる。ASIC2は、例えば画像処理を行うための集積回路である。揮発性メモリ3は、各種プログラムや各種データを一時的に記憶する主記憶部であり、電源が供給されている間のみ記憶内容を保持する。不揮発メモリ6は、各種プログラムや各種データを記憶する補助記憶部であり、電源の供給が切断されてもその記憶内容を保持可能である。また、不揮発メモリ6は、CPU1が生成したハイバネーションイメージと、CPU1のコンテキスト情報とを記憶する。TPM5は、ローカルバス10上に搭載されており、秘密情報の暗号化や復号、プラットフォームの真正性を確認するプラットフォーム検証の機能を提供可能である。具体的には、TPM5は、内部に固有の秘密情報と配置レジスタとを保持するセキュリティチップであり、TPM5を破壊しない限りこの秘密情報を物理的に取り出せない構造となっている。本実施の形態においては、この配置レジスタとの組み合わせによりデータを暗号化したものをブロブとする。このブロブは、固有の秘密情報を保持するTPMを用い且つ生成時に配置レジスタに指定された値の組み合わせが一致した場合のみブロブを復号可能になる。即ち、ブロブに含まれるデータを取り出し可能になる。このような構成により、情報処理装置では、実現可能な機能が予め組み込まれている。
ここで、TPM5を用いた情報の暗号化及び復号について簡単に説明する。図2はTPMの通常起動時の動作を模式的に示した図である。同図に示されるプラットフォーム50は、CPU1がプログラムを実行する際に揮発性メモリ3上にロードされるものである。プラットフォーム50は、ソフトウェアとして、BIOS20と、基本パッケージ21と、アプリケーションパッケージ22とを有する。これらの各ソフトウェアによりトラストチェーンが構築される。尚、図示しないが、基本パッケージ21は、OSを有し、OSはファイルシステムを有する。また、BIOS20は、ハイバネーションのために、情報処理装置の作動状態を示す作動状態データとして、揮発性メモリ3の記憶内容からハイバネーションイメージを生成し、これとCPU1のコンテキスト情報とを不揮発性メモリ6に記憶させる機能を有する。また、TPM5は、配置レジスタとして、PCR51〜53を有する。尚、PCR51は「PCR0」に対応し、PCR52は「PCR1」に対応し、PCR53は「PCR2」に対応する。
プラットフォーム50では、まず、BIOS20のコア部分が起動されると、自身のハッシュ値を計算しこれをTPM5内のPCR51へ登録する。BIOS20は例えば原文から固定長の疑似乱数を生成する演算手法によってハッシュ値を計算する。その後BIOS全体が起動される。次に、BIOS20は基本パッケージ21に関するハッシュ値を計算しこれをTPM5内のPCR52へ登録した後、基本パッケージ21を起動する。基本パッケージ21に関するハッシュ値とは、揮発性メモリ3にロードされる、OSを含む実行コード及びデータを用いて得られるハッシュ値である。また、基本パッケージ21は、アプリケーションパッケージ22に関するハッシュ値を計算しこれをTPM5内のPCR52へ登録した後、アプリケーションパッケージ22を起動する。アプリケーションパッケージ22に関するハッシュ値とは、アプリケーションパッケージ22及び当該アプリケーションパッケージ22で用いるデータを用いて得られるハッシュ値である。このように、TPM5のPCR51〜53には、情報処理装置の起動に伴い、BIOS20,基本パッケージ21及びアプリケーションパッケージ22から計算されるハッシュ値が登録される。
図3はTPMを用いた情報の暗号化及び復号を表す模式図である。図3の上側はTPM5による情報「Data P」の暗号化を表している。TPM5は暗号化を行う情報「Data P」と、「PCR0」〜「PCR2」に格納するハッシュ値「X」〜「Z」とに基づいて、ブロブ60を生成してこれを不揮発性メモリ6に記憶させる。
図3の下側はTPMによるブロブ61〜63の復号を表している。TPM5は、情報処理装置を起動する際に、例えばBIOS20,基本パッケージ21及びアプリケーションパッケージ22から計算された3つのハッシュ値「X」〜「Z」が「PCR0」〜「PCR2」へ登録されている。
情報「Data P」を含むブロブ(Blob)61〜63は、ファイルシステムが管理している。ブロブ61は、「PCR0」に「X」が登録され、「PCR1」に「Y」が登録され、「PCR2」に「Z」が登録されている。ブロブ62は、「PCR0」に「X」が登録され、「PCR1」に「G」が登録され、「PCR2」に「Z」が登録されている。また、ブロブ63は「PCR0」に「X」が登録されている。
ブロブ61の「PCR0」〜「PCR2」とTPM5の「PCR0」〜「PCR2」とに各々登録されているハッシュ値が同じであるため、TPM5はブロブ61からの情報「Data P」の取り出しを許可する。また、ブロブ62の「PCR1」とTPM5の「PCR1」とに登録されているハッシュ値が異なるため、TPM5はブロブ62からの情報「Data P」の取り出しを許可しない。さらに、TPM5はブロブ63の「PCR0」とTPM5の「PCR0」とに登録されているハッシュ値が同じであるため、ブロブ63からの情報「Data P」の取り出しを許可する。なお、TPM5はブロブ63のようにハッシュ値が登録されていない「PCR1」、「PCR2」について、情報「Data P」の取り出しの許可又は不許可の判定に利用しない。
即ち、ブロブの組み合わせとして、ブロブ63では「PCR0」に登録された1つのハッシュ値の一致で「Data P」の取り出しが許可され、ブロブ61〜62では「PCR0」〜「PCR2」に各々登録された3つのハッシュ値の一致で「Data P」の取り出しが許可される。尚、情報「Data P」が取り出されるとは、即ち、ブロブが復号されることである。
ここで、正当性検証処理について説明する。ブロブには、秘密情報を暗号化したり暗号化された秘密情報を復号したりするための暗号鍵が情報「Data P」として含まれるものとする。そしてこの暗号鍵の取り出しの可否、即ち、ブロブの復号の可否が、「PCR0」〜「PCR2」に各々登録されたハッシュ値が全て一致するか否かにより判断される。そして、暗号鍵の取り出しが許可された場合、CPU1は、暗号鍵を用いて、暗号化された秘密情報を復号することができる。暗号鍵の取り出しが許可されない場合、CPU1は、正当性エラーであると判断する。このような処理が正当性検証処理である。
次に、ハイバネーションによる起動時におけるTPM5の動作の概略について図4を用いて説明する。プラットフォーム50では、BIOS20は、ハイバネーションイメージを生成してこれとCPU1のコンテキスト情報とを不揮発性メモリ6に記憶させたとき、ハイバネーションイメージ及びコンテキスト情報を用いてハッシュ値を計算してこれをTPM5内のPCR53へ登録する。そして、ハイバネーションによる起動時には、BIOS20のコア部分が起動されると、自身のハッシュ値を計算しこれをTPM5内のPCR51へ登録する。その後BIOS20全体が起動される。その後、BIOS20は、ハイバネーションイメージ及びCPU1のコンテキスト情報を不揮発性メモリ6から読み出すと共に、ハイバネーションイメージ及びコンテキスト情報のハッシュ値を計算してこれをTPM5内のPCR53に登録する。一方、TPM5は、通常の起動時にブロブを復号可能な組み合わせとして、PCR51〜PCR53のハッシュ値の組み合わせ(図4に示す下段参照)と、ハイバネーションによる起動時にブロブを復号可能な組み合わせとして、PCR51,PCR53のハッシュ値の組み合わせと、暗号鍵とを含むブロブを生成してこれを不揮発性メモリ6に記憶させる。
ここで、本実施の形態においては、「PCR0」〜「PCR2」の値の組み合わせを複数有するブロブリストを取り扱う。図5は、「PCR0」〜「PCR2」の値の組み合わせを複数有するブロブを例示する図である。ブロブリスト64は、「PCR0」に「X」が登録され、「PCR2」に「W」が登録されているpatter1ブロブ(上段参照)と、「PCR0」に「X」が登録され、「PCR1」に「Y」が登録され、「PCR2」に「Z」が登録されているpattern2ブロブ(下段参照)とを含む。本実施の形態においては、通常の起動時には、上述したように、BIOS20のハッシュ値が「PCR0」に登録され、基本パッケージ21のハッシュ値が「PCR1」に登録され、アプリケーションパッケージ22のハッシュ値が「PCR2」に登録される。一方、ハイバネーションによる起動時には、BIOS20のハッシュ値が「PCR0」に登録され、ハイバネーションイメージ及びコンテキスト情報のハッシュ値が「PCR2」に登録される。TPM5は、通常の起動時には、図5に示すpattern2ブロブを用いて暗号鍵の取り出しを許可するか否かを判断し、ハイバネーションによる起動時には、図5に示すpattern1ブロブを用いて暗号鍵の取り出しを許可するか否かを判断する。このように各ブートのステージ毎に、配置レジスタである「PCR0」〜「PCR2」の値を設定していくことで、トラストチェーンが構築される。
このトラストチェーンについて図6を用いて具体的に説明する。BIOS20の信頼性は、他の信頼性の元になるものでRoot of Trustとよばれる。具体的には、BIOS20の信頼性は、TPM5とBIOS20の一部あるいは全部を不揮発性メモリ6に記憶させることで確保するか、CPU1の特殊な命令を利用して確保する。ここでは、なんらかの手段で、BIOS20の信頼性を既に確保できているものとする。BIOS20が起動した後の各処理では、基本パッケージ、アプリケーションパッケージ、ハイバネーションイメージの各場合について、メモリロードとハッシュ値の計算とは前段の信頼できるモジュールによりロードされるので信頼できる。各モジュールのハッシュ値は各モジュールの動作が信頼できるため信頼できる。信頼できるハッシュ値の組み合わせに対し、pattern1ブロブ又はpattern2ブロブからTPM5を介して正常にとりだされる暗号鍵(Data P)は信頼できる。以上のことから、最終的に、解凍できた暗号鍵は信頼できることになる。このように信頼性が連鎖することがトラストチェーンが構築されるということである。
次に、本実施の形態に係る情報処理装置の行うTPM登録処理及び正当性検証処理の手順について説明する。その説明の前に、まず、従来のTPM登録処理及び正当性検証処理の手順について説明する。図7は、従来のTPM登録処理の手順を示すフローチャートである。セキュリティを確保された環境又はなんらかの検証手段により正当性が証明されているBIOS20、基本パッケージ21及びアプリケーションパッケージ22のうち少なくとも1つのソフトウェアが更新されて新たにインストールされる場合、次回の起動時にブロブが正当であるためには、更新されたソフトウェアのハッシュ値を有する必要がある。この新たなハッシュ値を有するようブロブを更新するための処理が以下に説明するTPM登録処理である。尚、更新されるソフトウェアは、暗号鍵を保持しているものとする。BIOS20が更新された場合(ステップS1:YES)、BIOS20のハッシュ値を計算してこれをTPM5のPCR51に登録して(ステップS2)、ステップS3に進む。BIOS20が更新されていない場合(ステップS1:NO)もステップS3に進む。基本パッケージ21が更新された場合(ステップS3:YES)、BIOS20は、基本パッケージ21に関するハッシュ値を計算してこれをTPM5のPCR52に登録して(ステップS4)、ステップS5に進む。基本パッケージ21が更新されていない場合(ステップS3:NO)もステップS5に進む。アプリケーションパッケージ22が更新された場合(ステップS5:YES)、基本パッケージ21は、アプリケーションパッケージ22に関するハッシュ値を計算してこれをTPM5のPCR53に登録して(ステップS6)、ステップS7に進む。アプリケーションパッケージ22が更新されていない場合(ステップS5:NO)もステップS7に進む。ステップS7では、更新された各ソフトウェアはTPM5に暗号鍵を渡し、TPM5は、当該暗号鍵(図3,5の例では「Data P」に相当する)と、PCR51〜53に各々登録されたハッシュ値とを含むブロブを生成してこれをブロブリスト64のpattern2ブロブとして不揮発性メモリ6に記憶させる。その後、情報処理装置が再起動されると、図2を用いて説明したように各ソフトウェアが起動することにより、通常の起動が行なわれる。この場合の正当性検証処理の手順については図8を用いて説明する。
BIOS20のコア部分が起動されると(ステップS21)、BIOS20のコア部分は自身のハッシュ値を計算しこれをTPM5内のPCR51へ登録する(ステップS22)。この後、BIOS20の全体が起動される。その後、BIOS20は基本パッケージ21に関するハッシュ値を計算しこれをTPM5内のPCR52へ登録する(ステップS23)。そして、BIOS20は基本パッケージ21を起動する(ステップS24)。基本パッケージ21は、アプリケーションパッケージ22に関するハッシュ値を計算しこれをTPM5内のPCR53へ登録する(ステップS25)。そして、基本パッケージ21は、アプリケーションパッケージ22を起動する(ステップS26)。次いで、TPM5は、図7を用いて説明したTPM登録処理で生成したブロブと、PCR51〜53に各々登録されているハッシュ値とを用いて、ブロブに含まれる暗号鍵の取り出しを許可するか否かを決定する。例えば図4に示されるブロブリスト64に含まれるいずれかのブロブ(Pattern1ブロブ,Pattern2ブロブ)に対して、PCR51〜53の全てについてブロブに含まれるハッシュ値と、登録されているハッシュ値とが一致する場合に、TPM5は、ブロブに含まれる暗号鍵の取り出しを許可する(ステップS27:YES)。この場合、CPU1は、当該暗号鍵を用いて、暗号化された秘密情報を復号する。一方、ブロブリスト64に含まれる全てのブロブ(Pattern1ブロブ,Pattern2ブロブ)に対して、PCR51〜53のうち少なくとも1つについてブロブに含まれるハッシュ値と、登録されているハッシュ値とが一致しない場合に(ステップS27:NO)、TPM5は、ブロブに含まれる暗号鍵の取り出しを許可しない。この場合、CPU1は、正当性エラーであるとして処理を終了する(ステップS28)。
次に、本実施の形態にかかるTPM登録処理及び正当性検証処理の手順について説明する。本実施の形態においては、上述した従来のTPM登録処理でPCR51〜53に各々ハッシュ値が登録され正当性検証処理で正当性を検証可能な状態で、更に、ハイバネーションによる起動時においても正当性を正しく検証するためのTPM登録処理を行う。このような本実施の形態にかかるTPM登録処理の手順について図9を用いて説明する。
まず、PCR51〜PCR53には、通常の起動時にブロブを復号可能な組み合わせでハッシュ値が予め登録されるものとする(ステップS40)。これは、通常起動した場合、常に成り立っているはずの条件となる。そして、BIOS20は、ハイバネーションイメージを生成してこれとCPU1のコンテキスト情報とを不揮発性メモリ6に記憶させる際に(ステップS41:YES)、ハイバネーションイメージ及びコンテキスト情報を用いてハッシュ値を計算する。そして、BIOS20は、計算したハッシュ値をTPM5内のPCR53へ登録して(ステップS42)、ステップS43に進む。ハイバネーションイメージを新たに生成しない場合には(ステップS42:NO)、BIOS20は、ステップS42の処理を行なわずに、ステップS43に進む。ステップS43では、TPM5は、ハイバネーションによる起動時にブロブを復号可能な組み合わせとして、PCR51,PCR53のハッシュ値の組み合わせと、暗号鍵とを含むブロブを生成してこれを例えば図5に例示されるブロブリスト64のPattern1ブロブとして不揮発性メモリ6に記憶させる。その後、BIOS20は、情報処理装置が再起動されると、BIOS20のコア部分が起動する。ここでの再起動がハイバネーションによる起動である場合の正当性検証処理の手順については図10を用いて説明する。
BIOS20のコア部分が起動されると(ステップS61)、BIOS20のコア部分は自身のハッシュ値を計算しこれをTPM5内のPCR51へ登録する(ステップS62)。この後、BIOS20の全体が起動される。その後、BIOS20は、ハイバネーションイメージ及びCPU1のコンテキスト情報を不揮発性メモリ6から読み出すと共に、ハイバネーションイメージ及びコンテキスト情報のハッシュ値を計算してこれをTPM5内のPCR53に登録する(ステップS63)。次いで、TPM5は、図7を用いて説明したTPM登録処理で生成したブロブと、PCR51,PCR53に各々登録されているハッシュ値とを用いて、ブロブに含まれる暗号鍵の取り出しを許可するか否かを判断する。例えば図5に示されるブロブリスト64に含まれるいずれかのブロブ(Pattern1ブロブ,Pattern2ブロブ)に対して、PCR51,PCR53の全てについてブロブに含まれるハッシュ値と、登録されているハッシュ値とが一致する場合に、TPM5は、ブロブに含まれる暗号鍵の取り出しを許可する(ステップS64:YES)。この場合、CPU1は、当該暗号鍵を用いて、暗号化された秘密情報を復号する。一方、ブロブリスト64に含まれる全てのブロブ(Pattern1ブロブ,Pattern2ブロブ)に対して、PCR51,PCR53のうち少なくとも1つについてブロブに含まれるハッシュ値と、登録されているハッシュ値とが一致しない場合に、TPM5は、ブロブに含まれる暗号鍵の取り出しを許可しない。この場合、CPU1は、正当性エラーであるとして処理を終了する(ステップS65)。
尚、図9に示したTPM登録処理後に、通常の起動が行われた場合には、例えば図5に示されるブロブリスト64のpattern2ブロブを用いて、図8に示される通常の起動時の正当性検証処理が行われる。
以上のように、通常の起動時に対応する配置レジスタ値の組み合わせとハイバネーションによる起動時に対応する配置レジスタ値の組み合わせとを含むブロブリストに対して暗号鍵の取得を試みることにより、ハハイバネーションによる起動時においても、配置レジスタの値を正しく検証することができる。このため、正当にインストールされたソフトウェアについてはその正当性を認識して、起動することができる。従って、本実施の形態においては、ハイバネーションによる起動時においても、ソフトウェアの正当性を正しく検証可能である。
即ち、本実施の形態においては、図8に示されるような通常の起動時の正当性検証処理を行うための配置レジスタの組み合わせを含むブロブを生成し、ハイバネーションイメージが生成されることを前提として、図10に示されるようなハイバネーションによる起動時の正当性検証処理を行うための配置レジスタの組み合わせを含むようブロブを更新することで、ハイバネーションによる起動時に図8に示される正当性検証処理を行っても、トラストチェーンが継続されることになる。
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
上述した実施の形態において、情報処理装置で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供するように構成しても良い。
本実施例では、PCRレジスタを節約するために、ハイバネーションイメージのハッシュ値を記憶するPCRレジスタとして、通常起動でも使用するPCRレジスタ(PCR53)を使用したが、通常起動で使用しない別のレジスタを使用しても構わない。
1 CPU
2 ASIC
3 揮発性メモリ
4 エンジンコントローラ
5 TPM
6 不揮発メモリ
7 ネットワークデバイス
8 SDカードI/F
9 メインバス
10 ローカルバス
20 BIOS
21 基本パッケージ
22 アプリケーションパッケージ
50 プラットフォーム
60〜63 ブロブ
64 ブロブリスト
特開2004−038545号公報 特開2004−038546号公報 特開2007−257197号公報

Claims (5)

  1. 憶内容を保持する記憶部と、
    源の供給切断時当該情報処理装置の作動状態を示す作動状態データを生成して前記記憶部に記憶させ、前記電源の再供給時に、前記記憶部に記憶され前記作動状態データを読み出して当該情報処理装置の作動状態を復元するハイバネーションを行う制御部と、
    前記電源の供給切断時に、生成された前記作動状態データから計算される値に基づいてデータを暗号化し、前記電源の再供給時に、読み出された前記作動状態データから計算される値に基づいて、暗号化された前記データを復号するセキュリティチップと
    前記電源の再供給時に、読み出された前記作動状態データから計算される値に基づいて、暗号化された前記データを復号可能か否かを判断することにより、前記ハイバネーションによる起動時の正当性を検証する検証部と
    を備え、
    前記セキュリティチップは、当該情報処理装置を作動させる複数のソフトウェアのそれぞれから予め計算された値の組合せに基づいて前記データを暗号化し、当該情報処理装置の通常起動時に、前記複数のソフトウェアのそれぞれから計算される値の組合せに基づいて、暗号化された前記データを復号し、
    前記検証部は、当該情報処理装置の通常起動時に、前記複数のソフトウェアのそれぞれから計算される値の組合せに基づいて、暗号化された前記データを復号可能か否かを判断することにより、前記通常起動時の正当性を検証する
    ことを特徴とする情報処理装置。
  2. 生成された前記作動状態データから値を計算して、前記セキュリティチップが有する配置レジスタに登録する第1登録部と、
    読み出された前記作動状態データから値を計算して、前記配置レジスタに登録する第2登録部と、
    をさらに備え、
    前記セキュリティチップは、前記電源の供給切断時に、前記第1登録部によって登録された値に基づいて前記データを暗号化したブロブを生成し、前記電源の再供給時に、前記第2登録部によって登録された値と、前記ブロブを生成する際に用いた前記値とが一致する場合に、暗号化された前記データを前記ブロブから復号する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記複数のソフトウェアのそれぞれから値を予め計算して、前記セキュリティチップが有する複数の配置レジスタにそれぞれ登録する第3登録部と、
    前記通常起動時に前記複数のソフトウェアのそれぞれから値を計算して、複数の前記配置レジスタに登録する第4登録部と、
    をさらに備え、
    前記セキュリティチップは、前記第3登録部によって登録された値の組合せに基づいて前記データを暗号化したブロブを生成し、当該情報処理装置の通常起動時に、前記第4登録部によって登録された値の組合せと、前記ブロブを生成する際に用いた前記値の組合せとが一致する場合に、暗号化された前記データを前記ブロブから復号する
    ことを特徴とする請求項1または2に記載の情報処理装置。
  4. 情報処理装置で実行される正当性検証方法であって、
    電源の供給切断時に当該情報処理装置の作動状態を示す作動状態データを生成して、記憶内容を保持する記憶部に記憶させ、前記電源の再供給時に、前記記憶部に記憶された前記作動状態データを読み出して当該情報処理装置の作動状態を復元するハイバネーションを行うステップと、
    前記電源の供給切断時に、生成された前記作動状態データから計算される値に基づいてデータを暗号化し、前記電源の再供給時に、読み出された前記作動状態データから計算される値に基づいて、暗号化された前記データを復号するステップと、
    前記電源の再供給時に、読み出された前記作動状態データから計算される値に基づいて、暗号化された前記データを復号可能か否かを判断することにより、前記ハイバネーションによる起動時の正当性を検証するステップと、
    当該情報処理装置を作動させる複数のソフトウェアのそれぞれから予め計算された値の組合せに基づいて前記データを暗号化し、当該情報処理装置の通常起動時に、前記複数のソフトウェアのそれぞれから計算される値の組合せに基づいて、暗号化された前記データを復号するステップと、
    当該情報処理装置の通常起動時に、前記複数のソフトウェアのそれぞれから計算される値の組合せに基づいて、暗号化された前記データを復号可能か否かを判断することにより、前記通常起動時の正当性を検証するステップと
    を含むことを特徴とする正当性検証方法。
  5. 請求項に記載の方法をコンピュータに実行させるためのプログラム。
JP2010025656A 2009-04-17 2010-02-08 情報処理装置、正当性検証方法及びプログラム Active JP5493951B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010025656A JP5493951B2 (ja) 2009-04-17 2010-02-08 情報処理装置、正当性検証方法及びプログラム
US12/756,483 US8438377B2 (en) 2009-04-17 2010-04-08 Information processing apparatus, method and computer-readable storage medium that encrypts and decrypts data using a value calculated from operating-state data
US13/859,453 US8782388B2 (en) 2009-04-17 2013-04-09 Information processing apparatus, method, and computer-readable storage medium that encrypt data in a blob based on a hash value

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009100706 2009-04-17
JP2009100706 2009-04-17
JP2010025656A JP5493951B2 (ja) 2009-04-17 2010-02-08 情報処理装置、正当性検証方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2010267246A JP2010267246A (ja) 2010-11-25
JP5493951B2 true JP5493951B2 (ja) 2014-05-14

Family

ID=42981894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010025656A Active JP5493951B2 (ja) 2009-04-17 2010-02-08 情報処理装置、正当性検証方法及びプログラム

Country Status (2)

Country Link
US (2) US8438377B2 (ja)
JP (1) JP5493951B2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5493951B2 (ja) * 2009-04-17 2014-05-14 株式会社リコー 情報処理装置、正当性検証方法及びプログラム
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US8627464B2 (en) * 2010-11-02 2014-01-07 Microsoft Corporation Globally valid measured operating system launch with hibernation support
US8566574B2 (en) * 2010-12-09 2013-10-22 International Business Machines Corporation Secure encrypted boot with simplified firmware update
JP2012173814A (ja) * 2011-02-17 2012-09-10 Canon Inc 情報処理装置及び情報処理装置を制御する制御方法
US8826080B2 (en) * 2011-07-29 2014-09-02 The Boeing Company Methods and systems for preboot data verification
JP5959841B2 (ja) * 2011-12-12 2016-08-02 キヤノン株式会社 画像処理装置及びその制御方法、並びにプログラム
EP2795514A4 (en) 2011-12-22 2015-12-30 Intel Corp INCORPORATED FLIGHT REACTION SUBSYSTEM ALWAYS AVAILABLE
KR101615571B1 (ko) * 2011-12-22 2016-04-26 인텔 코포레이션 상시 가용성 임베디드 도난 반응 서브 시스템
US9507965B2 (en) 2011-12-22 2016-11-29 Intel Corporation Always-available embedded theft reaction subsystem
US9520048B2 (en) 2011-12-22 2016-12-13 Intel Corporation Always-available embedded theft reaction subsystem
US9619671B2 (en) 2011-12-22 2017-04-11 Intel Corporation Always-available embedded theft reaction subsystem
EP2795516A4 (en) 2011-12-22 2015-09-02 Intel Corp INCORPORATED FLIGHT REACTION SUBSYSTEM ALWAYS AVAILABLE
EP2795520A4 (en) 2011-12-22 2015-09-02 Intel Corp INCORPORATED FLIGHT REACTION SUBSYSTEM ALWAYS AVAILABLE
EP2795508A4 (en) 2011-12-22 2015-06-24 Intel Corp STILL AVAILABLE EMBEDDED THEFT REACTION SYSTEM
US9558378B2 (en) 2011-12-22 2017-01-31 Intel Corporation Always-available embedded theft reaction subsystem
WO2013095589A1 (en) 2011-12-22 2013-06-27 Intel Corporation Always-available embedded theft reaction subsystem
US9268941B1 (en) * 2012-05-01 2016-02-23 Marvell International Ltd. Method for secure software resume from low power mode
US9207749B2 (en) * 2012-08-28 2015-12-08 Intel Corporation Mechanism for facilitating efficient operations paths for storage devices in computing systems
US9276750B2 (en) * 2013-07-23 2016-03-01 Intel Corporation Secure processing environment measurement and attestation
JP6244759B2 (ja) * 2013-09-10 2017-12-13 株式会社ソシオネクスト セキュアブート方法、半導体装置、及び、セキュアブートプログラム
CN105745638B (zh) * 2013-09-26 2019-06-14 惠普发展公司,有限责任合伙企业 系统初始化之前的设备配置
JP6263981B2 (ja) 2013-11-20 2018-01-24 株式会社リコー 情報処理装置、情報処理装置の起動方法、及び、プログラム
US10032029B2 (en) * 2014-07-14 2018-07-24 Lenovo (Singapore) Pte. Ltd. Verifying integrity of backup file in a multiple operating system environment
JP6391439B2 (ja) * 2014-11-21 2018-09-19 キヤノン株式会社 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
CN104392152A (zh) * 2014-12-10 2015-03-04 深圳市捷顺科技实业股份有限公司 一种嵌入式设备的启动方法、嵌入式设备、服务器及系统
JP6547306B2 (ja) 2015-01-27 2019-07-24 富士ゼロックス株式会社 情報処理装置、データ退避方法およびプログラム
US10346343B2 (en) 2016-06-24 2019-07-09 Intel Corporation Hardware accelerator for platform firmware integrity check
US10177910B2 (en) * 2016-08-31 2019-01-08 Microsoft Technology Licensing, Llc Preserving protected secrets across a secure boot update
US10528765B2 (en) * 2016-09-16 2020-01-07 Intel Corporation Technologies for secure boot provisioning and management of field-programmable gate array images
US10198203B2 (en) * 2016-11-15 2019-02-05 Samsung Electronics Co., Ltd. Method of operating memory device using pseudo-random functions, memory device using the same and memory system including the device
US11374745B1 (en) * 2017-11-29 2022-06-28 Amazon Technologies, Inc. Key usage tracking using TPM
JP6494143B2 (ja) * 2018-03-27 2019-04-03 インテル・コーポレーション 装置、方法、集積回路、プログラム、及び有形のコンピュータ可読記憶媒体
US10838740B2 (en) 2018-03-30 2020-11-17 Ricoh Company, Ltd. Information processing apparatus and startup method
JP7215116B2 (ja) * 2018-11-29 2023-01-31 株式会社リコー 情報処理装置、情報処理方法及びプログラム
US11250891B1 (en) 2020-08-12 2022-02-15 Micron Technology, Inc. Validation of DRAM content using internal data signature
US11544412B2 (en) * 2020-08-12 2023-01-03 Micron Technology, Inc. Protection against unintended content change in DRAM during standby mode
EP4275136A1 (en) * 2021-02-12 2023-11-15 Hewlett-Packard Development Company, L.P. Generating a request for reprocessing of a replaceable supply component
WO2022173442A1 (en) * 2021-02-12 2022-08-18 Hewlett-Packard Development Company, L.P. Reprocessing of a replaceable supply component

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6379120A (ja) 1986-09-22 1988-04-09 Nec Corp クイツク・スタ−ト・アツプ方式
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
JP2004038546A (ja) 2002-07-03 2004-02-05 Fuji Xerox Co Ltd 起動制御方法、起動制御装置、画像処理装置
JP2004038545A (ja) 2002-07-03 2004-02-05 Fuji Xerox Co Ltd ハイバネーション制御方法、ハイバネーション制御装置、画像処理装置
JP2005258642A (ja) 2004-03-10 2005-09-22 Yamaha Corp 組込型情報処理装置
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7809957B2 (en) * 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US7593548B2 (en) * 2005-12-15 2009-09-22 Microsoft Corporation Secure and anonymous storage and accessibility for sensitive data
JP4848190B2 (ja) * 2006-02-08 2011-12-28 株式会社リコー アプリケーション実行装置、アプリケーション実行方法及びアプリケーション実行プログラム
JP4769608B2 (ja) * 2006-03-22 2011-09-07 富士通株式会社 起動検証機能を有する情報処理装置
US7711960B2 (en) * 2006-08-29 2010-05-04 Intel Corporation Mechanisms to control access to cryptographic keys and to attest to the approved configurations of computer platforms
GB2446658B (en) * 2007-02-19 2011-06-08 Advanced Risc Mach Ltd Hibernating a processing apparatus for processing secure data
JP5116325B2 (ja) 2007-03-15 2013-01-09 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
JP4890309B2 (ja) 2007-03-19 2012-03-07 株式会社リコー 情報処理装置及び情報保護方法
US8886955B2 (en) * 2007-03-28 2014-11-11 Nuvoton Technology Corporation Systems and methods for BIOS processing
US7853804B2 (en) * 2007-09-10 2010-12-14 Lenovo (Singapore) Pte. Ltd. System and method for secure data disposal
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
JP5369502B2 (ja) * 2008-06-04 2013-12-18 株式会社リコー 機器、管理装置、機器管理システム、及びプログラム
JP5493951B2 (ja) * 2009-04-17 2014-05-14 株式会社リコー 情報処理装置、正当性検証方法及びプログラム

Also Published As

Publication number Publication date
US8438377B2 (en) 2013-05-07
US20100268967A1 (en) 2010-10-21
JP2010267246A (ja) 2010-11-25
US20130227267A1 (en) 2013-08-29
US8782388B2 (en) 2014-07-15

Similar Documents

Publication Publication Date Title
JP5493951B2 (ja) 情報処理装置、正当性検証方法及びプログラム
JP4099039B2 (ja) プログラム更新方法
JP4769608B2 (ja) 起動検証機能を有する情報処理装置
JP5116325B2 (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置
JP6595822B2 (ja) 情報処理装置及びその制御方法
JP5085287B2 (ja) 情報処理装置、正当性検証方法および正当性検証プログラム
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
JP4994903B2 (ja) 暗号鍵復旧方法、情報処理装置及び暗号鍵復旧プログラム
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
US8127144B2 (en) Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit
JP2005227995A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4890309B2 (ja) 情報処理装置及び情報保護方法
JP6930884B2 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム
JP2017157018A (ja) 情報処理装置、情報処理方法、情報処理プログラム、及びトラステッド・プラットフォーム・モジュール
JP5582231B2 (ja) 情報処理装置、真正性確認方法、及び記録媒体
CN114995918A (zh) 基板管理控制器的启动方法、配置方法、装置及电子设备
JP2008234079A (ja) 情報処理装置、ソフトウェア正当性通知方法及び画像処理装置
JP2012234580A (ja) 情報処理装置、正当性検証方法および正当性検証プログラム
JP5278520B2 (ja) 情報処理装置、情報保護方法
JP5574007B2 (ja) 情報処理装置及び情報保護方法
JP5310897B2 (ja) 情報処理装置、ソフトウェア更新方法及び記録媒体
JP4580030B2 (ja) セキュアデバイス
JP5234217B2 (ja) 情報処理装置、ソフトウェア更新方法及びプログラム
JP2007272923A (ja) サーバ
JP2007272923A5 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140217

R151 Written notification of patent or utility model registration

Ref document number: 5493951

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151