(57)【要約】      （修正有）【課題】情報処理装置内部に保存されたデータの改ざんを防止する。【解決手段】暗号化された設定データを記憶する記憶手段１４０と、前記設定データを用いて情報処理装置１００の制御を行う制御手段１２１と、非対称暗号方式における第１の暗号化鍵を用いて前記設定データを暗号化する暗号化モジュール１１０と、を備える情報処理装置１００であって、暗号化モジュール１１０は、前記第１の暗号化鍵を非対称暗号方式における第２の暗号化鍵２１を用いて暗号化し暗号化済み暗号化鍵１１ｃとして外部の可搬性記憶媒体１５０に記憶させる。【選択図】図１
2016146618.tif 000002
【特許請求の範囲】
【請求項１】
暗号化された設定データを記憶する記憶手段と、
前記設定データを用いて情報処理装置の制御を行う制御手段と、
非対称暗号方式における第１の暗号化鍵を用いて前記設定データを暗号化する暗号化モジュールと、
を備える前記情報処理装置であって、
前記暗号化モジュールは、前記第１の暗号化鍵を非対称暗号方式における第２の暗号化鍵を用いて暗号化した上で外部の可搬性記憶媒体に記憶させる、
ことを特徴とする、情報処理装置。
【請求項２】
前記暗号化モジュールは、前記第１の暗号化鍵に対応する第１の復号化鍵をモジュール内に記憶し、
前記記憶手段が記憶する暗号化された前記設定データを、前記第１の復号化鍵を用いて復号化して前記制御手段に渡す
ことを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記暗号化モジュールは、前記第２の暗号化鍵に対応する第２の復号化鍵をモジュール内に記憶し、
暗号化された前記第１の暗号化鍵を前記第２の復号化鍵を用いて復号化し、
前記制御手段が更新した前記設定データを復号化された前記第１の暗号化鍵を用いて暗号化した上で前記記憶手段に記憶させる、
ことを特徴とする、請求項１又は２に記載の情報処理装置。
【請求項４】
前記暗号化モジュールは、前記第２の復号化鍵への読取アクセスを、前記第２の暗号化鍵及び前記第２の復号化鍵の生成時に用いた書き換え時ファームウェアからの読取アクセスのみに限定することを特徴とする、請求項３に記載の情報処理装置。
【請求項５】
前記暗号化モジュールは、前記第２の暗号化鍵及び第２の復号化鍵を前記情報処理装置の初期設定時に一度だけ生成し、前記第２の復号化鍵をモジュール内に記憶することを特徴とする、請求項３又は４に記載の情報処理装置。
【請求項６】
前記可搬性記憶媒体は、暗号化された前記第１の暗号化鍵に署名用の鍵で生成された署名データを付与し、
前記暗号化モジュールは、前記署名用の鍵に対応する署名検証鍵を内部に有し、前記署名検証鍵を用いて前記署名データを検証する
ことを特徴とする、請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
情報処理装置であって、
ファームウェアと、
暗号化された設定データと、
前記暗号化された設定データの復号化をする第１の復号化鍵と、
を記憶する第１の記憶部と、
前記設定データの暗号化に用いる第１の暗号化鍵を暗号化する第２の暗号化鍵と、
暗号化された前記第１の暗号化鍵を復号化する第２の復号化鍵と、
を、２つとも暗号化された状態で記憶する第２の記憶部と、を備え、
前記第２の暗号化鍵及び前記第２の復号化鍵は、前記ファームウェアの検証結果及び第３の暗号化鍵に基づいて暗号化される、
ことを特徴とする、情報処理装置。
【請求項８】
前記第３の暗号化鍵及びこれに対応する第３の復号化鍵は、外部の鍵管理サーバに記憶され、
前記ファームウェアは、前記鍵管理サーバから前記第３の暗号化鍵及び前記第３の復号化鍵を取得する
ことを特徴とする、請求項７に記載の情報処理装置。
【請求項９】
前記第１の記憶部は、前記ファームウェアを構成するモジュールのバージョン情報を記載したファイルを記憶し、
前記第２の暗号化鍵及び前記第２の復号化鍵は、前記ファームウェアに代えて、前記バージョン情報を記載したファイルの検証結果及び前記第３の暗号化鍵に基づいて暗号化される、
ことを特徴とする、請求項７又は８に記載の情報処理装置。
【請求項１０】
暗号化された前記第１の暗号化鍵を外部の可搬性記憶媒体に記憶することを特徴とする、請求項７から９のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に、装置内に記憶する情報の改ざんを防止するための技術に関する。
【背景技術】
【０００２】
機密情報を保護する方法としては、暗号化が一般的に用いられる。また、暗号強度を高くするための技術としては、データの暗号時に使用する暗号鍵と、暗号化されたデータを復号する復号鍵を用いる非対称暗号（ＲＳＡなど）が知られている（図５参照）。
【０００３】
多機能複合機（以下、ＭＦＰ（Multi-Functional Peripherals/Printer）と呼ぶ）内には、ＭＦＰの動作を決定する設定値が保存されている。この値によってＭＦＰの動作が決まるため、設定値は機密性の高い情報であり、容易に書き換えられないようにする必要がある。以下、このような設定値／設定値情報などを「設定データ」と呼ぶ。
【０００４】
したがって、ＭＦＰ内にも保護すべき、機密にしておくべき設定データが存在するため、設定データの暗号化が不可欠である。上述の非対称暗号方式を用いる場合、設定データを書き換え可能とするためには、暗号鍵と復号鍵を保持しておく必要がある。書き換え時には暗号鍵を使用し、読み取り時には復号鍵を使用する。しかし、前述のように、設定値は容易に書き換えられないようにする必要がある。設定データの改ざんを防止しなければならない。
【０００５】
設定データの改ざんを防止するために、暗号鍵の読み取りを制限するという考えがある。そのようなアイデアの一つとして、特許文献１には、ファームウェアのハッシュ値を計算し、そのハッシュ値が正常な場合にのみ暗号鍵を取り出すことのできるデバイスを用いて暗号鍵を保護するという技術的思想が開示されている。つまり、特許文献１では、ファームウェアの正当性をもって暗号鍵を取り出すことができ、機密情報の書き換えを行うことができるようにしている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＭＦＰでは、プログラムをＳＤカード（登録商標）のような可搬性記憶媒体に搭載し、任意のプログラムを実行することができる。このような任意のプログラムを以下、「オプションプログラム」と呼ぶことにする。
【０００７】
特許文献１に開示されている、ＭＦＰの設定データを保護し、且つ、安全に書き換えるアイデアは、簡略化すると図６に示すような方式である。図中のＴＰＭは、例えば、ＴＣＰＡ（Trusted Computing Platform Alliance）の仕様に基づいたＰＣ等において、情報の暗号化を行うために用いるモジュール：ＴＰＭ（Trusted Platform Module）を表している。ＴＰＭは例えば、マザーボードに直付けされるチップで実現される。
【０００８】
図６に示す方式を説明する。まず、正当なファームウェアで起動し、ＴＰＭから暗号鍵取得が可能な状態とする（Ｓ１）。その上で、可搬性記憶媒体に入れたオプションプログラムを用いてＴＰＭから暗号鍵を取得する（Ｓ２）。次に、オプションプログラムが、暗号鍵を用いてＮＶＲＡＭ上の暗号化された設定データの書き換えを実行する（Ｓ３）。
【０００９】
しかしながら、上述の方法では、「通常動作時」に、正当なファームウェア及びオプションプログラムさえ揃えば、暗号化された設定データの書き換えが可能になってしまう。ここで言う「通常動作時」とは、ＭＦＰがユーザやクライアントの管理下で使用されている状態のことを指す。設定データには機器の動作にかかわるものもあり、通常時での書き換えを想定していないようなデータもある。このようなデータにつき、整備工場などでのみ、書き換えが可能な構成としたい。
【００１０】
以上に述べた従来技術における課題は、ＭＦＰの技術分野に限ったものではなく、情報処理装置全般においても見出される課題であり、改ざんを防止するべきデータを持つ機器であれば適用可能な課題である。そのような機器としては例えば、プロジェクタやカメラ等がある。また、改ざんを防止する対象についても、ＭＦＰの設定データに限定されるものではなく、情報処理装置内部に保存されたデータ全般が対象になる。
【００１１】
本発明は、上記実情に鑑みてなされたものであって、情報処理装置内部に保存されたデータの改ざんを防止することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明は、暗号化された設定データを記憶する記憶手段と、前記設定データを用いて情報処理装置の制御を行う制御手段と、非対称暗号方式における第１の暗号化鍵を用いて前記設定データを暗号化する暗号化モジュールと、を備える前記情報処理装置であって、前記暗号化モジュールは、前記第１の暗号化鍵を非対称暗号方式における第２の暗号化鍵を用いて暗号化した上で外部の可搬性記憶媒体に記憶させる、ことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、情報処理装置内部に保存されたデータの改ざんを防止することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態のブロック図である。
【図２】第１の実施形態における各データと鍵の関係を示す図である。
【図３】第１の実施形態における通常稼働時と書き換え時の説明図である。
【図４】第１の実施形態の処理の流れを示すシーケンス図である。
【図５】一般的な非対称暗号方式について説明するための図である。
【図６】先行技術における設定データの書き換え方式を示す図である。
【図７】本発明の第２の実施形態のブロック図である。
【図８】第２の実施形態における各データと鍵の関係を示す図である。
【図９】第２の実施形態における暗号化鍵２１と復号化鍵２２の暗号化を示す説明図である。
【図１０】第２の実施形態における書き換え処理の流れを示すフロー図である。
【発明を実施するための形態】
【００１５】
＜第１の実施形態＞
以下に説明する実施形態は、例えば以下の技術的特徴を有する。
・設定データを暗号化／復号化する鍵ペアを持つ。
・設定データを暗号化するための暗号鍵を暗号／復号する鍵ペアを持つ。
・設定データを暗号化するための暗号鍵を保持する記憶装置と記憶プログラムを持つ。
・各復号鍵をハッシュ値によって保護できるデバイスを用いて保護する。
・設定値データを暗号化して保持する記憶装置と復号鍵を用いて読みだすプログラムをもつ。
【００１６】
図１に本実施形態の構成を示す。情報処理装置１００としては、例えば、パーソナルコンピュータやプロジェクタ、カメラ等が実施例としてあげられる。本実施形態においては、多機能複合機（ＭＦＰ）であることとする。情報処理装置１００は、処理装置と記憶装置を持つ。中央演算装置であるＣＰＵ１２０は処理装置の一例である。記憶装置として本実施形態では、ＲＯＭ１３０とＮＶＲＡＭ１４０の２つの不揮発性メモリを備える構成を一例として示した。
【００１７】
ＲＯＭ１３０は、ソフトウェアプログラムである通常稼働時ファームウェア１３１と書き換え時ファームウェア１３２を記憶する。いずれかのファームウェアがＣＰＵ１２０により読み出され、図示しない一時メモリ上に展開されることにより制御部１２１が構成される。
【００１８】
書き換え時ファームウェア１３２は、設定データ１４１（図２を参照して説明）を書き換えるときにＣＰＵ１２０に実行させるファームウェアである。一方で、通常稼働時ファームウェア１３１は、情報処理装置１００を通常稼働させるときにＣＰＵ１２０に実行させるファームウェアである。設定データ１４１の書き換えではないときは基本的に通常稼働時ファームウェア１３１を用いる。「通常稼働時」と「書き換え時」については図３を参照して後述する。
【００１９】
制御部１２１は、ＮＶＲＡＭ１４０に記憶されている暗号化済み設定データ１４１ｃの暗号化を解いて、取り出した設定データ１４１を用いて情報処理を行う。本実施形態では、設定データ１４１は一例として、情報処理装置１００の設定値やマジックナンバー（プログラムに直接埋め込まれた数字）、チェックサムなどを含むこととする（図２参照）。
【００２０】
図１に示すように、情報処理装置１００は、暗号化モジュールであるＴＰＭ（Trusted Platform Module）１１０を有する。ＴＰＭ１１０は、例えば、情報処理装置１００の基板に直付けされたチップなどで実現できる。ＴＰＭ１１０は、暗号化／復号化処理を実行する機能の他、内部に不揮発性の記憶手段を有し、暗号化鍵や復号化鍵をセキュアな状態で記憶しておく機能を備える。そのような記憶手段として、本実施形態では、ＮＶＲＡＭ１１１と保護制御レジスタ１１２を備えることとする。
【００２１】
保護制御レジスタ１１２は、ＰＣＲ（Protected Control Register）ビットからなり、鍵やプログラムなどのハッシュ値を記憶する。ＴＰＭ１１０は、プログラムアクセスや鍵の利用を仕様とするアクセスなどがあった際に、ハッシュ値を確認することによって、アクセスの正当性を保証する。
【００２２】
ＴＰＭ１１０は、内部の記憶手段（ＮＶＲＡＭ１１１）に、復号化鍵１２、暗号化鍵２１、復号化鍵２２、署名検証鍵３２を記憶する。これらはＰＣＲ保護することが好ましい。
【００２３】
また、情報処理装置１００は、可搬性記憶媒体の読取部やドライバなど（不図示）を備え、可搬性記憶媒体１５０の記憶内容を装置に入力する機能を備える。また、新たな若しくは更新した記憶内容を可搬性記憶媒体１５０に出力する機能を備える。なお、可搬性記憶媒体１５０としては、例えば、ＳＤカード（登録商標）、メモリスティック（登録商標）などが具体的実施例として挙げられる。
【００２４】
可搬性記憶媒体１５０は、オプションプログラム１５１、暗号化鍵２１で暗号化済みの暗号化鍵１１ｃ、署名３３を記憶する。オプションプログラム１５１は、設定データ１４１の書き換え時に用いる。署名３３は、オプションプログラム１５１や可搬性記憶媒体１５０が正当なものであることを証明するために付される。
【００２５】
図２に、各鍵とデータの関係について説明するための図を示す。まず、データについて説明する。図２に示すように、設定データ１４１は、例えば、マジックナンバーや設定値やチェックサムなどのデータである。この設定データ１４１は、暗号化鍵１１により暗号化される。暗号化されたデータが、暗号化済み設定データ１４１ｃである。
【００２６】
次に、各鍵について説明する。一般的に、ある暗号化鍵で暗号化させたデータは、当該暗号化鍵と組になっている復号化鍵を用いなければ、復号化がきわめて難しい。本実施形態においては、非対称暗号方式により生成される暗号化鍵及び復号化鍵のペアを３組、用いている。１組目は、暗号化鍵１１及び復号化鍵１２のペアである（第１の暗号化鍵及び第１の復号化鍵）。２組目は、暗号化鍵２１及び復号化鍵２２のペアである（第２の暗号化鍵及び第２の復号化鍵）。３組目は、署名検証鍵３２及び署名鍵３１のペアである。
【００２７】
暗号化鍵１１及び復号化鍵１２のペアは、設定データ１４１を暗号化／復号化するために用いる。暗号化鍵２１及び復号化鍵２２のペアは、暗号化鍵１１を暗号化／復号化するために用いる。署名鍵３１及び署名検証鍵３２は、可搬性記憶媒体１５０の記憶内容の正当性を保証するために用いる。
【００２８】
ＴＰＭ１１０は、少なくとも復号化鍵１２と復号化鍵２２をＰＣＲ保護する。具体的には例えば、復号化鍵１２と復号化鍵２２の各々のハッシュ値を、保護制御レジスタ１１２に書き換え不可能にして記憶させておき、復号化鍵１２と復号化鍵２２が制御部１１２などに使用される都度、ハッシュ値を生成して記憶されているものと比較し、改ざんを検知する。暗号化鍵２１、署名検証鍵３２をＰＣＲ保護することも好ましい。
【００２９】
また、復号化鍵２２をＴＰＭ１１０から取り出す際は、暗号化鍵２１と復号化鍵２２を生成するときに用いた書き換え時ファームウェア１３２を用いる必要があるように、ＰＣＲ保護をかける。すなわち、ＴＰＭ１１０は、ＰＣＲ保護により、復号化鍵２２への読取アクセスを、書き換え時ファームウェア１３２からの読取アクセスだけに制限する。
【００３０】
なお、この読取アクセスの制限は、書き換え時ファームウェア１３２のハッシュ値を暗号化鍵２１と復号化鍵２２の生成時に保護制御レジスタ１１２に記憶させておき、復号化鍵２２への読取アクセスがあったときに、読取アクセスを行った書き換え時ファームウェア１３２のハッシュ値をそれと照合することで、読取アクセスの正当性を確認することで実現する。
【００３１】
＜シーケンス＞
以上のような構成を持つ情報処理装置１００の詳細な動作や処理の流れについて、以下に説明する。まず、シーケンスの理解を容易にするため、図３に本実施形態の利用態様の一例を示す。
【００３２】
情報処理装置１００は本実施形態では多機能複合機（ＭＦＰ）とするが、この場合、情報処理装置１００は、通常稼働時にはユーザが通常使用する場所に設置される（図３左側）。また、メンテナンスを行うとき、つまり、設定データ１４１の書き換え時には、情報処理装置１００を工場などへ移動させる（図３右側）。なお、設定データ１４１を最初に書き込むときも、「書き換え時」に含まれるものとする。
【００３３】
一例として、この工場などで可搬性記憶媒体１５０が保持、管理される。また、可搬性記憶媒体１５０は、工場などでの書き換え時にのみ情報処理装置１００に挿入されるような、管理運用を行う。以下の説明もこのような状況下で行われるものとする。ただし、このような運用態様は本発明の構成を限定するものではない。他には例えば、ユーザ先に派遣されたメーカのエンジニアなどが可搬性記憶媒体１５０を持参し、ユーザ先にて書き換えを行うような運用態様も好ましい。
【００３４】
図４に、シーケンスを示す。なお、図４の各処理ブロックの主体は、特に言及がない限り、暗号化モジュールであるＴＰＭ１１０である。
まず、情報処理装置１００の起動が行われると、起動したファームウェアのハッシュ値を取り、保護制御レジスタ１１２に登録する（Ｓ１０１）。この処理は書き換え時でも通常稼働時でも毎回行う。
【００３５】
次に、復号化鍵２２がＴＰＭ１１０内のＮＶＲＡＭ１１１に登録されているか否かを確認する（Ｓ１０２）。登録されていない場合、鍵登録フェイズに移行する。登録されている場合は、Ｓ１０１で登録したファームウェアのＰＣＲビットを確認し、書き換え時ファームウェア１３２であるか、通常稼働時ファームウェア１３１であるかによって以降の処理を切り替える。前者であれば書き換え時フェイズに移行する。後者であれば通常稼働時フェイズに移行する。
【００３６】
＜鍵登録＞
鍵登録は、情報処理装置１００の初回起動時などに行う初期化処理である。鍵がまだ生成されていない場合、まず、暗号化鍵２１と復号化鍵２２のペア（暗号化鍵１１を暗号化するための鍵ペア）を先に生成する（Ｓ１０３）。このＮＶＲＡＭ１１１における復号化鍵２２の記憶領域は、一度だけしか書き込みができないワンタイムＲＯＭとすることが好ましい。ワンタイムＲＯＭを用いることで、一度しか初期設定時に生成される暗号鍵ペアの生成を許可しないことができる。その結果、安全性を高められる。
【００３７】
次に、暗号化鍵１１と復号化鍵１２のペア（設定データ１４１を暗号化するための鍵ペア）を生成する（Ｓ１０４）。続けて、Ｓ１０３で生成した暗号化鍵２１を用いて、Ｓ１０４で生成した暗号化鍵１１を暗号化し、暗号化された暗号化鍵１１ｃを可搬性記憶媒体１５０に記憶させる（Ｓ１０５）。
【００３８】
可搬性記憶媒体１５０は、工場でのオペレータやメーカーのエンジニアが情報処理装置１００から抜き取り、保管しておく。
初期化処理の場合、この後続けて、再起動等を経て、Ｓ１０６−Ｓ１０９の処理を行い、設定データ１４１の暗号化及び初回書き込みを行う。説明の都合上、先に、通常稼働時の処理について説明する。
【００３９】
＜通常稼働時＞
図４に示すように、通常稼働時ファームウェア１３１により形成される制御部１２１は、ＴＰＭ１１０から復号化鍵１２を取り出し（Ｓ１１０）、暗号化済み設定データ１４１ｃを復号化鍵１２で復号化し（Ｓ１１１）、復号の結果得られる設定データ１４１を用いて情報処理装置１００を動作させる（Ｓ１１２）。
【００４０】
情報処理装置１００は、通常稼働時では、可搬性記憶媒体１５０を使用しない。また、情報処理装置１００は、通常稼働時ファームウェア１３１で起動するが、通常稼働時ファームウェア１３１では復号化鍵２２を取り出すことができないように構成することが好ましい。一方で、通常稼働時ファームウェア１３１は、復号化鍵１２を取り出すことができるように構成する。ただし、読み込み専用とする。
【００４１】
そのため、通常稼働時ファームウェア１３１は、暗号化鍵１１がわからないので、新しい設定値の暗号化ができず「暗号化済み設定データ１４１ｃ」を生成してＮＶＲＡＭ１４０に記録することができない。また、たとえ記録したとしても、読み取り時に復号化鍵１２を用いて設定データ１４１を復号化した際に、データの検査で改ざんを検知することができる。
【００４２】
＜書き換え時＞
情報処理装置１００は、書き換え時では、書き換え時ファームウェア１３２により起動する。制御部１２１も書き換え時ファームウェア１３２により形成される。また、可搬性記憶媒体１５０を使用する。制御部１２１は、可搬性記憶媒体１５０から暗号化済みの暗号化鍵１１ｃを取り出し（Ｓ１０６）、ＴＰＭ１１０内に記憶されている復号化鍵２２を用いて復号化する（Ｓ１０７）。
【００４３】
次に、新しい設定データ１４１を、Ｓ１０７で復号化された暗号化鍵１１を用いて、暗号化する（Ｓ１０８）。暗号化済みの設定データ１４１ｃをＮＶＲＡＭ１４０に記憶させる（Ｓ１０９）。なお、新しい設定データ１４１は、オプションプログラム１５１により生成されるようにすることが好ましい。
【００４４】
＜署名による保護＞
書き換え時に、可搬性記憶媒体１５０内の暗号化済みの暗号化鍵１１ｃに付与された署名データを検証することで、書き換えをしようとする者の正当性を確保する。工場のオペレータやメーカのエンジニアは、署名鍵３１で署名した署名３３を暗号化済みの暗号化鍵１１ｃに付与する。
【００４５】
情報処理装置１００は、可搬性記憶媒体１５０が装置に挿入されると、署名鍵３１で暗号化された署名３３を署名検証鍵３２で復号化できるか否か、また、復号化されたデータと外部の認証サーバに記憶されているデータとが合致するか否かを確認する。実行時に署名の検証を行って、あっている場合に限り実行するようにすることで、データ改ざんのリスクをさらに低減させることができる。
【００４６】
＜作用効果等＞
以上に述べた本実施形態は、個体ごとに生成された暗号鍵／復号鍵のペアを用いて、書き込み条件を制限するものである。書き込み時に使用する暗号化鍵１１は可搬性記憶媒体１５０に保存、読み取りに使用するＴＰＭ１１０内に保持する。
【００４７】
書き込み時に使用する暗号化鍵１１は、そのまま保存すると暗号鍵として使えるため鍵情報が漏洩するとその鍵を使ってデータの書き換えが可能となってしまう。そのため、独立した別の暗号鍵ペアによって暗号化し、復号鍵（復号化鍵２２）のみをＴＰＭ１１０内に保持する。この鍵は、鍵生成時のファームウェアの情報が一致するときのみに読み取り可能なようにＴＰＭ１１０のＰＣＲ保護を設定する。
【００４８】
情報処理装置１００内の設定データ１４１を書き換える際には、暗号化済みの暗号化鍵１１ｃと書き換え用のプログラムであるオプションプログラム１５１を含んでいる可搬性記憶媒体１５０をＭＦＰに挿入し、書き換え時ファームウェア１３２で起動したときにのみ取り出しが可能なＴＰＭ１１０内の復号化鍵２２を使用して、書き換え用の「暗号化済みの暗号化鍵１１ｃ」を復号化する。復号化された暗号鍵を用いて、更新後のデータを暗号化しＮＶＲＡＭ１４０のデータ領域に書き込む。
【００４９】
データを使用する際には、別のＴＰＭ内復号化鍵１２（こちらはＰＣＲ保護なしのＲｅａｄ専用）を用いて復号化するため、通常起動時でも使用を可能とする。書き換えを行うためには、暗号化された暗号鍵と書き換えプログラムを持つ可搬性記憶媒体１５０が必要であり、かつ情報処理装置１００本体が書き換え時ファームウェア１３２で起動している必要がある。このような構成としたため、本実施形態は、情報処理装置１００の機密情報である設定データ１４１の書き換え、改ざんを防止することができる。
【００５０】
なお、上記実施形態では、改ざんを防止すべき情報を「設定データ」としたが、言うまでもなく、上記で説明例として用いたＭＦＰの設定データに限定されるものではなく、情報処理装置に記憶される改ざんを忌避したい情報一般とすることができる。
【００５１】
＜第２の実施形態＞
上述した第１の実施形態は、暗号化モジュールであるＴＰＭ１１０を有する構成である。しかしながら、プリンタなどの低機能なシステムにおいては、ＴＰＭ（暗号化モジュール）を搭載していない場合がある。そのような構成においても、データの機密を保つことを可能にする構成を、以下、第２の実施形態として開示する。
【００５２】
本実施形態の目的は、第１の実施形態と同じく、情報処理装置内のデータの改ざんの防止である。図７に、本実施形態の機能構成を示す。図７に示すように、第１の実施形態と異なり、本実施形態はＴＰＭ（暗号化モジュール）を有していない。
【００５３】
＜概略構成＞
図７に示すように、本実施形態の情報処理装置１００は、ＥＥＰＲＯＭ１６０を備える。ＥＥＰＲＯＭ１６０は、第１の実施形態のＴＰＭ１１０同様に、暗号化済み暗号化鍵２１ｃと暗号化済み復号化鍵２２ｃを記憶している。なお、復号化鍵１２は、ＲＯＭ１３０が記憶する。なお、本実施形態においては、ＥＥＰＲＯＭ１６０、ＲＯＭ１３０、ＮＶＲＡＭ１４０と、３種類の記憶手段を有するが、それぞれに機能的な違いはないため、１種類の記憶手段（ただし、不揮発性であることが好ましい）で記憶してもよい。
【００５４】
図７に示すように、可搬性記憶媒体１５０は、第１の実施形態と同様に、オプションプログラム１５１と、暗号化済み暗号化鍵１１ｃを記憶する。また、ファームウェア検証手段３０３を記憶する。
【００５５】
オプションプログラム１５１は、外部の鍵管理サーバ３０４と通信可能なソフトウェアプログラムであることが好ましい。オプションプログラム１５１は、ファームウェアの書き換え時に、鍵管理サーバ３０４と通信を行い、復号化鍵３０２を取得する。また、第１の実施形態と同様に、新しい設定データ１４１を生成する機能を備えることが好ましい。
【００５６】
ファームウェア検証手段３０３は、ファームウェアのバージョンやファームウェアに改ざんがないかを検証する手段であって、具体的には例えば、ＭＤ５ハッシュ値を生成し、記録と照合して検証する。そのような機能を提供するソフトウェアモジュールやライブラリなどで実現できる。検証対象の「ファームウェア」は通常稼働時ファームウェア１３１、書き換え時ファームウェア１３２の双方又は少なくとも一方を指す。
【００５７】
図８に、本実施形態の各データと鍵の関係を示す。なお、本実施形態では以下のように３対の鍵ペアを用いる。いずれも、非対称暗号方式における鍵ペアである。
・暗号化鍵１１  −  復号化鍵１２
・暗号化鍵２１  −  復号化鍵２２
・暗号化鍵３０１−  復号化鍵３０２
【００５８】
図７及び図８では、上記鍵ペアを暗号化した場合、符号に“ｃ”を付している。また、図９に暗号化鍵２１と復号化鍵２２の暗号化について示す。
・暗号化済み暗号化鍵１１ｃ
・暗号化済み暗号化鍵２１ｃ−暗号化済み復号化鍵２２ｃ
【００５９】
なお、復号化鍵１２、暗号化鍵３０１、復号化鍵３０２の暗号化については記載していないが、暗号化してもよい。
【００６０】
＜鍵登録＞
本実施形態は、第１の実施形態とは異なり、暗号化モジュールであるＴＰＭ１１０を備えていない。上述の３対の鍵ペアは、ＲＯＭ書き込み治具内で作成する。
【００６１】
このとき暗号化鍵１１は、現在の書き換え時ファームウェア１３２のファームウェアダイジェスト１３２１から算出される値をシードとして、暗号鍵化鍵２１で暗号化した状態でＲＯＭ書き込み治具内に保持する。さらに、暗号化鍵２１と復号化鍵２２も鍵管理サーバ３０４に保管されている暗号化鍵３０１を用いて暗号化し、ＥＥＰＲＯＭ１６０内に保存する（図９も参照）。
【００６２】
暗号アルゴリズムの中には、ＩＶ（Initial Vector）を指定できるものがあり、これにファームウェアのダイジェスト値を与えることで期待したファームウェアのときだけに暗号化鍵２１、復号化鍵２２を復号化鍵３０２で読み出すことができるようになる。
【００６３】
＜通常起動時のデータ使用＞
情報処理装置１００は、以下に述べるように、第１の実施形態と同じように動作する。
通常起動時では、可搬性記憶媒体１５０は使用しない。通常稼働時ファームウェア１３１で起動するが、復号化鍵２２は暗号化されているため見ることはできない。ＮＶＲＡＭ１４０の暗号化済み設定データ１４１ｃは、ＲＯＭ１３０内にある復号鍵１２を使用して参照ができる。
【００６４】
＜書き換え時＞
ＮＶＲＡＭ１４０のデータを書き換える場合には、暗号化鍵１１を使用する必要がある。暗号化鍵１１は、暗号化された状態で、オプションプログラム１５１内の暗号化済み暗号化鍵１１ｃとして、可搬性記憶媒体１５０に記憶されている。
【００６５】
暗号化済み暗号化鍵１１ｃの暗号化を解除してするためには、復号化鍵２２が必要となるが、これはＥＥＰＲＯＭ１６０内に暗号化鍵３０１を用いてファームウェアダイジェスト１３２１に基づいて暗号化されている。
【００６６】
そのため、ＥＥＰＲＯＭ１６０内に記録されている（暗号化鍵３０１によって）暗号化済みの復号化鍵２２ｃを解読するためには、書き込み時に使用したファームウェアでなければ書き換えができない。ファームウェアが異なる場合には復号化鍵２２は得られないので、結果、暗号化鍵１１も得られずＮＶＲＡＭ１４０の暗号済みの設定データ１４１ｃの暗号を解くことができない。したがって、ファームウェアが不正なときは、設定データ１４１を書き換えることはできない。
【００６７】
図１０に、本実施形態における書き換え処理の流れを示す。
図示のように、まず、ファームウェアを起動する（Ｓ２０１）。ファームウェアを書き換えモードで起動することとしてもよいし、書き換え専用のファームウェアを用意することとしてもよい。いずれの場合にせよ、起動後のファームウェアを指す概念として「書き換え時ファームウェア１３２」を用いる。
【００６８】
次に、可搬性記憶媒体１５０の挿入が行われる（Ｓ２０２）。すると、書き換え時ファームウェア１３２が、情報処理装置１００の通信機能などを利用して、鍵管理サーバ３０４にアクセスして、暗号化鍵３０１と復号化鍵３０２を取得する（Ｓ２０３）。
【００６９】
次に、ファームウェア検証手段３０３がファームウェアの検証を行う（Ｓ２０４）。これはソフトウェアプログラムとしてのファームウェアのハッシュ値（ファームウェアダイジェスト１３２１）を記録されているものと照合し、あっているか否かを調べることで検証するものである。ハッシュ値の記録は、可搬性記憶媒体１５０のオプションプログラム１５１が持っていることとしてもよいし、鍵管理サーバ３０４が持っていることとしてもよい。
【００７０】
次に、ＥＥＰＲＯＭ１６０に記憶されている暗号化済みの復号化鍵２２ｃの復号化を、復号化鍵３０２、及び、Ｓ２０４で行った検証結果（ファームウェアダイジェスト３１２１（ハッシュ値））に基づいて実行する（Ｓ２０５）。
【００７１】
次に、復号化後の復号化鍵２２を用いて、可搬性記憶媒体１５０に記憶されている暗号化済みの暗号化鍵１１ｃの復号化を行う（Ｓ２０６）。
【００７２】
次に、設定データ１４１の書き換えを行う（Ｓ２０７）。新しい設定は書き換え時ファームウェアが生成してもよいし、可搬性記憶媒体１５０が記憶したものをオプションプログラム１５０が提供してもよい。
【００７３】
次に、オプションプログラム１５１は、Ｓ２０６で復号化した暗号化鍵１１を用いて、更新した設定データ１４１を暗号化する（Ｓ２０８）。暗号化済みの設定データ１４１ｃはＮＶＲＡＭ１４０に記憶される。
【００７４】
次に、暗号化鍵２１を用いて暗号化鍵１１を暗号化する（Ｓ２０９）。暗号化鍵２１は、Ｓ２０５において復号化鍵２２ｃと同時に復号化しておく。暗号化済みの暗号化鍵１１ｃは可搬性記憶媒体１５０に記憶させておく。
【００７５】
次に、このファームウェアの書き換え処理に用いた暗号化鍵２１と復号化鍵２２を、暗号化鍵３０１とファームウェアダイジェスト１３２１とを用いて、暗号化する（Ｓ２１０）。このときの暗号化の特徴は、図９を参照しながら述べたものである。
次に、暗号化鍵３０１及び復号化鍵３０２は、安全のため、破棄する。
【００７６】
以上に説明したところによると、第１の実施形態では有している、ＴＰＭ１１０のような暗号化モジュールを使用しないで、本実施形態においても第１の実施形態と同様に機密を保ったまま、設定データの書き換えが可能になる。そして、改ざんも防止することができる。
【００７７】
＜第３の実施形態＞
上記第２の実施形態を変形して実施する形態を以下に述べる。
第２の実施形態においては、図１０のＳ２０４におけるファームウェアの検証を、ファームウェアそのもののハッシュ値を算出することで行っていた。これに対して本実施形態では、ファームウェアのバージョン情報を記載したファイルのハッシュ値を算出する。このハッシュ値は、図１０のＳ２０４以降、ファームウェアダイジェスト１３２１と同じように扱う。
【００７８】
より好適には、ＲＯＭ１３０に、ファームウェアを構成するモジュールのバージョン情報を記載したファイルを記憶させておく。そして、その、バージョン情報を記載したファイルの検証結果と、暗号化鍵３０１に基づいて、暗号化鍵２１及び復号化鍵２２を暗号化する。
【００７９】
このように構成するメリットは、ファームウェアの構成が同じ場合でバージョンアップしたファームウェアであっても、設定データ１４１の書き換えができるようになる点にある。
【符号の説明】
【００８０】
１００    情報処理装置
１１０    ＴＰＭ（Trusted Platform Module）
１２０    ＣＰＵ
１２１    制御部
１３０    ＲＯＭ
１３１    通常稼働時ファームウェア
１３２    書き換え時ファームウェア
１４０    ＮＶＲＡＭ
１４１    設定データ
１４１ｃ    暗号化済みの設定データ
１５０    可搬性記憶媒体
１５１    オプションプログラム
１１    暗号化鍵
１１ｃ    暗号化済みの暗号化鍵
１２    復号化鍵
２１    暗号化鍵
２２    復号化鍵
３１    署名鍵
３２    署名検証鍵
３３    署名
１６０    ＥＥＰＲＯＭ
３０１    暗号化鍵
３０２    複合化鍵
３０３    ファームウェア検証手段
３０４    鍵管理サーバ
１３２１    ファームウェアダイジェスト
【先行技術文献】
【特許文献】
【００８１】
【特許文献１】特開２０１３−０４１６２６号公報
【図１】
2016146618.tif 000003
【図２】
2016146618.tif 000004
【図３】
2016146618.tif 000005
【図４】
2016146618.tif 000006
【図５】
2016146618.tif 000007
【図６】
2016146618.tif 000008
【図７】
2016146618.tif 000009
【図８】
2016146618.tif 000010
【図９】
2016146618.tif 000011
【図１０】
2016146618.tif 000012