JP2008234220A - 情報処理装置、ソフトウェア起動方法及び画像処理装置 - Google Patents
情報処理装置、ソフトウェア起動方法及び画像処理装置 Download PDFInfo
- Publication number
- JP2008234220A JP2008234220A JP2007071611A JP2007071611A JP2008234220A JP 2008234220 A JP2008234220 A JP 2008234220A JP 2007071611 A JP2007071611 A JP 2007071611A JP 2007071611 A JP2007071611 A JP 2007071611A JP 2008234220 A JP2008234220 A JP 2008234220A
- Authority
- JP
- Japan
- Prior art keywords
- software
- calculated
- processing apparatus
- information processing
- 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.)
- Pending
Links
Images
Abstract
【課題】起動に必要な複数のソフトウェアを下位のソフトウェアから上位のソフトウェアの順番に起動する際、不正なソフトウェアの起動を抑止できる情報処理装置、ソフトウェア起動方法及び画像処理装置を提供することを目的とする。
【解決手段】起動に必要なソフトウェア21〜24を下位から上位のソフトウェアの順番に起動する情報処理装置であって、起動済みのソフトウェアのうち最上位のソフトウェアを選択し、選択したソフトウェアの領域から、選択したソフトウェアより1つ上位の正当性のあるソフトウェアから一意に計算された第1の格納値を取得する取得手段と、選択したソフトウェアより1つ上位のソフトウェアを起動させる前に、1つ上位のソフトウェアから一意に計算される第1の算出値を算出する算出手段と、第1の格納値及び第1の算出値の比較結果に基づき、1つ上位のソフトウェアの正当性を確認する確認手段とを有することで上記課題を解決する。
【選択図】図5
【解決手段】起動に必要なソフトウェア21〜24を下位から上位のソフトウェアの順番に起動する情報処理装置であって、起動済みのソフトウェアのうち最上位のソフトウェアを選択し、選択したソフトウェアの領域から、選択したソフトウェアより1つ上位の正当性のあるソフトウェアから一意に計算された第1の格納値を取得する取得手段と、選択したソフトウェアより1つ上位のソフトウェアを起動させる前に、1つ上位のソフトウェアから一意に計算される第1の算出値を算出する算出手段と、第1の格納値及び第1の算出値の比較結果に基づき、1つ上位のソフトウェアの正当性を確認する確認手段とを有することで上記課題を解決する。
【選択図】図5
Description
本発明は、情報処理装置、ソフトウェア起動方法及び画像処理装置に係り、特に起動に必要な複数のソフトウェアを、下位のソフトウェアから上位のソフトウェアの順番に起動する情報処理装置、ソフトウェア起動方法及び画像処理装置に関する。
セキュリティを重視するPC等の情報処理装置や複合機(MFP)等の画像処理装置においては、自装置内の秘密情報を保護する必要がある。近年、PC等の情報処理装置や複合機等の画像処理装置ではセキュリティ意識の高まりに伴い、盗聴等を防ぐため、装置内部に保存している秘密情報の暗号化が可能となった。
例えば特許文献1にはTCPA(Trusted Computing Platform Alliance)の仕様に基づいたPCにおいて、TPM(Trusted Platform Module )を用いた情報の暗号化について記載されている。TPMを用いることにより、情報処理装置や画像処理装置は秘密情報を暗号化できる。TPMは例えばマザーボードに直付けされるチップで実現される。特許文献2には秘密情報を様々な脅威から保護することが記載されている。
また、情報処理装置や画像処理装置で自装置内の秘密情報を保護する場合には、起動時に装置内の構成(システム)の真正性を確認する必要がある。この為、TPM内にあるPCR(Platform Configuration Register)へファームウェアから計算したハッシュ値を登録し、PCRに登録されたハッシュ値を秘密情報の復号条件とすることで、情報処理装置や画像処理装置は自装置内の秘密情報を、不正なシステムによるデータ窃取から保護していた。
例えばTPM内にあるPCRへファームウェアから計算したハッシュ値を登録し、PCRに登録されたハッシュ値を秘密情報の復号条件とする従来の情報処理装置や画像処理装置は、BIOS,ブートローダ,カーネル,ルートファイルシステム等のファームウェアを起動するときに、TPM内にあるPCRへファームウェアから計算したハッシュ値を登録する。
そして、従来の情報処理装置や画像処理装置は正しいBIOS,ブートローダ,カーネル,ルートファイルシステム等のファームウェアのハッシュ値でしか復号できない領域を持ち、その中に秘密情報を格納している。このように、従来の情報処理装置や画像処理装置は正しい組み合わせのファームウェアで起動した場合にしか秘密情報を取得できない仕組みを提供している。
特開2004−282391号公報
特開2001−249901号公報
しかしながら、従来の情報処理装置や画像処理装置では、例えばカーネルが不正なものであっても、BIOS,ブートローダ,カーネル,ルートファイルシステム等のファームウェアの起動が全て完了したあと、ファームウェアのどこかに不正なファームウェアがあることを検知し、秘密情報を保護していた。
したがって、従来の情報処理装置や画像処理装置では、ファームウェアの起動が全て完了したあと、不正なファームウェアがあることを検知するため、不正なファームウェアが起動されてしまい、セキュリティ上、好ましくないという問題があった。
本発明は、上記の点に鑑みなされたもので、起動に必要な複数のソフトウェアを下位のソフトウェアから上位のソフトウェアの順番に起動する際、不正なソフトウェアの起動を抑止できる情報処理装置、ソフトウェア起動方法及び画像処理装置を提供することを目的とする。
上記課題を解決するため、本発明は、起動に必要な複数のソフトウェアを下位のソフトウェアから上位のソフトウェアの順番に起動する情報処理装置であって、起動済みのソフトウェアのうち最上位のソフトウェアを選択し、選択したソフトウェアの領域から、選択したソフトウェアより1つ上位の正当性のあるソフトウェアから一意に計算された第1の格納値を取得する取得手段と、選択したソフトウェアより1つ上位のソフトウェアを起動させる前に、1つ上位のソフトウェアから一意に計算される第1の算出値を算出する算出手段と、前記第1の格納値及び第1の算出値の比較結果に基づき、1つ上位のソフトウェアの正当性を確認する確認手段とを有することを特徴とする。
また、本発明は、起動に必要な複数のソフトウェアを下位のソフトウェアから上位のソフトウェアの順番に起動する情報処理装置のソフトウェア起動方法であって、起動済みのソフトウェアのうち最上位のソフトウェアを選択し、選択したソフトウェアの領域から、選択したソフトウェアより1つ上位の正当性のあるソフトウェアから一意に計算された第1の格納値を取得する取得ステップと、選択したソフトウェアより1つ上位のソフトウェアを起動させる前に、1つ上位のソフトウェアから一意に計算される第1の算出値を算出する算出ステップと、前記第1の格納値及び第1の算出値の比較結果に基づき、1つ上位のソフトウェアの正当性を確認する確認ステップとを有することを特徴とする。
また、本発明は、起動に必要な複数のソフトウェアを、下位のソフトウェアから上位のソフトウェアの順番に起動する、スキャナ部およびプロッタ部の少なくとも一方を有している画像処理装置であって、起動済みのソフトウェアのうち最上位のソフトウェアを選択し、選択したソフトウェアの領域から、選択したソフトウェアより1つ上位の正当性のあるソフトウェアから一意に計算された第1の格納値を取得する取得手段と、選択したソフトウェアより1つ上位のソフトウェアを起動させる前に、1つ上位のソフトウェアから一意に計算される第1の算出値を算出する算出手段と、前記第1の格納値及び第1の算出値の比較結果に基づき、1つ上位のソフトウェアの正当性を確認する確認手段とを有することを特徴とする。
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
本発明によれば、起動に必要な複数のソフトウェアを下位のソフトウェアから上位のソフトウェアの順番に起動する際、不正なソフトウェアの起動を抑止できる情報処理装置、ソフトウェア起動方法及び画像処理装置を提供可能である。
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例ではPC等の情報処理装置を例に説明しているが、複合機等の画像処理装置やPC周辺機器全般であってもよい。また、以下の実施例ではファームウェアとしてBIOS,ブートローダ,カーネル,ルートファイルシステムを例に説明しているが、他のソフトウェアであってもよい。
本発明による情報処理装置では、BIOS,ブートローダ,カーネル及びルートファイルシステムを順番に起動するとき、後述のように異常を検出できるので、不正なファームウェアの起動を抑止することが可能である。
図1は本発明による情報処理装置の一実施例のハードウェア構成図である。図1の情報処理装置1は、CPU11,ROM12,RAM13及びTPM14を有するように構成される。CPU11は、バス15を介してROM12,RAM13及びTPM14に接続されている。
図1の情報処理装置1は、バス15上にTPM14が搭載されており、秘密情報の暗号化や復号、プラットフォームの真正性を確認するプラットフォーム検証の機能を提供できる構成となっている。
図2は本発明による情報処理装置の一実施例のソフトウェア構成図である。図2の情報処理装置1は、BIOS21,ブートローダ22,カーネル23,ルートファイルシステム24及びアプリケーション25を有するように構成される。
情報処理装置の起動時、BIOS21はブートローダ22をROM12からRAM13に読み込んで起動する。ブートローダ22はカーネル23及びルートファイルシステム24をROM12からRAM13に読み込み、カーネル23及びルートファイルシステム24を起動する。カーネル23は、ルートファイルシステム24の管理している起動プログラム(図示せず)をROM12からRAM13に読み込んで起動する。そして、起動プログラムは、ルートファイルシステム24の管理しているアプリケーション25をROM12からRAM13に読み込んで起動する。
このように、図2の情報処理装置1は、BIOS21,ブートローダ22,カーネル23,ルートファイルシステム24及びアプリケーション25の順番に起動する。なお、BIOS21,ブートローダ22,カーネル23,ルートファイルシステム24及びアプリケーション25等は、CPU11によりROM12からRAM13へ読み込まれて実行される。以下では説明の便宜上、BIOS21,ブートローダ22,カーネル23,ルートファイルシステム24及びアプリケーション25等を処理主体として説明する。なお、図1及び図2に示した情報処理装置1の起動時の動作の詳細は後述する。
次に、TPM14の仕組みについて説明する。ここでは、ブートローダ22がカーネル23を起動する例を説明する。
図3はTPMにハッシュ値を格納する処理手順を表した模式図である。ステップS11に進み、ブートローダ22がROM12からRAM13へカーネル23を読み込む。ステップS12に進み、TPM7はカーネル23の例えば原文から固定長の疑似乱数を生成する演算手法によって計算されるハッシュ値をPCRへ格納する。例えば図3では、カーネル23のハッシュ値「0x3a」が「PCR3」へ格納されている。そして、ステップS13に進み、ブートローダ22はカーネル23を起動する。
このように、TPM14は、BIOS21,ブートローダ22,カーネル23,ルートファイルシステム24,アプリケーション25等を起動する際、上記のように計算されたハッシュ値をPCRへ格納する。
図4はTPMを用いた領域の復号を表す模式図である。TPM14には情報処理装置1を起動する際に、BIOS21,ブートローダ22,カーネル23,ルートファイルシステム24の4つのハッシュ値が「PCR1」〜「PCR4」へ格納されている。TPM14を用いて暗号化された領域41,42は「PCR3」により暗号化されている。
領域41は「PCR3=0x3a」で暗号化されている。領域42は「PCR3=0x3b」で暗号化されている。なお、TPM14には、「PCR1」〜「PCR4」に「0xe9」,「0x12」,「0x3a」,「0x06」が設定されている。
図4の領域41の場合、TPM14の「PCR3」に格納されているのと同じハッシュ値「0x3a」で暗号化されているため、TPM14は領域41からの内容物の取り出しを許可する。また、領域42の場合、TPM14の「PCR3」格納されているのと異なるハッシュ値「0x3b」が格納されているため、TPM14は領域42からの内容物の取り出しを許可しない。
本発明による情報処理装置1はTPM14を用いることで、後述するように、次に起動するファームウェアの正当性を確認できるので、不正なファームウェアの起動を抑止することが可能である。
図5は本発明による情報処理装置の起動時の動作を表した模式図である。図5のTPM14はセキュアな領域に秘密鍵「SPK」を有している。また、情報処理装置1はBIOS21,ブートローダ22,カーネル23及びルートファイルシステム24の順番に起動されるものとする。なお、情報処理装置1は下位のソフトウェアから上位のソフトウェアの順番に起動するものである。
BIOS21は、TPM14の秘密鍵「SPK」により暗号化された領域51を有している。領域51には次に起動するブートローダ22から事前に算出したハッシュ値「Hbl」が格納されている。領域51に格納するためのハッシュ値「Hbl」は、正当性のあるブートローダ22から算出されたものとする。
まず、情報処理装置1ではBIOS21が起動される。ステップS51に進み、BIOS21は領域51をTPM14の秘密鍵「SPK」により復号させたあと、領域51からハッシュ値「Hbl」を取得する。ステップS52に進み、BIOS21は次に起動するブートローダ22のハッシュ値「Hbl」を算出する。
BIOS21は、領域51から取得したハッシュ値「Hbl」と、次に起動するブートローダ22から算出したハッシュ値「Hbl」とを比較する。BIOS21は、比較結果が一致でなければ、ブートローダ22が不正であると判定して、起動を停止する。BIOS21は、比較結果が一致であれば、ブートローダ22が正当であると判定して、ブートローダ22を起動する。ステップS53に進み、BIOS21は自身のハッシュ値「Hbi」を算出し、TPM14内にある「PCR1」にハッシュ値「Hbi」を格納する。
ブートローダ22は、BIOS21から事前に算出したハッシュ値「Hbi」により暗号化された領域52を有している。領域52には次に起動するカーネル23から事前に算出したハッシュ値「Hk」が格納されている。領域52に格納するためのハッシュ値「Hk」は、正当性のあるカーネル23から算出されたものとする。
ステップS54に進み、ブートローダ22は、領域52をTPM14の「PCR1」に格納されているハッシュ値「Hbi」によりTPM14に復号させたあと、領域52からハッシュ値「Hk」を取得する。ステップS55に進み、ブートローダ22は次に起動するカーネル23のハッシュ値「Hk」を算出する。
ブートローダ22は領域52から取得したハッシュ値「Hk」と次に起動するカーネル23から算出したハッシュ値「Hk」とを比較する。ブートローダ22は、比較結果が一致でなければ、カーネル23が不正であると判定して、起動を停止する。ブートローダ22は、比較結果が一致であれば、カーネル23が正当であると判定して、カーネル23を起動する。ステップS56に進み、ブートローダ22は自身のハッシュ値「Hbl」をTPM14内にある「PCR2」に格納する。
以下、同様にして、カーネル23及びルートファイルシステム24は1つ上位のソフトウェアの正当性を確認し、正当性があるときに1つ上位のソフトウェアを起動する。このように実施例1の情報処理装置1では、BIOS21,ブートローダ22,カーネル23及びルートファイルシステム24を順番に起動するとき、1つ上位のファームウェアの正当性を確認できるので、不正なファームウェアの起動を抑止することが可能である。
図6は本発明による情報処理装置においてソフトウェアを更新する動作を表した模式図である。図6ではカーネル23をカーネル23aに更新する例を表している。
ステップS61に進み、カーネル23aは更新時に1つ上位のルートファイルシステム24のハッシュ値「Hs」を算出し、自身の暗号化したい領域61に書き込む。ステップS62に進み、カーネル23aは1つ下位のブートローダ22のハッシュ値「Hbl」により暗号化を行う。なお、BIOS21を更新する場合は、1つ下位のファームウェアのハッシュ値に代えて、TPM14の秘密鍵「SPK」により暗号化を行う。
ステップS63に進み、カーネル23aは自身のハッシュ値「Hk'」をブートローダ22の暗号化された領域52に格納する。そして、ステップS64に進み、カーネル23はカーネル23aに更新される。
このように実施例1の情報処理装置1では、BIOS21,ブートローダ22,カーネル23及びルートファイルシステム24の何れかを更新する場合であっても、上記したようなファームウェアの正当性を確認する機構を保持し続けることができる。
図7は本発明による情報処理装置の一実施例のハードウェア構成図である。図7の情報処理装置2は、CPU11,ROM12,RAM13,NVRAM16および暗号ハードウェア(暗号H/W)17を有するように構成される。CPU11は、バス15を介してROM12,RAM13,NVRAM16および暗号H/W17に接続されている。
図7の情報処理装置2は、バス15上に暗号H/W17が搭載されており、秘密情報の暗号化や復号、プラットフォームの真正性を確認するプラットフォーム検証の機能を提供できる構成となっている。なお、ソフトウェア構成は図2と同様である。
図8は、本発明による情報処理装置の起動時の動作を表した模式図である。図8のNVRAM16は、秘密鍵「KEY」を有している。BIOS21は、NVRAM16の秘密鍵「KEY」により暗号化されている領域81を有している。領域81には次に起動するブートローダ22から事前に算出したハッシュ値「Hbl」が格納されている。領域81に格納するためのハッシュ値「Hbl」は、正当性のあるブートローダ22から算出されたものとする。
まず、情報処理装置2ではBIOS21が起動される。ステップS81に進み、BIOS21はNVRAM16から秘密鍵「KEY」を取り出す。ステップS82に進み、BIOS21は秘密鍵「KEY」を利用して暗号H/W17に領域81を復号させ、領域81からハッシュ値「Hbl」を取得する。ステップS83に進み、BIOS21は次に起動するブートローダ22のハッシュ値「Hbl」を算出する。
BIOS21は、領域81から取得したハッシュ値「Hbl」と、次に起動するブートローダ22から算出したハッシュ値「Hbl」とを比較する。BIOS21は、比較結果が一致でなければ、ブートローダ22が不正であると判定して、起動を停止する。BIOS21は、比較結果が一致であれば、ブートローダ22が正当であると判定して、ブートローダ22を起動する。
ブートローダ22は、BIOS21から事前に算出したハッシュ値「Hbi」により暗号化された領域82を有している。領域82には次に起動するカーネル23から事前に算出したハッシュ値「Hk」が格納されている。領域82に格納するためのハッシュ値「Hk」は、正当性のあるカーネル23から算出されたものとする。
ステップS84に進み、ブートローダ22はBIOS21のハッシュ値「Hbi」を算出し、BIOS21のハッシュ値「Hbi」を利用して暗号H/W17に領域82を復号させ、領域82からハッシュ値「Hk」を取得する。ブートローダ22はステップS85に進み、次に起動するカーネル23のハッシュ値「Hk」を算出する。
ブートローダ22は領域82から取得したハッシュ値「Hk」と次に起動するカーネル23から算出したハッシュ値「Hk」とを比較する。ブートローダ22は、比較結果が一致でなければ、カーネル23が不正であると判定して、起動を停止する。ブートローダ22は、比較結果が一致であれば、カーネル23が正当であると判定して、カーネル23を起動する。
以下、同様にして、カーネル23及びルートファイルシステム24は1つ上位のソフトウェアの正当性を確認し、正当性があるときに1つ上位のソフトウェアを起動する。実施例2の情報処理装置2ではTPM14を搭載しないハードウェア構成であっても、NVRAM16及び暗号H/W17を利用して、上記したようなファームウェアの正当性を確認する機構を実現できる。
図9は本発明による情報処理装置の一実施例のハードウェア構成図である。図9の情報処理装置3は、CPU11,ROM12,RAM13,TPM14及びネットワーク制御部(NIC)18を有するように構成される。CPU11は、バス15を介してROM12,RAM13,TPM14及びNIC18に接続されている。
情報処理装置3はインターネットやLANなどのネットワーク8を介してネットワークブートサーバ7に接続されている。図9の情報処理装置3は、バス15上にTPM14が搭載されており、秘密情報の暗号化や復号、プラットフォームの真正性を確認するプラットフォーム検証の機能を提供できる構成となっている。情報処理装置3は、ネットワークブートによる起動が可能である。なお、ソフトウェア構成は図2と同様である。
図10は本発明による情報処理装置の起動時の動作を表した模式図である。図10の情報処理装置3は装置内部にBIOS21が搭載されている。BIOS21以外のファームウェアは、ネットワークブートサーバ7から情報処理装置3にダウンロードされる。BIOS21以外のファームウェアをダウンロードした後、情報処理装置3は起動される。
図10のTPM14はセキュアな領域に秘密鍵「SPK」を有している。BIOS21は、TPM14の秘密鍵「SPK」により暗号化された領域101を有している。領域101には、次に起動するブートローダ22から事前に算出したハッシュ値「Hbl」及びネットワークブートに使用するNIC18のプログラム19のハッシュ値「Hnic」が格納されている。
領域101に格納するためのハッシュ値「Hbl」は正当性のあるブートローダ22から算出されたものとする。また、領域101に格納するためのハッシュ値「Hnic」は正当性のあるNIC18のプログラム19から算出されたものとする。
まず、情報処理装置3ではBIOS21が起動される。ステップS101に進み、BIOS21は領域101をTPM14の秘密鍵「SPK」により復号させたあと、領域101からハッシュ値「Hbl」およびハッシュ値「Hnic」を取得する。ステップS102に進み、BIOS21はNIC18のプログラム19のハッシュ値「Hnic」を算出する。
BIOS21は、領域101から取得したハッシュ値「Hnic」と、NIC18のプログラム19から算出したハッシュ値「Hnic」とを比較する。BIOS21は、比較結果が一致でなければ、NIC18のプログラム19が不正であると判定して、起動を停止する。BIOS21は、比較結果が一致であれば、NIC18のプログラム19が正当であると判定して、ステップS103に進む。
ステップS103では、BIOS21がネットワークブートサーバ7からブートローダ22,カーネル23,ルートファイルシステム24をダウンロードする。なお、図10ではルートファイルシステム24を省略している。ステップS104に進み、BIOS21は次に起動するブートローダ22のハッシュ値「Hbl」を算出する。
BIOS21は領域101から取得したハッシュ値「Hbl」と、次に起動するブートローダ22から算出したハッシュ値「Hbl」とを比較する。BIOS21は、比較結果が一致でなければ、ブートローダ22が不正であると判定して、起動を停止する。BIOS21は、比較結果が一致であれば、ブートローダ22が正当であると判定して、ブートローダ22を起動する。ステップS105に進み、BIOS21は自身のハッシュ値「Hbi」を算出し、TPM14内の「PCR1」にハッシュ値「Hbi」を格納する。
ブートローダ22は、BIOS21から事前に算出したハッシュ値「Hbi」により暗号化された領域102を有している。領域102には次に起動するカーネル23から事前に算出したハッシュ値「Hk」が格納されている。領域102に格納するためのハッシュ値「Hk」は、正当性のあるカーネル23から算出されたものとする。
ステップS106に進み、ブートローダ22は、暗号化されている領域102をTPM14の「PCR1」に格納されているハッシュ値「Hbi」によりTPM14に復号させたあと、領域102からハッシュ値「Hk」を取得する。ブートローダ22はステップS107に進み、次に起動するカーネル23のハッシュ値「Hk」を算出する。
ブートローダ22は領域102から取得したハッシュ値「Hk」と次に起動するカーネル23から算出したハッシュ値「Hk」とを比較する。ブートローダ22は比較結果が一致でなければ、カーネル23が不正であると判定して、起動を停止する。ブートローダ22は比較結果が一致であれば、カーネル23が正当であると判定して、カーネル23を起動する。その後、ブートローダ22はステップS108に進み、自身のハッシュ値「Hbl」をTPM14内にある「PCR2」に格納する。
以下、同様にして、カーネル23及びルートファイルシステム24は1つ上位のソフトウェアの正当性を確認し、正当性があるときに1つ上位のソフトウェアを起動する。このように実施例3の情報処理装置3では、ネットワークブートによる起動においても、上記したようなファームウェアの正当性を確認する機構を実現できる。
図11は本発明による情報処理装置の一実施例のハードウェア構成図である。図11の情報処理装置4は、CPU11,ROM12,RAM13及びNIC18を有するように構成される。CPU11は、バス15を介してROM12,RAM13及びNIC18に接続されている。
情報処理装置4はネットワーク8を介してサーバPC9に接続されている。図11の情報処理装置4は、バス15上にTPM14又は暗号H/W17が搭載されておらず、公開鍵暗号機能を有するサーバPC9と通信可能なNIC18との組み合わせで秘密情報の暗号化や復号、プラットフォームの真正性を確認するプラットフォーム検証の機能を提供できる構成となっている。なお、ソフトウェア構成は図2と同様である。
図12は本発明による情報処理装置の起動時の動作を表した模式図である。図12の情報処理装置4は
BIOS21は、次に起動するブートローダ22から事前に算出したハッシュ値「Hbl」及びネットワークブートに使用するNIC18のプログラム19のハッシュ値「Hnic」が格納された領域121を有している。
BIOS21は、次に起動するブートローダ22から事前に算出したハッシュ値「Hbl」及びネットワークブートに使用するNIC18のプログラム19のハッシュ値「Hnic」が格納された領域121を有している。
領域121に格納するためのハッシュ値「Hbl」は正当性のあるブートローダ22から算出されたものとする。また、領域121に格納するためのハッシュ値「Hnic」は正当性のあるNIC18のプログラム19から算出されたものとする。
まず、情報処理装置4ではBIOS21が起動される。BIOS21は、領域101からハッシュ値「Hnic」を取得する。ステップS121に進み、BIOS21はNIC18のプログラム19のハッシュ値「Hnic」を算出する。
BIOS21は、領域121から取得したハッシュ値「Hnic」と、NIC18のプログラム19から算出したハッシュ値「Hnic」とを比較する。BIOS21は、比較結果が一致でなければ、NIC18のプログラム19が不正であると判定して、起動を停止する。BIOS21は、比較結果が一致であれば、NIC18のプログラム19が正当であると判定して、ステップS122に進む。
ステップS122では、BIOS21が、サーバPC9により配布されている公開鍵によりファームウェア全体が暗号化されたブートローダ22をサーバPC9に送信する。すると、サーバPC9は自身の秘密鍵によりブートローダ22を復号したあと、情報処理装置4に送信する。このとき、サーバPC9による復号が正しく行えなければブートローダ22は不正と判定される。
ステップS123に進み、BIOS21は、次に起動するブートローダ22のハッシュ値「Hbl」を算出する。BIOS21は、領域121からハッシュ値「Hbl」を取得する。BIOS21は、領域121から取得したハッシュ値「Hbl」と、次に起動するブートローダ22から算出したハッシュ値「Hbl」とを比較する。
BIOS21は、比較結果が一致でなければ、ブートローダ22が不正であると判定して、起動を停止する。BIOS21は、比較結果が一致であれば、ブートローダ22が正当であると判定して、ブートローダ22を起動する。起動されたブートローダ22は次に起動するカーネル23から事前に算出したハッシュ値「Hk」が格納された領域122を有している。領域122に格納するためのハッシュ値「Hk」は正当性のあるカーネル23から算出されたものとする。
ステップS124に進み、ブートローダ22はサーバPC9により配布されている公開鍵によりファームウェア全体が暗号化されたカーネル23をサーバPC9に送信する。すると、サーバPC9は自身の秘密鍵によりカーネル23を復号したあと、情報処理装置4に送信する。このとき、サーバPC9による復号が正しく行えなければカーネル23は不正と判定される。
ステップS125に進み、ブートローダ22は、次に起動するカーネル23のハッシュ値「Hk」を算出する。ブートローダ22は、領域122からハッシュ値「Hk」を取得する。ブートローダ22は、領域122から取得したハッシュ値「Hk」と、次に起動するカーネル23から算出したハッシュ値「Hk」とを比較する。
ブートローダ22は、比較結果が一致でなければ、カーネル23が不正であると判定して、起動を停止する。ブートローダ22は、比較結果が一致であれば、カーネル23が正当であると判定して、カーネル23を起動する。
以下、同様にして、カーネル23及びルートファイルシステム24は1つ上位のソフトウェアの正当性を確認し、正当性があるときに1つ上位のソフトウェアを起動する。このように実施例4の情報処理装置3ではTPM14又は暗号H/W17を搭載しないハードウェア構成であったとしても、公開鍵暗号機能を有するサーバPC9と通信可能なNIC18との組み合わせにより、上記したようなファームウェアの正当性を確認する機構を実現できる。
図13は本発明による情報処理装置の一実施例のハードウェア構成図である。図13の情報処理装置5は、CPU11,ROM12,RAM13,NVRAM16およびCPU11aを有するように構成される。CPU11は、本体の起動用CPUである。CPU11aは、暗号を制御する暗号ソフトの起動用CPUである。
CPU11及びCPU11aは、バス15を介してROM12,RAM13,NVRAM16に接続されている。図13の情報処理装置5はバス15上に暗号を制御する暗号ソフトの起動用のCPU11aが搭載され、秘密情報の暗号化や復号、プラットフォームの真正性を確認するプラットフォーム検証の機能を提供できる構成となっている。なお、ソフトウェア構成は図2と同様である。
図14は、本発明による情報処理装置の起動時の動作を表した模式図である。図14のNVRAM16は、秘密鍵「KEY」を有している。BIOS21は、NVRAM16の秘密鍵「KEY」により暗号化されている領域142を有している。領域142には次に起動するブートローダ22から事前に算出したハッシュ値「Hbl」および暗号ソフト141のハッシュ値「Henc」が格納されている。
領域142に格納するためのハッシュ値「Hbl」は、正当性のあるブートローダ22から算出されたものとする。領域142に格納するためのハッシュ値「Henc」は、正当性のある暗号ソフト141から算出されたものとする。
まず、情報処理装置5ではBIOS21が起動される。ステップS141に進み、BIOS21はNVRAM16から秘密鍵「KEY」を取り出す。BIOS21はステップS142に進み、秘密鍵「KEY」を利用して暗号ソフト141に領域142を復号させたあと、領域142からハッシュ値「Hbl」及びハッシュ値「Henc」を取得する。ステップS143に進み、暗号ソフト141のハッシュ値を算出する。
BIOS21は、領域142から取得したハッシュ値「Henc」と、暗号ソフト141から算出したハッシュ値「Henc」とを比較する。BIOS21は、比較結果が一致でなければ、暗号ソフト141が不正であると判定して、起動を停止する。BIOS21は比較結果が一致であれば、暗号ソフト141が正当であると判定して、ステップS144に進む。そして、ステップS144では、BIOS21が、次に起動するブートローダ22のハッシュ値「Hbl」を算出する。
BIOS21は、領域142から取得したハッシュ値「Hbl」と次に起動するブートローダ22から算出したハッシュ値「Hbl」とを比較する。BIOS21は、比較結果が一致でなければ、ブートローダ22が不正であると判定して、起動を停止する。BIOS21は、比較結果が一致であれば、ブートローダ22が正当であると判定して、ブートローダ22を起動する。
ブートローダ22は、BIOS21から事前に算出したハッシュ値「Hbi」により暗号化された領域143を有している。領域143には次に起動するカーネル23から事前に算出したハッシュ値「Hk」が格納されている。領域143に格納するためのハッシュ値「Hk」は、正当性のあるカーネル23から算出されたものとする。
ステップS145に進み、ブートローダ22はBIOS21のハッシュ値「Hbi」を算出し、BIOS21のハッシュ値「Hbi」を利用して暗号ソフト141に領域143を復号させ、領域143からハッシュ値「Hk」を取得する。ブートローダ22はステップS146に進み、次に起動するカーネル23のハッシュ値「Hk」を算出する。
ブートローダ22は領域143から取得したハッシュ値「Hk」と次に起動するカーネル23から算出したハッシュ値「Hk」とを比較する。ブートローダ22は、比較結果が一致でなければ、カーネル23が不正であると判定して、起動を停止する。ブートローダ22は、比較結果が一致であれば、カーネル23が正当であると判定して、カーネル23を起動する。
以下、同様にして、カーネル23及びルートファイルシステム24は1つ上位のソフトウェアの正当性を確認し、正当性があるときに1つ上位のソフトウェアを起動する。実施例5の情報処理装置5ではTPM14又は暗号H/W17を搭載しないハードウェア構成であったとしても、暗号を制御する暗号ソフト141と起動用CPU11aとの組み合わせにより、上記したようなファームウェアの正当性を確認する機構を実現できる。
図15は本発明による情報処理装置の一実施例のハードウェア構成図である。図15の情報処理装置6は、CPU11,ROM12,RAM13,TPM14及びLED20を有するように構成される。CPU11は、バス15を介してROM12,RAM13,TPM14及びLED20に接続されている。
図15のハードウェア構成は、図1のハードウェア構成にLED20が追加されたものである。なお、前述した実施例2〜5のハードウェア構成にLED20を追加するようにしてもよい。
図15の情報処理装置6は、バス15上にTPM14が搭載されており、秘密情報の暗号化や復号、プラットフォームの真正性を確認するプラットフォーム検証の機能を提供できる構成となっている。LED20は、ファームウェアが不正であると判定して、起動を停止したとき、点滅などでユーザに異常を通知するものである。なお、ソフトウェア構成は図2と同様である。
図16は本発明による情報処理装置の起動時の動作を表した模式図である。ステップS161に進み、BIOS21は領域51をTPM14の秘密鍵「SPK」により復号させたあと、領域51からハッシュ値「Hbl」を取得する。ステップS162に進み、BIOS21は次に起動するブートローダ22のハッシュ値「Hbl」を算出する。
BIOS21は、領域51から取得したハッシュ値「Hbl」と、次に起動するブートローダ22から算出したハッシュ値「Hbl」とを比較する。BIOS21は、比較結果が一致であるので、ブートローダ22が正当であると判定して、ブートローダ22を起動する。ステップS163に進み、BIOS21は自身のハッシュ値「Hbi」を算出してTPM14内にある「PCR1」にハッシュ値「Hbi」を格納する。
ブートローダ22は、BIOS21から事前に算出したハッシュ値「Hbi」により暗号化された領域52を有している。領域52には次に起動するカーネル23から事前に算出したハッシュ値「Hk」が格納されている。領域52に格納するためのハッシュ値「Hk」は、正当性のあるカーネル23から算出されたものとする。
ステップS164に進み、ブートローダ22は領域52をTPM14の「PCR1」に格納されているハッシュ値「Hbi」によりTPM14に復号させたあと、領域52からハッシュ値「Hk」を取得する。ステップS165に進み、ブートローダ22は次に起動するカーネル23のハッシュ値「Hk'」を算出する。
ブートローダ22は領域52から取得したハッシュ値「Hk」と次に起動するカーネル23から算出したハッシュ値「Hk'」とを比較する。ブートローダ22は、比較結果が一致でないので、カーネル23が不正であると判定して、起動を停止する。そして、ブートローダ22は例えばコントローラボード上にあるLED20を点灯させる。なお、LED20を点灯するタイミングなどで、どのファームウェアが不正であったかをユーザに通知することもできる。
このように実施例6の情報処理装置1では、ファームウェアが不正であると判定して起動を停止したとき、点滅などでユーザに異常を通知できる。
1〜6 情報処理装置
7 ネットワークブートサーバ
8 ネットワーク
9 サーバPC
11,11a CPU
12 ROM
13 RAM
14 TPM
15 バス
16 NVRAM
17 暗号H/W
18 ネットワーク制御部(NIC)
19 プログラム
20 LED
21 BIOS
22 ブートローダ
23 カーネル
24 ルートファイルシステム
25 アプリケーション
141 暗号ソフト
7 ネットワークブートサーバ
8 ネットワーク
9 サーバPC
11,11a CPU
12 ROM
13 RAM
14 TPM
15 バス
16 NVRAM
17 暗号H/W
18 ネットワーク制御部(NIC)
19 プログラム
20 LED
21 BIOS
22 ブートローダ
23 カーネル
24 ルートファイルシステム
25 アプリケーション
141 暗号ソフト
Claims (10)
- 起動に必要な複数のソフトウェアを下位のソフトウェアから上位のソフトウェアの順番に起動する情報処理装置であって、
起動済みのソフトウェアのうち最上位のソフトウェアを選択し、選択したソフトウェアの領域から、選択したソフトウェアより1つ上位の正当性のあるソフトウェアから一意に計算された第1の格納値を取得する取得手段と、
選択したソフトウェアより1つ上位のソフトウェアを起動させる前に、1つ上位のソフトウェアから一意に計算される第1の算出値を算出する算出手段と、
前記第1の格納値及び第1の算出値の比較結果に基づき、1つ上位のソフトウェアの正当性を確認する確認手段と
を有することを特徴とする情報処理装置。 - 前記確認手段は、
前記第1の格納値及び第1の算出値が一致するとき、選択したソフトウェアより1つ上位のソフトウェアを起動し、
前記第1の格納値及び第1の算出値が一致しないとき、1つ上位のソフトウェアを起動しないことを特徴とする請求項1記載の情報処理装置。 - 前記確認手段は、前記第1の格納値及び第1の算出値が一致しないとき、異常通知手段を用いてユーザに異常を通知することを特徴とする請求項2記載の情報処理装置。
- 最下位のソフトウェアの領域は前記第1の格納値以外で暗号化されており、最下位以外のソフトウェアの領域は1つ下位の正当性のあるソフトウェアから一意に計算された第2の算出値で暗号化されていることを特徴とする請求項1記載の情報処理装置。
- 更新したいソフトウェアの1つ上位の正当性のあるソフトウェアから一意に計算された第3の算出値を取得し、更新したいソフトウェアの領域に前記第3の算出値を格納し、1つ下位の正当性のあるソフトウェアから一意に計算された第2の算出値で更新したいソフトウェアの領域を暗号化し、更新したいソフトウェアの1つ下位のソフトウェアの領域に更新したいソフトウェアから一意に計算した第1の格納値を格納したあと、更新したいソフトウェアで更新前のソフトウェアを更新する更新手段
を更に有することを特徴とする請求項1記載の情報処理装置。 - 最下位のソフトウェアの領域は、1つ上位の正当性のあるソフトウェアから一意に計算された第1の格納値と、ネットワーク経由で他の装置と通信する為の正当性のあるネットワーク制御部ソフトウェアから一意に計算された第2の格納値とが格納されており、
前記算出手段はネットワーク制御部ソフトウェアを起動させる前に、ネットワーク制御部ソフトウェアから一意に計算される第4の算出値を算出し、
前記確認手段は前記第2の格納値及び第4の算出値の比較結果に基づき、ネットワーク制御部ソフトウェアの正当性を確認すること
を特徴とする請求項1記載の情報処理装置。 - 前記確認手段は、前記第2の格納値及び第4の算出値が一致するとき、ネットワーク制御部ソフトウェアを起動したあと、前記他の装置から起動に必要な複数のソフトウェアのうちの一部をダウンロードし、
前記第2の格納値及び第4の算出値が一致しないとき、ネットワーク制御部ソフトウェアを起動しないことを特徴とする請求項6記載の情報処理装置。 - 前記確認手段は、前記第2の格納値及び第4の算出値が一致するとき、ネットワーク制御部ソフトウェアを起動したあと、前記他の装置の公開鍵により暗号化されている起動に必要な複数のソフトウェアを前記他の装置に復号させ、
前記第2の格納値及び第4の算出値が一致しないとき、ネットワーク制御部ソフトウェアを起動しないことを特徴とする請求項6記載の情報処理装置。 - 起動に必要な複数のソフトウェアを下位のソフトウェアから上位のソフトウェアの順番に起動する情報処理装置のソフトウェア起動方法であって、
起動済みのソフトウェアのうち最上位のソフトウェアを選択し、選択したソフトウェアの領域から、選択したソフトウェアより1つ上位の正当性のあるソフトウェアから一意に計算された第1の格納値を取得する取得ステップと、
選択したソフトウェアより1つ上位のソフトウェアを起動させる前に、1つ上位のソフトウェアから一意に計算される第1の算出値を算出する算出ステップと、
前記第1の格納値及び第1の算出値の比較結果に基づき、1つ上位のソフトウェアの正当性を確認する確認ステップと
を有することを特徴とするソフトウェア起動方法。 - 起動に必要な複数のソフトウェアを、下位のソフトウェアから上位のソフトウェアの順番に起動する、スキャナ部およびプロッタ部の少なくとも一方を有している画像処理装置であって、
起動済みのソフトウェアのうち最上位のソフトウェアを選択し、選択したソフトウェアの領域から、選択したソフトウェアより1つ上位の正当性のあるソフトウェアから一意に計算された第1の格納値を取得する取得手段と、
選択したソフトウェアより1つ上位のソフトウェアを起動させる前に、1つ上位のソフトウェアから一意に計算される第1の算出値を算出する算出手段と、
前記第1の格納値及び第1の算出値の比較結果に基づき、1つ上位のソフトウェアの正当性を確認する確認手段と
を有することを特徴とする画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007071611A JP2008234220A (ja) | 2007-03-19 | 2007-03-19 | 情報処理装置、ソフトウェア起動方法及び画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007071611A JP2008234220A (ja) | 2007-03-19 | 2007-03-19 | 情報処理装置、ソフトウェア起動方法及び画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008234220A true JP2008234220A (ja) | 2008-10-02 |
Family
ID=39906922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007071611A Pending JP2008234220A (ja) | 2007-03-19 | 2007-03-19 | 情報処理装置、ソフトウェア起動方法及び画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008234220A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8522045B2 (en) | 2010-02-08 | 2013-08-27 | Ricoh Company, Ltd. | Multi-functional system, security method, security program, and storage medium |
US8605563B2 (en) | 2009-12-25 | 2013-12-10 | Hitachi—LG Data Storage, Inc. | Optical disc device and control method of optical disc |
JP2015537323A (ja) * | 2012-12-14 | 2015-12-24 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 「ブリング・ユア・オウン」管理のための起動機構 |
US9569621B2 (en) | 2011-11-30 | 2017-02-14 | Ricoh Company, Ltd. | Information processing apparatus and information processing apparatus startup control method |
JP2018088574A (ja) * | 2016-11-28 | 2018-06-07 | 株式会社日立製作所 | プログラムイメージを保護する方法 |
-
2007
- 2007-03-19 JP JP2007071611A patent/JP2008234220A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8605563B2 (en) | 2009-12-25 | 2013-12-10 | Hitachi—LG Data Storage, Inc. | Optical disc device and control method of optical disc |
US8522045B2 (en) | 2010-02-08 | 2013-08-27 | Ricoh Company, Ltd. | Multi-functional system, security method, security program, and storage medium |
US9569621B2 (en) | 2011-11-30 | 2017-02-14 | Ricoh Company, Ltd. | Information processing apparatus and information processing apparatus startup control method |
JP2015537323A (ja) * | 2012-12-14 | 2015-12-24 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 「ブリング・ユア・オウン」管理のための起動機構 |
US9721102B2 (en) | 2012-12-14 | 2017-08-01 | International Business Machines Corporation | Boot mechanisms for bring your own management |
JP2018088574A (ja) * | 2016-11-28 | 2018-06-07 | 株式会社日立製作所 | プログラムイメージを保護する方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10931451B2 (en) | Securely recovering a computing device | |
US8560820B2 (en) | Single security model in booting a computing device | |
US8782388B2 (en) | Information processing apparatus, method, and computer-readable storage medium that encrypt data in a blob based on a hash value | |
JP5690412B2 (ja) | ハードウェアデバイスの鍵プロビジョン方法および装置 | |
KR101190479B1 (ko) | 티켓 인증 보안 설치 및 부트 | |
US8291480B2 (en) | Trusting an unverified code image in a computing device | |
US8254568B2 (en) | Secure booting a computing device | |
EP2169908A1 (en) | Protected network boot of operating system | |
US20090259855A1 (en) | Code Image Personalization For A Computing Device | |
KR100792287B1 (ko) | 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치 | |
US8019994B2 (en) | Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS | |
US20120278597A1 (en) | Compatible trust in a computing device | |
JP6720581B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JP2008226159A (ja) | 情報処理装置、ソフトウェア更新方法及び画像処理装置 | |
KR20160042897A (ko) | 참조 플랫폼 매니페스트 및 데이터 씰링에 따른 보안 os 부팅 기법 | |
JP2008234220A (ja) | 情報処理装置、ソフトウェア起動方法及び画像処理装置 | |
JP2011150524A (ja) | ソフトウェア実行システム | |
CN110674525A (zh) | 一种电子设备及其文件处理方法 | |
JP2008234079A (ja) | 情報処理装置、ソフトウェア正当性通知方法及び画像処理装置 |