(57)【要約】【課題】  エンドエンティティにより指定された過去の時刻において証明書パスが有効であるか否かを検証する。【解決手段】  最新証明書検索部１０１２がエンドエンティティから検証要求のあった公開鍵証明書と同じ認証局により発行された最新の公開鍵証明書を検索し、前世代証明書検索部１０１３が、当該最新の公開鍵証明書をもとに有効期限が一つ前の前世代の公開鍵証明書を順に遡りながら、エンドエンティティに指定された指定時刻に合致する有効期限の公開鍵証明書を抽出し、失効検証部１０２２が、抽出された公開鍵証明書が失効リストのいずれかに示されているか否かを判断して、抽出した公開鍵証明書が指定時刻時点で有効であるか否かを検証し、上位証明書検索部１０１４が抽出した公開鍵証明書の上位証明書を信頼点の証明書に至るまで検索し、証明書パス構築部１０２４が証明書パスを構築し、証明書パス検証部１０２５が証明書パスが有効か否かを検証する。【選択図】        図２
2006074425.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵を作成する端末装置と、該端末装置が作成した公開鍵に対する公開鍵証明書を有効期限を設定して発行するとともに失効した公開鍵証明書を示す失効リストを発行する少なくとも一つ以上の認証局と通信可能であり、前記端末装置からの検証要求に基づいて公開鍵証明書の検証を行う公開鍵証明書検証装置であって、
発行元の認証局ごとに、有効期限とともに前記公開鍵証明書を記憶する証明書管理部と、
前記失効リストを記憶する失効リスト管理部と、
検証要求として、検証対象となる認証局を検証対象認証局として示す検証対象認証局情報と、検証対象となる過去の時刻を検証対象時刻として示す検証対象時刻情報とを前記端末装置より受信する通信部と、
前記証明書管理部に記憶されている公開鍵証明書の中から、前記検証対象認証局により発行された公開鍵証明書であって有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出する公開鍵証明書抽出部と、
前記公開鍵証明書抽出部により抽出された抽出公開鍵証明書が失効リスト管理部に記憶されている失効リストのいずれかに示されているか否かを判断して、前記抽出公開鍵証明書が検証対象時刻時点で有効であるか否かを検証する有効性検証部とを有することを特徴とする公開鍵証明書検証装置。
【請求項２】
前記証明書管理部は、
それぞれの公開鍵証明書を、同じ認証局から発行された一つ前の有効期限の公開鍵証明書と対応づけて記憶しており、
前記公開鍵証明書抽出部は、
検証対象認証局により発行された公開鍵証明書について、順に一つ前の有効期限の公開鍵証明書に遡って、有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出することを特徴とする請求項１に記載の公開鍵証明書検証装置。
【請求項３】
前記通信部は、前記検証対象認証局情報として、検証対象認証局から発行された公開鍵証明書を前記端末装置から受信することを特徴とする請求項１に記載の公開鍵証明書検証装置。
【請求項４】
前記証明書管理部は、
公開鍵証明書をそれぞれの公開鍵証明書の発行に用いられた上位公開鍵証明書と対応づけて記憶して、複数階層の階層構造にて公開鍵証明書を記憶し、
前記公開鍵証明書抽出部は、
前記有効性検証部により検証対象時刻時点で抽出公開鍵証明書が有効であると判断された場合に、前記証明書管理部に記憶されている公開鍵証明書の中から前記抽出公開鍵証明書の上位公開鍵証明書を抽出し、以降、抽出した上位公開鍵証明書が前記有効性検証部により検証対象時刻時点で有効であると判断され続ける限り、特定の階層の上位公開鍵証明書に至るまで抽出した上位公開鍵証明書の上位公開鍵証明書を抽出し、
前記有効性検証部は、
前記公開鍵証明書抽出部により上位公開鍵証明書が抽出される度に、前記公開鍵証明書抽出部により抽出された上位公開鍵証明書が検証対象時刻時点で有効であるか否かを検証し、前記公開鍵証明書抽出部により特定の階層の上位公開鍵証明書が抽出され、特定の階層の上位公開鍵証明書が検証対象時刻時点で有効であると判断した場合に、特定の階層の上位公開鍵証明書に至るまでに前記公開鍵証明書抽出部により抽出された公開鍵証明書のパスを構築し、構築した公開鍵証明書のパスが有効であるか否かを検証することを特徴とする請求項１に記載の公開鍵証明書検証装置。
【請求項５】
前記公開鍵証明書抽出部は、
前記端末装置が信頼する認証局によって発行された信頼点の上位公開鍵証明書に至るまで、抽出した上位公開鍵証明書の上位公開鍵証明書を抽出し、
前記有効性検証部は、
前記公開鍵証明書抽出部により信頼点の上位公開鍵証明書が抽出され、信頼点の上位公開鍵証明書が検証対象時刻時点で有効であると判断した場合に、信頼点の上位公開鍵証明書に至るまでに前記公開鍵証明書抽出部により抽出された公開鍵証明書のパスを構築し、構築した公開鍵証明書のパスが有効であるか否かを検証することを特徴とする請求項４に記載の公開鍵証明書検証装置。
【請求項６】
公開鍵を作成する端末装置と、該端末装置が作成した公開鍵に対する公開鍵証明書を有効期限を設定して発行するとともに失効した公開鍵証明書を示す失効リストを発行する少なくとも一つ以上の認証局と通信可能であり、
認証局から発行された公開鍵証明書を発行元の認証局ごとに有効期限とともに記憶し、認証局から発行された失効リストを記憶し、
前記端末装置からの検証要求に基づいて公開鍵証明書の検証を行う公開鍵証明書検証方法であって、
検証要求として、検証対象となる認証局を検証対象認証局として示す検証対象認証局情報と、検証対象となる過去の時刻を検証対象時刻として示す検証対象時刻情報とを前記端末装置より受信する通信ステップと、
記憶されている公開鍵証明書の中から、前記検証対象認証局により発行された公開鍵証明書であって有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出する公開鍵証明書抽出ステップと、
前記公開鍵証明書抽出ステップにより抽出された抽出公開鍵証明書が記憶されている失効リストのいずれかに示されているか否かを判断して、前記抽出公開鍵証明書が検証対象時刻時点で有効であるか否かを検証する有効性検証ステップとを有することを特徴とする公開鍵証明書検証方法。
【請求項７】
公開鍵を作成する端末装置と、該端末装置が作成した公開鍵に対する公開鍵証明書を有効期限を設定して発行するとともに失効した公開鍵証明書を示す失効リストを発行する少なくとも一つ以上の認証局と通信可能であり、認証局から発行された公開鍵証明書を発行元の認証局ごとに有効期限とともに記憶可能であり、認証局から発行された失効リストを記憶可能なコンピュータに、
前記端末装置からの検証要求に基づいて公開鍵証明書の検証を実行させるプログラムであって、
検証要求として、検証対象となる認証局を検証対象認証局として示す検証対象認証局情報と、検証対象となる過去の時刻を検証対象時刻として示す検証対象時刻情報とを前記端末装置より受信する通信処理と、
記憶されている公開鍵証明書の中から、前記検証対象認証局により発行された公開鍵証明書であって有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出する公開鍵証明書抽出処理と、
前記公開鍵証明書抽出処理により抽出された抽出公開鍵証明書が記憶されている失効リストのいずれかに示されているか否かを判断して、前記抽出公開鍵証明書が検証対象時刻時点で有効であるか否かを検証する有効性検証処理とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証局から発行された公開鍵証明書の有効性を検証する技術に関する。
【背景技術】
【０００２】
特許文献１に記載の「証明書の有効性確認方法および装置」によれば、認証局がツリー構造で構成されたグループを複数備え、これらが証明書有効性確認センタが信頼する認証局を介して接続されている場合、証明書有効性確認センタがエンドエンティティ（ユーザ端末）が信用する認証局が発行した公開鍵証明書や信頼する認証局とは異なる認証局が発行する公開鍵証明書の有効性を検証する。証明書有効性確認センタは自身が信頼する認証局から各端末認証局までの証明書パスの検索、検証を定期的に行い、既にデータベースに登録されている証明書パス情報を検証が成立した最新の証明書パス情報に更新する。
【０００３】
エンドエンティティから異なる認証局が発行した証明書の有効性確認依頼があった場合、検証対象証明書を発行した認証局に対応付けられたパス（即ち、検証対象証明書を発行した認証局と証明書有効性確認センタが信頼する認証局との間のパス）とエンドエンティティを収容する認証局に対応付けられたパス（即ち、エンドエンティティを収容する認証局と証明書有効性確認センタが信頼する認証局との間のパス）がデータベースに登録されているか否かを調べ、両者が登録されている場合にのみ当該証明書は有効であると判断する。
【０００４】
上記の方法により、特許文献１に記載の「証明書の有効性確認方法および装置」では、公開鍵証明書の有効性確認を依頼してから、当該有効性が確認されるまでにかかる時間を短縮する。
【特許文献１】特開２００２−７２８７６号公報  第１頁〜７頁、第１図
【発明の開示】
【発明が解決しようとする課題】
【０００５】
背景技術においては、証明書有効性確認センタが検証を行い有効であった証明書パスを登録するときに登録されていた証明書パスを前記の証明書パスに更新するため、現時点での証明書パスの有効性のみを確認することが可能である。このため、エンドエンティティが過去の特定の時刻を指定した際に、その指定した時刻に証明書パスが有効であるか否かを確認することができないという問題がある。
【０００６】
そこで、本発明では、過去に登録した証明書パスをデータベースに管理し、さらに証明書ごとに１世代前に有効であった証明書を関連付けることで、過去の時刻に証明書パスが有効であるか否かの確認が可能な装置等を実現することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る公開鍵証明書は、
検証装置公開鍵を作成する端末装置と、端末装置が作成した公開鍵に対する公開鍵証明書を有効期限を設定して発行するとともに失効した公開鍵証明書を示す失効リストを発行する少なくとも一つ以上の認証局と通信可能であり、端末装置からの検証要求に基づいて公開鍵証明書の検証を行う公開鍵証明書検証装置であって、
発行元の認証局ごとに、有効期限とともに公開鍵証明書を記憶する証明書管理部と、
失効リストを記憶する失効リスト管理部と、
検証要求として、検証対象となる認証局を検証対象認証局として示す検証対象認証局情報と、検証対象となる過去の時刻を検証対象時刻として示す検証対象時刻情報とを前記端末装置より受信する通信部と、
前記証明書管理部に記憶されている公開鍵証明書の中から、検証対象認証局により発行された公開鍵証明書であって有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出する公開鍵証明書抽出部と、
前記公開鍵証明書抽出部により抽出された抽出公開鍵証明書が失効リスト管理部に記憶されている失効リストのいずれかに示されているか否かを判断して、抽出公開鍵証明書が検証対象時刻時点で有効であるか否かを検証する有効性検証部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、過去の時刻である検証対象時刻に合致する公開鍵証明書を抽出し、抽出した公開鍵証明書が失効リストのいずれかに示されているか否かを判断して、抽出した公開鍵証明書が指定時刻時点で有効であるか否かを検証することが可能になる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この実施の形態１における証明書パス管理システムの全体構成例を示すブロック図である。
【００１０】
図１において、検証サーバ１００は、過去における証明書パスを管理し、現在および過去における証明書検証を行う。検証サーバ１００は公開鍵証明書検証装置の例である。
【００１１】
エンドエンティティ２００は、検証対象の公開鍵証明書及び検証対象の過去の時刻を示す情報を検証サーバに送信する。検証対象の公開鍵証明書には、検証対象の認証局ＣＡがＩｓｓｕｅｒとして示されており、エンドエンティティ２００から送信される検証対象の公開鍵証明書は、検証対象認証局情報の例である。また、検証対象の過去の時刻を示す情報は検証対象時刻情報の例である。なお、以下の説明では、エンドエンティティ２００は検証対象の公開鍵証明書を検証サーバ１００に送信する例を説明するが、公開鍵証明書ではなく、検証対象の認証局を示す情報を検証対象認証局情報として送信するようにしてもよい。エンドエンティティ２００は、端末装置の例である。また、以下、エンドエンティティをＥＥとも表記する。
【００１２】
認証局ＣＡ３００は、検証サーバ１００やＥＥ２００に対して公開鍵証明書や失効リスト（ＣＲＬ：Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）を発行する。
【００１３】
データ通信経路４００は、検証サーバ１００とエンドエンティティ２００、認証局ＣＡ３００間において、任意のデータの送受信を可能にする。
【００１４】
ここで、公開鍵証明書とは、エンドエンティティ２００が作成した公開鍵に対して信頼できる認証局が発行した証明書をいう。公開鍵は秘密鍵と対になっており、エンドエンティティが作成し、保有する。秘密鍵はエンドエンティティが秘密裏に保管し、公開鍵は本当にそのエンドエンティティの公開鍵であるかを信頼できる認証局に証明させ、認証局は証明書を発行する。この証明書を公開鍵証明書という。公開鍵証明書は暗号技術を用いて作成されるため、有効期限が存在する。その有効期限が過ぎると公開鍵証明書の有効性が失われる。
【００１５】
認証局における公開鍵証明書の作成は、他の公開鍵証明書を使用して署名を付与することにより行われる。ある公開鍵証明書に対して署名を付与するために使用した公開鍵証明書をある公開鍵証明書の上位公開鍵証明書という。以下、上位公開鍵証明書を、上位証明書ともいう。
【００１６】
また、ある公開鍵証明書について、上位証明書を順に辿った場合に、最上位となる証明書を信頼点の上位公開鍵証明書という。信頼点の上位公開鍵証明書は、エンドエンティティが信頼している公開鍵証明書である。以下、信頼点の上位公開鍵証明書を、信頼点の公開鍵証明書又は信頼点の証明書ともいう。また、信頼点をトラストポイントともいう。
【００１７】
また、上位証明書とは逆に、ある公開鍵証明書を用いて署名を付与した公開鍵証明書をある公開鍵証明書の下位公開鍵証明書という。
【００１８】
また、公開鍵証明書には有効期限が存在するため、有効期限の新旧により、複数の世代の公開鍵証明書が存在する。例えば、ある公開鍵証明書に対する１世代前の公開鍵証明書とは、ある公開鍵証明書に対して一つ前の有効期限を持つ公開鍵証明書を意味する。
【００１９】
このように、公開鍵証明書は相互に対応づけられており、複数階層をもつ階層構造となっている。ＥＥ２００によって検証を要求された検証対象の公開鍵証明書からＥＥ２００の信頼点の公開鍵証明書までの公開鍵証明書群を証明書パスという。検証サーバ１００において公開鍵証明書の検証を行うときには検証対象の公開鍵証明書のみを検証するのではなく、ＥＥ２００の信頼点の公開鍵証明書までをたどり、その全ての公開鍵証明書の検証が成功して初めて検証対象の公開鍵証明書の検証が成功となる。
【００２０】
また、失効リストとは、秘密鍵が漏洩したなどの理由でエンドエンティティの公開鍵証明書が信頼できなくなり、その公開鍵証明書の有効性が失われた時に、有効性が失われた証明書をリストに加え、そのリストを認証局が発行する。これは公開鍵証明書のブラックリストのようなものである。以下、失効リストをＣＲＬとも表記する。
【００２１】
図２は、検証サーバ１００の構成例を示すブロック図である。
検証サーバ１００の機能は、公開鍵証明書抽出部１０１、有効性検証部１０２、通信部１０３、登録処理部１０４、証明書情報管理データベース（ＤＢ）１０５、ＣＲＬ情報管理データベース（ＤＢ）１０６、ＣＡ情報管理データベース（ＤＢ）１０７、信頼点情報管理データベース（ＤＢ）１０８に大別される。
【００２２】
証明書情報管理ＤＢ１０５は、図１０のレコード例に示すように、登録ごとに一意に発行される公開鍵証明書の登録ＩＤに対して、公開鍵証明書の有効期限開始日、有効期限終了日、上位証明書登録ＩＤ、１世代前の証明書登録ＩＤ、失効時刻、対象ＣＲＬ登録ＩＤ及び公開鍵証明書の実体を管理する。登録ＩＤは、以下、参照情報ともいう。図１０に示すように、証明書情報管理ＤＢ１０５は、それぞれの公開鍵証明書を、有効期限とともに、同じ認証局ＣＡから発行された上位証明書、１世代前の証明書と対応づけて記憶している。証明書情報管理ＤＢ１０５は、証明書管理部の例である。
【００２３】
ＣＲＬ情報管理ＤＢ１０６は、図１１のレコード例に示すように、登録ごとに一意に発行されるＣＲＬの登録ＩＤに対して、ＣＲＬの更新日、次回更新日、上位証明書登録ＩＤ、１世代前のＣＲＬ登録ＩＤ、ＣＲＬの実体を管理する。ＣＲＬ情報管理ＤＢ１０６は、失効リスト管理部の例である。
【００２４】
ＣＡ情報管理ＤＢ１０７は、図１２のレコード例に示すようように、認証局ＣＡの名称、証明書情報管理ＤＢが管理している当該認証局ＣＡが所有する最新の証明書の登録ＩＤ、ＣＲＬ情報管理ＤＢが管理している当該認証局ＣＡが発行した最新のＣＲＬの登録ＩＤを管理する。
【００２５】
また、信頼点情報管理ＤＢ１０８は、信頼点の名称を管理する。
【００２６】
公開鍵証明書抽出部１０１は、ＥＥ２００から送信された検証対象の公開鍵証明書の発行元と同じ認証局ＣＡ３００で発行された公開鍵証明書のうち最も新しい公開鍵証明書を抽出し、更に、ＥＥ２００から指定された過去の時刻である指定時刻に合致する有効期限の公開鍵証明書を抽出する。また、公開鍵証明書抽出部１０１は、指定時刻に合致する有効期限の公開鍵証明書の上位証明書を信頼点の証明書に至るまで抽出する。公開鍵証明書抽出部１０１は、認証局参照情報検索部１０１１、最新証明書検索部１０１２、前世代証明書検索部１０１３、上位証明書検索部１０１４、指定時刻有効性比較部１０１５を有する。以下にて、各部の機能を説明する。
【００２７】
認証局参照情報検索部１０１１は、公開鍵証明書やＣＲＬのＩｓｓｕｅｒの項目からＣＡ情報管理ＤＢ１０７で管理されている対象認証局ＣＡが発行した最新の公開鍵証明書の登録ＩＤを検索する。例えば、認証局参照情報検索部１０１１は、ＥＥ２００から送信された検証対象の公開鍵証明書のＩｓｓｕｅｒの項目から当該検証対象の公開鍵証明書の発行元の認証局ＣＡ３００を特定し、ＣＡ情報管理ＤＢ１０７を検索して当該認証局ＣＡ３００の最新の公開鍵証明書の登録ＩＤを得る。
【００２８】
最新証明書検索部１０１２は、認証局参照情報検索部１０１１で検索された最新の公開鍵証明書の登録ＩＤから証明書情報管理ＤＢで管理されている対応する最新の公開鍵証明書のレコードを検索する。
【００２９】
前世代証明書検索部１０１３は、証明書情報管理ＤＢ１０５のレコードにおける１世代前の公開鍵証明書登録ＩＤから１世代前の公開鍵証明書のレコードを検索する。図１０に示したように、証明書情報管理ＤＢ１０５は、それぞれの公開鍵証明書に対して１世代前の公開鍵証明書の登録ＩＤを対応づけているため、前世代証明書検索部１０１３は、１世代前の公開鍵証明書の登録ＩＤを参照することで、１世代前の公開鍵証明書のレコードを検索することができる。
【００３０】
上位証明書検索部１０１４は、証明書情報管理ＤＢ１０５のレコードにおける上位証明書登録ＩＤから上位公開鍵証明書のレコードを検索する。図１０に示したように、証明書情報管理ＤＢ１０５は、それぞれの公開鍵証明書に対して上位証明書の登録ＩＤを対応づけているため、上位証明書検索部１０１４は、上位証明書の登録ＩＤを参照することで、上位証明書のレコードを検索することができる。
【００３１】
指定時刻有効性比較部１０１５は、最新証明書検索部１０１２、前世代証明書検索部１０１３が検索した公開鍵証明書の有効期限とＥＥ２００から通知された指定時刻とを比較し、公開鍵証明書の有効期限と指定時刻とが合致するか否かを調べる。
【００３２】
通信部１０３は、データ通信経路４００を介して、ＥＥ２００から検証対象の公開鍵証明書及び指定時刻を示す情報を受信し、また、検証結果をＥＥ２００に送信する。前述したように、通信部１０３は、公開鍵証明書ではなく、検証対象の認証局（検証対象の公開鍵証明書を発行した認証局）を示す情報（検証対象認証局情報）をＥＥ２００から受信するようにしてもよい。
【００３３】
有効性検証部１０２は、公開鍵証明書抽出部１０１により抽出された公開鍵証明書が失効リストに示されているか否か、または失効時刻を参照して当該公開鍵証明書が失効しているか否かを検証して、公開鍵証明書の有効性を検証する。また、有効性検証部１０２は、公開鍵証明書抽出部１０１により信頼点の証明書が抽出された場合に、証明書パスを構築し、更に、構築した証明書パスの検証を行う。有効性検証部１０２は、ＣＲＬ参照情報検索部１０２１、失効検証部１０２２、信頼点比較部１０２３、証明書パス構築部１０２４、証明書パス検証部１０２５を有する。以下にて、各部の機能を説明する。
ＣＲＬ参照情報検索部１０２１は、証明書情報管理ＤＢ１０５の対象ＣＲＬ登録ＩＤ又はＣＡ情報管理ＤＢ１０７の最新ＣＲＬ登録ＩＤから、ＣＲＬ情報管理ＤＢ１０６で管理されている対応するＣＲＬのレコードを検索する。
【００３４】
失効検証部１０２２は、ＣＲＬ参照情報検索部１０２１により検索された失効リストから対応する公開鍵証明書が失効しているかどうかを検証し、また、証明書情報管理ＤＢ１０５のレコードに示された失効時刻の情報から指定時刻において公開鍵証明書が失効しているかどうかを検証する。
【００３５】
信頼点比較部１０２３は、公開鍵証明書抽出部１０１が抽出した公開鍵証明書が信頼点の証明書か否かを検証する。
【００３６】
証明書パス構築部１０２４は、信頼点比較部１０２３により信頼点の証明書が検証された場合に、証明書情報管理ＤＢ１０５で管理されている登録ＩＤのリストから証明書情報管理ＤＢ１０５で管理されている証明書を取得し、証明書パスを構築する。証明書パス検証部１０２５は、証明書パス構築部１０２４により構築された証明書パスの有効性を検証する。
【００３７】
登録処理部１０４は、ＥＥ２００又は認証局ＣＡ３００から送信された公開鍵証明書及びＣＲＬの登録処理を行う。登録処理部１０４は、証明書・ＣＲＬ登録有無判断部１０４１、データベース（ＤＢ）格納部１０４２、ＣＲＬ検証部１０４３を有する。以下にて、各部の機能を説明する。
【００３８】
証明書・ＣＲＬ登録有無判断部１０４１は、ＥＥ２００又は認証局ＣＡ３００から受信した公開鍵証明書が証明書情報管理ＤＢ１０５に、ＥＥ２００又は認証局ＣＡ３００から受信したＣＲＬがＣＲＬ情報管理ＤＢ１０６に登録されているかを調べる。
ＤＢ格納部１０４２は、証明書・ＣＲＬ登録有無判断部１０４１により未登録と判断された公開鍵証明書、ＣＲＬを証明書情報管理ＤＢ１０５又はＣＲＬ情報管理ＤＢ１０６に格納する。
【００３９】
ＣＲＬ検証部１０４３は、ＣＲＬの登録の際に、登録の対象となるＣＲＬの有効性を検証する。
【００４０】
図３は、エンドエンティティ２００の構成例を示すブロック図である。
署名生成部２０１は、電子文書データベース（ＤＢ）２０５で管理されている電子文書からデジタル署名を付加し、電子署名文書を生成する。署名検証部２０２は、電子署名文書を鍵保管データベース（ＤＢ）２０４で管理されている証明書を使用して署名検証を行う。通信部２０３は、データ通信経路４００を介して、検証サーバ１００、認証局ＣＡ３００へデータの送受信を行う。鍵保管ＤＢ２０４は、エンドエンティティの秘密鍵や検証で使用する証明書を管理する。電子文書ＤＢ２０５は、署名対象となる電子文書を管理する。
【００４１】
図４は、認証局ＣＡ３００の構成例を示すブロック図である。
【００４２】
証明書発行部３０１は、公開鍵証明書を発行する。ＣＲＬ発行部３０２は、ＣＲＬを発行する。通信部３０３は、データ通信経路を介して、検証サーバ、エンドエンティティへデータの送受信を行う。証明書データベース（ＤＢ）３０４は、自局が発行した証明書を管理する。ＣＲＬデータベース（ＤＢ）３０５は、自局が発行したＣＲＬを管理する。
【００４３】
次に、上記構成の検証サーバ１００の動作について説明する。
【００４４】
本実施形態の検証サーバの動作は、パスの構築、検証および管理動作、公開鍵証明書の登録動作に分けられる。
【００４５】
図５は、検証サーバで行われる証明書パス構築の動作を説明するためのフローチャート図である。
【００４６】
通信部１０３はエンドエンティティ２００の通信部２０３から送られてきた公開鍵証明書、指定時刻（検証対象となる過去の時刻）を受け取る（通信ステップ）。
【００４７】
認証局参照情報検索部１０１１はエンドエンティティ２００からの公開鍵証明書のＩｓｓｕｅｒをキーとしてＣＡ情報管理ＤＢ１０７に管理されているＣＡ名称から最新証明書登録ＩＤを取得し、その最新証明書登録ＩＤをキーに証明書情報管理ＤＢ１０５に管理されている当該認証局ＣＡ３００が最も新しく発行した証明書のレコードを検索する。
【００４８】
具体的には、ＥＥ２００からの公開鍵証明書に示されたＩｓｓｕｅｒに一致する認証局ＣＡがＣＡ情報管理ＤＢ１０７に登録されていれば次の処理であるＳ１０２へ、登録されていなければエラー情報をエンドエンティティに返信し（ステップＳ１０１）、また、公開鍵証明書に示されたＩｓｓｕｅｒに一致する認証局ＣＡがＣＡ情報管理ＤＢ１０７に登録されている場合には、当該認証局ＣＡのレコードの最新証明書登録ＩＤと一致する登録ＩＤのレコード（属性情報）を証明書情報管理ＤＢ１０５から検索する（Ｓ１０２）。
【００４９】
なお、エンドエンティティから送られてきた証明書がトラストポイントを含む証明書パスの場合はステップＳ１１０へ進み、トラストポイントを含まない証明書パスの場合はそのパスの中で最上位の証明書を別のエンドエンティティ証明書と仮定し、当該証明書からトラストポイントまでの証明書パスを構築する。
【００５０】
次に、前世代証明書検索部１０１３が、ステップＳ１０２で検索されたレコードのうち１世代前の証明書登録ＩＤから１世代前の証明書のレコード（属性情報）を取得し、指定時刻有効性比較部１０１５が、１世代前の証明書のレコード（属性情報）に基づき、当該１世代前の証明書がＥＥ２００から通知された指定時刻に有効であるかどうか調べ、有効であれば更に１世代前の証明書のレコードを同様の手順にて取得する。１世代前の証明書が指定時刻に有効かどうかは、指定時刻と１世代前の証明書のレコードに示された有効期限開始日及び有効期限終了日とを比較して判断する。有効期限が指定時刻に合致する場合は、１世代前の証明書は指定時刻に有効と判定される。前世代証明書検索部１０１３及び指定時刻有効性比較部１０１５は、有効期限終了日が指定時刻がよりも前になる（有効期限が指定時刻に合致ない）公開鍵証明書に至るまで順に１世代前の公開鍵証明書を遡り、指定時刻に有効である公開鍵証明書のレコード（属性情報）を複数取得する（ステップＳ１０３）。以上、ステップＳ１０１〜Ｓ１０３の処理が公開鍵証明書抽出ステップに相当する。
【００５１】
次に、ＣＲＬ参照情報検索部１０２１が、ステップＳ１０３で取得された公開鍵証明書のレコード（属性情報）の対象ＣＲＬ登録ＩＤと一致するＣＲＬ登録ＩＤを含むレコードをＣＲＬ情報管理ＤＢ１０６から取得する（ステップＳ１０４）。
【００５２】
次に、失効検証部１０２２は、ステップＳ１０４で取得されたＣＲＬからステップＳ１０３で検索された公開鍵証明書が失効しているかどうかを検証する（ステップＳ１０５）。公開鍵証明書が失効していなければ次の処理であるステップＳ１０６に進み、失効している場合はエンドエンティティ２００にエラー情報を出力する。以上、ステップＳ１０４及びＳ１０５は有効性検証ステップに相当する。
【００５３】
次に、上位証明書検索部１０１４は、ステップＳ１０３で取得された公開鍵証明書のレコード（属性情報）の上位証明書の登録ＩＤ（参照情報）から上位証明書のレコード（属性情報）を検索し、取得する（ステップＳ１０６、Ｓ１０７）。
【００５４】
次に、失効検証部１０２２が、ステップＳ１０６及びＳ１０７で取得された上位証明書のレコード（属性情報）の失効時刻と指定時刻を比較し、上位証明書が指定時刻前に失効していればエラー情報をエンドエンティティに返し、失効していなければ次の処理であるステップＳ１０９に進む（ステップＳ１０８）。
【００５５】
次に、信頼点比較部１０２３が、ステップＳ１０６及びＳ１０７で取得され、ステップＳ１０８において失効していないと判断された上位証明書が信頼点（トラストポイント）の証明書であるかを判断する。信頼点の証明書であれば、証明書パス構築部１０２４が今まで取得した登録ＩＤに基づき証明書情報管理ＤＢから対応する公開鍵証明書（指定時刻に有効な公開鍵証明書、当該証明書の上位証明書、当該証明書の信頼点の証明書）を取得し、信頼点に至るまでの証明書パスを構築する。信頼点の証明書でなければステップＳ１０６に戻り、信頼点に至るまでステップＳ１０６以降の処理を続け、順により上位の公開鍵証明書を取得する（ステップＳ１０９）。
【００５６】
次に、証明書パス検証部１０２５は、ステップＳ１０９で作成された証明書パスが有効な証明書パスであるか否かを検証する。有効な証明書パスの場合は、その証明書パスを出力し、有効な証明書パスでない場合は、エラー情報をエンドエンティティ２００に返す。証明書パスが有効か否かの判断は、例えば、証明書が改竄されていないこと、指定時刻が証明書に記載されている有効期限内であること、ＣＲＬに証明書が記載されていないこと、証明書パスがパスとして正しいものであること（下位証明書のＩｓｓｕｅｒと上位証明書のＳｕｂｊｅｃｔが一致していること）などの基準で判断する。
【００５７】
図６は、検証サーバで行われる証明書登録の動作を説明するためのフローチャート図である。図６に示す証明書登録動作は、図５に示した証明書パス構築動作の前提となる動作であり、通常、証明書パス構築動作の前に実施される。
【００５８】
通信部１０３は、エンドエンティティの通信部２０３から登録のために公開鍵証明書が送られてきた場合に、送られてきた公開証明書を受け取る。もしくは認証局ＣＡの通信部３０３から認証局が発行した最新の公開鍵証明書を定期的に取得する。
【００５９】
証明書・ＣＲＬ登録有無判断部１０４１はエンドエンティティから送られてきた公開鍵証明書が証明書情報管理ＤＢ１０５で登録されているか否かを調べ、登録されていれば再度登録する必要がないため、登録ができない旨を通知する登録不可通知をエンドエンティティに返す（ステップＳ２０１）。登録されていなければ、その証明書を対象証明書とし、図５のステップＳ１０１〜Ｓ１０９の処理を行って、証明書パスを構築する。証明書パスの構築成功であれば次の処理であるステップＳ２０３に進み、構築失敗であれば登録不可情報をエンドエンティティに返す（ステップＳ２０２）。
【００６０】
証明書パス検証部１０２５は、図５のステップＳ１１０と同様に、構築された証明書パスの検証を行う。証明書パスの検証が成功であれば次の処理であるステップＳ２０４に進み、検証が失敗であれば登録不可情報をエンドエンティティに返す（ステップＳ２０３）。
【００６１】
ＤＢ格納部１０４２は前記検証に成功した証明書パスの登録対象証明書、および登録対象証明書についての図１０に示すレコード（属性情報）、図１２に示すレコード（属性情報）を証明書情報管理ＤＢ１０５、ＣＡ情報管理ＤＢ１０７に追加・更新を行う（ステップＳ２０４）。
【００６２】
図７は、検証サーバで行われるＣＲＬ登録の動作を説明するためのフローチャート図である。図７に示すＣＲＬ登録動作は、図５に示した証明書パス構築動作の前提となる動作であり、通常、証明書パス構築動作の前に実施される。
【００６３】
通信部１０３はエンドエンティティの通信部２０３から送られてきたＣＲＬを受け取る。もしくは認証局ＣＡの通信部３０３から認証局が発行した最新のＣＲＬを定期的に取得する。
【００６４】
証明書・ＣＲＬ登録有無判断部１０４１はエンドエンティティからＣＲＬが送られてきた場合に、送られてきたＣＲＬがＣＲＬ情報管理ＤＢで登録されているか否かを調べ（ステップＳ３０１）、登録されていれば再度登録する必要がないので登録不可通知をエンドエンティティに返す。登録されていなければ、認証局参照情報検索部１０１１が前記送られてきたＣＲＬのＩｓｓｕｅｒをキーとして証明書情報管理ＤＢ１０５に管理されているそのＩｓｓｕｅｒ（認証局ＣＡ）が最も新しく発行した証明書のレコード（属性情報）を検索する。次に、図５のステップＳ１０２〜Ｓ１０９の処理を行い、証明書パスを構築する。証明書パスの構築成功であれば次の処理であるステップＳ３０３に進み、構築失敗であれば登録不可通知をエンドエンティティに返す（ステップＳ３０２）。
【００６５】
ＣＲＬ検証部１０４３は前記登録対象ＣＲＬの検証を行う。ＣＲＬの検証が成功であれば次の処理であるステップＳ３０４に移行し、検証が失敗であれば登録不可情報をエンドエンティティに返す（ステップＳ３０３）。ＣＲＬの検証は、例えば、ＣＲＬが改竄されていないか等の基準により行う。
【００６６】
ＤＢ格納部１０４２は前記検証に成功した登録対象ＣＲＬ、および登録対象ＣＲＬの図１１に示すレコード（属性情報）、図１２に示すレコード（属性情報）をＣＲＬ情報管理ＤＢ１０６、ＣＡ情報管理ＤＢ１０７に追加・更新を行う（ステップＳ３０４）。
図８は、検証サーバで行われる証明書パス登録の動作を説明するためのフローチャート図である。図８に示す証明書パス登録動作は、図５に示した証明書パス構築動作の前提となる動作であり、通常、証明書パス構築動作の前に実施される。また、図６では、公開鍵証明書のみが送付された場合の処理を示していたが、図８では証明書パスが送付された場合の処理を示す。
【００６７】
通信部１０３はエンドエンティティの通信部２０３もしくは認証局ＣＡの通信部３０３から送られてきた証明書パスを受け取る。
【００６８】
次に、証明書・ＣＲＬ登録有無判断部１０４１が、送信されてきた証明書パスの最上位証明書を取得する（ステップＳ４０１）。
【００６９】
証明書・ＣＲＬ登録有無判断部１０４１は対象証明書が証明書情報管理ＤＢに登録されているかの検索を行い、登録されていなければ次の処理に移行し、登録されていれば送信されてきた証明書パスにおける下位証明書を取得し、取得した下位証明書が証明書情報管理ＤＢ１０５に登録されているか否かの判断を行う（ステップＳ４０２、Ｓ４０３）。ここで、対象証明書とは、最上位証明書から順に辿っていった際に登録有無の判断の対象となる証明書を意味する。ステップＳ４０２及びステップＳ４０３は、最上位証明書から順に下位の証明書を辿り、それぞれの証明書が証明書情報管理ＤＢ１０５に登録されているか否かを判断する。
【００７０】
証明書パス検証部１０２５は対象証明書の証明書パスの検証を行い、検証成功であれば次の処理であるステップＳ４０５へ移行し、検証失敗であれば登録不可通知をエンドエンティティに渡す（ステップＳ４０４）。
【００７１】
前記検証に成功した対象証明書、および当該対象証明書の図１０に示すレコード（属性情報）、図１２に示すレコード（属性情報）を証明書情報管理ＤＢ１０５、ＣＡ情報管理ＤＢ１０７に追加・更新を行う（ステップＳ４０５）。
【００７２】
前記対象証明書に下位の証明書が存在しなければ（ステップＳ４０６）、エンドエンティティに登録成功通知を送り、存在すれば下位証明書を取得し（ステップＳ４０２）、当該下位証明書に対してステップＳ４０３〜Ｓ４０６の処理を行う。
図９は、検証サーバで行われる信頼点の証明書登録の動作を説明するためのフローチャート図である。図９に示す信頼点の証明書登録動作は、図５に示した証明書パス構築動作の前提となる動作であり、通常、証明書パス構築動作の前に実施される。
通信部１０３はエンドエンティティの通信部２０３から送られてきたエンドエンティティの信頼点の証明書を受け取る（ステップＳ５０１）。
証明書パス検証部１０２５は信頼点の証明書の検証を行い、検証成功であれば次の処理であるステップＳ５０３に移行し、検証失敗であれば登録不可通知をエンドエンティティに渡す（ステップＳ５０２）。
ＤＢ格納部１０４２は信頼点の証明書を証明書情報管理ＤＢ１０５、信頼点情報管理ＤＢ１０８に追加する（Ｓ５０３）。その後、エンドエンティティに対して登録成功通知が送信される。
【００７３】
このように、本実施の形態によれば、有効期限が一つ前の公開鍵証明書を順に遡りながら、過去の特定の時刻である指定時刻（検証対象時刻）に合致する公開鍵証明書を抽出し、抽出した公開鍵証明書が失効リストのいずれかに示されているか否かを判断して、抽出した公開鍵証明書が指定時刻時点で有効であるか否かを検証する。更に、抽出した公開鍵証明書の上位証明書を信頼点の証明書に至るまで検索して公開鍵証明書のパスを構築し、当該公開鍵証明書のパスが有効か否かを検証する。このため、検証サーバに登録しているドメインであれば証明書情報管理ＤＢで管理している１世代前の証明書の参照情報（登録ＩＤ）を使用して、エンドエンティティが指定した過去の時刻の証明書の有効性を検証することができる。
【００７４】
また、検証サーバに登録している証明書は、二重に登録しないため、証明書パスの構築処理が省略できることにより証明書検証の高速化が可能となる。また、検証サーバに証明書パスとして保管する場合、重複する証明書やＣＲＬが多く存在してしまいデータ量が膨大になってしまうが、上位証明書や対象ＣＲＬは参照情報（登録ＩＤ）として保管することにより保管データ量の削減が実現できる。
【００７５】
前述した実施の形態で、検証サーバ１００は、コンピュータで実現できるものである。
【００７６】
図示していないが、検証サーバ１００は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。
【００７７】
例えば、ＣＰＵは、バスを介して、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、通信ボード、表示装置、Ｋ／Ｂ（キーボード）、マウス、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤＤ（コンパクトディスクドライブ）、磁気ディスク装置、光ディスク装置、プリンタ装置、スキャナ装置等と接続されている。
【００７８】
ＲＡＭは、揮発性メモリの一例である。ＲＯＭ、ＦＤＤ、ＣＤＤ、磁気ディスク装置、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
【００７９】
前述した実施の形態の検証サーバ１００が扱うデータや情報は、記憶装置あるいは記憶部に保存され、検証サーバ１００の各部により、記録され読み出されるものである。
【００８０】
また、通信ボードは、例えば、ＬＡＮ、インターネット、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されている。
【００８１】
磁気ディスク装置には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、プログラム群、ファイル群（データベース）が記憶されている。
【００８２】
プログラム群は、ＣＰＵ、ＯＳ、ウィンドウシステムにより実行される。
【００８３】
上記検証サーバ１００の各部は、一部或いはすべてコンピュータで動作可能なプログラムにより構成しても構わない。或いは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
【００８４】
上記プログラム群には、実施の形態の説明において「〜部」として説明した処理をＣＰＵに実行させるプログラムが記憶される。これらのプログラムは、例えば、Ｃ言語やＨＴＭＬやＳＧＭＬやＸＭＬなどのコンピュータ言語により作成される。
【００８５】
また、上記プログラムは、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記憶され、ＣＰＵにより読み出され実行される。
【００８６】
ここで、実施の形態１に示した検証サーバの特徴を以下に示す。
【００８７】
実施の形態１に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書と信頼できる証明書までの上位証明書、それら証明書の失効情報（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ：ＣＲＬ）を含む証明書パスの検証要求に応じて当該証明書パスの証明書の失効チェックを行う失効検証手段と、当該ＣＲＬの有効性を検証するＣＲＬ検証手段と、当該証明書パスを検証する証明書パス検証手段とを備えたことを特徴とする。
【００８８】
実施の形態１に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書と信頼できる証明書までの上位証明書を含む証明書パスの検証要求に応じてデータ通信経路を介して認証局ＣＡからＣＲＬを取得する検証情報取得手段と、前記失効検証手段、ＣＲＬ検証手段、証明書パス検証手段とを備えたことを特徴とする。
【００８９】
実施の形態１に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書の検証要求に応じてデータ通信経路を介して認証局ＣＡから当該公開鍵証明書の上位に位置する証明書を取得する検証情報取得手段、取得した証明書から証明書パスを構築する証明書パス構築手段と、前記失効検証手段、ＣＲＬ検証手段、証明書パス検証手段とを備えたことを特徴とする。
【００９０】
実施の形態１に示した検証サーバは、検証処理が行われ検証に成功した証明書の発行認証局ＣＡの情報をＣＡ情報管理ＤＢに、検証に成功した証明書パスを証明書情報管理ＤＢに、有効性が確認できたＣＲＬをＣＲＬ情報管理ＤＢに格納する検証情報ＤＢ格納手段を備えたことを特徴とする。
【００９１】
実施の形態１に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書と信頼できる証明書までの上位証明書を含む証明書パスの検証要求に応じて当該証明書に対応したＣＲＬをＣＲＬ情報管理ＤＢから取得するＣＲＬ参照情報検索手段と、前記失効検証手段、証明書パス構築手段、ＣＲＬ検証手段、証明書パス検証手段とを備えたことを特徴とする。
【００９２】
実施の形態１に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書の検証要求に応じてその上位に位置する証明書を取得するために検索する上位証明書検索手段と前記ＣＲＬ参照情報検索手段、失効検証手段、証明書パス構築手段、ＣＲＬ検証手段、証明書パス検証手段とを備えたことを特徴とする。
【００９３】
実施の形態１に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書とその公開鍵証明書が有効性を証明したい指定時刻とを含む検証要求に応じて当該公開鍵証明書の上位に位置する公開鍵証明書を検索する前記上位証明書検索手段とその上位証明書の前世代の公開鍵証明書を証明書情報管理ＤＢから検索する前世代証明書検索手段、その前世代の公開鍵証明書が指定時刻に有効であるかを検証する指定時刻有効性比較手段と前記ＣＲＬ参照情報検索手段、失効検証手段、証明書パス構築手段、ＣＲＬ検証手段、証明書パス検証手段とを備えたことを特徴とする。
【図面の簡単な説明】
【００９４】
【図１】実施の形態１に係る証明書パス管理システムの全体構成例を示す図。
【図２】実施の形態１に係る検証サーバの構成例を示す図。
【図３】実施の形態１に係るエンドエンティティの構成例を示す図。
【図４】実施の形態１に係る認証局の構成例を示す図。
【図５】実施の形態１に係る証明書パス構築動作の例を示すフローチャート図。
【図６】実施の形態１に係る証明書登録動作の例を示すフローチャート図。
【図７】実施の形態１に係るＣＲＬ登録動作の例を示すフローチャート図。
【図８】実施の形態１に係る証明書パス登録動作の例を示すフローチャート図。
【図９】実施の形態１に係る信頼点の登録動作の例を示すフローチャート図。
【図１０】実施の形態１に係る証明書情報管理ＤＢのレコード例を示す図。
【図１１】実施の形態１に係るＣＲＬ情報管理ＤＢのレコード例を示す。
【図１２】図実施の形態１に係るＣＡ情報管理ＤＢのレコード例を示す図。
【符号の説明】
【００９５】
１００  検証サーバ、１０１  公開鍵証明書抽出部、１０２  有効性検証部、１０３  通信部、１０４  登録処理部、１０５  証明書情報管理データベース、１０６  ＣＲＬ情報管理データベース、１０７  ＣＡ情報管理データベース、１０８  信頼点情報管理データベース、２００  エンドエンティティ、２０１  署名生成部、２０２  署名検証部、２０３  通信部、２０４  鍵保管データベース、２０５  電子文書データベース、３００  認証局、３０１  証明書発行部、３０２  ＣＲＬ発行部、３０３  通信部、３０４  証明書データベース、３０５  ＣＲＬデータベース、１０１１  認証局参照情報検索部、１０１２  最新証明書検索部、１０１３  前世代証明書検索部、１０１４  上位証明書検索部、１０１５  指定時刻有効性比較部、１０２１  ＣＲＬ参照情報検索部、１０２２  失効検証部、１０２３  信頼点比較部、１０２４  証明書パス構築部、１０２５  証明書パス検証部。
【図１】
2006074425.tif 000003
【図２】
2006074425.tif 000004
【図３】
2006074425.tif 000005
【図４】
2006074425.tif 000006
【図５】
2006074425.tif 000007
【図６】
2006074425.tif 000008
【図８】
2006074425.tif 000009
【図９】
2006074425.tif 000010
【図１０】
2006074425.tif 000011
【図１１】
2006074425.tif 000012
【図１２】
2006074425.tif 000013
【図７】
2006074425.tif 000014