(57)【要約】      （修正有）【課題】完全性の検証機能を有さない暗号モジュールが生成した鍵・証明書を、より信頼性の高い鍵・証明書に更新することにより、暗号処理や通信の信頼性を確保する情報処理装置を提供する。【解決手段】暗号モジュールと、当該暗号モジュールが生成した鍵・証明書を格納する格納手段と、格納手段に格納された鍵・証明書が、完全性を検証しない暗号モジュールが生成した鍵・証明書かどうか判定する判定手段と、判定手段により完全性を検証しない暗号モジュールが生成した鍵・証明書と判定された鍵・証明書を更新する更新手段を備える。【選択図】図５
2018007215.tif 000002
【特許請求の範囲】
【請求項１】
暗号モジュールと、当該暗号モジュールが生成した鍵・証明書を格納する格納手段と、
前記格納手段に格納された鍵・証明書が、暗号モジュールの完全性を検証しない暗号モジュールが生成した鍵・証明書かどうか判定する判定手段と、
前記判定手段により完全性を検証しない暗号モジュールが生成した鍵・証明書と判定された鍵・証明書を更新する更新手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記暗号モジュールを実行して、通信、暗号処理を行う暗号モジュール制御手段を、更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
完全性を検証する前記暗号モジュールを使用するか否かを設定する設定手段を、更に有し、
前記設定手段が前記完全性を検証しない暗号モジュールを使用する設定から、前記完全性を検証する暗号モジュールを使用する設定に変更することに応じて、前記判定手段が前記判定を実施することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記完全性を検証する暗号モジュールは、該暗号モジュールが改ざんされていないことを検証する検証手段を有することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記更新手段は、
前記完全性を検証しない暗号モジュールが生成した鍵・証明書であると判定された鍵・証明書の更新方法をユーザに選択させる画面を表示する表示手段を有し、当該画面を介したユーザの選択に従って、当該鍵・証明書を更新することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記更新方法は、前記完全性を検証しない暗号モジュールが生成した鍵・証明書と判定された鍵・証明書を、完全性を検証する暗号モジュールを使用して再生成することを含むことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記更新方法は、前記完全性を検証しない暗号モジュールが生成した鍵・証明書であると判定された鍵・証明書の破棄を含むことを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記更新方法は、前記完全性を検証しない暗号モジュールが生成した鍵・証明書と判定された鍵・証明書をインストールすることを含むことを特徴とする請求項５に記載の情報処理装置。
【請求項９】
前記更新手段が前記鍵・証明書を更新した後、前記判定手段により完全性を検証しない暗号モジュールが生成した鍵・証明書と判定された鍵・証明書を破棄する破棄手段を、更に有することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記格納手段は、前記鍵・証明書の生成元を示す情報を格納しており、前記判定手段は、前記情報が前記情報処理装置で生成されたことを示す鍵・証明書に対して前記判定を実施することを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記更新手段による更新の前に、前記判定された鍵・証明書の使用が通信である場合、通信が切断されることをユーザに警告する警告手段を、更に有することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
暗号モジュールと、当該暗号モジュールが生成した鍵・証明書を記憶する記憶手段を有する情報処理装置を制御する制御方法であって、
前記記憶手段に格納された鍵・証明書が、完全性を検証しない暗号モジュールが生成した鍵・証明書かどうか判定する判定工程と、
前記判定工程で完全性を検証しない暗号モジュールが生成した鍵・証明書であると判定された鍵・証明書を更新する更新工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１３】
コンピュータを、請求項１乃至１１のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
暗号技術は多種多様な方式が開発されており、その特徴や効果も、それぞれ互いに異なる。このため、暗号アルゴリズムや、それらを独立したモジュールに実装した暗号モジュールの機能を適切に選択する必要がある。また、十分に普及し実績のある暗号アルゴリズムやそれらを実装した暗号モジュールであっても、脆弱性の発見や計算機の演算能力の向上などの影響により、常に危殆化し、攻撃を受けるリスクを孕んでいる。
【０００３】
信頼性の高い暗号モジュールの使用は情報処理や通信の安全性を高めるが、計算リソースや要求性能、通信相手が利用できる暗号方式の制約があるため、その利用に際しては、リスクと利便性とのバランスの中でユーザが選択できるのが望ましい。
【０００４】
特許文献１に記載の情報処理装置は、複数の暗号モジュールを搭載し、機能や性能、制約条件の評価情報に基づき、状況に応じて最適な暗号方式、或いは暗号モジュールを選択できる。暗号モジュールは改ざんなどの攻撃を受ける可能性もあるため、この情報処理装置は、暗号モジュールの利用にあたっては、改ざん検知を行うことで完全性を確認している。特許文献２には、特定の入力に対して期待値通りの結果を出力するかテスト（既知解テスト）することで暗号モジュールを検証する機能（以下、暗号モジュールの検証機能）が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−８９０４５号公報
【特許文献２】特開２０１５−９７０２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
情報処理装置が有する暗号モジュールが複数あり、そのうちの一つは検証機能を有する信頼性の高い暗号化を行う暗号モジュールであり、別の暗号モジュールは検証機能を有しない暗号モジュールである場合がある。上述のように、リスクと利便性とのバランスの中で、ユーザは複数の暗号モジュールのち何れの暗号モジュールを使用するかを設定により切り替えて用いることができる。複数の暗号モジュールのうち、現在情報処理装置で使用している暗号モジュールが完全性を検証しない暗号モジュール（検証機能を有さない暗号モジュール）である場合、その暗号モジュールは改ざんの攻撃を受けた可能性が懸念される。従って、その暗号モジュールを使って生成した鍵や証明書も信頼性が保証されていないことになる。ここで、情報処理装置において使用する暗号モジュールを、検証機能を有さない第１の暗号モジュールから検証機能を有する第２の暗号モジュール（例えば、FIPS140-2準拠モジュール）に変更した場合を考える。このような場合、検証機能を有さない第１の暗号モジュールで生成された鍵や証明書を継続して使用すると通信や暗号処理の信頼性を損なうことになり、検証機能を有する第２の暗号モジュールに期待される安全性が保障されなくなる。
【０００７】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００８】
本発明の目的は、完全性の検証機能を有さない暗号モジュールが生成した鍵・証明書を、より信頼性の高い鍵・証明書に更新することにより、暗号処理や通信の信頼性を確保する技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
暗号モジュールと、当該暗号モジュールが生成した鍵・証明書を格納する格納手段と、
前記格納手段に格納された鍵・証明書が、完全性を検証しない暗号モジュールが生成した鍵・証明書かどうか判定する判定手段と、
前記判定手段により完全性を検証しない暗号モジュールが生成した鍵・証明書と判定された鍵・証明書を更新する更新手段と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、完全性を検証しない暗号モジュールが生成した鍵・証明書を、より信頼性の高い鍵・証明書に更新することにより、暗号処理や通信の信頼性が確保できるという効果がある。
【００１１】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【００１２】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る情報処理システムの構成を説明する図。
【図２】実施形態に係る情報処理装置のソフトウェア構成を説明するブロック図。
【図３】実施形態に係る情報処理装置のＨＤＤの鍵・証明書の格納領域に格納される鍵・証明書に関する情報（証明書リスト）の一例を示す図。
【図４】実施形態に係る情報処理装置に暗号モジュールを設定するときの設定画面の一例を示す図。
【図５】実施形態に係る情報処理装置における、暗号モジュールの設定に応じた鍵・証明書の設定処理を説明するフローチャート。
【図６】図５のＳ５０６の鍵・証明書の更新処理を説明するフローチャート。
【図７】実施形態に係る情報処理装置の操作部に表示される鍵・証明書の更新設定画面の一例を示す図。
【図８】実施形態に係る情報処理装置が鍵・証明書の更新処理を実行することで、図３に例示する証明書リストが変更された結果の一例を示す図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１５】
図１は、本発明の実施形態に係る情報処理システムの構成を説明する図である。
【００１６】
この情報処理システムは、ネットワーク１０１に接続された情報処理装置１００（例えば、複合機（ＭＦＰ）等）とクライアント１０２とを備える。クライアント１０２はネットワーク１０１を介して、情報処理装置１００との間でデータの送受信を行い、各種の処理（例えば、画像形成処理）を行う。また情報処理装置１００とクライアント１０２とは、公衆回線１０３を介した通信を行ってもよい。情報処理装置１００は、ソフトウェアの機能として暗号モジュールを使用することができる。暗号モジュールは鍵や証明書を生成し、情報処理装置１００のデータや通信データの暗号・復号処理、署名の生成・検証などの機能を提供する。暗号モジュールが生成した鍵や証明書は、ＲＡＭ１１２やＨＤＤ１１４などの記憶装置に保存され、通信や暗号処理に使用される。尚、これら通信や暗号処理で使用できる鍵や証明書は、情報処理装置１００の外で生成されたものを取り込んで使用してもよい。尚、情報処理装置１００は、ＭＦＰ全体の構成を備えることは必須ではなく、ＭＦＰに組み込まれる制御装置として機能するものであってもよい。
【００１７】
情報処理装置１００は、装置全体を制御するコントロールユニット１１０、画像入力デバイスであるスキャナ１２８、画像出力デバイスであるプリンタ１２９、及びユーザインタフェースである操作部１１６を備える。
【００１８】
スキャナ１２８は、コントロールユニット１１０の制御により、原稿に形成された画像（原稿画像）を読み取り、読み取った原稿画像を表す画像データを生成する。スキャナ１２８は、生成した画像データをコントロールユニット１１０に送信する。プリンタ１２９は、コントロールユニット１１０の制御により画像形成（印刷）処理を行う。操作部１１６は、各種のキーボタン、タッチパネル等の入力装置、及び液晶ディスプレイ等の表示装置を備えた入出力装置である。操作部１１６は、キーボタンやタッチパネルへのユーザの操作に応じた指示をコントロールユニット１１０に送信する。また操作部１１６は、コントロールユニット１１０の制御により表示部に画像を表示する。
【００１９】
コントロールユニット１１０は、システムバス１２２及び画像バス１２３の２つのバスを備える。システムバス１２２と画像バス１２３とは、バスインタフェース１２０を介して相互に通信可能である。コントロールユニット１１０は、システムバス１２２にＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１２、及びＲＯＭ１１３（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を備える。ＣＰＵ１１１は、ＲＯＭ１１３に記憶されたコンピュータプログラムをＲＡＭ１１２に展開して実行することで、情報処理装置１００の動作を制御する。ＲＡＭ１１２は、作業領域として用いられる他に、画像データや操作部１１６から受け付けたデータを一時的に格納する格納領域を有する。
【００２０】
システムバス１２２は、更にＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１１４、操作部Ｉ／Ｆ１１５、ネットワークＩ／Ｆ１１７、モデム１１８、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１９、及びタイマ１２１を備える。システムバス１２２に接続される各構成要素は、システムバス１２２を介して相互に通信可能である。
【００２１】
ＨＤＤ１１４は、暗号モジュール格納領域、暗号モジュール設定の保存領域、鍵証明書の格納領域、証明書情報の保存領域等の格納領域が設けられる不揮発性の記憶装置である。暗号モジュール格納領域は、情報処理装置１００で使用する暗号モジュールを格納する。この暗号モジュール格納領域には、複数の暗号モジュールを格納することができる。暗号モジュール設定の保存領域は、情報処理装置１００が常時使用する暗号モジュールの設定情報を格納する。鍵証明書の格納領域は、通信や暗号処理に使用する鍵や証明書を格納する。ＨＤＤ１１４の鍵証明書の格納領域には、格納している鍵証明書に関する情報、例えば情報処理装置１００内の検証機能を有さない暗号モジュールで生成されたか、検証機能を有する暗号モジュールで生成されたか、等の管理情報が格納される。ここで、検証機能とは、暗号モジュールが改ざんされていないかを、暗号モジュール自体が確認する機能である。ＨＤＤ１１４は、不揮発性で大容量の記憶が可能な装置であれば、フラッシュメモリ等の他の記憶装置で構成されてもよい。
【００２２】
操作部Ｉ／Ｆ１１５は、操作部１１６との間のインタフェースを制御する。操作部Ｉ／Ｆ１１５は、操作部１１６から送信される指示を取得してＣＰＵ１１１へ送信する。また、操作部Ｉ／Ｆ１１５は、操作部１１６の表示部に表示される画像を表すデータを送信する。ネットワークＩ／Ｆ１１７は、ネットワーク１０１を介した他の情報処理装置との間の通信制御を行う。本実施形態では、ネットワークＩ／Ｆ１１７は、ネットワーク１０１を介したクライアント１０２との間の通信制御を行う。モデム１１８は、公衆回線１０３を介した他の情報処理装置との間の通信制御を行う。モデム１１８によりファクシミリ通信が可能である。また本実施形態では、モデム１１８は、ネットワーク１０１を介したクライアント１０２との間の通信制御を行うこともできる。ＳＲＡＭ１１９は、高速動作可能な揮発性の記録媒体であり、各種プログラムや各種データを格納する。タイマ１２１は、例えばＲＴＣ（Ｒｅａｌ Ｔｉｍｅ Ｃｌｏｃｋ）であり、コントロールユニット１１０に電力が供給されていないときでも日付及び時刻を計時する。
【００２３】
画像バス１２３は、ＲＩＰ（Ｒａｓｔｅｒ Ｉｍａｇｅ Ｐｒｏｃｅｓｓｏｒ）部１２４、デバイスＩ／Ｆ１２５、スキャナ画像処理部１２６、プリンタ画像処理部１２７を備える。画像バス１２３に接続される各構成要素は、画像バス１２３を介して相互に通信可能である。デバイスＩ／Ｆ１２５は、スキャナ１２８及びプリンタ１２９に接続される。デバイスＩ／Ｆ１２５は、ＣＰＵ１１１から制御信号を取得して、スキャナ１２８及びプリンタ１２９に送信する。これによりスキャナ１２８及びプリンタ１２９は、制御信号に応じた動作を行う。またデバイスＩ／Ｆ１２５は、スキャナ１２８から取得した画像データをコントロールユニット１１０内に供給する。ＲＩＰ部１２４は、例えば、クライアント１０２から受け取った画像記述言語で記述された画像データをビットマップイメージデータに変換する。スキャナ画像処理部１２６は、スキャナ１２８から取得した画像データに対する補正、加工、又は編集等の各種画像処理を行う。プリンタ画像処理部１２７は、プリンタ１２９により記録材に形成される画像を表す画像データに補正、解像度変換、又はハーフトーン処理等の各種画像処理を行う。
【００２４】
次にクライアント１０２の構成を説明する。クライアント１０２は、不図示のＣＰＵ、ＲＯＭ、ＲＡＭを備える。ＣＰＵは、ＲＯＭから読み出したコンピュータプログラムを、ＲＡＭの作業領域を用いて実行することで、クライアント１０２の動作を制御する。クライアント１０２は、この他にプリンタドライバ１３１、入力部１３２、表示部１３３、及び通信部１３４を備える。
【００２５】
通信部１３４は、ネットワーク１０１を介した他の情報処理装置との通信制御を行う。本実施形態では、通信部１３４は、ネットワーク１０１を介して、情報処理装置１００との間で通信を行う。プリンタドライバ１３１は、各種画像形成条件を設定する印刷ジョブを生成する。こうして生成された印刷ジョブは、通信部１３４を介して情報処理装置１００に送信される。入力部１３２は、例えば、ポインティングデバイス、キーボード等を含む入力デバイスである。入力部１３２からから入力される指示等はＣＰＵ（不図示）へ送られる。表示部１３３は、例えば、液晶ディスプレイ等の表示装置であり、ＣＰＵ（不図示）の制御により各種画像を表示する。
【００２６】
図２は、実施形態に係る情報処理装置１００のソフトウェア構成を説明するブロック図である。情報処理装置１００は、ユーザインタフェース部２０１（以下、ＵＩ部）、暗号モジュール設定部２０２、暗号モジュールの設定保持部２０３、暗号モジュール制御部２０４、鍵・証明書の管理情報保持部２０５を有する。情報処理装置１００は、更に、暗号モジュール部２０６、鍵証明書データベース２０７を備える。
【００２７】
ＵＩ部２０１は、操作部１１６を介してユーザからの要求を受け付け、また操作画面を操作部１１６に表示する。暗号モジュール設定部２０２は、情報処理装置１００が使用する暗号モジュールの選択に関する設定（暗号モジュールの選択設定）を、暗号モジュールの設定保持部２０３に保存する。暗号モジュールの設定保持部２０３は、暗号モジュールの実行や検証に関する設定を保持する。暗号モジュール制御部２０４は、暗号モジュールの設定保持部２０３に保持された暗号モジュールの設定に基づいて、暗号モジュール部２０６を検証し実行する所定の機能部である。
【００２８】
暗号モジュール設定部２０２は、ＵＩ部２０１からの指示により情報処理装置１００で使用する暗号モジュールを決定し、使用する暗号モジュールを示す設定情報を暗号モジュールの設定保持部２０３に保存する。暗号モジュール制御部２０４は、情報処理装置１００の起動時に暗号モジュールの設定保持部２０３に保持された暗号モジュールの設定に基づき、暗号モジュール部２０６に暗号モジュールの実行を指示する。暗号モジュール部２０６は、ＨＤＤ１１４の暗号モジュール格納領域に格納されている複数の暗号モジュールの内のいずれかを、ＲＡＭ１１２やＳＲＡＭ１１９に展開して、その展開した暗号モジュールを実行させることができる。
【００２９】
情報処理装置１００はその起動時、ＨＤＤ１１４に記憶している暗号モジュールをＲＡＭ１１２やＳＲＡＭ１１９に展開する。このとき使用する暗号モジュールの設定が、検証機能を有する暗号モジュールである場合、暗号モジュール制御部２０４は、その暗号モジュールを展開する前に、ＨＤＤ１１４の暗号モジュールが改ざんされていないかを検証する。即ち、使用する暗号モジュールとして検証機能を有する暗号モジュールが設定されている場合には、当該暗号モジュールは情報処理装置１００の起動時に、自身が改ざんされていないかを検証する検証処理を実行する。また、改ざん検証済みの暗号モジュールをＨＤＤ１１４からＲＡＭ１１２やＳＲＡＭ１１９に展開した後は、暗号処理が期待通りの結果を出力するかを既知解テストにより検証する。既知解テストとは、暗号モジュールに対する特定の入力に対して期待値通りの結果を出力するか確認するテストである。そしてその既知解テストによる検証の結果、問題ないことを確認すると、その暗号モジュールの実行を許可する。一方、その検証結果が失敗の場合は、その暗号モジュールが完全性を維持できていないと判断し、その暗号モジュールの実行を禁止する。その場合、情報処理装置１００は暗号処理を実行できなくなり、暗号処理を含む通信等の機能は全て動作できなくなる。本実施形態において完全性とは、暗号モジュールが改ざんされていないことが確認されていること、又は、所定の入力に対して所定の結果を出力することが確認されていることの少なくとも何れかを意味する。
【００３０】
暗号モジュール設定部２０２は、使用する暗号モジュールをユーザによる設定に応じて決定することができる。例えばユーザは、検証機能を有するFIPS暗号モジュールと、検証機能を有さないnon-FIPS暗号モジュールのうち何れの暗号モジュールを使用するかを、暗号モジュール設定部２０２を介して情報処理装置１００に設定することができる。ここでFIPS暗号モジュールとは例えば、FIPS140-2に準拠するモジュールである。以下、便宜のため、使用する暗号モジュールとして検証機能を有するFIPS暗号モジュールが設定されるモードをFIPSモードと呼ぶ。また、使用する暗号モジュールとして検証機能を有さないnon-FIPS暗号モジュールが設定されるモードをnon-FIPSモードと呼ぶ。以下では、FIPS暗号化モジュールとnon-FIPS暗号化モジュールを切り替えて使用する例について説明するが、本発明はこれに限らない。検証機能を有する暗号化モジュールと、検証機能を有さない暗号モジュールを切り替えて使用可能なものであればよい。或いは、一つの暗号モジュールにおいて、検証機能の有効と無効を切り替えられるものであってもよい。この場合、検証機能が有効化された状態の暗号モジュールが検証機能を有する暗号モジュールに対応し、検証機能が無効化された状態の暗号モジュールが検証機能を有さない暗号モジュールに対応する。
【００３１】
ユーザは、信頼性の高い鍵及び証明書を用いて暗号化処理を実行させたい場合には、FIPSモードを有効にするように設定することができる。しかしながら、検証機能の実行には時間を要する。情報処理装置１００の起動時間を短縮させたいユーザは、FIPSモードを無効にして、non-FIPSモードで動作するように設定することができる。また、FIPS暗号モジュールはセキュリティ強度を担保するために、使用可能な暗号化アルゴリズムの種類を制限し、暗号化強度の高い暗号化アルゴリズムしかサポートしない。情報処理装置１００において動作する、あるアプリケーションが、FIPS暗号モジュールのサポートしない暗号化アルゴリズムしか使用できないアプリケーションである場合、FIPSモードでは当該アプリケーションは動作できない。同様に、情報処理装置１００と通信する通信相手の装置が使用する暗号化アルゴリズムが、FIPS暗号モジュールにおいてサポートされていない場合がある。このような場合、FIPSモードを有効化すると、アプリケーションが使用できなくなったり、通信相手と通信できなくなったりする場合がある。このような場合、ユーザは、FIPSモードを無効に設定することができる。検証機能を無効に設定すると、暗号モジュールとして検証機能を有さない暗号モジュール（non-FIPS暗号モジュール）が選択される。検証機能を有さない暗号モジュールが、上述のアプリケーションや通信相手が用いる暗号化アルゴリズムをサポートしていれば、アプリケーションを動作させたり、通信相手と通信を行ったりすることができる。
【００３２】
図２の説明に戻る。鍵・証明書データベース２０７は、暗号モジュール部２０６の暗号モジュールが生成した鍵・証明書や、情報処理装置１００の外部で生成してインストールした鍵・証明書を一元管理し、安全に保存し、また検索できるようにしている。暗号モジュール制御部２０４が新しい鍵・証明書を登録し、登録された鍵・証明書を利用する場合は、必ず、この鍵・証明書データベース２０７を介してなされる。鍵・証明書の管理情報保持部２０５は、鍵・証明書データベース２０７で管理している鍵・証明書に関する情報（証明書リスト）を保持している。暗号モジュール制御部２０４は、鍵・証明書データベース２０７の鍵・証明書に紐付けて証明書リストの情報を鍵・証明書の管理情報保持部２０５から取得し、また証明書リストの情報を更新することができる。
【００３３】
図３は、実施形態に係る情報処理装置１００のＨＤＤ１１４の鍵・証明書の格納領域に格納される鍵・証明書に関する情報（証明書リスト３００）の一例を示す図である。
【００３４】
この証明書リスト３００は、鍵・証明書の格納領域に、鍵・証明書が名前付きで格納されていることを例示する。「鍵・証明書の使用先」欄３０１には、その鍵・証明書の使用先が記録される。この「鍵・証明書の使用先」欄３０１の内容は、ユーザの設定によって変更可能である。「生成元」欄３０２には、その鍵・証明書が情報処理装置１００内の暗号モジュールで生成されたものであれば「内部」が記録され、外部で生成され、それをインストールしたものであれば「外部」が記録される。また情報処理装置１００に最初から組み込まれているものであれば「−」が記録される。「完全性検証済み暗号モジュールで生成」欄３０３には、暗号モジュールの検証機能で検証済みの暗号モジュールが生成した鍵・証明書であれば「Ｙｅｓ」が記録され、検証済みの暗号モジュールが生成した鍵・証明書ではない場合は「Ｎｏ」が記録される。例えば、FIPSモード中にFIPS暗号モジュールが生成した鍵・証明書であれば、「完全性検証済み暗号モジュールで生成」欄３０３に「Ｙｅｓ」が記録される。また、例えば、non-FIPSモード中にnon-FIPS暗号モジュールが生成した鍵・証明書であれば、「完全性検証済み暗号モジュールで生成」欄３０３に「Ｎｏ」が記録される。これら欄３０２，３０３には、暗号モジュールを使って鍵・証明書を生成した際や、情報処理装置１００の外部から鍵・証明書をインストールした際には必ず、それに応じた値が記録される。
【００３５】
図４は、実施形態に係る情報処理装置１００に暗号モジュールを設定するときの設定画面の一例を示す図である。
【００３６】
本実施形態では、これら画面は情報処理装置１００の操作部１１６又はクライアント１０２の表示部１３３に、暗号モジュールの設定時に表示される。暗号モジュールの設定時には、図４（Ａ）の暗号モジュール設定メニュー画面４０１と図４（Ｂ）の暗号モジュール設定画面４１０が表示される。
【００３７】
暗号モジュール設定メニュー画面４０１は、暗号モジュールの設定を行う際に表示される画面である。暗号モジュール設定メニュー画面４０１の「暗号モジュールの設定」４０２が選択されることで、暗号モジュールの設定が可能になり、暗号モジュール設定画面４１０が表示される。暗号モジュールの設定画面４１０は、検証機能を有する暗号モジュールの使用の有効、或いは無効を設定するための画面である。暗号モジュール設定画面４１０は、検証機能を有する暗号モジュールの使用を有効にするラジオボタン４１１、検証機能を有する暗号モジュールの使用を無効にするラジオボタン４１２を含む。更に、この画面の設定を確定するＯＫボタン４１３、及びこの画面の設定を無効にするキャンセルボタン４１４を含む。
【００３８】
ユーザが暗号モジュール設定画面４１０のラジオボタン４１１（有効）を選択してＯＫボタン４１３を押下することで、情報処理装置１００における検証機能を有する暗号モジュールを使用する設定が有効になる。情報処理装置１００は、ＯＫボタン４１３が押下されると、暗号モジュール設定部２０２を介しＨＤＤ１１４に暗号モジュールの設定情報を格納する。
【００３９】
ユーザが使用する暗号モジュールを変更すると、ＣＰＵ１１１は後述する鍵・証明書の設定処理を必ず実行し、その変更された設定に応じて、情報処理装置１００の保持する鍵・証明書の更新処理を行う。
【００４０】
図５は、実施形態に係る情報処理装置における、暗号モジュールの設定に応じた鍵・証明書の設定処理を説明するフローチャートである。この設定処理は、暗号モジュールの設定が変更された場合に行われる。尚、このフローチャートで示す処理は、ＲＯＭ１１３或いはＨＤＤ１１４からＲＡＭ１１２に展開されたプログラムをＣＰＵ１１１が実行することにより達成される。
【００４１】
先ずＳ５０１でＣＰＵ１１１はＨＤＤ１１４から、検証機能を有する暗号モジュールを使用するかどうかの設定を取得する。この設定は、前述の図４（Ｂ）の画面を介して設定されたものである。次にＳ５０２に進みＣＰＵ１１１は、検証機能を有する暗号モジュールの使用が有効に設定されているか否かを判定する。ここで検証機能を有する暗号モジュールの使用が無効であると判定するとＣＰＵ１１１は、この鍵・証明書の設定処理を終了する。
【００４２】
一方、Ｓ５０２でＣＰＵ１１１が、検証機能を有する暗号モジュールの使用が有効であると判定するとＳ５０３に処理を進め、ＣＰＵ１１１は、鍵・証明書の格納領域に格納されている証明書リストを参照して、鍵・証明書を探索する。そしてＳ５０４に進みＣＰＵ１１１は、図３の証明書リスト３００の「生成元」欄３０２を参照し、その欄３０２が「内部」、即ち、情報処理装置１００の内部で生成された鍵・証明書を探索する。Ｓ５０４でＣＰＵ１１１は、情報処理装置１００の内部で生成された鍵・証明書を検出するとＳ５０５に処理を進め、ＣＰＵ１１１は、その証明書リスト３００の「完全性検証済み暗号モジュールで生成」欄３０３を参照する。そして、その鍵・証明書が、完全性を検証済みの暗号モジュールで生成されたものか否かを判定する。ここで鍵・証明書が完全性を検証済みの暗号モジュールで生成された、即ち、欄３０３が「Ｙｅｓ」と判定すると、その鍵・証明書を更新する必要が無いため、Ｓ５０３以降の証明書リスト３００の探索を繰り返し行う。完全性検証済みの暗号モジュールとは、即ち、検証機能を有する暗号モジュールである。検証機能を有する暗号モジュールは、起動時に検証処理を実行するため、完全性が検証済の状態で、鍵や証明書の生成を行う。
【００４３】
一方、鍵・証明書が完全性検証済みの暗号モジュールで生成されたものではない、即ち、欄３０３が「Ｎｏ」と判定するとＳ５０６に進み、ＣＰＵ１１１は、図６を参照して後述する鍵・証明書の更新処理を実行する。完全性検証済みの暗号モジュールで生成されたものではない鍵・証明書とは、即ち、検証機能を有していない暗号モジュールで生成された鍵や証明書である。検証機能を有していない暗号モジュールとは、即ち、自身の完全性を検証しない暗号モジュールである。
【００４４】
図６は、図５のＳ５０６の鍵・証明書の更新処理を説明するフローチャートである。この処理は、図５の鍵・証明書の設定処理において証明書リスト３００を探索し、情報処理装置１００の内部で生成された鍵・証明書であり、且つ、検証機能を有さない暗号モジュールで生成された鍵・証明書を検出した場合に実行される。
【００４５】
図６の処理の流れを説明する前に、図７を参照して、鍵・証明書の更新に関する設定を行う処理を図７を参照して説明する。
【００４６】
図７は、実施形態に係る情報処理装置１００の操作部１１６に表示される鍵・証明書の更新設定画面の一例を示す図である。
【００４７】
図７（Ａ）の更新設定画面７００は、完全性を検証しない暗号モジュールが生成した鍵・証明書（Ｓｅｌｆ−Ｋｅｙ１）を継続して使用しないことを推奨し、それを更新するための選択肢を提示する。ユーザは、ラジオボタン７０１〜７０４のいずれかを選択することで、その鍵・証明書の更新方法を決定することができる。図７（Ａ）では、ボタン７０１の「鍵・証明書を再生成する（推奨）」が選択されている。
【００４８】
図７（Ｂ）の更新設定画面７１０は、その鍵・証明書（Ｓｅｌｆ−Ｋｅｙ１）が通信用に設定されており、且つ、図７（Ａ）でボタン７０４以外が選択されて、その鍵・証明書を継続して使用しないように設定されたときに表示される。ここでは、その鍵・証明書を通信に使用できないように、通信が切断されることを警告している。
【００４９】
図７（Ｃ）の更新設定画面７２０は、図７（Ａ）でボタン７０１が選択されて、その鍵・証明書（Ｓｅｌｆ−Ｋｅｙ１）を、完全性が検証済みの暗号モジュールで再生成することをユーザに確認する画面である。
【００５０】
図７（Ｄ）の更新設定画面７３０は、図７（Ａ）でボタン７０２が選択されて、その鍵・証明書（Ｓｅｌｆ−Ｋｅｙ１）の代わりに、外部で生成した鍵・証明書をインストールすることを選択した場合にアップロードするファイルを指定する画面である。
【００５１】
図７（Ｅ）の更新設定画面７４０は、図７（Ａ）でボタン７０３が選択されて、その鍵・証明書（Ｓｅｌｆ−Ｋｅｙ１）の使用先が決定されており、その鍵・証明書を削除した場合は「Ｄｅｆａｕｌｔ Ｋｅｙ」が設定されることを警告する画面である。
【００５２】
先ずＳ６０１で情報処理装置１００のＣＰＵ１１１は、鍵・証明書の更新処理において操作部１１６に図７（Ａ）に例示する更新設定画面７００を表示する。ユーザは、操作部１１６に表示された更新設定画面でラジオボタン７０１〜７０４のいずれかを選択し、その鍵・証明書の更新の方法を選択する。操作部１１６はユーザが選択した更新方法に関する情報をコントロールユニット１１０に送信する。これによりＣＰＵ１１１は、その鍵・証明書の更新方法を決定する。尚、鍵・証明書の更新処理は、後述する全ての選択肢を備える必要はなく、情報処理装置の機能に応じて部分的に備えることもできる。
【００５３】
次にＳ６０２でＣＰＵ１１１は、ユーザが、図７（Ａ）の更新設定画面７００のラジオボタン７０１〜７０４の内、ボタン７０４の「継続使用する」を選択したかどうか判定する。「継続使用する」を選択したときは、選択した処理は継続であるため、その鍵・証明書に関する更新処理を実行せずに、元の処理に戻る。
【００５４】
一方、Ｓ６０２でユーザが、図７（Ａ）の更新設定画面７００のラジオボタン７０１の「鍵証明書を再生成する」を選択した場合は、選択した更新方法は継続使用でないためＳ６０３に進む。Ｓ６０３でＣＰＵ１１１は、証明書リスト３００から、その鍵・証明書の使用先の情報を取得し、ＲＡＭ１１２或いはＳＲＡＭ１１９に保持する。次にＳ６０４に進みＣＰＵ１１１は、その鍵・証明書の使用先が通信用かどうか判定し、そうであればＳ６０５に進み、図７（Ｂ）の設定画面７１０を表示し、通信が切断することを警告する。次にＳ６０６に進みＣＰＵ１１１は、ユーザがキャンセルボタン７１２を押下したと判定するとＳ６０１に進み、その鍵・証明書の更新処理の最初の処理に戻る。一方、Ｓ６０６でユーザがＯＫボタン７１１を押下したと判定したときはＳ６０７に進み、そのまま処理を継続する。
【００５５】
Ｓ６０７では、ユーザが選択した更新方法は「再生成」であるためＳ６０８に進み、図７（Ｃ）で例示する設定画面７２０を表示し、新しい鍵・証明書の生成を行うことをユーザに確認する。ここでユーザが設定画面７２０のキャンセルボタン７２２を押下したと判定すると、Ｓ６０１の鍵・証明書の更新処理の最初の処理に戻る。一方、ユーザが設定画面７２０のＯＫボタン７２１を押下したと判定するとＳ６０９に進み、ＣＰＵ１１１は、完全性が検証済みの暗号モジュールを用いて新しい鍵・証明書を生成し、鍵証明書データベース２０７を通してＨＤＤ１１４に保存する。そしてＳ６１３に進みＣＰＵ１１１は、ＲＡＭ１１２或いはＳＲＡＭ１１９に保持された、新たな鍵・証明書の名前と使用先の情報を、新しい鍵・証明書の名前、使用先として証明書リスト３００に登録する。そしてＳ６１４からＳ６１９に進み、元の古い鍵・証明書を削除し、鍵・証明書の更新処理から鍵・証明書設定処理に戻る。
【００５６】
図８は、実施形態に係る情報処理装置１００が鍵・証明書の更新処理を実行することで、図３に例示する証明書リスト３００が変更された結果の一例を示す図である。
【００５７】
図８（Ａ）は、通信用に設定された鍵・証明書の「Ｓｅｌｆ−Ｋｅｙ１」を再生成した場合を示す。図８（Ａ）の証明書リスト８０１のように「完全性検証済み暗号モジュールで生成」の欄３０３が「Ｙｅｓ」に更新される。このようにして鍵・証明書の設定処理、更新処理が完了する。通信用に設定された新しい鍵・証明書は、情報処理装置１００及びクライアント１０２の通信時に使用される。
【００５８】
以上のような処理では、暗号処理や通信に用いる鍵・証明書が、完全性を検証済み暗号モジュールで再生成した信頼性の高い鍵・証明書に自動的に更新されるため、より信頼性の高い暗号処理や通信を実現できる。また、信頼性が保証されていない鍵・証明書は削除されるため、人為的ミスにより利用設定してしまうことを未然に防ぐことができる。
【００５９】
またユーザが、図７（Ａ）で例示する更新設定画面７００の選択肢の内、ラジオボタン７０２の「インストールして交換する」を選択した場合、前述の鍵・証明書の更新処理の通信断確認までの処理（Ｓ６０１〜Ｓ６０７）と同等の処理を実行する。
【００６０】
ここでは、ユーザが選択した処理は「インストールして交換」であるためＳ６０７からＳ６１０に進みＣＰＵ１１１は、図７（Ｄ）に例示する設定画面７３０を表示する。この画面７３０で、ユーザが「鍵証明書ファイルを選択」ボタン７３１を押下すると、インストールの対象である新しい鍵・証明書のファイルを選択することができる。ここで選択する鍵・証明書のファイルは、予め情報処理装置１００のＨＤＤ１１４に格納されているものを選択する。また或いはユーザが、クライアント１０２などの情報処理装置１００と通信可能な装置で画面を表示し操作する場合は、そのクライアント１０２が保持する鍵・証明書を選択してもよい。設定画面７３０でユーザがキャンセルボタン７３３を押下した場合はＳ６１１からＳ６０１に戻る。一方、Ｓ６１１でユーザが設定画面７３０のＯＫボタン７３２を押下したと判定するとＳ６１２に進みＣＰＵ１１１は、選択された新しい鍵・証明書インストールして鍵証明書データベース２０７に登録する。そしてＣＰＵ１１１はＳ６１３で、ＲＡＭ１１２或いはＳＲＡＭ１１９に保持された、その鍵・証明書の使用先の情報を、新しい鍵・証明書の使用先として証明書リスト３００に登録する。そしてＳ６１４からＳ６１９に進みＣＰＵ１１１は、その元の古い鍵・証明書を削除して、この処理を終了する。
【００６１】
図８（Ｂ）の証明書リスト８０２は、上述の鍵・証明書をインストールする更新処理を実行することにより、証明書リストが変更された結果の例示図である。
【００６２】
図８（Ｂ）の証明書リスト８０２は、図３の通信用に設定された鍵・証明書の「Ｓｅｌｆ−Ｋｅｙ１」に対しインストールを選択した場合を示す。ここでは図３の「Ｓｅｌｆ−Ｋｅｙ１」が削除され、新しく「Ｄｅｖｉｃｅ＿Ｋｅｙ２」８１０が追加され、その鍵・証明書の使用先の欄３０１が通信用（ＳＳＬ）に設定されている。このようにして鍵・証明書の設定処理、更新処理が完了する。尚、こうして通信用に設定された「Ｄｅｖｉｃｅ＿Ｋｅｙ２」は、情報処理装置１００及びクライアント１０２の通信時に使用される。
【００６３】
以上説明した処理では、暗号処理や通信に用いる鍵・証明書が、ユーザが意識的に用意した鍵・証明書に更新されるため、完全性を検証しない暗号モジュールで生成された信頼性が保証されていない鍵・証明書が継続して通信に使用されるのを防止できる。これにより、より信頼性の高い鍵・証明書の使用をユーザが選択できるようになる。また信頼性が保証されていない鍵・証明書は削除されるため、人為的ミスにより、使用するように設定されるのを未然に防ぐことができる。
【００６４】
またユーザが、図７（Ａ）で例示する更新設定画面７００でラジオボタン７０３の「破棄する」を選択した場合、上述の処理（Ｓ６０１〜Ｓ６０６）と同等の処理を実行する。ここでは、選択された処理は破棄であるためＳ６０７，Ｓ６１０，Ｓ６１４，Ｓ６１５に進みＣＰＵ１１１は、Ｓ６０３でＲＡＭ１１２或いはＳＲＡＭ１１９に保持された、その鍵・証明書の使用先が設定されているか否か判定する。ここで使用先が設定されていると判定するとＳ６１６に進みＣＰＵ１１１は、図７（Ｅ）に例示する更新設定画面７４０を表示し、「Ｄｅｆａｕｌｔ Ｋｅｙ」が適用されることをユーザに確認する。この「Ｄｅｆａｕｌｔ Ｋｅｙ」は、情報処理装置１００に予め組み込まれた鍵証明書である。
【００６５】
そして、Ｓ６１７でＣＰＵ１１１は、ユーザが設定画面７４０のキャンセルボタン７４２を押下したと判定するとＳ６０１に進む。一方、Ｓ６１７でユーザが設定画面７４０のＯＫボタン７４１を押下したと判定するとＳ６１８に進む。Ｓ６１８でＣＰＵ１１１は、ＲＡＭ１１２或いはＳＲＡＭ１１９に保持された、その鍵・証明書の使用先の情報を、「Ｄｅｆａｕｌｔ Ｋｅｙ」の使用先として証明書リスト３００に登録する。そしてＳ６１９に進みＣＰＵ１１１は、元の鍵・証明書を削除して、この処理を終了する。
【００６６】
図８（Ｃ）の証明書リスト８０３は、「破棄する」を選択した更新処理を実行することで、図３に例示する証明書リスト３００が変更された結果の例示図である。
【００６７】
ここでは図３の通信用に設定された鍵・証明書の「Ｓｅｌｆ−Ｋｅｙ１」が破棄されて、「Ｄｅｆａｕｌｔ Ｋｅｙ」の使用先が通信用（ＳＳＬ）に設定される。このようにして鍵・証明書の設定処理、更新処理が完了する。ここで通信用に設定された「Ｓｅｌｆ−Ｋｅｙ１」は、情報処理装置１００及びクライアント１０２の通信時に使用される。
【００６８】
以上説明したように実施形態によれば、暗号処理や通信に用いる鍵・証明書が、情報処理装置に予め登録された鍵・証明書に更新される。このため、完全性を検証しない暗号モジュールで生成された、信頼性が保証されていない鍵・証明書が継続して通信に使用されるのを防止できる。
【００６９】
また鍵・証明書を破棄することにより、暗号化通信できなくなる事態も回避できる。更に、信頼性が保証されていない鍵・証明書は削除されるため、人為的ミスにより、その鍵・証明書を使用する設定してしまうことを未然に防ぐことができる。
【００７０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７１】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００７２】
１００…情報処理装置、１０１…ネットワーク、１０２…クライアント、１１０…コントロールユニット、１１１…ＣＰＵ、１１２…ＲＡＭ、１１３…ＲＯＭ、１１４…ＨＤＤ、１１７…ネットワークＩ／Ｆ
【図１】
2018007215.tif 000003
【図２】
2018007215.tif 000004
【図３】
2018007215.tif 000005
【図４】
2018007215.tif 000006
【図５】
2018007215.tif 000007
【図６】
2018007215.tif 000008
【図７】
2018007215.tif 000009
【図８】
2018007215.tif 000010