(57)【特許請求の範囲】
【請求項１】
特定の認証局に対して発行された上位の電子証明書と前記特定の認証局によって発行された下位の電子証明書として関係する複数の電子証明書を示す情報であって最上位の電子証明書を発行した認証局と最下位の電子証明書を発行された認証局とを含んだ情報を経路情報として複数記憶する経路情報記憶部と、
特定の制約条件が設定された複数の電子証明書を記憶する情報生成側証明書記憶部と、
前記経路情報記憶部に記憶された経路情報毎に経路情報に示される複数の電子証明書を前記情報生成側証明書記憶部から取得する経路証明書取得部と、
前記経路証明書取得部により経路情報毎に取得された複数の電子証明書それぞれの制約条件に基づいて、経路情報の制約条件を示す経路制約情報を経路情報毎に生成する経路制約情報生成部と
を備える経路制約情報生成装置と、
複数の電子証明書を記憶する検証側証明書記憶部と、
検証対象の電子証明書を検証対象証明書として入力すると共に複数の経路情報と複数の経路情報それぞれの経路制約情報とを入力し、所定の認証局によって発行された電子証明書を最上位の電子証明書として示すと共に前記検証対象証明書を発行した認証局に対して発行された電子証明書を最下位の電子証明書として示す経路情報であって前記検証対象証明書に対応する制約条件を当該経路制約情報に示す経路情報を特定経路情報として特定する経路情報特定部と、
前記経路情報特定部により特定された特定経路情報に最下位の電子証明書として示される電子証明書を前記検証側証明書記憶部から特定証明書として取得する特定証明書取得部と、
前記特定証明書取得部により取得された特定証明書に基づいて、前記検証対象証明書が正当な電子証明書であるか否かを検証する証明書検証部と
を備える証明書検証装置と
を有することを特徴とする証明書検証システム。
【請求項２】
前記経路制約情報生成装置は、さらに、
前記経路情報記憶部に記憶された複数の経路情報のうちＮ個の経路情報を特定の順番で連結させた連結経路情報であり、ｎ（１≦ｎ≦Ｎ−１）番目の経路情報の最上位の電子証明書を発行した認証局とｎ＋１番目の経路情報の最下位の電子証明書を発行された認証局とが一致する連結経路情報を新たに経路情報として生成する経路情報連結部を
備えたことを特徴とする請求項１記載の証明書検証システム。
【請求項３】
前記経路制約情報生成装置は、さらに、
前記経路証明書取得部により取得された全ての電子証明書が有効であるか否かを経路情報毎に検証し、全ての電子証明書が有効である経路情報を検証済み経路情報として特定する証明書パス検証部を備え、
前記経路制約情報生成装置の経路制約情報生成部は、
前記証明書パス検証部により特定された検証済み経路情報の経路制約情報を生成し、
前記証明書検証装置の経路情報特定部は、
前記検証済み経路情報と前記検証済み経路情報の経路制約情報とを入力する
ことを特徴とする請求項１または請求項２いずれかに記載の証明書検証システム。
【請求項４】
前記証明書パス検証部は、有効でない電子証明書を当該電子証明書に対応する有効な電子証明書に置き換える
ことを特徴とする請求項３記載の証明書検証システム。
【請求項５】
前記証明書パス検証部が所定の時間間隔で検証済み経路情報を検証し直すことを特徴とする請求項３または請求項４記載の証明書検証システム。
【請求項６】
前記経路制約情報生成装置は、前記経路証明書取得部として情報生成側経路証明書取得部を備え、
前記証明書検証装置の経路情報特定部は、特定経路情報を複数特定し、
前記証明書検証装置は、前記特定証明書取得部の代わりに、
前記経路情報特定部により特定された特定経路情報毎に特定経路情報に示される複数の電子証明書を前記検証側証明書記憶部から取得する検証側経路証明書取得部と、
前記検証側経路証明書取得部により取得された全ての電子証明書が有効であるか否かを特定経路情報毎に検証し、全ての電子証明書が有効である特定経路情報を特定する特定経路証明書検証部とを備え、
前記証明書検証装置の証明書検証部は、前記特定経路証明書検証部により特定された特定経路情報に最下位の電子証明書として示される電子証明書に基づいて、前記検証対象証明書が正当な電子証明書であるか否かを検証する
ことを特徴とする請求項１〜請求項５いずれかに記載の証明書検証システム。
【請求項７】
前記証明書検証装置の経路情報特定部は、複数の制約条件それぞれの優先度が設定された制約優先情報を入力し、経路情報の経路制約情報に含まれる制約条件が前記検証対象証明書に対応するか否かを前記制約優先情報に設定された優先度の順に判定する
ことを特徴とする請求項１〜請求項６いずれかに記載の証明書検証システム。
【請求項８】
特定の認証局に対して発行された上位の電子証明書と前記特定の認証局によって発行された下位の電子証明書として関係する複数の電子証明書を示す情報であって最上位の電子証明書を発行した認証局と最下位の電子証明書を発行された認証局とを含んだ情報を経路情報として複数記憶する経路情報記憶部と、
特定の制約条件が設定された複数の電子証明書を記憶する情報生成側証明書記憶部と、
前記経路情報記憶部に記憶された経路情報毎に経路情報に示される複数の電子証明書を前記情報生成側証明書記憶部から取得する経路証明書取得部と、
前記経路証明書取得部により経路情報毎に取得された複数の電子証明書それぞれの制約条件に基づいて、経路情報の制約条件を示す経路制約情報を経路情報毎に生成する経路制約情報生成部とを備える
ことを特徴とする経路制約情報生成装置。
【請求項９】
複数の電子証明書を記憶する検証側証明書記憶部と、
特定の認証局に対して発行された上位の電子証明書と前記特定の認証局によって発行された下位の電子証明書として関係する複数の電子証明書を示す情報であって最上位の電子証明書を発行した認証局と最下位の電子証明書を発行された認証局とを含んだ情報を経路情報として複数記憶すると共に、経路情報の制約条件を表す経路制約情報を経路情報毎に記憶する経路制約情報記憶部と、
検証対象の電子証明書を検証対象証明書として入力すると共に複数の経路情報と複数の経路情報それぞれの経路制約情報とを前記経路制約情報記憶部から入力し、所定の認証局によって発行された電子証明書を最上位の電子証明書として示すと共に前記検証対象証明書を発行した認証局に対して発行された電子証明書を最下位の電子証明書として示す経路情報であって前記検証対象証明書に対応する制約条件を当該経路制約情報に示す経路情報を特定経路情報として特定する経路情報特定部と、
前記経路情報特定部により特定された特定経路情報に最下位の電子証明書として示される電子証明書を前記検証側証明書記憶部から特定証明書として取得する特定証明書取得部と、
前記特定証明書取得部により取得された特定証明書に基づいて、前記検証対象証明書が正当な電子証明書であるか否かを検証する証明書検証部と
を備えることを特徴とする証明書検証装置。
【請求項１０】
特定の認証局に対して発行された上位の電子証明書と前記特定の認証局によって発行された下位の電子証明書として関係する複数の電子証明書を示す情報であって最上位の電子証明書を発行した認証局と最下位の電子証明書を発行された認証局とを含んだ情報を経路情報として複数記憶する経路情報記憶部と、特定の制約条件が設定された複数の電子証明書を記憶する情報生成側証明書記憶部とを備える経路制約情報生成装置で、
経路証明書取得部が、前記経路情報記憶部に記憶された経路情報毎に経路情報に示される複数の電子証明書を前記情報生成側証明書記憶部から取得し、
経路制約情報生成部が、前記経路証明書取得部により経路情報毎に取得された複数の電子証明書それぞれの制約条件に基づいて、経路情報の制約条件を示す経路制約情報を経路情報毎に生成し、
複数の電子証明書を記憶する検証側証明書記憶部を備える証明書検証装置で、
経路情報特定部が、検証対象の電子証明書を検証対象証明書として入力すると共に複数の経路情報と複数の経路情報それぞれの経路制約情報とを入力し、所定の認証局によって発行された電子証明書を最上位の電子証明書として示すと共に前記検証対象証明書を発行した認証局に対して発行された電子証明書を最下位の電子証明書として示す経路情報であって前記検証対象証明書に対応する制約条件を当該経路制約情報に示す経路情報を特定経路情報として特定し、
特定証明書取得部が、前記経路情報特定部により特定された特定経路情報に最下位の電子証明書として示される電子証明書を前記検証側証明書記憶部から特定証明書として取得し、
証明書検証部が、前記特定証明書取得部により取得された特定証明書に基づいて、前記検証対象証明書が正当な電子証明書であるか否かを検証する
ことを特徴とする証明書検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、公開鍵証明書の検証に用いる証明書検証システム、経路制約情報生成装置、証明書検証装置および証明書検証方法に関するものである。
【背景技術】
【０００２】
Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ（ＰＫＩ）を利用したシステムにおいては、公開鍵と持ち主の結びつきを証明する公開鍵証明書を検証して公開鍵証明書が正しいことを確認し、その公開鍵証明書に含まれている公開鍵を使用する。
【０００３】
例えば、ＰＫＩを利用するシステムとして、署名付き電子メールを送受信するメールシステムが挙げられる。
以下、メールシステムを例にして公開鍵証明書の検証について説明する。
【０００４】
署名付き電子メールを受信した受信者は、受信した署名付き電子メールが偽造されていない正当なメールであることを確認するため、署名付き電子メールの署名をメール送信者の公開鍵を使用して検証する。
公開鍵を使用するためには、公開鍵の持ち主とメールの送信者を名乗る人物とが同一人物であることを確認する必要がある。つまり、送信者の公開鍵と送信者の名前との結びつきを確認する必要がある。この結びつきを証明するものが公開鍵証明書と呼ばれるものである。例えば、公開鍵証明書は署名付き電子メールと共に送信される。
公開鍵証明書が正しければ、送信者の名前と公開鍵との結びつきが保障されため、公開鍵を利用して署名付き電子メールの署名を検証し、メールの正当性を確認することができる。
以下、公開鍵証明書を「証明書」という。
【０００５】
メールの送信者は、認証局（Ｃｅｒｔｉｆｉｃａｔｉｏｎ  Ａｕｔｈｏｒｉｔｙ：ＣＡ）と呼ばれる信頼される機関に対して公開鍵と名前とを含む申請情報を提出し、認証局の署名が付与された証明書を取得する。
【０００６】
証明書に含まれる認証局の署名が正しければ、証明書は正しい証明書である。
証明書に含まれる署名を検証するには、証明書を発行した認証局の公開鍵を使用する。
このため、認証局の公開鍵と認証局を名乗る者との結びつきを確認する必要が生じる。
そこで、メールの送信者に対して証明書を発行した認証局の名前とその認証局の公開鍵との結びつきを証明する証明書を別の認証局が発行する。
【０００７】
複数の認証局は、典型的な例として階層構造を構成する。そして、上位の認証局から下位の認証局へ段階的に証明書が発行される。
階層構造の頂点に位置する認証局は自分自身に証明書を発行する。自分自身に発行する証明書は自己発行（Ｓｅｌｆ−Ｉｓｓｕｅｄ）証明書と呼ばれる。特に、署名とその署名の検証に使用する公開鍵とを含む自己発行証明書は自己署名（Ｓｅｌｆ−Ｓｉｇｎｅｄ）証明書と呼ばれる。
【０００８】
例えば、以下のように証明書が発行されたとする。
「Ｃｅｒｔ＿ＴＡ⇒Ｃｅｒｔ＿ＣＡ２⇒Ｃｅｒｔ＿ＣＡ１⇒Ｃｅｒｔ＿ＥＥ」（後述する証明書パス）
【０００９】
「Ｃｅｒｔ＿ｘｘ」は「ｘｘ」に対して発行された証明書を表す。特に「Ｃｅｒｔ＿ＴＡ」は自己署名証明書を表す。
「Ｃｅｒｔ＿ｘｘ→Ｃｅｒｔ＿ｙｙ」は証明書「Ｃｅｒｔ＿ｘｘ」により証明書「Ｃｅｒｔ＿ｙｙ」が証明されることを表す。
「ＴＡ」は階層構造の頂点に位置する認証局を表す。認証局「ＴＡ」は、証明書「Ｃｅｒｔ＿ＥＥ」を検証する利用者（例えば、メールの受信者）に信頼される認証局（トラストアンカー）である。
「ＣＡｘ」は「ＴＡ」以外の認証局を表し、「ＥＥ」は証明書の利用者（エンドエンティティ、例えば、メールの送信者）を表す。
【００１０】
つまり、証明書「Ｃｅｒｔ＿ＥＥ」の署名は証明書「Ｃｅｒｔ＿ＣＡ１」に含まれる公開鍵を用いて検証され、証明書「Ｃｅｒｔ＿ＣＡ１」の署名は証明書「Ｃｅｒｔ＿ＣＡ２」に含まれる公開鍵を用いて検証され、証明書「Ｃｅｒｔ＿ＣＡ２」の署名は証明書「Ｃｅｒｔ＿ＴＡ」に含まれる公開鍵を用いて検証される。
【００１１】
このような証明書の連鎖を「証明書パス」と呼ぶ。
【００１２】
証明書「Ｃｅｒｔ＿ＥＥ」の署名を検証する場合は、上記のように証明書「Ｃｅｒｔ＿ＴＡ」にたどり着く証明書パスを構築する必要がある。
証明書パス上の全ての証明書の署名が正しいことを条件に、証明書「Ｃｅｒｔ＿ＥＥ」に含まれる公開鍵の持ち主が「ＥＥ」であることが証明される。
【００１３】
証明書「Ｃｅｒｔ＿ＥＥ」の検証者（例えば、メールの受信者）は、認証局「ＴＡ」の自己署名証明書「Ｃｅｒｔ＿ＴＡ」を信頼する。さらに、検証者は、証明書「Ｃｅｒｔ＿ＴＡ」に含まれる公開鍵に基づいて正当性が確認された証明書「Ｃｅｒｔ＿ＣＡ２」を信頼する。さらに、検証者は、証明書「Ｃｅｒｔ＿ＣＡ２」に含まれる公開鍵に基づいて正当性が確認された証明書「Ｃｅｒｔ＿ＣＡ１」を信頼する。そして、検証者は、証明書「Ｃｅｒｔ＿ＣＡ１」に含まれる公開鍵を用いて証明書「Ｃｅｒｔ＿ＥＥ」を検証する。この信頼の連鎖に基づいて証明書「Ｃｅｒｔ＿ＥＥ」の正しさが最終的に確認される。
【００１４】
検証者により信頼される認証局「ＴＡ（トラストアンカー）」が発行する証明書（例えば、自己署名証明書）は「トラストアンカー証明書」と呼ばれる。
例えば、トラストアンカー証明書は、ＯＳ（オペレーションシステム）やブラウザなどのアプリケーションプログラムに信頼できる情報として予め設定される。
【００１５】
証明書には、その証明書の持ち主（Ｓｕｂｊｅｃｔ）や発行者（Ｉｓｓｕｅｒ）などが設定される。
例えば、上記の証明書パスにおいて、証明書「Ｃｅｒｔ＿ＥＥ」のＳｕｂｊｅｃｔは「ＥＥ」であり、Ｉｓｓｕｅｒは「ＣＡ１」である。また、証明書「Ｃｅｒｔ＿ＣＡ１」のＳｕｂｊｅｃｔは「ＣＡ１」であり、Ｉｓｓｕｅｒは「ＣＡ２」である。また、証明書「Ｃｅｒｔ＿ＴＡ」のＳｕｂｊｅｃｔは「ＴＡ」であり、Ｉｓｓｕｅｒも「ＴＡ」である。
つまり、証明書パスにおいて、下位の証明書のＩｓｓｕｅｒがその直接上位の証明書のＳｕｂｊｅｃｔになる。
【００１６】
例えば、署名付き電子メール用の証明書「Ｃｅｒｔ＿ＥＥ」にはＳｕｂｊｅｃｔとしてメールの送信者（ＥＥ）のメールアドレスが設定される。
【００１７】
署名付き電子メールの受信者は、証明書パスを例えば以下のように取得する。
・証明書パスはメールの送信者によりメールと共に送信される。
・証明書パスに含まれる証明書のうちメールの送信者に対する証明書「Ｃｅｒｔ＿ＥＥ」はメールと共に送信される。証明書パスに含まれるその他の証明書は証明書を提供するディレクトリシステムなどから受信者により取得される。
【００１８】
送信者と受信者が同一のドメイン（ネットワーク）に所属し、当該ドメインに属する同一のトラストアンカーを信頼する場合、証明書パスは当該ドメインに属する認証局の証明書で構成されるため、証明書パスの数は一つまたは少数となる。
【００１９】
しかし、送信者と受信者が異なるドメインに所属する場合、送信者と受信者は自身が所属するドメインのトラストアンカーを信頼するため、送信者と受信者とでトラストアンカーが異なる。
この場合、証明書パスは、受信者のドメインのトラストアンカー証明書「Ｃｅｒｔ＿ＴＡ」、送信者のドメインのエンドエンティティ証明書「Ｃｅｒｔ＿ＥＥ」および受信者のドメイン内の認証局から送信者のドメイン内の認証局に対して発行された証明書を含む必要がある。受信者のドメイン内の認証局から送信者のドメイン内の認証局に対して発行された証明書のように、他のドメイン内の認証局に対して発行される証明書を「相互認証証明書」という。
相互認証証明書を用いることにより複数のドメインを中継して証明書パスを構築することができるため、トラストアンカー証明書「Ｃｅｒｔ＿ＴＡ」とエンドエンティティ証明書「Ｃｅｒｔ＿ＥＥ」とを繋ぐ証明書パスは多数存在することになる。
【００２０】
特許文献１は、証明書パスの構築および検証を効率化する公開鍵暗号運用システムを開示している。
この公開鍵暗号運用システムは、証明書収集情報生成装置と証明書検証装置とを備える。証明書収集情報生成装置は、証明書パスを構築する複数の証明書それぞれの識別子を並べて証明書収集情報を生成する。証明書検証装置は、証明書収集情報を利用して証明書パスの構築および検証を実施する。証明書収集情報を利用することにより、証明書パスの構築および検証を効率良く行うことができる。
【００２１】
特許文献１では、証明書パスの構築を効率化するため、パスオーソリティと呼ばれる機関が証明書収集情報を提供し、証明書検証装置が証明書収集情報を取り込む。証明書検証装置は証明書収集情報を参照して最適な証明書パスを構築する。証明書を含む証明書パスそのものではなく、証明書を含まずに証明書を識別子で表す証明書収集情報構築情報を管理することにより管理データサイズを小さくするという効果もある。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特許第３８０１７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２３】
近年、認証局間の階層関係はドメインを跨って複雑化し、同一のトラストアンカーとエンドエンティティとの組み合わせに対して多数の証明書パスが存在する。
以下のように、認証局間の階層関係（ＩｓｓｕｅｒとＳｕｂｊｅｃｔの関係）が証明書収集情報によってわかっても最適な証明書パスを選択できるとは限らない。
【００２４】
証明書には拡張項目（Ｅｘｔｅｎｓｉｏｎ）があり、拡張項目には制約条件が設定される。
証明書パスは、検証対象の証明書の拡張項目に設定されている制約条件を満たす必要がある。
また、認証局の経路が同じであるが証明書の拡張項目に設定された制約条件が異なる複数の証明書パスはそれぞれ異なる証明書パスとして扱われる。証明書パスに含まれる証明書が異なる目的（制約条件）で発行されたからである。したがって、経路が同一である複数の証明書パスには検証対象の制約条件を満たす証明書パスと検証対象の制約条件を満たさない証明書パスとが含まれる可能性がある。
トラストアンカーとエンドエンティティとが該当する証明書パスは多数存在する可能性があるため、検証対象の制約条件を満たす証明書パスを最適な証明書パスとして絞り込む必要がある。
【００２５】
証明書パスが検証対象証明書の制約条件を満たすか否かは認証局間の階層関係からは分からない。つまり、証明書パスが検証対象証明書の制約条件を満たすか否かを証明書収集情報で判定することはできない。
【００２６】
証明書パスが検証対象証明書の制約条件を満たすか否かを判定するには、証明書パスに含まれる複数の証明書それぞれに設定されている制約条件と検証対象証明書の制約条件とを比較する必要がある。
【００２７】
特許文献１に基づいて最適な証明書パスを構築する場合、証明書収集情報に基づいて複数の証明書パス候補を生成することに加えて、複数の証明書パス候補それぞれの制約条件を検証しなければならない可能性がある。
【００２８】
本発明は、例えば、最適な証明書パスを効率良く特定し、最適な証明書パスに基づいて検証対象証明書を検証できるようにすることを目的とする。
【課題を解決するための手段】
【００２９】
本発明の証明書検証システムは、
特定の認証局に対して発行された上位の電子証明書と前記特定の認証局によって発行された下位の電子証明書として関係する複数の電子証明書を示す情報であって最上位の電子証明書を発行した認証局と最下位の電子証明書を発行された認証局とを含んだ情報を経路情報として複数記憶する経路情報記憶部と、
特定の制約条件が設定された複数の電子証明書を記憶する情報生成側証明書記憶部と、
前記経路情報記憶部に記憶された経路情報毎に経路情報に示される複数の電子証明書を前記情報生成側証明書記憶部から取得する経路証明書取得部と、
前記経路証明書取得部により経路情報毎に取得された複数の電子証明書それぞれの制約条件に基づいて、経路情報の制約条件を示す経路制約情報を経路情報毎に生成する経路制約情報生成部と
を備える経路制約情報生成装置と、
複数の電子証明書を記憶する検証側証明書記憶部と、
検証対象の電子証明書を検証対象証明書として入力すると共に複数の経路情報と複数の経路情報それぞれの経路制約情報とを入力し、所定の認証局によって発行された電子証明書を最上位の電子証明書として示すと共に前記検証対象証明書を発行した認証局に対して発行された電子証明書を最下位の電子証明書として示す経路情報であって前記検証対象証明書に対応する制約条件を当該経路制約情報に示す経路情報を特定経路情報として特定する経路情報特定部と、
前記経路情報特定部により特定された特定経路情報に最下位の電子証明書として示される電子証明書を前記検証側証明書記憶部から特定証明書として取得する特定証明書取得部と、
前記特定証明書取得部により取得された特定証明書に基づいて、前記検証対象証明書が正当な電子証明書であるか否かを検証する証明書検証部と
を備える証明書検証装置とを有する。
【発明の効果】
【００３０】
本発明によれば、例えば、最適な証明書パス（特定経路情報）を効率良く特定し、最適な証明書パスに基づいて検証対象証明書を検証できる。
【図面の簡単な説明】
【００３１】
【図１】実施の形態１における証明書検証システム１００の概要図。
【図２】実施の形態１における証明書パス、経路情報および証明書を説明する図。
【図３】実施の形態１においてドメインを跨る証明書パスを説明する図。
【図４】実施の形態１における多数の証明書パスの一例を示す図。
【図５】実施の形態１におけるパス情報生成装置２００の機能構成図。
【図６】実施の形態１におけるパス検証装置３００の機能構成図。
【図７】実施の形態１におけるパス情報生成装置２００のパス情報生成方法を示すフローチャート。
【図８】実施の形態１における証明書２９４の発行関係の具体例を表す図。
【図９】実施の形態１における経路情報２９３の具体例を示す図。
【図１０】実施の形態１における経路情報２９３の具体例を示す図。
【図１１】実施の形態１における経路情報２９３の詳細例を示す図。
【図１２】実施の形態１におけるパス情報生成方法（Ｓ２１０、Ｓ２１１）の概要図。
【図１３】実施の形態１におけるパス情報生成方法（Ｓ２２０、Ｓ２３０）の概要図。
【図１４】実施の形態１におけるパス情報生成方法（Ｓ２４０、Ｓ２４１）の概要図。
【図１５】実施の形態１におけるパス検証装置３００のパス検証方法を示すフローチャート。
【図１６】実施の形態１におけるパス検証方法（Ｓ３２０、Ｓ３２１）の概要図。
【図１７】実施の形態１におけるパス検証方法（Ｓ３２２〜Ｓ３２４）の概要図。
【図１８】実施の形態１におけるパス検証方法（Ｓ３３０、Ｓ３４０）の概要図。
【図１９】実施の形態１におけるパス情報生成装置２００、パス検証装置３００のハードウェア資源の一例を示す図。
【図２０】実施の形態４におけるパス検証装置３００の機能構成図。
【図２１】実施の形態４におけるパス検証装置３００のパス検証方法を示すフローチャート。
【発明を実施するための形態】
【００３２】
実施の形態１．
証明書パスを構成する複数の公開鍵証明書（電子証明書の一例）を示す経路情報と経路情報の制約条件を示す制約情報とを予め生成することにより、公開鍵証明書の検証を容易にする証明書検証システム１００について説明する。
以下、公開鍵証明書を「証明書」という。
【００３３】
図１は、実施の形態１における証明書検証システム１００の概要図である。
実施の形態１における証明書検証システム１００の概要について、図１に基づいて以下に説明する。
【００３４】
図１において、証明書検証システム１００はパスオーソリティ１０１とユーザ端末１０２とを有する。パスオーソリティ１０１は後述するパス情報生成装置２００の一例であり、ユーザ端末１０２は後述するパス検証装置３００の一例である。
【００３５】
パスオーソリティ１０１は、多数存在する証明書パスを検証して正当な証明書パスを特定する（Ｓ１１０）。そして、パスオーソリティ１０１は、正当な証明書パス毎に経路情報（後述する検証済み経路情報２０４）および制約情報（後述する拡張制約情報２０５）を生成する（Ｓ１２０）。
【００３６】
パスオーソリティ１０１により生成された多数の経路情報および制約情報がユーザ端末１０２に提供される（Ｓ１３０）。
【００３７】
ユーザ端末１０２は、多数の経路情報のうち検証対象証明書１０３が制約条件を満たす経路情報を制約情報に基づいて特定する（Ｓ１４０）。
ユーザ端末１０２は、特定した経路情報に示される最下位の証明書を用いて検証対象証明書１０３を検証する（Ｓ１５０）。
【００３８】
以下に、証明書パスについて説明する。
【００３９】
図２は、実施の形態１における証明書パス、経路情報および証明書を説明する図である。
図３は、実施の形態１においてドメインを跨る証明書パスを説明する図である。
図４は、実施の形態１における多数の証明書パスの一例を示す図である。
【００４０】
図２において、「ＣＡ１」「ＣＡ２」「ＣＡ３」は証明書を発行する認証局を表す。
認証局ＣＡ１〜３は、ＣＡ１を最上位（最上流、最上層）の認証局、ＣＡ３を最下位（最下流、最下層）の認証局として、「ＣＡ１→ＣＡ２→ＣＡ３」という階層関係にある。
【００４１】
「Ｃｅｒｔ＿Ｘ（Ｙ）」は、認証局Ｙによって認証局Ｘ（または、自身やエンドエンティティ）に対して発行された証明書を表す。
認証局Ｙは証明書Ｃｅｒｔ＿Ｘ（Ｙ）を発行した発行者であり、認証局Ｘは証明書Ｃｅｒｔ＿Ｘ（Ｙ）を発行された被発行者である。
【００４２】
証明書Ｃｅｒｔ＿ＣＡ１（ＣＡ１）は、最上位の認証局ＣＡ１によって自身に対して発行される。
証明書Ｃｅｒｔ＿ＣＡ２（ＣＡ１）は、最上位の認証局ＣＡ１によって一つ下位の認証局ＣＡ２に対して発行される。
証明書Ｃｅｒｔ＿ＣＡ３（ＣＡ２）は、認証局ＣＡ２によって一つ下位（最下位）の認証局ＣＡ３に対して発行される。
証明書Ｃｅｒｔ＿ＥＥ１（ＣＡ３）は、最下位の認証局ＣＡ３によって証明書の利用者ＥＥ１（エンドエンティティ）に対して発行される。
【００４３】
上記の４つの証明書Ｃｅｒｔ＿ＣＡ１（ＣＡ１）、Ｃｅｒｔ＿ＣＡ２（ＣＡ１）、Ｃｅｒｔ＿ＣＡ３（ＣＡ２）、Ｃｅｒｔ＿ＥＥ１（ＣＡ３）は証明書パスを構成する。
【００４４】
証明書パスは、上記の４つの証明書のように下位の証明書の発行者が上位の証明書の被発行者である複数の証明書で構成される。
上位の証明書は、下位の証明書の持ち主（発行者）を証明する。
実施の形態において、証明書Ｘの発行者が証明書Ｙの被発行者である場合、証明書Ｙを上位の証明書、証明書Ｘを下位の証明書とする。
【００４５】
また、利用者が信用する認証局（図２では「ＣＡ１」）を「トラストアンカー１０４」といい、トラストアンカー１０４が自身に対して発行した証明書「Ｃｅｒｔ＿ＣＡ１（ＣＡ１）」を自己発行証明書または自己署名証明書という。
以下、トラストアンカー１０４の自己発行証明書（または自己署名証明書）を「トラストアンカー証明書１０５」という。
【００４６】
利用者ＥＥ１は証明書パスの最下位の証明書Ｃｅｒｔ＿ＥＥ１（ＣＡ３）を含む電子メール（電子文書の一例）を利用者ＥＥ２に送信する。利用者ＥＥ２は認証局ＣＡ１をトラストアンカー１０４として信頼するものとする。
電子メールに含まれる証明書Ｃｅｒｔ＿ＥＥ１（ＣＡ３）は証明書パスを遡って最終的にトラストアンカー証明書「Ｃｅｒｔ＿ＣＡ１（ＣＡ１）」（最上位の証明書）により証明されるため、利用者ＥＥ２は電子メールの生成者が利用者ＥＥ１であることを確認できる。
【００４７】
また、各証明書は基本フィールドと拡張部とを有する。
基本フィールドには「発行者（Ｉｓｓｕｅｒ）」「被発行者（Ｓｕｂｊｅｃｔ）」「被発行者の公開鍵」「発行者の署名」「有効期間」などの基本項目が設定される。
拡張部には制約条件（例えば、名前制約、ポリシー制約）などの拡張項目が設定される。
【００４８】
図２は特定のネットワーク（ドメイン）内における証明書パスを示しているが、証明書パスはネットワークを跨る場合がある。
【００４９】
例えば、図３のように、ドメインＢに属する利用者ＢＥＥがドメインＡに属する利用者ＡＥＥに電子メールを送信する場合、電子メールに含まれる証明書Ｃｅｒｔ＿ＢＥＥ（Ｂ３）の証明書パスはドメインＡとドメインＢとに跨る。
【００５０】
ドメインＡとドメインＢとを跨いで証明書パスを構築するため、ドメインＡに属する認証局Ａ２はドメインＢに属する認証局Ｂ２に対して証明書Ｃｅｒｔ＿Ｂ２（Ａ２）を発行する。
このように、ドメインを跨って発行される証明書Ｃｅｒｔ＿Ｂ２（Ａ２）を「相互認証証明書」という。
【００５１】
証明書Ｃｅｒｔ＿ＢＥＥ（Ｂ３）は証明書パスを遡って最終的に利用者ＡＥＥのトラストアンカー証明書「Ｃｅｒｔ＿Ａ１（Ａ１）」により証明される。
このため、利用者ＡＥＥは証明書Ｃｅｒｔ＿ＢＥＥ（Ｂ３）を含む電子メールの生成者が利用者ＢＥＥであることを確認できる。
【００５２】
証明書パスはドメインを跨いで構築することができるため、一組のトラストアンカー１０４（最上位の認証局）とエンドエンティティ（利用者）とに対して複数の証明書パスが存在し得る。
【００５３】
認証局間の関係は、図２に示すような同一ドメイン内の階層関係に限らない。例えば、、認証局間には図３に示すような異なるドメイン間の相互発行の関係もある。
【００５４】
図４に複数の証明書パスが存在する例を示す。
図４において「Ｉｓｓｕｅｒ」は証明書の発行者を示し、「Ｓｕｂｊｅｃｔ」は証明書の被発行者を示す。
図４は、一組のトラストアンカー証明書１０５と検証対象証明書１０３とに対して以下の６つの証明書パス（１）〜（６）が存在することを示している。
【００５５】
証明書パス（１）：「トラストアンカー証明書１０５→パスａ→パスｄ」、
証明書パス（２）：「トラストアンカー証明書１０５→パスａ→パスｅ」、
証明書パス（３）：「トラストアンカー証明書１０５→パスｂ→パスｄ」、
証明書パス（４）：「トラストアンカー証明書１０５→パスｂ→パスｅ」、
証明書パス（５）：「トラストアンカー証明書１０５→パスｃ→パスｄ」、
証明書パス（６）：「トラストアンカー証明書１０５→パスｃ→パスｅ」
【００５６】
なお、証明書や電子文書（例えば、電子メール）の送受信は、ネットワーク（例えば、インターネット）を介してコンピュータ（計算機、装置）間で行われる。
【００５７】
以下に、パスオーソリティ１０１（図１参照）として機能するパス情報生成装置２００の詳細およびユーザ端末１０２（図１参照）として機能するパス検証装置３００の詳細について説明する。
【００５８】
図５は、実施の形態１におけるパス情報生成装置２００の機能構成図である。
実施の形態１におけるパス情報生成装置２００の機能構成について、図５に基づいて以下に説明する。
【００５９】
パス情報生成装置２００（経路制約情報生成装置の一例）は、経路情報解析部２１０（経路情報連結部の一例）、パス構築部２２０（情報生成側経路証明書取得部の一例）、パス検証部２３０（証明書パス検証部の一例）およびパス制約情報生成部２４０（経路制約情報生成部の一例）を備える。各「〜部」は以下に説明する処理をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて実行する。
さらに、パス情報生成装置２００は生成装置記憶部２９０（経路情報記憶部、情報生成側証明書記憶部の一例）を備える。
【００６０】
生成装置記憶部２９０はパス情報生成装置２００で使用されるデータを記憶する。
始点認証局リスト２９１、終点認証局リスト２９２、経路情報２９３、証明書２９４、検証パラメータ２９５および拡張項目リスト２９６は生成装置記憶部２９０に記憶されるデータの一例である。
また、選択経路情報２０１、証明書パス２０２、検証済み経路情報２０４および拡張制約情報２０５も生成装置記憶部２９０に記憶されるデータの一例である。
【００６１】
始点認証局リスト２９１は、エンドエンティティに対して証明書を発行する複数の認証局を示す情報である。
以下、エンドエンティティに対して証明書を発行する認証局を「始点認証局」という。
【００６２】
終点認証局リスト２９２は、トラストアンカー証明書を発行する複数の認証局（トラストアンカー）を示す情報である。
以下、トラストアンカー証明書を発行する認証局を「終点認証局」という。
【００６３】
経路情報２９３は、特定の認証局に対して発行された上位の証明書と前記特定の認証局によって発行された下位の証明書として関係する複数の証明書を示す情報である。また、経路情報２９３は、最上位の証明書を発行した認証局と最下位の電子証明書を発行された認証局とを含んだ情報である。
生成装置記憶部２９０には複数の経路情報２９３が予め記憶されているものとする。
【００６４】
また、生成装置記憶部２９０には複数の証明書２９４が予め記憶されているものとする。
【００６５】
検証パラメータ２９５は、証明書２９４に対して予め指定された検証事項を示す情報である。
【００６６】
拡張項目リスト２９６は、証明書２９４に対して予め指定された拡張項目を示す情報である。
【００６７】
経路情報解析部２１０は、始点認証局と終点認証局との各組み合わせに対応する複数の経路情報２９３を特定する。
また、経路情報解析部２１０は、生成装置記憶部２９０に記憶された複数の経路情報２９３のうちＮ個の経路情報２９３を特定の順番で連結させた連結経路情報を新たな経路情報２９３として生成する。つまり、経路情報解析部２１０は、ｎ（１≦ｎ≦Ｎ−１）番目の経路情報の最上位の電子証明書を発行した認証局（終点認証局）とｎ＋１番目の経路情報の最下位の電子証明書を発行された認証局（始点認証局）とが一致する連結経路情報を新たに経路情報２９３として生成する。
【００６８】
パス構築部２２０は、生成装置記憶部２９０に記憶された経路情報２９３毎に経路情報２９３に示される複数の証明書２９４（証明書パス２０２）を生成装置記憶部２９０から取得する。
【００６９】
パス検証部２３０は、パス構築部２２０により取得された全ての証明書２９４が有効であるか否かを経路情報２９３毎に検証する。そして、パス検証部２３０は、全ての証明書２９４が有効である経路情報２９３を検証済み経路情報２０４として特定する。
【００７０】
パス制約情報生成部２４０は、パス構築部２２０により経路情報毎に取得された複数の証明書２９４それぞれの制約条件に基づいて、経路情報２９３の制約条件を示す拡張制約情報２０５（経路制約情報）を経路情報２９３毎に生成する。
例えば、パス制約情報生成部２４０は、パス検証部２３０により特定された検証済み経路情報２０４の拡張制約情報２０５を生成する。
【００７１】
図６は、実施の形態１におけるパス検証装置３００の機能構成図である。
実施の形態１におけるパス検証装置３００の機能構成について、図６に基づいて以下に説明する。
【００７２】
パス検証装置３００（証明書検証装置の一例）は、検証対象証明書入力部３１０、経路情報特定部３２０、始点証明書取得部３３０（特定証明書取得部の一例）および検証対象証明書検証部３４０（証明書検証部の一例）を備える。各「〜部」は以下に説明する処理をＣＰＵを用いて実行する。
さらに、パス検証装置３００は検証装置記憶部３９０（検証側証明書記憶部の一例）を備える。
【００７３】
検証装置記憶部３９０はパス検証装置３００で使用されるデータを記憶する。
検証済み経路情報２０４、拡張制約情報２０５、証明書３９１および検証パラメータ３９２は検証装置記憶部３９０に記憶されるデータの一例である。
また、検証対象証明書３０１、トラストアンカー証明書３０２、候補経路情報３０３、候補制約情報３０４、探索済み制約情報３０５（符号「３０３」〜「３０５」図示省略）、探索済み経路情報３０６、探索済み始点証明書３０７および検証結果３０８も検証装置記憶部３９０に記憶されるデータの一例である。
【００７４】
検証対象証明書３０１は、エンドエンティティに対して発行された証明書であり、検証対象となる証明書である。
【００７５】
トラストアンカー証明書３０２は、利用者が信頼するトラストアンカーにより発行された自己署名証明書である。
【００７６】
検証済み経路情報２０４および拡張制約情報２０５はパス情報生成装置２００により生成された情報である。
パス検証装置３００はパス情報生成装置２００により生成された複数の検証済み経路情報２０４と複数の拡張制約情報２０５とを取得する。検証装置記憶部３９０には取得した複数の検証済み経路情報２０４と複数の拡張制約情報２０５が予め記憶されているものとする。
検証済み経路情報２０４と拡張制約情報２０５とは一対一で対応している。
【００７７】
また、検証装置記憶部３９０には複数の証明書３９１が予め記憶されているものとする。
【００７８】
検証パラメータ３９２は、検証対象証明書３０１に対して予め指定された検証事項を示す情報である。
【００７９】
検証対象証明書入力部３１０は、検証対象証明書３０１を入力する。
また、検証対象証明書入力部３１０はトラストアンカー証明書３０２を入力する。
【００８０】
経路情報特定部３２０は、トラストアンカー証明書３０２を最上位の証明書として示すと共に検証対象証明書３０１を発行した認証局に対して発行された証明書を最下位の証明書として示す検証済み経路情報２０４であって検証対象証明書３０１に対応する制約条件を当該拡張制約情報２０５に示す検証済み経路情報２０４を探索済み経路情報３０６（特定経路情報）として特定する。
【００８１】
始点証明書取得部３３０は、経路情報特定部３２０により特定された探索済み経路情報３０６に最下位の証明書として示される証明書３９１を検証装置記憶部３９０から探索済み始点証明書３０７（特定証明書）として取得する。
【００８２】
検証対象証明書検証部３４０は、始点証明書取得部３３０により取得された探索済み始点証明書３０７に基づいて、検証対象証明書３０１が正当な証明書であるか否かを検証する。
【００８３】
図７は、実施の形態１におけるパス情報生成装置２００のパス情報生成方法を示すフローチャートである。
実施の形態１においてパス情報生成装置２００が実行するパス情報生成方法について、図７に基づいて以下に説明する。
【００８４】
パス情報生成方法により複数の検証済み経路情報２０４が特定され、検証済み経路情報２０４に対応する拡張制約情報２０５が検証済み経路情報２０４毎に生成される。
パス情報生成装置２００の各「〜部」は、以下に説明する処理をＣＰＵを用いて実行する。
【００８５】
まず、パス情報生成方法の概要について説明する。
【００８６】
経路情報解析部２１０は、始点認証局および終点認証局を選択し（Ｓ２１０）、始点認証局と終点認証局とに対応する複数の経路情報２９３（選択経路情報２０１）を特定する（Ｓ２１１）。
パス構築部２２０は、複数の選択経路情報２０１に対応する複数の証明書パス２０２を生成する（Ｓ２２０）。
パス検証部２３０は、複数の証明書パス２０２それぞれを検証し（Ｓ２３０）、正当な証明書パス２０２に対応する選択経路情報２０１（２０４）を特定する（Ｓ２３１）。
パス制約情報生成部２４０は、正当な証明書パス２０２に含まれる複数の証明書２９４それぞれから拡張制約（拡張項目に設定された制約条件）を取得し（Ｓ２４０）、複数の証明書２９４それぞれの拡張制約を含んだ拡張制約情報２０５を生成する（Ｓ２４１）。
Ｓ２１０〜Ｓ２４１は、始点認証局と終点認証局の全ての組み合わせに対して実行される（Ｓ２１９）。
【００８７】
図８は、実施の形態１における証明書２９４の発行関係の具体例を表す図である。
図９、図１０は、実施の形態１における経路情報２９３の具体例を示す図である。
図１１は、実施の形態１における経路情報２９３の詳細例を示す図である。
【００８８】
証明書２９４の発行関係が図８のような関係である場合、図９に示す経路情報２９３（２９３＿１〜６）が生成装置記憶部２９０に予め記憶される。
図９に示す経路情報２９３は二つの証明書２９４の関係を表している。但し、図１０に示す経路情報２９３（２９３＿７〜９）のように、経路情報２９３は三つ以上の証明書２９４の関係を表しても構わない。
図８や図９に示す経路情報２９３の表記はＲＦＣ４１５８で使用されているものである。
【００８９】
図１１に示すように、経路情報２９３は、証明書２９４毎に識別情報として「発行者（Ｉｓｓｕｅｒ）」「シリアルナンバー（ＳＮ）」「被発行者（Ｓｕｂｊｅｃｔ）」を示す。証明書２９４は「発行者」と「シリアルナンバー」とにより一意に区別される。つまり、「発行者」と「シリアルナンバー」との組み合わせはユニークである。
経路情報２９３には証明書２９４の実体は含まれない。
証明書２９４は識別情報（発行者、シリアルナンバー）を用いて検索する。
【００９０】
例えば、経路情報２９３は各認証局または特定の認証局から提供される。
【００９１】
次に、図８〜図１１に示した例を使って、パス情報生成方法（図７）の詳細を説明する。
【００９２】
＜Ｓ２１０＞
経路情報解析部２１０は、始点認証局リスト２９１から始点認証局を一つ選択し、終点認証局リスト２９２から終点認証局を一つ選択する。
Ｓ２１０の後、処理はＳ２１１に進む。
【００９３】
＜Ｓ２１１＞
経路情報解析部２１０は、Ｓ２１０において選択した始点認証局および終点認証局に対応する複数の経路情報２９３を特定または生成する。
【００９４】
図１２は、実施の形態１におけるパス情報生成方法（Ｓ２１０、Ｓ２１１）の概要図である。
図１２に示すように、経路情報解析部２１０は、Ｓ２１０において始点認証局ＣＡｙ２および終点認証局ＣＡｘ１を選択したものとする。
Ｓ２１１において、経路情報解析部２１０は、図１０に示した経路情報２９３のうち最下位の証明書２９４の被発行者が始点認証局ＣＡｙ２であり、最上位の証明書２９４の発行者が終点認証局ＣＡｘ１である３つの経路情報２９３＿７〜９を特定する。
【００９５】
経路情報解析部２１０は、図９のように始点認証局ＣＡｙ２および終点認証局ＣＡｘ１に対応する経路情報２９３が無い場合、複数の経路情報２９３を連結させて当該経路情報２９３を生成する。
【００９６】
例えば、経路情報解析部２１０は以下の連結規則（ａ）および（ｂ）に従って当該経路情報２９３を生成する。Ｎ個の経路情報２９３を経路情報Ｎ、経路情報Ｎ−１、・・・、経路情報１の並びで組み合わせて当該経路情報２９３を生成したものとする。
連結規則（ａ）：「経路情報Ｎの最上位の証明書２９４の発行者は終点認証局ＣＡｘ１であり、経路情報１の最下位の証明書の被発行者は始点認証局ＣＡｙ２である」。
連結規則（ｂ）：「経路情報ｎ＋１（ｎ＝１〜Ｎ−１）の最下位の証明書２９４の被発行者と経路情報ｎの最上位の証明書の発行者とが同一である」。
【００９７】
例えば、経路情報解析部２１０は最上位の証明書の発行者が終点認証局ＣＡｘ１である経路情報Ｎを選択し、経路情報Ｎに対して連結規則（ｂ）を満たす経路情報Ｎ−１を特定する。
さらに、経路情報解析部２１０は経路情報Ｎ−１に対して連結規則（ｂ）を満たす経路情報Ｎ−２を特定する。
以後、経路情報解析部２１０は、最下位の証明書の被発行者が始点認証局ＣＡｙ２である経路情報１が特定されるまで、連結規則（ｂ）を満たす経路情報の特定を繰り返す。
【００９８】
例えば、経路情報解析部２１０は、図９に示す経路情報２９３＿２、３を連結させて経路情報２９３＿７（図１２参照）を生成する。
さらに、経路情報解析部２１０は、経路情報２９３＿２、４を連結させて経路情報２９３＿８を生成し、経路情報２９３＿２、５を連結させて経路情報２９３＿９を生成する。
【００９９】
図７に戻り、パス情報生成方法の説明を続ける。
【０１００】
以下、Ｓ２１１において経路情報解析部２１０が特定または生成した経路情報２９３を選択経路情報２０１という。
Ｓ２１１の後、処理はＳ２２０に進む。
【０１０１】
＜Ｓ２２０＞
パス構築部２２０は、選択経路情報２０１に示される複数の証明書２９４を生成装置記憶部２９０から取得し、取得した複数の証明書２９４を含んだ証明書パス２０２を生成する。パス構築部２２０は、選択経路情報２０１毎に証明書パス２０２を生成する。
【０１０２】
該当する証明書２９４が生成装置記憶部２９０に記憶されていない場合、パス構築部２２０は証明書２９４を提供するディレクトリシステム（外部の記憶装置）などから該当する証明書２９４を取得する。
【０１０３】
Ｓ２２０の後、処理はＳ２３０に進む。
【０１０４】
＜Ｓ２３０＞
パス検証部２３０は、証明書パス２０２毎に、証明書パス２０２に含まれる複数の証明書２９４を検証パラメータ２９５に基づいて検証する。検証はＲＦＣ５２８０、Ｘ．５０９などの標準規格に従って行われる。
パス検証部２３０は、証明書パス２０２に含まれる複数の証明書２９４が全て正当である証明書パス２０２を正当な証明書パス２０２として特定する。
Ｓ２３０の後、処理はＳ２３１に進む。
【０１０５】
図１３は、実施の形態１におけるパス情報生成方法（Ｓ２２０、Ｓ２３０）の概要図である。
実施の形態１におけるパス情報生成方法（Ｓ２２０、Ｓ２３０）の具体例について、図１３に基づいて以下に説明する。
【０１０６】
Ｓ２３０において、パス構築部２２０は経路情報２９３＿７に対して４つの証明書「Ｃｅｒｔ＿ＣＡｘ１（ＣＡＸ１）」「Ｃｅｒｔ＿ＣＡＢｒ（ＣＡｘ１）」「Ｃｅｒｔ＿ＣＡｙ１（ＣＡＢｒ）」「Ｃｅｒｔ＿ＣＡｙ２（ＣＡｙ１）」を取得する。そして、パス構築部２２０は取得した４つの証明書２９４で証明書パス２０２＿７を生成する。
【０１０７】
Ｓ２３０において、パス検証部２３０は、以下のように４つの証明書２９４それぞれの有効期間および署名を検証する。
【０１０８】
検証パラメータ２９５には、特定の日時を指定する情報が「検証日時」として設定されているものとする。例えば、現在日時、過去の特定日時、未来の特定日時が検証日時として検証パラメータ２９５に設定される。これにより、検証日時の時点における証明書パス２０２の状態を確認できる。
【０１０９】
パス検証部２３０は、検証パラメータ２９５に設定された検証日時と４つの証明書２９４それぞれの有効期間とを比較する。有効期間が切れていない証明書２９４が有効な証明書２９４であり、有効期間が切れている証明書２９４が無効な証明書２９４である。
パス検証部２３０は、無効な証明書２９４が含まれない場合、証明書パス２０２＿７を有効な証明書パス２０２と判定し、無効な証明書２９４が含まれる場合、証明書パス２０２＿７を不当（無効）な証明書パス２０２と判定する。
パス検証部２３０は、証明書パス２０２が有効である場合、上位の証明書２９４の公開鍵を用いて下位の証明書２９４の署名を検証する。最上位の自己署名証明書Ｃｅｒｔ＿ＣＡｘ１（ＣＡｘ１）の署名は自身に含まれる公開鍵により検証される。
パス検証部２３０は、署名が不正である証明書２９４が含まれない場合、証明書パス２０２＿７を正当な証明書パスと判定し、署名が不正である証明書２９４が含まれる場合、証明書パス２０２＿７を不当な証明書パス２０２と判定する。
【０１１０】
パス検証部２３０は、証明書２９４が有効であるか否かを有効期間以外の情報に基づいて判定してもよい。
例えば、検証パラメータ２９５には失効状態の検証を指定するパラメータが設定される。また、生成装置記憶部２９０にはＣＲＬ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）が記憶される。ＣＲＬは、有効期間内に失効した証明書２９４の一覧であり、認証局から定期的に提供される。パス検証部２３０は、ＣＲＬに示される証明書２９４を無効な証明書２９４と判定する。
また、パス検証部２３０は、証明書２９４が有効であるか否かをＯＣＳＰサーバ（ＯＣＳＰ：Ｏｎｌｉｎｅ  Ｃｅｒｔｉｆｉｃａｔｅ  Ｓｔａｔｕｓ  Ｐｒｏｔｏｃｏｌ）に問い合わせてもよい。ＯＣＳＰサーバは証明書２９４の失効状態を管理する装置である。
【０１１１】
パス検証部２３０は、証明書２９４の有効性のみを判定し、無効な証明書２９４を含まない証明書パス２０２＿７を正当な証明書パス２０２と判定してもよい。つまり、パス検証部２３０は証明書２９４の署名を検証しなくても構わない。
但し、各証明書２９４の署名は予め検証され、署名の正しい証明書２９４のみが生成装置記憶部２９０に記憶され、またディレクトリシステムなどから提供されるものとする。
【０１１２】
図７に戻り、パス情報生成方法の説明を続ける。
【０１１３】
＜Ｓ２３１＞
パス検証部２３０は、正当な証明書パス２０２に対して、証明書パス２０２に対応する選択経路情報２０１を特定する。
以下、Ｓ２３１で特定された選択経路情報２０１を「検証済み経路情報２０４」という。
【０１１４】
例えば、図１３において証明書パス２０２＿７が正当である場合、証明書パス２０２＿７に対応する経路情報２９３＿７を検証済み経路情報２０４として特定する。
【０１１５】
Ｓ２３１の後、処理はＳ２４０に進む。
【０１１６】
＜Ｓ２４０＞
パス制約情報生成部２４０は、正当な証明書パス毎に以下の処理を行う。
パス制約情報生成部２４０は、証明書パス２０２に含まれる複数の証明書２９４から各証明書２９４の拡張項目のうち拡張項目リスト２９６に指定されている拡張項目を取得する。
【０１１７】
証明書２９４の拡張項目には、証明書ポリシー（ＣｅｒｔｉｆｉｃａｔｅＰｏｌｉｃｙ）、名前制約（ＮａｍｅＣｏｎｓｔｒａｉｎｔｓ）、基本制約（ＢａｓｉｃＣｏｎｓｔｒａｉｎｔｓ）、ポリシーマッピング（ＰｏｌｉｃｙＭａｐｐｉｎｇ）、ポリシー制約（ＰｏｌｉｃｙＣｏｎｓｔｒａｉｎｔｓ）などの制約条件が含まれる。証明書２９４の拡張項目はＲＦＣ５２８０やＸ．５０９などの標準規格で定められる。但し、標準規格で定められた項目以外の拡張項目（プライベート項目）が証明書２９４に含まれても構わない。
拡張項目リスト２９６には、証明書２９４の拡張項目のうち、予め定められた特定の拡張項目の識別情報が設定されている。
【０１１８】
例えば、拡張項目リスト２９６に「ＣｅｒｔｉｆｉｃａｔｅＰｏｌｉｃｙ」と「ＮａｍｅＣｏｎｓｔｒａｉｎｔｓ」が設定されている場合、証明書２９４は各証明書２９４から「ＣｅｒｔｉｆｉｃａｔｅＰｏｌｉｃｙ」の設定値と「ＮａｍｅＣｏｎｓｔｒａｉｎｔｓ」の設定値とを取得する。
【０１１９】
以下、証明書２９４の拡張項目に設定された設定値を「拡張制約」という。
Ｓ２４０の後、処理はＳ２４１に進む。
【０１２０】
＜Ｓ２４１＞
パス制約情報生成部２４０は、正当な証明書パス毎に以下の処理を行う。
パス制約情報生成部２４０は、証明書パス２０２に含まれる複数の証明書２９４から取得した複数の拡張制約を拡張項目毎に統合し、拡張制約情報２０５を生成する。
例えば、パス制約情報生成部２４０は、複数の拡張制約をＡＮＤ条件やＯＲ条件などで結合して拡張制約情報２０５を生成する。
拡張制約情報２０５は、統合（結合）させた拡張制約（拡張制約の統合結果）を示す情報である。
Ｓ２４１の後、処理はＳ２１９に進む。
【０１２１】
図１４は、実施の形態１におけるパス情報生成方法（Ｓ２４０、Ｓ２４１）の概要図である。
実施の形態１におけるパス情報生成方法（Ｓ２４０、Ｓ２４１）の具体例について、図１４に基づいて以下に説明する。
【０１２２】
Ｓ２４０において、拡張項目リスト２９６には「証明書ポリシー」「名前制約」が設定されているものとする。
パス制約情報生成部２４０は、有効な証明書パス２０２＿７に含まれる４つの証明書２９４それぞれから、拡張項目に設定されている証明書ポリシー「Ｐｏｌ：１，２」「Ｐｏｌ：１，３」「Ｐｏｌ：１，２」「Ｐｏｌ：１」を取得する。
また、パス制約情報生成部２４０は、有効な証明書パス２０２＿７に含まれる４つの証明書２９４それぞれから、拡張項目に設定されている名前制約「許容Ｎａｍｅ：Ａ，Ｂ／除外Ｎａｍｅ：Ｃ」「許容Ｎａｍｅ：Ａ，Ｃ」「許容Ｎａｍｅ：Ａ／除外Ｎａｍｅ：Ｂ」「許容Ｎａｍｅ：Ａ，Ｂ，Ｃ」を取得する。
【０１２３】
許容Ｎａｍｅとは「ｐｅｒｍｉｔｔｅｄＳｕｂｔｒｅｅｓ」で識別される項目のことであり、除外Ｎａｍｅとは「ｅｘｃｌｕｄｅｄＳｕｂｔｒｅｅｓ」で識別される項目のことである。
【０１２４】
Ｓ２４１において、パス制約情報生成部２４０は、４つの証明書ポリシーのＡＮＤを取り、４つの証明書ポリシーに共通する「Ｐｏｌ：１」を得る。
また、パス制約情報生成部２４０は、４つの名前制約（許容Ｎａｍｅ）のＡＮＤを取り、４つの名前制約（許容Ｎａｍｅ）に共通する「許容Ｎａｍｅ：Ａ」を得る。
また、パス制約情報生成部２４０は、４つの名前制約（除外Ｎａｍｅ）のＯＲを取り、４つの名前制約（除外Ｎａｍｅ）いずれかに含まれる「除外Ｎａｍｅ：Ｂ，Ｃ」を得る。
パス制約情報生成部２４０は、「Ｐｏｌ：１」「許容Ｎａｍｅ：Ａ」「除外Ｎａｍｅ：Ｂ，Ｃ」を含む拡張制約情報２０５を生成する。
【０１２５】
図７に戻り、パス情報生成方法の説明を続ける。
【０１２６】
＜Ｓ２１９＞
経路情報解析部２１０は、Ｓ２１０において始点認証局と終点認証局の全ての組み合わせを選択済みか判定する。
始点認証局と終点認証局の全ての組み合わせを選択済みである場合（ＹＥＳ）、パス情報生成方法は終了する。
始点認証局と終点認証局の組み合わせに選択していない組み合わせが残っている場合（ＮＯ）、処理はＳ２１０に戻る。Ｓ２１０において経路情報解析部２１０は始点認証局と終点認証局の未選択の組み合わせを新たに選択する。
【０１２７】
パス情報生成方法（図７）により、検証済み経路情報２０４と拡張制約情報２０５との組み合わせが複数生成される。
【０１２８】
図１５は、実施の形態１におけるパス検証装置３００のパス検証方法を示すフローチャートである。
実施の形態１においてパス検証装置３００が実行するパス検証方法について、図１５に基づいて以下に説明する。
【０１２９】
パス検証方法により検証済み経路情報２０４および拡張制約情報２０５に基づいて検証対象証明書３０１を容易に検証することができる。
パス検証装置３００は、パス情報生成装置２００により生成された検証済み経路情報２０４および拡張制約情報２０５を取得し、予め検証装置記憶部３９０に記憶する。検証済み経路情報２０４と拡張制約情報２０５とは互いに対応付けて記憶される。
パス検証装置３００の各「〜部」は、以下に説明する処理をＣＰＵを用いて実行する。
【０１３０】
まず、パス検証方法の概要について説明する。
【０１３１】
検証対象証明書入力部３１０は、検証対象証明書３０１とトラストアンカー証明書３０２とを入力する（Ｓ３１０）。
経路情報特定部３２０は、検証対象証明書３０１とトラストアンカー証明書３０２とに対応する始点認証局および終点認証局を特定し（Ｓ３２０）、始点認証局と終点認証局とに対応する複数の検証済み経路情報２０４（候補経路情報３０３）を特定する（Ｓ３２１）。
経路情報特定部３２０は、複数の候補経路情報３０３に対応する複数の拡張制約情報２０５（候補制約情報３０４）を特定し（Ｓ３２２）、検証対象証明書３０１が拡張制約を満たす候補制約情報３０４（探索済み制約情報３０５）を特定する（Ｓ３２３）。
経路情報特定部３２０は、探索済み制約情報３０５に対応する候補経路情報３０３（探索済み経路情報３０６）を特定する（Ｓ３２４）。
始点証明書取得部３３０は、探索済み経路情報３０６に示される最下位の証明書３９１（探索済み始点証明書３０７）を取得する（Ｓ３３０）。
検証対象証明書検証部３４０は、探索済み始点証明書３０７を用いて検証対象証明書３０１を検証する（Ｓ３４０）。
【０１３２】
次に、パス検証方法の詳細について説明する。
【０１３３】
＜Ｓ３１０＞
検証対象証明書入力部３１０は、検証対象証明書３０１およびトラストアンカー証明書３０２を入力する。検証対象証明書入力部３１０はトラストアンカー証明書３０２の代わりにトラストアンカー（認証局）の識別情報を入力しても構わない。
例えば、検証対象証明書入力部３１０は、検証対象証明書３０１を含んだ電子メールを受信したメールプログラムから検証対象証明書３０１およびトラストアンカー証明書３０２を入力する。
Ｓ３１０の後、処理はＳ３２０に進む。
【０１３４】
＜Ｓ３２０＞
経路情報特定部３２０は、検証対象証明書３０１の発行者である認証局を始点認証局として特定し、トラストアンカー証明書３０２の発行者である認証局を終点認証局として特定する。
Ｓ３２０の後、処理はＳ３２１に進む。
【０１３５】
＜Ｓ３２１＞
経路情報特定部３２０は、検証装置記憶部３９０に記憶されている複数の検証済み経路情報２０４のうち、Ｓ３２０で特定した始点認証局および終点認証局に対応する検証済み経路情報２０４を特定する。
以下、Ｓ３２１で特定された検証済み経路情報２０４を「候補経路情報３０３」という。
Ｓ３２１の後、処理はＳ３２２に進む。
【０１３６】
図１６は、実施の形態１におけるパス検証方法（Ｓ３２０、Ｓ３２１）の概要図である。
実施の形態１におけるパス検証方法（Ｓ３２０、Ｓ３２１）の具体例について、図１６に基づいて以下に説明する。
【０１３７】
Ｓ３２０において、経路情報特定部３２０は検証対象証明書３０１の発行者「ＣＡｙ２」を始点認証局として特定し、トラストアンカー証明書３０２の発行者「ＣＡｘ１」を終点認証局として特定する。
【０１３８】
Ｓ３２１において、経路情報特定部３２０は、５つの検証済み経路情報２０４のうち、最下位の証明書の被発行者が始点認証局ＣＡｙ２であり、最上位の証明書の発行者が終点認証局ＣＡｘ１である３つの検証済み経路情報２０４＿７〜９を候補経路情報３０３として特定する。
【０１３９】
図１５に戻り、パス検証方法の説明を続ける。
【０１４０】
＜Ｓ３２２＞
経路情報特定部３２０は、検証装置記憶部３９０に記憶されている複数の拡張制約情報２０５のうち、候補経路情報３０３に対応付けて記憶されている拡張制約情報２０５を候補経路情報３０３毎に特定する。
以下、Ｓ３２２で特定された拡張制約情報２０５を「候補制約情報３０４」という。
Ｓ３２２の後、処理はＳ３２３に進む。
【０１４１】
＜Ｓ３２３＞
経路情報特定部３２０は、複数の候補制約情報３０４のうち、検証対象証明書３０１が拡張制約を満たす候補制約情報３０４を特定する。候補制約情報３０４が複数特定された場合、経路情報特定部３２０は特定した複数の候補制約情報３０４から一つを選択する。
以下、Ｓ３２３で特定（および選択）された候補制約情報３０４を「探索済み制約情報３０５」という。
Ｓ３２３の後、処理はＳ３２４に進む。
【０１４２】
＜Ｓ３２４＞
経路情報特定部３２０は、複数の候補経路情報３０３のうち、探索済み制約情報３０５に対応する候補経路情報３０３を特定する。
以下、Ｓ３２４で特定された候補経路情報３０３を「探索済み経路情報３０６」という。
Ｓ３２４の後、処理はＳ３３０に進む。
【０１４３】
図１７は、実施の形態１におけるパス検証方法（Ｓ３２２〜Ｓ３２４）の概要図である。
実施の形態１におけるパス検証方法（Ｓ３２２〜Ｓ３２４）の具体例について、図１７に基づいて以下に説明する。
【０１４４】
Ｓ３２１において、検証済み経路情報２０４＿７〜９が候補経路情報３０３として特定されたものとする。
また、検証対象証明書３０１には被発行者として「Ｓｕｂｊｅｃｔ（Ｎａｍｅ）：Ｃ＝ＪＰ，Ｏ＝ＡＢＣ  Ｉｎｃ，ＯＵ＝ＴｏｋｙｏＢｒａｎｃｈ，ＯＵ＝Ａｃｃｏｕｎｔ，ＣＮ＝Ｙａｍａｄａ  Ｔａｒｏ」が設定されているものとする。
また、検証対象証明書３０１には証明書ポリシーとして「ＣｅｒｔＰｏｌｉｃｅｓ：ｐｏｌ１」が設定されているものとする。
【０１４５】
経路情報特定部３２０は、検証済み経路情報２０４＿７に対応する拡張制約情報２０５＿７、検証済み経路情報２０４＿８に対応する拡張制約情報２０５＿８および検証済み経路情報２０４＿９に対応する拡張制約情報２０５＿９を候補制約情報３０４として特定する（Ｓ３２２）。
経路情報特定部３２０は、拡張制約情報２０５＿７〜９（候補制約情報３０４）のうち、証明書ポリシー「ＣｅｒｔＰｏｌｉｃｅｓ」に検証対象証明書３０１と同じ「ｐｏｌ１」を含み、名前制約「許容Ｎａｍｅ」に検証対象証明書３０１のＳｕｂｊｅｃｔ（Ｎａｍｅ）を含む拡張制約情報２０５＿７を探索済み制約情報３０５として特定する。但し、拡張制約情報２０５＿７の名前制約「除外Ｎａｍｅ」（図示省略）には検証対象証明書３０１のＳｕｂｊｅｃｔ（Ｎａｍｅ）が含まれていないものとする（Ｓ３２３）。
経路情報特定部３２０は、拡張制約情報２０５＿７（探索済み制約情報３０５）に対応する検証済み経路情報２０４＿７を探索済み経路情報３０６として特定する（Ｓ３２４）。
【０１４６】
図１５に戻り、パス検証方法の説明を続ける。
【０１４７】
＜Ｓ３３０＞
始点証明書取得部３３０は、探索済み経路情報３０６に示される最下位の証明書３９１を検証装置記憶部３９０から取得する。該当する証明書３９１が検証装置記憶部３９０に記憶されていない場合、始点証明書取得部３３０は証明書３９１を提供するディレクトリシステムなどから該当する始点証明書を取得する。
以下、Ｓ３３０で取得された始点証明書を「探索済み始点証明書３０７」という。
Ｓ３３０の後、処理はＳ３４０に進む。
【０１４８】
＜Ｓ３４０＞
検証対象証明書検証部３４０は、検証パラメータ３９２に基づいて検証対象証明書３０１を検証すると共に、探索済み始点証明書３０７を用いて検証対象証明書３０１を検証する。
そして、検証対象証明書検証部３４０は、検証対象証明書３０１およびトラストアンカー証明書３０２の入力元（例えば、メールプログラム）に検証結果３０８を出力する。
Ｓ３４０により、パス検証方法は終了する。
【０１４９】
図１８は、実施の形態１におけるパス検証方法（Ｓ３３０、Ｓ３４０）の概要図である。
実施の形態１におけるパス検証方法（Ｓ３３０、Ｓ３４０）の具体例について、図１８に基づいて以下に説明する。
【０１５０】
「Ｃｅｒｔ＿ＣＡｘ１（ＣＡｘ１）→Ｃｅｒｔ＿ＣＡＢｒ（ＣＡｘ１）→Ｃｅｒｔ＿ＣＡｙ１（ＣＡＢｒ）→Ｃｅｒｔ＿ＣＡｙ２（ＣＡｙ１）」を探索済み経路情報３０６とする。
また、検証パラメータ３９２には「検証日時」が設定されているものとする。
【０１５１】
Ｓ３３０において、始点証明書取得部３３０は、探索済み経路情報３０６の最下位の証明書３９１「Ｃｅｒｔ＿ＣＡｙ２（ＣＡｙ１）」を探索済み始点証明書３０７として取得する。
【０１５２】
Ｓ３４０において、検証対象証明書検証部３４０は、検証対象証明書３０１の「有効期間」を検証パラメータ３９２の「検証日時」と比較し、検証対象証明書３０１が有効であるか判定する。検証パラメータ３９２に「失効状態の検証」が指定されている場合、検証対象証明書検証部３４０はＣＲＬやＯＣＳＰサーバを用いて検証対象証明書３０１が有効であるか否かを判定する。
検証対象証明書３０１が無効である場合、検証対象証明書３０１は不当な証明書である。
検証対象証明書３０１が有効な場合、検証対象証明書検証部３４０は、探索済み始点証明書３０７に含まれる公開鍵を用いて検証対象証明書３０１の署名を検証する。
検証対象証明書３０１の署名が正しい場合、検証対象証明書３０１は正当な証明書であり、検証対象証明書３０１の署名が正しくない場合、検証対象証明書３０１は不当な証明書である。
検証対象証明書検証部３４０は、検証対象証明書３０１が正当な証明書であるか、または不当な証明書であるかを示す情報を検証結果３０８として出力する。
【０１５３】
図１９は、実施の形態１におけるパス情報生成装置２００、パス検証装置３００のハードウェア資源の一例を示す図である。
図１９において、パス情報生成装置２００、パス検証装置３００は、ＣＰＵ９１１（マイクロプロセッサ、マイクロコンピュータともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ドライブ装置９０４、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。ドライブ装置９０４は、ＦＤ（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）などの記憶媒体を読み書きする装置である。
【０１５４】
通信ボード９１５は、有線または無線で、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、電話回線などの通信網に接続している。
【０１５５】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
【０１５６】
プログラム群９２３には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラムは、ＣＰＵ９１１により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【０１５７】
ファイル群９２４には、実施の形態において説明する「〜部」で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【０１５８】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
【０１５９】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【０１６０】
証明書検証システム１００は、以下のような形態であっても構わない。
【０１６１】
パス情報生成装置２００とパス検証装置３００とは、同一の筐体（例えば、サーバ装置またはユーザ端末装置）に備わっていても構わない。
【０１６２】
検証対象証明書３０１は、エンドエンティティに対して発行された証明書に限られず、認証局に対して発行された証明書であっても構わない。
この場合は、パス情報生成装置の経路情報解析部２１０が参照する始点認証局リスト２９１において、始点認証局は、「エンドエンティティに対して証明書を発行する認証局」ではなく、「ある認証局について証明書を発行する認証局」と読み替えて動作する。
【０１６３】
名前制約（ＮａｍｅＣｏｎｓｔｒａｉｎｔｓ）は、上記のような名前の識別情報でなく、名前の形式（Ｒｆｃ８２２、ＤｉｓｔｉｎｇｕｉｓｈｅｄＮａｍｅなど）であっても構わない。
【０１６４】
経路情報特定部３２０は、以下のように、基本制約（ＢａｓｉｃＣｏｎｓｔｒａｉｎｔｓ）（拡張制約の一例）に基づいて候補制約情報３０４を限定し、限定した候補制約情報３０４から探索済み制約情報３０５を特定しても構わない。
基本制約は、当該証明書より下位の証明書について上限数を指定する項目である。候補制約情報３０４には当該証明書の識別情報に対応付けて基本制約が設定されるものとする。
経路情報特定部３２０は、候補制約情報３０４に基本制約が設定されている場合、当該証明書より下位の認証局の証明書の数が基本制約として設定されている上限数より大きい候補制約情報３０４を除外する。経路情報特定部３２０は残りの候補制約情報３０４から探索済み制約情報３０５を特定する。
【０１６５】
または、パス検証部２３０が基本制約を満たさない証明書パス２０２を不当な証明書パス２０２として除外しても構わない。
これにより、基本制約を満たさない証明書パス２０２に対応する経路情報２９３は検証済み経路情報２０４に含まれず、パス検証装置３００において探索済み制約情報３０５は効率良く特定される。
【０１６６】
パス制約に関しては、上記したＣｅｒｔｉｆｉｃａｔｅＰｏｌｉｃｉｅｓ、ＮａｍｅＣｏｎｓｔｒａｉｎｔｓ、ＢａｓｉｃＣｏｎｓｔｒａｉｎｔｓに限定されない。例えば、規格や独自の運用で決められた項目を対象としても構わない。
【０１６７】
実施の形態１において、例えば、以下のような証明書検証システム１００について説明した。
【０１６８】
公開鍵証明書の検証を行う際に、認証局の運用によって複雑な証明書パスの構築および検証が必要となる。
証明書検証システム１００は、パス構築の経路を示す情報（検証済み経路情報２０４）と、パスにおける検証項目の検証結果（拡張制約情報２０５）とを利用することで証明書パスの構築を効率化し、証明書パスの構築および検証の高速化を実現する。
【０１６９】
パス情報生成装置２００は、以下の特徴を有する。
・Ｓｕｂｊｅｃｔ間の証明書パスを構築する証明書の識別子の並びである経路情報を生成する。
・証明書パス上の証明書のパス制約（拡張制約）に関わる拡張項目を検証する。
・証明書パスの経路情報とパス制約に関わる拡張項目の検証結果（拡張制約情報２０５）とを合わせて出力する。
・エンドエンティティに証明書を発行している認証局のＳｕｂｊｅｃｔをリスト指定する（始点認証局リスト２９１）。
・ルート認証局（トラストアンカー）のＳｕｂｊｅｃｔをリスト指定する（終点認証局リスト２９２）。
・リスト（始点認証局リスト２９１）に指定された開始Ｓｕｂｊｅｃｔ（始点認証局）とリスト（終点認証局リスト２９２）に指定された終了Ｓｕｂｊｅｃｔ（終点認証局）とに対して存在しうる全ての証明書パスについて、証明書パスを構築し、経路情報（検証済み経路情報２０４、拡張制約情報２０５）を生成する。
・構築した証明書パスについて、指定した検証日時（検証パラメータ２９５）に対して有効期限や失効状態を確認する。
【０１７０】
パス検証装置３００は、以下の特徴を有する。
・検証対象の証明書と信用する証明書（トラストアンカー証明書３０２）との間を構成する証明書パスを構築および検証する際に、パス情報生成装置２００が出力した「証明書パスの経路情報」および「パス制約に関わる拡張項目の検証結果」を参照する。これにより、複数の証明書パスの候補に対して絞り込みを行い、証明書パスを効率良く構築および検証する。
・検証対象の証明書と直接上位の証明書のみの証明書パスを検証する。
【０１７１】
本実施の形態では、パス情報生成装置２００において、複数の証明書パスの検証結果から検証済み経路情報２０４を出力する。また、これに加えてその証明書パスのパス制約に関わる拡張項目を検証した結果である拡張制約情報２０５も出力するようにした。
さらに、パス検証装置３００において、検証済み経路情報２０４と拡張制約情報２０５とを使用することにより、複数の証明書パスの候補それぞれに対して検証対象証明書３０１を検証することなく、適切な証明書パスを選択することが可能である。
さらに、パス検証装置３００において、選択した証明書パスについてパス上の証明書と拡張項目は既に検証済であるため、検証対象証明書３０１とその直接上位の証明書（探索済み始点証明書３０７）とのみから構成される証明書パスを構築し、検証すればよい。
【０１７２】
これらの装置の運用方法の例と効果を示す。
【０１７３】
エンドユーザが証明書の検証を行う場合においては、特許文献１のパスオーソリティに相当する機関が定期的にパス情報生成装置２００を稼動させ、検証済み経路情報２０４と拡張制約情報２０５とを公開する。
エンドユーザは、パス検証装置３００を保持し、公開された検証済み経路情報２０４および拡張制約情報２０５を予め取得しておく。エンドユーザは、証明書の検証が必要になった場合にパス検証装置３００を稼動させることで、複数の証明書パスから適切な証明書パスを効率良く選択する。そして、パス検証装置３００は、検証対象証明書とその直接上位の証明書とのみから構成される証明書パスを構築および検証することで、従来よりも高速に証明書パスの構築および検証を行える。
【０１７４】
また、証明書の検証をエンドユーザに代わって証明書検証サーバが行う場合、証明書検証サーバにおいてパス情報生成装置２００を稼動させ、予め、検証済み経路情報２０４と拡張制約情報２０５を出力しておく。そして、証明書検証サーバは、エンドユーザから証明書の検証依頼を受けた場合に、パス検証装置３００を稼動させ、出力済みの検証済み経路情報２０４および拡張制約情報２０５を使用して証明書パスの検証を実施する。
従来技術のように、複数の証明書パス候補が存在した場合に各々の証明書パスについて構築および検証することなく、適切な証明書パスを選択可能である。さらに、証明書パスの検証処理においても、検証対象の証明書と直接上位の証明書とのみから構成される証明書パスを構築および検証すればよいため、証明書パスの構築および検証が高速化される効果がある。
【０１７５】
実施の形態２．
パス情報生成方法（図７参照）の証明書パス検証処理（Ｓ２３０）において、有効でない証明書２９４を更新する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項については実施の形態１と同様である。
【０１７６】
パス検証部２３０は、選択経路情報２０１に対応する全ての証明書２９４のうち有効でない電子証明書を当該電子証明書に対応する有効な電子証明書に置き換える。
【０１７７】
具体的に、パス検証部２３０は、構築した証明書パスについて、証明書パス上の証明書の有効期限を確認する。パス検証部２３０は、証明書の有効期限が切れていた場合、有効期限が切れた証明書の代わりになる（Ｉｓｓｕｅｒ／Ｓｕｂｊｅｃｔが同じである）証明書を生成装置記憶部２９０やディレクトリシステムなどから取得する。そして、パス検証部２３０は、代わりの証明書を用いて証明書パスを構築し直す。
また、パス検証部２３０は、構築した証明書パスについて、証明書パス上の証明書の失効状態を確認する。パス検証部２３０は、証明書が失効していた場合、失効していた証明書の代わりになる（Ｉｓｓｕｅｒ／Ｓｕｂｊｅｃｔが同じである）証明書を生成装置記憶部２９０やディレクトリシステムなどから取得する。そして、パス検証部２３０は、代わりの証明書を用いて証明書パスを構築し直す。
【０１７８】
これにより、パス情報生成装置２００が検証済み経路情報２０４および拡張制約情報２０５を漏れなく提供できる。
【０１７９】
実施の形態３．
パス情報生成装置２００が最新の検証済み経路情報２０４および拡張制約情報２０５を提供する形態について説明する。
以下、実施の形態１〜２と異なる事項について主に説明する。説明を省略する事項については実施の形態１〜２と同様である。
【０１８０】
パス情報生成装置２００は、パス情報生成方法（図７参照）を定期的に実行する。すなわち、所定の時間間隔で、パス検証部２３０は証明書パス２０２を検証し直し（Ｓ２３０）、パス検証部２３０は検証済み経路情報２０４を特定し直し（Ｓ２３１）、パス制約情報生成部２４０は拡張制約情報２０５を生成し直す（Ｓ２４１）。
【０１８１】
また、証明書２９４の拡張項目が時間の経過に伴って変更されないのであれば、検証済み経路情報２０４に対してのみ定期的にＳ２２０〜Ｓ２３１を実行してもよい。すなわち、拡張制約情報２０５は生成し直さなくてもよい。
【０１８２】
実施の形態３において、パス情報生成装置２００は、一度構築および検証した証明書パスについて、定期的に有効期限や失効状態を確認し、最新の「証明書パスの経路情報（検証済み経路情報２０４）」および「パス制約に関わる拡張項目の検証結果（拡張制約情報２０５）」を提供する。
【０１８３】
現在日時を「検証日時」（検証パラメータ２９５）として証明書パスを構築および検証し直せば（また、その頻度を上げれば）、検証済み経路情報２０４および拡張制約情報２０５を最新の状態に維持することができる。
【０１８４】
パス検証装置３００は、定期的に又はパス情報生成装置２００と同期して又はパス検証方法（図１５参照）の実行時に検証済み経路情報２０４および拡張制約情報２０５を新たに取得する。そして、パス検証装置３００は、新たに取得した検証済み経路情報２０４および拡張制約情報２０５に基づいてパス検証方法を実行する。
【０１８５】
実施の形態４．
パス検証装置３００が探索済み経路情報３０６に対応する証明書パスを検証する形態について説明する。
以下、実施の形態１〜３と異なる事項について主に説明する。説明を省略する事項については実施の形態１〜３と同様である。
【０１８６】
図２０は、実施の形態４におけるパス検証装置３００の機能構成図である。
実施の形態４におけるパス検証装置３００の機能構成について、図２０に基づいて以下に説明する。
【０１８７】
パス検証装置３００は、実施の形態１（図６参照）で説明した始点証明書取得部３３０の代わりにパス構築部３３１（検証側経路証明書取得部の一例）およびパス検証部３３２（特定経路証明書検証部の一例）を備える。
【０１８８】
パス構築部３３１は、経路情報特定部３２０により特定された探索済み経路情報３０６毎に探索済み経路情報３０６に示される複数の証明書３９１（探索済み証明書パス３０６Ｂ）を検証装置記憶部３９０から取得する。
【０１８９】
パス検証部３３２は、パス構築部３３１により取得された全ての証明書３９１が有効であるか否かを探索済み経路情報３０６毎に検証する。そして、パス検証部３３２は、全ての証明書３９１が有効である探索済み経路情報３０６を特定する。
検証対象証明書検証部３４０は、パス検証部３３２により特定された探索済み経路情報３０６に最下位の証明書として示される証明書３９１に基づいて、検証対象証明書３０１が正当な証明書であるか否かを検証する。
【０１９０】
図２１は、実施の形態４におけるパス検証装置３００のパス検証方法を示すフローチャートである。
実施の形態４においてパス検証装置３００が実行するパス検証方法について、図２１に基づいて以下に説明する。
【０１９１】
パス検証装置３００は、実施の形態１（図１５）で説明したＳ３３０の代わりに、Ｓ３３０Ｂ、Ｓ３３１Ｂを実行する。
以下に、Ｓ３３０ＢおよびＳ３３１Ｂについて説明する。
【０１９２】
＜Ｓ３３０Ｂ＞
パス構築部３３１は、探索済み経路情報３０６に示される複数の証明書３９１を検証装置記憶部３９０から取得し、取得した複数の証明書３９１を含んだ証明書パスを生成する。探索済み経路情報３０６が複数有る場合、パス構築部３３１は、証明書パスを探索済み経路情報３０６毎に生成する。
該当する証明書３９１が検証装置記憶部３９０に記憶されていない場合、パス構築部３３１は、証明書３９１を提供するディレクトリシステムなどから該当する証明書３９１を取得する。
以下、Ｓ３３０Ｂで生成された証明書パスを「探索済み証明書パス３０６Ｂ」という。
Ｓ３３０Ｂの後、処理はＳ３３１Ｂに進む。
【０１９３】
＜Ｓ３３１Ｂ＞
パス検証部３３２は、パス情報生成方法（図７参照）の証明書パス検証処理（Ｓ２３０）と同様に、探索済み証明書パス３０６Ｂに含まれる複数の証明書３９１それぞれが有効であるか否かを探索済み証明書パス３０６Ｂ毎に検証する。例えば、パス検証部３３２は、現在日時と証明書３９１の有効期間とを比較し、証明書３９１が有効であるか否かを判定する。また、パス検証部３３２は、証明書３９１が有効であるか否かをＣＲＬやＯＣＳＰサーバに基づいて判定する。
パス検証部３３２は、無効な証明書３９１を含まない探索済み証明書パス３０６Ｂを特定する。パス検証部３３２は、複数の探索済み証明書パス３０６Ｂを特定した場合、特定した複数の探索済み証明書パス３０６Ｂから一つを選択する。
以下、Ｓ３３１Ｂで特定（および選択）された探索済み証明書パス３０６Ｂに含まれる最下位の証明書３９１を「探索済み始点証明書３０７」という。
Ｓ３３１Ｂの後、処理はＳ３４０に進む。
【０１９４】
Ｓ３４０において、検証対象証明書３０１は探索済み始点証明書３０７を用いて検証される。
【０１９５】
パス検証部３３２は、実施の形態２と同様に、無効な証明書３９１を更新し、全ての探索済み証明書パス３０６Ｂを有効にしてもよい。
【０１９６】
実施の形態４において、例えば、以下のような証明書検証システム１００について説明した。
【０１９７】
パス検証装置３００は、証明書パス（探索済み証明書パス３０６Ｂ）上の全ての証明書について有効期限や失効状態を確認する。
【０１９８】
この場合、検証対象証明書３０１とその直接上位の証明書（探索済み始点証明書３０７）のみから構成される短い証明書パスを構築および検証することによる効率化の効果は実施の形態１に比べて低下する。
しかし、複数の証明書パスに対して証明書パスを効率良く選択できるという実施の形態１の効果に加えて、有効期限や失効状態について証明書パスの最新の状態を確認してから検証対象証明書３０１を検証できるという効果を有する。
【０１９９】
実施の形態５．
パス検証方法（図１５参照）の探索済み制約情報特定処理（Ｓ３２３）において、候補制約情報３０４に設定されている複数の拡張制約を所定の優先度順に検証対象証明書３０１と比較して、探索済み制約情報３０５を特定する形態について説明する。
以下、実施の形態１〜４と異なる事項について主に説明する。説明を省略する事項については実施の形態１〜４と同様である。
【０２００】
パス検証装置３００の経路情報特定部３２０は、複数の制約条件それぞれの優先度が設定された制約優先情報（後述する拡張項目リスト）を入力する。そして、経路情報特定部３２０は、検証対象証明書３０１が経路情報の経路制約情報（候補制約情報３０４）に含まれる制約条件（拡張制約）を満たすか否かを制約優先情報に設定された優先度の順に判定する。
【０２０１】
例えば、パス検証装置３００の検証装置記憶部３９０には、拡張項目毎に優先度を示す拡張項目リストを予め記憶する。
ここで、拡張項目リストには、証明書ポリシー（ＣｅｒｔｉｆｉｃａｔｅＰｏｌｉｃｉｅｓ）の優先度「１」、名前制約（ＮａｍｅＣｏｎｓｔｒａｉｎｔｓ）の優先度「２」が設定されているものとする。
経路情報特定部３２０は、拡張項目リストに従って以下の手順で探索済み制約情報３０５を特定する。
【０２０２】
手順１：複数の候補制約情報３０４のうち検証対象証明書３０１が証明書ポリシーを満たす候補制約情報３０４を特定する。
手順２：手順１で特定された候補制約情報３０４のうち検証対象証明書３０１が名前制約を満たす候補制約情報３０４を特定する。
【０２０３】
経路情報特定部３２０は手順２で特定した候補制約情報３０４を探索済み制約情報３０５とする。
【０２０４】
これにより、より早い段階（例えば、上記の手順１）で適切ではない候補制約情報３０４を排除し、効率良く探索済み制約情報３０５を特定できる。
【０２０５】
実施の形態５では、経路情報特定部３２０が指定された拡張項目の優先度に従った順番で拡張項目を検証する形態について説明した。
【符号の説明】
【０２０６】
１００  証明書検証システム、１０１  パスオーソリティ、１０２  ユーザ端末、１０３  検証対象証明書、１０４  トラストアンカー、１０５  トラストアンカー証明書、２００  パス情報生成装置、２０１  選択経路情報、２０２  証明書パス、２０４  検証済み経路情報、２０５  拡張制約情報、２１０  経路情報解析部、２２０  パス構築部、２３０  パス検証部、２４０  パス制約情報生成部、２９０  生成装置記憶部、２９１  始点認証局リスト、２９２  終点認証局リスト、２９３  経路情報、２９４  証明書、２９５  検証パラメータ、２９６  拡張項目リスト、３００  パス検証装置、３０１  検証対象証明書、３０２  トラストアンカー証明書、３０３  候補経路情報、３０４  候補制約情報、３０５  探索済み制約情報、３０６  探索済み経路情報、３０６Ｂ  探索済み証明書パス、３０７  探索済み始点証明書、３０８  検証結果、３１０  検証対象証明書入力部、３２０  経路情報特定部、３３０  始点証明書取得部、３３１  パス構築部、３３２  パス検証部、３４０  検証対象証明書検証部、３９０  検証装置記憶部、３９１  証明書、３９２  検証パラメータ、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ドライブ装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
0005448892.tif 000002
【図２】
0005448892.tif 000003
【図３】
0005448892.tif 000004
【図４】
0005448892.tif 000005
【図５】
0005448892.tif 000006
【図６】
0005448892.tif 000007
【図７】
0005448892.tif 000008
【図８】
0005448892.tif 000009
【図９】
0005448892.tif 000010
【図１０】
0005448892.tif 000011
【図１１】
0005448892.tif 000012
【図１２】
0005448892.tif 000013
【図１３】
0005448892.tif 000014
【図１４】
0005448892.tif 000015
【図１５】
0005448892.tif 000016
【図１６】
0005448892.tif 000017
【図１７】
0005448892.tif 000018
【図１８】
0005448892.tif 000019
【図１９】
0005448892.tif 000020
【図２０】
0005448892.tif 000021
【図２１】
0005448892.tif 000022