(57)【要約】【課題】安全性を損なうことなく証明書検証部の有効性の確認手順を省力化し、証明書検証サーバを高速化することを目的とする。【解決手段】認証局が発行する、無効な証明書が識別可能なＣＲＬを用いて証明書の検証を行う証明書検証サーバ３において、所定の証明書の検証を依頼するための検証リクエスト情報を受信する検証リクエスト受信部１３と、上記ＣＲＬを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リスト１８１を入力し、入力された上記有効証明書リスト１８１を用いて上記検証リクエスト情報により依頼された上記所定の証明書を検索し、検索結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する証明書検証部１４と、上記検証結果である検証レスポンス情報を出力する検証レスポンス送信部１６とを備えたことを特徴とする。【選択図】        図１
2004179724.tif 000002
【特許請求の範囲】
【請求項１】
認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いて証明書の検証を行うサーバ装置において、
所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信部と、
上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証部と、
上記検証部により検証された結果である検証レスポンス情報を出力する出力部と
を備えたことを特徴とするサーバ装置。
【請求項２】
上記検証部は、上記有効証明書リストを用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果、上記所定の証明書が検索された場合に、さらに、有効な証明書として検索された上記所定の証明書が有効期限内であるかどうかを検証することを特徴とする請求項１記載のサーバ装置。
【請求項３】
上記所定の証明書は、複数の認証局により階層構造を形成するように認証され、
上記無効証明書リストは、上記階層構造の各階層における認証局により発行され、
上記有効証明書リストは、上記階層構造の各階層における認証局の有効な証明書が検索可能に構成され、
上記検証部は、上記所定の証明書の上記階層構造を下階層から上階層に向けて辿りながら上記階層構造の各階層において、上記各階層における認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、上記有効証明書リストを用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果、上記所定の証明書が検索された場合に、さらに、検索された有効な証明書が上記階層構造の最上階層における認証局の有効な証明書であるかどうかを検証することを特徴とする請求項１記載のサーバ装置。
【請求項４】
上記検証部は、検証された上記所定の証明書が有効期限内でない場合に、上記記憶装置に記憶された上記有効証明書リストから有効な証明書として明記されていた上記所定の証明書を削除することを特徴とする請求項２記載のサーバ装置。
【請求項５】
上記サーバ装置は、さらに、上記所定の証明書が無効な証明書として識別可能に上記無効証明書リストが更新された場合に、上記記憶装置に記憶された上記有効証明書リストから有効な証明書として明記されていた上記所定の証明書を削除することにより上記有効証明書リストを更新する有効証明書リスト更新部を備えたことを特徴とする請求項１記載のサーバ装置。
【請求項６】
上記サーバ装置は、さらに、上記記憶装置を備えたことを特徴とする請求項１記載のサーバ装置。
【請求項７】
上記有効証明書リストには、上記有効な証明書に対応するハッシュ値が格納され、
上記検証部は、上記有効証明書リストに格納された上記ハッシュ値を用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索することを特徴とする請求項１記載のサーバ装置。
【請求項８】
認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いてサーバ装置が証明書の検証を行う証明書検証方法において、
所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信工程と、
上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信工程により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証工程と、
上記検証工程により検証された結果である検証レスポンス情報を出力する出力工程と
を備えたことを特徴とする証明書検証方法。
【請求項９】
認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いて証明書の検証を行うプログラムであって、
所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信処理と、
上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信処理により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証処理と、
上記検証処理により検証された結果である検証レスポンス情報を出力する出力処理と
をコンピュータに実行させるためのプログラム。
【請求項１０】
認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いて証明書の検証を行うプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信処理と、
上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信処理により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証処理と、
上記検証処理により検証された結果である検証レスポンス情報を出力する出力処理と
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、証明書の検証を行うサーバ装置に関するものである。
また、この発明は、証明書の検証を行う際に、安全性を損なうことなく処理を高速化する技術に関するものである。
【０００２】
【従来の技術】
計算機システムを利用して相手を確認する方法として、認証局により発行された証明書を用いた認証技術が記載されている。
【０００３】
また、ディレクトリに掲載されている公開鍵証明書の有効性を保証し、利用者の利便性と処理効率を大幅に向上させることを目的として、以下のような手段が記載されている。ディレクトリ更新間隔設定手段、ディレクトリ更新契機監視手段は、所定の時間間隔で、ディレクトリ更新を起動する。これに対して、ＣＡ内データベース監視手段は、ＣＡが管理している公開鍵証明書状態が変化すると、ディレクトリ更新を起動する。ディレクトリ更新が起動されると、ディレクトリ−ＣＡ整合性確認手段は、公開鍵証明書状態と公開鍵証明書状態との差分を抽出する。更新日時作成手段は、更新日時署名手段で秘密鍵により署名された更新日時を作成する。ディレクトリ書き込み手段は、上記差分とともに更新日時をディレクトリに掲載する。（例えば、特許文献１参照）
【０００４】
【特許文献１】
特開２００１−２６５２１６号公報（要約書）
【特許文献２】
特開２００２−０２３６２７号公報
【特許文献３】
特開２００２−１０８２０９号公報
【特許文献４】
特開平１１−３４０９６８号公報
【特許文献５】
特開２００２−０７２８７６号公報
【非特許文献１】
ＲＦＣ２４５９  Ｉｎｔｅｒｎｅｔ  Ｘ．５０９  ＰｕｂｌｉｃＫｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ、Ｃｅｒｔｉｆｉｃａｔｅ  ａｎｄ  ＣＲＬ
Ｐｒｏｆｉｌｅ
【０００５】
【発明が解決しようとする課題】
従来の証明書検証サーバにおいては、
証明書検証部の有効性の確認手順において、検証パスを辿るごとに証明書の署名の検証と、ＣＲＬ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）の署名の検証と、ＣＲＬによる無効化のチェックが行われ、負荷の増大や処理速度の低下を招くという問題があった。
特に署名の検証には公開鍵暗号に基づく演算処理が必要となるので、
多大な計算機資源が消費されるという問題があった。
【０００６】
この発明は、安全性を損なうことなく証明書検証部の有効性の確認手順を省力化し、証明書検証サーバを高速化することを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係るサーバ装置は、認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いて証明書の検証を行うサーバ装置において、
所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信部と、
上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証部と、
上記検証部により検証された結果である検証レスポンス情報を出力する出力部と
を備えたことを特徴とする。
【０００８】
【発明の実施の形態】
実施の形態１．
図１は、実施の形態１における構成を示す図である。
図１に示す構成により高速証明書検証サーバを実現するものである。
図１において、クライアント２は、検証リクエスト生成部６、検証リクエスト送信部７、検証レスポンス受信部９を備えている。
証明書検証サーバ３（サーバ装置の一例である）は、有効証明書リスト更新部、検証リクエスト受信部１３（受信部の一例である）、証明書検証部１４（検証部の一例である）、検証レスポンス生成部１５、検証レスポンス送信部１６（出力部の一例である）、ＣＲＬ更新部１２、ディレクトリ１０、ＣＲＬ  Ｄ／Ｂ１１、記憶装置１８を備えている。
クライアント２と証明書検証サーバ３とは、マシン同士が通信を行うネットワーク１に接続されている。
クライアント２は、前記ネットワーク１に接続されて証明書４（所定の証明書の一例である）の検証を依頼する。
上記証明書４は、複数の認証局により階層構造を形成するように認証されている。
証明書検証サーバ３は、前記ネットワーク１に接続されて証明書４の検証を行う。証明書検証サーバ３は、認証局が発行する、無効な証明書が識別可能なＣＲＬ（無効証明書リストの一例である）を用いて証明書の検証を行う。
上記ＣＲＬは、上記階層構造の各階層における認証局により発行されている。検証リクエスト生成部６は、検証対象の証明書４から検証リクエスト５を生成する。
検証リクエスト送信部７は、前記検証リクエスト５を前記ネットワーク１へ送信する。
検証レスポンス受信部９は、前記検証リクエスト５の結果となる検証レスポンス８を前記ネットワーク１から受信する。
ディレクトリ１０は、公開されている証明書が格納されている。（ディレクトリ１０は、外部にあっても構わない。）
ＣＲＬ  Ｄ／Ｂ１１は、失効した証明書のリストであるＣＲＬが格納されている。（ＣＲＬ  Ｄ／Ｂ１１は、外部にあっても構わない。）
ＣＲＬ更新部１２は、ＣＲＬが更新された際にＣＲＬ  Ｄ／Ｂ１１を更新する。
有効証明書リスト１８１は、既に有効性を確認した証明書である有効証明書を格納している。有効証明書リスト１８１は、記憶装置１８に記憶されている。上記証明書検証サーバ３は、さらに、上記記憶装置１８を備えている。（有効証明書リスト１８１は、外部にあっても構わない。よって、上記記憶装置１８は、外部にあっても構わない。）記有効証明書リスト１８１は、上記階層構造の各階層における認証局の有効な証明書が検索可能に構成されている。
有効証明書リスト更新部１９は、前記ＣＲＬが更新された際に前記有効証明書リスト１８１を更新する。有効証明書リスト更新部は、上記証明書４が無効な証明書として識別可能に上記ＣＲＬが更新された場合に、上記記憶装置１８に記憶された上記有効証明書リスト１８１から有効な証明書として明記されていた上記証明書４を削除することにより上記有効証明書リスト１８１を更新する。
検証リクエスト受信部１３は、前記ネットワーク１から所定の証明書の検証を依頼するための検証リクエスト５（検証リクエスト情報の一例である）を受信する。
証明書検証部１４は、前記検証リクエスト５と前記ディレクトリ１０と前記ＣＲＬ  Ｄ／Ｂ１１と前記有効証明書リスト１８１を用いて証明書の検証を行う。証明書検証部１４は、ディレクトリ１０とＣＲＬ  Ｄ／Ｂ１１と有効証明書リスト１８１とへの参照手段を有している。証明書検証部１４は、上記認証局が発行するＣＲＬを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リスト１８１を記憶する記憶装置１８から有効証明書リスト１８１を入力し、入力された上記有効証明書リスト１８１を用いて上記検証リクエスト受信部１３により受信された検証リクエスト５により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する。検索した結果、上記所定の証明書４が検索された場合に、証明書が有効期限内であるかどうかを検証し、上記証明書検証部１４は、上記証明書４の上記階層構造を下階層から上階層に向けて辿りながら上記階層構造の各階層において、上記各階層における認証局が発行するＣＲＬを用いて上記所定の証明書の検証を行う前に、上記有効証明書リスト１８１を用いて上記検証リクエスト受信部１３により受信された検証リクエスト５により依頼された上記証明書４を検索し、検索した結果、上記証明書４が検索された場合に、さらに、検索された有効な証明書が上記階層構造の最上階層における認証局の有効な証明書であるかどうかを検証する。また、上記証明書検証部１４は、証明書が有効期限内であるかどうかを検証し、検証された上記証明書４が有効期限内でない場合に、上記記憶装置１８に記憶された上記有効証明書リスト１８１から有効な証明書として明記されていた上記証明書４を削除する。検証レスポンス生成部１５は、前記証明書検証部１４の検証結果をもとに検証レスポンス８を生成する。
検証レスポンス送信部１６は、前記検証レスポンス８（検証レスポンス情報の一例である）を前記ネットワーク１へと送信する。
【０００９】
図２はＸ．５０９形式の証明書の構造を示す図である。
証明書は階層構造をもって発行されており、最上位の認証局は下位の認証局に証明書を発行し、更に下位の認証局がユーザに証明書を発行するという形がとられる。これは検証パスと呼ばれる。
図２において、証明書は、基本領域と拡張領域と発行者による署名を有している。基本領域には、証明書形式のバージョン、証明書のシリアル番号、証明書の署名アルゴリズム、証明書の有効期間、証明書の発行者名、証明書の所有者名、証明書所有者の公開鍵、発行者ユニーク識別子、所有者ユニーク識別子が格納（記載）されている。
【００１０】
図３は検証パスの一例を示す図である。
証明書には有効期限が設定されている。そして、秘密鍵の漏洩などの理由により有効期限内に証明書を無効化する必要がある場合は、ＣＲＬとして無効化する証明書のリストが認証局より発行される。
図３においては、ユーザＡが所有する証明書Ａの上位階層に認証局Ｂが所有する証明書Ｂが存在する。そして、認証局Ｂが所有する証明書Ｂの上位階層に最上位認証局である認証局Ｃが所有する証明書Ｃが存在する。
【００１１】
図４はＲＦＣ２４５９にて定められたＣＲＬのフォーマットを示す図である。図４において、ＣＲＬには、ＣＲＬ形式のバージョン、発行者の署名アルゴリズム、発行者の名前、発行時刻、次回発行予定時刻、ＣＲＬエントリ、拡張項目、署名アルゴリズム、発行者の署名が格納（記載）されている。ＣＲＬエントリには、証明書のシリアル番号、無効時刻、拡張項目が格納（記載）されている。ＣＲＬエントリには、無効となった証明書が複数指定可能に格納（記載）されている。
【００１２】
従って、証明書の検証を行う為には、証明書の階層構造を辿るための検証パスを構築し、ＣＲＬや有効期限切れによる無効をチェックしながら証明書を発行した認証局の署名を検証して検証パスを遡っていく。
【００１３】
図５は実施の形態１における有効証明書リストを示す図である。
図５において、有効証明書リスト１８１には、有効性を確認した証明書である有効証明書として証明書Ａ１７１、証明書Ｂ１７２、証明書Ｃ１７３が格納されている。
【００１４】
図６は証明書検証部の内部処理手順を示す図である。
図６におけるステップにて、検証パスの構築手順と有効性の確認手順が行われる。
図７は検証パスの構築の処理手順を示す図である。
図７において、まず検証パスの初期化を行う。与えられた証明書を処理対象の証明書に設定する。検証パスに処理対象の証明書を追加する。証明書の構造に含まれる証明書の発行者ユニーク識別子を取得する。証明書の構造に含まれる証明書の所有者ユニーク識別子を取得する。取得した発行者ユニーク識別子と所有者ユニーク識別子が同一かどうかを比較し、もし、発行者ユニーク識別子と所有者ユニーク識別子が同一だった場合は検証パスのトップとなる自己署名の施された最上位の認証局に到達したものと判断し、検証パスの構築を完了し、処理を終了する。
もし、発行者ユニーク識別子と所有者ユニーク識別子が異なった場合は、ディレクトリから発行者の証明書を取得し、もし取得に失敗した場合はエラーとして処理を中断する。
もし、取得に成功した場合は、発行者の証明書を次に与える証明書に設定し、再度、与えられた証明書を処理対象の証明書に設定する手順以下を繰り返す。
図８は実施の形態１における有効性の確認手順を示す図である。
図９は実施の形態１における有効証明書リスト更新手順を示す図である。
【００１５】
このように構成された証明書検証サーバ３において、
まずクライアント２は、検証リクエスト生成部６にて検証対象の証明書４から検証リクエスト５を生成する。そして、検証リクエスト送信部７にて検証リクエスト５をネットワーク１へ送信する。
証明書検証サーバ３は、検証リクエスト受信部１３にて検証リクエスト５をネットワーク１から受信する。そして、証明書検証部１４にて、検証リクエスト５と、ディレクトリ１０に格納されている公開されている証明書と、ＣＲＬ  Ｄ／Ｂ１１に格納されているＣＲＬを用いて証明書４の検証を行う。
【００１６】
ここで証明書検証部１４は、図６の内部処理手順により処理を実行する。
まず、証明書検証部１４の内部処理手順その１としてＳ（ステップ）２０にて、処理を開始する。
次に、証明書検証部１４の内部処理手順その２としてＳ２１にて、検証パスを構築する。
次に、証明書検証部の内部処理手順その３としてＳ２２にて、有効性を確認する。
次に、証明書検証部の内部処理手順その４としてＳ２３にて、処理を終了する。
【００１７】
図６におけるＳ２１の検証パスの構築は、図７の検証パスの構築の手順により処理を実行する。
まず、検証パスの構築の手順その１としてＳ２４にて、証明書検証部１４は、処理を開始する。
検証パスの構築の手順その２としてＳ２５にて、証明書検証部１４は、検証パスの初期化を実行する。
検証パスの構築の手順その３としてＳ２６にて、証明書検証部１４は、与えられた証明書を処理対象の証明書に設定する。
検証パスの構築の手順その４としてＳ２７にて、証明書検証部１４は、検証パスに処理対象の証明書を追加する。
検証パスの構築の手順その５としてＳ２８にて、証明書検証部１４は、証明書の構造に含まれる証明書の発行者ユニーク識別子を取得する。
検証パスの構築の手順その６としてＳ２９にて、証明書の構造に含まれる証明書の所有者ユニーク識別子を取得する。
検証パスの構築の手順その７としてＳ３０にて、証明書検証部１４は、取得した発行者ユニーク識別子と所有者ユニーク識別子が同一かどうかを比較する。ここで、もし、発行者ユニーク識別子と所有者ユニーク識別子が同一だった場合、証明書検証部１４は、検証パスのトップとなる自己署名の施された最上位の認証局に到達したものと判断し、Ｓ３４に進む。もし、発行者ユニーク識別子と所有者ユニーク識別子が異なった場合、Ｓ３１に進む。
検証パスの構築の手順その１１としてＳ３４にて、証明書検証部１４は、検証パスの構築を完了する。
検証パスの構築の手順その１２としてＳ３５にて、証明書検証部１４は、処理を終了する。
検証パスの構築の手順その８としてＳ３０にて、証明書検証部１４は、もし、発行者ユニーク識別子と所有者ユニーク識別子が異なった場合、ディレクトリ１０から発行者の証明書を取得する。
検証パスの構築の手順その９として、証明書検証部１４は、もし、Ｓ３２において発行者の証明書の取得に失敗した場合はエラーとして処理を中断する。証明書検証部１４は、もし、Ｓ３２において発行者の証明書の取得に成功した場合は、Ｓ３３に進む。
検証パスの構築の手順その１０としてＳ３３にて、証明書検証部１４は、発行者の証明書を次に与える証明書に設定し、再度、与えられた証明書を処理対象の証明書に設定する検証パスの構築の手順その３としてＳ２６以下を繰り返す。
【００１８】
次に、図６における証明書検証部１４の内部処理手順その３としてＳ２２にて有効性を確認する際の手順は、図８の有効性の確認手順により処理を実行する。
まず、有効性の確認手順その１としてＳ３６にて、証明書検証部１４は、処理を開始する。
有効性の確認手順その２としてＳ３７にて、証明書検証部１４は、検証パスから一番下位の証明書を取得する。
有効性の確認手順その３としてＳ３８にて、証明書検証部１４は、現在の日時を取得する。
有効性の確認手順その４としてＳ３９にて、証明書検証部１４は、Ｓ３７にて取得した証明書より上記証明書の有効期間を取得する。
有効性の確認手順その５としてＳ４０にて、証明書検証部１４は、証明書に一致する有効証明書を有効証明書リスト１８１から検索する。
有効性の確認手順その６としてＳ４１にて、証明書検証部１４は、Ｓ３７において取得した証明書が有効証明書リスト１８１に含まれたかどうかを判定する。ここで、もし、取得した証明書が有効証明書リスト１８１に含まれる場合は有効性の確認手順その２０としてＳ５５に処理を移す（進む）。もし、取得した証明書が有効証明書リスト１８１に含まれない場合は有効性の確認手順その７としてＳ４２に処理を移す（進む）。
有効性の確認手順その２０としてＳ５５にて、証明書検証部１４は、Ｓ３８において取得した日時とＳ３９において取得した証明書の有効期間とを比較する。ここで、証明書の有効期間が過ぎており、期限切れの場合は、Ｓ５６に進む。証明書の有効期間が過ぎておらず、期限内の場合は、Ｓ５７に進む。
有効性の確認手順その２１としてＳ５６にて、証明書検証部１４は、期限切れの証明書を有効証明書リスト１８１から削除する。そして、証明書検証部１４は、証明書の検証結果を無効と設定し、Ｓ５４に進み、有効性の確認手順その１９としてＳ５４にて、証明書検証部１４は、処理を終了する。
有効性の確認手順その２２としてＳ５７にて、証明書検証部１４は、現在の証明書が検証パスの最後となる最上位かどうかを比較する。証明書検証部１４は、もし、最後の場合に検証結果を有効と設定し、Ｓ５４に進み、有効性の確認手順その１９としてＳ５４にて処理を終了する。証明書検証部１４は、もし、最後ではない場合に再度有効性の確認手順その２としてＳ３７に進み、Ｓ３７における検証パスから証明書を取得する手順以下を繰り返す。
有効性の確認手順その７としてＳ４２にて、証明書検証部１４は、Ｓ３８において取得した日時とＳ３９において取得した証明書の有効期間とを比較する。証明書検証部１４は、もし、証明書の有効期間が期限切れの場合に証明書の検証結果を無効と設定する。そして、有効性の確認手順その１９としてＳ５４に進み、証明書検証部１４は、処理を終了する。証明書検証部１４は、もし、証明書の有効期間が期限内である場合にＳ４３に進む。
有効性の確認手順その８としてＳ４３にて、証明書検証部１４は、証明書の発行者による署名を取得する。
有効性の確認手順その９としてＳ４４にて、証明書検証部１４は、証明書の発行者となる検証パスで上位に位置する上位証明書を取得する。
有効性の確認手順その１０としてＳ４５にて、証明書検証部１４は、上位証明書の証明書所有者の公開鍵を取得する。
有効性の確認手順その１１としてＳ４６にて、証明書検証部１４は、上位証明書の証明書所有者の公開鍵を用いて証明書の発行者による署名を検証する。ここで、証明書検証部１４は、もし、検証に失敗した場合に検証結果を無効と設定し、有効性の確認手順その１９としてＳ５４に進み、処理を終了する。証明書検証部１４は、もし、検証に成功した場合にＳ４７に進む。
有効性の確認手順その１２としてＳ４７にて、証明書検証部１４は、ＣＲＬ  Ｄ／Ｂ１１から証明書の発行者（認証局の一例である）の発行しているＣＲＬを入手する。
有効性の確認手順その１３としてＳ４８にて、証明書検証部１４は、ディレクトリ１０からＣＲＬ発行者の証明書を取得する。
有効性の確認手順その１４としてＳ４９にて、証明書検証部１４は、ＣＲＬ発行者の証明書の公開鍵を用いてＣＲＬの発行者の証明を検証する。ここで、証明書検証部１４は、もし、検証に失敗した場合にエラーとして処理を中断する。証明書検証部１４は、もし、検証に成功した場合にＳ５０に進む。
有効性の確認手順その１５としてＳ５０にて、証明書検証部１４は、証明書のシリアル番号を取得する。
有効性の確認手順その１６としてＳ５１にて、証明書検証部１４は、証明書のシリアル番号がＣＲＬのＣＲＬエントリの証明書のシリアル番号に含まれるかどうかを比較する。ここで、証明書検証部１４は、もし、含まれる場合に検証結果を無効と設定し、有効性の確認手順その１９としてＳ５４に進み。処理を終了する。証明書検証部１４は、もし、含まれない場合にＳ５２に進む。
有効性の確認手順その１７としてＳ５２にて、証明書検証部１４は、現在の証明書が検証パスの最後となる最上位かどうかを比較する。ここで、証明書検証部１４は、もし、最後となる最上位の場合に検証結果を有効と設定し、Ｓ５３に進む。証明書検証部１４は、もし、最後となる最上位ではない場合に再度有効性の確認手順その２としてＳ３７に進み、Ｓ３７における検証パスから証明書を取得する手順以下を繰り返す。
有効性の確認手順その１８としてＳ５３にて、証明書検証部１４は、証明書を有効証明書リスト１８１に追加する。
有効性の確認手順その１９としてＳ５４にて、証明書検証部１４は、処理を終了する。
以上により、証明書検証部の内部処理手順その３としてＳ２２による証明書が有効か無効かの確認がなされる。
【００１９】
図６における証明書検証部の内部処理手順その４としてＳ２３にて処理が終了後、検証レスポンス生成部１５は、証明書検証部１４の検証結果をもとに検証レスポンス８を生成する。
検証レスポンス送信部１６は、検証レスポンス８をネットワーク１へと送信する。
一方、クライアント２において、検証レスポンス受信部９は、検証リクエスト５の結果となる検証レスポンス８をネットワーク１から受信する。そして、検証レスポンス受信部９は、検証レスポンス８から証明書４の検証結果を得る。
【００２０】
次に、ＣＲＬが更新された場合について説明する。
ＣＲＬ更新部１２は、ＣＲＬが更新された場合、更新されたＣＲＬをＣＲＬ
Ｄ／Ｂ１１に格納するとともに、有効証明書リスト更新部へＣＲＬを渡す。
有効証明書リスト更新部では、図９の有効証明書リスト更新手順により処理を実行する。
まず、有効証明書リスト更新手順その１としてＳ５８にて、有効証明書リスト更新部は、処理を開始する。
有効証明書リスト更新手順その２としてＳ５９にて、有効証明書リスト更新部は、更新されたＣＲＬをＣＲＬ更新部１２より取得する。
有効証明書リスト更新手順その３としてＳ６０にて、有効証明書リスト更新部は、Ｓ５９において取得されたＣＲＬに含まれる失効した証明書を取得する。
有効証明書リスト更新手順その４としてＳ６１にて、有効証明書リスト更新部は、既にＣＲＬに含まれる失効した全ての証明書を取得していたかどうかを判定する。ここで、有効証明書リスト更新部は、もし、全取得済であった場合、有効証明書リスト更新手順その８としてＳ６５に進み、処理を終了する。有効証明書リスト更新部は、もし、ＣＲＬから新たにＣＲＬに含まれる失効した証明書を取得できた場合、Ｓ６２に進む。
有効証明書リスト更新手順その５としてＳ６２にて、有効証明書リスト更新部は、ＣＲＬに含まれる失効した証明書を有効証明書リスト１８１から取得する。有効証明書リスト更新手順その６としてＳ６３にて、有効証明書リスト更新部は、ＣＲＬに含まれる失効した証明書を有効証明書リスト１８１から取得できたかどうかを判定する。ここで、有効証明書リスト更新部は、もし、取得できなかった場合、ＣＲＬにより無効となった証明書が有効証明書リスト１８１に含まれなかったと判断し、再度有効証明書リスト更新手順その３としてＳ６０以下の手順を繰り返す。有効証明書リスト更新部は、もし、取得できた場合、Ｓ６４に進む。
有効証明書リスト更新手順その７としてＳ６４にて、有効証明書リスト更新部は、ＣＲＬに含まれる失効した証明書を有効証明書リスト１８１から削除し、
再度有効証明書リスト更新手順その３としてＳ６０以下の手順を繰り返す。
有効証明書リスト更新手順その８としてＳ６５にて、有効証明書リスト更新部は、処理を終了する。
【００２１】
以上の説明のとおり、一度有効性が確認された証明書は有効証明書リスト１８１に追加されている為、再度同じ証明書の検証を行う際に有効証明書リスト１８１に含まれていれば、有効であることを容易に判定することが可能である。
また、有効証明書リスト１８１からＣＲＬに含まれる無効な証明書を削除することができる。
【００２２】
以上のように、実施の形態１におけるシステムは、
マシン同士が通信を行うネットワーク１と、
前記ネットワーク１に接続されて証明書の検証を依頼するクライアント２と、前記ネットワーク１に接続されて証明書の検証を行う証明書検証サーバ３とを備え、
前記クライアント２は、
検証対象の証明書から検証リクエスト５を生成する検証リクエスト生成部６と、
前記検証リクエスト５を前記ネットワーク１へ送信する検証リクエスト送信部７と、
前記検証リクエスト５の結果となる検証レスポンス８を前記ネットワーク１から受信する検証レスポンス受信部９とを具備し、
前記証明書検証サーバ３は、
公開されている証明書の格納されているディレクトリ１０もしくは外部にあるディレクトリ１０への参照手段と、
失効した証明書のリストであるＣＲＬの格納されているＣＲＬ  Ｄ／Ｂ１１もしくは外部にあるＣＲＬ  Ｄ／Ｂ１１への参照手段と、
前記ＣＲＬが更新された際に前記ＣＲＬ  Ｄ／Ｂ１１を更新するＣＲＬ更新部１２と、
前記検証リクエスト５を前記ネットワーク１から受信する検証リクエスト受信部１３と、
証明書の検証を行う証明書検証部１４と、
前記証明書検証部１４の検証結果をもとに検証レスポンス８を生成する検証レスポンス生成部１５と、
前記検証レスポンス８を前記ネットワーク１へと送信する検証レスポンス送信部１６とを具備するシステムであり、更に、
既に有効性を確認した証明書である有効証明書を格納する有効証明書リスト１８１もしくは外部にある有効証明書リスト１８１への参照手段を備え、
前記証明書検証部１４が、前記検証リクエスト５と前期ディレクトリ１０と前記ＣＲＬ  Ｄ／Ｂ１１と前記有効証明書リスト１８１とを用いて証明書の検証を行うことを特徴とする。
【００２３】
また、上記証明書検証サーバ３において、
前記ＣＲＬが更新された際に、前記有効証明書リストを更新する有効証明書リスト更新部１９を持つことを特徴とする。
【００２４】
実施の形態２．
実施の形態２における構成は、図１と同様である。
ネットワーク１は、マシン同士が通信を行う際に用いられる。
クライアント２は、前記ネットワーク１に接続されて証明書４の検証を依頼する。
証明書検証サーバ３は、前記ネットワーク１に接続されて証明書４の検証を行う。証明書検証サーバ３は、実施の形態１と同様の高速証明書検証サーバを示すものである。
前記クライアント２は、検証リクエスト生成部６と検証リクエスト送信部７と検証レスポンス受信部９とを具備する。
検証リクエスト生成部６は、検証対象の証明書４から検証リクエスト５を生成する。
検証リクエスト送信部７は、前記検証リクエスト５を前記ネットワーク１へ送信する。
検証レスポンス受信部９は、前記検証リクエスト５の結果となる検証レスポンス８を前記ネットワーク１から受信する。
前記サーバ３は、公開されている証明書の格納されているディレクトリ１０もしくは外部にあるディレクトリ１０への参照手段と、
失効した証明書のリストであるＣＲＬの格納されているＣＲＬ  Ｄ／Ｂ１１もしくは外部にあるＣＲＬ  Ｄ／Ｂ１１への参照手段と、
ＣＲＬが更新された際にＣＲＬ  Ｄ／Ｂ１１を更新するＣＲＬ更新部１２と、既に有効性を確認した証明書である有効証明書のハッシュ値６６を格納する有効証明書リスト１８１もしくは外部にある有効証明書リスト１８１への参照手段と、
前記ＣＲＬが更新された際に前記有効証明書リスト１８１を更新する有効証明書リスト更新部と、
前記検証リクエスト５を前記ネットワーク１から受信する検証リクエスト受信部１３と、
前記検証リクエスト５と前期ディレクトリ１０と前記ＣＲＬ  Ｄ／Ｂ１１と前記有効証明書リスト１８１を用いて証明書の検証を行う証明書検証部１４と、
前記証明書検証部１４の検証結果をもとに検証レスポンス８を生成する検証レスポンス生成部１５と、
前記検証レスポンス８を前記ネットワーク１へと送信する検証レスポンス送信部１６とを具備する。
失効した証明書のリストであるＣＲＬの格納されているＣＲＬ  Ｄ／Ｂ１１もしくは外部にあるＣＲＬ  Ｄ／Ｂ１１への参照手段と、既に有効性を確認した証明書である有効証明書のハッシュ値６６を格納する有効証明書リスト１８１もしくは外部にある有効証明書リスト１８１への参照手段とは、証明書検証部１４が備えていても構わない。
ここで、実施の形態２における上記有効証明書リスト１８１には、上記有効な証明書に対応するハッシュ値６６が格納されている。
上記証明書検証部１４は、上記有効証明書リスト１８１に格納された上記ハッシュ値６６を用いて上記検証リクエスト受信部１３により受信された検証リクエスト５により依頼された上記証明書４を検索する。
【００２５】
図１０は、実施の形態２における有効証明書リストを示す図である。
図１０において、有効証明書リスト１８１における各証明書には、有効性を確認した証明書である有効証明書のハッシュ値６６が格納されている。
図６における証明書検証部の内部処理手順と、図７における検証パスの構築の処理手順とは、実施の形態１と同様である。
【００２６】
図１１は、実施の形態２における有効性の確認手順を示す図である。
【００２７】
このように構成された証明書検証サーバにおいて、
まずクライアント２は、検証リクエスト生成部６にて検証対象の証明書４から検証リクエスト５を生成する。
そして、検証リクエスト送信部７にて検証リクエスト５をネットワーク１へ送信する。
証明書検証サーバ３は、検証リクエスト受信部１３にて検証リクエスト５をネットワーク１から受信する。
そして、証明書検証部１４にて、検証リクエスト５と、公開されている証明書の格納されているディレクトリ１０もしくは外部にあるディレクトリ１０への参照手段と、失効した証明書のリストであるＣＲＬの格納されているＣＲＬ  Ｄ／Ｂ１１もしくは外部にあるＣＲＬ  Ｄ／Ｂ１１への参照手段を用いて証明書４の検証を行う。
【００２８】
ここで証明書検証部１４は、実施の形態１と同様、図６の内部処理手順により処理を実行する。
まず、証明書検証部の内部処理手順その１としてＳ２０にて処理を開始する。
次に、証明書検証部の内部処理手順その２としてＳ２１にて検証パスを構築する。
次に、証明書検証部の内部処理手順その３としてＳ２２にて有効性を確認する。
次に、証明書検証部の内部処理手順その４としてＳ２３にて処理を終了する。検証パスの構築は、実施の形態１と同様、図７の検証パスの構築の手順により処理を実行する。
まず、検証パスの構築の手順その１としてＳ２４にて、証明書検証部１４は、処理を開始する。
検証パスの構築の手順その２としてＳ２５にて、証明書検証部１４は、検証パスの初期化を実行する。
検証パスの構築の手順その３としてＳ２６にて、証明書検証部１４は、与えられた証明書を処理対象の証明書に設定する。
検証パスの構築の手順その４としてＳ２７にて、証明書検証部１４は、検証パスに処理対象の証明書を追加する。
検証パスの構築の手順その５としてＳ２８にて、証明書検証部１４は、証明書の構造に含まれる証明書の発行者ユニーク識別子を取得する。
検証パスの構築の手順その６としてＳ２９にて、証明書検証部１４は、証明書の構造に含まれる証明書の所有者ユニーク識別子を取得する。
検証パスの構築の手順その７としてＳ３０にて、証明書検証部１４は、取得した発行者ユニーク識別子と所有者ユニーク識別子が同一かどうかを比較する。ここで、証明書検証部１４は、もし発行者ユニーク識別子と所有者ユニーク識別子が同一だった場合は検証パスのトップとなる自己署名の施された最上位の認証局に到達したものと判断し、Ｓに進む。証明書検証部１４は、もし発行者ユニーク識別子と所有者ユニーク識別子が異なった場合は、Ｓ３１に進む。
検証パスの構築の手順その８としてＳ３１にて、証明書検証部１４は、ディレクトリ１０から発行者の証明書を取得する。
検証パスの構築の手順その９としてＳ３２にて、証明書検証部１４は、もし取得に失敗した場合はエラーとして処理を中断する。証明書検証部１４は、もし取得に成功した場合は、Ｓ３３に進む。
検証パスの構築の手順その１０としてＳ３３にて、証明書検証部１４は、発行者の証明書を次に与える証明書に設定し、再度、与えられた証明書を処理対象の証明書に設定する検証パスの構築の手順その３としてＳ２６以下を繰り返す。
検証パスの構築の手順その１１としてＳ３４にて、証明書検証部１４は、検証パスの構築を完了する。
検証パスの構築の手順その１２としてＳ３５にて、証明書検証部１４は、処理を終了する。
【００２９】
次に、図６における証明書検証部の内部処理手順その３としてＳ２２にて有効性を確認する際の確認手順は、図１１の有効性の確認手順により処理を実行する。
まず、有効性の確認手順その１としてＳ３６にて、証明書検証部１４は、処理を開始する。
有効性の確認手順その２としてＳ３７にて、証明書検証部１４は、検証パスから一番下位の証明書を取得する。
有効性の確認手順その３としてＳ３８にて、証明書検証部１４は、現在の日時を取得する。
有効性の確認手順その４としてＳ３９にて、証明書検証部１４は、証明書の有効期間を取得する。
実施の形態２における有効性の確認追加手順その１としてＳ６７にて、証明書検証部１４は、証明書のハッシュ値６６を生成する。
実施の形態２における有効性の確認追加手順その２としてＳ６８にて、証明書検証部１４は、証明書のハッシュ値６６に一致する有効証明書のハッシュ値６６を有効証明書リスト１８１から検索する。
有効性の確認手順その６としてＳ４１にて、証明書検証部１４は、証明書のハッシュ値６６に一致する有効証明書のハッシュ値６６が有効証明書リスト１８１に含まれているかどうかを判定する。証明書検証部１４は、もし、一致する有効証明書のハッシュ値６６が含まれる場合に有効性の確認手順その２０としてＳ５５に処理を移す（進む）。証明書検証部１４は、もし、一致する有効証明書のハッシュ値６６が含まれない場合に有効性の確認手順その７としてＳ４２に処理を移す（進む）。
有効性の確認手順その２０としてＳ５５にて、証明書検証部１４は、Ｓ３８において取得した日時とＳ３９において取得した証明書の有効期間を比較する。ここで、証明書検証部１４は、もし、証明書の有効期間が期限切れの場合にＳ５６に進む。証明書検証部１４は、もし、証明書の有効期間が期限内の場合は、Ｓ５７に進む。
有効性の確認手順その２１としてＳ５６にて、証明書検証部１４は、期限切れの証明書を有効証明書リスト１８１から削除する。証明書検証部１４は、証明書の検証結果を無効と設定し、有効性の確認手順その１９としてＳ５４に進み、証明書検証部１４は、処理を終了する。
有効性の確認手順その２２としてＳ５７にて、証明書検証部１４は、現在の証明書が検証パスの最後となる最上位かどうかを比較する。ここで、証明書検証部１４は、もし最後となる最上位の場合に検証結果を有効と設定し、有効性の確認手順その１９としてＳ５４に進み、証明書検証部１４は、処理を終了する。証明書検証部１４は、もし。最後となる最上位ではない場合に、再度有効性の確認手順その２としたＳ３７の検証パスから証明書を取得する手順以下を繰り返す。
有効性の確認手順その７としてＳ４２にて、証明書検証部１４は、Ｓ３８において取得した日時とＳ３９において取得した証明書の有効期間を比較する。ここで、証明書検証部１４は、もし期限切れの場合は証明書の検証結果を無効と設定し、有効性の確認手順その１９としてＳ５４に進み、証明書検証部１４は、処理を終了する。証明書検証部１４は、もし期限内である場合は、Ｓ４３に進む。
有効性の確認手順その８としてＳ４３にて、証明書検証部１４は、証明書の発行者による署名を取得する。
有効性の確認手順その９としてＳ４４にて、証明書検証部１４は、証明書の発行者となる検証パスで上位に位置する上位証明書を取得する。
有効性の確認手順その１０としてＳ４５にて、証明書検証部１４は、上位証明書の証明書所有者の公開鍵を取得する。
有効性の確認手順その１１としてＳ４６にて、証明書検証部１４は、上位証明書の証明書所有者の公開鍵を用いて証明書の発行者による署名を検証する。ここで、証明書検証部１４は、もし検証に失敗した場合に検証結果を無効と設定し、有効性の確認手順その１９としてＳ５４に進み、証明書検証部１４は、処理を終了する。証明書検証部１４は、もし検証に成功した場合にＳ４７に進む。
有効性の確認手順その１２としてＳ４７にて、証明書検証部１４は、ＣＲＬ  Ｄ／Ｂ１１から証明書の発行者の発行しているＣＲＬを入手する。
有効性の確認手順その１３としてＳ４８にて、証明書検証部１４は、ディレクトリ１０からＣＲＬ発行者の証明書を取得する。
有効性の確認手順その１４としてＳ４９にて、証明書検証部１４は、ＣＲＬ発行者の証明書の公開鍵を用いてＣＲＬの発行者の証明を検証する。ここで、証明書検証部１４は、もし検証に失敗した場合にエラーとして処理を中断する。証明書検証部１４は、もし検証に成功した場合にＳ５０に進む。
有効性の確認手順その１５としてＳ５０にて、証明書検証部１４は、証明書のシリアル番号を取得する。
有効性の確認手順その１６としてＳ５１にて、証明書検証部１４は、証明書のシリアル番号がＣＲＬのＣＲＬエントリの証明書のシリアル番号に含まれるかどうかを比較する。証明書検証部１４は、もし含まれる場合に検証結果を無効と設定し、有効性の確認手順その１９としてＳ５４に進み、証明書検証部１４は、処理を終了する。証明書検証部１４は、もし含まれない場合にＳ５２に進む。
有効性の確認手順その１７としてＳ５２にて、証明書検証部１４は、現在の証明書が検証パスの最後となる最上位かどうかを比較する。ここで、証明書検証部１４は、もし最後となる最上位の場合は検証結果を有効と設定し、Ｓ６９に進む。証明書検証部１４は、もし最後となる最上位ではない場合に再度有効性の確認手順その２としたＳ５２の検証パスから証明書を取得する手順以下を繰り返す。本実施の形態２における有効性の確認追加手順その１としてＳ６９にて、証明書検証部１４は、証明書のハッシュ値６６を生成する。
本実施の形態２における有効性の確認追加手順その２としてＳ７０にて、証明書検証部１４は、有効証明書のハッシュ値６６を有効証明書リスト１８１に追加する。
有効性の確認手順その１９としてＳ５４にて、証明書検証部１４は、処理を終了する。
以上により、証明書検証部の内部処理手順その３としてＳ２２による証明書が有効か無効かの確認がなされる。
【００３０】
図６における証明書検証部の内部処理手順その４としてＳ２３にて処理が終了後、検証レスポンス生成部１５にて、証明書検証部１４の検証結果をもとに検証レスポンス８を生成する。
検証レスポンス送信部１６は、検証レスポンス８をネットワーク１へと送信する。
一方、クライアント２は、検証レスポンス受信部９にて検証リクエスト５の結果となる検証レスポンス８をネットワーク１から受信し、検証レスポンス８から証明書４の検証結果を得る。
【００３１】
以上の説明のとおり、一度有効性が確認された証明書のハッシュ値６６を有効証明書リスト１８１に保存する為、証明書そのものを保存するよりもデータ量を減少することが可能である。
【００３２】
以上のように、上記証明書検証サーバ３は、前記有効証明書リスト１８１に、証明書そのものの代わりに証明書のハッシュ値６６を格納することを特徴とする。
【００３３】
以上の説明において、クライアント２と証明書検証サーバ３とは、図示されていないが、システムユニット、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）表示装置、キーボード（Ｋ／Ｂ）、マウス、コンパクトディスク装置（ＣＤＤ）、プリンタ装置、スキャナ装置を備えている。ＣＲＴ表示装置、Ｋ／Ｂ、マウス、ＣＤＤ、プリンタ装置、スキャナ装置は、システムユニットにケーブルで接続されている。
また、クライアント２と証明書検証サーバ３とは、図示されていないが、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵは、バスを介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）（記憶装置の一例である）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（記憶装置の一例である）、ＣＲＴ表示装置、Ｋ／Ｂ、マウス、通信ボード、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、磁気ディスク装置（記憶装置の一例である）、ＣＤＤ、プリンタ装置、スキャナ装置と接続されている。通信ボード４４は、インターネットに接続されている。
ここで、通信ボードは、インターネットに限らず、ＬＡＮ（ローカルエリアネットワーク）、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されていても構わない。
磁気ディスク装置には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、プログラム群、ファイル群が記憶されている。プログラム群は、ＣＰＵ、ＯＳ、ウィンドウシステムにより実行される。
【００３４】
また、以上の説明において、各実施の形態の説明において「〜部」として説明したものは、一部或いはすべてコンピュータで動作可能なプログラムにより構成することができる。これらのプログラムは、例えば、Ｃ言語により作成することができる。或いは、ＨＴＭＬやＳＧＭＬやＸＭＬを用いても構わない。或いは、ＪＡＶＡ（登録商標）を用いて画面表示を行っても構わない。
また、各実施の形態の説明において「〜部」として説明したものは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
また、上記各実施の形態を実施させるプログラムは、また、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体による記録装置を用いても構わない。
また、出力部は、ＣＲＴ表示装置、その他の表示装置、プリンタ装置等の出力装置を用いても構わない。
【００３５】
以上のように、上記実施の形態におけるサーバ装置は、認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いて証明書の検証を行うサーバ装置において、
所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信部と、
上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証部と、
上記検証部により検証された結果である検証レスポンス情報を出力する出力部と
を備えたことを特徴とする。
【００３６】
また、以上のように、上記検証部は、上記有効証明書リストを用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果、上記所定の証明書が検索された場合に、さらに、有効な証明書として検索された上記所定の証明書が有効期限内であるかどうかを検証することを特徴とする。
【００３７】
また、以上のように、上記所定の証明書は、複数の認証局により階層構造を形成するように認証され、
上記無効証明書リストは、上記階層構造の各階層における認証局により発行され、
上記有効証明書リストは、上記階層構造の各階層における認証局の有効な証明書が検索可能に構成され、
上記検証部は、上記所定の証明書の上記階層構造を下階層から上階層に向けて辿りながら上記階層構造の各階層において、上記各階層における認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、上記有効証明書リストを用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果、上記所定の証明書が検索された場合に、さらに、検索された有効な証明書が上記階層構造の最上階層における認証局の有効な証明書であるかどうかを検証することを特徴とする。
【００３８】
また、以上のように、上記検証部は、検証された上記所定の証明書が有効期限内でない場合に、上記記憶装置に記憶された上記有効証明書リストから有効な証明書として明記されていた上記所定の証明書を削除することを特徴とする。
【００３９】
また、以上のように、上記サーバ装置は、さらに、上記所定の証明書が無効な証明書として識別可能に上記無効証明書リストが更新された場合に、上記記憶装置に記憶された上記有効証明書リストから有効な証明書として明記されていた上記所定の証明書を削除することにより上記有効証明書リストを更新する有効証明書リスト更新部を備えたことを特徴とする。
【００４０】
また、以上のように、上記サーバ装置は、さらに、上記記憶装置を備えたことを特徴とする。
【００４１】
また、以上のように、上記有効証明書リストには、上記有効な証明書に対応するハッシュ値が格納され、
上記検証部は、上記有効証明書リストに格納された上記ハッシュ値を用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索することを特徴とする。
【００４２】
また、以上のように、上記実施の形態における証明書検証方法は、認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いてサーバ装置が証明書の検証を行う証明書検証方法において、
所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信工程と、
上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信工程により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証工程と、
上記検証工程により検証された結果である検証レスポンス情報を出力する出力工程と
を備えたことを特徴とする。
【００４３】
また、以上のように、上記実施の形態におけるプログラムは、認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いて証明書の検証を行うプログラムであって、
所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信処理と、
上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信処理により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証処理と、
上記検証処理により検証された結果である検証レスポンス情報を出力する出力処理と
をコンピュータに実行させるためのプログラムであることを特徴とする。
【００４４】
また、以上のように、上記実施の形態におけるコンピュータ読み取り可能な記録媒体は、認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いて証明書の検証を行うプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信処理と、
上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信処理により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証処理と、
上記検証処理により検証された結果である検証レスポンス情報を出力する出力処理と
をコンピュータに実行させるためのプログラムを記録したことを特徴とする。
【００４５】
【発明の効果】
この発明によれば、認証局が発行する、無効な証明書が識別可能な無効証明書リストを用いて証明書の検証を行うサーバ装置において、所定の証明書の検証を依頼するための検証リクエスト情報を受信する受信部と、上記認証局が発行する無効証明書リストを用いて上記所定の証明書の検証を行う前に、有効な証明書が識別可能であり上記有効な証明書が検索可能な有効証明書リストを記憶する記憶装置から有効証明書リストを入力し、入力された上記有効証明書リストを用いて上記受信部により受信された検証リクエスト情報により依頼された上記所定の証明書を検索し、検索した結果に基づいて上記所定の証明書が有効な証明書であるかどうかを検証する検証部と、上記検証部により検証された結果である検証レスポンス情報を出力する出力部とを備えたので、安全性を損なうことなく証明書検証部の有効性の確認手順を省力化し、証明書検証サーバを高速化することができる。
【図面の簡単な説明】
【図１】実施の形態１における構成を示す図である。
【図２】Ｘ．５０９形式の証明書の構造を示す図である。
【図３】検証パスの一例を示す図である。
【図４】ＲＦＣ２４５９にて定められたＣＲＬのフォーマットを示す図である。
【図５】実施の形態１における有効証明書リストを示す図である。
【図６】証明書検証部の内部処理手順を示す図である。
【図７】検証パスの構築の処理手順を示す図である。
【図８】実施の形態１における有効性の確認手順を示す図である。
【図９】実施の形態１における有効証明書リスト更新手順を示す図である。
【図１０】実施の形態２における有効証明書リストを示す図である。
【図１１】実施の形態２における有効性の確認手順を示す図である。
【符号の説明】
１  ネットワーク、２  クライアント、３  証明書検証サーバ、４  証明書、５  検証リクエスト、６  検証リクエスト生成部、７  検証リクエスト送信部、８  検証レスポンス、９  検証レスポンス受信部、１０  ディレクトリ、１１  ＣＲＬ  Ｄ／Ｂ、１２  ＣＲＬ更新部、１３  検証リクエスト受信部、１４  証明書検証部、１５  検証レスポンス生成部、１６  検証レスポンス送信部、１８記憶装置、１７  有効証明書リスト更新部、６６  ハッシュ値、１７１，１７２，１７３  有効証明書、１８１  有効証明書リスト。
【図１】
2004179724.tif 000003
【図２】
2004179724.tif 000004
【図３】
2004179724.tif 000005
【図４】
2004179724.tif 000006
【図５】
2004179724.tif 000007
【図６】
2004179724.tif 000008
【図７】
2004179724.tif 000009
【図８】
2004179724.tif 000010
【図９】
2004179724.tif 000011
【図１０】
2004179724.tif 000012
【図１１】
2004179724.tif 000013