次に、本発明の実施の形態を図面を用いて説明する。図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への接続を遮断して、その機器を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は、スキャナーとしても機能すると共にプリンターとしても機能する装置であり、IEEE802.1Xの規格に従った認証処理を行ってLAN12などのネットワークに接続され、ネットワークに接続された他の機器(例えばユーザーPC50)から通信によりネットワークを介して画像データや電子証明書などのデータを取得したり、スキャンした画像データをネットワークを介して他の機器に送信したりすることが可能な装置である。この複合機20は、通信I/F26を介して例えばLANケーブルなどにより認証スイッチ60と接続されている。複合機20は、画像データなどに基づく画像を紙などの媒体に形成する印刷機構21と、紙などの媒体の画像などをスキャンして画像データとする読取機構22と、ユーザーに各種情報を表示したりユーザーからの各種指示が入力されたりする操作パネル23と、装置全体を制御するコントローラー30と、を備えている。印刷機構21は、各色のインクに圧力をかけこの加圧されたインクを媒体に吐出することで画像データに基づく画像を媒体に形成する印刷処理を実行するインクジェット方式の機構である。なお、インクへ圧力をかける機構は、圧電素子の変形によるものとしてもよいしヒーターの熱による気泡の発生によるものとしてもよい。また、読取機構22は、ガラス台に載置された書類に向かって発光したあとの反射光を各色に分解して読取データとする周知のカラーイメージセンサーを走査して原稿を読み取るスキャナー機構として構成されている。操作パネル23は、画像を表示する液晶ディスプレイとして構成された表示部と、ユーザーが各種入力を行うキーが配置された操作部とを備えており、表示部によりユーザーに各種情報を出力したり、ユーザーからの指示を操作部から入力したりする。
複合機20のコントローラー30は、CPU31を中心とするマイクロプロセッサーとして構成されており、一時的にデータを記憶したりデータを保存したりするRAM32と、各種処理プログラムや各種データを記憶し書き換え可能なフラッシュメモリー33とを備えている。フラッシュメモリー33には、通信I/F26を介して他の機器と通信を行うための通信設定情報を記憶する通信設定情報領域40と、複合機20自身を証明するための電子証明書(クライアント証明書とも称する)を記憶するクライアント証明書領域41と、CA証明書(ルートCA証明書及び中間CA証明書)を記憶するCA証明書領域42と、が設けられている。図2は、フラッシュメモリー33に記憶されたデータの説明図である。図示するように、通信設定情報領域40には、IEEE802.1Xに従って通信を行うためのIEEE802.1X設定情報など、通信を行うために必要な各種設定情報が記憶されている。例えば、IEEE802.1X設定情報としては、IEEE802.1Xが現在有効か無効かを表す情報や、認証方式,認証に用いるクライアント証明書を指定する情報、ユーザーID、サーバーID、サーバーIDに対応付けられたCA証明書を指定する情報、などが含まれている。
クライアント証明書領域41には、クライアント証明書Aなど、複合機20自身を証明するための電子証明書が記憶されている。クライアント証明書Aは、基本領域,拡張領域,認証局の署名を有している。基本領域には、複合機20やその利用者などの情報である申請元情報(主体者情報ともいう)や、クライアント証明書Aを発行した認証局に関する情報である発行者情報、有効期限などが含まれている。申請元情報には、例えば複合機20やその利用者の所属する国名,会社名,部署名や、複合機20のIPアドレスなどの情報が含まれている。なお、クライアント証明書の発行を要求するために図示しない認証局に送信するCSR(証明書署名要求)に予め申請者に関する情報を登録しておくと、発行されたクライアント証明書の申請元情報にはその情報が反映される。そのため、申請元情報にどのような情報を含めるかは、CSRの作成時に複合機20の利用者や管理者などが任意に定めることができる。また、クライアント証明書領域41に記憶されているクライアント証明書には、クライアント証明書の用途などのクライアント証明書に関する情報を含む利用設定情報が対応付けられている。例えば、クライアント証明書Aには、クライアント証明書Aの用途がIEEE802.1Xである旨の情報を含む利用設定情報が対応付けられている。CA証明書領域42には、例えばルートCA証明書A,Bや中間CA証明書A,BなどのCA証明書が記憶されている。CA証明書領域42に記憶されたCA証明書は、クライアント証明書領域41に記憶されたクライアント証明書や認証処理において取得するサーバー証明書などの信頼性を検証するために用いるものである。クライアント証明書領域41に記憶されたクライアント証明書については、証明書チェーンが構成されている場合があり、この場合にはクライアント証明書からルートCA証明書までの一連のCA証明書がクライアント証明書に対応付けられている。
このコントローラー30は、印刷機構21や読取機構22からの各種動作信号や各種検出信号を入力したり、操作パネル23の操作部の操作に応じて発生する操作信号を入力したり、他の機器から送信された各種データを通信I/F26から入力したりする。また、コントローラー30は、画像を印刷するよう印刷機構21に指令を出力したり、原稿を読み取るよう読取機構22に指令を出力したり、操作パネル23の表示部に表示指令や表示する画像データを出力したり、他の機器に送信する各種データを通信I/F26に出力したりする。
また、コントローラー30は、機能ブロックとして、通信制御部34と、診断部35と、印刷制御部36とを備えている。通信制御部34は、通信I/F26を介して接続された他の機器との通信を制御するものである。この通信制御部34は、IEEE802.1Xの規格に従い、EAP−TLSやPEAP/MSCHAPv2などの方式で認証処理を行ってLAN12などのネットワークに接続するwpa_supplicantとしての機能であるIEEE802.1X機能や、認証処理に成功したあとにネットワークを介したデータの送受信などを行ったりする機能を有する。なお、通信制御部34のIEEE802.1X機能は有効無効を例えば操作パネル23の操作部を操作することで切替可能であり、無効の場合には認証処理を要しないネットワークに接続可能となる。また、通信制御部34は、認証処理を行う際に必要に応じて通信設定情報領域40,クライアント証明書領域41,CA証明書領域42の情報を参照する。
診断部35は、通信制御部34が行う認証処理の内容に基づいて、認証処理に関するエラーの有無及びエラーの内容を診断する機能を有する。具体的には、診断部35は、認証処理に関する予め定められた複数のチェック項目の良否を認証処理中に順次判定し、不良と判定されたチェック項目に基づいて、エラーの内容を診断する。本実施形態では、IEEE802.1XのEAP−TLS方式とPEAP/MSCHAPv2方式とについて、それぞれチェック項目が定められているものとした。チェック項目としては、EAP−TLS方式の場合には、IEEE802.1Xの機能が有効か、ユーザーIDが設定済みか、クライアント証明書は有効期限内か、ユーザーIDにエラーがないか、サーバー証明書は有効期限内か、サーバーIDにエラーがないか、サーバー証明書に対応するCA証明書の指定にエラーはないか、サーバー証明書の証明書チェーンに以上はないか、クライアント認証にエラーはないか、の計9つの項目が予め定められているものとした。また、PEAP/MSCHAPv2方式の場合には、クライアント証明書にエラーがないかをチェックする代わりにユーザーID及びパスワードにエラーはないかをチェックする点以外は、EAP−TLS方式と同様にして計9つのチェック項目が予め定められているものとした。また、各チェック項目には、認証処理において良否を判定するタイミングや、不良と判定したときのエラー内容などが対応付けられ、図示しないチェック項目テーブルとしてフラッシュメモリー33に記憶されているものとした。
印刷制御部36は、印刷機構21を制御するものであり、印刷すべき画像データを印刷機構21に送信して画像データに基づく画像を媒体に形成させる機能を有する。印刷制御部36は、通信制御部34が認証処理に失敗したときには、診断部35により診断されたエラーの内容を含むステータス情報をステータスシートとして媒体に印刷するよう印刷機構21を制御する機能を有する。
ユーザー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は、複合機20とユーザーPC50とがLANケーブルにより直接接続された状態において、通信設定情報領域40などに記憶されたデータを読み出してディスプレイ58に表示させたり、入力装置59を介してユーザーから入力したデータを通信設定情報領域40に記憶させて設定変更を行ったりする機能を有する。また、通信制御部51は、複合機20に画像データを出力したり、複合機20から読み取った画像データを入力したりする機能を有する。記憶部53には、通信I/F54を介して他の機器と通信を行うための通信設定情報56や、ユーザーPC50自身を証明するためのクライアント証明書57が記憶されている。
なお、ユーザーPC50は、複合機20とLANケーブルにより直接接続することで、複合機20の通信設定情報領域40に記憶されるIEEE802.1X設定情報などの通信設定情報やクライアント証明書領域41,CA証明書領域42に記憶される電子証明書をユーザーPC50から複合機20に送信して、フラッシュメモリー33に記憶させることができるようになっている。
認証サーバー70は、RADIUSサーバーとして構成されており、認証スイッチ60を介して複合機20やユーザーPC50などのクライアントから送信された認証要求を受け付け、クライアントに対してIEEE802.1XにおけるEAP−TLS方式での認証処理を行って認証結果を応答する装置である。認証サーバー70は、通信I/F74を介してLAN12と接続されており、認証処理を行うクライアント認証部71と、各種プログラムや各種データを記憶する記憶部73とを備えている。記憶部73には、CA証明書,中間CA証明書やクライアントのIDなどの認証処理に用いる情報である認証情報76や、認証サーバー70自身を証明するためのサーバー78が記憶されている。
次に、こうして構成された本実施形態のネットワークシステム10の動作、特に、複合機20がIEEE802.1Xに従った認証処理を行う様子について説明する。図3は、コントローラー30のCPU31によって実行される認証処理ルーチンの一例を示すフローチャートである。このルーチンは、フラッシュメモリー33に記憶され、複合機20の電源がオンされ且つ複合機20と認証スイッチ60とがLANケーブルなどで接続された状態となったときに実行される。なお、このルーチンは、コントローラー30のCPU31が通信制御部34,診断部35,印刷制御部36の機能を用いて実行する。
この認証処理ルーチンが実行されると、CPU31は、まず、認証準備処理を行う(ステップS100)。図4は、認証準備処理の一例を示すフローチャートである。この認証準備処理が開始されると、診断部35は、通信制御部34のIEEE802.1X機能が有効か否かを判定する(ステップS200)。そして、IEEE802.1X機能が有効であればエラー(設定無効)なしを示す情報をRAM32に記憶し(ステップS210)、無効であればエラー(設定無効)ありを示す情報をRAM32に記憶する(ステップS220)。エラー(設定無効)なしであったときには、通信設定情報領域40のIEEE802.1X設定情報のユーザーIDが設定済みか否かを判定する(ステップS230)。そして、設定済みであればエラー(設定項目が未設定)なしを示す情報をRAM32に記憶し(ステップS240)、未設定であればエラー(設定項目が未設定)ありを示す情報をRAM32に記憶する(ステップS250)。
エラー(設定無効)なしであったときには、CPU31は、通信設定情報領域40のIEEE802.1X設定情報で設定された認証方式がEAP−TLSであるかPEAP/MSCHAPv2であるかを調べる(ステップS260)。例えば図2に示したようにIEEE802.1X設定情報が設定されている場合には、認証方式はEAP−TLSであると判定する。そして、認証方式がPEAP/MSCHAPv2であるときには、通信制御部34は、IEEE802.1X設定情報で設定されたユーザーIDとパスワードを通信設定情報領域40から読み込んで(ステップS270)、認証準備処理を終了する。
一方、認証方式がEAP−TLSであるときには、CPU31は、IEEE802.1X設定情報で設定されたクライアント証明書が有効期限内であるか否かを判定する(ステップS280)。例えば図2に示したようにIEEE802.1X設定情報が設定されている場合には、クライアント証明書Aが有効期限内であるか否かを判定する。そして、有効期限内であればエラー(クライアント証明書期限切れ)なしを示す情報をRAM32に記憶し(ステップS290)、未設定であればエラー(クライアント証明書期限切れ)ありを示す情報をRAM32に記憶する(ステップS300)。
そして、エラー(クライアント証明書期限切れ)なしであったときには、CPU31は、IEEE802.1X設定情報で設定されたクライアント証明書に証明書チェーンが構成されており、クライアント証明書に対応づけられたCA証明書があるか否かを調べる(ステップS310)。そして、対応づけられたCA証明書があるときには、クライアント証明書及びチェーン関係にあるCA証明書を全てクライアント証明書領域41,CA証明書領域42から読み込んで(ステップS320)、認証準備処理を終了する。また、対応づけられたCA証明書がないとき、すなわちクライアント証明書が自己署名証明書であるときには、クライアント証明書をクライアント証明書領域41から読み込んで(ステップS330)、認証準備処理を終了する。一方、何らかのエラーがあったときすなわちステップS220,S250,S300のいずれかを行ったときには、そのまま認証準備処理を終了する。
このように、認証準備処理では、認証処理に必要な情報を通信設定情報領域40やクライアント証明書領域41,CA証明書領域42から読み込む処理を行う。また、各チェック項目の良否を判定して判定結果に基づくエラーの有無及びその内容をRAM32に記憶し、1つでもエラーがあるときにはその場で認証準備処理を終了する。
図3の認証処理ルーチンの説明に戻る。ステップS100の認証準備処理を行うと、CPU31は、認証準備処理でエラーがあったか否かをRAM32に記憶されたエラーの有無を示す情報に基づいて判定する(ステップS110)。続いて、1つもエラーがなかったときには、通信制御部34は、IEEE802.1X設定情報で設定された認証方式がEAP−TLSであるかPEAP/MSCHAPv2であるかを調べる(ステップS120)。そして、認証方式がEAP−TLSであったときには、サーバー証明書とクライアント証明書とを用いて相互認証を行うEAP−TLS認証処理を実行し(ステップS130)、認証処理がPEAP/MSCHAPv2であったときには、サーバー証明書と複合機20のユーザーID,パスワードとを用いて相互認証を行うPEAP/MSCHAPv2認証処理を実行する(ステップS140)。
まず、ステップS130のEAP−TLS認証処理について説明する。図5は、EAP−TLS認証処理の前半部分を示すフローチャートであり、図6は、EAP−TLS認証処理の後半部分を示すフローチャートである。このEAP−TLS認証処理が開始されると、CPU31は、まず、接続要求としてのEAPOL開始フレームを認証スイッチ60に送信し(ステップS400)、認証スイッチ60からの応答であるEAPリクエスト(ID要求)を受信するのを待つ(ステップS405)。EAPリクエスト(ID要求)を受信すると、IEEE802.1X設定情報で設定された複合機20のユーザーIDを付した認証要求であるEAPレスポンス(ID通知)を送信する(ステップS410)。認証スイッチ60は、複合機20から受信したEAPレスポンス(ID通知)に基づいて生成したRADIUSアクセスリクエスト(ID通知)を、LAN12を介して認証サーバー70に送信する。認証サーバー70は、RADIUSアクセスリクエスト(ID通知)に含まれるユーザーIDを確認し、ユーザーIDにエラーがなければ、RADIUSアクセスチャレンジ(TLS開始)を認証スイッチ60に送信して、TSLによるユーザー認証を開始する。一方、ユーザーIDにエラーがある場合には、Failure応答を認証スイッチ60に送信する。認証スイッチ60は、認証サーバー70からRADIUSアクセスチャレンジ(TLS開始)を受信すると、複合機20にEAPリクエスト(TLS開始)を送信し、Failure応答を受信すると、複合機20にFailure応答を送信する。
CPU31は、認証スイッチ60からこのFailure応答を受信する(ステップS415)か又はEAPリクエスト(TLS開始)を受信する(ステップS420)まで待つ。そして、Failure応答を受信すると、エラー(ユーザーIDエラー)ありを示す情報をRAM32に記憶して(ステップS425)、EAP−TLS認証処理を終了(中止)する。一方、EAPリクエスト(TLS開始)を受信すると、エラー(ユーザーIDエラー)なしを示す情報をRAM32に記憶して(ステップS430)、応答として認証スイッチ60にEAPレスポンス(client_hello)を送信する(ステップS435)。複合機20からのEAPレスポンス(client_hello)を受信した認証スイッチ60は、認証サーバー70にRADIUSアクセスリクエスト(レスポンススルー)を送信する。これを受信した認証サーバー70は、自己を証明するサーバー証明書78やそれを検証するためのルートCA証明書,中間CA証明書などの情報を含むRADIUSアクセスチャレンジ(サーバー証明書)を認証スイッチ60に送信する。これを受信した認証スイッチ60は、EAPリクエスト(リクエストスルー)を複合機20に送信する。
CPU31は、このEAPリクエスト(リクエストスルー)を認証スイッチ60から受信するのを待ち(ステップS440)、受信すると、EAPリクエスト(リクエストスルー)に含まれるサーバー証明書が有効期限内か否かを判定する(ステップS445)。サーバー証明書が有効期限切れであるときには、エラー(サーバー証明書エラー)ありを示す情報をRAM32に記憶して(ステップS450)、EAP−TLS認証処理を終了(中止)する。一方、サーバー証明書が有効期限内であるときには、エラー(サーバー証明書エラー)なしを示す情報をRAM32に記憶する(ステップS455)。
次に、CPU31は、サーバー証明書がルートCA証明書(自己署名証明書)であるか否かを調べる(ステップS460)。そして、サーバー証明書がルートCA証明書(自己署名証明書)でないときには、サーバー証明書に含まれるサーバーIDがIEEE802.1X設定情報で設定されたサーバーIDと一致するか否かを調べる(ステップS465)。一致しないときには、エラー(サーバーIDエラー)ありを示す情報をRAM32に記憶して(ステップS470)、EAP−TLS認証処理を終了(中止)する。一方、一致するときには、エラー(サーバーIDエラー)なしを示す情報をRAM32に記憶する(ステップS475)。
続いて、CPU31は、認証スイッチ60から受信したサーバー証明書、及びそれに対応付けられたCA証明書について、IEEE802.1X設定情報で設定されたサーバーのCA証明書を用いた比較及び検証を行い、受信したサーバー証明書等の信頼性を確認する(ステップS480)。例えば、図2に示したようにIEEE802.1X設定情報が設定されている場合には、CA証明書としてルートCA証明書Bと中間CA証明書Bとを用いて比較及び検証を行う。そして、比較の結果、受信したサーバー証明書に対応付けられたCA証明書とIEEE802.1X設定情報で設定されたCA証明書とが一致したか否かを判定し(ステップS485)、一致しないときには、IEEE802.1X設定情報で設定されたCA証明書に不備がある旨のエラー(CA証明書指定エラー)ありを示す情報をRAM32に記憶して(ステップS490)、EAP−TLS認証処理を終了(中止)する。一方、一致するときには、エラー(CA証明書指定エラー)なしを示す情報をRAM32に記憶する(ステップS495)。
次に、CPU31は、ステップS480の検証の結果、サーバー証明書の証明書チェーンに異常がないか否かを判定し(ステップS500)、異常があるときには、エラー(サーバー証明書エラー)ありを示す情報をRAM32に記憶して(ステップS505)、EAP−TLS認証処理を終了(中止)する。一方、異常がないときには、エラー(サーバー証明書エラー)なしを示す情報をRAM32に記憶する(ステップS510)。
一方、ステップS460でサーバー証明書がルートCA証明書(自己署名証明書)であるときには、CPU31は、認証スイッチ60から受信したサーバー証明書について、IEEE802.1X設定情報で設定されたサーバーのルートCA証明書を用いた比較及び検証を行い、受信したサーバー証明書の信頼性を確認する(ステップS515)。そして、比較及び検証の結果、サーバー証明書とIEEE802.1X設定情報で設定されたサーバーのルートCA証明書とが一致するか否かを判定し(ステップS520)、一致しないときには、ステップS490に進んでエラー(CA証明書指定エラー)ありを示す情報をRAM32に記憶し、EAP−TLS認証処理を終了(中止)する。一方、一致するときには、エラー(CA証明書指定エラー)なしを示す情報をRAM32に記憶する(ステップS525)。
ステップS510又はステップS525のあと、図6に示すように、CPU31は、認証準備処理のステップS320又はS330で読み込んだクライアント証明書等の情報を含むEAPレスポンス(クライアント証明書)を認証スイッチ60に送信する(ステップS530)。
複合機20からのEAPレスポンス(クライアント証明書)を受信した認証スイッチ60は、認証サーバー70にRADIUSアクセスリクエスト(レスポンススルー)を送信する。認証サーバー70は、RADIUSアクセスリクエスト(レスポンススルー)に含まれる複合機20のクライアント証明書を検証し、クライアント証明書が信頼できることを確認するとRADIUSアクセスチャレンジ(暗号化方式)を認証スイッチ60に送信する。一方、例えばクライアント証明書の有効期限が切れている場合やクライアント証明書に対応付けられたCA証明書などの信頼性が確認できない場合など、クライアント証明書に問題があるときには、認証サーバー70はFailure応答を認証スイッチ60に送信する。認証スイッチ60は、認証サーバー70からRADIUSアクセスチャレンジ(暗号化方式)を受信したときにはEAPリクエスト(リクエストスルー)を複合機20に送信し、認証サーバー70からFailure応答を受信したときにはFailure応答を複合機20に送信する。
CPU31は、認証スイッチ60からこのFailure応答を受信する(ステップS535)か又はEAPリクエスト(リクエストスルー)を受信する(ステップS540)まで待つ。そして、Failure応答を受信すると、エラー(クライアント認証エラー)ありを示す情報をRAM32に記憶して(ステップS545)、EAP−TLS認証処理を終了(中止)する。一方、EAPリクエスト(リクエストスルー)を受信すると、エラー(クライアント認証エラー)なしを示す情報をRAM32に記憶する(ステップS550)。そして、認証スイッチ60からEAPサクセスを受信するのを待ち(ステップS555)、EAPサクセスを受信すると、認証スイッチ60からEAPOLキーをさらに受信するのを待つ(ステップS560)。EAPOLキーを受信すると、これをコントローラー30のRAM32に記憶して(ステップS565)、認証処理を終了する。これにより、複合機20のLAN12への接続が完了し、以降はEAPOLキーを用いた暗号通信により認証スイッチ60やLAN12に接続された機器との間でデータのやり取りが可能になる。
次に、ステップS140のPEAP/MSCHAPv2認証処理について説明する。図7は、PEAP/MSCHAPv2認証処理の一例を示すフローチャートである。PEAP/MSCHAPv2認証処理は、ステップS530〜S555の処理が異なる以外はEAP−TLS認証処理と同じである。そのため、図5,6のEAP−TLS認証処理と異なる部分についてのみ図7に図示し、重複する処理については説明を省略する。ステップS510又はS525の処理を行うと、図7に示すように、CPU31は、EAPレスポンスを認証スイッチ60に送信する(ステップS600)。複合機20からのEAPレスポンスを受信した認証スイッチ60は、認証サーバー70にRADIUSアクセスリクエスト(レスポンススルー)を送信する。これを受信した認証サーバー70は、RADIUSアクセスチャレンジ(暗号化方式)を認証スイッチ60に送信する。これを受信した認証スイッチ60は、EAPリクエスト(リクエストスルー)を複合機20に送信する。また、認証サーバー70はその後RADIUSアクセスチャレンジ(EAP/MSCHAPv2要求)を認証スイッチ60に送信し、これを受信した認証スイッチ60は、EAPリクエスト(リクエストスルー)を複合機20に送信する。
次に、CPU31は、認証サーバー70が送信したRADIUSアクセスチャレンジ(暗号化方式)とRADIUSアクセスチャレンジ(EAP/MSCHAPv2要求)とにそれぞれ対応するEAPリクエスト(リクエストスルー)を認証スイッチ60から受信するまで待つ(ステップS605,S610)。そして、これらを受信すると、EAPレスポンス(EAP/MSCHAPv2応答)を送信する(ステップS615)。複合機20からのEAPレスポンス(EAP/MSCHAPv2応答)を受信した認証スイッチ60は、認証サーバー70にRADIUSアクセスリクエスト(レスポンススルー)を送信する。これを受信した認証サーバー70は、RADIUSアクセスチャレンジ(ID,パスワード要求)を認証スイッチ60に送信する。これを受信した認証スイッチ60は、EAPリクエスト(リクエストスルー)を複合機20に送信する。
続いて、CPU31は、EAPリクエスト(リクエストスルー)を認証スイッチ60から受信するのを待つ(ステップS620)。そして、EAPリクエスト(リクエストスルー)を受信すると、認証準備処理のステップS270で読み込んだユーザーID,パスワードを含むEAPレスポンス(ID,パスワード通知)を認証スイッチ60に送信する(ステップS625)。複合機20からのEAPレスポンス(ID,パスワード通知)を受信した認証スイッチ60は、認証サーバー70にRADIUSアクセスリクエスト(レスポンススルー)を送信する。認証サーバー70は、RADIUSアクセスリクエスト(レスポンススルー)に含まれる複合機20のユーザーID及びパスワードが正しいか否かを判定し、正しいときにはRADIUSアクセスアクセプト(レスポンススルー)を認証スイッチ60に送信する。一方、ユーザーID及びパスワードが正しくないときには、認証サーバー70はFailure応答を認証スイッチ60に送信する。認証スイッチ60は、認証サーバー70からRADIUSアクセスアクセプト(レスポンススルー)を受信したときにはEAPサクセスを複合機20に送信し、認証サーバー70からFailure応答を受信したときにはFailure応答を複合機20に送信する。
次に、CPU31は、認証スイッチ60からこのFailure応答を受信する(ステップS630)か又はEAPサクセスを受信する(ステップS640)まで待つ。そして、Failure応答を受信すると、エラー(クライアント認証エラー)ありを示す情報をRAM32に記憶して(ステップS645)、PEAP/MSCHAPv2認証処理を終了(中止)する。一方、EAPサクセスを受信すると、エラー(クライアント認証エラー)なしを示す情報をRAM32に記憶して(ステップS650)、ステップS560に進む。なお、認証スイッチ60は、EAPサクセスを複合機20に送信したあと、EAP−TLS方式と同様にEAPOLキーを複合機20に送信する。
このように、EAP−TLS認証処理やPEAP/MSCHAPv2認証処理では、通信制御部34が認証処理を行うと共に診断部35が各チェック項目の良否を判定して判定結果に基づくエラーの有無及びその内容をRAM32に記憶し、1つでもエラーがあるときにはその場で認証処理を終了する。
図3の認証処理ルーチンの説明に戻る。ステップS130又はS140の認証処理を行うと、CPU31は、認証処理でエラーがあったか否かをRAM32に記憶されたエラーの有無を示す情報に基づいて判定する(ステップS150)。そして、エラーがなかったときには本ルーチンを終了する。一方、ステップS110で認証準備処理におけるエラーがあったとき、又はステップS150で認証処理におけるエラーがあったときには、印刷制御部36は、RAM32に記憶されたエラーの有無及びエラーの内容に基づくステータスシートを印刷するよう印刷機構21を制御して(ステップS160)、本ルーチンを終了する。なお、EAP−TLS認証処理又はPEAP/MSCHAPv2認証処理を途中で終了したときには、認証処理失敗となり、認証スイッチ60が複合機20のLAN12への接続を遮断して、複合機20は、LAN12からネットワーク層レベルで切断された状態になる。そのため、例えばユーザーPC50からLAN12を介して複合機20の設定情報やエラーの内容などを確認することができなくなる。
図8は、印刷機構21が印刷したステータスシートの一例を示す説明図である。図示するように、ステータスシートには、上述した計9つのチェック項目の良否判定結果に対応してRAM32に記憶したエラーの内容として、「設定無効」,「設定項目が未設定」,「クライアント証明書期限切れ」,「ユーザーIDエラー」,「サーバーIDエラー」,「サーバー証明書エラー」,「CA証明書指定エラー」,「クライアント認証エラー」の8つの項目とそのエラーコードとが印刷されており、各項目についてエラーの「あり」又は「なし」が印刷される。また、上述したように認証処理ルーチンではエラーが1つでもあるときにはそれ以降の通常の認証準備処理や認証処理を行わないため、判定していないエラー項目については「未判定」が印刷される。
このように、本実施形態の認証処理ルーチンでは、認証処理中に予め定められたチェック項目の良否を順次判定し、判定結果に基づくエラーの内容をステータスシートに印刷するのである。こうすることで、例えば複合機20のユーザーや管理者は、ステータスシートのエラーの内容を確認し、エラーの内容に応じた対処を行って認証処理が可能な状態になるよう、IEEE802.1X設定情報の設定変更やクライアント証明書,CA証明書などのインストールを行ったりするなど、適切な対処を行うことができる。また、対処方法がわからない場合でも、例えば複合機20の製造者にエラーの内容を伝えることで、製造者が適切な対処方法を迅速に決定することができる。
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の通信制御部34及び通信I/F26が本発明の通信手段に相当し、診断部35が診断手段に相当し、印刷制御部36及び印刷機構21が報知手段に相当する。なお、本実施形態では、複合機20の動作を説明することにより本発明の通信装置の情報処理方法の一例も明らかにしている。
以上説明した本実施形態の複合機20によれば、ネットワークに接続するための認証に失敗したときにネットワークから切断される規格であるIEEE802.1Xに従った認証処理を行い、ネットワークへの接続の許可を受ける。また、その認証処理の内容に基づいて認証処理に関するエラーの有無及びエラーの内容を診断する。そして、認証処理に失敗したときには、診断されたエラーの内容をステータスシートとして媒体に印刷することで、ネットワークを介さずにエラーの内容を報知する。このように、認証処理に失敗したときにネットワークを介さずにステータス情報を通知するため、認証に失敗するとネットワークから切断される方式での認証処理が失敗したときに、通信機器のステータス情報を報知可能とすることができる。しかも、ステータス情報にはエラーの内容が含まれているため、認証処理の失敗原因を解消するためにより有用な情報を報知することができる。
また、認証処理に関する予め定められた複数のチェック項目の良否を認証処理中に順次判定し、不良と判定されたチェック項目に基づいて、エラーの内容を診断するため、チェック項目に基づいてエラー内容をより適切に診断できる。さらに、複数のチェック項目のうち良好と判定されたチェック項目、すなわちエラーがなかった項目についてもステータスシートに印刷して報知するため、認証処理の失敗原因を解消するためにより有用な情報を報知することができる。
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
例えば、上述した実施形態では、図4の認証準備処理においてエラーが1つでもあるとそこで認証準備処理を終了するものとしたが、例えばステップS300でエラー(クライアント証明書期限切れ)ありをRAM32に記憶したあとにステップS310の処理に進むなど、エラーがあっても他の処理や他のチェック項目の良否判定を行うものとしてもよい。
上述した実施形態では、9つのチェック項目について良否判定し、8つのエラー項目について診断を行うものとしたが、これに限らず上述した項目の1以上についての診断を省略してもよいし、他のチェック項目やエラー内容を用いてもよい。例えば、図5のEAP−TLS認証処理において、ステップS445でサーバー証明書が有効期限切れの場合とステップS500でサーバ証明書の証明書チェーンに異常がある場合とを、同じエラー(サーバー証明書エラー)としてステータスシートに印刷するものとしたが、エラー(サーバー証明書期限切れ)とエラー(証明書チェーン異常)などのように両者を区別するものとしてもよい。また、エラー(サーバー証明書エラー),エラー(サーバーIDエラー),エラー(CA証明書指定エラー)を区別せずにエラー(サーバー認証エラー)としてもよい。あるいは、図5のステップS400のEAPOL開始フレームを送信してから一定時間(例えば30秒間)認証スイッチ60からの応答がない場合にエラー(タイムアウトエラー)ありと判定してもよい。
上述した実施形態では、ステータスシートにはエラーの有無や未判定か否かに関わらず全てのエラー内容の項目を印刷するものとしたが、これに限らずエラーがあった項目のみ印刷するものとしてもよいし、未判定のエラーの項目については印刷しないものとしてもよい。また、ステータスシートにはIEEE802.1X設定情報など、エラー内容以外の情報も印刷するものとしてもよい。また、ステータスシートは図3の認証処理ルーチンにおいてエラーがあったときに印刷するものとしたが、ユーザーが指定した任意のタイミングで印刷できるものとしてもよい。その場合、エラーが1つもなく認証処理に成功しているときには「認証成功」など認証に成功したことを報知する情報をステータスシートに印刷するものとしてもよい。
上述した実施形態では、認証準備処理におけるエラーについても診断するものとしたが、これを省略してもよい。
上述した実施形態では、認証処理に関する予め定められた複数のチェック項目の良否を認証処理中に順次判定し、不良と判定されたチェック項目に基づいて、エラーの内容を診断するものとしたが、認証処理の内容に基づいて、認証処理に関するエラーの有無及びエラーの内容を診断するものであれば、どのように診断を行ってもよい。例えば、EAP−TLS認証処理又はPEAP/MSCHAPv2認証処理に失敗したときに、認証処理において最後に認証スイッチ60に送信したデータに基づいてエラーの内容を診断したり、認証処理において最後に認証スイッチ60から受信したデータに基づいてエラーの内容を診断したりするものとしてもよい。例えば、認証処理に失敗したときに最後に複合機20が認証スイッチ60に送信したデータがステップS410におけるEAPレスポンス(ID通知)であったときには、エラー(ユーザーIDエラー)ありと判定してもよい。このようにすることで、認証失敗時に最後に送受信したデータはエラーの内容と関連があることが多いため、これに基づいてより適切にエラーの内容を診断できる。また、このような最後に送受信したデータに基づいてエラーの内容を診断する場合には、例えば認証処理において認証スイッチ60との間で送受信する複数のデータの内容と、エラーの内容とを対応付けたテーブルを予めフラッシュメモリー33などに記憶しておくものとし、認証処理に失敗したときの最後に送信したデータ又は受信したデータに対応するエラーの内容をこのテーブルから読み出して、エラーの内容を特定してもよい。
また、認証処理が、認証スイッチ60との間で所定の手順でデータの送受信を複数回行って認証を行う処理である場合に、認証スイッチ60との間でその手順がどこまで進行したかに基づいて、認証処理に関するエラーの有無及びエラーの内容を診断するものとしてもよい。例えば、EAP−TLS認証処理では、複合機20が認証スイッチ60との間でやりとりするデータの内容や手順は図5のフローチャートからわかるように予め定められている。この場合、例えば認証処理に失敗したときに図5のステップS530でEAPレスポンス)の送信まで手順が進行していたときには、エラー(クライアント証明エラー)ありと判定してもよい。また、ステップS530までは手順が進行していたことから、エラー(ユーザーIDエラー),エラー(サーバー証明書エラー),エラー(サーバーIDエラー),エラー(CA証明書指定エラー)についてはエラーなしと判定してもよい。このようにしてエラーを判定するものとすれば、認証処理中に順次エラーの有無を判定したり判定結果を記憶したりする必要がなく、認証に失敗したときにエラーの内容を簡易な処理により診断できる。このような、データの送受信の手順がどこまで進行したかに基づいてエラーの内容を診断する場合には、例えば以下のように処理を行う。まず、認証処理において認証スイッチ60との間で送受信する複数のデータの手順(順序)を表す情報と、エラーの内容と、を対応付けたテーブルを予め記憶しておく。そして、認証処理中には、認証処理におけるデータの送受信の回数を、手順がどこまで進行したかを表す情報としてカウントする。そして、認証処理に失敗したときに進行していた手順(データの送受信の回数)に対応するエラーの内容をこのテーブルから読み出して、エラーの内容を特定し、そのエラーがありと判定する。このとき、特定したエラーよりも前の順序が対応付けられているエラーの内容をテーブルから読み出し、そのエラーについては、エラーなしと判定してもよい。ここで、テーブルに対応付ける手順とエラーの内容との一例を説明する。例えば、ステップS410で送信するEAPレスポンス(ID通知)は図5のEAP−TLS認証処理において3番目に送受信するデータである(1番目はEAPOL開始フレームの送信、2番目はEAPリクエスト(ID要求)の受信)。そして、ここまで手順が進行して認証処理が失敗したとき(例えば、EAPリクエスト(TLS開始)を受信しないとき)には、エラー(ユーザーIDエラー)ありである可能性が高い。そこで、予め手順の3番目であることを表す情報とエラー(ユーザーIDエラー)を示す情報とをテーブルで対応付けておく。
上述した実施形態では、複合機20はIEEE802.1X規格のEAP−TLS認証方式又はPEAP/MSCHAPv2方式に従って認証処理を行うものとしたが、ネットワークに接続するための認証に失敗したときにネットワークから切断される規格に従った認証処理であれば、どのような規格での認証処理を行ってもよい。例えば、PEAP−TLS方式など、IEEE802.1X規格に従った他の方式で認証処理を行ってもよいし、IEEE802.1X以外の規格に従った認証処理を行ってもよい。認証処理に失敗したときのネットワークからの切断についても、ネットワーク層レベルで切断される規格に限られない。
上述した実施形態では、認証サーバー70はLAN12に接続されているものとしたが、例えばLAN12にルーターを介して接続されたインターネットに認証サーバーが接続されているなど、複合機20が接続されるネットワークとは別のネットワークに認証サーバー70が接続されていてもよい。また、複合機20が認証処理を行って接続されるネットワークもLAN12に限られない。
上述した実施形態では、クライアント証明書領域41には電子証明書と利用設定情報とを対応付けて記憶するものとしたが、利用設定情報が対応付けられていないものとしてもよい。
上述した実施形態では、ステータスシートを印刷することでエラーの内容を含むステータス情報を報知するものとしたが、例えば操作パネル23の表示部に画像を表示して報知したり、音声で報知を行ったりするなど、どのような方法で報知してもよい。
上述した実施形態では、複合機20と認証スイッチ60とは有線で接続されるものとしたが、無線で接続されるものとしてもよい。
上述した実施形態では、印刷機能とスキャン機能とを備える複合機20として説明したが、ネットワークに接続するための認証に失敗したときにネットワークから切断される規格に従った認証処理を行って、ネットワークへの接続の許可を受ける通信装置であればよい。例えば、印刷機能のみを備えたプリンターに適用するものとしてもよいし、ファクシミリ装置などに適用するものとしてもよいし、ユーザーPC50などのコンピューターに適用するものとしてもよい。
上述した実施形態では、本発明の通信装置及び画像形成装置を複合機20に具体化した例を用いて説明したが、通信装置の情報処理方法の形態とするものとしてもよいし、通信装置の情報処理方法の各ステップを1または複数のコンピューターに実現させるためのプログラムの形態とするものとしてもよい。