(57)【要約】【課題】デバイスとクライアントとがネットワークを介して通信するとき、ネットワークの外部から証明書を購入することなく、保証された証明書として使うことができる。【解決手段】デバイスとクライアントとがネットワークを介して通信する通信システムにおいて、デバイスは、生成された公開鍵と秘密鍵の対の中の公開鍵を含み、秘密鍵で署名されたルート証明書を保持する第１記憶手段と、ルート証明書を上位認証局として含む証明書として作成し、作成した証明書を秘密鍵を用いて署名する証明書作成手段と、証明書作成手段により作成された証明書をクライアントに送信する送信手段とを備える。また、クライアントは、前記の第１記憶手段に記憶されているルート証明書を記憶する第２記憶手段と、前記のデバイスから受け取った証明書の署名を公開鍵を用いて検証する検証手段とを備える。【選択図】図５
2005006076.tif 000002
【特許請求の範囲】
【請求項１】
デバイスとクライアントとがネットワークを介して通信する通信システムにおいて、
前記のデバイスは、生成された公開鍵と秘密鍵の対の中の公開鍵を含み、秘密鍵で署名されたルート証明書を保持する第１記憶手段と、
ルート証明書を上位認証局であることを含む証明書として作成し、作成した証明書を秘密鍵を用いて署名する証明書作成手段と、
証明書作成手段により作成された証明書をクライアントに送信する送信手段とを備え、
前記のクライアントは、前記の第１記憶手段に記憶されているルート証明書を記憶する第２記憶手段と、
前記のデバイスから受け取った証明書の署名を公開鍵を用いて検証する検証手段とを備える
通信システム。
【請求項２】
デバイスとクライアントとがネットワークを介して通信する通信システムにおいて、
前記のデバイスは、生成された公開鍵と秘密鍵の対の中の公開鍵を含み、秘密鍵で署名されたルート証明書を保持し、
前記のクライアントは、前記のルート証明書を記憶し、
前記のデバイスは、ルート証明書を上位認証局であることを含む証明書として作成し、作成した証明書を秘密鍵を用いて署名し、作成された証明書をクライアントに送信し、
前記のクライアントは、前記のデバイスから受け取った証明書の署名を公開鍵を用いて検証する
通信方法。
【請求項３】
前記のクライアントは、
プリンタドライバソフトをデバイスからインストールしたとき、次に、デバイスに対してルート証明書を要求し、
デバイスからルート証明書を受け取ると、受け取ったルート証明書を規定のフォーマットに変換し、
変換されたルート証明書をインストールすることにより、前記のルート証明書を記憶する
ことを特徴とする請求項２に記載された通信方法。
【請求項４】
プリンタドライバソフトをデバイスからインストールしたとき、デバイスに対してルート証明書を要求するステップと、
デバイスからルート証明書を受け取ると、受け取ったルート証明書を規定のフォーマットに変換するステップと、
変換されたルート証明書をインストールするステップと
を有することを特徴とするコンピュータで動作可能なプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク環境における公開鍵を用いたデータ通信に関するものである。
【０００２】
【従来の技術】
公開鍵暗号方式では、公開鍵と秘密鍵の対を生成し、秘密鍵を用いてデータを暗号化し、送信する。送信先では，公開鍵を用いて復号化する。公開鍵基盤（ＰＫＩ）では、公開鍵暗号方式を用いるとともに、送信元の身元を保証するための電子証明書（以下、単に証明書という）を発行する第３者機関である認証局が設けられる。証明書を復号するための公開鍵は認証局を通して受け渡しが行われる。データを送信するとき、データの送信元では、データについてのハッシュ値を作成し、データとハッシュ値を秘密鍵で暗号化して電子署名を行う。そして、公開鍵について認証局に対して電子証明書の発行を申請する。認証局では、公開鍵と秘密鍵の対を生成して、電子証明書を発行する。電子証明書では、送信元の公開鍵を含む情報が認証局の秘密鍵で暗号化されている。送信元は、ハッシュ値を用いてデータに対して電子署名をし、認証局が発行した証明書を加えて、通信相手に送る。送信先では、認証局から認証局の公開鍵を取得して電子証明書を復号化して、送信元の公開鍵を取り出す。これにより電子署名の送信元を確認できるので、セキュリティが高められる。また、送信元の公開鍵を用いてデータとハッシュ値を復号化する。ハッシュ値が復号化できることによりデータ改竄の有無を確認できる。また、データを復号化できることにより、送信元が送信したものであることが確認できる。なお、ユーザーは、生成した公開鍵ごとに認証局に証明書の発行を要求する。証明書の発行を簡素化するデータ通信システムが、たとえば特開２００１−３２０３５６号公報に記載されている。
【０００３】
公開鍵基盤では、複数の認証局が、階層構造を持って組織されている。最も上位の認証局（複数）をルート認証局という。電子証明書は、階層構造をなす一連の認証局が順次署名を行ったものである。認証局の公開鍵の検証には、より上位の認証局の証明書を用いる。したがって、証明書の検証には、証明書のチェーンすなわちルート認証局までの全リストを入手する必要がある。
【０００４】
【特許文献１】
特開２００１−３２０３５６号公報
【０００５】
【発明が解決しようとする課題】
近年、ネットワーク環境において、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）に代表されるようなセキュアな暗号化通信の要求がある。ＳＳＬは、ウェブサーバとウェブブラウザとの間でデータを暗号化して送受信するための通信プロトコルであり、公開鍵暗号化方式により電子証明書を使って安全にデータを送受信する。ＳＳＬなどで安全に通信を行うには、サーバー側に証明書が必要である。サーバーの証明書は、外部の認証局の証明書発行サービスを有料で購入できる。しかし、イントラネットなどでは、ユーザはＳＳＬ通信だけのために外部から高額な証明書を購入したくない。一方、証明書はサーバーが作成してもよい。しかし、この場合、認証局でないものが作成した証明書であるため、ＳＳＬ通信開始時に、保証されていない証明書であるとの警告のダイアログを表示されてしまう。これはルート認証局までの証明書のリストがそろっていないためである。
【０００６】
この発明の目的は、デバイスとクライアントとがネットワークを介して通信するとき、ネットワークの外部から証明書を購入することなく、保証された証明書として使うことができるようにすることである。
【０００７】
【課題を解決するための手段】
本発明に係る通信システムは、デバイス（プリンタなど）とクライアント（ＰＣなど）とがネットワークを介して通信する通信システムである。前記のデバイスは、生成された公開鍵と秘密鍵の対の中の公開鍵を含み、秘密鍵で署名されたルート証明書を保持する第１記憶手段と、ルート証明書を上位認証局であることを含む証明書として作成し、作成した証明書を秘密鍵を用いて署名する証明書作成手段と、証明書作成手段により作成された証明書をクライアントに送信する送信手段とを備える。また、前記のクライアントは、前記の第１記憶手段に記憶されているルート証明書を記憶する第２記憶手段と、前記のデバイスから受け取った証明書の署名を公開鍵を用いて検証する検証手段とを備える。
【０００８】
本発明に係る通信方法では、デバイスとクライアントとがネットワークを介して通信する通信システムにおいて、前記のデバイスは、生成された公開鍵と秘密鍵の対の中の公開鍵を含み、秘密鍵で署名されたルート証明書を保持し、前記のクライアントは、前記のルート証明書を記憶する。前記のデバイスは、ルート証明書を上位認証局であることを含む証明書として作成し、作成した証明書を秘密鍵を用いて署名し、作成された証明書をクライアントに送信し、前記のクライアントは、前記のデバイスから受け取った証明書の署名を公開鍵を用いて検証する。
【０００９】
好ましくは前記の方法において、前記のクライアントは、プリンタドライバソフトをデバイスからインストールしたとき、次に、デバイスに対してルート証明書を要求し、デバイスからルート証明書を受け取ると、受け取ったルート証明書を規定のフォーマットに変換し、変換されたルート証明書をインストールすることにより、前記のルート証明書を記憶することを特徴とする。
【００１０】
本発明に係るコンピュータで動作可能なプログラムは、プリンタドライバソフトをデバイスからインストールしたとき、デバイスに対してルート証明書を要求するステップと、デバイスからルート証明書を受け取ると、受け取ったルート証明書を規定のフォーマットに変換するステップと、変換されたルート証明書をインストールするステップとからなることを特徴とする。
【００１１】
【発明の実施の形態】
以下、添付の図面を参照して本発明の実施の形態を説明する。なお、図面において、同じ参照記号は同一または同等のものを示す。
図１は、ネットワークを介してデータを通信するデータ通信システムを示す。プリンタ、複合装置（ＭＦＰ）などのデバイス１００と、複数のクライアント２００が、ＬＡＮ、イントラネットなどのネットワーク３００に接続されている。このネットワーク３００において、通信プロトコルとしてＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）を用いる。デバイス１００はサーバーとして動作し、ＳＳＬをサポートしているウェブサーバー１２０を備える。クライアント２００は、たとえば、パーソナルコンピュータ（ＰＣ）であり、ＳＳＬをサポートしているウェブブラウザ２１６（以下、単にブラウザともいう）を備える。デバイス１００のウェブサーバー１２０とクライアント２００のブラウザ２１６は、ＳＳＬでデータを交換できる。なお、図１に示すネットワーク３００には、デバイス１００とクライアント２００がそれぞれ１台接続されているが、一般に、複数のデバイス１００とクライアント２００が接続できる。
【００１２】
図２は、デバイス１００の１つである複合装置（ＭＦＰ）の内部構成を示す。複合装置は、画像読み取りを行うスキャナ部１０２、画像の印刷を行うプリント部（プリントエンジン）１０４、ネットワーク２を介する通信を行う通信部１０６、及び、操作指示と表示のための操作パネル１０８を備える。また、全体を制御するＣＰＵ１１０は、内部バス１１２を介して、前記の各部１０２〜１０８に加えて、ＲＡＭ１１４、ＲＯＭ１１６、記憶装置（ハードディスク装置など）１１８、スキャナ制御部１２８、プリントコントローラ１３０に接続される。スキャナ制御部１２８はスキャナ部１０２を制御し、プリントコントローラ１３０はプリント部１０４を制御する。この複合装置は、プリンタ、複写機、スキャナなどとして機能する。また、記憶装置１１８には、ＳＳＬをサポートするウェブサーバー１２０、ルート証明書を作成する証明書作成プログラム１２２、自己作成証明書を作成する証明書作成プログラム１２４などのプログラムを記憶し、ルート証明書１２８、自己作成証明書１３０、通信されるファイル１３２などのデータを記憶できる。
【００１３】
また、図３は、クライアント２００であるパーソナルコンピュータの構成を示す。パーソナルコンピュータは、全体を制御するＣＰＵ２０２と、それに接続されるＲＡＭ２０４、ＲＯＭ２０６を備える。ＣＰＵ２０２には、さらに、ディスプレイ装置２０８と、キーボード、マウスなどの入力装置２１０と、外部のネットワークとの通信を行う通信装置２１２が接続される。ＣＰＵ２０２には、さらに、プログラムとファイルを記憶するハードディスクを備えるハードディスク装置（ＨＤＤ）２１４や、コンパクトディスク（ＣＤ）２２４ａとアクセスするＣＤ装置２２４が接続される。ハードディスク、コンパクトディスクなどの記憶媒体には、ＯＳなどの他、ＳＳＬをサポートするウェブブラウザ２１６、プリンタドライバー２１８、ルート証明書をクライアントにインストールするインストールプログラム２２０などのプログラムや、ルート証明書２２２、通信されるファイル２２４などのデータが記憶される。プリンタドライバー２１８は、デバイス１００の１つである複合装置（ＭＦＰ）などへ送る印刷データを作成する。
【００１４】
なお、デバイス１００やクライアント２００において、プログラムを記憶する記憶媒体としては、記憶装置１１８やハードディスク装置２１４のハードディスクの他、フレキシブルディスクやＣＤ２２４ａなどの各種光ディスクなどでもよく、これらはそれぞれ対応する記憶装置（フレキシブルディスク装置や光ディスク装置）で使用される。
【００１５】
デバイス１００のウェブサーバー１２０とクライアント２００のウェブブラウザ２１６がＳＳＬでデータを送信するとき、サーバー認証、クライアント認証および通信内容の暗号化を行う。デバイス１００は、ルート証明書１２２を保持している。ルート証明書１２２は、自分で作成することも、認証局に発行を依頼することもできるが、ここでは、ルート証明書１２２は、後で説明するようにデバイス１００が作成し保持している。デバイス１００が作成する場合、デバイス側でルート証明書の属性値を自由に変更できるという利点がある。ルート証明書１２２は、ルート証明書の作成の際に生成された公開鍵を含んでいる。一方、このルート証明書１２２が、あらかじめクライアント２００にインストールされている。これが、クライアント２００に記憶されているルート証明書２２０である。なおルート証明書２２０のインストールは、好ましくは自動的に行われる。たとえばデバイス１００のためのプリンタドライバ２１８をクライアント２００にインストールするときにインストールされる。また、インストールは、好ましくはユーザーの確認のもとに行われる。クライアント２００は、ルート証明書２２０を保持しているので、後で説明するように、デバイス１００から受け取った証明書の認証を行うときに、外部の認証局で発行された証明書を必要としない。なお、ルート証明書２２０をＲＯＭなどに記録してクライアント２００に提供すれば、その改竄が防止できる。
【００１６】
証明書は、デバイス２００内のプログラム１２２，１２４によりＸ．５０９形式で作成されるが、Ｘ．５０９形式の証明書は以下の情報を含む。証明書のバージョン、証明書の通し番号、署名値と署名に使ったアルゴリズムとパラメータ、発行者の名前、住所など、証明書の有効期限、証明書の持主の名前、住所などおよび証明対象の公開鍵情報。プログラムの入力要求に対応してユーザーが必要な情報を入力すると、証明書がそれに基づいて作成される。Ｘ．５０９形式の証明書は、内部ではＡＳＮ．１形式で保存するが、外部ではＰＫＣＳ＃１２、ＰＫＣＳ＃７などの形式で保存する。自己作成証明書を作成する証明書作成プログラム１２４を用いて証明書を作成するとき、発行者の名前にルート証明書を記載する。
【００１７】
ＳＳＬによる送信について説明すると、デバイス１００のウェブサーバー１０２に秘密鍵と公開鍵があらかじめ用意されている。図４に示すように、クライアント２００からデバイス１００にＳＳＬ接続が要求されると、デバイス１００は、使用する暗号化と圧縮のアルゴリズムを決定し、クライアント２００に通知し、自己の公開鍵を含むＸ．５０９形式の証明書（自己作成証明書）を作成し、ルート認証局までの証明書のリスト（証明書チェーン）を含めて、クライアント２００に渡す。クライアント２００は、証明書を検証する際に、クライアント２００にインストール済みのルート証明書２２０の公開鍵を用いて証明書を復号して検証を行い、身元が保証された証明書と判断する。なお、必要ならばクライアント認証のための通信を行う。
【００１８】
認証の後に続く暗号化通信では、データ通信にセッション鍵（共通鍵）を使用する。そこで、クライアント２００は、暗号化に使用するセッション鍵を生成するための情報を、デバイスの証明書に含まれる公開鍵を用いて暗号化してデバイス１００に渡す。デバイス１００は、証明書の秘密鍵で復号してセッション鍵を取得する。これにより、この後の通信ではアプリケーションのデータの暗号化通信が可能になる。
【００１９】
図５により、証明書の取扱いについてさらに説明すると、デバイス２００は、ルート証明書を保持していて、ＳＳＬで送信するとき、１対の公開鍵と秘密鍵を生成し、その公開鍵を含む自己作成証明書を作成する。証明書のチェーンは、ルート証明書と自己作成証明書の２階層からなる。ここで、図６に示すように、自己作成証明書では、上位認証局としてルート証明書を指定している。デバイス２００は、電子署名のため、ルート証明書を上位認証局として含む自己作成証明書について、所定のハッシュ関数を用いてハッシュ値を求めて、署名を行い、自己作成証明書に組み込む。そして、データと自己作成証明書とをＳＳＬでクライアント１００に送信する。
【００２０】
認証局の公開鍵の検証には、より上位の認証局の証明書を用いる。したがって、証明書の検証には、証明書のチェーンすなわちルート認証局までの全リストを入手する必要がある。クライアント１００では、デバイス２００から送られてきた自己作成証明書を検証する際に、上位認証局の証明書としてルート証明書が指定されているので、クライアント１００にインストール済のルート証明書により検証を行い、保証された証明書と判断する。したがって、ネットワーク外の認証局から証明書を発行してもらわなくても、証明書の検証が行える。
【００２１】
証明書の検証は以下のように行う。
１）自己作成証明書を署名した証明書（ここでは、ルート証明書となる）を見つける。ルート証明書がクライアント１００内に存在しているので、ルート証明書の存在が保証される。したがって、ＳＳＬ開始時に警告が発生されることはない。
２）ルート証明書の公開鍵でハッシュ値を復号する。
３）自己証明書のハッシュ値を求める。
４）次に２）と３）の結果を比べ、ハッシュ値が同じであることを確認する。値が同じであれば、自己証明書が改竄されていないことが証明できる。
【００２２】
図７は、デバイス１００のＣＰＵ１１０によるルート証明書作成のフローチャートを示す。まず、ルート証明書の作成に必要な情報を入力する（Ｓ１０）。情報は、たとえば、組織名、部署名、市町村名、都道府県名、国名、有効期限、暗号化方法などである。次に、乱数を発生させ、公開鍵と秘密鍵のペアを生成する（Ｓ１２）。生成にはたとえばＲＳＡ方式を用いる。次に、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ＃５）などの所定のハッシュ値を求めるアルゴリズムを用いて、証明書のハッシュ値を求める（Ｓ１４）。次に、ハッシュ値を秘密鍵で暗号化する（Ｓ１６）。これを、秘密鍵で暗号化した証明書と組み合わせる。このように証明書に署名を付けてルート証明書とする（Ｓ１８）。
【００２３】
図８は、デバイス１００のＣＰＵ１１０による自己証明書作成のフローチャートを示す。まず、証明書の作成に必要な情報を入力する（Ｓ２０）。情報は、たとえば、組織名、部署名、市町村名、都道府県名、国名、有効期限、暗号化方法などである。証明書の上位パス情報および発行者の情報としてルート証明書を入れる。次に、乱数を発生させ、公開鍵と秘密鍵のペアを生成する（Ｓ２２）。鍵生成にはたとえばＲＳＡ方式を用いる。次に、ＭＤ５などの所定のハッシュ値を求めるアルゴリズムを用いて、証明書のハッシュ値を求める（Ｓ２４）。次に、ハッシュ値をルート証明書の秘密鍵で暗号化する（Ｓ２６）。これが証明書の署名となる。次に、証明書に署名を付けて自己作成証明書とする（Ｓ２８）。
【００２４】
図９は、クライアント２００のＣＰＵ２０２による、デバイス（サーバー）１００から送付された証明書の検証のフローチャートを示す。ここでは、ブラウザにおけるＳＳＬプロトコルによる検証処理の中で、ルート証明書に関する部分だけを示す。デバイス１００から証明書を受け取ると、検証が開始される。まず、その証明書の記載を基に上位証明書（ここではルート証明書）を得て（Ｓ４０）、上位の証明書の認証局（ＣＡ）が信頼できるか否かを判断する（Ｓ４２）。ここで、クライアント２００側で、信頼するルート認証局として登録されている場合や、インターネットでルート認証局に問い合わせて登録されている場合は、信頼できると判断できる。ここでは、あらかじめルート証明書がインストールされて、信頼するルート認証局であることを含む証明書として登録されているので、信頼できると判断される。上位の証明書の認証局が信頼できる場合は、次に、署名をルート証明書の公開鍵で復号化する（Ｓ４４）。復号化できた場合は（Ｓ４６でＹＥＳ）、上位の認証局で証明されたと判断できる。
【００２５】
次に、証明書のハッシュ値（Ｈａｓｈ２）を生成する（Ｓ４８）。次に、２つのハッシュ値Ｈａｓｈ１、Ｈａｓｈ２を比較する（Ｓ５０）。一致する場合は、送付された証明書は改竄されていず、信頼できるので、ＳＳＬ通信処理を続行する（Ｓ５２）。
【００２６】
一方、上位の証明書の認証局が信頼できない場合や、署名の復号ができない場合や、ハッシュ値Ｈａｓｈ１、Ｈａｓｈ２が一致しない場合は、証明書は信頼できないので、証明書は信頼できない旨の警告ダイアログを画面に表示する（Ｓ５４）。
【００２７】
次に、デバイス１００のクライアント（ＰＣ）２００へのルート証明書２２０のインストールについて説明する。１つのインストール方法では、デバイス１００は複合装置やプリンタであり、デバイス１００へのプリンタドライバ２１８のインストール時に、証明書をデバイス（プリンタ）１００からクライアント２００に転送し、インストールする。図１０は、プリンタドライバと共にインストールされる場合のルート証明書のインストールプログラム２２０のフローチャートを示す。クライアント２００のＣＰＵ２０２は、まず、プリンタドライバソフトをインストールする（Ｓ１００）。次に、ルート証明書のクライアント２００へのインストールの確認を画面に表示する（Ｓ１０２）。クライアント２００のユーザによるインストールの確認の入力を受け取ると（Ｓ１０４でＹＥＳ）、次に、デバイス１００に対してルート証明書を要求する（Ｓ１０６）。デバイス１００からルート証明書を受け取ると（Ｓ１０８）、受け取ったルート証明書を規定のフォーマットに変換する。これにより、クライアント２００へのインストールが可能になるので、変換されたルート証明書をインストールする（Ｓ１１０）。
【００２８】
好ましくは前記の方法において、クライアントは、プリンタドライバソフトをデバイスからインストールしたとき、次に、デバイスに対してルート証明書を要求し、デバイスからルート証明書を受け取ると、受け取ったルート証明書を規定のフォーマットに変換し、変換されたルート証明書をインストールすることにより、前記のルート証明書を記憶する。
【００２９】
また、別のインストール方法では、デバイス１００から転送された証明書をクライアント（ＰＣ）２００のハードディスク装置２１４にファイルとして一旦保存し、証明書を管理する証明書ダイアログからインポートする。ここで説明する例では、デバイス１００から送付されたルート証明書を一旦ファイルに落とし、証明書ダイアログによりユーザーがインストールする。図１１は、ルート証明書のインストールのフローチャートを示す。クライアント２００のＣＰＵ２０２は、まず、デバイス１００からルート証明書を受け取る（Ｓ２００）。デバイス１００で保持しているルート証明書１２２は、規定のフォーマットに変換することで、クライアント（ＰＣ）２００にインストール可能となる。そこで、ルート証明書のフォーマットを変換し（Ｓ２０２）、ルート証明書ファイルをハードディスク装置２１４に保存する（Ｓ２０４）。次に、得られたルート証明書ファイルをインストールする（Ｓ２０６）。たとえば、ウィンドウズ（登録商標）のブラウザ（Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ）の場合、証明書ダイアログには、インストールされた証明書の一覧を表示するダイアログボックスが表示される。証明書をインストールするとき、証明書ダイアログに設けられている「インポート」ボタンを押して、「信頼されたルート証明機関」に証明書をインポートすればよい。
【００３０】
なお、ルート証明書をインストールするためのプログラムは、たとえば、ウィンドウズ（登録商標）のオープンＡＰＩの中に上述の機能（関数）を作って、公開してもよい。
【００３１】
以上の説明では、認証が１段階である場合について説明した。より一般的に認証が複数段階である場合でも、より上位の複数の証明書をクライアント１００にインストールしておけばよい。これにより、クライアント１００は、ルート認証局までの証明書のチェーンを使用して検証を行える。
【００３２】
図１２に示す例では、証明書のチェーンは、ルート証明書、中間証明書及び自己作成証明書の３階層からなる。デバイス２００（プリンタ、ＭＦＰなど）は、ルート証明書と中間証明書を保持していて、あらかじめ、クライアント１００にルート証明書と中間証明書をインストールしておく。デバイス２００は、ＳＳＬで送信するとき、１対の公開鍵と秘密鍵を生成し、その公開鍵を含む自己作成証明書を作成する。ここで、中間証明書では、上位認証局としてルート証明書を指定していて、署名を組み込んでおり、自己作成証明書では、上位認証局として中間証明書を指定し、署名を組み込んでいる。デバイス２００は、電子署名のため、中間証明書を上位認証局として含む自己作成証明書について、所定のハッシュ関数を用いてハッシュ値を求めて、署名を行い、自己作成証明書に組み込む。そして、データと自己作成証明書とをＳＳＬでクライアント１００に送信する。クライアント１００では、デバイス２００から送られてきた自己作成証明書を検証する際に、インストールされている証明書のチェーンを用いる。自己作成証明書には上位認証局の証明書として中間証明書が指定されているので、インストール済の中間証明書により検証を行い、さらに、中間証明書について、インストール済みのルート証明書により検証を行う。これにより自己作成証明書を、保証された証明書と判断する。
【００３３】
上述の暗号化データ通信の実施の形態は、ＳＳＬによる通信の場合について説明しているが、一般に、公開鍵暗号化方式を用い、ルート認証局までの証明書のチェーンを用いて認証を行うシステムに適用できる。そのようなシステムにおいて、サーバー装置（デバイス）にルート証明書を保持し、それにネットワークを介して接続されるクライアントに、そのルート証明書をインストールしておく。公開鍵暗号化方式でクライアントからデータを送信する際に、クライアントは、サーバー装置から送られた証明書の認証において、インストールされているルート証明書を用いる。認証の後にデータの暗号化通信を行う。実施の形態では、セッション鍵を用いてデータを通信するが、暗号化方式はこれには限られない。
【００３４】
そのようなサーバー装置とクライアントとがネットワークを介して通信するデータ通信システムにおいて、サーバー装置は、生成された公開鍵と秘密鍵の対の中の公開鍵を含み、秘密鍵で署名されたルート証明書を保持する第１記憶手段と、ルート証明書を上位認証局として含む証明書を作成し、作成した証明書を秘密鍵を用いて署名する証明書作成手段と、証明書作成手段により作成された証明書をクライアントに送信する送信手段とを備える。好ましくは、サーバー装置において、第１記憶手段はＲＯＭである。これにより、ルート証明書は変更されなくなる。一方、クライアントは、前記の第１記憶手段に記憶されているルート証明書を記憶する第２記憶手段と、前記のデバイスから受け取った証明書の署名を公開鍵を用いて検証する検証手段とを備える。
【００３５】
【発明の効果】
デバイスのルート証明書をクライアントにインストールしておくので、デバイスからクライアントへのセキュアな暗号化通信の開始時に警告を発生（表示）されない。
【図面の簡単な説明】
【図１】本発明のデータ通信システムのブロック図
【図２】複合装置の構成を示すブロック図
【図３】パーソナルコンピュータの構成を示すブロック図
【図４】ＳＳＬにおけるサーバーとクライアントとの間の通信シーケンスの図
【図５】ルート証明書と自己作成証明書の取扱いを説明するための図
【図６】ルート証明書と自己作成証明書を用いた認証を説明するための図
【図７】ルート証明書作成のフローチャート
【図８】自己証明書作成のフローチャート
【図９】証明書検証のフローチャート
【図１０】ルート証明書のインストールのフローチャート
【図１１】ファイルからの証明書のインストールのフローチャート
【図１２】複数段階の検証を行う例を説明するための図
【符号の説明】
１００  デバイス、    １１０  ＣＰＵ、    １１６  ＲＯＭ、    １１８  記憶装置、    １２０  ウェブサーバー、    １２２  ルート証明書を作成する証明書作成プログラム、    １２４  自己作成証明書を作成する証明書作成プログラム、    １２８  ルート証明書、    １３０  自己作成証明書、    ２００クライアント、    ２０２  ＣＰＵ、    ２１４  ハードディスク装置、    ２１６  ウェブブラウザ、    ２１８  プリンタドライバー、    ２２０  インストールプログラム、    ２２２  ルート証明書、    ３００  ネットワーク。
【図１】
2005006076.tif 000003
【図２】
2005006076.tif 000004
【図３】
2005006076.tif 000005
【図４】
2005006076.tif 000006
【図５】
2005006076.tif 000007
【図６】
2005006076.tif 000008
【図７】
2005006076.tif 000009
【図８】
2005006076.tif 000010
【図９】
2005006076.tif 000011
【図１０】
2005006076.tif 000012
【図１１】
2005006076.tif 000013
【図１２】
2005006076.tif 000014