(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023134108
(43)【公開日】2023-09-27
(54)【発明の名称】証明書検証装置、証明書検証方法、プログラム、及び証明書検証システム
(51)【国際特許分類】
H04L 9/32 20060101AFI20230920BHJP
【FI】
H04L9/32 200D
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022039464
(22)【出願日】2022-03-14
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】鈴木 茜
(72)【発明者】
【氏名】安細 康介
(72)【発明者】
【氏名】森尾 智治
(72)【発明者】
【氏名】小川 政美
(72)【発明者】
【氏名】藤城 孝宏
(57)【要約】 (修正有)
【課題】複数のトラストリストが存在する場合であっても、信頼性の高いトラストアンカに基づき証明書の検証を行う証明書検証装置、証明書検証方法、プログラム及び証明書検証システムを提供する。
【解決手段】証明書検証システム1において、証明書検証サーバ50は、複数のTL公開サイトから受信した複数のトラストリスト(TL)の情報に基づき、複数のTLの間の連結関係及び複数のTLの有効性の情報と、連結関係及び有効性が確認されたTLに登録されている認証局の情報とを夫々取得してメモリに記憶し、複数の検証依頼者端末から、検証対象の証明書を含む検証要求を受信した場合に、記憶した情報から特定した認証局の証明書の情報に基づき、検証対象の証明書が示す認証局と、特定した認証局との間の連結関係及び各認証局の証明書の有効性を検証し、検証した結果を検証依頼者端末に送信する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサ及びメモリを備え、前記プロセッサが、
第1の情報処理装置から受信した複数のトラストリストの情報に基づき、前記複数のトラストリストの間の連結関係及び前記複数のトラストリストの有効性の情報と、前記連結関係及び有効性が確認された前記トラストリストに登録されている認証局の情報とをそれぞれ取得して前記メモリに記憶するトラストリスト取得処理を実行するストア管理処理と、
第2の情報処理装置から、検証対象の証明書を含む検証要求を受信した場合に、前記メモリに記憶した情報から特定した認証局の証明書の情報に基づき、前記検証対象の証明書が示す認証局と前記特定した認証局との間の連結関係及び、各前記認証局の証明書の有効性を検証するトラストリスト検証処理を実行する証明書検証共通処理と、
前記検証した結果を前記第2の情報処理装置に送信する検証結果応答処理と
を実行する、証明書検証装置。
【請求項2】
前記プロセッサは、前記証明書検証共通処理において、
前記受信した前記検証要求に、検証者が信用する証明書であるトラストアンカが付帯しているか否かを判定し、前記検証要求に前記トラストアンカが付帯していない場合には、前記トラストリスト検証処理を実行し、
前記検証要求に前記トラストアンカが付帯している場合には、前記検証対象の証明書及び前記トラストアンカに基づき、前記検証対象の証明書により特定される認証局と前記トラストアンカが示す認証局との間の連結関係及び、各前記認証局の証明書の有効性を検証するブリッジモデル検証処理を実行し、検証した結果を前記第2の情報処理装置に送信する、
請求項1に記載の証明書検証装置。
【請求項3】
前記プロセッサは、
前記ストア管理処理において、予め設定されたタイミングで繰り返し、前記トラストリスト取得処理を実行する、請求項1に記載の証明書検証装置。
【請求項4】
前記プロセッサは、
前記ストア管理処理において、前記連結関係及び有効性が確認されたトラストリストに登録されている認証局の証明書を前記メモリに記憶し、
前記証明書検証共通処理において、前記受信した検証要求にトラストアンカが付帯していない場合には、前記メモリに記憶した、前記連結関係及び有効性が確認されたトラストリストに登録されている認証局の証明書の情報に基づき、前記トラストリスト検証処理を実行する、
請求項2に記載の証明書検証装置。
【請求項5】
入力装置をさらに備え、
前記プロセッサは、
ユーザから、前記検証対象の証明書が対応している検証方法の入力を前記入力装置により受け付け、
前記証明書検証共通処理において、前記検証要求を受信した場合に、前記入力された検証方法に前記トラストリストによる証明書の検証方法が指定されているか否かを判定し、前記入力された検証方法に前記トラストリストによる証明書の検証方法が指定されている場合にのみ、前記トラストリスト検証処理を実行する、
請求項1に記載の証明書検証装置。
【請求項6】
前記プロセッサは、
前記トラストリスト検証処理を実行する際に前記連結関係及び前記有効性を検証した認証局に係るトラストリストの品質を示す情報を、前記メモリに記憶した情報に基づき作成するTL方式検証追加処理を実行し、
前記検証結果応答処理において、前記作成した情報を含んだ、前記検証した結果を、前記第2の情報処理装置に送信する、
請求項1に記載の証明書検証装置。
【請求項7】
プロセッサ及びメモリを備える情報処理装置において前記プロセッサが、
他の第1の情報処理装置から受信した複数のトラストリストの情報に基づき、前記複数のトラストリストの間の連結関係及び前記複数のトラストリストの有効性の情報と、前記連結関係及び有効性が確認された前記トラストリストに登録されている認証局の情報とをそれぞれ取得して前記メモリに記憶するトラストリスト取得処理を実行するストア管理処理と、
他の第2の情報処理装置から、検証対象の証明書を含む検証要求を受信した場合に、前記メモリに記憶した情報から特定した認証局の証明書の情報に基づき、前記検証対象の証明書が示す認証局と前記特定した認証局との間の連結関係及び、各前記認証局の証明書の有効性を検証するトラストリスト検証処理を実行する証明書検証共通処理と、
前記検証した結果を前記第2の情報処理装置に送信する検証結果応答処理と
を実行する証明書検証方法。
【請求項8】
前記プロセッサが、
前記証明書検証共通処理において、前記受信した前記検証要求に、検証者が信用する証明書であるトラストアンカが付帯しているか否かを判定し、前記検証要求に前記トラストアンカが付帯していない場合には、前記トラストリスト検証処理を実行し、
前記検証要求に前記トラストアンカが付帯している場合には、前記検証対象の証明書及び前記トラストアンカに基づき、前記検証対象の証明書により特定される認証局と前記トラストアンカが示す認証局との間の連結関係及び、各前記認証局の証明書の有効性を検証するブリッジモデル検証処理を実行し、検証した結果を前記情報処理装置に送信する、
請求項7に記載の証明書検証方法。
【請求項9】
前記プロセッサが、
前記ストア管理処理において、予め設定されたタイミングで繰り返し、前記トラストリスト取得処理を実行する、請求項7に記載の証明書検証方法。
【請求項10】
前記プロセッサが、
前記ストア管理処理において、前記連結関係及び有効性が確認されたトラストリストに登録されている認証局の証明書を前記メモリに記憶し、
前記証明書検証共通処理において、前記受信した検証要求にトラストアンカが付帯していない場合には、前記メモリに記憶した、前記連結関係及び有効性が確認されたトラストリストに登録されている認証局の証明書の情報に基づき、前記トラストリスト検証処理を実行する、
請求項8に記載の証明書検証方法。
【請求項11】
前記情報処理装置は入力装置をさらに備え、
前記プロセッサが、
ユーザから、前記検証対象の証明書が対応している検証方法の入力を前記入力装置により受け付け、
前記証明書検証共通処理において、前記検証要求を受信した場合に、前記入力された検証方法に前記トラストリストによる証明書の検証方法が指定されているか否かを判定し、前記入力された検証方法に前記トラストリストによる証明書の検証方法が指定されている
場合にのみ、前記トラストリスト検証処理を実行する、
請求項7に記載の証明書検証方法。
【請求項12】
前記プロセッサが、
前記トラストリスト検証処理を実行する際に、前記連結関係及び前記有効性を検証した認証局に係るトラストリストの品質を示す情報を、前記メモリに記憶した情報に基づき作成するTL方式検証追加処理を実行し、
前記検証結果応答処理において、前記作成した情報を含んだ、前記検証した結果を、前記第2の情報処理装置に送信する、
請求項7に記載の証明書検証方法。
【請求項13】
プロセッサ及びメモリを備える情報処理装置の前記プロセッサに、
他の第1の情報処理装置から受信した複数のトラストリストの情報に基づき、前記複数のトラストリストの間の連結関係及び前記複数のトラストリストの有効性の情報と、前記連結関係及び有効性が確認された前記トラストリストに登録されている認証局の情報とをそれぞれ取得して前記メモリに記憶するトラストリスト取得処理を実行するストア管理処理と、
他の第2の情報処理装置から、検証対象の証明書を含む検証要求を受信した場合に、前記メモリに記憶した情報から特定した認証局の証明書の情報に基づき、前記検証対象の証明書が示す認証局と前記特定した認証局との間の連結関係及び、各前記認証局の証明書の有効性を検証するトラストリスト検証処理を実行する証明書検証共通処理と、
前記検証した結果を前記他の第2の情報処理装置に送信する検証結果応答処理と
を実行させるプログラム。
【請求項14】
複数のトラストリストの情報を送信する第1の情報処理装置と、
検証対象の証明書を含む検証要求を送信する第2の情報処理装置と、
プロセッサ及びメモリを備え、前記プロセッサが、
前記第1の情報処理装置から受信した複数のトラストリストの情報に基づき、前記複数のトラストリストの間の連結関係及び前記複数のトラストリストの有効性の情報と、前記連結関係及び有効性が確認された前記トラストリストに登録されている認証局の情報とをそれぞれ取得して前記メモリに記憶するトラストリスト取得処理を実行するストア管理処理と、
前記第2の情報処理装置から、検証対象の証明書を含む検証要求を受信した場合に、前記メモリに記憶した情報から特定した認証局の証明書の情報に基づき、前記検証対象の証明書が示す認証局と前記特定した認証局との間の連結関係及び、各前記認証局の証明書の有効性を検証するトラストリスト検証処理を実行する証明書検証共通処理と、
前記検証した結果を前記第2の情報処理装置に送信する検証結果応答処理とを実行する証明書検証装置と
を含んで構成される証明書検証システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、証明書検証装置、証明書検証方法、プログラム、及び証明書検証システムに関する。
【背景技術】
【0002】
電子証明書は、電子申請等の電子契約に幅広く用いられるようになっている。これに伴い、電子証明書を管理する認証局も多数存在するようになっている。そこで、複数の認証局の間での相互認証を行うためのモデルが提案されている。このような認証局の相互認証の方法の代表的なものとして、例えば、ブリッジモデル、トラストリスト(ないしトラステッドリスト)(Trusted Lists)が知られている。
【0003】
トラストリストを用いた相互認証は、ブリッジモデルによる相互認証と比べると、認証局間の認証関係を構築し各証明書を検証する(認証パスの構築及び検証)ための処理負荷が小さいというメリットがある。一方、トラストリストを用いた相互認証では、トラストリスト間の関係の構築及び検証といった、トラストリスト特有の処理が発生する。また、トラストリストでは、証明書(認証局)の信頼の起点であるトラストアンカの管理がブリッジモデルよりも煩雑となる場合がある。特に、トラストリストが複数の国又は地域にまたがって利用されると、それらの管理又は処理の負荷は大きくなることが予想される。
【0004】
この点、非特許文献1、2には、トラストリストを用いたモデル(TLモデル)において、EU加盟国内で相互に証明書の相互認証を行う方法が開示されている。
【0005】
また、特許文献1には、信頼点証明書管理サーバの内部に情報端末の信頼点が発行する公開鍵証明書のデータベースを持ち、情報端末から必要な公開鍵証明書の送付要求を受付けたときは、上記データベース内を検索し、検索の結果当該公開鍵証明書を発見したときは情報端末にその公開鍵証明書を送付することが開示されている。また、特許文献2には、複数の暗号化システムに利用できるデジタル証明書を発行する方法について開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006-148454号公報
【特許文献2】特開2020-010396号公報
【非特許文献】
【0007】
【非特許文献1】"ETSI TS 119 172-4 V1.1.1"、[online]、[令和4年(2022年)2月25日検索]、インターネット、<URL:https://standards.globalspec.com/std/14387063/ts-119-172-4>
【非特許文献2】"ETSI TS 119 615 V1.1.1"、[online]、[令和4年(2022年)2月25日検索]、インターネット、<URL:https://www.etsi.org/deliver/etsi_ts/119600_119699/119615/01.01.01_60/ts_119615v010101p.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1、2には、EU加盟国内以外の地域との間でトラストリストを連携する場合については考慮されていない。
【0009】
また、特許文献1は、証明書を集約して管理するものであるが、それらの間の信頼関係を確認することはできない。また、特許文献2には、複数の暗号アルゴリズムと署名値を記載した証明書を発行し、検証者が対応可能なアルゴリズムで署名検証する方式が開示されているが、検証方式については証明書の記載事項に埋め込むことができないため、証明書の方式を判定する場合には適用できない。また、市場においてブリッジモデル及びトラストリストが共存する場合、証明書の検証者は、検証対象の証明書を参照するだけでは、その証明書がブリッジモデル及びトラストリストのいずれを用いて検証をすべきなのかを判断することもできない。
【0010】
本発明は、このような現状に鑑みてなされたものであり、その目的は、複数のトラストリストが存在する場合であっても信頼性の高いトラストアンカに基づき証明書の検証を行うことが可能な証明書検証装置、証明書検証方法、プログラム、及び証明書検証システムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するための本発明の一つは、プロセッサ及びメモリを備え、前記プロセッサが、第1の情報処理装置から受信した複数のトラストリストの情報に基づき、前記複数のトラストリストの間の連結関係及び前記複数のトラストリストの有効性の情報と、前記連結関係及び有効性が確認された前記トラストリストに登録されている認証局の情報とをそれぞれ取得して前記メモリに記憶するトラストリスト取得処理を実行するストア管理処理と、第2の情報処理装置から、検証対象の証明書を含む検証要求を受信した場合に、前記メモリに記憶した情報から特定した認証局の証明書の情報に基づき、前記検証対象の証明書が示す認証局と前記特定した認証局との間の連結関係及び、各前記認証局の証明書の有効性を検証するトラストリスト検証処理を実行する証明書検証共通処理と、前記検証した結果を前記第2の情報処理装置に送信する検証結果応答処理とを実行する、証明書検証装置、である。
【発明の効果】
【0012】
本発明によれば、複数のトラストリストが存在する場合であっても信頼性の高いトラストアンカに基づき証明書の検証を行うことができる。
上記した以外の構成及び効果等は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0013】
【
図1】本実施形態に係る証明書検証システムの構成の一例を示す図である。
【
図2】本実施形態の証明書検証システムにおける、ブリッジモデル及びTLモデルの構成の一例を示す図である。
【
図5】TLパス管理テーブルの一例を示す図である。
【
図9】証明書検証システムにおける各情報処理装置が備えるハードウェアの一例を説明する図である。
【
図10】証明書検証システムで行われる処理の概要を説明する図である。
【
図11】TL取得処理の一例を説明するフロー図である。
【
図12】TLパス構築検証処理の詳細を説明するフロー図である。
【
図13】証明書検証処理の一例を説明するフロー図である。
【
図14】OCSPリクエストのデータ形式の一例を示す図である。
【
図15】OCSPレスポンスのデータ形式の一例を示す図である。
【
図17】構築及び検証処理のうち、認証パスの構築に係る処理を説明するフロー図である。
【
図18】構築及び検証処理のうち、認証パスの検証(証明書の有効性の検証)に係る処理を説明するフロー図である。
【発明を実施するための形態】
【0014】
図1は、本実施形態に係る証明書検証システム1の構成の一例を示す図である。証明書検証システム1は、認証局が発行した電子証明書(以下、単に証明書という)を添付した電子文書等のデータを送受信するユーザが利用する複数の検証依頼者端末10(10a,・・・,10n)(第2の情報処理装置)と、証明書を発行する認証局が管理する1又は複数の認証局サーバ20(30a,・・・,30n)と、相互に信頼関係を構築し相互認証した認証局のリストを管理したデータであるトラストリスト(トラステッドリスト)(Trusted List:TL。以下、TLという。)の情報を公開している、複数のTL公開サイト
30(30a,・・・,30n)(第1の情報処理装置)と、TLを検証するための公開鍵証明書を公開している、複数のTL署名用証明書公開サイト40(40a,・・・,40n)と、後述する証明書検証サーバ50(証明書検証装置)の各情報処理装置を含んで構成されている。
【0015】
検証依頼者端末10、認証局サーバ20、TL公開サイト30、TL署名用証明書公開サイト40、及び証明書検証サーバ50の間は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)、又は専用線等の有線又は無線の通信
ネットワーク5により通信可能となっている。
【0016】
証明書検証システム1では、各国又は各地域の管理者により信頼された認証局のリストであるTLと、2つの認証局同士で交わされた相互認証証明書のネットワークであるブリッジモデルとによって、各認証局の信頼性(認証局間の連結関係及び各認証局の証明書の有効性)が確保されている。
【0017】
図2は、本実施形態の証明書検証システム1における、ブリッジモデル及び、TLによるモデル(以下、TLモデルという)の構成の一例を示す図である。
【0018】
まず、ブリッジモデル500では、認証局CA1と認証局BCAの間、認証局BCAと認証局CA2の間、及び、認証局CA2と認証局CA3の間での相互認証が、相互認証証明書501をそれぞれ取り交わすことにより行われている。相手認証局から自認証局に発行された相互認証証明書と、自認証局が相手認証局へ発行した相互認証証明書をペアの形で格納したものを相互認証証明書ペアと呼ぶ。相互認証証明書ペアはディレクトリーサーバで公開される。なお、認証局CA3は、直属の下位の認証局CA3a、認証局CA3bを直接管理している。また、各認証局(下位の認証局を含む)は、EE証明書503(EE: End Entity)をユーザ(EE)に発行する。
【0019】
TLモデル600は、1又は複数の国又は地域の認証局を管理している。すなわち、TLモデル600は、ブリッジモデル500における認証局CA2及び認証局CA3bの情報と、ブリッジモデル500の対象外の認証局CA4の情報を少なくとも登録した第1TL610と、地域内の1又は複数の国の情報を記憶した第2TL620と、当該地域内の各国の認証局CA5、CA6の情報をそれぞれ記憶した第3TL630とを含んで含んでいる。各TLは、他のTLをポインタ640により特定する。各認証局は、EE証明書650をユーザ(EE)に発行する。
ここで、TLのデータ構成を説明する。
【0020】
(TL)
図3は、TLのデータ構成の一部を抽出した例を示す図である。各TL300は、他のTLへのポインタ301と、署名304とを含む。ポインタ301は、自身のTL又は自身のTLと信頼関係を有する他のTLを検証するための公開鍵証明書302と、当該他のTLの所在303(本実施形態ではURL)とからなる組み合わせを、1又は複数有する。
【0021】
同図の例では、起点の「TL C1」は、所在303により「TL A1」を特定し、「TL C1」の「TL A1」に関する公開鍵証明書302から抽出される公開鍵により「TL A1」の署名304を検証する。「TL A1」は、所在303により「TL
C1」、「TL C2」、「TL C3」を特定し、「TL A1」の「TL C1」、「TL C2」、「TL C3」に関する公開鍵証明書から抽出される公開鍵により「TL C1」、「TL C2」、「TL C3」の署名304をそれぞれ検証する。
【0022】
次に、
図1に示すように、証明書検証サーバ50は、検証要求受付部51、検証結果応答部52、証明書検証共通処理部53、TL方式検証追加処理部54、及びストア管理部57の各機能部(プログラム)を備える。
【0023】
検証要求受付部51は、検証依頼者端末10から、検証対象の証明書を含む検証要求を受信する。
【0024】
検証結果応答部52は、検証要求に応答データである検証応答を、検証依頼者端末10に送信する。
【0025】
ストア管理部57は、TL公開サイト30から受信した複数のトラストリストの情報に基づき、複数のトラストリストの間の連結関係及び複数のトラストリストの有効性の情報(TLのパスの構築及びその検証)と、その連結関係及び有効性が確認されたトラストリストに登録されている認証局の証明書の情報とをそれぞれ取得して、TL管理ストア200及び証明書ストア100に記憶する。
【0026】
なお、ストア管理部57は、証明書ストア管理部55及びTLストア管理部56を備える。証明書ストア管理部55は、認証局の証明書の解析し、証明書に関わる情報管理に関する処理を行う。TLストア管理部56は、トラストリストの有効性に関する処理や連結性に関する処理(TLの署名検証やTL間のパス構築等)を行う。
【0027】
証明書検証共通処理部53は、検証依頼者端末10から、検証対象の証明書を含む検証要求を受信した場合に、ストア管理部57で記憶したTL管理ストア200及び証明書ストア100から特定した認証局の証明書の情報に基づき、検証対象の証明書が示す認証局と上記特定した認証局との間の連結関係及び、各認証局の証明書の有効性を検証するトラストリスト検証処理を実行する。
【0028】
本実施形態では、証明書検証共通処理部53は、検証要求にブリッジモデルのトラストアンカが付帯していない場合には、証明書ストア100に登録されている認証局の証明書(証明書検証サーバ50が独自に設定したトランスアンカ)の情報に基づき、トラストリスト検証処理を実行する。
【0029】
TL方式検証追加処理部54は、トラストリスト検証処理の際に認証パスの構築及び検証を行った認証局に係るトラストリストの品質を示す情報を、TL管理ストア200に基づき作成する。
【0030】
また、証明書検証サーバ50は、証明書ストア100、TL管理ストア200、及び更新設定値情報270の各データベースを記憶している。
【0031】
TL管理ストア200は、TL管理テーブル210、TLパス管理テーブル230、及びTSP管理テーブル250を記憶している。
【0032】
(TL管理テーブル)
図4は、TL管理テーブル210の一例を示す図である。TL管理テーブル210は、TLの情報を一元管理したデータベースである。
【0033】
TL管理テーブル210は、TLを管理する国又は地域(以下、TL管理国という)の名称が設定される国名211、そのTLのスキームの名称が設定されるTLスキーム名212、そのTLの発行日時が設定される発行日時213、そのTLの次の更新日時が設定される次期更新日時214、そのTLの配布点が設定される配布点215、及び、そのTLが指し示す他の各TLの情報のリストが設定されるポインタ216の各データ項目を有する。
【0034】
ポインタ216は、各TLの所在情報(本実施形態ではURL)が設定されるTLロケーション217、及び、各TLの公開鍵証明書を示す情報が設定される証明書218の各小項目を有する。なお、本実施形態では、公開鍵証明書は、X.509証明書であるものとするが、特に形式は限定されない。
【0035】
(TLパス管理テーブル)
図5は、TLパス管理テーブル230の一例を示す図である。TLパス管理テーブル230は、複数のTLによって構成されるTL間のパス(以下、TLパスという)のパターンを格納したテーブルである。
【0036】
TLパス管理テーブル230は、TLパスの起点が設定される起点231、TLパスの終点が設定される終点232、TLパスをスキーム名により特定した情報が設定されるTLパス(スキーム名)233、及び、TLパスを所在情報(本実施形態ではURL)により特定した情報が設定されるTLパス(URL)234の各データ項目を有する。
【0037】
(TSP管理テーブル)
図6は、TSP管理テーブル250の一例を示す図である。TSP管理テーブル250は、TLに登録されている事業者(本実施形態では認証局とする)に関する情報(以下、TSP情報という)が格納されるデータベースである。
【0038】
TSP管理テーブル250は、認証局が登録されているTLのTL管理国が設定される国名251、認証局が提供しているサービスの識別子が設定されるサービスタイプ識別子252、認証局のサービスの名称が設定されるサービス名253、認証局の公開鍵証明書が有効であるか否かを示す情報が設定されるステータス254、認証局の証明書(以下、CA証明書ともいう。CA: Certificate Authority。)の品質に関する情報(例えば、適
格性証明書(QC: Qualified Certificate)、適格署名生成装置(QSCD: Qualified Signature Create Device)の判定)が設定されるサービス情報拡張255、及び、認証局の公開鍵証明書を特定する情報が設定される証明書256の各データ項目を有する。サービス情報拡張255には、例えば、証明の品質の程度、署名等の用途が設定されているか、秘密鍵はハードウェアで管理されているか、といった情報が設定される。
【0039】
証明書ストア100は、証明書管理テーブル110を記憶している。
(証明書管理テーブル)
図7は、証明書管理テーブル110の一例を示す図である。証明書管理テーブル110は、公開鍵証明書の詳細情報を管理したデータベースである。証明書管理テーブル110は、公開鍵証明書の発行者の情報(国名、組織名等)が設定される発行者名111、発行者が発行した公開鍵の情報が設定される発行者鍵識別子112、証明書による証明の対象となっている主体の情報(国名、組織名等)が設定される主体者名113、証明の対象の主体の公開鍵の情報が設定される主体者鍵識別子114、証明書のシリアル番号が設定されるシリアル番号115、公開鍵証明書が対応している証明書の検証方法(モデルの種類)を示す情報が設定される信頼モデル116、公開鍵証明書がTLに登録されているか否かを示すフラグが設定されるTL掲載有無117、及び、公開鍵証明書がTLに登録されている場合にそのTL管理国が設定される国名118の各データ項目を有する。
【0040】
なお、本実施形態では、信頼モデル116には、ブリッジモデル、TLモデル、又はその双方のモデル、のいずれかが設定される。また、信頼モデル116はユーザによって予め設定されるものとする(例えば、証明書検証サーバ50が入力画面を表示し、ユーザからの入力を受け付ける)。
【0041】
(更新設定値情報)
図8は、更新設定値情報270の一例を示す図である。更新設定値情報270は、証明書検証サーバ50がTLに関する情報を取得して更新するタイミングをあらかじめ設定した情報である。
【0042】
更新設定値情報270は、更新の対象となる各TLの識別子271と、そのTLの更新のタイミング272とを含む情報である。
【0043】
ここで、
図9は、証明書検証システム1における各情報処理装置が備えるハードウェアの一例を説明する図である。各情報処理装置は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)等の処理装置61(プロセッサ)と、ROM(Read Only Memory)、RAM(Random Access Memory)等の主記憶装置62(メモリ)と、HDD(Hard Disk Drive)、SSD(Solid State Drive)などの補助記憶装置63(メモリ)と、NIC(Network Interface Card)、
無線通信モジュール、USB(Universal Serial Interface)モジュール、又はシリアル通信モジュール等で構成される通信装置64とを備える。なお、各情報処理装置は、マウスやキーボード等で構成される入力装置65と、液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイ等で構成される出力装置66とを備えていてもよい。
【0044】
以上に説明した各情報処理装置の機能は、処理装置61が、主記憶装置62又は補助記憶装置63に格納されているプログラムを読み出して実行することにより実現される。また、プログラムは、例えば、記録媒体に記録して配布することができる。なお、各情報処理装置は、その全部または一部が、例えば、クラウドシステムによって提供される仮想サーバのように、仮想化技術やプロセス空間分離技術等を用いて提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また、各情報処理装置によって提供される機能の全部または一部は、例えば、クラウドシステムがAPI(Application Programming Interface)等を介して提供するサービスによって実現してもよい。
次に、証明書検証システム1で行われる処理について説明する。
【0045】
<処理の概要>
図10は、証明書検証システム1で行われる処理の概要を説明する図である。
証明書検証サーバ50は、更新設定値情報270が示すタイミングにて、TLに関する情報を取得し更新するTL取得処理s1を実行する。証明書検証サーバ50は、TL取得処理s1の実行結果を、証明書ストア100及びTL管理ストア200に格納する。
【0046】
また、証明書検証サーバ50は、検証依頼者端末10から、検証対象の公開鍵証明書を含む要求情報(以下、検証要求という)の受信を待機している。証明書検証サーバ50は、検証要求を受信すると、証明書ストア100及びTL管理ストア200に基づき、公開鍵証明書を検証し、その結果の情報(以下、検証結果という)を検証依頼者端末10に返信する証明書検証処理s3を実行する。
次に、TL取得処理s1及び証明書検証処理s3の詳細を説明する。
【0047】
<TL取得処理>
図11は、TL取得処理s1の一例を説明するフロー図である。TL取得処理s1は、更新設定値情報270が指定するタイミングで繰り返し実行される。
【0048】
TLストア管理部56は、TLの起点となる国の情報が記録されたデータベース等から、実行対象のTL(起点となるTL。以下、起点TLという。)の所在情報を取得する(s101)。本実施形態では、TLストア管理部56は、所定の国のTLのURLを取得するものとする。
【0049】
TLストア管理部56は、s103で取得した所在情報に基づき起点TLの内容を取得する(s103)。具体的には、TLストア管理部56は、s101で取得したURLにより起点TLのTL公開サイト30を特定し、特定したTL公開サイト30から、TLの情報を取得する。本実施形態では、TLの情報は、xml(eXtensible Markup Language)として取得されるものとする。
【0050】
TLストア管理部56は、s103で取得した起点TLに関するTL署名用証明書を取得する(s105)。具体的には、TLストア管理部56は、s103で取得したTLに対応づけられるTL署名用証明書公開サイト40から、TL署名用証明書のデータを取得する。
【0051】
TLストア管理部56は、s103で取得した起点TLの署名を検証し、起点TLが改竄されていないことを確認する(s107)。具体的には、TLストア管理部56は、s105で取得したTL署名用証明書から公開鍵を抽出し、抽出した公開鍵により、s103で取得した起点TLの署名を復号することにより、起点TLの改竄の有無を確認する。
【0052】
TLストア管理部56は、s107で起点TLの署名を検証すると、起点TLの情報をTL管理ストア200に格納する(s109)。例えば、TLストア管理部56は、s101で取得した起点TLのURL、及びs103で取得した起点TLの情報を、TL管理テーブル210に格納する。
【0053】
TLストア管理部56は、起点TLを起点とするTL間の連結関係(すなわちTLパス)を構築し各TLの有効性を検証するTLパス構築検証処理s111を実行する。TLパス構築検証処理s111の詳細は後述する。
【0054】
TLストア管理部56は、TLパス構築検証処理s111で検証したTLパスの各TLについて、各TLから認証局の情報(TSP情報)を抽出し、抽出したTSP情報をTSP管理テーブル250に格納する(s113)。
【0055】
TLストア管理部56は、s113で抽出したTSP情報から、認証局の証明書(CA証明書)の情報を抽出し、抽出したCA証明書を証明書管理テーブル110に格納する(s115)。以上でTL取得処理s1は終了する。
ここで、TLパス構築検証処理s111の詳細を説明する。
【0056】
<TLパス構築検証処理>
図12は、TLパス構築検証処理s111の詳細を説明するフロー図である。
TLストア管理部56は、s103で取得した起点TLが示す、1又は複数の他のTL(以下、第2TLという)へのポインタの取得を試みる(s201)。
【0057】
TLストア管理部56は、s201でポインタを取得できたか否かを確認する(s203)。ポインタを取得できた場合は(s203:有り)、TLストア管理部56は、s205の処理を実行し、ポインタを取得できなかった場合は(s203:無し)、TLパス構築検証処理s111は終了する。
【0058】
s205においてTLストア管理部56は、s201で取得したポインタが示す第2TLのうち一つを選択し、選択した第2TLのURL及び公開鍵証明書を取得する。
【0059】
そして、TLストア管理部56は、s205で取得したURL(TL公開サイト30)にアクセスすることにより、選択した第2TLのTL情報を取得する(s207)。
【0060】
TLストア管理部56は、s207で取得した第2TLの署名を検証し、選択した第2TLが改竄されていないことを確認する(s209)。具体的には、TLストア管理部56は、s205で取得した公開鍵証明書から公開鍵を抽出し、抽出した公開鍵により、s207で取得した第2TLの署名を復号することにより、第2TLの改竄の有無を確認する。
【0061】
TLストア管理部56は、s209で第2TLの署名を検証できたら、選択した第2TLの情報をTL管理テーブル210に格納する(s211)。例えば、TLストア管理部56は、s205で取得した公開鍵証明書を、TL管理テーブル210の証明書218に格納する。
【0062】
続いて、TLストア管理部56は、s201で取得した第2TLが示す、1又は複数の、さらに他のTL(以下、第3TLという)のポインタ情報の取得を試みる(s213)。
【0063】
TLストア管理部56は、s213でポインタを取得できたか否かを確認する(s215)。ポインタを取得できた場合は(s215:有り)、TLストア管理部56は、s217の処理を実行し、ポインタを取得できなかった場合は(s215:無し)、TLストア管理部56は、s229の処理を実行する。
【0064】
s229においてTLストア管理部56は、第1TLでこれまでに選択していない他のTLのポインタの取得を試みる。その後は、s203以降の処理が繰り返される。
【0065】
一方、s217においてTLストア管理部56は、s213で取得したポインタが示す第3TLのうち一つを選択し、選択した第3TLのURL及び公開鍵証明書を取得する。
【0066】
そして、TLストア管理部56は、s217で取得したURL(TL公開サイト30)にアクセスすることにより、第3TLのTL情報を取得する(s219)。
【0067】
TLストア管理部56は、s219で取得した第3TLの署名を検証し、第3TLが改竄されていないことを確認する(s221)。具体的には、TLストア管理部56は、s217で取得した公開鍵証明書から公開鍵を抽出し、抽出した公開鍵により、s219で取得した第3TLの署名を復号することにより、第3TLの改竄の有無を確認する。
【0068】
TLストア管理部56は、s221で第3TLの署名を検証できたら、選択した第3TLの情報をTL管理テーブル210に格納する(s223)。例えば、TLストア管理部56は、s217で取得した公開鍵証明書を、TL管理テーブル210の証明書218に格納する。
【0069】
TLストア管理部56は、起点TL、選択した第2TL、及び選択した第3TLの所在情報等を、TLパス管理テーブル230に格納する。例えば、TLストア管理部56は、TLパス管理テーブル230のTLパス(URL)234に、起点TLのURL、第2TLのURL、及び第3TLのURLを格納する。また、TLストア管理部56は、TLパス管理テーブル230のTLパス(スキーム名)233に、起点TLのスキーム名、第2TLのスキーム名、及び第3TLのスキーム名を格納する。
【0070】
TLストア管理部56は、第3TLの他のポインタの取得を試みる(s227)。その後はs215の処理が行われる。
【0071】
このように、本実施形態では、TLストア管理部56は3つのTLからなるTLパスを特定してTL管理テーブル210及びTLパス管理テーブル230を作成するものとしたが、4以上のTLからなるTLパスを特定する場合も同様の処理を行う。
次に、証明書検証処理s3の詳細を説明する。
【0072】
<証明書検証処理>
図13は、証明書検証処理s3の一例を説明するフロー図である。証明書検証処理s3は、例えば、証明書検証サーバ50の起動時、証明書検証サーバ50にユーザから所定の入力がなされた場合、所定のタイミング(例えば、所定の時刻、所定の時間間隔)で実行される。
【0073】
まず、検証要求受付部51は、検証依頼者端末10からの検証要求を受信する(s301)。そして、検証要求受付部51は、受信した検証要求から所定のヘッダ情報等を除去した情報(以下、OCSPリクエストという)を、証明書検証共通処理部53に引き渡す(s303)。
【0074】
(OCSPリクエスト)
図14は、OCSPリクエスト700のデータ形式の一例を示す図である。OCSPリクエスト700は、検証要求の基本情報が設定されるOCSP基本領域701と、検証要求の拡張情報が設定されるOCSP拡張領域702の各情報領域を有する。OCSP基本領域701には、基本情報の内容703(例えば、RFC2560の規定に従った情報)が設定される。OCSP拡張領域702には、検証対象証明書の情報704(本実施形態では、X.509証明書)が設定される。また、OCSP拡張領域702には、任意的に、ブリッジモデルにおけるトラストアンカ(アンカーポイント)の情報705(本実施形態では、X.509証明書)が付帯している。
トラストアンカの情報705は、検証対象証明書をブリッジモデルにおいて使用する場合に、検証対象者によって付加される情報である。
【0075】
次に、
図13に示すように、証明書検証共通処理部53は、s305~s313において、ブリッジモデルに基づき検証対象証明書の検証を行うブリッジモデル検証処理を実行する。
【0076】
まず、s305に示すように、証明書検証共通処理部53は、取得したOCSPリクエスト700にブリッジモデルのトラストアンカが設定されているか否かを判定する。具体
的には、証明書検証共通処理部53は、OCSPリクエスト700のOCSP拡張領域702にトラストアンカの情報705が設定されているか否かを判定する。
【0077】
OCSPリクエスト700にブリッジモデルのトラストアンカが設定されている場合は(s305:有り)、証明書検証共通処理部53は、s307の処理を実行し、OCSPリクエスト700にブリッジモデルのトラストアンカが設定されていない場合は(s305:無し)、証明書検証共通処理部53は、s315の処理を実行する。
【0078】
s307、s309において証明書検証共通処理部53は、証明書ストア100を検索し、検証要求のトラストアンカの情報が登録されているか否かを判定する。例えば、証明書検証共通処理部53は、証明書管理テーブル110の各レコードを参照し、検証要求に含まれるトラストアンカの情報705が、証明書管理テーブル110の主体者名113、主体者鍵識別子114、及びシリアル番号115の情報に対応しているレコードがあるか否かを確認する。
【0079】
証明書ストア100に検証要求のトラストアンカの情報が登録されている場合は(s309:有り)、証明書検証共通処理部53はs311の処理を実行し、証明書ストア100に検証要求のトラストアンカの情報が登録されていない場合は(s309:無し)、証明書検証共通処理部53はs313の処理を実行する。
【0080】
なお、証明書検証共通処理部53は、証明書管理テーブル110における検証対象証明書に係るレコードの信頼モデル116に「ブリッジモデル」が指定されていない場合も、s313の処理を実行する。
【0081】
s313において証明書検証共通処理部53は、証明書ストア100に検証要求のトラストアンカの情報が登録されていないことを示すエラー情報を含むOCSPレスポンス(OCSPリクエスト700に含まれる証明対象証明書の妥当性の検証の結果を示す情報)を作成し、その後はs327の処理を行う。
【0082】
s311において証明書検証共通処理部53は、構築及び検証処理s311を呼び出すことで、OCSPリクエスト700が示す検証者のトラストアンカ(以下、ブリッジモデルトラストアンカという)に基づき、当該検証者(の証明書)から検証対象者(の証明書)までの各認証局(の証明書)の連結関係(認証パス)の構築及びその認証パスにおける各証明書の有効性の検証を行い、OCSPレスポンスを作成する。構築及び検証処理s311の詳細は後述する。その後、証明書検証共通処理部53は、s327の処理を行う。
【0083】
証明書検証共通処理部53は、s315~s325の処理において、トラストリストを用いて検証対象証明書の検証を行うトラストリスト検証処理を実行する。
すなわち、s315、s317において証明書検証共通処理部53は、証明書ストア100を参照し、トラストアンカの証明書(CA証明書)及びそのトラストアンカに係る認証局と信頼関係にある上位の認証局のCA証明書の情報の取得を試みる。証明書検証共通処理部53は、それらのCA証明書が、トラストリストに登録されているか否か及びそのトラストリストの国名(TL管理国)を確認する。
【0084】
具体的には、証明書検証共通処理部53は、検証対象証明書の発行者を検索キーとして証明書管理テーブル110の各レコードを検索し、検索がヒットしたレコードの各内容を取得する。また、証明書検証共通処理部53は、取得したレコードのTL掲載有無117及び国名118を確認する。
【0085】
証明書ストア100にCA証明書が登録されていた場合は(s317:有り)、証明書
検証共通処理部53はs319の処理を実行し、証明書ストア100にCA証明書が登録されていなかった場合は(s317:無し)、証明書検証共通処理部53はs323の処理を実行する。
【0086】
なお、証明書検証共通処理部53は、証明書管理テーブル110における検証対象証明書に係るレコードの信頼モデル116に「トラステッドリスト」が指定されていない場合も、s323の処理を実行する。
【0087】
s323において証明書検証共通処理部53は、CA証明書が証明書ストア100に登録されていないことを示すエラー情報を含むOCSPレスポンスを作成し、その後はs327の処理を行う。
【0088】
s319において証明書検証共通処理部53は、構築及び検証処理s311を呼び出し、s315で取得した(検索がヒットした)CA証明書(以下、サーバ設定トラストアンカという)に基づき、サーバ設定トラストアンカから検証対象証明書までの各証明書(認証局)の連結関係(認証パス)の構築及びその認証パスにおける各証明書の有効性の検証を行う。
【0089】
続いて、証明書検証共通処理部53は、OCSPリクエスト700に含まれる証明書がトラストリストに登録されているか否かを判定する(s321)。
【0090】
OCSPリクエスト700が示す証明書がトラストリストに登録されている場合は(s321:有り)、証明書検証共通処理部53は後述する追加処理s325を実行し、OCSPリクエスト700が示す証明書がトラストリストに登録されていない場合は(s321:無し)、証明書検証共通処理部53はs327の処理を実行する。
【0091】
s327において証明書検証共通処理部53は、作成したOCSPレスポンスを検証結果応答部52に引き渡す。検証結果応答部52は、受けとったOCSPレスポンスに所定のヘッダ情報等を追加することで、検証要求に対応するデータである検証応答を作成し、作成した検証応答を、検証要求受付部51に引き渡す。検証要求受付部51は、受けとった検証応答を、検証依頼者端末10に送信する(s329)。
【0092】
(OCSPレスポンス)
図15は、OCSPレスポンス800のデータ形式の一例を示す図である。OCSPレスポンス800は、検証応答の基本情報が設定されるOCSP基本領域801と、検証応答の拡張情報が設定されるOCSP拡張領域802の各情報領域を有する。OCSP基本領域801には、基本情報の内容803(例えば、RFC2560の規定に従った情報)が設定される。OCSP拡張領域802には、対象証明書の検証結果に関する情報(結果コード804)が設定される。また、OCSP拡張領域802には、検証要求にトラストアンカの情報が設定されておらずサーバ側でトラストアンカを設定した場合(サーバ設定トランスアンカ)に、そのトラストアンカの証明書805が設定される。また、OCSP拡張領域802には、追加処理s325が実行された場合に作成される検証情報806が設定される。
ここで、追加処理s325の詳細を説明する。
【0093】
<追加処理>
図16は、追加処理s325の詳細を説明する図である。
【0094】
TL方式検証追加処理部54は、TL管理ストア200を参照することで、トラストリストのTLパスを検証する(s401)。具体的には、TL方式検証追加処理部54は、
TLパス管理テーブル230を参照し、既に設定されている(s101)起点TLをTLパスの起点とし、検証要求における検証対象証明書の発行者をTLパスの終点とするTLパスのレコードが存在するか否かを確認する。
【0095】
また、TL方式検証追加処理部54は、TL管理ストア200を参照することで、s401で取得したTLパスにおける各トラストリストの有効性を検証する(s403)。具体的には、TL方式検証追加処理部54は、TL管理テーブル210を参照し、s401で特定したTLパスの各TLのスキーム名がTLスキーム名212に設定されているレコードの発行日時213及び次期更新日時214を参照することで、各トラストリストの有効性を検証する。
【0096】
また、TL方式検証追加処理部54は、TL管理ストア200を参照することで、s401で特定したTLパスにおける各トラストリストの品質を検証する(s405)。具体的には、TL方式検証追加処理部54は、TSP管理テーブル250を参照し、s401で特定したTLパスの各トラストリストにおける認証局のサービス名がサービス名253に設定されているレコードのサービス情報拡張255を取得する。
【0097】
そして、TL方式検証追加処理部54は、s401~s405での検証内容を統合した検証データ(検証レポート)を作成する(s407)。TL方式検証追加処理部54は、作成した検証データを、OCSPレスポンスの一部として当該OCSPレスポンス800に追加する(s409)。なお、TL方式検証追加処理部54は、s401~s405のいずれかで検証に失敗した場合は、そのことを示すエラー情報をOCSPレスポンス800の一部として当該OCSPレスポンス800に追加する。
次に、構築及び検証処理s111の詳細を説明する。
【0098】
<構築及び検証処理>
図17は、構築及び検証処理s111のうち、認証パスの構築に係る処理を説明するフロー図である。
【0099】
証明書検証共通処理部53は、検証対象証明書を発行した認証局のCA証明書を、認証局サーバ20から取得する(s501)。
【0100】
証明書検証共通処理部53は、取得したCA証明書が、自己署名証明書(署名者のトラストアンカ)であるか否かを確認する(s503)。取得したCA証明書が自己署名証明書である場合は(s503:はい)、証明書検証共通処理部53はs507の処理を実行し、取得したCA証明書が自己署名証明書でない場合は(s503:いいえ)、証明書検証共通処理部53はs505の処理を実行する。
【0101】
s505において証明書検証共通処理部53は、現在取得中のCA証明書を参照することで、当該CA証明書の上位の認証局のCA証明書を取得する。その後は、s503の処理が繰り返される。
【0102】
s507において証明書検証共通処理部53は、s503で特定した自己署名証明書(署名者のトランスアンカ)と、トラストアンカ(ブリッジモデルトラストアンカ又はサーバ設定トラストアンカ)とが一致するか否かを判定する。
【0103】
s503で特定した自己署名証明書とトラストアンカとが一致する場合は(s507:はい)、証明書検証共通処理部53はs513の処理を実行し、s503で特定した自己署名証明書とトラストアンカとが一致しない場合は(s507:いいえ)、証明書検証共通処理部53はs509の処理を実行する。なお、認証パス中に自己署名証明書を含めず
に検証処理を行う場合は、証明書検証共通処理部53は、一番上位の中間CA証明書までS503、S505の処理を行い、その後、S507以降の処理を行う。
【0104】
s509において証明書検証共通処理部53は、OCSPリクエスト700が示す検証者のトランスアンカ(認証局)が相互認証を行った他の認証局に発行した相互認証証明書を、TL公開サイト30等のレポジトリから取得する。
【0105】
さらに、証明書検証共通処理部53は、上記他の認証局が相互認証を行ったさらに他の認証局である署名者のトランスアンカに発行した相互認証証明書を、認証局のリポジトリから取得する(s511)。
【0106】
証明書検証共通処理部53は、s509、s511で特定された、検証者のトラストアンカ(認証局)から検証対象証明書までの各証明書を、認証パスとして記憶する(s513)。
【0107】
なお、ここでは、相互認証された3つの認証局による認証パスの構築を行う場合について説明したが、4つ以上の認証局による認証パスの構築でも同様の処理が行われる。
【0108】
図18は、構築及び検証処理s111のうち、認証パスの検証(証明書の有効性の検証)に係る処理を説明するフロー図である。この処理は、前記のs513までの処理に引き続いて行われる。
【0109】
証明書検証共通処理部53は、s513までの処理で構築した認証パスの各証明書xについて、起点である検証者のトランスアンカ(認証局)の証明書を「証明書1」とし、終点である検証対象証明書を証明書n(n:全証明書の数)とし、「証明書x」(x:1~n)における認証対象が「証明書x+1」における証明書の発行者名となるように、各「証明書x」を整列する(s601)。
【0110】
証明書検証共通処理部53は、s601で整列した各「証明書x」について、検証時刻(例えば、現在時刻)が「証明書x」の有効期限であることを確認する。なお、証明書検証共通処理部53は、検証時刻が有効期限でない証明書を検出した場合には、エラー情報を生成してOCSPレスポンス800としてもよい。
【0111】
証明書検証共通処理部53は、処理対象の「証明書x」を「証明書2」とする(s605)。
【0112】
証明書検証共通処理部53は、処理対象の「証明書x」について、「証明書x-1」の公開鍵に対応する秘密鍵で署名されていることを確認する(s607)。なお、証明書検証共通処理部53は、「証明書x」が「証明書x-1」の公開鍵に対応する秘密鍵で署名されていない場合には、エラー情報を生成してOCSPレスポンス800としてもよい。
【0113】
証明書検証共通処理部53は、処理対象の「証明書x」を次の証明書(「証明書x+1」)とする(s609)。そして、証明書検証共通処理部53は、処理対象の「証明書x」が「証明書n」であるか否かを判定する(s611)。
【0114】
処理対象の「証明書x」が「証明書n」である場合は(s611:はい)、証明書検証共通処理部53は、s613の処理を実行し、処理対象の「証明書x」が「証明書n」でない場合は(s611:はい)、証明書検証共通処理部53は、s607以降の処理を繰り返す。
【0115】
s613において証明書検証共通処理部53は、各「証明書x」が失効していないことを確認する。例えば、証明書検証共通処理部53は、各認証局サーバ20から失効情報を取得し、取得した失効情報に基づき、各「証明書x」が失効していないことを確認する。なお、証明書検証共通処理部53は、失効している証明書がある場合には、エラー情報を生成してOCSPレスポンス800としてもよい。
【0116】
なお、証明書検証共通処理部53は、各「証明書x」の拡張領域を参照し、拡張領域に設定されている情報(KeyUsage、所定のポリシ)に従った処理を実行する(s615)。本処理は省略される場合もある。以上で認証パスの構築に係る処理は終了する。
【0117】
以上のように、本実施形態の証明書検証サーバ50は、TL公開サイト30から受信した複数のトラストリストの情報に基づき、トラストリスト間の連結関係及び各トラストリストの有効性の情報(TL管理テーブル210及びTLパス管理テーブル230)と、その連結関係及び有効性が確認されたトラストリストに登録されている認証局の情報(TSP管理テーブル250及び証明書管理テーブル110)とをそれぞれ記憶し、検証依頼者端末10から検証要求を受信した場合に、各データベースから特定した認証局の証明書の情報(トラストアンカ)に基づき、検証対象証明書の認証局とトラストアンカとの間の連結関係及び各認証局の証明書の有効性を検証した検証応答を、検証依頼者端末10に送信する。
【0118】
このように、本実施形態の証明書検証サーバ50は、複数のTLパスの構築及びTLパスの各証明書の検証(署名の検証)が成功したTLの証明書をトラストアンカとして記憶し、そのトラスアンカを用いて、検証対象証明書の検証を行うことができる。すなわち、本実施形態の証明書検証サーバ50によれば、複数のトラストリストが存在する場合であっても信頼性の高いトラストアンカに基づき証明書の検証を行うことができる。
【0119】
また、本実施形態の証明書検証サーバ50は、検証要求にトラストアンカが付帯していない場合には、トラストリストの検証処理を実行し、検証要求にトラストアンカが付帯している場合には、検証対象証明書及びそのトラストアンカに基づき、認証パスの構築及び検証を行いブリッジモデルによる検証を行う。
【0120】
これにより、検証対象証明書がTLに対応しておらずブリッジモデルにのみ対応している場合であっても、検証要求に付帯するトラストアンカに基づいて、ブリッジモデルによる検証を行うことができる。すなわち、証明書検証サーバ50は、証明書の検証に使用すべき検証方式を自動的に判定することができる。
【0121】
また、本実施形態の証明書検証サーバ50は、更新設定値情報270で予め設定されたタイミングで繰り返し、トラストリスト取得処理を実行する。
【0122】
このように、TLの情報を随時取り込むことにより、TLパスの構築及び検証の処理負担を軽減し、証明書の検証の精度を向上させることができる。
【0123】
また、本実施形態の証明書検証サーバ50は、連結関係及び有効性が確認されたトラストリストに登録されている認証局の証明書を証明書管理テーブル110に記憶し、検証要求にトラストアンカが付帯していない場合には、証明書管理テーブル110に登録されている認証局の証明書の情報(トラストアンカ)に基づき、トラストリスト検証処理を実行する。
【0124】
このように、連結関係及び有効性が確認されたトラストリストのみが登録されている証明書管理テーブル110を用いてトラストリストによる証明書の検証を行うことで、信頼
性の高い検証を行うことができる。
【0125】
また、本実施形態の証明書検証サーバ50は、ユーザから、検証対象の証明書が対応している検証方法の入力を受け付けておき(証明書管理テーブル110の信頼モデル116)、検証要求を受信した場合、信頼モデル116にトラストリストによる証明書の検証方法が指定されている場合にのみ、トラストリスト検証処理を実行する。
【0126】
これにより、検証対象の証明書が対応している検証方法に即した証明書の検証を行うことができる。
【0127】
また、本実施形態の証明書検証サーバ50は、トラストリスト検証処理を実行する際に、TLパスの構築及び検証を行ったトラストリストの検証レポートを作成し、検証レポートを含む検証応答を、検証依頼者端末10に送信する。
【0128】
これにより、QC/QSCDの判定のようなトラストリストの証明書の品質の情報を検証依頼者端末10に提供することで、トラストリストの信頼性を高めることができる。
【0129】
本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、任意の構成要素を用いて実施可能である。以上説明した実施形態や変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記では種々の実施形態や変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【0130】
例えば、本実施形態の各装置が備える各機能の一部は他の装置に設けてもよいし、別装置が備える機能を同一の装置に設けてもよい。
【0131】
また、本実施形態で説明したプログラムの構成は一例であり、例えば、プログラムの一部を他のプログラムに組み込み、又は複数のプログラムを一つのプログラムとして構成してもよい。
【符号の説明】
【0132】
1 証明書検証システム
10 検証依頼者端末
50 証明書検証サーバ