JP5096022B2 - 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム - Google Patents

情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム Download PDF

Info

Publication number
JP5096022B2
JP5096022B2 JP2007067252A JP2007067252A JP5096022B2 JP 5096022 B2 JP5096022 B2 JP 5096022B2 JP 2007067252 A JP2007067252 A JP 2007067252A JP 2007067252 A JP2007067252 A JP 2007067252A JP 5096022 B2 JP5096022 B2 JP 5096022B2
Authority
JP
Japan
Prior art keywords
software
encryption key
validity
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
Application number
JP2007067252A
Other languages
English (en)
Other versions
JP2008226160A (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 JP2007067252A priority Critical patent/JP5096022B2/ja
Priority to US12/045,333 priority patent/US8756414B2/en
Publication of JP2008226160A publication Critical patent/JP2008226160A/ja
Application granted granted Critical
Publication of JP5096022B2 publication Critical patent/JP5096022B2/ja
Expired - Fee Related 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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]

Description

本発明は、情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラムに係り、特に動作させるソフトウェアの正当性を検証する情報処理装置、その情報処理装置で利用するソフトウェア検証方法及びソフトウェア検証プログラムに関する。
例えば情報処理装置の一例としての複合機(MFP)では、動作させるソフトウェアの正当性を検証することが、セキュリティを確保する上で必要である。例えば複合機は不正なソフトウェアの動作を許可してしまうと、操作者の意図しない動作や操作者が蓄積したデータに対する不正なアクセス等がなされる可能性もあった。
ソフトウェアの正当性を検証することはIEEE P2600で標準化を進めている複合機の要求仕様(情報セキュリティ機器の認証スキームISO15408/CommonCriteria/CCで言うところのProtectionProfile/PP)にも挙げられている。例えば特許文献1には動作させるアプリケーション(アプリ)の正当性を検証してアプリの動作可否を判断する内容が記載されている。
特表2003−507785号公報
従来の複合機には、ソフトウェアの正当性を検証する仕組みとしてデジタル署名を利用しているものがあった。しかしながら、従来の複合機には、デジタル署名の有効期限が切れてしまった場合やデジタル署名に利用した共通ルート鍵が漏洩してしまった場合について考慮しているものが無かった。
例えば複合機はデジタル署名の有効期限が切れてしまった場合やデジタル署名に利用した共通ルート鍵が漏洩してしまった場合など、デジタル署名が無効な状態になる度に利用できなくなるのでは不便である。
本発明は、上記の点に鑑みなされたもので、デジタル署名が無効な状態になってもソフトウェアの正当性を検証可能な情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラムを提供することを目的とする。
上記課題を解決するため、本発明は、プラットフォーム上で動作させるソフトウェアの正当性を検証する情報処理装置であって、該情報処理装置の起動時に前記プラットフォームの正当性を検証するプラットフォーム検証手段と、前記ソフトウェアの正当性を検証する為に利用される暗号鍵が格納され、前記プラットフォームの正当性に基づいてアクセス制御が行われる格納手段と、前記暗号鍵の失効を検知する失効検知手段と、前記暗号鍵を利用して前記ソフトウェアの正当性を検証するソフトウェア検証手段とを有し、前記ソフトウェア検証手段は、前記情報処理装置の起動時において、前記暗号鍵が失効しておらず、前記ソフトウェアに正当性があるときに、前記ソフトウェアの実行前に該ソフトウェアから一意に値を計算して前記格納手段に格納しておき、前記暗号鍵が失効しているときに、前記ソフトウェアから一意に値を計算し、該値と前記格納手段に格納された値とを用いて前記ソフトウェアの正当性を検証することを特徴とする。
本発明は、プラットフォーム上で動作させるソフトウェアの正当性を検証する情報処理装置のソフトウェア検証方法であって、該情報処理装置の起動時に前記プラットフォームの正当性を検証するプラットフォーム検証ステップと、前記プラットフォームの正当性に基づいて、前記ソフトウェアの正当性を検証する為に利用される暗号鍵が格納される格納手段のアクセス制御が行われるアクセス制御ステップと、前記暗号鍵の失効を検知する失効検知ステップと、前記暗号鍵を利用して前記ソフトウェアの正当性を検証するソフトウェア検証ステップとを有し、前記ソフトウェア検証ステップは、前記情報処理装置の起動時において、前記暗号鍵が失効しておらず、前記ソフトウェアに正当性があるときに、前記ソフトウェアの実行前に該ソフトウェアから一意に値を計算して前記格納手段に格納しておき、前記暗号鍵が失効しているときに、前記ソフトウェアから一意に値を計算し、該値と前記格納手段に格納された値とを用いて前記ソフトウェアの正当性を検証することを特徴とする。
本発明は、プラットフォーム上で動作させるソフトウェアの正当性を検証する情報処理装置を、該情報処理装置の起動時に前記プラットフォームの正当性を検証するプラットフォーム検証手段、前記ソフトウェアの正当性を検証する為に利用される暗号鍵が格納され、前記プラットフォームの正当性に基づいてアクセス制御が行われる格納手段、前記暗号鍵の失効を検知する失効検知手段、前記暗号鍵を利用して前記ソフトウェアの正当性を検証するソフトウェア検証手段として機能させ、前記ソフトウェア検証手段は、前記情報処理装置の起動時において、前記暗号鍵が失効しておらず、前記ソフトウェアに正当性があるときに、前記ソフトウェアの実行前に該ソフトウェアから一意に値を計算して前記格納手段に格納しておき、前記暗号鍵が失効しているときに、前記ソフトウェアから一意に値を計算し、該値と前記格納手段に格納された値とを用いて前記ソフトウェアの正当性を検証することを特徴とするソフトウェア検証プログラムであることを特徴とする。
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
本発明によれば、デジタル署名が無効な状態になってもソフトウェアの正当性を検証可能な情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラムを提供可能である。
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、情報処理装置の一例としての複合機は、ある機能を実現する目的で構成された機器組込み型システム(組込み)の一例である。まず、本発明の理解を容易とする為、TPM(Trusted Platform Module )を利用してソフトウェアの正当性を検証する処理について説明する。
図1はTPMを利用してソフトウェアの正当性を検証する処理を表した一例のイメージ図である。TPM11は例えばマザーボードに直付けされるチップで実現される。複合機1の起動時、BIOS12のCRTM及びPOST、ブート13のboot1〜3及びnetbsdの原文から固定長の疑似乱数を生成する演算手法によって計算されるハッシュ値がTPM11のPCR(Platform Configuration Register)へ格納される。TPM11のPCRには、複合機1の起動に伴い、ファームウェアに応じたハッシュ値が格納されることとなる。
なお、BIOS12のCRTMからブート13のboot1(MBR)までの検証仕様はTCG(Trusted Computing Group)により規定されている。図1における実線の矢印は起動フローを表す。破線の矢印は検証アクションを示す。図1における「measure」はTCG方式によるものである。「Report」はTPM11に対するハッシュ値の報告を表している。
ブート13のboot3以降に起動されるnetbsd(kernel),diag及びシステム14のプラットフォーム検証モジュール等のモジュールはSERES認証(RSA認証)の仕組みで認証される。TPM11はPCRに格納されたハッシュ値に基づくアクセスコントロールを実施する。
複合機1は、TPM11内にあるPCRへファームウェアを構成する各モジュールから一意に計算されるハッシュ値を格納し、PCRに登録されたハッシュ値を共通ルート鍵のアクセス条件とすることで、不正なシステムによるデータ窃取から共通ルート鍵を保護している。つまり、複合機1はファームウェアのブート13までTPM11の仕組みを利用して共通ルート鍵へのアクセス制御を行っている。具体的に、複合機1は共通ルート鍵を暗号化しておき、復号鍵をTPM11の仕組みで保護することで共通ルート鍵へのアクセス制御を行っている。
そして、複合機1はシステム14より上位のソフトウェアであるコピーやスキャナなどのアプリケーション(ソフトウェア)の正当性の検証を、アプリケーションのハッシュ値を暗号化したデジタル署名を付与し、TPM11内に格納された共通ルート鍵を利用してデジタル署名のチェックを行うことで実現している。
図2は、共通ルート鍵,ファームウェアの署名鍵及びデジタル署名の関係を表した一例のイメージ図である。図2に示すように、共通ルート鍵21は各署名用鍵22〜25のデジタル署名に利用される。また、各署名用鍵22〜25はシステム,オプション,共通オプションなどの各種モジュール26〜30のデジタル署名に利用される。
図3はモジュールのインストール時におけるデジタル署名をチェックする仕組みを表した一例のイメージ図である。複合機1A〜1Dは時間の経過を表している。また、複合機1Aは共通オプション28を、そのまま導入できないことを表している。
複合機1Bは共通ルート鍵21を利用して共通オプション署名用鍵23のデジタル署名のチェックを行った後、共通オプション署名用鍵23を導入することを表している。複合機1Cは、共通オプション署名用鍵23を利用して共通オプション28のデジタル署名のチェックを行ったあと、複合機1Dのように共通オプション28を導入することを表している。
本発明の複合機1においてソフトウェアの正当性を検証する為に利用するデジタル署名は共通ルート鍵21が危殆化することや、格納している場所がクラッキングされるなどで漏洩してしまうこと等を想定して、有効性をチェックする必要がある。
図4は共通ルート鍵証明書の有効性をチェックする手法のイメージ図である。図4の複合機1は内部時計41によって、TPM11の内部に格納している共通ルート鍵証明書の有効期限をチェックすることで、共通ルート鍵証明書の有効性をチェックする。図5は共通ルート鍵証明書の有効性をチェックする他の手法のイメージ図である。図5の複合機1は外部のサーバ2によって開示されている、失効した共通ルート鍵証明書のリスト(失効リスト)をチェックすることで、共通ルート鍵証明書の有効性をチェックする。図5には第三者信頼機関(TTP)のサーバ3が含まれている。
以下では、共通ルート鍵証明書やアプリケーションの署名用鍵証明書の有効期限が切れた場合にソフトウェアの正当性を検証する実施例1と、失効リストに共通ルート鍵証明書やアプリケーションの署名用鍵証明書が載った(共通ルート鍵証明書やアプリケーションの署名用鍵が失効した)場合にソフトウェアの正当性を検証する実施例2とに分けて説明する。
図6は共通ルート鍵証明書の有効期限が切れた場合にソフトウェアの正当性を検証する処理を表した一例の構成図である。実施例1は複合機1における共通ルート鍵の時限的な失効を脅威とするものである。実施例1の複合機1は共通ルート鍵証明書の有効期限で共通ルート鍵の時限的な失効を判断する。
図6の複合機1はブート13に共通ルート鍵証明書の有効期限で共通ルート鍵の時限的な失効を検知する失効検知モジュール61を有する。複合機1のシステム14はプラットフォームの正当性を検証するプラットフォーム検証モジュール62と、アプリケーション15の正当性を検証するアプリ検証モジュール63とを有する。
図6の複合機1は、共通ルート鍵が危殆化する前、正常起動しているアプリケーション15のハッシュ値を記録しておく。共通ルート鍵が危殆化した場合、複合機1は記録しておいた正常起動しているアプリケーション15のハッシュ値を頼りにアプリケーション15の正当性を検証する。
図7は共通ルート鍵証明書の有効期限が切れていない場合の複合機の動作を表した一例のシーケンス図である。ステップS1に進み、boot3 64は失効検知モジュール61,netbsd(kernel)などのハッシュ値を計算する。
ステップS2に進み、boot3 64は計算したハッシュ値を、TPM11のPCRへ格納する。ステップS3に進み、boot3 64は失効検知モジュール61を起動させる。ステップS4に進み、失効検知モジュール61はプラットフォーム検証モジュール62に共通ルート鍵証明書を要求する。
ステップS5に進み、プラットフォーム検証モジュール62はTPM11に、PCRへ格納されているPCR値を要求する。ステップS6に進み、TPM11はTPM署名付きPCR値をプラットフォーム検証モジュール62に送信する。
ステップS7に進み、プラットフォーム検証モジュール62はリポジトリ16に正規PCR値を要求する。ステップS8に進み、プラットフォーム検証モジュール62はリポジトリ16から正規PCR値を受信する。
ステップS9に進み、プラットフォーム検証モジュール62は、TPM署名付きPCR値および正規PCR値が同じであるかを確認する。TPM署名付きPCR値および正規PCR値が同じであるとき、プラットフォーム検証モジュール62は、ブート13に正当性があると判断する。ここでは、TPM署名付きPCR値および正規PCR値が同じであるとする。
ステップS10に進み、プラットフォーム検証モジュール62は共通ルート鍵証明書をTPM11に要求する。ステップS11に進み、プラットフォーム検証モジュール62はTPM11から共通ルート鍵証明書を受信する。
ステップS12に進み、プラットフォーム検証モジュール62は共通ルート鍵証明書を失効検知モジュール61に送信する。ステップS13に進み、失効検知モジュール61は共通ルート鍵証明書の有効期限を確認する。ここでは、共通ルート鍵証明書の有効期限が切れていないものとする。
ステップS14に進み、失効検知モジュール61は、各アプリケーション15の署名用鍵証明書の有効期限を確認する。ここでは、各アプリケーション15の署名用鍵証明書の有効期限が切れていないものとする。ステップS15に進み、失効検知モジュール61はアプリ検証モジュール63に各アプリケーション15の正当性の検証を要求する。
ステップS16に進み、アプリ検証モジュール63は各アプリケーション15のデジタル署名の検証を行う。ここではデジタル署名が正しいものとする。アプリ検証モジュール63はステップS17に進み、各アプリケーション15のハッシュ値を計算する。ステップS18に進み、アプリ検証モジュール63は各アプリケーション15のハッシュ値の署名要求をTPM11へ行う。
なお、署名要求は各アプリケーション15のハッシュ値毎に行ってもよいし、全てのアプリケーション15のハッシュ値をリストにし、そのリストに対して行うようにしてもよい。それらの組み合わせとして、署名要求は各アプリケーション15のハッシュ値毎に行うと共に、全てのアプリケーション15のハッシュ値をリストにし、そのリストに対して行うようにしてもよい。
署名要求は各アプリケーション15のハッシュ値毎に行うと、アプリケーション15毎の有効期限が切れた場合に対応しやすい。また、署名要求は全てのアプリケーション15のハッシュ値をリストにし、そのリストに対して行うと、後でデジタル署名を検証する場合に処理が少なくて済む。
ステップS19に進み、TPM11はTPM11内に格納されている共通ルート鍵(秘密鍵)を利用して、各アプリケーション15のハッシュ値又はリストにデジタル署名を行う。ステップS20に進み、TPM11はTPM署名付きハッシュ値又はリストをアプリ検証モジュール63に送信する。
ステップS21に進み、アプリ検証モジュール63はTPM署名付きハッシュ値又はリストをリポジトリ16に格納する。ステップS22に進み、アプリ検証モジュール63はリポジトリ16からTPM署名付きハッシュ値又はリストの格納結果を受信する。ここではTPM署名付きハッシュ値又はリストを格納できたものとする。
ステップS23に進み、アプリ検証モジュール63は各アプリケーション15の正当性の検証結果を失効検知モジュール61に通知する。失効検知モジュール61はステップS24に進み、各アプリケーション15に正当性があるという結果をboot3 64に通知する。このあと、boot3 64は各アプリケーション15を起動する。
図7のシーケンス図では、共通ルート鍵証明書、各アプリケーション15の署名用鍵証明書の有効期限が共に切れておらず、各アプリケーション15のデジタル署名が正しい場合に、アプリケーション15のハッシュ値又はリストにデジタル署名を行ったTPM署名付きハッシュ値又はリストをリポジトリ16に格納している。
この結果、図7のシーケンス図に示すように処理を行う複合機1は正常な状態のソフトウェアのハッシュ値又はリストを得ることができる。複合機1は共通ルート鍵証明書の有効期限が切れた場合、図7のシーケンス図に示す処理により得たハッシュ値又はリストを利用して、図8に示すようにアプリケーション15の正当性を検証する。
図8は共通ルート鍵証明書の有効期限が切れている場合の複合機の動作を表した一例のシーケンス図である。ステップS31において失効検知モジュール61がルート鍵証明書を受信するまでの処理は、図7のステップS1〜S12と同様であるため、図示及び説明を省略する。
ステップS32に進み、失効検知モジュール61は共通ルート鍵証明書の有効期限を確認する。ここでは、共通ルート鍵証明書の有効期限が切れているものとする。ステップS33に進み、失効検知モジュール61は共通ルート鍵証明書の有効期限が切れているという結果をboot3 64に通知する。ステップS34に進み、boot3 64は共通ルート鍵が危殆化しているというメッセージを管理者等に通知する。
なお、複合機1はメッセージを管理者等に通知して各アプリケーション15を起動するようにしてもよい。複合機1は各アプリケーション15を起動するか、共通ルート鍵を含めたファームウェアアップデートを行うかを管理者等に選択させるようにしてもよい。
以降、全てのアプリケーション15の起動はハッシュ検証モードで行う。ハッシュ検証モードであるか否かはメモリ上で記憶しておくため、再起動時、ステップS34までの処理が最初から行われる。
ステップS35に進み、boot3 64は、失効検知モジュール61をハッシュ検証モードで起動させる。ステップS36に進み、失効検知モジュール61は、アプリ検証モジュール63にハッシュ検証モードによる各アプリケーション15の正当性の検証を要求する。ステップS37に進み、アプリ検証モジュール63は、各アプリケーション15のハッシュ値を計算する。
ステップS38に進み、アプリ検証モジュール63はリポジトリ16に正規のハッシュ値又はリストを要求する。ステップS39に進み、アプリ検証モジュール63はリポジトリ16からTPM署名付きハッシュ値又はリストを受信する。
ステップS40に進み、アプリ検証モジュール63はTPM11に共通ルート鍵(公開鍵)を要求する。ステップS41に進み、アプリ検証モジュール63はTPM11から公開鍵を受信する。ステップS42に進み、アプリ検証モジュール63は公開鍵を利用してTPM署名の検証を行う。ここではTPM署名が正しいものとする。
ステップS43に進み、アプリ検証モジュール63は公開鍵を利用してTPM署名付きハッシュ値又はリストのハッシュ値と、ステップS37で計算した各アプリケーション15のハッシュ値とが同じであるかをチェックする。ここではTPM署名付きハッシュ値又はリストのハッシュ値とステップS37で計算した各アプリケーション15のハッシュ値とが同じであるとする。
ステップS44に進み、アプリ検証モジュール63は各アプリケーション15の正当性の検証結果を失効検知モジュール61に通知する。失効検知モジュール61はステップS45に進み、各アプリケーション15に正当性があるという結果をboot3 64に通知する。このあと、boot3 64は各アプリケーション15を起動する。
なお、新たなハードウェアやファームウェアを追加する場合には、同時に共通ルート鍵の更新が必要となる。新たなハードウェアやファームウェアを追加しない場合には、現状の構成で利用できる。
この結果、図8のシーケンス図に示すように処理を行う複合機1は、共通ルート鍵証明書の有効期限が切れている場合に、各アプリケーション15のデジタル署名でなく、各アプリケーション15のハッシュ値で正当性を検証できる。また、複合機1は共通ルート鍵が危殆化していることを管理者等に通知できる。
複合機1は各アプリケーション15の署名用鍵証明書の有効期限が切れた場合、図7のシーケンス図に示す処理により得たハッシュ値又はリストを利用して、図9に示すようにアプリケーション15の正当性を検証する。
図9はアプリケーションの署名用鍵証明書の有効期限が切れている場合の複合機の動作を表した一例のシーケンス図である。失効検知モジュール61がルート鍵証明書の有効期限を確認するまでの処理は、図7のステップS1〜S13と同様であるため、図示及び説明を省略する。
ステップS51に進み、失効検知モジュール61はアプリケーション15の署名用鍵証明書の有効期限を確認する。ここでは、アプリケーション15の署名用鍵証明書の有効期限が切れているものとする。
ステップS52に進み、失効検知モジュール61はアプリケーション15の署名用鍵証明書の有効期限が切れているという結果をboot3 64に通知する。ステップS34に進み、boot3 64はアプリケーション15の署名用鍵証明書が失効しているというメッセージを管理者等に通知する。
なお、複合機1はメッセージを管理者等に通知して各アプリケーション15を起動するようにしてもよい。複合機1は各アプリケーション15を起動するか、アップデートを行うかを管理者等に選択させるようにしてもよい。ステップS51における署名用鍵証明書の有効期限の確認は、起動されるアプリケーション15ごとに行う。
一旦、署名用鍵証明書の有効期限が切れていると確認されたアプリケーション15の起動は、ハッシュ検証モードで行われる。ハッシュ検証モードであるか否かはメモリ上で記憶しておくため、再起動時、ステップS53までの処理が最初から行われる。以降の処理は図8のステップS35以降と同様であるため、説明を省略する。
この結果、図9のシーケンス図に示すように処理を行う複合機1は、アプリケーション15の署名用鍵証明書の有効期限が切れている場合に、各アプリケーション15のデジタル署名でなく、各アプリケーション15のハッシュ値で正当性を検証できる。また、複合機1は、アプリケーション15の署名用鍵証明書が失効していることを管理者等に通知できる。
図10は失効リストに共通ルート鍵証明書が載った場合にソフトウェアの正当性を検証する処理を表した一例の構成図である。即ち、実施例2における複合機1はクラッキングなどにより共通ルート鍵(秘密鍵)が漏洩してしまった場合にもソフトウェアの正当性を検証できる。
実施例2は複合機1における共通ルート鍵のクラッキングなどによる失効を脅威とするものである。実施例2の複合機1は外部のサーバ2によって開示されている失効リストで共通ルート鍵の失効を判断する。外部のサーバ2は例えば複合機1のメーカ等によって提供される。
図10の複合機1はブート13に失効リストで共通ルート鍵の失効を検知する失効検知モジュール61を有する。複合機1のシステム14はプラットフォームの正当性を検証するプラットフォーム検証モジュール62と、アプリケーション15の正当性を検証するアプリ検証モジュール63とを有する。
図10の複合機1は共通ルート鍵証明書が失効リストに載る前に、正常起動しているアプリケーション15のハッシュ値を記録しておく。複合機1は共通ルート鍵証明書が失効リストに載った場合、記録しておいた正常起動しているアプリケーション15のハッシュ値を頼りにアプリケーション15の正当性を検証する。
実施例2の複合機1は外部のサーバ2へのアクセスと、TTPのサーバ3での署名検証とが実施例1の複合機1と異なっている。実施例2の複合機1は外部のサーバ2やTTPのサーバ3の場所(アドレス)等の情報をTPM11に格納しておく。また、複合機1は正常起動しているときに、外部のサーバ2やTTPのサーバ3の情報をアップデートするような仕組みを設けても良い。更に、複合機1は正常起動しているとき、外部のサーバ2やTTPのサーバ3の情報に対してTPM署名を付与しておくことで、情報の改竄などを防ぎつつ鮮度を保持することができる。
図11は、失効リストに共通ルート鍵証明書が載っていない場合の複合機の動作を表した一例のシーケンス図である。ステップS61に進み、boot3 64は、失効検知モジュール61,netbsd(kernel)などのハッシュ値を計算する。
ステップS62に進み、boot3 64は計算したハッシュ値を、TPM11のPCRへ格納する。ステップS63に進み、boot3 64は失効検知モジュール61を起動させる。ステップS64に進み、失効検知モジュール61は外部のサーバ2へ失効リストを要求する。ステップS65に進み、失効検知モジュール61は外部のサーバ2から失効リストを受信する。
ステップS66に進み、失効検知モジュール61は失効リストのデジタル署名の検証をTTPのサーバ3に要求する。ステップS67に進み、失効検知モジュール61はTTPのサーバ3から検証結果を受信する。ここでは、失効リストのデジタル署名が正しいものとする。
ステップS68に進み、失効検知モジュール61は失効リストに共通ルート鍵証明書が載っていないかを検証する。ここでは共通ルート鍵証明書が失効リストに載っていないものとする。
ステップS69に進み、失効検知モジュール61は失効リストに各アプリケーション15の署名用鍵証明書が載っていないかを検証する。ここでは共通ルート鍵証明書が失効リストに載っていないものとする。この後の処理は、図7のステップS15以降と同様であるため、説明を省略する。
図11のシーケンス図では、共通ルート鍵証明書、各アプリケーション15の署名用鍵証明書が共に失効していない(失効リストに載っていない)場合に、アプリケーション15のハッシュ値又はリストにデジタル署名を行ったTPM署名付きハッシュ値又はリストをリポジトリ16に格納している。
この結果、図11のシーケンス図に示すように処理を行う複合機1は正常な状態のソフトウェアのハッシュ値又はリストを得ることができる。複合機1は共通ルート鍵証明書が失効リストに載った場合、図11のシーケンス図に示す処理により得たハッシュ値又はリストを利用して、図12に示すようにアプリケーション15の正当性を検証する。
図12は共通ルート鍵証明書が失効リストに載った場合の複合機の動作を表した一例のシーケンス図である。ステップS71以前の処理は、図11のステップS61〜S67と同様であるため、図示及び説明を省略する。
ステップS71に進み、失効検知モジュール61は失効リストに共通ルート鍵証明書が載っていないかを検証する。ここでは共通ルート鍵証明書が失効リストに載っていたものとする。ステップS72に進み、失効検知モジュール61は共通ルート鍵証明書が失効リストに載っているという結果をboot3 64に通知する。そして、ステップS73に進み、boot3 64は共通ルート鍵が危殆化しているというメッセージを管理者等に通知する。
なお、複合機1はメッセージを管理者等に通知して各アプリケーション15を起動するようにしてもよい。複合機1は各アプリケーション15を起動するか、共通ルート鍵を含めたファームウェアアップデートを行うかを管理者等に選択させるようにしてもよい。
以降、全てのアプリケーション15の起動はハッシュ検証モードで行う。ハッシュ検証モードであるか否かはメモリ上で記憶しておくため、再起動時、ステップS73までの処理が最初から行われる。以降の処理は図8のステップS35以降と同様であるため、説明を省略する。
この結果、図11のシーケンス図に示すように処理を行う複合機1は、共通ルート鍵証明書が失効している場合に、各アプリケーション15のデジタル署名ではなく、各アプリケーション15のハッシュ値で正当性を検証できる。また、複合機1は共通ルート鍵が失効していることを管理者等に通知できる。
複合機1は各アプリケーション15の署名用鍵証明書の有効期限が切れた場合、図11のシーケンス図に示す処理により得たハッシュ値又はリストを利用して、図13に示すようにアプリケーション15の正当性を検証する。
図13はアプリケーションの署名用鍵証明書が失効リストに載った場合の複合機の動作を表した一例のシーケンス図である。ステップS81以前の処理は、図11のステップS61〜S67と同様であるため、図示及び説明を省略する。
ステップS81に進み、失効検知モジュール61はアプリケーション15の署名用鍵証明書が載っていないかを検証する。ここではアプリケーション15の署名用鍵証明書が失効リストに載っていたものとする。ステップS82に進み、失効検知モジュール61はアプリケーション15の署名用鍵証明書が失効リストに載っているという結果を、boot3 64に通知する。ステップS83に進み、boot3 64はアプリケーション15の署名用鍵証明書が失効しているというメッセージを管理者等に通知する。
なお、複合機1はメッセージを管理者等に通知して各アプリケーション15を起動するようにしてもよい。複合機1は各アプリケーション15を起動するか、アップデートを行うかを管理者等に選択させるようにしてもよい。ステップS81における署名用鍵証明書の失効の確認は、起動されるアプリケーション15ごとに行う。
一旦、署名用鍵証明書が失効していると確認されたアプリケーション15の起動は、ハッシュ検証モードで行われる。ハッシュ検証モードであるか否かはメモリ上で記憶しておくため、再起動時、ステップS83までの処理が最初から行われる。以降の処理は図8のステップS35以降と同様であるため、説明を省略する。
この結果、図13のシーケンス図に示すように処理を行う複合機1は、アプリケーション15の署名用鍵証明書が失効している場合に、各アプリケーション15のデジタル署名でなく、各アプリケーション15のハッシュ値で正当性を検証できる。また、複合機1はアプリケーション15の署名用鍵証明書が失効していることを管理者等に通知できる。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
TPMを利用してソフトウェアの正当性を検証する処理を表した一例のイメージ図である。 共通ルート鍵,ファームウェアの署名鍵及びデジタル署名の関係を表した一例のイメージ図である。 モジュールのインストール時におけるデジタル署名をチェックする仕組みを表した一例のイメージ図である。 共通ルート鍵証明書の有効性をチェックする手法のイメージ図である。 共通ルート鍵証明書の有効性をチェックする他の手法のイメージ図である。 共通ルート鍵証明書の有効期限が切れた場合にソフトウェアの正当性を検証する処理を表した一例の構成図である。 共通ルート鍵証明書の有効期限が切れていない場合の複合機の動作を表した一例のシーケンス図である。 共通ルート鍵証明書の有効期限が切れている場合の複合機の動作を表した一例のシーケンス図である。 アプリケーションの署名用鍵証明書の有効期限が切れている場合の複合機の動作を表した一例のシーケンス図である。 失効リストに共通ルート鍵証明書が載った場合にソフトウェアの正当性を検証する処理を表した一例の構成図である。 失効リストに共通ルート鍵証明書が載っていない場合の複合機の動作を表した一例のシーケンス図である。 共通ルート鍵証明書が失効リストに載った場合の複合機の動作を表した一例のシーケンス図である。 アプリケーションの署名用鍵証明書が失効リストに載った場合の複合機の動作を表した一例のシーケンス図である。
符号の説明
1 複合機
2 外部のサーバ
3 TTPのサーバ
11 TPM
12 BIOS
13 ブート
14 システム
15 アプリケーション
61 失効検知モジュール
62 プラットフォーム検証モジュール
63 アプリ検証モジュール

Claims (16)

  1. プラットフォーム上で動作させるソフトウェアの正当性を検証する情報処理装置であって、
    該情報処理装置の起動時に前記プラットフォームの正当性を検証するプラットフォーム検証手段と、
    前記ソフトウェアの正当性を検証する為に利用される暗号鍵が格納され、前記プラットフォームの正当性に基づいてアクセス制御が行われる格納手段と、
    前記暗号鍵の失効を検知する失効検知手段と、
    前記暗号鍵を利用して前記ソフトウェアの正当性を検証するソフトウェア検証手段と
    を有し、
    前記ソフトウェア検証手段は、前記情報処理装置の起動時において、前記暗号鍵が失効しておらず、前記ソフトウェアに正当性があるときに、前記ソフトウェアの実行前に該ソフトウェアから一意に値を計算して前記格納手段に格納しておき、前記暗号鍵が失効しているときに、前記ソフトウェアから一意に値を計算し、該値と前記格納手段に格納された値とを用いて前記ソフトウェアの正当性を検証することを特徴とする情報処理装置。
  2. 前記失効検知手段は、前記暗号鍵の証明書の有効期限をチェックすることで前記暗号鍵の失効を検知することを特徴とする請求項1記載の情報処理装置。
  3. 前記失効検知手段は、外部のサーバからネットワーク経由で提供された、失効した前記暗号鍵の証明書のリストをチェックすることで前記暗号鍵の失効を検知し、前記格納手段は、前記外部のサーバの情報を前記暗号鍵で暗号化して格納していることを特徴とする請求項1記載の情報処理装置。
  4. 前記ソフトウェア検証手段は、前記情報処理装置の起動時において、前記暗号鍵が失効しておらず、前記ソフトウェアに正当性があるときに、前記ソフトウェアの実行前に該ソフトウェアから一意に計算されるハッシュ値のリストを、前記格納手段に格納しておき、前記暗号鍵が失効しているときに、前記ソフトウェアのハッシュ値を計算し、該ハッシュ値のリストと前記格納手段に格納されたリストとを用いて前記ソフトウェアの正当性を検証することを特徴とする請求項1記載の情報処理装置。
  5. 前記暗号鍵が失効しているか又は前記ソフトウェアに正当性がないときに、その旨を表示する表示手段を更に有することを特徴とする請求項1記載の情報処理装置。
  6. 前記格納手段は、TPM(Trusted Platform Module)によって実現されることを特徴とする請求項1乃至5何れか一項記載の情報処理装置。
  7. 前記情報処理装置は、複合機であることを特徴とする請求項1乃至6何れか一項記載の情報処理装置。
  8. プラットフォーム上で動作させるソフトウェアの正当性を検証する情報処理装置のソフトウェア検証方法であって、
    該情報処理装置の起動時に前記プラットフォームの正当性を検証するプラットフォーム検証ステップと、
    前記プラットフォームの正当性に基づいて、前記ソフトウェアの正当性を検証する為に利用される暗号鍵が格納される格納手段のアクセス制御が行われるアクセス制御ステップと、
    前記暗号鍵の失効を検知する失効検知ステップと、
    前記暗号鍵を利用して前記ソフトウェアの正当性を検証するソフトウェア検証ステップと
    を有し、
    前記ソフトウェア検証ステップは、前記情報処理装置の起動時において、前記暗号鍵が失効しておらず、前記ソフトウェアに正当性があるときに、前記ソフトウェアの実行前に該ソフトウェアから一意に値を計算して前記格納手段に格納しておき、前記暗号鍵が失効しているときに、前記ソフトウェアから一意に値を計算し、該値と前記格納手段に格納された値とを用いて前記ソフトウェアの正当性を検証することを特徴とするソフトウェア検証方法。
  9. 前記失効検知ステップは、前記暗号鍵の証明書の有効期限をチェックすることで前記暗号鍵の失効を検知することを特徴とする請求項8記載のソフトウェア検証方法。
  10. 前記失効検知ステップは、外部のサーバからネットワーク経由で提供された、失効した前記暗号鍵の証明書のリストをチェックすることで前記暗号鍵の失効を検知し、前記格納手段は、前記外部のサーバの情報を前記暗号鍵で暗号化して格納していることを特徴とする請求項8記載のソフトウェア検証方法。
  11. 前記ソフトウェア検証ステップは、前記情報処理装置の起動時において、前記暗号鍵が失効しておらず、前記ソフトウェアに正当性があるときに、前記ソフトウェアの実行前に該ソフトウェアから一意に計算されるハッシュ値のリストを、前記格納手段に格納しておき、前記暗号鍵が失効しているときに、前記ソフトウェアのハッシュ値を計算し、該ハッシュ値のリストと前記格納手段に格納されたリストとを用いて前記ソフトウェアの正当性を検証することを特徴とする請求項8記載のソフトウェア検証方法。
  12. 前記暗号鍵が失効しているか又は前記ソフトウェアに正当性がないときに、その旨を表示手段に表示する表示ステップを更に有することを特徴とする請求項8記載のソフトウェア検証方法。
  13. 前記格納手段は、TPM(Trusted Platform Module)によって実現されることを特徴とする請求項8乃至12何れか一項記載のソフトウェア検証方法。
  14. 前記情報処理装置は、複合機であることを特徴とする請求項8乃至13何れか一項記載の情報処理装置。
  15. プラットフォーム上で動作させるソフトウェアの正当性を検証する情報処理装置を、
    該情報処理装置の起動時に前記プラットフォームの正当性を検証するプラットフォーム検証手段、
    前記ソフトウェアの正当性を検証する為に利用される暗号鍵が格納され、前記プラットフォームの正当性に基づいてアクセス制御が行われる格納手段、
    前記暗号鍵の失効を検知する失効検知手段、
    前記暗号鍵を利用して前記ソフトウェアの正当性を検証するソフトウェア検証手段
    として機能させ、
    前記ソフトウェア検証手段は、前記情報処理装置の起動時において、前記暗号鍵が失効しておらず、前記ソフトウェアに正当性があるときに、前記ソフトウェアの実行前に該ソフトウェアから一意に値を計算して前記格納手段に格納しておき、前記暗号鍵が失効しているときに、前記ソフトウェアから一意に値を計算し、該値と前記格納手段に格納された値とを用いて前記ソフトウェアの正当性を検証することを特徴とするソフトウェア検証プログラム。
  16. 前記情報処理装置は、複合機であることを特徴とする請求項15記載のソフトウェア検証プログラム。
JP2007067252A 2007-03-15 2007-03-15 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム Expired - Fee Related JP5096022B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007067252A JP5096022B2 (ja) 2007-03-15 2007-03-15 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
US12/045,333 US8756414B2 (en) 2007-03-15 2008-03-10 Information processing apparatus, software verification method, and software verification program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007067252A JP5096022B2 (ja) 2007-03-15 2007-03-15 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム

Publications (2)

Publication Number Publication Date
JP2008226160A JP2008226160A (ja) 2008-09-25
JP5096022B2 true JP5096022B2 (ja) 2012-12-12

Family

ID=39764045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007067252A Expired - Fee Related JP5096022B2 (ja) 2007-03-15 2007-03-15 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム

Country Status (2)

Country Link
US (1) US8756414B2 (ja)
JP (1) JP5096022B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826006B2 (en) * 2008-10-31 2014-09-02 Motorola Solutions, Inc. Method and device for enabling a trust relationship using an unexpired public key infrastructure (PKI) certificate
US8423761B2 (en) * 2008-10-31 2013-04-16 Motorola Solutions, Inc. Method and device for enabling a trust relationship using an expired public key infrastructure (PKI) certificate
US8832454B2 (en) 2008-12-30 2014-09-09 Intel Corporation Apparatus and method for runtime integrity verification
JP4817153B2 (ja) * 2009-11-06 2011-11-16 Necインフロンティア株式会社 情報端末に組み込まれたソフトウェアの更新時の認証方法、そのシステム及びそのプログラム
JP5493946B2 (ja) 2010-02-08 2014-05-14 株式会社リコー 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体
US20120011079A1 (en) * 2010-07-12 2012-01-12 International Business Machines Corporation Deriving entity-centric solution models from industry reference process and data models
CA2830846C (en) * 2011-03-21 2018-08-28 Irdeto B.V. System and method for securely binding and node-locking program execution to a trusted signature authority
US8924737B2 (en) * 2011-08-25 2014-12-30 Microsoft Corporation Digital signing authority dependent platform secret
US9798887B2 (en) * 2015-08-26 2017-10-24 Qualcomm Incorporated Computing device to securely activate or revoke a key
JP2017107377A (ja) 2015-12-09 2017-06-15 株式会社リコー 機器管理装置、機器管理システム、検証方法及びプログラム
JP2017187963A (ja) 2016-04-07 2017-10-12 ルネサスエレクトロニクス株式会社 電子機器およびシステム
JP7009270B2 (ja) * 2018-03-14 2022-01-25 キヤノン株式会社 情報処理装置及びプログラムの検証方法
JP7378980B2 (ja) * 2019-06-27 2023-11-14 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US7063253B1 (en) * 2000-09-27 2006-06-20 Diebold SCLF-Service Systems division of Diebold, Incorporated Cash dispensing automated banking machine software authorization system and method
JP2002162899A (ja) * 2000-11-27 2002-06-07 Hitachi Ltd プログラム認証機能付き電子機器およびプログラム認証処理方法
JP2003016397A (ja) * 2001-04-23 2003-01-17 Sony Corp データ処理システム、メモリデバイス、データ処理装置、およびデータ処理方法、並びにプログラム
US7107460B2 (en) * 2002-02-15 2006-09-12 International Business Machines Corporation Method and system for securing enablement access to a data security device
JP4200067B2 (ja) * 2002-08-30 2008-12-24 株式会社リコー 画像処理装置、画像処理方法、及び画像処理プログラム
US8100323B1 (en) * 2002-12-26 2012-01-24 Diebold Self-Service Systems Division Of Diebold, Incorporated Apparatus and method for verifying components of an ATM
JP2005148934A (ja) 2003-11-12 2005-06-09 Ricoh Co Ltd 情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体
US7263608B2 (en) * 2003-12-12 2007-08-28 Lenovo (Singapore) Pte. Ltd. System and method for providing endorsement certificate
JP2006050355A (ja) * 2004-08-05 2006-02-16 Matsushita Electric Ind Co Ltd データ再生装置およびデータ再生方法およびデータ再生プログラム
JP2006139747A (ja) * 2004-08-30 2006-06-01 Kddi Corp 通信システムおよび安全性保証装置
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
JP2006253896A (ja) * 2005-03-09 2006-09-21 Fuji Xerox Co Ltd 文書出力装置及び文書検証装置
JP2006345353A (ja) * 2005-06-10 2006-12-21 Murata Mach Ltd 電子メール通信装置
JP4754299B2 (ja) * 2005-08-18 2011-08-24 株式会社エヌ・ティ・ティ・データ 情報処理装置

Also Published As

Publication number Publication date
JP2008226160A (ja) 2008-09-25
US20080229426A1 (en) 2008-09-18
US8756414B2 (en) 2014-06-17

Similar Documents

Publication Publication Date Title
JP5096022B2 (ja) 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
JP5116325B2 (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置
EP3458999B1 (en) Self-contained cryptographic boot policy validation
US9281949B2 (en) Device using secure processing zone to establish trust for digital rights management
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
EP1618451B1 (en) Associating software with hardware using cryptography
US6993648B2 (en) Proving BIOS trust in a TCPA compliant system
JP4501349B2 (ja) システムモジュール実行装置
US20050021968A1 (en) Method for performing a trusted firmware/bios update
WO2016074506A1 (zh) 应用程序完整性验证方法及网络设备
JP4890309B2 (ja) 情報処理装置及び情報保護方法
KR102062073B1 (ko) 정보처리장치 및 정보처리장치의 제어방법
JP5861597B2 (ja) 認証システムおよび認証方法
JP6387908B2 (ja) 認証システム
JP2017157018A (ja) 情報処理装置、情報処理方法、情報処理プログラム、及びトラステッド・プラットフォーム・モジュール
JP2018117185A (ja) 情報処理装置、情報処理方法
JP2008021021A (ja) ソフトウエアのライセンス認証方法
JP5582231B2 (ja) 情報処理装置、真正性確認方法、及び記録媒体
JP2005182774A5 (ja)
JP2008234079A (ja) 情報処理装置、ソフトウェア正当性通知方法及び画像処理装置
JP5049179B2 (ja) 情報処理端末装置及びアプリケーションプログラムの起動認証方法
JP5278520B2 (ja) 情報処理装置、情報保護方法
JP5574007B2 (ja) 情報処理装置及び情報保護方法
JP5310897B2 (ja) 情報処理装置、ソフトウェア更新方法及び記録媒体
JP5234217B2 (ja) 情報処理装置、ソフトウェア更新方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091021

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120706

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120920

R150 Certificate of patent or registration of utility model

Ref document number: 5096022

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150928

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees