IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特開2024-106688情報処理装置、情報処理方法及びプログラム
<>
  • 特開-情報処理装置、情報処理方法及びプログラム 図1
  • 特開-情報処理装置、情報処理方法及びプログラム 図2
  • 特開-情報処理装置、情報処理方法及びプログラム 図3
  • 特開-情報処理装置、情報処理方法及びプログラム 図4
  • 特開-情報処理装置、情報処理方法及びプログラム 図5
  • 特開-情報処理装置、情報処理方法及びプログラム 図6
  • 特開-情報処理装置、情報処理方法及びプログラム 図7
  • 特開-情報処理装置、情報処理方法及びプログラム 図8
  • 特開-情報処理装置、情報処理方法及びプログラム 図9
  • 特開-情報処理装置、情報処理方法及びプログラム 図10
  • 特開-情報処理装置、情報処理方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024106688
(43)【公開日】2024-08-08
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240801BHJP
   H04L 9/08 20060101ALI20240801BHJP
   G06F 21/64 20130101ALI20240801BHJP
   H04L 9/10 20060101ALI20240801BHJP
【FI】
H04L9/32 200A
H04L9/08 A
H04L9/08 E
G06F21/64
H04L9/10 A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023011083
(22)【出願日】2023-01-27
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【弁理士】
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】櫻田 大樹
(57)【要約】
【課題】ストレージのデータの復号に利用する暗号鍵データの改ざんを検知できる情報処理装置を提供すること。
【解決手段】第1のストレージに保存されたデータの復号に利用する第1の暗号鍵データ、及び第1の暗号鍵データの第1のハッシュ値を含む暗号化された暗号鍵ファイルを第2のストレージに書き込む暗号鍵ファイル書込手段と、暗号鍵ファイルの復号に利用する第2の暗号鍵データで第2のストレージの暗号鍵ファイルを復号する復号手段と、復号した暗号鍵ファイルに含まれる第1の暗号鍵データから第2のハッシュ値を算出し、第1のハッシュ値と第2のハッシュ値との一致の検証を行う正当性検証手段と、一致の検証に失敗した場合に、検証の結果を通知する通知手段と、を有する情報処理装置により上記課題を解決する。
【選択図】図2
【特許請求の範囲】
【請求項1】
第1のストレージに保存されたデータの復号に利用する第1の暗号鍵データ、及び前記第1の暗号鍵データの第1のハッシュ値を含む暗号化された暗号鍵ファイルを第2のストレージに書き込む暗号鍵ファイル書込手段と、
前記暗号鍵ファイルの復号に利用する第2の暗号鍵データで前記第2のストレージの前記暗号鍵ファイルを復号する復号手段と、
復号した前記暗号鍵ファイルに含まれる前記第1の暗号鍵データから第2のハッシュ値を算出し、前記第1のハッシュ値と前記第2のハッシュ値との一致の検証を行う正当性検証手段と、
前記一致の検証に失敗した場合に、前記検証の結果を通知する通知手段と、
を有する情報処理装置。
【請求項2】
前記第2のストレージは非暗号ストレージであり、前記第2の暗号鍵データはシステムの起動時にファームウェアの完全性及び真正性の検証に成功したセキュリティチップから取得されること
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記暗号鍵ファイル書込手段は、前記第2のストレージに、暗号化された前記暗号鍵ファイルを複製して、複数個、書き込み、前記第2のストレージに書き込まれた複数個の暗号化された前記暗号鍵ファイルのうち、前記正当性検証手段による前記一致の検証に失敗した一の前記暗号鍵ファイルを、前記正当性検証手段による前記一致の検証に成功した他の前記暗号鍵ファイルで復旧すること
を特徴とする請求項1又は2記載の情報処理装置。
【請求項4】
前記通知手段は、前記暗号鍵ファイル書込手段が前記正当性検証手段による前記一致の検証に失敗した一の前記暗号鍵ファイルを、前記正当性検証手段による前記一致の検証に成功した他の前記暗号鍵ファイルで復旧したあと、前記検証の結果を通知すること
を特徴とする請求項3記載の情報処理装置。
【請求項5】
情報処理装置が、
第1のストレージに保存されたデータの復号に利用する第1の暗号鍵データ、及び前記第1の暗号鍵データの第1のハッシュ値を含む暗号化された暗号鍵ファイルを第2のストレージに書き込む暗号鍵ファイル書込ステップと、
前記暗号鍵ファイルの復号に利用する第2の暗号鍵データで前記第2のストレージの前記暗号鍵ファイルを復号する復号ステップと、
復号した前記暗号鍵ファイルに含まれる前記第1の暗号鍵データから第2のハッシュ値を算出し、前記第1のハッシュ値と前記第2のハッシュ値との一致の検証を行う正当性検証ステップと、
前記一致の検証に失敗した場合に、前記検証の結果を通知する通知ステップと、
を実行する情報処理方法。
【請求項6】
情報処理装置に、
第1のストレージに保存されたデータの復号に利用する第1の暗号鍵データ、及び前記第1の暗号鍵データの第1のハッシュ値を含む暗号化された暗号鍵ファイルを第2のストレージに書き込む暗号鍵ファイル書込手順、
前記暗号鍵ファイルの復号に利用する第2の暗号鍵データで前記第2のストレージの前記暗号鍵ファイルを復号する復号手順、
復号した前記暗号鍵ファイルに含まれる前記第1の暗号鍵データから第2のハッシュ値を算出し、前記第1のハッシュ値と前記第2のハッシュ値との一致の検証を行う正当性検証手順、
前記一致の検証に失敗した場合に、前記検証の結果を通知する通知手順、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、情報処理装置において、システムを構成するファイル(ファームウェア、ソフトウェア)に対して不正な改ざんを検知し、正当なファイルのみ実行できるようにして完全性及び真正性を保証する技術が知られている。システムを構成するファイルに対して不正な改ざんを検知する技術では、予め対象となるファイルに対してハッシュ値(計測値)の期待値や電子署名といった認証データを保管しておき、期待値や電子署名と比較検証することで、完全性及び真正性の確認をファイル単位で行っていた。
【0003】
また、起動したソフトウェアの正当性に関する信頼性の高い情報を通知できる技術は従来から知られている(例えば特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、暗号鍵によって暗号化されたデータを保存する暗号ストレージを有する情報処理装置では、暗号鍵が不正に改ざんされたことを検知できず、暗号化されたデータを正しく再現できない場合があった。なお、特許文献1は、このような課題について記載されたものではない。
【0005】
本発明の実施の形態は、ストレージのデータの復号に利用する暗号鍵データの改ざんを検知できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を達成するために本願請求項1の情報処理装置は、第1のストレージに保存されたデータの復号に利用する第1の暗号鍵データ、及び前記第1の暗号鍵データの第1のハッシュ値を含む暗号化された暗号鍵ファイルを第2のストレージに書き込む暗号鍵ファイル書込手段と、前記暗号鍵ファイルの復号に利用する第2の暗号鍵データで前記第2のストレージの前記暗号鍵ファイルを復号する復号手段と、復号した前記暗号鍵ファイルに含まれる前記第1の暗号鍵データから第2のハッシュ値を算出し、前記第1のハッシュ値と前記第2のハッシュ値との一致の検証を行う正当性検証手段と、前記一致の検証に失敗した場合に、前記検証の結果を通知する通知手段と、を有する。
【発明の効果】
【0007】
本発明の実施の形態によれば、ストレージのデータの復号に利用する暗号鍵データの改ざんを検知できる。
【図面の簡単な説明】
【0008】
図1】実施形態に係る情報処理装置の一例のハードウェア構成図である。
図2】本実施形態に係る情報処理装置の一例のソフトウェア構成図である。
図3】本実施形態に掛かるデバイス暗号鍵データの完全性及び真正性の検証時の一例の処理イメージについて説明する図である。
図4】ハッシュ値による検証時の一例の処理イメージについて説明する図である。
図5】暗号鍵ファイル書込アプリの処理フローの一例について説明する図である。
図6】暗号鍵ファイルを復号する復号アプリの処理フローの一例について説明する図である。
図7】デバイス暗号鍵データをハッシュ検証する正当性検証アプリの処理フローの一例について説明する図である。
図8】非暗号ストレージに書き込まれた二つの暗号鍵ファイルの一例について説明する図である。
図9】暗号鍵ファイルが複数の場合の正当性検証アプリの処理フローの一例について説明する図である。
図10】PCの一例のハードウェア構成図である。
図11】MFPの一例のハードウェア構成図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照しながら実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【0010】
[第1の実施形態]
<ハードウェア構成>
図1は実施形態に係る情報処理装置の一例のハードウェア構成図である。図1の情報処理装置1は、コントローラ2及び操作部3を備える。コントローラ2は、情報処理装置1の動作全体を制御する。
【0011】
コントローラ2は、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、RAM(Random Access Memory)23、非暗号ストレージ24、暗号ストレージ25、及びセキュリティチップ26を有する。CPU21は情報処理装置1全体の動作を制御する。ROM22はCPU21やIPL(Initial Program Loader)等のCPU21の駆動に用いられるプログラムを記憶する。RAM23は、CPU21のワークエリアとして使用される。
【0012】
非暗号ストレージ24は、システムを構成するファイル(例えばファームウェア、ソフトウェア)及び後述の暗号鍵ファイルを保存する。非暗号ストレージ24は、例えばeMMC(embedded Multi Media Card)である。暗号ストレージ25は、暗号化されたデータを保存する。暗号化されたデータは、例えばアプリケーションが利用するアドレス帳、ログ、又は機器の設定値などのデータである。また、暗号ストレージ25は、例えばHDD(Hard Disk Drive)である。
【0013】
セキュリティチップ26は、システム起動時に、ファームウェアの完全性及び真正性を検証するために利用される。セキュリティチップ26は、例えばTPM(Trusted Platform Module)である。操作部3は、入力部と出力部とを有し、入力部からユーザの操作を受け付け、出力部から表示などの出力を行う。
【0014】
<ソフトウェア構成>
図2は、本実施形態に係る情報処理装置の一例のソフトウェア構成図である。図2に示す情報処理装置1は、暗号鍵ファイル30、暗号鍵ファイル復号用の暗号鍵データ32、起動アプリ34、正当性検証アプリ36、復号アプリ38、暗号鍵ファイル書込アプリ40、通知アプリ42、アプリケーション44、及びOS50を有する。
【0015】
情報処理装置1のOS50は、オペレーティングシステムであり、情報処理装置1の全体を制御する。暗号鍵ファイル30は、暗号ストレージ25に保存されたデータの復号に利用するデバイス暗号鍵データ、及びデバイス暗号鍵データのハッシュ値(期待値)を含むファイルである。暗号鍵ファイル30は、暗号鍵ファイル暗号用の暗号鍵データにより暗号化されている。暗号鍵ファイル復号用の暗号鍵データ32は、暗号鍵ファイル30の復号に利用する暗号鍵データである。暗号鍵ファイル復号用の暗号鍵データ32は、システムの起動時にファームウェアの完全性及び真正性の検証に成功したセキュリティチップ26から取得される。
【0016】
起動アプリ34は情報処理装置1で実行されることで起動部として機能する。起動部はシステムを構成するファイル(ファームウェア、ソフトウェア)を起動する。正当性検証アプリ36は情報処理装置1で実行されることで正当性検証部として機能する。正当性検証部は、システムの起動時に、ファームウェア及び暗号鍵ファイル30の完全性及び真正性の検証を行う。システムの起動時に、正当性検証部はセキュリティチップ26を利用してファームウェアの完全性及び真正性の検証を行う。また、正当性検証部はシステムの起動時にファームウェアの完全性及び真正性の検証に成功したセキュリティチップ26から暗号鍵ファイル復号用の暗号鍵データ32を取得し、後述のように暗号鍵ファイル30の完全性及び真正性の検証を行う。
【0017】
復号アプリ38は、情報処理装置1で実行されることで復号部として機能する。例えば復号部は暗号鍵ファイル復号用の暗号鍵データ32を利用して暗号鍵ファイル30を復号する。また、例えば復号部は暗号鍵ファイル30に含まれるデバイス暗号鍵データを利用して、暗号ストレージ25に保存されたデータを復号する。
【0018】
暗号鍵ファイル書込アプリ40は、情報処理装置1で実行されることで暗号鍵ファイル書込部として機能する。例えば暗号鍵ファイル書込部は、暗号化された暗号鍵ファイル30を非暗号ストレージ24に書き込むときに実行される。暗号鍵ファイル書込部は、暗号ストレージ25に保存されたデータの復号に利用するデバイス暗号鍵データ、及びデバイス暗号鍵データのハッシュ値(期待値)をまとめて暗号化した暗号鍵ファイル30を非暗号ストレージ24に書き込む。
【0019】
通知アプリ42は、情報処理装置1で実行されることにより通知部として機能する。通知部は、正当性検証アプリ36による完全性及び真正性の検証に失敗した場合、検証の結果を通知する。例えば通知部は、正当性検証アプリ36による暗号鍵ファイル30の完全性及び真正性の検証に失敗した場合、検証の結果を操作部3などに表示することでユーザにエラーを通知する。アプリケーション44は暗号ストレージ25のデータを利用するアプリケーションの一例である。アプリケーション44は起動部により起動される。
【0020】
情報処理装置1は、例えばTrusted Bootにより、システムの起動時に利用するファームウェア(例えば、BIOS/UEFIやブートローダ)に対する改ざん検知を行う。
【0021】
例えば図2の情報処理装置1は、図1に示したCPU21がRAM23をワークエリアとして使用して、プログラムに従った処理を実行することで、起動部、正当性検証部、復号部、暗号鍵ファイル書込部、通知部、及びOS50を実現する。なお、以下の説明では正当性検証部、復号部、暗号鍵ファイル書込部、及び通知部を、便宜上、正当性検証アプリ36、復号アプリ38、暗号鍵ファイル書込アプリ40、及び通知アプリ42と記載することがある。
【0022】
<実施形態の処理または動作>
以降、各実施形態の処理または動作について説明する。図3は、本実施形態に掛かるデバイス暗号鍵データの完全性及び真正性の検証時の一例の処理イメージについて説明する図である。
【0023】
ステップS1~S3において、セキュリティチップ26はシステムの起動時に扱うBIOS/UEFI、ブートローダ、カーネル、及びrootfsといったファームウェアから計測したハッシュ値が書き込まれる。
【0024】
ステップS4~S5において、セキュリティチップ26は事前に登録されたハッシュ値の期待値と、ステップS1~3において計測したハッシュ値とが一致しているか否かを検証する。事前に登録されたハッシュ値の期待値と、ステップS1~3において計測したハッシュ値とが一致していれば、セキュリティチップ26は検証が成功と判定する。事前に登録されたハッシュ値の期待値と、ステップS1~3において計測したハッシュ値とが一致していなければ、セキュリティチップ26は検証が失敗と判定する。
【0025】
検証が成功と判定すると、セキュリティチップ26はステップS6において、暗号鍵ファイル復号用の暗号鍵データ32を正当性検証アプリ36に提供する。ステップS7において正当性検証アプリ36はステップS6で提供された暗号鍵ファイル復号用の暗号鍵データ32をRAM23に書き込む。
【0026】
ステップS8において、復号アプリ38は非暗号ストレージ24から暗号化された暗号鍵ファイル30を読み出す。ステップS9において、復号アプリ38はステップS8において読み出した暗号化された暗号鍵ファイル30を、ステップS7でRAM23に書き込まれた暗号鍵ファイル復号用の暗号鍵データ32を利用して復号する。
【0027】
ステップS10において、正当性検証アプリ36は復号した暗号鍵ファイルに含まれるデバイス暗号鍵データのハッシュ値を計測する。また、正当性検証アプリ36は計測したデバイス暗号鍵データのハッシュ値と、ステップS9で復号した暗号鍵ファイルに含まれるハッシュ値の期待値とが一致しているか否かを検証する。
【0028】
計測したデバイス暗号鍵データのハッシュ値と、ステップS9で復号した暗号鍵ファイルに含まれるハッシュ値の期待値とが一致していれば、セキュリティチップ26は検証が成功と判定する。計測したデバイス暗号鍵データのハッシュ値と、ステップS9で復号した暗号鍵ファイルに含まれるハッシュ値の期待値とが一致していなければ、セキュリティチップ26は検証が失敗と判定する。
【0029】
検証が成功と判定すると、正当性検証アプリ36は復号した暗号鍵ファイルに含まれるデバイス暗号鍵データを、ステップS11-1において、RAM23に書き込む。検証が失敗と判定すると、ステップS11-2において、通知アプリ42は検証の結果を操作部3などに表示することでユーザにエラーを通知する。
【0030】
ステップS12において、復号アプリ38はRAM23からデバイス暗号鍵データを読み出す。ステップS13において、復号アプリ38はステップS12でRAM23から読み出したデバイス暗号鍵データを利用して、暗号ストレージ25に保存されている暗号化されたデータを復号する。
【0031】
図3に示すように、本実施形態に係る情報処理装置1は、非暗号ストレージ24に保存されているデバイス暗号鍵データの完全性及び真正性の検証を行うことができ、デバイス暗号鍵データの改ざんを検知できる。
【0032】
ステップS10、ステップS11-1、及びステップS11-2の処理は、例えば図4に示すように行われる。図4はハッシュ値による検証時の一例の処理イメージについて説明する図である。
【0033】
図4に示すように、暗号鍵ファイル30には、デバイス暗号鍵データ(平文)及びデバイス暗号鍵データ(平文)のハッシュ値(期待値)が含まれる。非暗号ストレージ24から読み出す暗号化された暗号鍵ファイル30は図4において暗号鍵ファイル(暗号文)と記載している。また、暗号鍵ファイル復号用の暗号鍵データ32を利用して復号した暗号鍵ファイル30は図4において暗号鍵ファイル(平文)と記載している。また、デバイス暗号鍵データ(平文)は、単にデバイス暗号鍵データと呼ぶ。
【0034】
正当性検証アプリ36は、暗号鍵ファイル(平文)に含まれるデバイス暗号鍵データのハッシュ値を算出する。図4において暗号鍵ファイル(平文)に含まれるデバイス暗号鍵データから算出したハッシュ値を、ハッシュ値(起動時)と記載している。ハッシュ値の算出は、例えばsha256のハッシュアルゴリズムを用いたハッシュ関数により算出できる。
【0035】
正当性検証アプリ36は、暗号鍵ファイル(平文)に含まれるハッシュ値(期待値)と算出したデバイス暗号鍵データのハッシュ値(起動時)との一致を検証する。正当性検証アプリ36は、暗号鍵ファイル(平文)に含まれるハッシュ値(期待値)と算出したデバイス暗号鍵データのハッシュ値(起動時)とが一致していれば、デバイス暗号鍵データが改ざんされていないことを検知できるので、検証が成功と判定する。検証が成功と判定すると、正当性検証アプリ36は暗号鍵ファイル(平文)に含まれるデバイス暗号鍵データをRAM23に書き込む。
【0036】
正当性検証アプリ36は、暗号鍵ファイル(平文)に含まれるハッシュ値(期待値)と算出したデバイス暗号鍵データのハッシュ値(起動時)とが一致していなければ、デバイス暗号鍵データが改ざんされていることを検知できるので、検証が失敗と判定する。検証が失敗と判定すると、通知アプリ42は検証の結果を操作部3などに表示することでユーザにエラーを通知する。
【0037】
図4に示したように、本実施形態に係る情報処理装置1は、暗号鍵ファイル復号用の暗号鍵データ32を利用して復号される暗号鍵ファイル(暗号文)にデバイス暗号鍵データのハッシュ値(期待値)を含ませておくことで、ハッシュ値(期待値)の改ざんを防止している。
【0038】
図5は暗号鍵ファイル書込アプリの処理フローの一例について説明する図である。暗号鍵ファイル書込アプリ40はステップS50において、非暗号ストレージ24からデバイス暗号鍵データを取得する。
【0039】
ステップS52において、暗号鍵ファイル書込アプリ40はステップS50で取得したデバイス暗号鍵データのハッシュ値を計測する。ステップS54において、暗号鍵ファイル書込アプリ40はステップS50で取得したデバイス暗号鍵データと、ステップS52で計測したハッシュ値(期待値)とを含む暗号鍵ファイル30を生成し、暗号鍵ファイル30を暗号化する。ステップS56において、暗号鍵ファイル書込アプリ40はステップS54で暗号化した暗号鍵ファイル30を非暗号ストレージ24に書き込む。
【0040】
図6は暗号鍵ファイルを復号する復号アプリの処理フローの一例について説明する図である。ステップS60において、復号アプリ38は非暗号ストレージ24から暗号化された暗号鍵ファイルを取得する。ステップS62において、復号アプリ38はRAM23から読み出した暗号鍵ファイル復号用の暗号鍵データ32を利用して、暗号鍵ファイルを復号する。
【0041】
図7はデバイス暗号鍵データをハッシュ検証する正当性検証アプリの処理フローの一例について説明する図である。ステップS70において、正当性検証アプリ36は復号された暗号鍵ファイル30に含まれていたデバイス暗号鍵データのハッシュ値(起動時)を計測する。
【0042】
ステップS72において、正当性検証アプリ36は計測したハッシュ値(起動時)と、復号された暗号鍵ファイル30に含まれていたデバイス暗号鍵データのハッシュ値(期待値)とが一致しているか否かを検証する。
【0043】
ハッシュ値の検証が成功と判定すると、正当性検証アプリ36はステップS74においてデバイス暗号鍵データをRAM23に書き込むことで、復号アプリ38がデバイス暗号鍵データを利用できる状態にする。ハッシュ値の検証が失敗と判定すると、通知アプリ42はステップS76において、検証の結果を操作部3などに表示することでユーザにエラーを通知する。情報処理装置1は、エラーを通知後、システムを停止するようにしてもよい。
【0044】
以上、本実施形態に係る情報処理装置1は、システムの起動時に、暗号ストレージ25のデータの復号に利用するデバイス暗号鍵データの改ざんを検知できる。
【0045】
上記では、暗号化された一つの暗号鍵ファイル30を非暗号ストレージ24に書き込む例を説明したが、暗号化された複数の暗号鍵ファイル30を非暗号ストレージ24に書き込むようにしてもよい。
【0046】
図8は非暗号ストレージに書き込まれた二つの暗号鍵ファイルの一例について説明する図である。図8は、暗号化された暗号鍵ファイル(MASTER)30A及び暗号化された暗号鍵ファイル(MIRROR)30Bが非暗号ストレージ24に書き込まれている例を示している。なお、MASTER及びMIRRORは、暗号ファイルを区別するための呼び方の一例であって、第1及び第2などの呼び方であってもよい。暗号化された暗号鍵ファイル(MIRROR)30Bは、暗号化された暗号鍵ファイル(MASTER)30Aを複製して非暗号ストレージ24に書き込んでもよい。
【0047】
また、暗号化された暗号鍵ファイル(MASTER)30A及び暗号化された暗号鍵ファイル(MIRROR)30Bの一方を、非暗号ストレージ24以外のストレージに書き込むようにしてもよい。暗号化された暗号鍵ファイル(MASTER)30A及び暗号化された暗号鍵ファイル(MIRROR)30Bは、同一のストレージに書き込むようにしてもよいし、異なるストレージに書き込むようにしてもよい。
【0048】
図8に示すように、暗号化された暗号鍵ファイル(MASTER)30A及び暗号化された暗号鍵ファイル(MIRROR)30Bを非暗号ストレージ24に書き込んでおくことにより、一方の暗号鍵ファイル30が改ざんされたとしても、改ざんされていない他方の暗号鍵ファイル30を使って、改ざんされた暗号鍵ファイル30を復旧できる。
【0049】
図9は暗号鍵ファイルが複数の場合の正当性検証アプリの処理フローの一例について説明する図である。ステップS80において、復号アプリ38は非暗号ストレージ24から暗号化された暗号鍵ファイル(MASTER)30Aを読み出す。復号アプリ38は暗号化された暗号鍵ファイル(MASTER)30Aを、RAM23に書き込まれた暗号鍵ファイル復号用の暗号鍵データ32を利用して復号する。
【0050】
ステップS82において、正当性検証アプリ36は復号した暗号鍵ファイル(MASTER)30Aに含まれるデバイス暗号鍵データのハッシュ値を計測する。また、正当性検証アプリ36は計測したデバイス暗号鍵データのハッシュ値と、ステップS80で復号した暗号鍵ファイル(MASTER)30Aに含まれるハッシュ値の期待値とが一致しているか否かを検証する。
【0051】
計測したデバイス暗号鍵データのハッシュ値と、復号した暗号鍵ファイル(MASTER)30Aに含まれるハッシュ値の期待値とが一致していれば、セキュリティチップ26は検証が成功と判定する。計測したデバイス暗号鍵データのハッシュ値と、復号した暗号鍵ファイル(MASTER)30Aに含まれるハッシュ値の期待値とが一致していなければ、セキュリティチップ26は検証が失敗と判定する。
【0052】
検証が成功と判定すると、正当性検証アプリ36は復号した暗号鍵ファイル(MASTER)30Aに含まれるデバイス暗号鍵データを、RAM23に書き込み、ステップS84の処理に進む。検証が失敗と判定すると、正当性検証アプリ36はステップS92の処理に進む。
【0053】
ステップS84において、復号アプリ38は非暗号ストレージ24から暗号化された暗号鍵ファイル(MIRROR)30Bを読み出す。復号アプリ38は暗号化された暗号鍵ファイル(MIRROR)30Bを、RAM23に書き込まれた暗号鍵ファイル復号用の暗号鍵データ32を利用して復号する。
【0054】
ステップS86において、正当性検証アプリ36は復号した暗号鍵ファイル(MIRROR)30Bに含まれるデバイス暗号鍵データのハッシュ値を計測する。また、正当性検証アプリ36は計測したデバイス暗号鍵データのハッシュ値と、ステップS84で復号した暗号鍵ファイル(MIRROR)30Bに含まれるハッシュ値の期待値とが一致しているか否かを検証する。
【0055】
計測したデバイス暗号鍵データのハッシュ値と、復号した暗号鍵ファイル(MIRROR)30Bに含まれるハッシュ値の期待値とが一致していれば、セキュリティチップ26は検証が成功と判定する。計測したデバイス暗号鍵データのハッシュ値と、復号した暗号鍵ファイル(MIRROR)30Bに含まれるハッシュ値の期待値とが一致していなければ、セキュリティチップ26は検証が失敗と判定する。
【0056】
検証が成功と判定すると、正当性検証アプリ36は図9の処理フローを終了する。検証が失敗と判定すると、正当性検証アプリ36はステップS88の処理に進む。ステップS88において、正当性検証アプリ36は暗号鍵ファイル(MASTER)30Aを暗号鍵ファイル(MIRROR)30Bにコピーする。このように、正当性検証アプリ36は検証が失敗した暗号鍵ファイル(MIRROR)30Bを復旧できる。
【0057】
ステップS90において、通知アプリ42は検証の結果を操作部3などに表示することでユーザにエラーを通知する。エラーの通知後、情報処理装置1はシステムの起動を停止してもよいし、継続してもよい。
【0058】
ステップS82の検証が失敗と判定すると、ステップS92において、復号アプリ38は非暗号ストレージ24から暗号化された暗号鍵ファイル(MIRROR)30Bを読み出す。復号アプリ38は暗号化された暗号鍵ファイル(MIRROR)30Bを、RAM23に書き込まれた暗号鍵ファイル復号用の暗号鍵データ32を利用して復号する。
【0059】
ステップS94において、正当性検証アプリ36は復号した暗号鍵ファイル(MIRROR)30Bに含まれるデバイス暗号鍵データのハッシュ値を計測する。また、正当性検証アプリ36は計測したデバイス暗号鍵データのハッシュ値と、ステップS92で復号した暗号鍵ファイル(MIRROR)30Bに含まれるハッシュ値の期待値とが一致しているか否かを検証する。
【0060】
計測したデバイス暗号鍵データのハッシュ値と、復号した暗号鍵ファイル(MIRROR)30Bに含まれるハッシュ値の期待値とが一致していれば、セキュリティチップ26は検証が成功と判定する。計測したデバイス暗号鍵データのハッシュ値と、復号した暗号鍵ファイル(MIRROR)30Bに含まれるハッシュ値の期待値とが一致していなければ、セキュリティチップ26は検証が失敗と判定する。
【0061】
検証が成功と判定すると、正当性検証アプリ36は暗号鍵ファイル(MIRROR)30Bを暗号鍵ファイル(MASTER)30Aにコピーする。このように、正当性検証アプリ36は検証が失敗した暗号鍵ファイル(MASTER)30Aを復旧できる。検証が失敗と判定すると、正当性検証アプリ36は検証の結果を操作部3などに表示することでユーザにエラーを通知する。エラーの通知後、情報処理装置1は暗号鍵ファイル(MASTER)30A及び暗号鍵ファイル(MIRROR)30Bの検証が失敗したため、システムの起動を停止する。
【0062】
図9の処理フローによれば、暗号鍵ファイル(MASTER)30A及び暗号鍵ファイル(MIRROR)30Bの何れか一方が改ざんされたとしても、完全性及び真正性の検証に成功した暗号鍵ファイル(MASTER)30A又は暗号鍵ファイル(MIRROR)30Bを利用して復旧できる。
【0063】
[他の実施形態]
なお、本実施形態に係る情報処理装置1は、システムの起動時等にファイルの完全性及び真正性を検証する機能を備えた装置であれば図1に例示した構成に限られない。情報処理装置1は組み込み機器であってもよい。
【0064】
情報処理装置1はPJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等であってもよい。
【0065】
例えば、実施形態に係る情報処理装置1は、図10又は図11に示すハードウェア構成を有する、PC600又はMFP900のいずれかであってもよい。
【0066】
図10は、PCの一例のハードウェア構成図である。図10に示されているように、PC600は、コンピュータによって構築されており、CPU601、ROM602、RAM603、HD604、HDDコントローラ605、ディスプレイ606、外部機器接続I/F(Interface)608、ネットワークI/F609、データバス610、キーボード611、ポインティングデバイス612、DVD-RW(Digital Versatile Disk Rewritable)ドライブ614、及びメディアI/F616を備えている。
【0067】
CPU601は、PC600全体の動作を制御する。ROM602はIPL等のCPU601の駆動に用いられるプログラムを記憶する。RAM603はCPU601のワークエリアとして使用される。HD604はプログラム等の各種データを記憶する。HDDコントローラ605は、CPU601の制御にしたがってHD604に対する各種データの読み出し又は書き込みを制御する。
【0068】
ディスプレイ606は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F608は、各種の外部機器を接続するためのインタフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F609は、通信ネットワークを利用してデータ通信をするためのインタフェースである。データバス610は、図10のCPU601等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0069】
キーボード611は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス612は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ614は、着脱可能な記録媒体の一例としてのDVD-RW613に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F616は、フラッシュメモリ等の記録メディア615に対するデータの読み出し又は書き込み(記憶)を制御する。
【0070】
図11は、MFPの一例のハードウェア構成図である。図11に示されているようにMFP(Multifunction Peripheral/Product/Printer)900は、コントローラ910、近距離通信回路920、エンジン制御部930、操作パネル940、ネットワークI/F950を備えている。コントローラ910は、コンピュータの主要部であるCPU901、システムメモリ(MEM-P)902、ノースブリッジ(NB)903、サウスブリッジ(SB)904、ASIC(Application Specific Integrated Circuit)906、記憶部であるローカルメモリ(MEM-C)907、HDDコントローラ908、及び、記憶部であるHD909を有し、NB903とASIC906との間をAGP(Accelerated Graphics Port)バス921で接続した構成となっている。
【0071】
CPU901はMFP9の全体制御を行う制御部である。NB903は、CPU901と、MEM-P902、SB904、及びAGPバス921とを接続するためのブリッジであり、MEM-P902に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
【0072】
MEM-P902は、コントローラ910の各機能を実現させるプログラムやデータの格納用メモリであるROM902a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM902bとからなる。なお、RAM902bに記憶されているプログラムはインストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。SB904はNB903とPCIデバイス及び周辺デバイスとを接続するためのブリッジである。ASIC906は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス921、PCIバス922、HDD908およびMEM-C907をそれぞれ接続するブリッジの役割を有する。
【0073】
ASIC906は、PCIターゲットおよびAGPマスタ、ASIC906の中核をなすアービタ(ARB)、MEM-C907を制御するメモリコントローラ、ハードウェアロジックなどにより画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部931及びプリンタ部932との間でPCIバス922を介したデータ転送を行うPCIユニットとからなる。なお、ASIC906には、USBのインタフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインタフェースを接続するようにしてもよい。
【0074】
MEM-C907は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD909は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。HD909は、CPU901の制御にしたがってHD909に対するデータの読出又は書込を制御する。AGPバス921は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P902に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
【0075】
また、近距離通信回路920には、近距離通信回路920aが備わっている。近距離通信回路920は、NFC、Bluetooth(登録商標)等の通信回路である。
【0076】
更に、エンジン制御部930は、スキャナ部931及びプリンタ部932によって構成されている。また、操作パネル940は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部940a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作パネル940bを備えている。コントローラ910はMFP9全体の制御を行い、例えば、描画、通信、操作パネル940からの入力等を制御する。スキャナ部931又はプリンタ部932には、誤差拡散やガンマ変換などの画像処理部分が含まれている。
【0077】
なお、MFP900は、操作パネル940のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、およびファクシミリ機能を順次に切り替えて選択することが可能となる。MFP900はドキュメントボックス機能の選択時にドキュメントボックスモードとなり、コピー機能の選択時にコピーモードとなり、プリンタ機能の選択時にプリンタモードとなり、ファクシミリモードの選択時にファクシミリモードとなる。
【0078】
また、ネットワークI/F950は、通信ネットワークを利用してデータ通信をするためのインタフェースである。近距離通信回路920及びネットワークI/F950は、PCIバス922を介して、ASIC906に電気的に接続されている。
【0079】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、本実施形態で説明した情報処理装置1は一例であって、用途や目的に応じて様々な構成例があることは言うまでもない。
【0080】
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0081】
実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。
【0082】
本発明の態様は、例えば、以下の通りである。
<1>
第1のストレージに保存されたデータの復号に利用する第1の暗号鍵データ、及び前記第1の暗号鍵データの第1のハッシュ値を含む暗号化された暗号鍵ファイルを第2のストレージに書き込む暗号鍵ファイル書込手段と、
前記暗号鍵ファイルの復号に利用する第2の暗号鍵データで前記第2のストレージの前記暗号鍵ファイルを復号する復号手段と、
復号した前記暗号鍵ファイルに含まれる前記第1の暗号鍵データから第2のハッシュ値を算出し、前記第1のハッシュ値と前記第2のハッシュ値との一致の検証を行う正当性検証手段と、
前記一致の検証に失敗した場合に、前記検証の結果を通知する通知手段と、
を有する情報処理装置。
<2>
前記第2のストレージは非暗号ストレージであり、前記第2の暗号鍵データはシステムの起動時にファームウェアの完全性及び真正性の検証に成功したセキュリティチップから取得されること
を特徴とする<1>記載の情報処理装置。
<3>
前記暗号鍵ファイル書込手段は、前記第2のストレージに、暗号化された前記暗号鍵ファイルを複製して、複数個、書き込み、前記第2のストレージに書き込まれた複数個の暗号化された前記暗号鍵ファイルのうち、前記正当性検証手段による前記一致の検証に失敗した一の前記暗号鍵ファイルを、前記正当性検証手段による前記一致の検証に成功した他の前記暗号鍵ファイルで復旧すること
を特徴とする請求項1又は2記載の情報処理装置。
<4>
前記通知手段は、前記暗号鍵ファイル書込手段が前記正当性検証手段による前記一致の検証に失敗した一の前記暗号鍵ファイルを、前記正当性検証手段による前記一致の検証に成功した他の前記暗号鍵ファイルで復旧したあと、前記検証の結果を通知すること
を特徴とする<3>記載の情報処理装置。
<5>
情報処理装置が、
第1のストレージに保存されたデータの復号に利用する第1の暗号鍵データ、及び前記第1の暗号鍵データの第1のハッシュ値を含む暗号化された暗号鍵ファイルを第2のストレージに書き込む暗号鍵ファイル書込ステップと、
前記暗号鍵ファイルの復号に利用する第2の暗号鍵データで前記第2のストレージの前記暗号鍵ファイルを復号する復号ステップと、
復号した前記暗号鍵ファイルに含まれる前記第1の暗号鍵データから第2のハッシュ値を算出し、前記第1のハッシュ値と前記第2のハッシュ値との一致の検証を行う正当性検証ステップと、
前記一致の検証に失敗した場合に、前記検証の結果を通知する通知ステップと、
を実行する情報処理方法。
<6>
情報処理装置に、
第1のストレージに保存されたデータの復号に利用する第1の暗号鍵データ、及び前記第1の暗号鍵データの第1のハッシュ値を含む暗号化された暗号鍵ファイルを第2のストレージに書き込む暗号鍵ファイル書込手順、
前記暗号鍵ファイルの復号に利用する第2の暗号鍵データで前記第2のストレージの前記暗号鍵ファイルを復号する復号手順、
復号した前記暗号鍵ファイルに含まれる前記第1の暗号鍵データから第2のハッシュ値を算出し、前記第1のハッシュ値と前記第2のハッシュ値との一致の検証を行う正当性検証手順、
前記一致の検証に失敗した場合に、前記検証の結果を通知する通知手順、
を実行させるためのプログラム。
【符号の説明】
【0083】
1 情報処理装置
2 コントローラ
3 操作部
21 CPU(Central Processing Unit)
22 ROM(Read Only Memory)
23 RAM(Random Access Memory)
24 非暗号ストレージ
25 暗号ストレージ
26 セキュリティチップ
30 暗号鍵ファイル
32 暗号鍵ファイル復号用の暗号鍵データ
36 正当性検証アプリ
38 復号アプリ
40 暗号鍵ファイル書込アプリ
42 通知アプリ
【先行技術文献】
【特許文献】
【0084】
【特許文献1】特開2008-234079号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11