(57)【特許請求の範囲】
【請求項１】
第１電子証明書が有効か否かを判断する更新判断手段と、
前記更新判断手段により第１電子証明書が無効であるとの判断を条件として、前記第１電子証明書とその第１電子証明書と対応する秘密鍵とを更新する証明書更新手段と、
更新された第１電子証明書を電子メールにて送信する送信先のメールアドレスを記憶する記憶手段と、
前記証明書更新手段により更新された第１電子証明書を、前記記憶手段に記憶されたメールアドレスを電子メールにて送信する送信先アドレスに設定する送信先設定手段と、
前記送信先設定手段により設定された前記メールアドレスに対して、前記第１電子証明書を送信するメール送信手段と、
自身の秘密鍵でディジタル署名する自己署名方式によりディジタル署名された第１電子証明書を記憶する証明書記憶手段と、
前記証明書更新手段により前記証明書記憶手段が記憶する前記第１電子証明書が更新された場合に、更新前の第１電子証明書に対応する秘密鍵を用いてディジタル署名された他の装置が所有する第２電子証明書があるかを判断する証明書判断手段であって、当該証明書発行装置は、過去に当該証明書発行装置が作成した第２電子証明書に関する管理情報を管理しており、前記管理情報に基づき前記第２電子証明書があるかを判断する前記証明書判断手段と、を備え、
前記証明書判断手段により前記他の装置が所有する第２電子証明書があると判断した場合に、前記証明書更新手段は、前記他の装置が所有するための新たな第２電子証明書も作成し、
前記メール送信手段は、前記他の装置が前記新たな第２電子証明書を使用可能とするために、前記新たな第２電子証明書を電子メールにて送信する
ことを特徴とする証明書発行装置。
【請求項２】
前記メール送信手段は、更新された第２電子証明書と対応する秘密鍵も合わせて送信することを特徴とする請求項１に記載の証明書発行装置。
【請求項３】
前記記憶手段は、前記メールアドレスと、そのメールアドレスに対して電子メールを送信する第１電子証明書の有効期限と、を対応付けて記憶し、
前記更新判断手段は、前記有効期限に基づき、この第１電子証明書が有効であるか否かを判断し、
前記送信先設定手段は、前記記憶手段に記憶された有効期限切れの第１電子証明書に対応付けて記憶されたメールアドレスを送信先メールアドレスとして設定することを特徴とする請求項２に記載の証明書発行装置。
【請求項４】
前記記憶手段に記憶されたメールアドレスは、前記第１電子証明書を用いて自装置と通信を行う相手側装置の所有者であることを特徴とする請求項３に記載の証明書発行装置。
【請求項５】
前記メール送信手段は、前記第２電子証明書に含まれるメールアドレスを送信先として、更新された第２電子証明書を送信することを特徴とする請求項１乃至４のいずれかに記載の証明書発行装置。
【請求項６】
前記メール送信手段により送信する少なくとも第１および第２電子証明書のいずれかを暗号化する暗号化手段を、さらに備えることを特徴とする請求項１乃至５のいずれかに記載の証明書発行装置。
【請求項７】
コンピュータを、
第１電子証明書が有効か否かを判断する更新判断手段と、
前記更新判断手段により第１電子証明書が無効であると判断すると、前記第１電子証明書とその第１電子証明書と対応する秘密鍵とを更新する証明書更新手段と、
更新された第１電子証明書を電子メールにて送信するメールアドレスを記憶する記憶手段と、
前記証明書更新手段により更新された第１電子証明書を、前記記憶手段に記憶されたメールアドレスを電子メールにて送信する送信先アドレスとして設定する送信先設定手段と、
前記送信先設定手段により設定された前記メールアドレスに対して、前記第１電子証明書を送信するメール送信手段と、
自身の秘密鍵でディジタル署名する自己署名方式によりディジタル署名された第１電子証明書を記憶する証明書記憶手段と、
前記証明書更新手段により前記証明書記憶手段が記憶する第１電子証明書が更新された場合に、更新前の第１電子証明書に対応する秘密鍵を用いてディジタル署名された他の装置が所有する第２電子証明書があるかを判断する証明書判断手段であって、当該コンピュータは、過去に当該コンピュータにより作成した第２電子証明書に関する管理情報を管理しており、前記管理情報に基づき前記第２電子証明書があるかを判断する前記証明書判断手段、として機能させ、
前記証明書判断手段により前記他の装置が所有する第２電子証明書があると判断した場合に、前記証明書更新手段は、前記他の装置が所有するための新たな第２電子証明書も作成し、
前記メール送信手段は、前記他の装置が前記新たな第２電子証明書を使用可能とするために、前記新たな第２電子証明書を電子メールにて送信するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子証明書を発行する証明書発行装置、及び、これに関連するプログラムに関する。
【背景技術】
【０００２】
従来、通信技術として、電子証明書を用いて公開鍵を通知し暗号通信に移行するＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）通信技術が知られている。このようなＳＳＬ通信で用いられる電子証明書には、セキュリティ性の高い通信を実現するため、通常有効期限が設定されており、有効期限切れの電子証明書については、使用を禁止するといった処置がとられている。特許文献１では、このような有効期限切れにより、電子証明書が無効になることを予め防止するため、電子証明書の有効期限に応じ、電子メールにてユーザに電子証明書の更新を促すメッセージを送信する。
【０００３】
【特許文献１】特開２００５−２６９５５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、更新を促すメッセージを送信するのみで、電子メールを受信したユーザは、認証局（ＣＡ）にアクセスし電子証明書を作成するといった更新作業を行わなければならず、このような作業が煩わしく感じられる可能性があった。また、このような感覚が、結果として、ユーザによる電子証明書の更新作業の実行を遅らせ、場合によっては、警告したのにも拘らず、電子証明書の有効期限が切れて、電子証明書が無効となってしまう可能性があった。
【０００５】
また、有効期限切れに限らず、電子証明書を所有する端末装置の所有者情報（例えば、ＩＰアドレス等）を変更するなどにより、電子証明書に記された電子証明書を所有する所有者情報との間に矛盾点が生じてしまうなど、ユーザの意図しないところで電子証明書が無効になる可能性もあった。
【０００６】
本発明は、こうした問題に鑑みなされたものであり、所有者側の電子証明書の更新作業に係る労力を軽減しつつも、確実に電子証明書の更新が行われる証明書発行装置およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
かかる目的を達成するためになされた請求項１記載の発明における証明書発行装置は、電子証明書が有効か否かを判断する更新判断手段と、前記更新判断手段により電子証明書が無効であるとの判断を条件として、前記電子証明書とその電子証明書と対応する秘密鍵とを更新する証明書更新手段と、更新された電子証明書を電子メールにて送信する送信先のメールアドレスを記憶する記憶手段と、前記証明書更新手段により更新された電子証明書を、前記記憶手段に記憶されたメールアドレスを電子メールにて送信する送信先アドレスに設定する送信先設定手段と、前記送信先設定手段により設定された前記メールアドレスに対して、前記電子証明書を送信するメール送信手段と、を備えることを特徴とする。
【０００８】
さらに、この証明書発行装置における前記メール送信手段は、更新された電子証明書と対応する秘密鍵も合わせて送信するとよい。
【０００９】
さらに、この証明書発行装置における前記記憶手段は、メールアドレスと、そのメールアドレスに対して電子メールを送信する電子証明書の有効期限と、を対応付けて記憶し、前記更新判断手段は、前記有効期限に基づき、この電子証明書が有効であるか否かを判断し、前記送信先設定手段は、前記記憶手段に記憶された有効期限切れの電子証明書に対応付けて記憶されたメールアドレスを送信先メールアドレスとして設定するように構成するとよい。
【００１０】
また、自身の秘密鍵でディジタル署名する自己署名方式によりディジタル署名された電子証明書を記憶する証明書記憶手段をさらに備え、前記更新判断手段は、前記証明書記憶手段に記憶された電子証明書に記された有効期限に基づき、この電子証明書が有効であるか否かを判断するように構成するとよい。
【００１１】
さらに、このとき、前記記憶手段に記憶されたメールアドレスは、前記電子証明書を用いて自装置と通信を行う相手側装置の所有者であるように構成するとよい。
【００１２】
さらに、前記証明書更新手段により前記証明書記憶手段が記憶する電子証明書が更新された場合に、更新前の電子証明書に対応する秘密鍵を用いてディジタル署名された他の装置が所有する電子証明書があるかを判断する証明書判断手段をさらに備え、前記証明書判断手段により前記他の装置が所有する電子証明書があると判断した場合に、前記証明書更新手段は、前記他の装置が所有する電子証明書も更新するように構成するとよい。
【００１３】
また、前記メール送信手段により送信する電子証明書を暗号化する暗号化手段を、さらに備えるように構成するとよい。
【００１４】
また、本発明におけるプログラムは、コンピュータを、電子証明書が有効か否かを判断する更新判断手段と、前記更新判断手段により電子証明書が無効であると判断すると、前記電子証明書およびその電子証明書と対応する秘密鍵を更新する証明書更新手段と、更新された電子証明書を電子メールにて送信するメールアドレスを記憶する記憶手段と、前記証明書更新手段により更新された電子証明書を、前記記憶手段に記憶されたメールアドレスを電子メールにて送信する送信先アドレスとして設定する送信先設定手段と、前記送信先設定手段により設定された前記メールアドレスに対して、前記電子証明書を送信するメール送信手段として機能させることを特徴とする。
【発明の効果】
【００１５】
この証明書発行装置によれば、電子証明書が無効であると判断されると、この電子証明書を更新する。そして、更新した有効な電子証明書を添付した電子メールを、送信先として記憶されたメールアドレスに対して送信するので、電子メール受信側では、この電子メールに添付された電子証明書を、ブラウザ等にインポートすることで、この電子証明書を使用してＳＳＬ通信を行うことができる。
【００１６】
すなわち、証明書発行装置が、電子証明書の有効性をも管理しているため、電子証明書の発行のみならず、電子証明書の更新、電子証明書のメール送信も行える。よって、管理対象の電子証明書が無効との警告メッセージを送るだけでなく、有効な電子証明書に更新することができる。さらに、所有者等の気づかない間に電子証明書が更新された場合であっても、更新された有効な電子証明書が記憶された所有者等のメールアドレス先にメール送信されるため、電子メール受信側での電子証明書の更新作業に係る労力を抑えつつも確実に電子証明書の更新処理を行うことができる。
【００１７】
なお、証明書発行装置は、ＣＡとしての機能を有する装置であればよく、この電子証明書を用いてＳＳＬ通信を行う端末装置であっても、ＳＳＬ通信とは無関係な第三者の端末装置であってもよい。ここで、自己署名方式により電子証明書を発行する証明書発行装置であれば、その電子証明書と対応する秘密鍵を所有すべき装置は、この証明書発行装置であるため、電子メールの送信先には、電子証明書のみを送信すればよい。
【００１８】
また、証明書発行装置が、第三者の端末装置である場合には、電子証明書と対応する秘密鍵を所有すべき装置は、ＳＳＬ通信を行うべき端末装置、すなわち、メール送信する送信先が所有する端末装置であるから、電子証明書と合わせて、この電子証明書と対応する秘密鍵を送信することで、電子メール受信側で、送信された電子証明書を使用することができるようになる。
【００１９】
なお、証明書発行装置が、第三者の端末装置である場合には、電子証明書の有効性を管理するための特定情報を記憶しておけば、発行済みの電子証明書を所有する必要はない。
【００２０】
そして、電子証明書の所有者情報としてのメールアドレスと、この電子証明書の有効期限とを対応付けて記憶しておけば、複数の電子証明書を管理する場合であっても、電子証明書毎に有効期限を管理することができ、更新された電子証明書をそれぞれ対応するメールアドレスを送信先として電子メールを送信することができる。したがって、適切なタイミングで電子証明書を更新し、適切な送信先へメール送信できる。そして、電子メールの受信側では、受信した電子証明書をブラウザ等にインポートするだけで、電子証明書の更新を行うことができる。
【００２１】
また、自身の秘密鍵によりディジタル署名する自己署名方式によりディジタル署名された電子証明書は、自装置にて使用される。よって、その電子証明書は、自装置にて記憶することとなる。したがって、電子証明書の有効性を、別途電子証明書の有効期限を記憶手段に記憶させることなく、この記憶された電子証明書に記された有効期限に基づき判断することができる。
【００２２】
さらに、自己署名形式によりディジタル署名された電子証明書が更新された場合、この更新された電子証明書の電子メールの送信先が、自装置とＳＳＬ通信を行う相手側装置の所有者であると、より電子メール受信側での電子証明書の更新作業に係る労力を抑えつつも確実に電子証明書の更新処理を行うことができる。
【００２３】
すなわち、自己署名形式によりディジタル署名された電子証明書、すなわちサーバ証明書を更新した場合には、このサーバ証明書が、ＣＡが発行したＣＡ証明書としての役割も果たす。したがって、暗号通信を確立させる際に送信されるサーバ証明書の検証は、予め記憶したサーバ証明書に記された公開鍵により行われることとなる。よって、証明書更新手段は、自己署名形式によりディジタル署名された電子証明書を更新した際に、相手先装置が記憶するサーバ証明書も更新しなければならない。この電子証明書の更新作業に係る労力が抑えられつつ確実に電子証明書が更新されるのである。
【００２４】
さらに、このサーバ証明書が更新されると、このサーバ証明書に対応する秘密鍵を用いてディジタル署名されたＳＳＬ通信の相手側装置が所有する電子証明書、すなわちクライアント証明書があるか判断する。そして、クライアント証明書がある場合には、このクライアント証明書についても証明書更新手段により更新を行うため、サーバ証明書を更新したことにより使用できなくなる電子証明書についても、所有者等が管理することなく、証明書発行装置が自動的に更新し、更新後の新しい電子証明書を所有者等にメール送信するため、所有者等の更新作業に係る労力を抑えつつ、安全に電子証明書の更新処理を行うことができる。
【００２５】
また、更新された電子証明書は、例えば、予め設定されたパスワード等により、暗号化されてからメール送信されるため、メール送信中に第三者によりこの電子証明書の盗聴や改竄を防ぐことができる。
【００２６】
また、本願発明のプログラムによれば、本願発明の証明書発行装置としての機能を、コンピュータに実現させることができる。
【発明を実施するための最良の形態】
【００２７】
以下に本発明の実施例について、図面と共に説明する。
【００２８】
図１は、本実施例の通信システム１の構成を表す説明図である。図１に示すように、通信システム１は、メールサーバ３と、ディジタル複合機１０と、パーソナルコンピュータ（以下、単に「ＰＣ」とする。）３０と、がＴＣＰ／ＩＰネットワークに接続された構成にされている。
【００２９】
複合機１０は、ＣＰＵ１１と、作業用メモリとしてのＲＡＭ１２と、各種プログラムやデータを記憶するフラッシュメモリ１３と、ＴＣＰ／ＩＰネットワークに接続された通信インタフェース１５と、レーザ方式又はインクジェット方式にて用紙に画像を形成する印刷部１７と、原稿載置台に載置された原稿を光学的に読み取り画像データを生成する読取部１９と、ユーザが操作可能な各種キー及び表示部を備えるユーザインタフェースとしての表示操作部２１とを備え、ＣＰＵ１１にて各種プログラムを実行し、プリンタ機能、スキャナ機能、及び、コピー機能等を実現する構成にされている。
【００３０】
例えば、ＣＰＵ１１は、通信インタフェース１５を通じて外部のＰＣ３０から印刷データを受信すると、印刷部１７を制御して、この印刷データに基づく印刷画像を用紙に形成する（プリンタ機能）。また、表示操作部２１に対するユーザの操作により、表示操作部２１から読取指令が入力されると、ＣＰＵ１１は、読取部１９を制御して、原稿載置台に載置された原稿についての読取画像を表す画像データを生成し、これを通信インタフェース１５を通じて、所定のＰＣ３０に送信する（スキャナ機能）。
【００３１】
その他、複合機１０は、ウェブサーバ機能、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）通信機能、及び、ＣＡとしての機能を有し、フラッシュメモリ１３において、自装置で発行した自己署名型のサーバ証明書及びサーバ秘密鍵、を記憶している。
【００３２】
また、複合機１０は、特定のポートに対するＰＣ３０からのアクセスを受け付けるに際し、電子証明書又はパスワードにより、クライアント（ＰＣ３０）を認証する構成にされ、フラッシュメモリ１３に、クライアント認証用のパスワードを有する。その他、複合機１０は、サーバ証明書を自動更新した場合に、電子メールを複合機１０およびＰＣ３０の管理者に送信する機能を有する。フラッシュメモリ１３に、この電子メールの送信先として設定された管理者のメールアドレス（管理者メールアドレス）および、管理者に電子メールを送信する際に、更新したサーバ証明書を暗号化するためのサーバ証明書用パスワードを記憶している。このサーバ証明書用暗号パスワードは、予め管理者によって設定されている。
【００３３】
また、クライアント証明書を作成や更新した際に、その証明書の管理情報を登録する発行済みクライアント証明書管理データベースを有する。この管理データベースは、図１２に示すように、クライアント証明書の管理情報として、各証明書の所有者情報（所有者のメールアドレス）、証明書の有効期限、自動更新した証明書を電子メールにて送信する際に、証明書を暗号化するための暗号パスワードとがそれぞれ発行されたクライアント証明書ごとに記憶されている。
【００３４】
また、複合機１０は、ＳＳＬ通信の動作モードについての設定情報（以下、「モード設定情報」とする。）を、フラッシュメモリ１３に有する（詳細後述）。
【００３５】
尚、図２は、本実施例の通信システム１で用いられる電子証明書の構成を表す説明図である。具体的に、図２（ａ）は、複合機１０がフラッシュメモリ１３に記憶するサーバ証明書の構成を表す説明図であり、図２（ｂ）は、複合機１０にてクライアント秘密鍵と共に発行され、ＰＣ３０に登録されるクライアント証明書の構成を表す説明図である。
【００３６】
本実施例の通信システム１がＳＳＬ通信で取扱うサーバ証明書は、図２（ａ）に示すように、証明書のバージョンを表すバージョン情報と、証明書のシリアル番号と、アルゴリズム識別子と、ディジタル署名した証明書発行者を表す署名者情報と、証明書の有効期間を表す有効期間情報と、証明書の所有者を表す所有者情報と、所有者の公開鍵を表す公開鍵情報と、ディジタル署名値を表すディジタル署名情報と、を有する。また、このサーバ証明書が有する所有者情報は、複合機１０のホスト名とドメイン情報を有し、有効期間情報は、証明書有効期間の開始日時及び終了日時（有効期限）を表す構成にされている。また、ディジタル署名情報は、ＣＡの秘密鍵で作成したものであり、本実施形態では自己署名方式にてディジタル署名を行っているため、このサーバ証明書の秘密鍵にてディジタル署名している。
【００３７】
一方、クライアント証明書は、基本的にサーバ証明書と同一種の情報を有するが、図２（ｂ）に示すように、所有者情報として、所有者のメールアドレス（ＰＣ３０のメインユーザが使用するメールアドレス）の情報を有する構成にされている。また、ディジタル署名情報は、複合機１０のサーバ証明書の秘密鍵においてディジタル署名されている。
【００３８】
その他、複合機１０が有するサーバ証明書は、ＳＳＬ通信の際、図３に示す手順にて、相手先のＰＣ３０に提供される。図３は、ＳＳＬハンドシェイクの手順を表すラダーチャートである。具体的に、図３（ａ）は、クライアント証明書を要求しない場合（以下、「モード１」とする。）のＳＳＬハンドシェイクの手順を表すラダーチャートであり、図３（ｂ）は、クライアント証明書を要求する場合（以下、「モード２」とする。）のＳＳＬハンドシェイクの手順を表すラダーチャートである。
【００３９】
図３（ａ）（ｂ）に示すように、ＳＳＬハンドシェイクは、ＣｌｉｅｎｔＨｅｌｌｏメッセージがＰＣ３０（クライアント）から、複合機１０（サーバ）に送信されることにより開始される。このＣｌｉｅｎｔＨｅｌｌｏメッセージの送信によって、通信の開始が複合機１０に通知されると共に、複合機１０がＳＳＬを使用してＰＣ３０と通信するために必要な情報が通知される。
【００４０】
このＣｌｉｅｎｔＨｅｌｌｏメッセージを受信すると、複合機１０は、ＰＣ３０がＳＳＬを使用して自装置と通信するために必要な情報を含むＳｅｒｖｅｒＨｅｌｌｏメッセージをＰＣ３０に返信すると共に、サーバ証明書を含むＣｅｒｔｉｆｉｃａｔｅメッセージをＰＣ３０に送信する。また、複合機１０は、必要に応じて、ＳｅｒｖｅｒＫｅｙＥｘｃｈａｎｇｅメッセージをＰＣ３０に送信する。
【００４１】
その他、複合機１０は、ＳＳＬ通信の動作モードが「モード２」に設定されている場合、クライアント証明書を要求するＣｅｒｔｉｆｉｃａｔｅＲｅｑｕｅｓｔメッセージをＰＣ３０に送信する（図３（ｂ）参照）。そして、これらのメッセージの送信が終了すると、複合機１０は、一連のメッセージの送信が終了したことを表すＳｅｒｖｅｒＨｅｌｌｏＤｏｎｅメッセージをＰＣ３０に送信する。
【００４２】
一方、ＰＣ３０は、ＳｅｒｖｅｒＨｅｌｌｏＤｏｎｅメッセージを受信すると、ＣｅｒｔｉｆｉｃａｔｅＲｅｑｕｅｓｔメッセージを先に受信している場合、これに応答する形で、自己のクライアント証明書を含むＣｅｒｔｉｆｉｃａｔｅメッセージを複合機１０に送信すると共に、セッション鍵を生成するのに必要なプレマスタシークレットを含むＣｌｉｅｎｔＫｅｙＥｘｃｈａｎｇｅメッセージを、複合機１０に送信する。尚、ＣｌｉｅｎｔＫｅｙＥｘｃｈａｎｇｅメッセージの送信時には、サーバ証明書にて通知されたサーバ公開鍵により暗号化して、上記メッセージを送信する。更に、ＰＣ３０は、ＣｅｒｔｉｆｉｃａｔｅＶｅｒｉｆｙメッセージを送信する。
【００４３】
これに対し、ＣｅｒｔｉｆｉｃａｔｅＲｅｑｕｅｓｔメッセージを受信せずに、ＳｅｒｖｅｒＨｅｌｌｏＤｏｎｅメッセージを受信すると、ＰＣ３０は、上述のＣｅｒｔｉｆｉｃａｔｅメッセージ、ＣｅｒｔｉｆｉｃａｔｅＶｅｒｉｆｙメッセージを送信することなく、ＣｌｉｅｎｔＫｅｙＥｘｃｈａｎｇｅメッセージのみを複合機１０に送信する。
【００４４】
また、この処理を終えると、ＰＣ３０は、暗号を切り替える旨のＣｈａｎｇｅＣｉｐｈｅｒＳｐｅｃメッセージを複合機１０に送信すると共に、セッション鍵を用いて暗号化したハンドシェイク終了の旨のＦｉｎｉｓｈｅｄメッセージを複合機１０に送信する。
【００４５】
一方、複合機１０は、ＰＣ３０からＦｉｎｉｓｈｅｄメッセージを受信すると、暗号を切り替える旨のＣｈａｎｇｅＣｉｐｈｅｒＳｐｅｃメッセージをＰＣ３０に送信すると共に、セッション鍵を用いて暗号化したハンドシェイク終了の旨のＦｉｎｉｓｈｅｄメッセージをＰＣ３０に送信する。このようにして、本実施例の複合機１０とＰＣ３０との間では、サーバ証明書及びクライアント証明書の送受が行われ、ＳＳＬ通信が実現される。
【００４６】
尚、本実施例のＰＣ３０は、周知のパーソナルコンピュータと同様の構成にされ、ＣＰＵ３１にて各種プログラムを実行することにより、ＳＳＬ通信等を実現する。具体的に、ＰＣ３０は、ＣＰＵ３１と、作業用メモリとしてのＲＡＭ３２と、ブートプログラム等を記憶するＲＯＭ３３と、ハードディスク装置（ＨＤＤ）３４と、ＴＣＰ／ＩＰネットワークに接続された通信インタフェース３５と、キーボードやポインティングデバイス等からなる操作部３７と、液晶モニタ等からなる表示部３９と、を備える。
【００４７】
このＰＣ３０は、ハードディスク装置３４に、ＣＡ証明書としての役割も果たす複合機１０のＦｌａｓｈ１３に記憶されたものと同一のサーバ証明書、複合機１０より発行された自己のクライアント証明書及びクライアント秘密鍵と、クライアント認証時に複合機１０に提示するパスワードと、を記憶しており、ＳＳＬ通信の際には、ハードディスク装置３４に記憶されたサーバ証明書を用いて、複合機１０からＳＳＬハンドシェイクの際に送信されるサーバ証明書を検証すると共に、自己のクライアント証明書を、必要に応じて複合機１０に送信する。また、ＰＣ３０は、「モード１」によりＳＳＬハンドシェイクが行われた場合、ハードディスク装置３４が記憶するパスワードを複合機１０に送信して、クライアント認証の手続きを受ける。
【００４８】
具体的に、ＰＣ３０は、複合機１０のウェブサーバ機能を利用するためのソフトウェアであるブラウザ及び複合機１０のプリンタ機能を利用するためのプリンタドライバを、ハードディスク装置３４に有し、ＳＳＬ通信は、ブラウザ及びプリンタドライバにて用いられる。
【００４９】
図４は、ユーザの操作により操作部３７から暗号印刷指令が入力されると、ＰＣ３０のＣＰＵ３１がプリンタドライバに基づいて実行する暗号印刷処理を表すフローチャートである。
【００５０】
暗号印刷処理を開始すると、ＣＰＵ３１は、上述した手法で複合機１０とのＳＳＬハンドシェイクを実行し（Ｓ１１０）、ＳＳＬハンドシェイクに成功すると、Ｓ１２０でＮｏと判断して、Ｓ１３０に移行する。一方、ＳＳＬハンドシェイクに失敗すると、Ｓ１２０でＹｅｓと判断して、複合機１０との通信を中断し（Ｓ１２５）、当該暗号印刷処理を終了する。尚、暗号印刷処理時には、複合機１０の暗号印刷用のポートにアクセスする。
【００５１】
一方、Ｓ１３０に移行すると、ＣＰＵ３１は、ＳＳＬハンドシェイクが「モード１」及び「モード２」のいずれで行われたかを判断し、ＳＳＬハンドシェイクが「モード１」で行われたと判断すると、ハードディスク装置３４に記憶されたパスワードを暗号化して、複合機１０に送信する（Ｓ１４０）。
【００５２】
また、この処理を終えると、ＣＰＵ３１は、送信したパスワードに基づくクライアント認証が複合機１０で成功したか否かを判断し（Ｓ１５０）、複合機１０での認証が成功したと判断すると（Ｓ１５０でＹｅｓ）、Ｓ１６０に移行し、暗号印刷指令にて指定された印刷データを暗号化して送信する。その後、当該暗号印刷処理を終了する。一方、Ｓ１５０において、複合機１０での認証が失敗したと判断すると（Ｓ１５０でＮｏ）、印刷データを送信せずに、当該暗号印刷処理を終了する。
【００５３】
その他、ＣＰＵ３１は、Ｓ１３０において、ＳＳＬハンドシェイクが「モード２」で行われたと判断すると、上記パスワードを送信せずに、Ｓ１６０に移行して、暗号印刷指令にて指定された印刷データを暗号化して送信する。その後、当該暗号印刷処理を終了する。このようにして、ＣＰＵ３１は、ＳＳＬ通信により、印刷データを暗号化して送信し、印刷データが示す機密性の高い情報がネットワークから漏洩しないようにして、複合機１０に、この印刷データに基づく印刷画像を用紙に形成させる。
【００５４】
一方、複合機１０は、図５に示す複合機処理を実行することにより、上記暗号印刷処理にて送信される印刷データを受け付けると共に、各種ウェブアクセスを受け付ける。尚、図５は、複合機１０のＣＰＵ１１が、起動時に実行を開始する複合機処理を表すフローチャートである。
【００５５】
複合機処理を開始すると、ＣＰＵ１１は、ＨＴＴＰＳポートへのアクセス（暗号ウェブアクセス）、ＨＴＴＰポートへのアクセス（非暗号ウェブアクセス）、暗号印刷用ポートへのアクセス、非暗号印刷用ポートへのアクセス等のイベントが発生したか否かを判断し（Ｓ２１０）、イベントが発生したと判断すると（Ｓ２１０でＹｅｓ）、Ｓ２３０に移行し、イベントが発生していないと判断すると（Ｓ２１０でＮｏ）、Ｓ２２０にて図１４に示すサーバ証明書期限確認処理を、Ｓ２２５にて、図１５に示す発行済みクライアント証明書期限確認処理を実行する。
【００５６】
そして、Ｓ２２０でのサーバ証明書期限確認処理、Ｓ２２５での発行済みクライアント証明書確認処理を終了すると、ＣＰＵ１１は、Ｓ２１０に移行する。そして、上記イベントが発生した場合には、Ｓ２３０に移行して、発生したイベントが、暗号ウェブアクセスであるか否かを判断し、発生したイベントが、暗号ウェブアクセスであると判断すると（Ｓ２３０でＹｅｓ）、図６に示す暗号通信開始処理を実行する（Ｓ２４０）。尚、図６は、ＣＰＵ１１が実行する暗号通信開始処理を表すフローチャートである。
【００５７】
暗号通信開始処理を開始すると、ＣＰＵ１１は、今回のウェブアクセスが、既に暗号通信開始処理によって認証に成功した正当なＰＣ３０からのウェブアクセスであるか否かを判断し（Ｓ４００）、認証に成功した正当なＰＣ３０からのウェブアクセスであると判断すると（Ｓ４００でＹｅｓ）、当該暗号通信開始処理を終了する。一方、認証に成功した正当なＰＣ３０からのウェブアクセスではないと判断すると（Ｓ４００でＮｏ）、フラッシュメモリ１３からモード設定情報を読み出し（Ｓ４１０）、このモード設定情報が示すモード（図３に示す「モード１」若しくは「モード２」）にて、ＳＳＬハンドシェイクを実行する（Ｓ４１５）。
【００５８】
また、ＳＳＬハンドシェイクに成功すると、Ｓ４２０でＮｏと判断し、Ｓ４３０に移行する。一方、ＳＳＬハンドシェイクに失敗すると、Ｓ４２０でＹｅｓと判断して、アクセス元のＰＣ３０との通信を中断し（Ｓ４２５）、当該暗号通信開始処理を終了する。
【００５９】
また、ＳＳＬハンドシェイクに成功しＳ４３０に移行すると、ＣＰＵ１１は、ＳＳＬハンドシェイクが「モード１」及び「モード２」のいずれで行われたかを判断し、ＳＳＬハンドシェイクが「モード１」で行われたと判断すると、アクセス元のＰＣ３０からＳ１４０にて送信されてくるパスワードを受信し（Ｓ４４０）、受信したパスワードを復号化する（Ｓ４４５）。
【００６０】
そして、復号化されたパスワードを、フラッシュメモリ１３が記憶するパスワードと照合し（Ｓ４５０）、両パスワードが一致してクライアント（ＰＣ３０）の識別に成功した場合には、クライアント（ＰＣ３０）の認証に成功したと判断して（Ｓ４５５でＹｅｓ）、通信を中断することなく、当該暗号通信開始処理を終了する。一方、両パスワードが一致しなかった場合には、クライアントの認証に失敗したとして（Ｓ４５５でＮｏ）、アクセス元との通信を中断し（Ｓ４２５）、当該暗号通信開始処理を終了する。
【００６１】
その他、Ｓ４３０において、ＳＳＬハンドシェイクが「モード２」で行われたと判断すると、ＣＰＵ１１は、受信したクライアント証明書により、アクセス元のクライアント（ＰＣ３０）を識別する（Ｓ４６０）。また、この処理を終えると、ＣＰＵ１１は、Ｓ４８０に移行する。そして、Ｓ４６０によりクライアント（ＰＣ３０）の識別に成功した場合には、クライアント（ＰＣ３０）の認証に成功したと判断して（Ｓ４８０でＹｅｓ）、通信を中断することなく、当該暗号通信開始処理を終了し、クライアント（ＰＣ３０）の識別に失敗した場合には、クライアントの認証に失敗したとして（Ｓ４８０でＮｏ）、アクセス元との通信を中断し（Ｓ４２５）、当該暗号通信開始処理を終了する。
【００６２】
また、Ｓ２４０における暗号通信開始処理を終了すると、ＣＰＵ１１は、Ｓ２５０に移行し、先の暗号通信開始処理にて通信が中断されたか否かを判断する。そして、通信が中断されたと判断すると（Ｓ２５０でＹｅｓ）、Ｓ２１０に移行し、通信が継続中であると判断すると（Ｓ２５０でＮｏ）、認証に成功した正当なＰＣ３０から送信されたＨＴＴＰリクエストを受信し（Ｓ２６０）、受信したＨＴＴＰリクエストを復号化する（Ｓ２６５）。
【００６３】
また、この処理を終えると、Ｓ２７０にて、図７に示すリクエスト受付処理を実行し、ＨＴＴＰリクエストに対応したＨＴＴＰレスポンスを生成する。
【００６４】
尚、図７は、ＣＰＵ１１が実行するリクエスト受付処理を表すフローチャートである。リクエスト受付処理を開始すると、ＣＰＵ１１は、受信したＨＴＴＰリクエストが、証明書設定ページを要求するＨＴＴＰリクエストであるか否かを判断し（Ｓ５１０）、証明書設定ページを要求するＨＴＴＰリクエストであると判断すると（Ｓ５１０でＹｅｓ）、証明書設定画面表示用のウェブページである証明書設定ページを格納したＨＴＴＰレスポンスを生成する（Ｓ５１５）。その後、当該リクエスト受付処理を終了する。
【００６５】
図９は、証明書設定画面を表す説明図である。このＨＴＴＰレスポンスの送信によりアクセス元のＰＣ３０の表示部３９には、図９に示す証明書設定画面が表示される。具体的に、本実施例の証明書設定画面は、サーバ証明書閲覧ページに対してリンクが張られた「表示」ボタンＡ１と、サーバ証明書作成ページ（図１０（ａ）参照）に対してリンクが張られた文字列Ａ２と、サーバ証明書及びサーバ秘密鍵のインポート操作を受付可能なウェブページであるサーバ証明書インポート操作ページ（図示せず）対してリンクが張られた文字列Ａ３と、クライアント証明書作成ページ（図１１（ａ）参照）に対してリンクが張られた文字列Ａ４、を構成要素に含む。
【００６６】
即ち、ユーザにより証明書設定画面の「表示」ボタンＡ１に対する選択操作がなされると、ＰＣ３０からは、サーバ証明書閲覧ページを要求するＨＴＴＰリクエストが複合機１０に対して送信され、証明書設定画面の文字列Ａ２に対する選択操作がなされると、ＰＣ３０からは、サーバ証明書作成ページを要求するＨＴＴＰリクエストが複合機１０に対して送信されてくることになる。また、証明書設定画面の文字列Ａ３に対する選択操作がなされると、ＰＣ３０からは、サーバ証明書インポート操作ページを要求するＨＴＴＰリクエストが複合機１０に対して送信され、証明書設定画面の文字列Ａ４に対する選択操作がなされると、ＰＣ３０からは、クライアント証明書作成ページを要求するＨＴＴＰリクエストが複合機１０に対して送信されてくることになる。
【００６７】
ＣＰＵ１１は、Ｓ５１０にて、受信したＨＴＴＰリクエストが、証明書設定ページを要求するＨＴＴＰリクエストではないと判断すると（Ｓ５１０でＮｏ）、受信したＨＴＴＰリクエストが、サーバ証明書作成ページを要求するＨＴＴＰリクエストであるか否かを判断し（Ｓ５３０）、受信したＨＴＴＰリクエストが、サーバ証明書作成ページを要求するＨＴＴＰリクエストであると判断すると、サーバ証明書作成画面表示用のウェブページであるサーバ証明書作成ページを格納したＨＴＴＰレスポンスを生成する（Ｓ５３５）。その後、当該リクエスト受付処理を終了する。
【００６８】
尚、図１０（ａ）は、サーバ証明書作成画面を表す説明図である。上記サーバ証明書作成ページを格納したＨＴＴＰレスポンスの送信によりアクセス元のＰＣ３０の表示部３９には、図１０（ａ）に示すサーバ証明書作成画面が表示される。具体的に、サーバ証明書作成画面は、サーバ証明書を生成するのに必要な項目についての入力操作を受付可能な複数の入力オブジェクトと、各入力オブジェクトの値を格納したＨＴＴＰリクエストであってサーバ証明書の作成を要求するＨＴＴＰリクエストを送信可能な「ＯＫ」ボタンと、を構成要素に有する。また、入力オブジェクトとしては、図１０（ａ）に示すように、サーバ証明書の有効期間を設定するための入力オブジェクトを有する。
【００６９】
即ち、このサーバ証明書作成画面の「ＯＫ」ボタンが押下操作されると、ＰＣ３０からは、上記各入力オブジェクトへの入力値が格納されたサーバ証明書の作成を要求するＨＴＴＰリクエストが送信されてくることになる。
【００７０】
ＣＰＵ１１は、受信したＨＴＴＰリクエストが、サーバ証明書作成ページを要求するＨＴＴＰリクエストではないと判断すると（Ｓ５３０でＮｏ）、Ｓ５４０にて、受信したＨＴＴＰリクエストが、サーバ証明書の作成を要求する上記ＨＴＴＰリクエストであるか否かを判断し、受信したＨＴＴＰリクエストが、サーバ証明書の作成を要求する上記ＨＴＴＰリクエストであると判断すると（Ｓ５４０でＹｅｓ）、Ｓ５４３に移行して、受信したＨＴＴＰリクエストが示す上記各入力オブジェクトの値に基づき、対応するサーバ証明書およびサーバ証明書に対応するサーバ秘密鍵を作成する。尚、この際には、作成した自己のサーバ秘密鍵を用いてディジタル署名しサーバ証明書を生成する。また、この処理を終えると、ＣＰＵ１１は、サーバ証明書保存（アップロード）用のウェブページであるサーバ証明書保存ページを格納したＨＴＴＰレスポンスを生成し（Ｓ５４７）、当該リクエスト受付処理を終了する。
【００７１】
尚、図１０（ｂ）は、サーバ証明書保存ページにより表示されるサーバ証明書保存画面を表す説明図である。上記サーバ証明書保存ページを格納したＨＴＴＰレスポンスの送信によりアクセス元のＰＣ３０の表示部３９には、図１０（ｂ）に示すサーバ証明書保存画面が表示される。具体的に、サーバ証明書保存画面は、サーバ証明書のアップロード操作を受け付けるための「ファイルに保存」ボタンを有し、このボタンが押下操作されると、Ｓ５４３で作成されたサーバ証明書は、アクセス元のＰＣ３０にアップロードされる。
【００７２】
その他、ＣＰＵ１１は、受信したＨＴＴＰリクエストが、サーバ証明書の作成を要求する上記ＨＴＴＰリクエストではないと判断すると（Ｓ５４０でＮｏ）、Ｓ５５０に移行し、受信したＨＴＴＰリクエストがサーバ証明書インポート操作ページを要求するＨＴＴＰリクエストであるか否かを判断する。そして、受信したＨＴＴＰリクエストがサーバ証明書インポート操作ページを要求するＨＴＴＰリクエストであると判断すると（Ｓ５５０でＹｅｓ）、サーバ証明書インポート操作ページを格納したＨＴＴＰレスポンスを生成する（Ｓ５５５）。その後、当該リクエスト受付処理を終了する。尚、ＣＰＵ１１は、ＰＣ３０で、このサーバ証明書インポート操作ページに基づくサーバ証明書及びサーバ秘密鍵のインポート操作がなされると、これに対応して、サーバ証明書及びサーバ秘密鍵をＰＣ３０からダウンロードし、これをフラッシュメモリ１３に書き込み、サーバ証明書及びサーバ秘密鍵を更新する。
【００７３】
また、ＣＰＵ１１は、受信したＨＴＴＰリクエストが、サーバ証明書インポート操作ページを要求するＨＴＴＰリクエストではないと判断すると（Ｓ５５０でＮｏ）、受信したＨＴＴＰリクエストが、クライアント証明書作成ページを要求するＨＴＴＰリクエストであるか否かを判断し（Ｓ５６０）、受信したＨＴＴＰリクエストが、クライアント証明書作成ページを要求するＨＴＴＰリクエストであると判断すると、クライアント証明書作成画面表示用のウェブページであるクライアント証明書作成ページを格納したＨＴＴＰレスポンスを生成する（Ｓ５６５）。その後、当該リクエスト受付処理を終了する。
【００７４】
尚、図１１（ａ）は、クライアント証明書作成画面を表す説明図である。上記クライアント証明書作成ページを格納したＨＴＴＰレスポンスの送信によりアクセス元のＰＣ３０の表示部３９には、図１１（ａ）に示すクライアント証明書作成画面が表示される。具体的に、クライアント証明書作成画面は、クライアント証明書に、所有者情報として記述する所有者のメールアドレスと、このクライアント証明書を更新した際に、このメールアドレス先にメール送信するときに用いられる更新後のクライアント証明書およびクライアント秘密鍵を暗号化するためのパスワードの入力を受け付けるためのテキストボックスと、テキストボックスへの入力値を格納したクライアント証明書の作成を要求するＨＴＴＰリクエストを送信するための「ＯＫ」ボタンと、を構成要素に有する。即ち、このクライアント証明書作成画面の「ＯＫ」ボタンが押下操作されると、ＰＣ３０からは、所有者のメールアドレスが格納されたクライアント証明書の作成を要求するＨＴＴＰリクエストが送信されてくることになる。
【００７５】
ＣＰＵ１１は、受信したＨＴＴＰリクエストが、クライアント証明書作成ページを要求するＨＴＴＰリクエストではないと判断すると（Ｓ５６０でＮｏ）、Ｓ５７０にて、受信したＨＴＴＰリクエストが、クライアント証明書の作成を要求する上記ＨＴＴＰリクエストであるか否かを判断し、受信したＨＴＴＰリクエストが、クライアント証明書の作成を要求する上記ＨＴＴＰリクエストであると判断すると（Ｓ５７０でＹｅｓ）、Ｓ５７３の新規クライアント証明書および秘密鍵の作成処理に移行する。Ｓ５７３の処理は、図８に示すように、受信したＨＴＴＰリクエストが示す上記メールアドレスの値に基づき、クライアント証明書および対応するクライアント秘密鍵を作成する（ｓ５７４）。なお、ここで作成するクライアント証明書の有効期限は、予め決められた期間（例えば一年）に自動的に設定される。Ｓ５７４によりＷｅｂページから入力されたメールアドレス、暗号パスワード、そして、電子証明書の有効期限は、発行済みクライアント証明書用管理データベース（図１２参照）において、新たなレコードを追加し、そのレコードに登録される（Ｓ５７５）。その後、Ｓ５７４で作成されたクライアント証明書およびクライアント秘密鍵をＰＫＣＳ＃１２形式で暗号化およびファイル化する（Ｓ５７６）。このとき暗号化するパスワードは、図１１（ａ）にて入力された暗号パスワードを使用する。なお、ＰＫＣＳ＃１２は、電子証明書および秘密鍵のファイルを格納するフォーマット規格であって、そのファイルは、パスワードによって暗号化できる。そして、図７に戻り、Ｓ５７７にて、クライアント証明書保存（アップロード）用のウェブページであるクライアント証明書保存ページを格納したＨＴＴＰレスポンスを生成する。その後、当該リクエスト受付処理を終了する。
【００７６】
尚、図１１（ｂ）は、クライアント証明書保存ページにより表示されるクライアント証明書保存画面を表す説明図である。上記クライアント証明書保存ページを格納したＨＴＴＰレスポンスの送信によりアクセス元のＰＣ３０の表示部３９には、図１１（ｂ）に示すクライアント証明書保存画面が表示される。具体的に、クライアント証明書保存画面は、クライアント証明書のアップロード操作を受け付けるための「ファイルに保存」ボタンを有し、このボタンが押下操作されると、クライアント証明書は、アクセス元のＰＣ３０にアップロードされる。尚、アップロード時には、図８のＳ５７６にて暗号化されたクライアント証明書およびクライアント秘密鍵が、アクセス元のＰＣ３０にアップロードされる。
【００７７】
その他、ＣＰＵ１１は、受信したＨＴＴＰリクエストが、クライアント証明書の作成を要求する上記ＨＴＴＰリクエストではないと判断すると（Ｓ５７０でＮｏ）、Ｓ５８０に移行し、受信したＨＴＴＰリクエストが、管理者設定用のウェブページである管理者設定ページを要求するＨＴＴＰリクエストであるか否かを判断する。そして、受信したＨＴＴＰリクエストが、管理者設定ページを要求するＨＴＴＰリクエストであると判断すると（Ｓ５８０でＹｅｓ）、Ｓ５８５に移行し、管理者設定ページを格納したＨＴＴＰレスポンスを生成する。その後、リクエスト受付処理を終了する。
【００７８】
尚、図１３は、管理者設定ページにより表示される管理者設定画面を表す説明図である。上記管理者設定ページを格納したＨＴＴＰレスポンスの送信によりアクセス元のＰＣ３０の表示部３９には、図１３に示す管理者設定画面が表示される。具体的に、管理者設定画面は、管理者のメールアドレスと、このメールアドレス先にメール送信するときにメールに添付される更新後の電子証明書を暗号化するためのサーバ証明書用暗号パスワードの入力を受け付けるためのテキストボックスと、テキストボックスへの入力値を格納した管理者の設定を要求するＨＴＴＰリクエストを送信するための「ＯＫ」ボタンと、を構成要素に有する。即ち、この管理者設定画面の「ＯＫ」ボタンが押下操作されると、ＰＣ３０からは、管理者メールアドレスが格納された管理者の設定を要求するＨＴＴＰリクエストが送信されてくることになる。
【００７９】
ＣＰＵ１１は、受信したＨＴＴＰリクエストが、管理者設定ページを要求するＨＴＴＰリクエストではないと判断すると（Ｓ５８０でＮｏ）、Ｓ５９０に移行し、受信したＨＴＴＰリクエストが、管理者の設定を要求する上記ＨＴＴＰリクエストであるか否かを判断し、受信したＨＴＴＰリクエストが管理者の設定を要求する上記ＨＴＴＰリクエストであると判断すると（Ｓ５９０でＹｅｓ）、Ｓ５９３に移行し、フラッシュメモリ１３に記憶された管理者メールアドレスおよびサーバ証明書用暗号パスワードを、ＨＴＴＰリクエストに格納された管理者メールアドレスおよびサーバ証明書用暗号パスワードに更新する。また、この処理を終えると、ＣＰＵ１１は、Ｓ５９７に移行して、設定成功の旨のＨＴＴＰレスポンスを、アクセス元のＰＣ３０に送信する。その後、当該リクエスト受付処理を終了する。
【００８０】
また、ＣＰＵ１１は、受信したＨＴＴＰリクエストが、管理者の設定を要求する上記ＨＴＴＰリクエストではないと判断すると（Ｓ５９０でＮｏ）、ＨＴＴＰリクエストに対応したその他のＨＴＴＰレスポンスを生成する処理を行う（Ｓ５９９）。そして、この処理を終えると、当該リクエスト受付処理を終了する。
【００８１】
その後、リクエスト受付処理にて生成されたＨＴＴＰレスポンスを暗号化して（Ｓ２８０）、この暗号化されたＨＴＴＰレスポンスをアクセス元のＰＣ３０に送信する（Ｓ２８５）。その後、Ｓ２１０に移行する。
【００８２】
ＣＰＵ１１は、Ｓ２３０において、発生したイベントが、暗号ウェブアクセスではないと判断すると、Ｓ２９０にて、発生したイベントが、非暗号ウェブアクセスであるか否かを判断し、発生したイベントが非暗号ウェブアクセスであると判断すると（Ｓ２９０でＹｅｓ）、アクセス元のＰＣ３０から送信されてくるＨＴＴＰリクエストを受信し（Ｓ３００）、上述したように、図７に示すリクエスト受付処理を行い（Ｓ３１０）、生成したＨＴＴＰレスポンスを、アクセス元のＰＣ３０に返信する（Ｓ３１５）。その後、Ｓ２１０に移行する。
【００８３】
また、Ｓ２９０において、発生したイベントが非暗号ウェブアクセスでもないと判断すると、ＣＰＵ１１は、Ｓ３２０に移行し、発生したイベントが暗号印刷用ポートへのアクセスであるか否かを判断し、発生したイベントが暗号印刷用ポートへのアクセスであると判断すると（Ｓ３２０でＹｅｓ）、Ｓ３３０にて、図６に示す暗号通信開始処理を実行する。
【００８４】
そして、暗号通信開始処理にて通信が中断された場合には、Ｓ３４０でＹｅｓと判断し、Ｓ２１０に移行する。一方、暗号通信開始処理にて通信が中断されずアクセス元のＰＣ３０との通信が継続している場合には、Ｓ３４０でＮｏと判断し、アクセス元のＰＣ３０からＳ１６０にて送信されてくる暗号化された印刷データを受信し（Ｓ３５０）、受信した印刷データを復号化する（Ｓ３５５）。その後、Ｓ３８０に移行して、受信した印刷データを印刷処理し、印刷データに基づく印刷画像を、印刷部１７を通じて用紙に印刷する。その後、Ｓ２１０に移行する。
【００８５】
その他、Ｓ３２０において、発生したイベントが暗号印刷用ポートへのアクセスではないと判断すると（Ｓ３２０でＮｏ）、ＣＰＵ１１は、Ｓ３６０に移行し、発生したイベントが非暗号印刷用ポートへのアクセスであるか否かを判断する。そして、発生したイベントが非暗号印刷用ポートへのアクセスであると判断すると（Ｓ３６０でＹｅｓ）、Ｓ３７０に移行し、アクセス元のＰＣ３０から送信されてくる暗号化されていない印刷データを受信し（Ｓ３７０）、その後、Ｓ３８０にて、受信した印刷データを印刷処理し、この印刷データに基づく印刷画像を、印刷部１７を通じて用紙に形成する。また、この処理を終えると、Ｓ２１０に移行する。
【００８６】
また、Ｓ３６０において、発生したイベントが非暗号印刷用ポートへのアクセスでもないと判断すると、ＣＰＵ１１は、Ｓ３９０に移行して、発生したイベントに対応する処理を実行する。その後、Ｓ２１０に移行する。
【００８７】
次に、図５のＳ２２０のサーバ証明書期限確認処理について詳しく説明する。図１４は、ＣＰＵ１１が実行するサーバ証明書期限確認処理を表すフローチャートである。
【００８８】
サーバ証明書期限確認処理を開始すると、ＣＰＵ１１は、サーバ証明書の有効期限と現在時刻とを比較し（Ｓ６１０）、サーバ証明書の有効期限が過ぎたか否かを判断する（Ｓ６１５）。そして、有効期限が過ぎていないと判断すると（Ｓ６１５でＮｏ）、Ｓ６２０〜Ｓ６７５の処理を実行することなく、サーバ証明書期限確認処理を終了する
一方、有効期限が過ぎたと判断すると（Ｓ６１５でＹｅｓ）、ＣＰＵ１１は、Ｓ６２０に移行して、新たにサーバ証明書を作成する（Ｓ６２０）。この際には、サーバ秘密鍵も生成する。なお、ここでは有効期限に基づき、自装置が所有するサーバ証明書の有効期限を確認しているが、これに限らず、サーバ証明書に記された情報に基づき（例えば、自装置のホスト名およびドメイン名と電子証明書に記された所有者情報とが一致するかを判断して）、サーバ証明書の有効性を確認してもよい。
【００８９】
また、この処理を終えると、新たに作成したサーバ証明書をパスワードにて暗号化して証明書ファイルを生成する（Ｓ６２５）。尚、サーバ証明書の暗号化の際には、フラッシュメモリ１３に記憶された予め定められたサーバ証明書暗号用パスワードを用いて、サーバ証明書を暗号化する。そして、この暗号化した証明書ファイルを添付した電子メールを作成する（Ｓ６３０）。電子証明書を暗号化された状態でメール送信することで、第三者による盗聴や改竄等を防ぎ、安全に電子証明書を送信することができる。
【００９０】
Ｓ６３０での処理を終えると、電子メールの宛先に、フラッシュメモリ１３が記憶する管理者メールアドレスを設定する（Ｓ６３５）。また、Ｓ６３５での処理を終えると、ＣＰＵ１１は、上記電子メールを、メールサーバ３に送信することで、メールサーバ３を通じて、上記電子メールを、管理者のメールアドレスに送信する（Ｓ６４０）。
【００９１】
電子メールを受信した管理者は、添付されたサーバ証明書を予め管理者設定時に設定したパスワードにより解読し、ブラウザ等にインポートすることでＳＳＬによる通信が可能となる。したがって、管理者が複合機１０の管理ができなくなることを防止することができる。また、管理対象者であるＰＣ３０の所有者に、更新後のサーバ証明書を配布することで、ＰＣ３０の所有者も複合機１０とのＳＳＬによる通信を行うことができる。なお、このときメール送信する送信先として、フラッシュメモリ１３にこのサーバ証明書により認証処理を行うＰＣ３０の所有者のメールアドレスおよびパスワードをそれぞれ記憶しておき、サーバ証明書更新時には、各所有者に更新後のサーバ証明書をメール送信するように構成してもよい。ＰＣ３０の所有者それぞれに、更新後のサーバ証明書を送信すれば、管理者から別途更新後のサーバ証明書を各ＰＣ３０の所有者に配布する手間が省ける。
【００９２】
次に、発行済みクライアント証明書管理データベースにアクセスする（Ｓ６４５）。そして、発行済みクライアント証明書管理データベースに登録された全てのレコードに対して、以下のＳ６５０からＳ６７５までの処理を行う。Ｓ６５０では、有効期限を現在日から１年後に設定した新しいクライアント証明書とクライアント秘密鍵のペアを、Ｓ６２０にて作成したサーバ秘密鍵によりディジタル署名することで作成する。
【００９３】
そして、発行済みクライアント証明書管理データベースの該当レコードの有効期限を、この新しいクライアント証明書の有効期限に書き換える（Ｓ６５５）。Ｓ６５０にて作成したクライアント証明書とクライアント秘密鍵をＰＫＣＳ＃１２形式で暗号化及びファイル化する（Ｓ６６０）。このとき暗号化する暗号パスワードは、発行済みクライアント証明書管理データベースの該当レコードの暗号パスワードを使用する。
【００９４】
Ｓ６６０にて作成したファイルを添付した電子メールを作成し（Ｓ６６５）、この電子メールの送信先を発行済みクライアント証明書管理データベースの該当レコードの所有者メールアドレスに設定する（Ｓ６７０）。そして、この電子メールを設定された送信先に送信する（Ｓ６７５）。発行済みクライアント証明書管理データベースに登録された全てのクライアント証明書について、Ｓ６５０からＳ６７５までの処理を行うと、本処理を終了する。
【００９５】
なお、電子メールを受信した所有者は、添付されたクライアント証明書をパスワードにより解読し、ブラウザ等にインポートすることでクライアント証明書の使用が可能となる。よって、サーバ証明書の秘密鍵によりディジタル署名を行ったクライアント証明書が、そのサーバ証明書を更新することにより使用できなくなるといったことを防止する。
【００９６】
次に、図５のＳ２２５における発行済みクライアント証明書期限確認処理について図１５を用いて説明する。
【００９７】
発行済みクライアント証明書期限確認処理を開始すると、ＣＰＵ１１は、発行済みクライアント証明書管理データベースにアクセスする（Ｓ７１０）。そして、発行済みクライアント証明書管理データベースから、有効期限が切れたクライアント証明書を検索する（Ｓ７２０）。具体的には、図１２に示す発行済みクライアント証明書管理データベースから、データベースに登録された順に、登録された有効期限と現在時刻とを比較する。そして、有効期限が切れたクライアント証明書がない場合には（Ｓ７３０：Ｎｏ）、本処理を終了する。
【００９８】
有効期限が切れたクライアント証明書があると（Ｓ７３０：Ｙｅｓ）、Ｓ７４０へ移行し、その有効期限切れのクライアント証明書を更新する。すなわち、有効期限を現在日から１年後に設定した新しいクライアント証明書とクライアント秘密鍵のペアを作成する。そして、発行済みクライアント証明書管理データベースの該当レコードの有効期限を、この新しいクライアント証明書の有効期限に書き換える（Ｓ７４５）。
【００９９】
Ｓ７４０にて作成したクライアント証明書とクライアント秘密鍵をＰＫＣＳ＃１２形式で暗号化及びファイル化する（Ｓ７５０）。このとき暗号化する暗号パスワードは、発行済みクライアント証明書管理データベースの該当レコードの暗号パスワードを使用する。Ｓ７５０にて作成したファイルを添付した電子メールを作成し（Ｓ７６０）、この電子メールの送信先を発行済みクライアント証明書管理データベースの該当レコードの所有者メールアドレスに設定する（Ｓ７７０）。
【０１００】
そして、この電子メールを設定された送信先に送信する（Ｓ７８０）。発行済みクライアント証明書管理データベースに登録された有効期限が切れた全てのクライアント証明書について、Ｓ７４０からＳ７８０までの処理を行うと、本処理を終了し、図５のＳ２１０へ戻る。
【０１０１】
なお、電子メールを受信した所有者は、添付されたクライアント証明書をパスワードにより解読し、ブラウザ等にインポートすることでクライアント証明書の使用が可能となる。
【０１０２】
このように発行済みクライアント証明書管理データベースに、電子証明書の有効期限、更新した電子証明書の送信先となる所有者メールアドレス、メール送信時に暗号化する暗号パスワードを、電子証明書ごとに登録されているため、更新後のクライアント証明書を必要な相手先に直接メール送信でき、さらに電子証明書ごとに、パスワードが設定されているため、第三者への漏洩・改竄を防止することができる。
【０１０３】
以上、本実施例の通信システム１について説明したが、上記実施例に限定されるものではなく、証明書発行装置が、無効と判断した電子証明書を更新し、その電子証明書を必要とする所有者等のメールアドレスを送信先として電子メールを送信すればよく、本発明の目的を逸脱しない範囲で、種々の態様を採ることができる。
【０１０４】
例えば、サーバ証明書、クライアント証明書ともに、複合機が有するＣＡ機能により発行したが、第三者であるＣＡが発行するように構成してもよい。このような場合、例えば、クライアント証明書をＣＡに発行してもらう場合には、サーバのフラッシュメモリ１３にクライアント証明書検証用ＣＡ証明書を、サーバ証明書をＣＡに発行してもらう場合には、ＰＣのＨＤＤ３４にサーバ証明書検証用ＣＡ証明書を予め証明書を発行したＣＡから取得し記憶しておく必要がある。
【０１０５】
ＣＡは、自己が発行した管理対象となる電子証明書の有効期限、所有者情報としてのメールアドレス、暗号パスワードをそれぞれ管理データベースに記憶する。そして、有効期限切れの電子証明書が見つかると、その電子証明書の有効期限を現在日から所定期間（例えば１年）とした有効な電子証明書を新たに作成（更新）し、更新した電子証明書に記された情報に基づき、管理データベースの該当レコードを更新する。そして、更新した電子証明書を管理データベースの該当レコードに登録された暗号パスワードにより暗号化し、管理データベースの該当レコードに登録されたメールアドレスを送信先として、その暗号化した電子証明書およびその電子証明書と対応する秘密鍵を送信先のメールアドレスにメール送信する。電子メールの受信側は、受信した電子証明書がサーバ証明書であるかクライアント証明書であるかを、例えばファイル名などにより判断し、サーバ証明書であれば複合機１０に、クライアント証明書であればＰＣ３０にインポートする。
【図面の簡単な説明】
【０１０６】
【図１】通信システム１の構成を表す説明図である。
【図２】通信システム１で用いられる電子証明書の構成を表す説明図である。
【図３】ＳＳＬハンドシェイクの手順を表すラダーチャートである。
【図４】ＰＣ３０のＣＰＵ３１が行う暗号印刷処理を表すフローチャートである。
【図５】複合機１０のＣＰＵ１１が行う複合機処理を表すフローチャートである。
【図６】ＣＰＵ１１が行う暗号通信開始処理を表すフローチャートである。
【図７】ＣＰＵ１１が行うリクエスト受付処理を表すフローチャートである。
【図８】証明書設定画面を表す説明図である。
【図９】サーバ証明書作成画面（ａ）及びサーバ証明書保存画面（ｂ）を表す説明図である。
【図１０】クライアント証明書作成画面（ａ）及びクライアント証明書保存画面（ｂ）を表す説明図である。
【図１１】新規クライアント証明書および秘密鍵の作成処理を表すフローチャートである。
【図１２】発行済みクライアント証明書用管理データベースの説明図である。
【図１３】管理者設定画面を表す説明図である。
【図１４】ＣＰＵ１１が行うサーバ証明書期限確認処理を表すフローチャートである。
【図１５】ＣＰＵ１１が行う発行済みクライアント証明書期限確認処理を表すフローチャートである。
【符号の説明】
【０１０７】
１…通信システム、３…メールサーバ、１０…複合機、１１，３１…ＣＰＵ、１２，３２…ＲＡＭ、１３…フラッシュメモリ、１５，３５…通信インタフェース、１７…印刷部、１９…読取部、２１…表示操作部、３０…ＰＣ、３３…ＲＯＭ、３４…ハードディスク装置、３７…操作部、３９…表示部
【図１】
0004835177.tif 000002
【図２】
0004835177.tif 000003
【図３】
0004835177.tif 000004
【図４】
0004835177.tif 000005
【図５】
0004835177.tif 000006
【図６】
0004835177.tif 000007
【図７】
0004835177.tif 000008
【図８】
0004835177.tif 000009
【図９】
0004835177.tif 000010
【図１０】
0004835177.tif 000011
【図１１】
0004835177.tif 000012
【図１２】
0004835177.tif 000013
【図１３】
0004835177.tif 000014
【図１４】
0004835177.tif 000015
【図１５】
0004835177.tif 000016