次に、本発明の実施の形態を図面を用いて説明する。図1は、本発明の通信装置及び画像形成装置の一実施形態である複合機20を備えたネットワークシステム10の構成の概略を示す構成図である。図示するように、ネットワークシステム10は、認証スイッチ60を有するLAN12と、認証スイッチ60を介してLAN12に接続された複合機20,ユーザーPC50と、LAN12に接続された認証サーバー70と、を備えている。
LAN12は、IEEE802.1Xの規格に従うネットワークとして構成されており、認証スイッチ60を備えている。この認証スイッチ60は、認証機能付きのスイッチングハブとして構成されており、認証スイッチ60の図示しない通信ポートを制御する通信ポート制御部61と、通信ポートに接続された複合機20やユーザーPC50などの機器の認証を行う通信機器認証部62と、各種プログラムや各種データを記憶する記憶部63と、複合機20,ユーザーPC50,認証サーバー70などとの通信を行うデバイスである通信インターフェース(I/F)64とを備えている。認証スイッチ60は、通信I/F64を介してLAN12や複合機20,ユーザーPC50と接続されている。通信ポート制御部61は、複合機20やユーザーPC50などの通信ポートに接続された機器から送信された情報を検知して通信機器認証部62に認証処理を開始させる機能を有する。また、通信ポート制御部61は、認証処理に成功した機器についてはLAN12への接続を許可し、認証処理に失敗した機器についてはLAN12への接続を遮断する機能を有する。通信機器認証部62は、複合機20やユーザーPC50などの認証スイッチ60に接続された機器(クライアントとも称する)と認証サーバー70との間で認証処理の仲介を行う機能を有する。具体的には、通信機器認証部62は、認証処理において複合機20やユーザーPC50などのクライアント側から受信したMACフレームをRADIUSフレームに変換して認証サーバー70に送信したり、認証サーバー70から受信したRADIUSフレームをMACフレームに変換してクライアントに送信したりする。また、通信機器認証部62は、認証処理に成功したクライアントについて一定間隔(例えば60分毎)に再認証要求を行う機能を有する。なお、本実施形態では、認証スイッチ60を介して行う認証処理は、IEEE802.1Xにおける認証プロトコル(EAP)としての、EAP−TLS方式で行うものとした。EAP−TLS方式は、電子証明書を用いて認証を行う方式である。記憶部63には、認証サーバー70に関する情報である認証サーバー情報66など、認証処理に用いる情報が記憶されている。
複合機20は、スキャナーとしても機能すると共にプリンターとしても機能する装置であり、LAN12などのネットワークに接続された他の機器(例えばユーザーPC50)から通信によりネットワークを介して画像データや電子証明書などのデータを取得したり、スキャンした画像データをネットワークを介して他の機器に送信したりすることが可能な装置である。この複合機20は、通信I/F26を介して例えばLANケーブルなどにより認証スイッチ60と接続されている。複合機20は、画像データなどに基づく画像を紙などの媒体に形成する印刷機構21と、紙などの媒体の画像などをスキャンして画像データとする読取機構22と、ユーザーに各種情報を表示したりユーザーからの各種指示が入力されたりする操作パネル23と、装置全体を制御するコントローラー30と、を備えている。印刷機構21は、各色のインクに圧力をかけこの加圧されたインクを媒体に吐出することで画像データに基づく画像を媒体に形成する印刷処理を実行するインクジェット方式の機構である。なお、インクへ圧力をかける機構は、圧電素子の変形によるものとしてもよいしヒーターの熱による気泡の発生によるものとしてもよい。また、読取機構22は、ガラス台に載置された書類に向かって発光したあとの反射光を各色に分解して読取データとする周知のカラーイメージセンサーを走査して原稿を読み取るスキャナー機構として構成されている。操作パネル23は、画像を表示する液晶ディスプレイとして構成された表示部と、ユーザーが各種入力を行うキーが配置された操作部とを備えており、表示部によりユーザーに各種情報を出力したり、ユーザーからの指示を操作部から入力したりする。
複合機20のコントローラー30は、CPU31を中心とするマイクロプロセッサーとして構成されており、一時的にデータを記憶したりデータを保存したりするRAM32と、各種処理プログラムや各種データを記憶し書き換え可能なフラッシュメモリー33とを備えている。フラッシュメモリー33には、通信I/F26を介して他の機器と通信を行うための通信設定情報40が記憶されている。通信設定情報40には、例えばIEEE802.1Xに従って通信を行うための情報として認証方式,ユーザーID,サーバーIDなどが含まれている。通信設定情報40には、ルートCA証明書や中間CA証明書なども含まれている。また、フラッシュメモリー33は、複合機20自身を証明するための電子証明書(クライアント証明書とも称する)を記憶する第1記憶領域41と、第1記憶領域41に記憶されていた電子証明書を一時的に記憶するテンポラリエリアとしての第2記憶領域42とを有している。図2は、フラッシュメモリー33に記憶された第1記憶領域41及び第2記憶領域42の説明図である。図示するように、第1記憶領域41は、第1記憶領域41中の異なる所定位置に設けられた領域1〜3の3つの領域を有しており、各領域1〜3に電子証明書とその利用設定情報とを対応付けて1つずつ記憶可能に構成されている。具体的には、領域1には電子証明書Aとその利用設定情報が記憶され、領域2には電子証明書Bとその利用設定情報が記憶され、領域3には電子証明書Cとその利用設定情報が記憶されている。ここで、利用設定情報とは、電子証明書に付された付属情報であり、電子証明書を用いた通信を行う際に用いられる情報や、その他電子証明書に関する情報などである。本実施形態では、利用設定情報には電子証明書の用途を表す情報としてその電子証明書を用いるプロトコルが含まれるものとした。具体的には、電子証明書Aの利用設定情報には電子証明書Aの用途がIEEE802.1Xである旨の情報が含まれ、電子証明書Bの利用設定情報には電子証明書Bの用途がSSL/TLSである旨の情報が含まれ、電子証明書Cの利用設定情報には電子証明書Bの用途がIPsecである旨の情報が含まれている。このように、本実施形態の複合機20は、認証スイッチ60との通信を行う際のプロトコルであるIEEE802.1Xに対応した電子証明書Aの他にも、SSL/TLS,IPsecのプロトコルにそれぞれ対応した電子証明書を記憶しており、通信先の機器との接続のプロトコルに応じた電子証明書を用いて通信が可能となるように構成されている。なお、第1記憶領域41や第2記憶領域42に記憶される電子証明書には、通信設定情報40に含まれる中間CA証明書やルートCA証明書が対応づけられ、証明書チェーンを構成している。このコントローラー30は、印刷機構21や読取機構22からの各種動作信号や各種検出信号を入力したり、操作パネル23の操作部の操作に応じて発生する操作信号を入力したり、他の機器から送信された各種データを通信I/F26から入力したりする。また、コントローラー30は、画像を印刷するよう印刷機構21に指令を出力したり、原稿を読み取るよう読取機構22に指令を出力したり、操作パネル23の表示部に表示指令や表示する画像データを出力したり、他の機器に送信する各種データを通信I/F26に出力したりする。
また、コントローラー30は、機能ブロックとして、通信制御部34と、証明書更新部35と、証明書復旧部36とを備えている。通信制御部34は、通信I/F26を介して接続された他の機器との通信を制御するものである。この通信制御部34は、第1記憶領域41に記憶されている電子証明書を用いて例えば認証処理などの通信を行う機能を有する。通信制御部34は、例えばLAN12に接続して通信を行う際には、認証スイッチ60を介して認証サーバー70とIEEE802.1XにおけるEAP−TLS方式に従って認証処理を行ったり、認証処理に成功したあとのデータの送受信などを行ったりする。また、通信制御部34は、通信を行う際に必要に応じて通信設定情報40を参照する。証明書更新部35は、第1記憶領域41に記憶済みの電子証明書を新しい電子証明書に更新する機能を有しており、更新の際に更新の対象となる旧電子証明書及びその利用設定情報を第2記憶領域41に記憶させたり、旧電子証明書及びその利用設定情報を第1記憶領域41から削除して新しい電子証明書及びその利用設定情報を第1記憶領域41に記憶させたりする。証明書復旧部36は、通信制御部34が例えばIEEE802.1XにおけるEAP−TLS方式に従った認証処理などの電子証明書を用いた通信に失敗したときには、第2記憶領域42に記憶された旧電子証明書及びその利用設定情報を第1記憶領域41に記憶させる機能を有する。
ユーザーPC50は、周知の汎用パソコンであり、LAN12などのネットワークに接続された他の機器(例えば複合機20や認証サーバー70)と通信によりネットワークを介してデータの送受信が可能な装置である。このユーザーPC50は、通信I/F54を介して例えばLANケーブルなどにより認証スイッチ60と接続されている。このユーザーPC50は、各種制御を実行するCPUや各種制御プログラムを記憶するROM,データを一時記憶するRAMなどから構成された機能ブロックとしての通信制御部51と、大容量メモリであるHDDなどから構成された記憶部53と、を備えている。また、ユーザーPC50は、各種情報を画面表示するディスプレイ58やユーザーが各種指令を入力するキーボード等の入力装置59を備えている。通信制御部51は、通信I/F54を介して接続された他の機器との通信を制御するものである。この通信制御部54は、記憶部53に記憶されている通信設定情報56やクライアント証明書57を用いて例えば認証処理や認証処理に成功したあとのデータの送受信などを行ったりする機能を有する。また、通信制御部51は、LAN12を介して図示しない認証局から電子証明書を取得したり、複合機20にそれを送信してインストールするよう指令を出力したり、複合機20に画像データを出力したり、複合機20から読み取った画像データを入力したりする機能を有する。記憶部53には、通信I/F54を介して他の機器と通信を行うための通信設定情報56や、ユーザーPC50自身を証明するためのクライアント証明書57が記憶されている。
認証サーバー70は、RADIUSサーバーとして構成されており、認証スイッチ60を介して複合機20やユーザーPC50などのクライアントから送信された認証要求を受け付け、クライアントに対してIEEE802.1XにおけるEAP−TLS方式での認証処理を行って認証結果を応答する装置である。認証サーバー70は、通信I/F74を介してLAN12と接続されており、認証処理を行うクライアント認証部71と、各種プログラムや各種データを記憶する記憶部73とを備えている。記憶部73には、ルートCA証明書,中間CA証明書やクライアントのIDなどの認証処理に用いる情報である認証情報76や、認証サーバー70自身を証明するためのサーバー78が記憶されている。
次に、こうして構成された本実施形態のネットワークシステム10の動作、特に、複合機20がLAN12との接続を確立する様子や、複合機20が第1記憶領域41に記憶する新たな電子証明書をユーザーPC50から取得して電子証明書の更新を行う様子、複合機20がLAN12との接続の確立に失敗した際に更新前の旧電子証明書を復旧する様子について説明する。
まず、複合機20が認証スイッチ60を介して認証サーバー70との間でIEEE802.1XのEAP−TLS方式の認証処理を行ってLAN12への接続を確立する様子について説明する。図3は、コントローラー30のCPU31によって実行される通信接続確立ルーチンの一例を示すフローチャートである。このルーチンは、フラッシュメモリー33に記憶され、複合機20の電源がオンされ且つ複合機20と認証スイッチ60とがLANケーブルなどで接続された状態となったときに実行される。なお、このルーチンは、コントローラー30のCPU31が通信制御部34や証明書復旧部36の機能を用いて実行する。
この通信接続確立ルーチンが実行されると、通信制御部34は、まず、接続要求としてのEAPOL開始フレームを認証スイッチ60に送信し(ステップS100)、認証スイッチ60からの応答であるEAPリクエスト(ID要求)を受信するのを待つ(ステップS110)。EAPリクエスト(ID要求)を受信すると、複合機20自身のユーザーIDを付した認証要求であるEAPレスポンス(ID通知)を送信する(ステップS120)。認証スイッチ60は、複合機20から受信したEAPレスポンス(ID通知)に基づいて生成したRADIUSアクセスリクエスト(ID通知)を、LAN12を介して認証サーバー70に送信する。認証サーバー70は、RADIUSアクセスリクエスト(ID通知)に含まれるユーザーIDを確認し、RADIUSアクセスチャレンジ(TLS開始)を認証スイッチ60に送信して、TSLによるユーザー認証を開始する。認証スイッチ60は、認証サーバー70からRADIUSアクセスチャレンジ(TLS開始)を受信すると、複合機20にEAPリクエスト(TLS開始)を送信する。
通信制御部34は、このEAPリクエスト(TLS開始)を認証スイッチ60から受信するのを待ち(ステップS130)、受信すると応答として認証スイッチ60にEAPレスポンス(client_hello)を送信する(ステップS140)。複合機20からのEAPレスポンス(client_hello)を受信した認証スイッチ60は、認証サーバー70にRADIUSアクセスリクエスト(レスポンススルー)を送信する。これを受信した認証サーバー70は、自己を証明するサーバー証明書78やそれを検証するためのルートCA証明書,中間CA証明書などの情報を含むRADIUSアクセスチャレンジ(サーバー証明書)を認証スイッチ60に送信する。これを受信した認証スイッチ60は、EAPリクエスト(リクエストスルー)を複合機20に送信する。
通信制御部34は、このEAPリクエスト(リクエストスルー)を認証スイッチ60から受信するのを待ち(ステップS150)、受信すると、EAPリクエスト(リクエストスルー)に含まれるサーバー証明書の検証処理を行う(ステップS160)。例えば、サーバー証明書の有効期限が切れていないことや、サーバー証明書の証明書チェーンを確認して、サーバー証明書やそれに対応付けられたルートCA証明書,中間CA証明書などが信頼できる証明書であることを確認する。
続いて、通信制御部34は、第1記憶領域41に記憶された電子証明書の利用設定情報を調べて、用途がIEEE802.1Xである電子証明書(クライアント証明書)を特定する(ステップS170)。例えば、図2に示した電子証明書A〜Cが第1記憶領域41に記憶されているときには、用途がIEEE802.1Xである電子証明書Aを特定する。そして、通信制御部34は、この特定した電子証明書やそれを検証するためのルートCA証明書,中間CA証明書などの情報を含むEAPレスポンス(クライアント証明書)を認証スイッチ60に送信する(ステップS180)。
複合機20からのEAPレスポンス(クライアント証明書)を受信した認証スイッチ60は、認証サーバー70にRADIUSアクセスリクエスト(レスポンススルー)を送信する。認証サーバー70は、RADIUSアクセスリクエスト(レスポンススルー)に含まれる複合機20のクライアント証明書を検証し、クライアント証明書が信頼できることを確認するとRADIUSアクセスチャレンジ(暗号化方式)を認証スイッチ60に送信する。一方、例えばクライアント証明書の有効期限が切れている場合やクライアント証明書に対応付けられたルートCA証明書などの信頼性が確認できない場合など、クライアント証明書に問題があるときには、認証サーバー70はFailure応答を認証スイッチ60に送信する。認証スイッチ60は、認証サーバー70からRADIUSアクセスチャレンジ(暗号化方式)を受信したときにはEAPリクエスト(リクエストスルー)を複合機20に送信し、認証サーバー70からFailure応答を受信したときにはFailure応答を複合機20に送信する。
通信制御部34は、認証スイッチ60からこのFailure応答を受信する(ステップS190)か又はEAPリクエスト(リクエストスルー)を受信する(ステップS200)まで待つ。そして、EAPリクエスト(リクエストスルー)を受信すると、認証スイッチ60からさらにEAPサクセスを受信するのを待ち(ステップS210)、EAPサクセスを受信すると、認証スイッチ60からEAPOLキーを受信するのを待つ(ステップS220)。EAPOLキーを受信すると、これをコントローラー30のRAM32に記憶して(ステップS230)、本ルーチンを終了する。これにより、複合機20のLAN12への接続が完了し、以降はEAPOLキーを用いた暗号通信により認証スイッチ60やLAN12に接続された機器との間でデータのやり取りが可能になる。なお、ステップS190で認証スイッチ60からFailure応答を受信したとき、すなわちステップS180で送信したクライアント証明書に問題があるなどの理由により接続確立に失敗したときなどには、証明書復旧部36がステップS240〜S290の電子証明書復旧処理を行うが、これについては後述する。
次に、複合機20が第1記憶領域41に記憶する新たな電子証明書をユーザーPC50から取得して電子証明書の更新を行う様子について説明する。図4は、電子証明書更新処理ルーチンの一例を示すフローチャートである。このルーチンは、複合機20とユーザーPC50とが共にLAN12に接続された状態で、ユーザーPC50が新たな電子証明書とその利用設定情報とをインストールさせるインストール指令を複合機20にLAN12を介して送信し、このインストール指令を複合機20が受信したときに実行される。このルーチンは、コントローラー30のCPU31が通信制御部34や証明書更新部35の機能を用いて実行する。
なお、ユーザーPC50のユーザーは、予め申請者の情報などを含むCSR(証明書署名要求)を例えばLAN12やインターネットなどのネットワークを介して図示しない認証局に送信し、認証局から複合機20の新たな電子証明書を取得しておく。そして、取得した電子証明書に対応付ける利用設定情報を入力装置59を介して入力し、複合機20への送信を指示する。これにより、通信制御部51がインストール指令をLAN12を介して複合機20に送信する。なお、新たな証明書をインストールする理由としては、既に第1記憶領域41に記憶されている電子証明書の期限切れが近いことや、LAN12や認証サーバー70の設定変更、認証サーバー70の取替などにより、第1記憶領域41に記憶されている電子証明書が使用できなくなることなどが挙げられる。また、第1記憶領域41に最初に電子証明書をインストールする際にも、ユーザーは上記と同様に新たな電子証明書と利用設定情報とをインストールさせるインストール指令を複合機20に送信するよう入力装置59を介して指示を入力し、インストール指令を受信した複合機20は電子証明書更新処理ルーチンを実行する。
この電子証明書更新処理ルーチンが実行されると、証明書更新部35は、まず、新たな電子証明書とそれに対応付けられた利用設定情報とをLAN12を介してユーザーPC50から取得する(ステップS300)。次に、取得した利用設定情報に含まれる電子証明書の用途を調べ、用途が一致する電子証明書が第1記憶領域41に記憶されているか否かを判定する(ステップS310)。用途が一致する電子証明書が第1記憶領域41に記憶されているときには、その電子証明書及び利用設定情報を第1記憶領域41における位置情報と対応付けて第2記憶領域42に記憶する(ステップS320)。ここで、位置情報は、第1記憶領域41における電子証明書の位置を表す情報であり、本実施形態では「領域1」「領域2」「領域3」のいずれかを表す情報であるものとした。そして、ステップS310で用途が一致する電子証明書が第1記憶領域41に記憶されていないとき又はステップS320のあと、ステップS300で取得した新電子証明書と利用設定情報とを第1記憶領域に41に記憶して(ステップS330)、本ルーチンを終了する。なお、新電子証明書及び利用設定情報は、ステップS320で用途が一致した電子証明書があるときには、その電子証明書及び利用設定情報を第1記憶領域41から削除して同じ位置に新電子証明書及び利用設定情報を記憶する、すなわち上書きする。このように、電子証明書更新処理ルーチンでは、第1記憶領域41に新電子証明書と同じ用途の電子証明書があるときには、その電子証明書を更新すべき旧電子証明書として判定し、旧電子証明書を第2記憶領域42に記憶させると共に、第1記憶領域41における旧電子証明書を新電子証明書に上書きして更新するのである。
続いて、図3の通信接続確立ルーチンにおけるステップS240〜S290の電子証明書復旧処理について説明する。上述したステップS190で認証スイッチ60からFailure応答を受信すると、証明書復旧部36は、第2記憶領域42に電子証明書が記憶されているか否かを調べる(ステップS240)。第2記憶領域42に電子証明書が記憶されているときには、直前のステップS180で送信した電子証明書、すなわちクライアントの認証に失敗した電子証明書と第1記憶領域41の同じ位置にあった電子証明書が第2記憶領域42に記憶されているか否かを調べる(ステップS250)。この処理は、第2記憶領域42に記憶されている電子証明書に対応付けられた位置情報を調べることにより行う。そして、認証に失敗した電子証明書と同じ位置にあった電子証明書が第2記憶領域42に記憶されているときには、その電子証明書を第1記憶領域41の対応する位置に記憶する(ステップS260)。すなわち、第2記憶領域42の電子証明書に対応付けられている位置情報で表される第1記憶領域41の位置に、その電子証明書及び利用設定情報を上書きして記憶する。このように、第1記憶領域41に記憶された電子証明書による認証に失敗したときに、その電子証明書と同じ位置にあった電子証明書が第2記憶領域42にあるときには、認証に失敗した電子証明書を第1記憶領域41から削除して、第2記憶領域42に記憶された電子証明書を第1記憶領域41に復旧するのである。
次に、証明書復旧部36は、第1記憶領域41に記憶された電子証明書での認証に失敗した旨、失敗した電子証明書を削除して更新前の電子証明書を復旧させた旨、及び復旧させた電子証明書での再接続を行うか否かの指示の入力をユーザーに促す旨を表示する図示しない復旧完了表示画面を操作パネル23の表示部に表示させる(ステップS270)。そして、ユーザーからの再接続を行う指示を操作パネル23を介して入力したか否かを判定し(ステップS280)、再接続を行う指示を入力したときにはステップS100以降の処理を行う。すなわち、再び通信接続確立ルーチンを最初から実行する。
一方、ステップS240で第2記憶領域42に電子証明書が記憶されていないとき、認証に失敗した電子証明書と第1記憶領域41の同じ位置にあった電子証明書がステップS250で第2記憶領域42に記憶されていないとき、又はステップS280でユーザーから再接続を行わない旨の指示を操作パネル23を介して入力したときには、LAN12への接続確立を中止して(ステップS290)、本ルーチンを終了する。
ここで、電子証明書更新処理及び電子証明書復旧処理を行う様子について具体的に説明する。図5は、電子証明書の更新と復旧とを行う際の第1記憶領域41及び第2記憶領域42の様子の一例を示す説明図である。図5(a)が更新前の様子を示し、図5(b)が電子証明書更新処理後の様子を示し、図5(c)が復旧後の様子を示している。まず、図2と同様に電子証明書A〜Cが第1記憶領域41に記憶されており、複合機20が通信接続確立ルーチンを実行し電子証明書Aを用いて認証を行ってLAN12に接続された状態で、新たな電子証明書Dとその利用設定情報とをインストールするインストール指令をユーザーPC50から受信したとする(図5(a))。すると、証明書更新部35は電子証明書更新処理ルーチンを実行し、電子証明書Dと用途(IEEE802.1X)が一致する電子証明書Aが第1記憶領域41に記憶されているため、電子証明書A,電子証明書Aの利用設定情報,電子証明書Aの第1記憶領域41における位置を表す位置情報「領域1」を対応付けて第2記憶領域42に記憶する。また、取得した新電子証明書である電子証明書Dとその利用設定情報を第1記憶領域41の領域1に上書きする。このように、電子証明書更新処理ルーチンを実行することにより、図5(b)に示すように新電子証明書(電子証明書D)が第1記憶領域41に記憶されると共に、更新前の旧電子証明書(電子証明書A)が第2記憶領域42に退避される。
その後、電子証明書Dを用いてLAN12と接続を確立すべく通信接続確立ルーチンを実行した際に、電子証明書Dに何らかの問題があると、複合機20はステップS190で認証スイッチ60からFailure応答を受信する。このようなことは、例えば電子証明書D内の情報に誤りがあるとき、電子証明書Dに証明書チェーンで対応付けられたルートCA証明書,中間CA証明書などが信頼できることを認証サーバー70が確認できなかったときに生じる。また、電子証明書Dの本来の用途がIEEE802.1X用でないにも関わらずユーザーPC50での利用設定情報の設定を間違えたことで電子証明書Aを誤って更新してしまった場合など、電子証明書Dの利用設定情報に問題があるときにも認証スイッチ60からFailure応答を受信する場合が生じる。そして、ステップS190で認証スイッチ60からFailure応答を受信すると、証明書復旧部36は、第2記憶領域42に電子証明書Aが記憶されており、この電子証明書Aの位置情報は認証に失敗した電子証明書Dと同じ位置を表しているため、第2記憶領域42の電子証明書Aを第1記憶領域41の領域1の位置に記憶して電子証明書Dに上書きする(図5(c))。これにより、再び通信接続確立ルーチンを実行したときには、第1記憶領域41に記憶された用途がIEEE802.1Xである電子証明書は電子証明書Dではなく、これまで接続を行っていた電子証明書Aに復旧されているから、ステップS190でFailure応答を受信することなくステップS230までの処理を行って接続を確立することができる。そして、接続が確立できれば、LAN12を介して再びユーザーPC50から電子証明書Aを更新するための新たな電子証明書をインストールすることが可能となる。
このように、本実施形態の複合機20では、旧電子証明書を新電子証明書に更新する際に、旧電子証明書を第2記憶領域42に退避させておき、通信制御部34が新電子証明書を用いた通信に失敗したときには、第2記憶領域42に記憶された旧電子証明書を第1記憶領域41に復旧して、接続を確立できるようにするのである。
なお、図3の通信接続確立ルーチンでは、複合機20がIEEE802.1XのEAP−TLS方式でLAN12に接続する場合について説明したが、SSL/TLSやIPsecのプロトコルでネットワークに接続する場合についても同様である。すなわち、SSL/TLSやIPsecのプロトコルで第1記憶領域41の電子証明書を用いた通信に失敗したとき(例えば電子証明書にエラーがある旨の通知を受信したとき)には、ステップS240〜S290の電子証明書復旧処理を行う。
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のフラッシュメモリー33が本発明の記憶手段に相当し、通信I/F26及び通信制御部34が通信手段に相当し、証明書更新部35が証明書更新手段に相当し、証明書復旧部36が証明書復旧手段に相当し、旧電子証明書が第1電子証明書に相当し、新電子証明書が第2電子証明書に相当する。また、操作パネル23の表示部が報知手段に相当し、印刷機構21が画像形成手段に相当する。なお、本実施形態では、複合機20の動作を説明することにより本発明の通信装置の情報処理方法の一例も明らかにしている。
以上説明した本実施形態の複合機20によれば、第1記憶領域41に記憶済みの旧電子証明書を新電子証明書に更新する際に、旧電子証明書を第2記憶領域42に記憶させると共に、旧電子証明書を第1記憶領域41から削除して新電子証明書を第1記憶領域41に記憶させる。そして、第1記憶領域41に記憶されている新電子証明書を用いた通信に失敗したときには、第2記憶領域42に記憶された旧電子証明書を第1記憶領域41に記憶させる。このように、旧電子証明書を新電子証明書に更新する際に、旧電子証明書を第2記憶領域42に退避させておき、新電子証明書を用いた通信に失敗したときには、第2記憶領域42に記憶された旧電子証明書を第1記憶領域41に復旧する。こうすることで、旧電子証明書はそれまで通信に用いられていた可能性が高いため、第1記憶領域41に再度記憶された旧電子証明書を用いて通信を行える可能性がある。すなわち、新しい電子証明書を用いた通信に失敗したときでも電子証明書を用いた通信を可能にすることができる。
また、複合機20は、第1記憶領域41に記憶済みの旧電子証明書を新電子証明書に更新する際に、旧電子証明書と第1記憶領域41に記憶されていた旧電子証明書の位置を表す位置情報とを対応付けて第2記憶領域42に記憶させ、新電子証明書を用いた通信に失敗したときには、旧電子証明書に対応付けられた位置情報で表される第1記憶領域41における位置の領域に、旧電子証明書を記憶させる。このため、旧電子証明書を第1記憶領域41の元の位置に戻すことができ、第1記憶領域41を更新前の状態になるべく近い状態に戻すことができる。すなわち、第1記憶領域41を旧電子証明書を用いた通信が可能であったときの状態になるべく近い状態に戻すことができる。しかも、位置情報を用いることで旧電子証明書を確実に第1記憶領域41の元の位置に戻すことができる。
さらに、複合機20は、新電子証明書を用いた通信に失敗したときには、新電子証明書を第2記憶領域42に記憶された旧電子証明書で上書きして、第1記憶領域41から新電子証明書を削除する。そのため、例えば旧電子証明書を第1記憶領域41に復旧させたあとの通信で新電子証明書を用いてしまい通信(認証処理)が失敗するなど、一度通信に失敗した新電子証明書が復旧後の通信に悪影響を及ぼすのを防止できる。
さらにまた、新電子証明書を用いた通信に失敗したときには、旧電子証明書を第1記憶領域41に記憶させたを表示してユーザーに報知するため、第1記憶領域41に復旧された旧電子証明書を用いて通信を行える可能性がある旨をユーザーに報知することができる。
そしてまた、複合機20は、新電子証明書を第1記憶領域41に記憶させる際に、新電子証明書に対応付けられた利用設定情報と第1記憶領域41に記憶された複数の電子証明書にそれぞれ対応付けられた利用設定情報とに基づいて、複数の電子証明書のいずれが新電子証明書に更新すべき旧電子証明書であるかを判定し、判定した旧電子証明書を新電子証明書に更新する。そのため、電子証明書の更新をより適切に行うことができ、更新後の新電子証明書を用いた通信が失敗することをより抑制することができる。
そしてまた、複合機20は、新電子証明書を用いた通信を試みて新電子証明書にエラーがある旨の通知(Failure応答)を通信先の認証スイッチ60からから受け取ったときには、第2記憶領域42に記憶された旧電子証明書を第1記憶領域41に記憶させる。そのため、新電子証明書が原因で通信に失敗したときに、旧電子証明書を第1記憶領域41に復旧して、より確実に電子証明書を用いた通信を可能にすることができる。
そしてまた、複合機20は、電子証明書を用いた認証処理によりLAN12に接続するものであり、電子証明書をLAN12を介して取得可能であるため、旧電子証明書を復旧して通信を可能にする本発明を適用する意義が高い。
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
例えば、上述した実施形態では、図5(c)に示したように、電子証明書復旧処理のステップS260の処理を行ったあとも第2記憶領域42に記憶された旧電子証明書はそのままであるものとしたが、これを削除するものとしてもよい。例えば、旧電子証明書を第1記憶領域41に記憶した直後に第2記憶領域42に記憶されている旧電子証明書を削除するものとしてもよい。また、電子証明書更新処理を行って第1記憶領域41にインストールした新電子証明書を用いた初の通信においてLAN12との接続が成功したときには、その新電子証明書を第1記憶領域41に記憶する際に第2記憶領域41に記憶させた旧電子証明書を、第2記憶領域42から削除するものとしてもよい。このようにすれば、不要となった旧電子証明書を第2記憶領域42から速やかに削除することができる。これにより、第2記憶領域42を開放することができると共に、旧電子証明書に含まれる個人情報などの秘密情報が漏れることを抑制できる。
上述した実施形態では、第1記憶領域41に記憶可能な電子証明書は3つであり、第2記憶領域42に記憶可能な電子証明書は1つであるものとしたが、第1記憶領域41に記憶可能な電子証明書が1つ,2つ,3つ以上などとしてもよいし、第2記憶領域42に記憶可能な電子証明書が2つ以上であるものとしてもよい。
上述した実施形態では、電子証明書更新処理ルーチンのステップS320において、新電子証明書と用途が一致する旧電子証明書が第1記憶領域41に記憶されているときには、旧電子証明書及びその利用設定情報を第1記憶領域41における位置情報と対応付けて第2記憶領域42に記憶するものとし、位置情報は「領域1」「領域2」「領域3」のいずれかであるものとしたが、電子証明書復旧処理において旧電子証明書を第1記憶領域41の更新前の元の位置に戻すことができれば、どのような位置情報を用いてもよい。例えば、第1記憶領域41における旧電子証明書の記憶位置の先頭アドレスなどを位置情報として用いてもよい。また、位置情報と対応付けて第2記憶領域42に記憶しなくとも、第2記憶領域42に記憶されている旧電子証明書を、更新前に旧電子証明書が第1記憶領域41に記憶されていた位置に戻すものであればよい。例えば、電子証明書更新処理において新電子証明書を旧電子証明書と同じ位置に上書きする場合には、電子証明書復旧処理において第2記憶領域42に記憶された旧電子証明書を、通信に失敗した第1記憶領域41の新電子証明書と同じ位置に上書きするものとすればよい。この場合、電子証明書更新処理において、新電子証明書と第2記憶領域42に記憶させる旧電子証明書との対応関係をフラッシュメモリー33に記憶しておくものとしてもよい。あるいは、電子証明書更新処理において、更新前の第1記憶領域41に記憶された情報を全て第2記憶領域42にコピーすることで旧電子証明書の退避を行い、電子証明書復旧処理において、第2記憶領域42に記憶された情報で第1記憶領域41全体を上書きすることで旧電子証明書の復旧を行ってもよい。
上述した実施形態では、複合機20はIEEE802.1Xに従ってLAN12と接続されるものとしたが、電子証明書を用いた通信を行うものであればよく、例えば他のプロトコルによりLAN12と接続されるものとしてもよい。また、LAN12に限らず他のネットワークに接続されるものとしてもよいし、ネットワークに接続されず電子証明書を用いて通信先の機器と1対1の通信を行うものであってもよい。
上述した実施形態では、認証サーバー70はLAN12に接続されているものとしたが、例えばLAN12にルーターを介して接続されたインターネットに認証サーバーが接続されているなど、複合機20が接続されるネットワークとは別のネットワークに認証サーバー70が接続されていてもよい。
上述した実施形態では、複合機20は、ユーザーPC50からのインストール指令によりLAN12を介して電子証明書を取得するものとしたが、これに限られない。例えば、ユーザーPC50と直接LANケーブルなどにより接続して、ユーザーPC50から電子証明書を取得してもよい。また、複合機20が電子証明書を用いた認証を必要としないネットワークに接続し、このネットワークを介して認証局から電子証明書を取得してもよい。
上述した実施形態では、通信接続確立ルーチンのステップS190でFailure応答を受信したとき、すなわち電子証明書にエラーがある旨の通知を通信先から受信したときに、旧電子証明書復旧処理を行うものとしたが、これに限られない。例えば、通信接続確立に失敗したときには、失敗理由に関わらず旧電子証明書復旧処理を行うものとしてもよい。
上述した実施形態では、電子証明書更新処理において、第1記憶領域41に記憶された電子証明書のうち新電子証明書と用途が一致する電子証明書を、更新すべき旧電子証明書と判定したが、これに限らず電子証明書に付された付属情報に基づいて判定するものであればよい。例えば、電子証明書の用途以外の利用設定情報に基づいて判定してもよいし、電子証明書の基本領域や拡張領域に含まれる情報などの電子証明書を構成する少なくとも一部の情報に基づいて更新すべき旧電子証明書を判定してもよい。また、新電子証明書と付属情報が一致する電子証明書を旧電子証明書と判定するものに限らず、付属情報の一致度が高い電子証明書を旧電子証明書と判定してもよい。さらに、ユーザーがいずれの電子証明書を新電子証明書に更新するかを指定してもよい。
上述した実施形態では、第1記憶領域41や第2記憶領域42には電子証明書と利用設定情報とを対応付けて記憶するものとしたが、電子証明書に利用設定情報が対応付けられていないものとしてもよい。
上述した実施形態では、電子証明書復旧処理のステップS260で旧電子証明書を第1記憶領域41に記憶させたあとにステップS270の復旧完了表示を行うものとしたが、ステップS260を行う前に、認証に失敗した新電子証明書を削除して更新前の旧電子証明書を復旧させる旨の表示を行うものとしてもよい。この場合、旧電子証明書を復旧させるか否かの指示を入力するようユーザーに促す画面を表示して、ユーザーから操作パネル23を介して復旧指示を入力したときのみステップS260の処理を行うものとしてもよい。また、ステップS270の処理は操作パネル23に画面を表示することでユーザーに報知を行うものとしたが、例えば音声で報知を行ったり、画像を印刷して報知を行ったりするなど、どのような方法でユーザーに報知してもよい。
上述した実施形態では、電子証明書復旧処理のステップS260において、第2記憶領域42に記憶されている旧電子証明書で第1記憶領域41の新電子証明書を上書きするものとしたが、第1記憶領域41の新電子証明書とは別の領域に旧電子証明書を復旧するものとしてもよい。すなわち、旧電子証明書を復旧する際に新電子証明書を削除しないものとしてもよい。
上述した実施形態では、第1記憶領域41及び第2記憶領域42はいずれもフラッシュメモリー33内の領域であるものとしたが、第1記憶領域41と第2記憶領域42とは別の記憶媒体の領域であるものとしてもよい。また、第1記憶領域41と第2記憶領域42との少なくとも一方が複数の記憶媒体からなる領域としてもよい。また、第2記憶領域42は、RAM32内の領域とするなど不揮発性メモリ内の領域としてもよい。
上述した実施形態では、証明書更新部35は、第1記憶領域41に記憶済みの旧電子証明書を新電子証明書に更新する際に、旧電子証明書を第2記憶領域42に記憶させると共に、旧電子証明書を第1記憶領域41から削除して新電子証明書を第1記憶領域41に記憶させるものとしたが、第1記憶領域41に記憶済みの旧電子証明書を新電子証明書に更新する際に、旧電子証明書を第2記憶領域42に記憶させた状態にすると共に、旧電子証明書に代えて新電子証明書を第1記憶領域41に記憶させた状態にするものであれば、これに限られない。例えば、フラッシュメモリー33に記憶された旧電子証明書のデータ自体については移動や削除を行わず、それまで旧電子証明書が記憶されていた領域を第1記憶領域41から第2記憶領域42に変更するものとしてもよい。新電子証明書についても、それまで第1記憶領域41であった領域に新電子証明書を記憶するのではなく、フラッシュメモリー33の第1記憶領域41以外の領域に新電子証明書を記憶し、その領域を第1記憶領域41に変更するものとしてもよい。
上述した実施形態では、第1記憶領域41に記憶されている新電子証明書を用いた通信に失敗したときには、第2記憶領域42に記憶された旧電子証明書を第1記憶領域41に記憶させるものとしたが、新電子証明書を用いた通信に失敗したときには、第2記憶領域42に記憶された旧電子証明書を第1記憶領域に記憶させた状態にするものであればよい。例えば、フラッシュメモリー33の第2記憶領域42に記憶された旧電子証明書のデータ自体については移動や削除を行わず、それまで旧電子証明書が記憶されていた領域を第2記憶領域42から第1記憶領域41に変更するものとしてもよい。この場合、それまで新電子証明書が記憶されていた第1記憶領域41中の領域については、第1記憶領域41から第2記憶領域42などの第1記憶領域41以外の領域に変更するものとしてもよい。
上述した実施形態では、複合機20と認証スイッチ60とは有線で接続されるものとしたが、無線で接続されるものとしてもよい。
上述した実施形態では、印刷機能とスキャン機能とを備える複合機20として説明したが、電子証明書を用いた通信を行う通信装置であればよい。例えば、印刷機能のみを備えたプリンターに適用するものとしてもよいし、ファクシミリ装置などに適用するものとしてもよい。
上述した実施形態では、本発明の通信装置及び画像形成装置を複合機20に具体化した例を用いて説明したが、通信装置の情報処理方法の形態とするものとしてもよいし、通信装置の情報処理方法の各ステップを1または複数のコンピューターに実現させるためのプログラムの形態とするものとしてもよい。