説明

公開鍵証明書検証装置及び公開鍵証明書検証方法及びプログラム

【課題】 エンドエンティティにより指定された過去の時刻において証明書パスが有効であるか否かを検証する。
【解決手段】 最新証明書検索部1012がエンドエンティティから検証要求のあった公開鍵証明書と同じ認証局により発行された最新の公開鍵証明書を検索し、前世代証明書検索部1013が、当該最新の公開鍵証明書をもとに有効期限が一つ前の前世代の公開鍵証明書を順に遡りながら、エンドエンティティに指定された指定時刻に合致する有効期限の公開鍵証明書を抽出し、失効検証部1022が、抽出された公開鍵証明書が失効リストのいずれかに示されているか否かを判断して、抽出した公開鍵証明書が指定時刻時点で有効であるか否かを検証し、上位証明書検索部1014が抽出した公開鍵証明書の上位証明書を信頼点の証明書に至るまで検索し、証明書パス構築部1024が証明書パスを構築し、証明書パス検証部1025が証明書パスが有効か否かを検証する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証局から発行された公開鍵証明書の有効性を検証する技術に関する。
【背景技術】
【0002】
特許文献1に記載の「証明書の有効性確認方法および装置」によれば、認証局がツリー構造で構成されたグループを複数備え、これらが証明書有効性確認センタが信頼する認証局を介して接続されている場合、証明書有効性確認センタがエンドエンティティ(ユーザ端末)が信用する認証局が発行した公開鍵証明書や信頼する認証局とは異なる認証局が発行する公開鍵証明書の有効性を検証する。証明書有効性確認センタは自身が信頼する認証局から各端末認証局までの証明書パスの検索、検証を定期的に行い、既にデータベースに登録されている証明書パス情報を検証が成立した最新の証明書パス情報に更新する。
【0003】
エンドエンティティから異なる認証局が発行した証明書の有効性確認依頼があった場合、検証対象証明書を発行した認証局に対応付けられたパス(即ち、検証対象証明書を発行した認証局と証明書有効性確認センタが信頼する認証局との間のパス)とエンドエンティティを収容する認証局に対応付けられたパス(即ち、エンドエンティティを収容する認証局と証明書有効性確認センタが信頼する認証局との間のパス)がデータベースに登録されているか否かを調べ、両者が登録されている場合にのみ当該証明書は有効であると判断する。
【0004】
上記の方法により、特許文献1に記載の「証明書の有効性確認方法および装置」では、公開鍵証明書の有効性確認を依頼してから、当該有効性が確認されるまでにかかる時間を短縮する。
【特許文献1】特開2002−72876号公報 第1頁〜7頁、第1図
【発明の開示】
【発明が解決しようとする課題】
【0005】
背景技術においては、証明書有効性確認センタが検証を行い有効であった証明書パスを登録するときに登録されていた証明書パスを前記の証明書パスに更新するため、現時点での証明書パスの有効性のみを確認することが可能である。このため、エンドエンティティが過去の特定の時刻を指定した際に、その指定した時刻に証明書パスが有効であるか否かを確認することができないという問題がある。
【0006】
そこで、本発明では、過去に登録した証明書パスをデータベースに管理し、さらに証明書ごとに1世代前に有効であった証明書を関連付けることで、過去の時刻に証明書パスが有効であるか否かの確認が可能な装置等を実現することを主な目的とする。
【課題を解決するための手段】
【0007】
本発明に係る公開鍵証明書は、
検証装置公開鍵を作成する端末装置と、端末装置が作成した公開鍵に対する公開鍵証明書を有効期限を設定して発行するとともに失効した公開鍵証明書を示す失効リストを発行する少なくとも一つ以上の認証局と通信可能であり、端末装置からの検証要求に基づいて公開鍵証明書の検証を行う公開鍵証明書検証装置であって、
発行元の認証局ごとに、有効期限とともに公開鍵証明書を記憶する証明書管理部と、
失効リストを記憶する失効リスト管理部と、
検証要求として、検証対象となる認証局を検証対象認証局として示す検証対象認証局情報と、検証対象となる過去の時刻を検証対象時刻として示す検証対象時刻情報とを前記端末装置より受信する通信部と、
前記証明書管理部に記憶されている公開鍵証明書の中から、検証対象認証局により発行された公開鍵証明書であって有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出する公開鍵証明書抽出部と、
前記公開鍵証明書抽出部により抽出された抽出公開鍵証明書が失効リスト管理部に記憶されている失効リストのいずれかに示されているか否かを判断して、抽出公開鍵証明書が検証対象時刻時点で有効であるか否かを検証する有効性検証部とを有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、過去の時刻である検証対象時刻に合致する公開鍵証明書を抽出し、抽出した公開鍵証明書が失効リストのいずれかに示されているか否かを判断して、抽出した公開鍵証明書が指定時刻時点で有効であるか否かを検証することが可能になる。
【発明を実施するための最良の形態】
【0009】
実施の形態1.
図1は、この実施の形態1における証明書パス管理システムの全体構成例を示すブロック図である。
【0010】
図1において、検証サーバ100は、過去における証明書パスを管理し、現在および過去における証明書検証を行う。検証サーバ100は公開鍵証明書検証装置の例である。
【0011】
エンドエンティティ200は、検証対象の公開鍵証明書及び検証対象の過去の時刻を示す情報を検証サーバに送信する。検証対象の公開鍵証明書には、検証対象の認証局CAがIssuerとして示されており、エンドエンティティ200から送信される検証対象の公開鍵証明書は、検証対象認証局情報の例である。また、検証対象の過去の時刻を示す情報は検証対象時刻情報の例である。なお、以下の説明では、エンドエンティティ200は検証対象の公開鍵証明書を検証サーバ100に送信する例を説明するが、公開鍵証明書ではなく、検証対象の認証局を示す情報を検証対象認証局情報として送信するようにしてもよい。エンドエンティティ200は、端末装置の例である。また、以下、エンドエンティティをEEとも表記する。
【0012】
認証局CA300は、検証サーバ100やEE200に対して公開鍵証明書や失効リスト(CRL:Certificate Revocation List)を発行する。
【0013】
データ通信経路400は、検証サーバ100とエンドエンティティ200、認証局CA300間において、任意のデータの送受信を可能にする。
【0014】
ここで、公開鍵証明書とは、エンドエンティティ200が作成した公開鍵に対して信頼できる認証局が発行した証明書をいう。公開鍵は秘密鍵と対になっており、エンドエンティティが作成し、保有する。秘密鍵はエンドエンティティが秘密裏に保管し、公開鍵は本当にそのエンドエンティティの公開鍵であるかを信頼できる認証局に証明させ、認証局は証明書を発行する。この証明書を公開鍵証明書という。公開鍵証明書は暗号技術を用いて作成されるため、有効期限が存在する。その有効期限が過ぎると公開鍵証明書の有効性が失われる。
【0015】
認証局における公開鍵証明書の作成は、他の公開鍵証明書を使用して署名を付与することにより行われる。ある公開鍵証明書に対して署名を付与するために使用した公開鍵証明書をある公開鍵証明書の上位公開鍵証明書という。以下、上位公開鍵証明書を、上位証明書ともいう。
【0016】
また、ある公開鍵証明書について、上位証明書を順に辿った場合に、最上位となる証明書を信頼点の上位公開鍵証明書という。信頼点の上位公開鍵証明書は、エンドエンティティが信頼している公開鍵証明書である。以下、信頼点の上位公開鍵証明書を、信頼点の公開鍵証明書又は信頼点の証明書ともいう。また、信頼点をトラストポイントともいう。
【0017】
また、上位証明書とは逆に、ある公開鍵証明書を用いて署名を付与した公開鍵証明書をある公開鍵証明書の下位公開鍵証明書という。
【0018】
また、公開鍵証明書には有効期限が存在するため、有効期限の新旧により、複数の世代の公開鍵証明書が存在する。例えば、ある公開鍵証明書に対する1世代前の公開鍵証明書とは、ある公開鍵証明書に対して一つ前の有効期限を持つ公開鍵証明書を意味する。
【0019】
このように、公開鍵証明書は相互に対応づけられており、複数階層をもつ階層構造となっている。EE200によって検証を要求された検証対象の公開鍵証明書からEE200の信頼点の公開鍵証明書までの公開鍵証明書群を証明書パスという。検証サーバ100において公開鍵証明書の検証を行うときには検証対象の公開鍵証明書のみを検証するのではなく、EE200の信頼点の公開鍵証明書までをたどり、その全ての公開鍵証明書の検証が成功して初めて検証対象の公開鍵証明書の検証が成功となる。
【0020】
また、失効リストとは、秘密鍵が漏洩したなどの理由でエンドエンティティの公開鍵証明書が信頼できなくなり、その公開鍵証明書の有効性が失われた時に、有効性が失われた証明書をリストに加え、そのリストを認証局が発行する。これは公開鍵証明書のブラックリストのようなものである。以下、失効リストをCRLとも表記する。
【0021】
図2は、検証サーバ100の構成例を示すブロック図である。
検証サーバ100の機能は、公開鍵証明書抽出部101、有効性検証部102、通信部103、登録処理部104、証明書情報管理データベース(DB)105、CRL情報管理データベース(DB)106、CA情報管理データベース(DB)107、信頼点情報管理データベース(DB)108に大別される。
【0022】
証明書情報管理DB105は、図10のレコード例に示すように、登録ごとに一意に発行される公開鍵証明書の登録IDに対して、公開鍵証明書の有効期限開始日、有効期限終了日、上位証明書登録ID、1世代前の証明書登録ID、失効時刻、対象CRL登録ID及び公開鍵証明書の実体を管理する。登録IDは、以下、参照情報ともいう。図10に示すように、証明書情報管理DB105は、それぞれの公開鍵証明書を、有効期限とともに、同じ認証局CAから発行された上位証明書、1世代前の証明書と対応づけて記憶している。証明書情報管理DB105は、証明書管理部の例である。
【0023】
CRL情報管理DB106は、図11のレコード例に示すように、登録ごとに一意に発行されるCRLの登録IDに対して、CRLの更新日、次回更新日、上位証明書登録ID、1世代前のCRL登録ID、CRLの実体を管理する。CRL情報管理DB106は、失効リスト管理部の例である。
【0024】
CA情報管理DB107は、図12のレコード例に示すようように、認証局CAの名称、証明書情報管理DBが管理している当該認証局CAが所有する最新の証明書の登録ID、CRL情報管理DBが管理している当該認証局CAが発行した最新のCRLの登録IDを管理する。
【0025】
また、信頼点情報管理DB108は、信頼点の名称を管理する。
【0026】
公開鍵証明書抽出部101は、EE200から送信された検証対象の公開鍵証明書の発行元と同じ認証局CA300で発行された公開鍵証明書のうち最も新しい公開鍵証明書を抽出し、更に、EE200から指定された過去の時刻である指定時刻に合致する有効期限の公開鍵証明書を抽出する。また、公開鍵証明書抽出部101は、指定時刻に合致する有効期限の公開鍵証明書の上位証明書を信頼点の証明書に至るまで抽出する。公開鍵証明書抽出部101は、認証局参照情報検索部1011、最新証明書検索部1012、前世代証明書検索部1013、上位証明書検索部1014、指定時刻有効性比較部1015を有する。以下にて、各部の機能を説明する。
【0027】
認証局参照情報検索部1011は、公開鍵証明書やCRLのIssuerの項目からCA情報管理DB107で管理されている対象認証局CAが発行した最新の公開鍵証明書の登録IDを検索する。例えば、認証局参照情報検索部1011は、EE200から送信された検証対象の公開鍵証明書のIssuerの項目から当該検証対象の公開鍵証明書の発行元の認証局CA300を特定し、CA情報管理DB107を検索して当該認証局CA300の最新の公開鍵証明書の登録IDを得る。
【0028】
最新証明書検索部1012は、認証局参照情報検索部1011で検索された最新の公開鍵証明書の登録IDから証明書情報管理DBで管理されている対応する最新の公開鍵証明書のレコードを検索する。
【0029】
前世代証明書検索部1013は、証明書情報管理DB105のレコードにおける1世代前の公開鍵証明書登録IDから1世代前の公開鍵証明書のレコードを検索する。図10に示したように、証明書情報管理DB105は、それぞれの公開鍵証明書に対して1世代前の公開鍵証明書の登録IDを対応づけているため、前世代証明書検索部1013は、1世代前の公開鍵証明書の登録IDを参照することで、1世代前の公開鍵証明書のレコードを検索することができる。
【0030】
上位証明書検索部1014は、証明書情報管理DB105のレコードにおける上位証明書登録IDから上位公開鍵証明書のレコードを検索する。図10に示したように、証明書情報管理DB105は、それぞれの公開鍵証明書に対して上位証明書の登録IDを対応づけているため、上位証明書検索部1014は、上位証明書の登録IDを参照することで、上位証明書のレコードを検索することができる。
【0031】
指定時刻有効性比較部1015は、最新証明書検索部1012、前世代証明書検索部1013が検索した公開鍵証明書の有効期限とEE200から通知された指定時刻とを比較し、公開鍵証明書の有効期限と指定時刻とが合致するか否かを調べる。
【0032】
通信部103は、データ通信経路400を介して、EE200から検証対象の公開鍵証明書及び指定時刻を示す情報を受信し、また、検証結果をEE200に送信する。前述したように、通信部103は、公開鍵証明書ではなく、検証対象の認証局(検証対象の公開鍵証明書を発行した認証局)を示す情報(検証対象認証局情報)をEE200から受信するようにしてもよい。
【0033】
有効性検証部102は、公開鍵証明書抽出部101により抽出された公開鍵証明書が失効リストに示されているか否か、または失効時刻を参照して当該公開鍵証明書が失効しているか否かを検証して、公開鍵証明書の有効性を検証する。また、有効性検証部102は、公開鍵証明書抽出部101により信頼点の証明書が抽出された場合に、証明書パスを構築し、更に、構築した証明書パスの検証を行う。有効性検証部102は、CRL参照情報検索部1021、失効検証部1022、信頼点比較部1023、証明書パス構築部1024、証明書パス検証部1025を有する。以下にて、各部の機能を説明する。
CRL参照情報検索部1021は、証明書情報管理DB105の対象CRL登録ID又はCA情報管理DB107の最新CRL登録IDから、CRL情報管理DB106で管理されている対応するCRLのレコードを検索する。
【0034】
失効検証部1022は、CRL参照情報検索部1021により検索された失効リストから対応する公開鍵証明書が失効しているかどうかを検証し、また、証明書情報管理DB105のレコードに示された失効時刻の情報から指定時刻において公開鍵証明書が失効しているかどうかを検証する。
【0035】
信頼点比較部1023は、公開鍵証明書抽出部101が抽出した公開鍵証明書が信頼点の証明書か否かを検証する。
【0036】
証明書パス構築部1024は、信頼点比較部1023により信頼点の証明書が検証された場合に、証明書情報管理DB105で管理されている登録IDのリストから証明書情報管理DB105で管理されている証明書を取得し、証明書パスを構築する。証明書パス検証部1025は、証明書パス構築部1024により構築された証明書パスの有効性を検証する。
【0037】
登録処理部104は、EE200又は認証局CA300から送信された公開鍵証明書及びCRLの登録処理を行う。登録処理部104は、証明書・CRL登録有無判断部1041、データベース(DB)格納部1042、CRL検証部1043を有する。以下にて、各部の機能を説明する。
【0038】
証明書・CRL登録有無判断部1041は、EE200又は認証局CA300から受信した公開鍵証明書が証明書情報管理DB105に、EE200又は認証局CA300から受信したCRLがCRL情報管理DB106に登録されているかを調べる。
DB格納部1042は、証明書・CRL登録有無判断部1041により未登録と判断された公開鍵証明書、CRLを証明書情報管理DB105又はCRL情報管理DB106に格納する。
【0039】
CRL検証部1043は、CRLの登録の際に、登録の対象となるCRLの有効性を検証する。
【0040】
図3は、エンドエンティティ200の構成例を示すブロック図である。
署名生成部201は、電子文書データベース(DB)205で管理されている電子文書からデジタル署名を付加し、電子署名文書を生成する。署名検証部202は、電子署名文書を鍵保管データベース(DB)204で管理されている証明書を使用して署名検証を行う。通信部203は、データ通信経路400を介して、検証サーバ100、認証局CA300へデータの送受信を行う。鍵保管DB204は、エンドエンティティの秘密鍵や検証で使用する証明書を管理する。電子文書DB205は、署名対象となる電子文書を管理する。
【0041】
図4は、認証局CA300の構成例を示すブロック図である。
【0042】
証明書発行部301は、公開鍵証明書を発行する。CRL発行部302は、CRLを発行する。通信部303は、データ通信経路を介して、検証サーバ、エンドエンティティへデータの送受信を行う。証明書データベース(DB)304は、自局が発行した証明書を管理する。CRLデータベース(DB)305は、自局が発行したCRLを管理する。
【0043】
次に、上記構成の検証サーバ100の動作について説明する。
【0044】
本実施形態の検証サーバの動作は、パスの構築、検証および管理動作、公開鍵証明書の登録動作に分けられる。
【0045】
図5は、検証サーバで行われる証明書パス構築の動作を説明するためのフローチャート図である。
【0046】
通信部103はエンドエンティティ200の通信部203から送られてきた公開鍵証明書、指定時刻(検証対象となる過去の時刻)を受け取る(通信ステップ)。
【0047】
認証局参照情報検索部1011はエンドエンティティ200からの公開鍵証明書のIssuerをキーとしてCA情報管理DB107に管理されているCA名称から最新証明書登録IDを取得し、その最新証明書登録IDをキーに証明書情報管理DB105に管理されている当該認証局CA300が最も新しく発行した証明書のレコードを検索する。
【0048】
具体的には、EE200からの公開鍵証明書に示されたIssuerに一致する認証局CAがCA情報管理DB107に登録されていれば次の処理であるS102へ、登録されていなければエラー情報をエンドエンティティに返信し(ステップS101)、また、公開鍵証明書に示されたIssuerに一致する認証局CAがCA情報管理DB107に登録されている場合には、当該認証局CAのレコードの最新証明書登録IDと一致する登録IDのレコード(属性情報)を証明書情報管理DB105から検索する(S102)。
【0049】
なお、エンドエンティティから送られてきた証明書がトラストポイントを含む証明書パスの場合はステップS110へ進み、トラストポイントを含まない証明書パスの場合はそのパスの中で最上位の証明書を別のエンドエンティティ証明書と仮定し、当該証明書からトラストポイントまでの証明書パスを構築する。
【0050】
次に、前世代証明書検索部1013が、ステップS102で検索されたレコードのうち1世代前の証明書登録IDから1世代前の証明書のレコード(属性情報)を取得し、指定時刻有効性比較部1015が、1世代前の証明書のレコード(属性情報)に基づき、当該1世代前の証明書がEE200から通知された指定時刻に有効であるかどうか調べ、有効であれば更に1世代前の証明書のレコードを同様の手順にて取得する。1世代前の証明書が指定時刻に有効かどうかは、指定時刻と1世代前の証明書のレコードに示された有効期限開始日及び有効期限終了日とを比較して判断する。有効期限が指定時刻に合致する場合は、1世代前の証明書は指定時刻に有効と判定される。前世代証明書検索部1013及び指定時刻有効性比較部1015は、有効期限終了日が指定時刻がよりも前になる(有効期限が指定時刻に合致ない)公開鍵証明書に至るまで順に1世代前の公開鍵証明書を遡り、指定時刻に有効である公開鍵証明書のレコード(属性情報)を複数取得する(ステップS103)。以上、ステップS101〜S103の処理が公開鍵証明書抽出ステップに相当する。
【0051】
次に、CRL参照情報検索部1021が、ステップS103で取得された公開鍵証明書のレコード(属性情報)の対象CRL登録IDと一致するCRL登録IDを含むレコードをCRL情報管理DB106から取得する(ステップS104)。
【0052】
次に、失効検証部1022は、ステップS104で取得されたCRLからステップS103で検索された公開鍵証明書が失効しているかどうかを検証する(ステップS105)。公開鍵証明書が失効していなければ次の処理であるステップS106に進み、失効している場合はエンドエンティティ200にエラー情報を出力する。以上、ステップS104及びS105は有効性検証ステップに相当する。
【0053】
次に、上位証明書検索部1014は、ステップS103で取得された公開鍵証明書のレコード(属性情報)の上位証明書の登録ID(参照情報)から上位証明書のレコード(属性情報)を検索し、取得する(ステップS106、S107)。
【0054】
次に、失効検証部1022が、ステップS106及びS107で取得された上位証明書のレコード(属性情報)の失効時刻と指定時刻を比較し、上位証明書が指定時刻前に失効していればエラー情報をエンドエンティティに返し、失効していなければ次の処理であるステップS109に進む(ステップS108)。
【0055】
次に、信頼点比較部1023が、ステップS106及びS107で取得され、ステップS108において失効していないと判断された上位証明書が信頼点(トラストポイント)の証明書であるかを判断する。信頼点の証明書であれば、証明書パス構築部1024が今まで取得した登録IDに基づき証明書情報管理DBから対応する公開鍵証明書(指定時刻に有効な公開鍵証明書、当該証明書の上位証明書、当該証明書の信頼点の証明書)を取得し、信頼点に至るまでの証明書パスを構築する。信頼点の証明書でなければステップS106に戻り、信頼点に至るまでステップS106以降の処理を続け、順により上位の公開鍵証明書を取得する(ステップS109)。
【0056】
次に、証明書パス検証部1025は、ステップS109で作成された証明書パスが有効な証明書パスであるか否かを検証する。有効な証明書パスの場合は、その証明書パスを出力し、有効な証明書パスでない場合は、エラー情報をエンドエンティティ200に返す。証明書パスが有効か否かの判断は、例えば、証明書が改竄されていないこと、指定時刻が証明書に記載されている有効期限内であること、CRLに証明書が記載されていないこと、証明書パスがパスとして正しいものであること(下位証明書のIssuerと上位証明書のSubjectが一致していること)などの基準で判断する。
【0057】
図6は、検証サーバで行われる証明書登録の動作を説明するためのフローチャート図である。図6に示す証明書登録動作は、図5に示した証明書パス構築動作の前提となる動作であり、通常、証明書パス構築動作の前に実施される。
【0058】
通信部103は、エンドエンティティの通信部203から登録のために公開鍵証明書が送られてきた場合に、送られてきた公開証明書を受け取る。もしくは認証局CAの通信部303から認証局が発行した最新の公開鍵証明書を定期的に取得する。
【0059】
証明書・CRL登録有無判断部1041はエンドエンティティから送られてきた公開鍵証明書が証明書情報管理DB105で登録されているか否かを調べ、登録されていれば再度登録する必要がないため、登録ができない旨を通知する登録不可通知をエンドエンティティに返す(ステップS201)。登録されていなければ、その証明書を対象証明書とし、図5のステップS101〜S109の処理を行って、証明書パスを構築する。証明書パスの構築成功であれば次の処理であるステップS203に進み、構築失敗であれば登録不可情報をエンドエンティティに返す(ステップS202)。
【0060】
証明書パス検証部1025は、図5のステップS110と同様に、構築された証明書パスの検証を行う。証明書パスの検証が成功であれば次の処理であるステップS204に進み、検証が失敗であれば登録不可情報をエンドエンティティに返す(ステップS203)。
【0061】
DB格納部1042は前記検証に成功した証明書パスの登録対象証明書、および登録対象証明書についての図10に示すレコード(属性情報)、図12に示すレコード(属性情報)を証明書情報管理DB105、CA情報管理DB107に追加・更新を行う(ステップS204)。
【0062】
図7は、検証サーバで行われるCRL登録の動作を説明するためのフローチャート図である。図7に示すCRL登録動作は、図5に示した証明書パス構築動作の前提となる動作であり、通常、証明書パス構築動作の前に実施される。
【0063】
通信部103はエンドエンティティの通信部203から送られてきたCRLを受け取る。もしくは認証局CAの通信部303から認証局が発行した最新のCRLを定期的に取得する。
【0064】
証明書・CRL登録有無判断部1041はエンドエンティティからCRLが送られてきた場合に、送られてきたCRLがCRL情報管理DBで登録されているか否かを調べ(ステップS301)、登録されていれば再度登録する必要がないので登録不可通知をエンドエンティティに返す。登録されていなければ、認証局参照情報検索部1011が前記送られてきたCRLのIssuerをキーとして証明書情報管理DB105に管理されているそのIssuer(認証局CA)が最も新しく発行した証明書のレコード(属性情報)を検索する。次に、図5のステップS102〜S109の処理を行い、証明書パスを構築する。証明書パスの構築成功であれば次の処理であるステップS303に進み、構築失敗であれば登録不可通知をエンドエンティティに返す(ステップS302)。
【0065】
CRL検証部1043は前記登録対象CRLの検証を行う。CRLの検証が成功であれば次の処理であるステップS304に移行し、検証が失敗であれば登録不可情報をエンドエンティティに返す(ステップS303)。CRLの検証は、例えば、CRLが改竄されていないか等の基準により行う。
【0066】
DB格納部1042は前記検証に成功した登録対象CRL、および登録対象CRLの図11に示すレコード(属性情報)、図12に示すレコード(属性情報)をCRL情報管理DB106、CA情報管理DB107に追加・更新を行う(ステップS304)。
図8は、検証サーバで行われる証明書パス登録の動作を説明するためのフローチャート図である。図8に示す証明書パス登録動作は、図5に示した証明書パス構築動作の前提となる動作であり、通常、証明書パス構築動作の前に実施される。また、図6では、公開鍵証明書のみが送付された場合の処理を示していたが、図8では証明書パスが送付された場合の処理を示す。
【0067】
通信部103はエンドエンティティの通信部203もしくは認証局CAの通信部303から送られてきた証明書パスを受け取る。
【0068】
次に、証明書・CRL登録有無判断部1041が、送信されてきた証明書パスの最上位証明書を取得する(ステップS401)。
【0069】
証明書・CRL登録有無判断部1041は対象証明書が証明書情報管理DBに登録されているかの検索を行い、登録されていなければ次の処理に移行し、登録されていれば送信されてきた証明書パスにおける下位証明書を取得し、取得した下位証明書が証明書情報管理DB105に登録されているか否かの判断を行う(ステップS402、S403)。ここで、対象証明書とは、最上位証明書から順に辿っていった際に登録有無の判断の対象となる証明書を意味する。ステップS402及びステップS403は、最上位証明書から順に下位の証明書を辿り、それぞれの証明書が証明書情報管理DB105に登録されているか否かを判断する。
【0070】
証明書パス検証部1025は対象証明書の証明書パスの検証を行い、検証成功であれば次の処理であるステップS405へ移行し、検証失敗であれば登録不可通知をエンドエンティティに渡す(ステップS404)。
【0071】
前記検証に成功した対象証明書、および当該対象証明書の図10に示すレコード(属性情報)、図12に示すレコード(属性情報)を証明書情報管理DB105、CA情報管理DB107に追加・更新を行う(ステップS405)。
【0072】
前記対象証明書に下位の証明書が存在しなければ(ステップS406)、エンドエンティティに登録成功通知を送り、存在すれば下位証明書を取得し(ステップS402)、当該下位証明書に対してステップS403〜S406の処理を行う。
図9は、検証サーバで行われる信頼点の証明書登録の動作を説明するためのフローチャート図である。図9に示す信頼点の証明書登録動作は、図5に示した証明書パス構築動作の前提となる動作であり、通常、証明書パス構築動作の前に実施される。
通信部103はエンドエンティティの通信部203から送られてきたエンドエンティティの信頼点の証明書を受け取る(ステップS501)。
証明書パス検証部1025は信頼点の証明書の検証を行い、検証成功であれば次の処理であるステップS503に移行し、検証失敗であれば登録不可通知をエンドエンティティに渡す(ステップS502)。
DB格納部1042は信頼点の証明書を証明書情報管理DB105、信頼点情報管理DB108に追加する(S503)。その後、エンドエンティティに対して登録成功通知が送信される。
【0073】
このように、本実施の形態によれば、有効期限が一つ前の公開鍵証明書を順に遡りながら、過去の特定の時刻である指定時刻(検証対象時刻)に合致する公開鍵証明書を抽出し、抽出した公開鍵証明書が失効リストのいずれかに示されているか否かを判断して、抽出した公開鍵証明書が指定時刻時点で有効であるか否かを検証する。更に、抽出した公開鍵証明書の上位証明書を信頼点の証明書に至るまで検索して公開鍵証明書のパスを構築し、当該公開鍵証明書のパスが有効か否かを検証する。このため、検証サーバに登録しているドメインであれば証明書情報管理DBで管理している1世代前の証明書の参照情報(登録ID)を使用して、エンドエンティティが指定した過去の時刻の証明書の有効性を検証することができる。
【0074】
また、検証サーバに登録している証明書は、二重に登録しないため、証明書パスの構築処理が省略できることにより証明書検証の高速化が可能となる。また、検証サーバに証明書パスとして保管する場合、重複する証明書やCRLが多く存在してしまいデータ量が膨大になってしまうが、上位証明書や対象CRLは参照情報(登録ID)として保管することにより保管データ量の削減が実現できる。
【0075】
前述した実施の形態で、検証サーバ100は、コンピュータで実現できるものである。
【0076】
図示していないが、検証サーバ100は、プログラムを実行するCPU(Central Processing Unit)を備えている。
【0077】
例えば、CPUは、バスを介して、ROM(Read Only Memory)、RAM(Random Access Memory)、通信ボード、表示装置、K/B(キーボード)、マウス、FDD(Flexible Disk Drive)、CDD(コンパクトディスクドライブ)、磁気ディスク装置、光ディスク装置、プリンタ装置、スキャナ装置等と接続されている。
【0078】
RAMは、揮発性メモリの一例である。ROM、FDD、CDD、磁気ディスク装置、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
【0079】
前述した実施の形態の検証サーバ100が扱うデータや情報は、記憶装置あるいは記憶部に保存され、検証サーバ100の各部により、記録され読み出されるものである。
【0080】
また、通信ボードは、例えば、LAN、インターネット、或いはISDN等のWAN(ワイドエリアネットワーク)に接続されている。
【0081】
磁気ディスク装置には、オペレーティングシステム(OS)、ウィンドウシステム、プログラム群、ファイル群(データベース)が記憶されている。
【0082】
プログラム群は、CPU、OS、ウィンドウシステムにより実行される。
【0083】
上記検証サーバ100の各部は、一部或いはすべてコンピュータで動作可能なプログラムにより構成しても構わない。或いは、ROMに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
【0084】
上記プログラム群には、実施の形態の説明において「〜部」として説明した処理をCPUに実行させるプログラムが記憶される。これらのプログラムは、例えば、C言語やHTMLやSGMLやXMLなどのコンピュータ言語により作成される。
【0085】
また、上記プログラムは、磁気ディスク装置、FD(Flexible Disk)、光ディスク、CD(コンパクトディスク)、MD(ミニディスク)、DVD(Digital Versatile Disk)等のその他の記録媒体に記憶され、CPUにより読み出され実行される。
【0086】
ここで、実施の形態1に示した検証サーバの特徴を以下に示す。
【0087】
実施の形態1に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書と信頼できる証明書までの上位証明書、それら証明書の失効情報(Certificate Revocation List:CRL)を含む証明書パスの検証要求に応じて当該証明書パスの証明書の失効チェックを行う失効検証手段と、当該CRLの有効性を検証するCRL検証手段と、当該証明書パスを検証する証明書パス検証手段とを備えたことを特徴とする。
【0088】
実施の形態1に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書と信頼できる証明書までの上位証明書を含む証明書パスの検証要求に応じてデータ通信経路を介して認証局CAからCRLを取得する検証情報取得手段と、前記失効検証手段、CRL検証手段、証明書パス検証手段とを備えたことを特徴とする。
【0089】
実施の形態1に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書の検証要求に応じてデータ通信経路を介して認証局CAから当該公開鍵証明書の上位に位置する証明書を取得する検証情報取得手段、取得した証明書から証明書パスを構築する証明書パス構築手段と、前記失効検証手段、CRL検証手段、証明書パス検証手段とを備えたことを特徴とする。
【0090】
実施の形態1に示した検証サーバは、検証処理が行われ検証に成功した証明書の発行認証局CAの情報をCA情報管理DBに、検証に成功した証明書パスを証明書情報管理DBに、有効性が確認できたCRLをCRL情報管理DBに格納する検証情報DB格納手段を備えたことを特徴とする。
【0091】
実施の形態1に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書と信頼できる証明書までの上位証明書を含む証明書パスの検証要求に応じて当該証明書に対応したCRLをCRL情報管理DBから取得するCRL参照情報検索手段と、前記失効検証手段、証明書パス構築手段、CRL検証手段、証明書パス検証手段とを備えたことを特徴とする。
【0092】
実施の形態1に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書の検証要求に応じてその上位に位置する証明書を取得するために検索する上位証明書検索手段と前記CRL参照情報検索手段、失効検証手段、証明書パス構築手段、CRL検証手段、証明書パス検証手段とを備えたことを特徴とする。
【0093】
実施の形態1に示した検証サーバは、公開鍵証明書を検証しようとするエンドエンティティからデータ通信経路を介して送られてきた当該公開鍵証明書とその公開鍵証明書が有効性を証明したい指定時刻とを含む検証要求に応じて当該公開鍵証明書の上位に位置する公開鍵証明書を検索する前記上位証明書検索手段とその上位証明書の前世代の公開鍵証明書を証明書情報管理DBから検索する前世代証明書検索手段、その前世代の公開鍵証明書が指定時刻に有効であるかを検証する指定時刻有効性比較手段と前記CRL参照情報検索手段、失効検証手段、証明書パス構築手段、CRL検証手段、証明書パス検証手段とを備えたことを特徴とする。
【図面の簡単な説明】
【0094】
【図1】実施の形態1に係る証明書パス管理システムの全体構成例を示す図。
【図2】実施の形態1に係る検証サーバの構成例を示す図。
【図3】実施の形態1に係るエンドエンティティの構成例を示す図。
【図4】実施の形態1に係る認証局の構成例を示す図。
【図5】実施の形態1に係る証明書パス構築動作の例を示すフローチャート図。
【図6】実施の形態1に係る証明書登録動作の例を示すフローチャート図。
【図7】実施の形態1に係るCRL登録動作の例を示すフローチャート図。
【図8】実施の形態1に係る証明書パス登録動作の例を示すフローチャート図。
【図9】実施の形態1に係る信頼点の登録動作の例を示すフローチャート図。
【図10】実施の形態1に係る証明書情報管理DBのレコード例を示す図。
【図11】実施の形態1に係るCRL情報管理DBのレコード例を示す。
【図12】図実施の形態1に係るCA情報管理DBのレコード例を示す図。
【符号の説明】
【0095】
100 検証サーバ、101 公開鍵証明書抽出部、102 有効性検証部、103 通信部、104 登録処理部、105 証明書情報管理データベース、106 CRL情報管理データベース、107 CA情報管理データベース、108 信頼点情報管理データベース、200 エンドエンティティ、201 署名生成部、202 署名検証部、203 通信部、204 鍵保管データベース、205 電子文書データベース、300 認証局、301 証明書発行部、302 CRL発行部、303 通信部、304 証明書データベース、305 CRLデータベース、1011 認証局参照情報検索部、1012 最新証明書検索部、1013 前世代証明書検索部、1014 上位証明書検索部、1015 指定時刻有効性比較部、1021 CRL参照情報検索部、1022 失効検証部、1023 信頼点比較部、1024 証明書パス構築部、1025 証明書パス検証部。

【特許請求の範囲】
【請求項1】
公開鍵を作成する端末装置と、該端末装置が作成した公開鍵に対する公開鍵証明書を有効期限を設定して発行するとともに失効した公開鍵証明書を示す失効リストを発行する少なくとも一つ以上の認証局と通信可能であり、前記端末装置からの検証要求に基づいて公開鍵証明書の検証を行う公開鍵証明書検証装置であって、
発行元の認証局ごとに、有効期限とともに前記公開鍵証明書を記憶する証明書管理部と、
前記失効リストを記憶する失効リスト管理部と、
検証要求として、検証対象となる認証局を検証対象認証局として示す検証対象認証局情報と、検証対象となる過去の時刻を検証対象時刻として示す検証対象時刻情報とを前記端末装置より受信する通信部と、
前記証明書管理部に記憶されている公開鍵証明書の中から、前記検証対象認証局により発行された公開鍵証明書であって有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出する公開鍵証明書抽出部と、
前記公開鍵証明書抽出部により抽出された抽出公開鍵証明書が失効リスト管理部に記憶されている失効リストのいずれかに示されているか否かを判断して、前記抽出公開鍵証明書が検証対象時刻時点で有効であるか否かを検証する有効性検証部とを有することを特徴とする公開鍵証明書検証装置。
【請求項2】
前記証明書管理部は、
それぞれの公開鍵証明書を、同じ認証局から発行された一つ前の有効期限の公開鍵証明書と対応づけて記憶しており、
前記公開鍵証明書抽出部は、
検証対象認証局により発行された公開鍵証明書について、順に一つ前の有効期限の公開鍵証明書に遡って、有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出することを特徴とする請求項1に記載の公開鍵証明書検証装置。
【請求項3】
前記通信部は、前記検証対象認証局情報として、検証対象認証局から発行された公開鍵証明書を前記端末装置から受信することを特徴とする請求項1に記載の公開鍵証明書検証装置。
【請求項4】
前記証明書管理部は、
公開鍵証明書をそれぞれの公開鍵証明書の発行に用いられた上位公開鍵証明書と対応づけて記憶して、複数階層の階層構造にて公開鍵証明書を記憶し、
前記公開鍵証明書抽出部は、
前記有効性検証部により検証対象時刻時点で抽出公開鍵証明書が有効であると判断された場合に、前記証明書管理部に記憶されている公開鍵証明書の中から前記抽出公開鍵証明書の上位公開鍵証明書を抽出し、以降、抽出した上位公開鍵証明書が前記有効性検証部により検証対象時刻時点で有効であると判断され続ける限り、特定の階層の上位公開鍵証明書に至るまで抽出した上位公開鍵証明書の上位公開鍵証明書を抽出し、
前記有効性検証部は、
前記公開鍵証明書抽出部により上位公開鍵証明書が抽出される度に、前記公開鍵証明書抽出部により抽出された上位公開鍵証明書が検証対象時刻時点で有効であるか否かを検証し、前記公開鍵証明書抽出部により特定の階層の上位公開鍵証明書が抽出され、特定の階層の上位公開鍵証明書が検証対象時刻時点で有効であると判断した場合に、特定の階層の上位公開鍵証明書に至るまでに前記公開鍵証明書抽出部により抽出された公開鍵証明書のパスを構築し、構築した公開鍵証明書のパスが有効であるか否かを検証することを特徴とする請求項1に記載の公開鍵証明書検証装置。
【請求項5】
前記公開鍵証明書抽出部は、
前記端末装置が信頼する認証局によって発行された信頼点の上位公開鍵証明書に至るまで、抽出した上位公開鍵証明書の上位公開鍵証明書を抽出し、
前記有効性検証部は、
前記公開鍵証明書抽出部により信頼点の上位公開鍵証明書が抽出され、信頼点の上位公開鍵証明書が検証対象時刻時点で有効であると判断した場合に、信頼点の上位公開鍵証明書に至るまでに前記公開鍵証明書抽出部により抽出された公開鍵証明書のパスを構築し、構築した公開鍵証明書のパスが有効であるか否かを検証することを特徴とする請求項4に記載の公開鍵証明書検証装置。
【請求項6】
公開鍵を作成する端末装置と、該端末装置が作成した公開鍵に対する公開鍵証明書を有効期限を設定して発行するとともに失効した公開鍵証明書を示す失効リストを発行する少なくとも一つ以上の認証局と通信可能であり、
認証局から発行された公開鍵証明書を発行元の認証局ごとに有効期限とともに記憶し、認証局から発行された失効リストを記憶し、
前記端末装置からの検証要求に基づいて公開鍵証明書の検証を行う公開鍵証明書検証方法であって、
検証要求として、検証対象となる認証局を検証対象認証局として示す検証対象認証局情報と、検証対象となる過去の時刻を検証対象時刻として示す検証対象時刻情報とを前記端末装置より受信する通信ステップと、
記憶されている公開鍵証明書の中から、前記検証対象認証局により発行された公開鍵証明書であって有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出する公開鍵証明書抽出ステップと、
前記公開鍵証明書抽出ステップにより抽出された抽出公開鍵証明書が記憶されている失効リストのいずれかに示されているか否かを判断して、前記抽出公開鍵証明書が検証対象時刻時点で有効であるか否かを検証する有効性検証ステップとを有することを特徴とする公開鍵証明書検証方法。
【請求項7】
公開鍵を作成する端末装置と、該端末装置が作成した公開鍵に対する公開鍵証明書を有効期限を設定して発行するとともに失効した公開鍵証明書を示す失効リストを発行する少なくとも一つ以上の認証局と通信可能であり、認証局から発行された公開鍵証明書を発行元の認証局ごとに有効期限とともに記憶可能であり、認証局から発行された失効リストを記憶可能なコンピュータに、
前記端末装置からの検証要求に基づいて公開鍵証明書の検証を実行させるプログラムであって、
検証要求として、検証対象となる認証局を検証対象認証局として示す検証対象認証局情報と、検証対象となる過去の時刻を検証対象時刻として示す検証対象時刻情報とを前記端末装置より受信する通信処理と、
記憶されている公開鍵証明書の中から、前記検証対象認証局により発行された公開鍵証明書であって有効期限が検証要求対象時刻に合致する公開鍵証明書を抽出する公開鍵証明書抽出処理と、
前記公開鍵証明書抽出処理により抽出された抽出公開鍵証明書が記憶されている失効リストのいずれかに示されているか否かを判断して、前記抽出公開鍵証明書が検証対象時刻時点で有効であるか否かを検証する有効性検証処理とをコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図7】
image rotate


【公開番号】特開2006−74425(P2006−74425A)
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願番号】特願2004−255190(P2004−255190)
【出願日】平成16年9月2日(2004.9.2)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】