以下、本発明の実施の形態を図面を参照しながら詳述する。
本実施の形態では、情報処理装置としてのMFPに本発明を適用した場合について説明するが、本発明はMFPに限られず、PC(Personal Computer)等の暗号化通信可能な情報処理装置に適用してもよい。
<ハードウェア構成>
図1は、本発明の実施の形態に係る情報処理装置としてのMFP101を含む通信システム100の構成を概略的に示すブロック図である。
図1において、通信システム100は、MFP101、サーバ102、及びクライアントPC103を備え、MFP101、サーバ102、及びクライアントPC103はネットワーク104によって通信可能に接続されている。
MFP101は印刷機能、スキャン機能、及び通信機能を備える。MFP101は、例えば、サーバ102に画像データ等を送信してサーバ102に該画像データを保持させ、また、クライアントPC103から受信した印刷データに基づいて印刷を行う。本実施の形態においてサーバ102はTLSサーバとして機能し、MFP101はサーバ102とTLSを用いた暗号化通信を行う。また、MFP101はクライアントPC103に対するTLSサーバとして機能することができる。MFP101はクライアントPC103とTLS通信を行うことができる。ただし、通信プロトコルはTLSに限られない。
MFP101は秘匿性の高いデータを送受信する際に暗号化通信を行う。暗号化通信では、データの暗号化・復号化処理や、通信先の認証処理が行われる。MFP101は、TLS及びIPsec等の暗号化通信プロトコルによる暗号化通信を行う。本実施の形態では、一例として、MFP101が暗号化通信プロトコルとしてTLSを用いて該TLSによる暗号化通信(以下、「TLS通信」という。)を行う場合について説明する。TLSには、プロトコルバージョンとして、TLS1.0、TLS1.1、TLS1.2、及び、TLS1.3が存在する。本実施形態ではMFP101は、上述のTLS1.0から1.3の何れのプロトコルバージョンも使用可能であるものとする。
以下では、MFP101に実装された通信ソフトウェアによって使用可能な暗号化通信プロトコルのプロトコルバージョンを、実装プロトコルバージョンと呼ぶ。また、MFP101はTLS通信を行うために用いることができる複数の暗号アルゴリズムを備える。複数の暗号アルゴリズムは、データの暗号化や復号化を行うための暗号アルゴリズム(以下、単に「暗号アルゴリズム」という。)、及びデータの暗号化・復号化処理で用いられる暗号鍵の管理や、証明書を発行して通信先の認証処理を行う暗号アルゴリズム(以下、「認証アルゴリズム」という。)を含む。MFP101は、暗号アルゴリズムとしてChaCha20-Poly1305、AES−GCM、AES−CBC、及び3DES−CBCを備える。各AES−GCM及びAES−CBCは暗号化・復号化処理で用いられる暗号鍵の長さ(鍵長)によって更に2種に分類される。以下では、MFP101に実装された暗号アルゴリズムを実装暗号アルゴリズムと定義する。また、MFP101は認証アルゴリズムとしてECDSA、RSA、及びDSAを備え、以下では、これらを実装認証アルゴリズムと定義する。
図2は、図1のMFP101のハードウェアの構成を概略的に示すブロック図である。
図2において、MFP101は、制御部200、プリンタ210、スキャナ211、及び操作パネル212を備える。制御部200はプリンタ210、スキャナ211、及び操作パネル212のそれぞれと接続されている。制御部200は、CPU201、ROM202、RAM203、HDD204、ネットワークI/F205、プリンタ制御部206、スキャナ制御部207、及びパネル制御部208を備える。CPU201、ROM202、RAM203、HDD204、ネットワークI/F205、プリンタ制御部206、スキャナ制御部207、及びパネル制御部208はシステムバス209を介して互いに接続されている。
制御部200は接続されたプリンタ210、スキャナ211、及び操作パネル212を制御する。CPU201はROM202やHDD204に格納されたプログラムを実行して後述する図3のソフトウェアモジュール300の各処理を実行する。ROM202はMFP101のブートプログラム及び各設定データを格納する。RAM203はCPU201の作業領域として用いられ、また、各データの一時格納領域として用いられる。HDD204はプログラム及び印刷データ等の各データを格納する。例えば、RAM203及びHDD204は後述する使用許可バージョン情報(使用プロトコル)、使用許可アルゴリズム情報、及び鍵ペア情報を格納する。ネットワークI/F205はネットワーク104に接続された図示しない外部装置とデータ通信を行う。プリンタ制御部206はプリンタ210における印刷処理の実行を制御し、スキャナ制御部207はスキャナ211におけるスキャン処理の実行を制御する。パネル制御部208は操作パネル212における表示制御及び操作パネル212において入力された入力情報の受け付けを行う。プリンタ210はクライアントPC103等から取得した印刷データに基づいて記録紙に印刷を行う。スキャナ211は図示しない原稿台に配置された原稿を読み取り、読み取った結果に基づいて画像データを生成する。操作パネル212はMFP101における各設定を行う設定画面等を表示する。
<ソフトウェア構成>
図3は、図1のMFP101のソフトウェアモジュール300の構成を概略的に示すブロック図である。
図3において、ソフトウェアモジュール300は、デバイス制御モジュール301、アプリケーションモジュール302、暗号化通信モジュール303、暗号化処理モジュール304、及びネットワーク制御モジュール305を備える。また、ソフトウェアモジュール300は、ネットワークドライバモジュール306、UI制御モジュール307、及び通信設定制御モジュール308を備える。通信設定制御モジュール308は、プロトコルバージョン設定モジュール309、暗号アルゴリズム設定モジュール310、及び証明書管理モジュール311を備える。
デバイス制御モジュール301はMFP101全体を統括的に制御する。例えば、デバイス制御モジュール301は暗号化通信モジュール303にTLS通信の実行を指示する。アプリケーションモジュール302はMFP101における印刷機能、スキャン機能、通信機能等を実現するためのモジュールである。例えば、アプリケーションモジュール302は秘匿性の高いデータの通信処理を行う際に暗号化通信モジュール303にTLS通信の実行を指示する。
暗号化通信モジュール303は暗号化通信の実行の指示に基づいて暗号化通信の実行を制御する。例えば、暗号化通信モジュール303は暗号化処理モジュール304、通信設定制御モジュール308、及び証明書管理モジュール311からTLS通信の実行に必要な各情報を取得する。また、暗号化通信モジュール303は、ネットワーク制御モジュール305にデータ通信の実行を指示する。暗号化処理モジュール304は暗号化通信に用いられる各データの生成や検証を行う。例えば、暗号化処理モジュール304は、TLS通信における認証用の署名やデータの改竄を検知するためのハッシュ値の生成及び検証を行う。また、暗号化処理モジュール304はデータの暗号化・復号化を行うための暗号鍵の生成、及びデータの暗号化・復号化処理を行う。
ネットワーク制御モジュール305はTCP/IP等の通信プロトコルを制御し、ネットワークドライバモジュール306にデータ通信の実行を指示する。ネットワークドライバモジュール306はネットワークI/F205を制御し、ネットワーク104に接続された図示しない外部装置とのデータ通信を制御する。
UI制御モジュール307はパネル制御部208を制御し、操作パネル212における表示制御、及び操作パネル212の操作によって入力された入力情報の受け付け制御を行う。例えば、UI制御モジュール307はユーザの操作パネル212の操作によるTLS通信に関する設定情報(以下、「TLS通信設定情報」という。)の変更指示を受け付ける。TLS通信設定情報は、使用許可バージョン情報、使用許可アルゴリズム情報、及び鍵ペア情報を含む。使用許可バージョン情報はMFP101の実装プロトコルバージョンのうち使用が許可されたプロトコルバージョンを示す情報であり、MFP101の初期状態ではいずれかの実装プロトコルバージョンが初期値として予め設定されている。使用許可アルゴリズム情報はMFP101の実装暗号アルゴリズムのうち使用が許可された暗号アルゴリズムを示す情報であり、MFP101の初期状態では全ての実装暗号アルゴリズムが初期値として予め設定されている。UI制御モジュール307はTLS通信設定情報の変更指示を受け付けると、変更内容等を含む変更指示情報を通信設定制御モジュール308に通知する。
通信設定制御モジュール308はTLS通信設定情報を管理し、TLS通信設定情報はRAM203及びHDD204に格納される。通信設定制御モジュール308はUI制御モジュール307から受信した変更指示情報に基づいてTLS通信設定情報を変更する。具体的に、通信設定制御モジュール308はプロトコルバージョン設定モジュール309により、格納された使用許可バージョン情報を変更指示情報に対応するプロトコルバージョン情報(以下、「変更指示バージョン情報」)に変更する。また、通信設定制御モジュール308は暗号アルゴリズム設定モジュール310により、格納された使用許可アルゴリズム情報を変更指示情報に対応する暗号アルゴリズム情報(以下、「変更指示アルゴリズム情報」)に変更する。さらに、通信設定制御モジュール308は証明書管理モジュール311により、鍵ペア情報を変更指示情報に対応する認証アルゴリズムの設定情報(以下、「変更指示認証設定情報」)に変更する。
<設定画面表示>
次に、TLS通信設定及び暗号アルゴリズム設定に関する操作画面の表示例について説明する。MFP101では、TLS通信設定情報の変更指示を行う際に図4の設定画面401が操作パネル212に表示される。設定画面401は設定ボタン402〜404及びOKボタン405を備える。設定ボタン402は使用許可バージョン情報の変更指示を行う際に選択される設定ボタンである。設定ボタン403は使用許可アルゴリズム情報の変更指示を行う際に選択される設定ボタンである。設定ボタン404は鍵ペア情報の変更指示を行う際に選択される設定ボタンである。OKボタン405は設定画面401における設定を決定する操作ボタンである。
<TLS通信の設定操作>
例えば、設定ボタン402が選択された状態でOKボタン405が選択された場合、操作パネル212には使用許可バージョン情報の変更指示を行う図5(a)のバージョン設定画面501が表示される。バージョン設定画面501は、上限バージョン502、下限バージョン503、及びOKボタン504を備え、RAM203及びHDD204に格納された使用許可バージョン情報に対応する設定値が設定された状態で表示される。上限バージョン502は使用許可バージョン情報の上限値を示し、下限バージョン503は使用許可バージョン情報の下限値を示す。本実施の形態では、TLSのバージョンとして、1.0、1.1、1.2、及び1.3を選択できるものとする。ユーザは、使用するTLSバージョンの上限と下限を指定することができる。上限バージョン502及び下限バージョン503の各設定値は、プルダウンメニューを操作して設定可能であり、例えば、上限バージョン502はユーザによる図5(b)のプルダウンメニュー505の操作によって設定される。OKボタン504はバージョン設定画面501における設定を決定し、使用許可バージョン情報の変更指示を行う操作ボタンである。
<暗号アルゴリズムの設定操作>
図4に示した設定画面401において設定ボタン403が選択された状態でOKボタン405が選択された場合、操作パネル212には使用許可アルゴリズム情報の変更指示を行うための図6(a)の暗号アルゴリズム設定画面601が表示される。暗号アルゴリズム設定画面601は種別選択ボタン602〜608及びOKボタン609を備え、RAM203及びHDD204に格納された使用許可アルゴリズム情報に対応する設定値が設定された状態で表示される。種別選択ボタン602〜608はMFP101の実装暗号アルゴリズムに対応する。具体的に、種別選択ボタン602はChaCha20-Poly1305に対応し、種別選択ボタン603はAES−GCM(鍵長256bit)に対応し、種別選択ボタン604はAES−GCM(鍵長128bit)に対応する。種別選択ボタン605はAES−CBC(鍵長256bit)に対応し、種別選択ボタン606はAES−CBC(鍵長128bit)に対応し、種別選択ボタン607は3DES−CBCに対応し、種別選択ボタン608はRC4に対応する。
暗号アルゴリズム設定画面601では、種別選択ボタン602〜608の中から複数の種別選択ボタンを選択可能である。本実施の形態では、選択された状態(以下、「選択状態」という。)の種別選択ボタンを黒色で示し、選択されない状態(以下、「非選択状態」という。)の種別選択ボタンを白色で示す。本実施の形態では、ユーザが暗号アルゴリズムについて設定していない状態で、暗号アルゴリズム設定画面601を開くと、図6(a)に示すように全ての暗号アルゴリズムが使用許可アルゴリズムとして選択された状態で表示される。使用を許可しない暗号アルゴリズムをユーザが選択すると、当該暗号アルゴリズムの種別選択ボタンが黒色から白色に変化し、選択された暗号アルゴリズムは非選択状態となる。MFP101では、種別選択ボタン602〜608のうち選択状態の種別選択ボタンに対応する暗号アルゴリズムが使用許可アルゴリズム情報に設定される。OKボタン609は暗号アルゴリズム設定画面601における設定を決定し、使用許可アルゴリズム情報の変更指示を行う操作ボタンである。例えば、図6(b)に示すように、種別選択ボタン603のみが選択状態であって且つOKボタン609が選択されると、種別選択ボタン603に対応するAES−GCM(鍵長256bit)が使用許可アルゴリズム情報に設定される。
<鍵と証明書の設定操作>
次に、MFP101がTLSサーバとしてクライアントPC103とTLS暗号化通信を行う場合に用いる電子証明書と暗号化鍵に関する設定について図7を用いて説明する。
TLS暗号化通信では、ネットワークを介して他の機器と接続する場合に、機器の正当性を確認するために電子証明書を用いた認証を行なう。こうした認証を行なう場合には、機器の身元を保証するための電子証明書(公開鍵を含む)と秘密鍵を機器が保持し、それらを暗号化通信で使用する。
図4に示した設定画面401において、設定ボタン404が選択された状態でOKボタン405が選択されると、操作パネル212には図7の認証アルゴリズム設定画面701が表示される。認証アルゴリズム設定画面701はMFP101が暗号化通信で使用する電子証明書および秘密鍵のペアをユーザが設定するために用いられる画面である。
図7の例では、MFP101が電子証明書及び秘密鍵のペアを3ペア保持している例を示している。電子証明書及び秘密鍵のペアには、それぞれ、Key1、Key2、又は、Key3の名称が付されている。
電子証明書及び秘密鍵のペアごとに、使用用途を設定することができる。図7の例では、Key1はTLS暗号化通信のために使用することが設定されている。さらに、電子証明書及び秘密鍵のペアごとに、通信に使用する暗号アルゴリズムを設定することができる。図7の例では、Key1は通信のためのアルゴリズムとしてDSAを用いることが設定されている。
TLS通信で使用する電子証明書と秘密鍵のペアを変更する場合は、表示されている電子証明書と秘密鍵のペアのリストの中から、変更したい電子証明書と秘密鍵のペアを選択し、「使用する鍵に設定する」ボタン703を押下することで設定が変更される。電子証明書と秘密鍵のペアを変更することに伴って、TLS暗号化通信に用いられる暗号アルゴリズムも変更される。以下、現在選択されている電証明書と秘密鍵と暗号化通信に用いる暗号プロトコルとの組合せを示す情報を鍵ペア情報と呼ぶ。
<暗号アルゴリズムの変更受付処理>
図8は、図1のMFP101で実行される暗号アルゴリズムの変更受付処理の手順を示すシーケンス図である。
図8の処理は、MFP101が備えるCPU201がHDD204又はROM202等の記憶部に格納されたプログラムをRAM203に展開して実行することによって実現されるUI制御モジュール307及び通信設定制御モジュール308によって行われる。本実施の形態では、図8の処理は、OKボタン609が選択された場合に開始される。
まず、UI制御モジュール307は使用許可アルゴリズム情報及び鍵ペア情報のいずれかの変更指示を受け付ける(ステップS801)。次いで、UI制御モジュール307は使用許可バージョン情報及び鍵ペア情報のうち、ステップS801で受け付けた変更指示に応じた変更内容を含む変更指示情報を通信設定制御モジュール308に通知する(ステップS802)。UI制御モジュール307は、ステップS801において使用許可アルゴリズム情報の変更指示を受け付けた場合には、使用許可バージョン情報の変更内容を含む変更指示情報を通知する。またUI制御モジュール307は、ステップS801において鍵ペア情報の変更指示を受け付けた場合には、鍵ペア情報の変更内容を含む変更指示情報を通知する。
通信設定制御モジュール308は受信した変更指示情報に基づいて、後述する図9の使用許可アルゴリズム情報の変更処理、及び、後述する図14の鍵ペア情報の変更処理のいずれかを実行する(ステップS803)。ステップS803では、通信設定制御モジュール308は使用許可アルゴリズム情報又は鍵ペアを変更する。通信設定制御モジュール308は、使用許可バージョン情報の変更内容を含む変更指示情報の通知を受けた場合には、使用許可アルゴリズムの変更処理を実行する。また通信設定制御モジュール308は、鍵ペア情報の変更指示を受け付けた場合には鍵ペア情報の変更処理を実行する。次いで、通信設定制御モジュール308は実行結果通知をUI制御モジュール307に送信する(ステップS804)。
UI制御モジュール307は受信した実行結果通知に基づいて、実行された変更処理の実行結果を示す情報を操作パネル212に表示し(ステップS805)、本処理を終了する。
図9は、図8のステップS803の使用許可アルゴリズム情報の変更処理の手順を示すフローチャートである。
図9の処理は、MFP101が備えるCPU201がHDD204又はROM202等の記憶部に格納されたプログラムをRAM203に展開して実行することによって実現される通信設定制御モジュール308によって行われる。使用許可アルゴリズム情報として全ての実装暗号アルゴリズムが予め設定され、使用許可バージョン情報として「1.0〜1.1」が予め設定されている例について説明する。
図9において、まず、通信設定制御モジュール308はUI制御モジュール307から変更指示情報を受信する(ステップS901)。変更指示情報とは、例えば、使用許可アルゴリズムの変更指示である。
次いで、通信設定制御モジュール308は変更指示情報に基づいて変更指示アルゴリズム情報を取得する(ステップS902)。変更指示アルゴリズム情報とは、例えば、変更指示に従って変更した後の使用許可アルゴリズムを示す情報である。
次いで、通信設定制御モジュール308は図10の使用可否リスト1001に基づいて変更指示アルゴリズム情報が示す暗号アルゴリズムと共に使用可能なプロトコルバージョン情報を特定する(ステップS903)。プロトコルバージョン情報及び暗号アルゴリズムが適切な組み合わせで設定されないと、MFP101はTLS通信を行うことができない。例えば、使用許可アルゴリズム情報「AES−GCM(256bit)」及び使用許可バージョン情報「1.2〜1.3」の組み合わせでは、TLS通信可能である。一方、使用許可アルゴリズム情報「AES−GCM(256bit)」及び使用許可バージョン情報「1.0〜1.1」の組み合わせでは、TLS通信不可能(暗号化通信を実行不可能)である。そのため、本実施の形態では、使用可否リスト1001において、実装プロトコルバージョン情報及び実装暗号アルゴリズムの全ての組み合わせに対して使用可否情報が設定される。使用可否リスト1001では、TLS通信可能である組み合わせに「使用可」が設定され、TLS通信不可能である組み合わせに「使用不可」が設定される。
次いで、通信設定制御モジュール308は予め設定されている使用許可バージョン情報「1.0〜1.1」を取得し(ステップS904)、バージョン情報を比較する(ステップS905)。具体的には、ステップS903で特定したプロトコルバージョン情報と、ステップS904で取得したプロトコルバージョンとを比較する。次いで、通信設定制御モジュール308は使用許可バージョン情報において変更指示アルゴリズム情報を用いてTLS通信可能であるか否かを判別する(ステップS906)。
ステップS906では、ステップS903で特定したプロトコルバージョンの少なくとも一つが、ステップS904で取得したプロトコルバージョンの範囲内に含まれる場合、通信設定制御モジュール308は上記TLS通信可能であると判別する。例えば、変更指示アルゴリズム情報が「AES−CBC(256bit)」である場合、該変更指示アルゴリズム情報と共に使用可能なプロトコルバージョン情報は「1.0〜1.2」である。すなわちステップS903では、プロトコルバージョン「1.0〜1.2」が特定される。ステップS904において取得される使用許可バージョン情報が示すバージョン範囲「1.0〜1.1」に、ステップS903で特定したプロトコルバージョンの一部が含まれるので、通信設定制御モジュール308は上記TLS通信可能であると判別する。
一方、例えば、ステップS903で特定したプロトコルバージョンのいずれもステップS904で取得したプロトコルバージョンの範囲に含まれない場合、通信設定制御モジュール308は上記TLS通信不可能であると判別する。例えば、変更指示アルゴリズム情報が「AES−GCM(256bit)」である場合、該変更指示アルゴリズム情報と共に使用可能なプロトコルバージョン情報は「1.2〜1.3」である。該プロトコルバージョン情報が示すバージョン範囲「1.2〜1.3」は使用許可バージョン情報が示すバージョン範囲「1.0〜1.1」に包含されないので、通信設定制御モジュール308はTLS通信不可能であると判別する。
ステップS906の判別の結果、TLS通信不可能であるとき、通信設定制御モジュール308は使用許可アルゴリズム情報を変更指示アルゴリズム情報に変更せず(ステップS907)、その旨を示す実行結果通知を生成する。通信設定制御モジュール308は当該実行結果通知をUI制御モジュール307に送信し(ステップS908)、本処理を終了する。実行結果通知を受信したUI制御モジュール307は、ステップS805において、例えば、図11(a)の警告メッセージ1101(警告通知)を操作パネル212に表示する。警告メッセージ1101は、使用許可アルゴリズム情報を変更しない旨を示す情報、及びTLS通信が実行可能になる条件を示す情報を含む。なお、本実施の形態では、警告メッセージ1101の他に、バージョン設定画面501を表示させる、図11(b)の設定ボタン1102を操作パネル212に表示して、ユーザに使用許可バージョン情報を変更させるか否かを選択させても良い。また、警告メッセージ1101の他に、変更指示アルゴリズム情報と共に使用可能なプロトコルバージョン情報を示す図11(c)のメッセージ1103を操作パネル212に表示しても良い。
ステップS906の判別の結果、上記TLS通信可能であるとき、通信設定制御モジュール308は格納された使用許可アルゴリズム情報を変更指示アルゴリズム情報に変更する(ステップS909)。これにより、MFP101では、暗号アルゴリズム設定画面601による使用許可アルゴリズム情報の変更指示が反映される。次いで、通信設定制御モジュール308は使用許可アルゴリズム情報を変更した旨を示す実行結果通知を生成し、ステップS908以降の処理を行う。実行結果通知を受信したUI制御モジュール307は、ステップS805において、使用許可アルゴリズム情報を変更した旨を示すメッセージを操作パネル212に表示する。
図12は、図8のステップS803の使用許可アルゴリズム情報の変更処理の変形例の手順を示すフローチャートである。
図12の処理は、通信設定制御モジュール308によって行われ、使用許可アルゴリズム情報に初期値である全ての実装暗号アルゴリズムが予め設定され、使用許可バージョン情報に初期値として「1.0〜1.1」が予め設定されていることを前提とする。また、図12の処理は変更指示アルゴリズム情報に複数の暗号アルゴリズムが設定されていることを前提とする。
図9において、まず、通信設定制御モジュール308はステップS901〜S905の処理を行う。次いで、通信設定制御モジュール308は、変更指示アルゴリズム情報及び使用許可バージョン情報の全ての組み合わせに対してTLS通信可能であるか否かを判別する(ステップS1201)。
ステップS1201の判別の結果、変更指示アルゴリズム情報及び使用許可バージョン情報の全ての組み合わせに対してTLS通信可能であるとき、通信設定制御モジュール308はステップS909以降の処理を行う。一方、ステップS1201の判別の結果、変更指示アルゴリズム情報及び使用許可バージョン情報の全ての組み合わせに対してTLS通信可能でないとき、通信設定制御モジュール308は変更指示アルゴリズム情報及び使用許可バージョン情報の一部の組み合わせに対してTLS通信可能であるか否かを判別する(ステップS1202)。
ステップS1202では、例えば、変更指示アルゴリズム情報が「AES−GCM(256bit)」及び「AES−CBC(256bit)」である場合、「AES−GCM(256bit)」及び使用許可バージョン情報「1.0〜1.1」の組み合わせにおいてTLS通信不可能であるが、「AES−CBC(256bit)」及び使用許可バージョン情報「1.0〜1.1」の組み合わせにおいてTLS通信可能である。この場合、通信設定制御モジュール308は変更指示アルゴリズム情報及び使用許可バージョン情報の一部の組み合わせに対してTLS通信可能であると判別する。一方、変更指示アルゴリズム情報が「AES−GCM(256bit)」及び「ChaCha20-Poly1305」である場合、いずれの変更指示アルゴリズム情報においても使用許可バージョン情報「1.0〜1.1」との組み合わせにおいてTLS通信不可能である。この場合、通信設定制御モジュール308は変更指示アルゴリズム情報及び使用許可バージョン情報の全ての組み合わせに対してTLS通信不可能であると判別する。
ステップS1202の判別の結果、変更指示アルゴリズム情報及び使用許可バージョン情報の一部の組み合わせに対してTLS通信可能であるとき、通信設定制御モジュール308は確認通知を生成する(ステップS1203)。次いで、通信設定制御モジュール308はUI制御モジュール307に確認通知を送信し(ステップS1204)、該確認通知の応答通知を受信するまで待機する(ステップS1205)。UI制御モジュール307は確認通知を受信すると、使用許可アルゴリズム情報の変更処理の実行を継続するか否かをユーザに選択させる図13の確認画面1301を操作パネル212に表示する。確認画面1301は、OKボタン1302及びキャンセルボタン1303を備える。OKボタン1302が選択されると、使用許可アルゴリズム情報の変更処理の実行を継続する旨を示す応答通知がUI制御モジュール307から通信設定制御モジュール308に送信される。一方、キャンセルボタン1303が選択されると、使用許可アルゴリズム情報の変更処理の実行を中止する旨を示す応答通知がUI制御モジュール307から通信設定制御モジュール308に送信される。通信設定制御モジュール308は、UI制御モジュール307から応答通知を受信すると、該応答通知が使用許可アルゴリズム情報の変更処理の実行を継続する旨を示す通知であるか否かを判別する(ステップS1206)。
ステップS1206の判別の結果、応答通知が使用許可アルゴリズム情報の変更処理の実行を継続する旨を示す通知であるとき、通信設定制御モジュール308はステップS909以降の処理を行う。一方、ステップS1206の判別の結果、応答通知が使用許可アルゴリズム情報の変更処理の実行を中止する旨を示す通知であるとき、通信設定制御モジュール308はステップS908以降の処理を行う。
ステップS1202の判別の結果、変更指示アルゴリズム情報及び使用許可アルゴリズム情報の全ての組み合わせに対してTLS通信不可能であるとき、通信設定制御モジュール308はステップS907以降の処理を行う。
図14は、図8のステップS803の鍵ペア情報の変更処理の手順を示すフローチャートである。
図14の処理は、通信設定制御モジュール308によって行われ、鍵ペア情報に初期値「RSA」が予め設定され、使用許可バージョン情報に初期値として「1.3」が予め設定されていることを前提とする。本実施の形態では、図14の処理は、「使用する鍵に設定する」ボタン703が選択された場合に開始される。
図14において、まず、通信設定制御モジュール308はUI制御モジュール307から変更指示情報を受信する(ステップS1401)。変更指示情報とは、例えば、鍵ペアの変更指示である。次いで、通信設定制御モジュール308は変更指示情報に基づいて変更指示認証設定情報を取得する(ステップS1402)。変更指示認証設定情報とは、例えば、変更した後の鍵ペアに対応付けられた認証アルゴリズムを示す情報である。次いで、通信設定制御モジュール308は図15の使用可否リスト1501に基づいて変更指示認証設定情報が示す認証アルゴリズムと共に使用可能なプロトコルバージョン情報を特定する(ステップS1403)。暗号アルゴリズムと同様に、認証アルゴリズムもプロトコルバージョン情報と適切な組み合わせで設定されないと、MFP101はTLS通信を行うことができない。例えば、使用許可アルゴリズム情報「RSA」及び使用許可バージョン情報「1.3」の組み合わせでは、TLS通信可能である。一方、使用許可アルゴリズム情報「DSA」及び使用許可バージョン情報「1.3」の組み合わせでは、TLS通信不可能である。そのため、本実施の形態では、使用可否リスト1501において、実装プロトコルバージョン情報及び実装認証アルゴリズムの全ての組み合わせに対して使用可否情報が設定される。使用可否リスト1501では、TLS通信可能である組み合わせに「使用可」が設定され、TLS通信不可能である組み合わせに「使用不可」が設定される。
次いで、通信設定制御モジュール308は予め設定されている使用許可バージョン情報「1.3」を取得し(ステップS1404)、バージョン情報を比較する(ステップS1405)。具体的に、通信設定制御モジュール308は使用許可バージョン情報及び変更指示認証設定情報と共に使用可能なプロトコルバージョン情報を比較する。次いで、通信設定制御モジュール308は使用許可バージョン情報において変更指示認証設定情報を用いてTLS通信可能であるか否かを判別する(ステップS1406)。
ステップS1406では、変更指示認証設定情報と共に使用可能なプロトコルバージョン情報が使用許可バージョン情報に対応する場合、通信設定制御モジュール308は上記TLS通信可能であると判別する。例えば、変更指示認証設定情報が「ECDSA」である場合、該変更指示認証設定情報と共に使用可能なプロトコルバージョン情報は「1.0〜1.3」である。この場合、使用許可バージョン情報「1.3」は該プロトコルバージョン情報「1.0〜1.3」に含まれるので、通信設定制御モジュール308は上記TLS通信可能であると判別する。
一方、変更指示認証設定情報と共に使用可能なプロトコルバージョン情報が使用許可バージョン情報に対応しない場合、通信設定制御モジュール308は上記TLS通信不可能であると判別する。例えば、変更指示認証設定情報が「DSA」である場合、該変更指示認証設定情報と共に使用可能なプロトコルバージョン情報は「1.0〜1.2」である。この場合、使用許可バージョン情報「1.3」は該プロトコルバージョン情報「1.0〜1.2」に含まれないので、通信設定制御モジュール308は上記TLS通信不可能であると判別する。
ステップS1406の判別の結果、上記TLS通信不可能であるとき、通信設定制御モジュール308は鍵ペア情報を変更指示認証設定情報に変更せず(ステップS1407)、その旨を示す実行結果通知を生成する。通信設定制御モジュール308は当該実行結果通知をUI制御モジュール307に送信し(ステップS1408)、本処理を終了する。実行結果通知を受信したUI制御モジュール307は、ステップS805において、例えば、図16の警告メッセージ1601を操作パネル212に表示する。警告メッセージ1601は、鍵ペア情報を変更しない旨を示す情報、及び使用許可バージョン情報においてTLS通信可能な認証アルゴリズム及びTLS通信不可能な認証アルゴリズムを示す情報を含む。
ステップS1406の判別の結果、上記TLS通信可能であるとき、通信設定制御モジュール308は格納された鍵ペア情報を変更指示認証設定情報に変更する(ステップS1407)。これにより、MFP101では、認証アルゴリズム設定画面701による鍵ペア情報の変更指示が反映される。次いで、通信設定制御モジュール308は鍵ペア情報を変更した旨を示す実行結果通知を生成し、ステップS1408以降の処理を行う。実行結果通知を受信したUI制御モジュール307は、ステップS805において、鍵ペア情報を変更した旨を示すメッセージを操作パネル212に表示する。
次に、バージョン設定画面501による使用許可バージョン情報の変更について説明する。
図17は、図1のMFP101で実行される使用許可バージョン情報の変更受付処理の手順を示すシーケンス図である。
図17の処理は、UI制御モジュール307及び通信設定制御モジュール308によって行われ、バージョン設定画面501においてOKボタン504が選択された場合を前提とする。
図17において、まず、UI制御モジュール307は使用許可バージョン情報の変更指示を受け付ける(ステップS1701)。次いで、UI制御モジュール307は使用許可バージョン情報の変更内容を含む変更指示情報を通信設定制御モジュール308に通知する(ステップS1702)。
通信設定制御モジュール308は受信した変更指示情報に基づいて後述する図18の使用許可バージョン情報の変更処理を行い(ステップS1703)、使用許可バージョン情報を変更する。次いで、通信設定制御モジュール308は実行結果通知をUI制御モジュール307に送信する(ステップS1704)。
UI制御モジュール307は受信した実行結果通知に基づいて使用許可バージョン情報の変更処理の実行結果を示す情報を操作パネル212に表示し(ステップS1705)、本処理を終了する。
図18は、図17のステップS1703の使用許可バージョン情報の変更処理の手順を示すフローチャートである。
図18の処理は、通信設定制御モジュール308によって行われる。図18の処理は、一例として、使用許可バージョン情報に初期値として「1.0〜1.1」が設定され、使用許可アルゴリズム情報に、図9の使用許可アルゴリズム情報の変更処理によって「AES−GCM(256bit)」が設定されていることを前提とする。
図18において、まず、通信設定制御モジュール308はUI制御モジュール307から変更指示情報を受信する(ステップS1801)。次いで、通信設定制御モジュール308は変更指示情報に基づいて変更指示バージョン情報を取得する(ステップS1802)。次いで、通信設定制御モジュール308は使用可否リスト1001に基づいて変更指示バージョン情報と共に使用可能な暗号アルゴリズムを特定する(ステップS1803)。
次いで、通信設定制御モジュール308は格納された使用許可アルゴリズム情報「AES−GCM(256bit)」を取得する(ステップS1804)。MFP101では、初期値又は図9の使用許可アルゴリズム情報の変更処理によって変更された使用許可アルゴリズム情報がRAM203及びHDD204に格納されている。すなわち、本実施の形態では、使用許可バージョン情報の変更指示が行われる前に予め使用許可アルゴリズム情報が設定されている。次いで、通信設定制御モジュール308は暗号アルゴリズム情報を比較する(ステップS1805)。具体的に、通信設定制御モジュール308は使用許可アルゴリズム情報及び変更指示バージョン情報と共に使用可能な暗号アルゴリズムを比較する。次いで、通信設定制御モジュール308は変更指示バージョン情報において使用許可アルゴリズム情報を用いてTLS通信可能であるか否かを判別する(ステップS1806)。ステップS1806では、変更指示バージョン情報と共に使用可能な暗号アルゴリズムが使用許可アルゴリズム情報に対応する場合、通信設定制御モジュール308は上記TLS通信可能であると判別する。例えば、変更指示バージョン情報が「1.3」である場合、変更指示バージョン情報「1.3」と共に使用可能な暗号アルゴリズムは「ChaCha20-Poly1305」及び「AES−GCM(128bit),(256bit)」である。該暗号アルゴリズムは使用許可アルゴリズム情報「AES−GCM(256bit)」に対応するので、通信設定制御モジュール308は上記TLS通信可能であると判別する。一方、変更指示バージョン情報と共に使用可能な暗号アルゴリズムが使用許可アルゴリズム情報に対応しない場合、通信設定制御モジュール308は上記TLS通信不可能であると判別する。例えば、変更指示バージョン情報が「1.0〜1.1」である場合、変更指示バージョン情報「1.0〜1.1」と共に使用可能な暗号アルゴリズムは「AES−CBC(128bit),(256bit)」、「3DES−CBC」、及び「RC4」である。該暗号アルゴリズムは使用許可アルゴリズム情報「AES−GCM(256bit)」に対応しないので、通信設定制御モジュール308は上記TLS通信不可能であると判別する。
ステップS1806の判別の結果、上記TLS通信不可能であるとき、通信設定制御モジュール308は使用許可バージョン情報を変更指示バージョン情報に変更しない(ステップS1807)。通信設定制御モジュール308は、その旨を示す実行結果通知を生成する。通信設定制御モジュール308は当該実行結果通知をUI制御モジュール307に送信し(ステップS1808)、本処理を終了する。実行結果通知を受信したUI制御モジュール307は、ステップS1705において、図19(a)の警告メッセージ1901を操作パネル212に表示する。警告メッセージ1901は、使用許可バージョン情報を変更しない旨を示す情報、及びTLS通信が実行可能になる条件を示す情報を含む。なお、本実施の形態では、警告メッセージ1901の他に、暗号アルゴリズム設定画面601を表示するための図19(b)の設定ボタン1902を操作パネル212に表示しても良い。また、警告メッセージ1901の他に、変更指示バージョン情報と共に使用可能な暗号アルゴリズムを示す図19(c)のメッセージ1903を操作パネル212に表示しても良い。
ステップS1806の判別の結果、変更指示バージョン情報において使用許可アルゴリズム情報を用いてTLS通信可能であるとき、通信設定制御モジュール308は使用許可バージョン情報を変更指示バージョン情報に変更する(ステップS1809)。これにより、MFP101では、バージョン設定画面501による使用許可バージョン情報の変更指示が反映される。次いで、通信設定制御モジュール308は使用許可バージョン情報を設定した旨を示す実行結果通知を生成し、ステップS1808以降の処理を行う。実行結果通知を受信したUI制御モジュール307は、ステップS1705において、使用許可バージョン情報を設定した旨を示すメッセージを操作パネル212に表示する。
上述した本実施の形態によれば、使用許可バージョン情報の変更指示が行われる前に使用許可アルゴリズム情報が予め設定される。これにより、使用許可バージョン情報の設定に起因して使用許可アルゴリズム情報の選択候補が制限されることなく、実装暗号アルゴリズムの中から所望の暗号アルゴリズムを使用許可アルゴリズム情報に設定することができる。また、変更指示バージョン情報において使用許可アルゴリズム情報を用いてTLS通信不可能である場合、警告メッセージ1901が通知される。これにより、不適切な組み合わせの使用許可バージョン情報及び使用許可アルゴリズム情報が設定されるのを防止することができる。すなわち、実装暗号アルゴリズムの中から所望の暗号アルゴリズムを使用許可アルゴリズム情報に設定し、且つ不適切な組み合わせの使用許可バージョン情報及び使用許可アルゴリズム情報が設定されるのを防止することができる。その結果、所望の暗号アルゴリズムを適切な組み合わせの使用許可バージョン情報と設定することができ、所望の暗号アルゴリズムを用いたTLS通信を行うことができる。
また、上述した本実施の形態では、TLS通信が実行可能になる条件が通知されるので、使用許可アルゴリズム情報に対し、適切な組み合わせの使用許可バージョン情報を容易に設定することができる。
以上、本発明について、上述した実施の形態を用いて説明したが、本発明は上述した実施の形態に限定されるものではない。
例えば、使用許可アルゴリズムとして複数の暗号アルゴリズムが設定され、変更指示バージョン情報及び使用許可アルゴリズム情報の全ての組み合わせに対してTLS通信不可能である場合、警告メッセージ1901が操作パネル212に表示されても良い。
図20は、図18の使用許可バージョン情報の変更処理の第1の変形例の手順を示すフローチャートである。
図20の処理は、通信設定制御モジュール308によって行われ、使用許可バージョン情報に初期値としていずれかの実装プロトコルバージョンが予め設定されていることを前提とする。また、図20の処理は、使用許可アルゴリズム情報に、一例として、図9の使用許可アルゴリズム情報の変更処理によって「AES−GCM(256bit)」及び「ChaCha20-Poly1305」が予め設定されていることを前提とする。
図20において、まず、通信設定制御モジュール308はステップS1801〜S1805の処理を行う。次いで、通信設定制御モジュール308は、変更指示バージョン情報及び使用許可アルゴリズム情報の全ての組み合わせに対してTLS通信可能であるか否かを判別する(ステップS2001)。
ステップS2001の判別の結果、変更指示バージョン情報及び使用許可アルゴリズム情報の全ての組み合わせに対してTLS通信可能であるとき、通信設定制御モジュール308はステップS1809以降の処理を行う。一方、ステップS2001の判別の結果、変更指示バージョン情報及び使用許可アルゴリズム情報の全ての組み合わせに対してTLS通信可能でないとき、通信設定制御モジュール308は変更指示バージョン情報及び使用許可アルゴリズム情報の一部の組み合わせに対してTLS通信可能であるか否かを判別する(ステップS2002)。
ステップS2002では、例えば、変更指示バージョン情報が「1.2」である場合、変更指示バージョン情報「1.2」及び「ChaCha20-Poly1305」の組み合わせにおいてTLS通信不可能であるが、変更指示バージョン情報「1.2」及び「AES−GCM(256bit)」の組み合わせにおいてTLS通信可能である。この場合、通信設定制御モジュール308は変更指示バージョン情報及び使用許可アルゴリズム情報の一部の組み合わせに対してTLS通信可能であると判別する。一方、変更指示バージョン情報が「1.0〜1.1」である場合、いずれの変更指示バージョン情報においても使用許可アルゴリズム情報との組み合わせにおいてTLS通信不可能である。この場合、通信設定制御モジュール308は変更指示バージョン情報及び使用許可アルゴリズム情報の全ての組み合わせに対してTLS通信不可能であると判別する。
ステップS2002の判別の結果、変更指示バージョン情報及び使用許可アルゴリズム情報の一部の組み合わせに対してTLS通信可能であるとき、通信設定制御モジュール308は確認通知を生成する(ステップS2003)。次いで、通信設定制御モジュール308はUI制御モジュール307に確認通知を送信し(ステップS2004)、該確認通知の応答通知を受信するまで待機する(ステップS2005)。UI制御モジュール307は確認通知を受信すると、使用許可バージョン情報の変更処理の実行を継続するか否かをユーザに選択させる図21の確認画面2101を操作パネル212に表示する。確認画面2101は、OKボタン2102及びキャンセルボタン2103を備える。OKボタン2102が選択されると、使用許可バージョン情報の変更処理の実行を継続する旨を示す応答通知がUI制御モジュール307から通信設定制御モジュール308に送信される。一方、キャンセルボタン2103が選択されると、使用許可バージョン情報の変更処理の実行を中止する旨を示す応答通知がUI制御モジュール307から通信設定制御モジュール308に送信される。通信設定制御モジュール308は、UI制御モジュール307から応答通知を受信すると、該応答通知が使用許可バージョン情報の変更処理の実行を継続する旨を示す通知であるか否かを判別する(ステップS2006)。
ステップS2006の判別の結果、応答通知が使用許可バージョン情報の変更処理の実行を継続する旨を示す通知であるとき、通信設定制御モジュール308はステップS1809以降の処理を行う。一方、ステップS2006の判別の結果、応答通知が使用許可バージョン情報の変更処理の実行を中止する旨を示す通知であるとき、通信設定制御モジュール308はステップS1808以降の処理を行う。
ステップS2002の判別の結果、変更指示バージョン情報及び使用許可アルゴリズム情報の全ての組み合わせに対してTLS通信不可能であるとき、通信設定制御モジュール308はステップS1807以降の処理を行う。すなわち、本実施の形態では、変更指示バージョン情報及び使用許可アルゴリズム情報の全ての組み合わせに対してTLS通信不可能である場合、警告メッセージ1901が操作パネル212に表示される。
上述した本実施の形態では、複数の暗号アルゴリズムが使用許可アルゴリズムに設定されるので、他の暗号アルゴリズムと共に所望の暗号アルゴリズムを使用許可アルゴリズムに設定することができ、もって、他の暗号アルゴリズムを使用許可アルゴリズムに設定することに起因して所望の暗号アルゴリズムが使用許可アルゴリズムから除外される事態をなくすことができる。
上述した本実施の形態では、変更指示バージョン情報及び使用許可アルゴリズム情報の全ての組み合わせに対してTLS通信不可能である場合、警告メッセージ1901が操作パネル212に表示される。これにより、使用許可アルゴリズム情報に対し、TLS通信不可能なプロトコルバージョンが設定されるのを抑制することができる。
図22は、図18の使用許可バージョン情報の変更処理の第2の変形例の手順を示すフローチャートである。
図22の処理は、通信設定制御モジュール308によって行われる。図22の処理は、使用許可バージョン情報に初期値としていずれかの実装プロトコルバージョンが予め設定され、鍵ペア情報に、一例として、図14の鍵ペア情報の変更処理によって「DSA」が予め設定されていることを前提とする。
図22において、まず、通信設定制御モジュール308はステップS1801,S1802の処理を行う。次いで、通信設定制御モジュール308は使用可否リスト1501に基づいて変更指示バージョン情報と共に使用可能な認証アルゴリズムを特定する(ステップS2201)。
次いで、通信設定制御モジュール308は格納された鍵ペア情報を取得し(ステップS2202)、認証アルゴリズム情報を比較する(ステップS2203)。具体的に、通信設定制御モジュール308は鍵ペア情報及び変更指示バージョン情報と共に使用可能な認証アルゴリズム情報を比較する。次いで、通信設定制御モジュール308は変更指示バージョン情報において認証アルゴリズム情報を用いてTLS通信可能であるか否かを判別する(ステップS2204)。ステップS2204では、変更指示バージョン情報と共に使用可能な認証アルゴリズムが鍵ペア情報に対応する場合、通信設定制御モジュール308は上記TLS通信可能であると判別する。例えば、変更指示バージョン情報が「1.0〜1.2」である場合、該変更指示バージョン情報と共に使用可能な認証アルゴリズム情報は「ECDSA」、「RSA」、及び「DSA」である。この場合、該認証アルゴリズム情報は鍵ペア情報「DSA」に対応するので、通信設定制御モジュール308は上記TLS通信可能であると判別する。一方、変更指示バージョン情報と共に使用可能な認証アルゴリズムが鍵ペア情報に対応しない場合、通信設定制御モジュール308は変更指示バージョン情報において鍵ペア情報を用いてTLS通信不可能であると判別する。例えば、変更指示バージョン情報が「1.3」である場合、該変更指示バージョン情報と共に使用可能な認証アルゴリズム情報は「ECDSA」及び「RSA」である。この場合、該認証アルゴリズム情報は鍵ペア情報「DSA」に対応しないので、通信設定制御モジュール308は上記TLS通信不可能であると判別する。
ステップS2204の判別の結果、上記TLS通信不可能であるとき、通信設定制御モジュール308はステップS1807以降の処理を行う。実行結果通知を受信したUI制御モジュール307は、ステップS1705において、図23の警告メッセージ2301を操作パネル212に表示する。警告メッセージ2301は、使用許可バージョン情報を設定しない旨を示す情報、及び変更指示バージョン情報において、TLS通信可能な認証アルゴリズム及びTLS通信不可能な認証アルゴリズムを示す情報を含む。
ステップS2204の判別の結果、変更指示バージョン情報において認証アルゴリズム情報を用いてTLS通信可能であるとき、通信設定制御モジュール308はステップS1809以降の処理を行う。
なお、本実施の形態では、TLS通信を行う場合について説明したが、IPSec、SSL(Secure Sockets Layer)、及びIEEE802.1X等の他の暗号化通信プロトコルによる暗号化通信を行う場合であっても良い。この場合も、上述した本実施の形態と同様の効果を奏することができる。
本発明は、上述の実施の形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。