(57)【特許請求の範囲】
【請求項１】
互いに異なる階層にあり、それぞれ階層認証で使用する公開鍵暗号方式の階層認証用鍵と相互認証で使用する公開鍵暗号方式の相互認証用鍵が異なる第１認証局装置及び第２認証局装置と、上記第１認証局に登録された第１認証局の利用者装置とを含む認証システムの上記第１及び第２認証局装置間の相互認証パスを構築する方法において、
上記第１認証局装置は自分の相互認証用秘密鍵で上記第２認証局装置の相互認証用公開鍵を認証する相互証明書を生成し、
上記第２認証局装置は自分の相互認証用秘密鍵で自分の階層認証用公開鍵を認証した公開鍵証明である認証連鎖変換証明書を生成し、
更に、自分の階層認証用公開鍵を自分の階層認証用秘密鍵で認証した階層認証用公開鍵証明書を生成し、
上記第１認証局装置の利用者装置は、上記認証連鎖変換証明書を使って上記階層認証用公開鍵証明書の署名を検証し、
上記相互証明書を使って上記認証連鎖変換証明書の署名を検証することを特徴とする相互認証パス構築方法。
【請求項２】
請求項１記載の相互認証パス構築方法において、
上記各証明書は予め決めたフォーマットに従って少なくとも発行者名と、被認証者名と、その証明書に与えた署名を検証するための公開鍵のハッシュ値を含むAuthorityKeyIdentifierと、被認証公開鍵のハッシュ値を含むSubjectKeyIdentifierとを有し、
上記第１認証局装置は、上記相互認証用公開鍵のハッシュ値を上記相互証明書のSubjectKeyIdentifierに記録し、
上記第２認証局装置は、上記認証連鎖変換証明書のAuthorityKeyIdentifierに自分の相互認証用公開鍵のハッシュ値を記録し、更にSubjectKeyIdentifierに自分の階層認証用公開鍵のハッシュ値を記録し、
上記第１認証局装置の利用者装置は更に上記第２認証局装置の上記階層認証用公開鍵証明書のAuthorityKeyIdentifier中のハッシュ値と上記認証連鎖変換証明書のSubjectKeyIdentifier中のハッシュ値の一致を検証し、
上記認証連鎖変換証明書のAuthorityKeyIdentifier中のハッシュ値と上記相互証明書のSubjectKeyIdentifier中のハッシュ値の一致を検証するステップとを有することを特徴とする相互認証パス構築方法。
【請求項３】
各証明書は予め決めたフォーマットに従って少なくとも発行者名と、被認証者名と、その証明書に与えた署名を検証するための公開鍵のハッシュ値を含むAuthorityKeyIdentifierと、被認証公開鍵のハッシュ値を含むSubjectKeyIdentifierとを有し、互いに異なる階層にあり、それぞれ階層認証で使用する公開鍵暗号方式の階層認証用鍵と相互認証で使用する公開鍵暗号方式の相互認証用鍵が異なる第１認証局装置及び第２認証局装置と、上記第１認証局装置に登録された利用者装置とを含む認証システムにおける上記第１及び第２認証局装置間の相互認証パスを構築する上記利用者装置であり、
上記第１認証局装置から、上記第２認証局装置の相互認証用公開鍵に対し上記第１認証局装置の相互認証用秘密鍵で認証を与えた相互証明書と、上記第２認証局装置から、上記第２認証局装置の階層認証用公開鍵に対し、階層認証用秘密鍵で認証を与えた階層認証用公開鍵証明書と、上記第２認証局装置の階層認証用公開鍵に対し相互認証用秘密鍵により認証を与えた認証連鎖変換証明書とを受信し、上記階層認証用公開鍵証明書のAuthorityKeyIdentifier中のハッシュ値と、上記認証連鎖変換証明書のSubjectKeyIdentifier中のハッシュ値との一致を検証し、上記認証連鎖変換証明書のAuthorityKeyIdentifier中のハッシュ値と上記相互証明書のSubjectKeyIdentifier中のハッシュ値との一致を検証するAuthorityKeyIdentifier一致証明書検索手段と、
上記一致証明書検索手段により一致が検証された上記階層認証用公開鍵証明書の署名を、上記認証連鎖変換証明書で認証された上記階層認証用公開鍵により検証し、上記認証連鎖変換証明書の署名を、上記相互証明書で認証された上記相互認証用公開鍵で検証する署名検証手段、
とを含むことを特徴とする利用者装置。
【請求項４】
各証明書は予め決めたフォーマットに従って少なくとも発行者名と、被認証者名と、その証明書に与えた署名を検証するための公開鍵のハッシュ値を含むAuthorityKeyIdentifierと、被認証公開鍵のハッシュ値を含むSubjectKeyIdentifierとを有し、互いに異なる階層にあり、それぞれ階層認証で使用する公開鍵暗号方式の階層認証用鍵と相互認証で使用する公開鍵暗号方式の相互認証用鍵が異なる第１認証局装置及び第２認証局装置と、上記第１認証局装置に登録された利用者装置とを含む認証システムにおける上記利用者装置での上記第１及び第２認証局装置間の相互認証パスを構築する方法であり、上記利用者装置は、
上記第１認証局装置から、上記第２認証局装置の相互認証用公開鍵に対し上記第１認証局装置の相互認証用秘密鍵で認証を与えた相互証明書を受信し、
上記第２認証局装置から、上記第２認証局装置の階層認証用公開鍵に対し、階層認証用秘密鍵で認証を与えた階層認証用公開鍵証明書と、上記第２認証局装置の階層認証用公開鍵に対し相互認証用秘密鍵により認証を与えた認証連鎖変換証明書とを受信し、
上記公開鍵証明書のAuthorityKeyIdentifier中のハッシュ値と、上記認証連鎖変換証明書のSubjectKeyIdentifier中のハッシュ値との一致をＡＫＩ一致証明書検索手段で検証し、一致すれば、
上記階層認証用公開鍵証明書の署名を、上記認証連鎖変換証明書で署名検証手段により認証された上記階層認証用公開鍵により検証し、合格すれば、
上記認証連鎖変換証明書のAuthorityKeyIdentifier中のハッシュ値と上記相互証明書のSubjectKeyIdentifier中のハッシュ値との一致をＡＫＩ一致証明書検索手段で検証し、一致すれば、
上記認証連鎖変換証明書の署名を、上記相互証明書で認証された上記相互認証用公開鍵で署名検証手段により検証する、
ことを特徴とする利用者装置の相互認証パス構築方法。
【請求項５】
請求項４に記載の方法をコンピュータで実施するプログラム。
【請求項６】
各証明書は予め決めたフォーマットに従って少なくとも発行者名と、被認証者名と、その証明書に与えた署名を検証するための公開鍵のハッシュ値を含むAuthorityKeyIdentifierと、被認証公開鍵のハッシュ値を含むSubjectKeyIdentifierとを有し、利用者装置が登録された第１認証局装置と、上記第１認証局装置と互いに異なる階層にあり、それぞれ階層認証で使用する公開鍵暗号方式の階層認証用鍵と相互認証で使用する公開鍵暗号方式の相互認証用鍵が異なる第２認証局装置との間に相互認証パスを構築するシステムにおける上記第２認証局装置は、
自局の相互認証用公開鍵が入力され、そのハッシュ値を作成する手段と、
自局の階層認証用公開鍵が入力され、そのハッシュ値を作成する手段と、
認証番号と、発行者名と、発行期限と、被認証者名と、上記自局の階層認証用公開鍵と、上記自局の相互認証用公開鍵のハッシュ値と、上記自局の階層認証用公開鍵のハッシュ値とが入力され、上記相互認証用公開鍵を上記AuthorityKeyIdentifierのKeyIdentifier要素とし、上記階層認証用公開鍵のハッシュ値を上記AuthorityKeyIdentifierのKeyIdentifier要素として非署名公開鍵証明書に記録する手段と、
上記非署名公開鍵証明書及び上記相互認証用公開鍵と対をなす相互認証用秘密鍵が入力され、その相互認証用秘密鍵で上記非署名公開鍵証明書に記録された情報を署名して認証連鎖変換証明書を作成する手段とを、
を有することを特徴とする。
【請求項７】
請求項６に記載した第２認証装置として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上で階層認証に用いる鍵と相互認証に用いる鍵で異なる鍵を使用する認証局（Certification Authority ： CA と略す）、及びそのCAに登録する利用者装置と通信を行う利用者装置における階層認証で使用した公開鍵証明書から相互証明書への相互認証パスの構築方法及びその利用者装置と認証局の処理プログラムに関する発明である。
【０００２】
【従来の技術】
現実社会の企業構造、企業間取引構造、対消費者取引を観察してみると、現実社会の取引範囲は非常に大きなものであり、この幅広い取引範囲を電子社会に置き換えた時、１つのCAにすべての利用者が登録している状況というのは考えにくい。そのため、CAを利用した電子認証を実現するためには、各CAがお互いの公開鍵を認証し合う相互認証、あるいは、上位CAが下位CAを認証し、この上位CAが下位CAを認証する認証プロセスが集まることにより階層構造を形成する階層認証を用いて、自分の信頼するアンカーまで認証パスと呼ばれる信頼チェーンを構築することにより異なるCAに登録する利用者間において公開鍵証明書を相互流通させることが必要になる。
【０００３】
この階層認証及び相互認証における認証パスを構築する方法として、階層認証用の鍵と相互認証用の鍵で同じものを使用する場合には、署名（鍵）による認証パス構築が用いられている。
しかし、この階層認証用の鍵と相互認証用の鍵で異なる鍵を使用する場合、署名（鍵）による相互認証パスを構築することはできないという問題点が発生する。これは階層内で使用している公開鍵証明書内の署名を検証するための公開鍵を含む公開鍵証明書が階層で使用している公開鍵証明書しか存在しない、つまり、階層認証で使用している公開鍵証明書から相互証明書への認証パスがないために起こる。
【０００４】
以下に図６Ａ，６Ｂを用いて具体的に説明する。利用者Ａは公開鍵Apと秘密鍵Asのペアを有し、利用者Ｂは公開鍵Bpと秘密鍵Bsのペアを有しているものとする。
認証局CAα，CAβはそれぞれ以下の公開鍵と秘密鍵のペアを有しているものとする。
0003791758.tif 000002
また、利用者Ａは自分の公開鍵Apに対する認証局CAαの階層認証用秘密鍵α1sによる署名を公開鍵証明書C11として有している。この証明書C11を[Ap/α1s]と表す。利用者Ｂは自分の公開鍵Bpに対する認証局CAβの階層認証用秘密鍵β1sによる署名を公開鍵証明書C21として有している。この証明書を[Bp/β1s]と表す。認証局CAαは自分の階層認証用公開鍵α1pに対する階層認証用秘密鍵α1sによる署名を階層認証用公開鍵証明書（[α1p/α1s]と表す）C12として有し、自分の相互認証用公開鍵α2pに対する階層認証用秘密鍵α1sによる署名を相互認証用公開鍵証明書（[α2p/α1s]と表す）C13として有している。認証局CAαは更に、認証局CAβの相互認証用公開鍵β2pに対する自分の相互認証用秘密鍵α2sによる署名を相互証明書（[β2p/α2s]と表す）C14として有している。
【０００５】
認証局CAβは自分の相互認証用公開鍵β2pに対する自分の階層認証用秘密鍵β1sによる署名を相互認証用公開鍵証明書（[β2p/β1s]と表す）C22として有し、自分の階層認証用公開鍵β1pに対する自分の階層認証用秘密鍵β1sによる署名を階層認証用公開鍵証明書（[β1p/β1s]と表す）C23として有し、更に、認証局CAαの相互認証用公開鍵α2pに対する自分の相互認証用秘密鍵β2sによる署名を相互証明書（[α2p/β2s]と表す）C24として有している。
今、利用者Ｂが利用者Ａの公開鍵証明書[Ap/α1s]C11の正当性を検証するものとする。利用者Ｂは利用者Ａの公開鍵証明書C11を得て、その公開鍵証明書C11を検証するための認証局CAαの公開鍵α1pの公開鍵証明書[α1p/α1s]C12とを認証局CAαから得て、認証局CAαの相互認証用公開鍵α2pに対する認証局CAβの公開鍵証明書[α2p/β2s]C24と、認証局CAβの相互認証用公開鍵β2pに対する公開鍵証明書[β2p/β1s]C22と、認証局CAβの階層認証用公開鍵β1pに対する公開鍵証明書[β1p/β1s]C23を認証局CAβから得る。
【０００６】
図６Ｂに示すように、利用者Ａの公開鍵Apに対する証明書C11の秘密鍵α1sによる署名は、証明書C12によって認証されている認証局CAαの階層認証用公開鍵α1pを使って検証することができる。相互認証用公開鍵α2pに対する証明書C24の秘密鍵β2sによる署名は、証明書C22によって認証されている相互認証用公開鍵β2pを使って検証することができる。ところが、証明書C12の秘密鍵による署名を検証するための公開鍵を認証局が認証した証明書は存在しない。そのため、図６Ｂで示すように、認証パスは証明書C12とC24の間で断絶している。これは、利用者Ａの公開鍵Apを認証する公開鍵証明書C11に認証局CAαが階層認証用秘密鍵α1sを用いて作成した署名を検証するための公開鍵証明書は、認証局CAαの自己認証公開鍵証明書[α1p/α1s]C12しか存在しないため、相互証明書への認証パスを署名（鍵）により構築することができないために起きる問題である。
【０００７】
この問題点を解決するために一般に用いられる手段として、相手の階層内CAに対して発行した公開鍵証明書から検証者の保持する相互証明書への認証パスをDN(DistinguishedName)と呼ばれるネットワーク上における対象者の名前により検索することにより、階層認証で使用した公開鍵証明書から相互証明書への相互認証パスを構築する方式であるDNによる相互認証パス構築方式がある。この方法を説明するために、まず、ITU Rec.X.509, ISO/IEC9594-8で規定されている認証書のフォーマットを図７を参照して説明する。
【０００８】
図７に示すように、公開鍵証明書100は必須項目として認証番号(SerialNumber)101、発行者名(issuer)102、有効期限(validty)103、被認証者名(subject)104、被認証者の公開鍵情報(SubjectPublicKeyInfo)105などを含み、拡張項目として認証局鍵識別子(AuthorityKey Identifier)106、被認証者鍵識別子(SubjectKeyIdentifier)107などを含む。これらの項目全体に対し、発行者の秘密鍵を使ってディジタル署名が付けられる。発行者名102及び被認証者名104はそれぞれDistinguishedName (以下DNと呼ぶ)と呼ばれる互いに重複するものがない唯一の識別名でそれぞれ表される。被認証者の公開鍵情報105はこの公開鍵証明書100が認証を与える対象である被認証者の公開鍵であり、鍵を表すアルゴリズム情報と鍵自体（ビット列）からなる。AuthorityKeyIdentifier (以下AKIと呼ぶ)106には、鍵識別子(KeyIdentifier, 以下KeyIDと表す)として公開鍵証明書100に対する署名を検証するための、発行者の公開鍵のハッシュ値がポインタとして記録される。更に、AKIにはAuthorityCertIssuer(以下ACIと呼ぶ)として、発行者名が記録され、AuthorityCertSerialNumber(以下ACSNと呼ぶ) としてその公開鍵証明書の署名を検証する公開鍵証明書の認証番号が記録される。SubjectKeyIdentifier (以下SKIと呼ぶ)107には被認証公開鍵のハッシュ値が記録される。
【０００９】
図６Ｂの認証パスにおける証明書C12は認証局CAαが自分の階層認証用公開鍵α1pに対し認証を与えるものであり、図７のフォーマットの発行者名102と被認証者名104には認証局CAαの同じDNが記録されている。これをDN(CAα)と表すことにする。一方、証明書C24は、認証局CAβが認証局CAαの相互認証用公開鍵α2pに対し認証を与えるものであり、従って、その証明書C24の発行者名102には認証局CAβのDN(CAβ)が、また被認証者名104には認証局CAαのDA(CAα)が書き込まれている。そこで、DNを利用した相互認証パスの構築は、証明書C12の発行者名DNと証明書C24の被認証者名DNが同じDN(CAα)であることに着目して証明書CA12とCA24間の認証パスを構築している。
【００１０】
【発明が解決しようとする課題】
しかし、DNによる認証パス構築方式は図６Ａにおいて、階層認証で使用している公開鍵証明書C12から相互証明書C24へのパスを同じ認証局CAαのDNにより構築し、その相互認証パス構築内において鍵の違いは意識しないするため、次の２つの問題点をもつ。
(1) 悪意をもつ第３の認証局CAγが、相互認証しているDN(CA)を語ることによりなりすましが可能になる。
【００１１】
例えば、認証局CAαとCAβが相互認証しているとすると、認証局CAγがCAαのDN(CAα)を語った場合に、CAγのDN(CA)とCAαのDN(CA)が同じDN(CAα)になるため、CAγがCAαになりすましていることを認証局CAβに登録している利用者Ｂは検証することができない。
(2) 署名（鍵）による認証パス構築において可能であった“同じDNに属する鍵を使用目的に応じて使い分ける”ことがDNによる相互認証パス構築方式ではできない。
【００１２】
例えば、同じDN配下で鍵Ａ（人事部社員に対して使用している鍵）、鍵Ｂ（営業部社員に対して使用している鍵）、鍵Ｃ（他企業CAとの相互認証に使用している鍵）を使用している時、営業部社員のみ他企業に登録するユーザとのやりとりができるといった鍵の使い分けができない。
以上を踏まえ、本発明は、従来のDNによる相互認証パス構築方式における課題である“なりすましの発生”、“同じDNに属する鍵の使用目的に応じた使い分け不可能”を解決する相互認証パス構築方法を提供するところに目的がある。
【００１３】
【課題を解決するための手段】
この発明によれば、互いに異なる階層にあり、それぞれ階層認証で使用する鍵と相互認証で使用する鍵が異なる第１認証局及び第２認証局と、上記第１認証局に登録された利用者とを含む認証システムにおける上記第１及び第２認証局間の相互認証パスを構築する方法において、
上記第２認証局内で相互認証用に使用している鍵により上記第２認証局内で上記階層認証用に使用している鍵を認証した公開鍵証明書である認証連鎖変換証明書を生成し、それにより、階層認証で使用している公開鍵証明書から相互証明書への相互認証パスを構築することにより相互認証パスを構築する。
【００１４】
上記認証パスを構築する方法を実施する認証システムにおける利用者装置は、上記第１認証局から、上記第２認証局の相互認証用公開鍵に対し上記第１認証局の相互認証用秘密鍵で認証を与えた相互証明書と、上記第２認証局から、上記第２認証局の階層認証用公開鍵に対し、階層認証用秘密鍵で認証を与えた階層認証用公開鍵証明書と、上記第２認証局の階層認証用公開鍵に対し相互認証用秘密鍵により認証を与えた認証連鎖変換証明書とを受信し、上記公開鍵証明書のAKI中のハッシュ値と、上記認証連鎖変換証明書のSKI中のハッシュ値との一致を検証し、上記認証連鎖変換証明書のAKI中のハッシュ値と上記相互証明書のSKI中のハッシュ値との一致を検証するAKI一致証明書検索手段と、
上記階層認証用公開鍵証明書の署名を、上記認証連鎖変換証明書で認証された上記階層認証用公開鍵により検証し、上記認証連鎖変換証明書の署名を、上記相互証明書で認証された上記相互認証用公開鍵で検証する署名検証手段、
とを含むように構成される。
【００１５】
上記相互認証パス構築方法において、上記第２認証局が実行する処理のプログラムは、
AKIのKeyID要素に自局の相互認証用公開鍵のハッシュ値を記録するステップと、
SKIに自局の階層認証用公開鍵のハッシュ値を記録するステップと、
自局の相互認証用秘密鍵で上記階層認証用公開鍵に対し自局の上記相互認証用秘密鍵を使って認証することにより認証連鎖変換証明書を生成するステップ、
とを含むように構成される。
【００１６】
このように、この発明では、階層認証において使用している公開鍵証明書から相互証明書への相互認証パスを構築する際、相互認証用に使用している鍵により自CA内で階層認証用に使用している鍵を認証した公関鍵証明書である認証連鎖変換証明書により認証パス構築を行うことを最も主要な特徴とする。
従来の技術では、階層認証において使用している公関鍵証明書から相互証明書への相互認証パスを構築する際、DNにより相互認証パスを構築していたが、本発明では、公関鍵証明書を用いることにより、階層認証用の鍵と相互認証用の鍵が同じ場合における認証パス構築と同じく、署名(鍵)による認証パス構築が可能となる点が異なる。
【００１７】
【発明の実施の形態】
この発明による相互認証パス構築方法の原理を図１Ａ、１Ｂを参照して説明する。ただし、この例においても利用者Ｂが利用者Ａの公開鍵証明書[Ap/α1s]C11を検証する場合を示す。図１Ｂに示すように、この発明では、図６Ａ，６Ｂの従来方法による認証パスにおいてパスが断絶する階層認証用公開鍵証明書[α1p/α1s]C12と相互証明書[α2p/β2s]C24との間に、新たに被検証側認証局CAαの相互認証用秘密鍵α2sにより同じ被検証側認証局CAαの階層認証用公開鍵α1pを認証した（署名した）公開鍵証明書[α1p/α2s]C25を設けている。これにより、階層認証用公開鍵証明書C12の秘密鍵α1sによる署名を、公開鍵証明書C25で認証された公開鍵α1pによって検証することができ、公開鍵証明書C25の秘密鍵α2sによる署名を、相互証明書C24で認証された公開鍵α2pによって検証することができるので、公開鍵証明書C12とC24間に認証パスが構築されたことになる。従って、異なる階層にある利用者Ａの公開鍵証明書C11に対する認証パスを検証者（利用者Ｂ）と同じ階層の公開鍵証明書C23にまで接続することができる。
【００１８】
この発明の原理による相互認証パス構築を実施するシステムの構成例を図２を参照して以下に説明する。この発明を実施する基本システムは、相互証明書発行側の認証局装置CAβと、相互証明書の発行を受ける側の認証局装置CAαと、相互証明書発行側の認証局CAβの階層に属する利用者Ｂの利用者装置５０Ｂとを含む。この例では、利用者Ｂは検証者であり、従って認証パス構築者でもある。認証局CAα側の階層には被検証者である利用者Ａの利用者装置が属するが、図示していない。
【００１９】
認証局装置CAβは、認証パスの構築を行う事前作業として、認証局CAαの相互証明用公開鍵α2pに対する認証書である相互証明書[α2p/β2s]C24を発行する際、相互証明書発行時SKI挿入手段１１を用いて、相互証明書内拡張要素であるSKI107(図７参照)にその相互証明書が認証する公開鍵α2pのハッシュ値h(α2p)を挿入する。
相互証明書C24が発行された後、認証局装置CAαは認証連鎖変換証明書作成手段１２を用いて、相互認証用に使用している秘密鍵α2sを用いて、自CAα内で階層認証用に使用している公開鍵α1pを認証した公開鍵証明書[α1p/α2s]である認証連鎖変換証明書C25を作成する。なお、その認証連鎖変換証明書拡張要素にはAKI106(図７)内要素であるKeyIDに本公開鍵証明書C25の署名を検証するための公開鍵である相互認証用公開鍵α2pのハッシュ値h(α2p)を挿入する。
【００２０】
検証者装置５０ＢのAKI抽出手段１３は、相互認証パスを構築する際、署名検証対象の公開鍵証明書[Ap/α1s]，[α1p/α1s]である階層認証書（即ち公開鍵証明書C11,C12）の検証に使用され、正しく認証パスが構築できている全ての公開鍵証明書の拡張要素からAKI106内要素であるKeyIDに格納されている公開鍵のハッシュ値h(α1p)を抽出する。
AKI一致証明書検索手段１４は、署名検証用の証明書として入力された公開鍵証明書C25から、その公開鍵証明書の拡張要素であるSKIに設定されているハッシュ値がAKI抽出手段１３で抽出した鍵ハッシュ値h(α1p)に一致する公開鍵証明書を検索／抽出する。
【００２１】
署名検証手段１５は、AKI一致証明書検索手段１４により抽出した公開鍵証明書内公開鍵により、署名検証対象の公開鍵証明書の署名の署名検証を行う。
パス構築手段１６は、署名検証手段１５において署名検証用に使用した公開鍵証明書の識別情報を認証パス管理テーブル１８に書き込む。
相互証明書到達確認手段１７は、パス構築手段１６において用いた署名検証用に使用した公開鍵証明書が、検証者自身が登録する認証局CAβから発行された相互証明書であるかをチェックし、検証者自身が登録する認証局CAβから発行された相互証明書であった場合には、本相互認証パス構築を終了し、そうでなかった場合には、署名検証手段１５において署名認証用に使用した公開鍵証明書を署名検証対象の公開鍵証明書、相互証明書を署名検証用の証明書とみなして、AKI抽出手段１３から同様のことを繰り返す。
【００２２】
具体的には、証明書C25のAKIをAKI抽出手段１３で抽出し、AKI一致証明書検索手段１４によりAKIと証明書C24のSKIにそれぞれ記録されているハッシュ値が一致することを確認し、これらの証明書C24,C25の署名を署名検証手段１５で検証し、正しければパス構築手段１６の後、相互証明書到達確認手段１７により認証パスを構築する。このように、連続する証明書のAKIとSKIに記録されているハッシュ値の一致を検証することにより、証明書の署名の検証に使用すべき公開鍵を短時間で識別することができる。
【００２３】
本発明による相互認証パスの構築処理の具体的な実施例を、図１を例にとり、図４、５、６を参照して説明する。
図３は認証局CAβの処理を示す。
ステップＳ１β：  認証局CAαからの相互認証用鍵登録申請のトリガーにより、認証局CAβにおいて認証局CAαの相互認証用公開鍵α2pに対して相互認証用秘密鍵β2sにより署名した相互証明書[α2p/β2s]C24を作成するが、その処理過程において相互証明書C24とその認証局CAαの相互証明書用公開鍵α2pを入力として相互証明書発行時SKI挿入手段１１（図２）により、相互証明書C24の拡張要素であるSKIにその相互証明書の公開鍵α2pのハッシュ値h(α2p)が挿入される。
【００２４】
なお、相互証明書拡張要素内SKIに相互認証用公開鍵のハッシュ値を挿入する方法については、既存のASN.1コンパイラソフトウェア及びコンピュータなどで一般的に使用されているＣ言語コーディング方法により実現可能である。
図４は認証局CAαの処理を示す。
ステップＳ１α：  認証局CAβに対する相互認証用鍵登録申請に対して認証局CAβから返却されてきた報告書内の相互証明書[α2p/β2s]C24を認証局CAαのデータベース（図示せず）に登録すると共に、認証連鎖変換証明書作成手段１２（図２）は、認証局CAβに登録した相互認証用公開鍵α2pを含む鍵対と、自身の認証局CAαに登録してある階層認証用公開鍵α1pを入力として、自身の認証局CAαに登録してある階層認証用公開鍵α1pに対して認証局CAβに登録した相互認証用公開鍵α2pに対する秘密鍵α2sにより署名した認証連鎖変換証明書[α1p/α2s]C25を作成すると同時に、その処理過程において認証連鎖変換証明書C25内の拡張要素AKIのKeyIDに、認証局CAβに登録した相互認証用公開鍵α2pのハッシュ値h(α2p)が挿入される。また、SKIに被認証公開鍵α1pのハッシュ値h(α1p)が記録される。
【００２５】
なお、認証連鎖変換証明書を作成する方法については、既存の公開鍵証明書作成において用いられている方法を用いて容易に実現可能である。
図５は検証者（利用者Ｂ）の処理を示す。
ステップＳ１：  検証に必要な証明書C12,C24,C25を収集する。
ステップＳ２：  実際の認証パス構築において、証明書中のAKIの認証発行者(ACI)と認証番号(ACSN)を用いた署名(鍵)による認証パス構築、あるいは  AKIのKeyID及びSKIを用いた署名(鍵)  による認証パス構築により、利用者Ｂ(検証者)は利用者Ａの署名から公開鍵証明書[Ap/α1s]C11→公開鍵証明書[α1p/α1s]C12と、階層のルート認証局CAの公開鍵証明書[α1p/α1s]C12までは認証パスを構築できるが、利用者Ｂの信頼のアンカーである公開鍵証明書[β1p/β1s]C23までたどりつかないため、階層認証の検証で用いた公開鍵証明書[Ap/α1p]C11→公開鍵証明書[α1p/α1s]C12を入力し、これを署名検証対象の公開鍵証明書とみなしてAKI抽出手段１３が呼ばれ、入力された公開鍵証明書C11及びC12の拡張要素であるAKIのKeyID要素からその公開鍵証明書を検証するための公開鍵α1pのハッシュ値h(α1p)が抽出される。
【００２６】
なお、階層認証の検証で用いた公開鍵証明書拡張要素AKIから公開鍵のハッシュ値を抽出する方法は、既存のASN.1コンパイラソフトウェア及びコンピュータなどで一般的に使用されているＣ言語コーディング方法により実現可能である。ステップＳ３：  AKI抽出手段１３で抽出された公開鍵ハッシュ値h(α1p)をトリガーに、AKI一致証明書検索手段１４が呼ばれる。署名検証用の公開鍵証明書として入力した認証連鎖変換証明書[α1p/α2s]C25のSKIからハッシュ値h(α1p)を抽出した後、AKI抽出手段１３で公開鍵証明書C12から抽出された公開鍵ハッシュ値h(α1p)と、認証連鎖変換証明書[α1p/α2s]C25のSKIに記録されている公開鍵ハッシュ値h(α1p)とを比較し、一致すれば署名検証手段１５を呼び、一致する公開鍵証明書が存在しない時にはエラーで処理を終了する。
【００２７】
本実施例の場合には認証連鎖変換証明書[α1p/α2s]C25のSKIと、階層認証用公開鍵証明書C12のAKIが一致すると、署名検証手段１５が呼ばれて次のステップＳ４に移る。なお、AKI抽出手段１３で抽出された公開鍵ハッシュ値と認証連鎖変換証明書などの公開鍵証明書内SKIのハッシュ値を比較する方法は、既存のコンピユータで使用されている比較アルゴリズムを用いて容易に実現可能である。
ステップＳ４：  AKI抽出手段１３で抽出された公開鍵ハッシュ値h(α1p)を含み、かつその公開鍵ハッシュ値がAKI一致証明書検索手段１４でSKIと一致した公開鍵証明書、及びAKI一致証明書検索手段１４で抽出した公開鍵証明書を入力として、署名検証手段１５が呼ばれ、認証連鎖変換証明書[α1p/α2s]C25内の認証局CAαの公開鍵α1pにより公開鍵証明書[Ap/α1s]C11、または公開鍵証明書[α1p/α1s]C12の署名を検証する。本署名検証OKの場合、認証パス構築手段１６を呼びステップＳ５に移り、署名検証NGの場合はエラーで処理を終了する。
【００２８】
なお、署名検証を行う方法については、既存の暗号アルゴリズムにおいて行っている署名検証アルゴリズムを用いて容易に実現可能である。
ステップＳ５：  署名検証ステップＳ４における署名検証ＯＫをトリガーに、パス構築手段１６が呼ばれ、階層認証の検証に用いた認証パス管理テーブルに署名検証手段において署名検証に用いた公開鍵を含む認証連鎖変換証明書[α1p/α2s]の識別情報が書き込まれる。書き込む情報としては公開鍵証明書を一意に識別可能な情報であれば、どんな情報でもよい。
【００２９】
なお、公開鍵証明書からの識別情報の抽出方法及び認証パス管理テープルヘの書き込み方法については、一般的に使用されるASN.1コンパイラソフトウェアやコンピュータの世界において用いられる検索/抽出アルゴリズム及びテーブルヘの書き込みアルゴリズムを用いて実現可能である。
ステップＳ６：  パス構築手段１６の処理過程終了後、相互証明書到達確認手段１７が呼ばれ、署名検証手段１５において署名検証に用いた公開鍵証明書の発行者DNを抽出する。
【００３０】
ステップＳ７：  抽出したその発行者DNが利用者Ｂ(検証者)自身の登録する階層CAの発行者DNが記載された入力31に示される検証者が登録する階層CA-DNテーブルに記載されているかをチェックする。そのテーブル上に一致する発行者DNがない場合にはステップＳ８に移る。
ステップＳ８：  署名検証手段１５において署名検証に用いた公開鍵証明書である認証連鎖変換証明書C25を署名検証対象の公開鍵証明書に、署名検証用の公開鍵証明書を相互証明書C24に置き換え、ステップＳ２からＳ７の処理を繰り返す。
【００３１】
なお、署名検証に用いた公開鍵証明書から発行者DNを抽出する方法及びその発行者DNが、検証者が登録する階層CA-DNテーブルに記載されているかをチェックする方法については、一般的に使用されるASN.1コンパイラソフトウェアや既存のコンピユータが所持している比較アルゴリズムを用いて容易に実現可能である。
上述したこの発明の相互認証パス構築方法を実施する認証局及び利用者の処理はプログラムに従ってコンピュータにより実施することができる。
【００３２】
【発明の効果】
この発明による方法を用いることにより、階層認証で使用している鍵と異なる鍵を用いて他認証局CAと相互認証する際、自認証局CA内で相互認証用に使用している鍵により自CA内で階層認証用に使用している鍵を認証した公開鍵証明書である認証連鎖変換証明書により、階層認証において使用している公開鍵証明書から相互証明書への相互認証パスを構築することが可能となる。これにより、署名（鍵）による認証パス構築が可能となり、以下のような効果を発揮することができる。
【００３３】
(1) 悪意を持つCAが相互認証しているCA-DNを語ることによるなりすましを行うことができない。
(2) 同じDNに属する鍵を使用目的に応じて使い分けることができる。
この結果から明らかなように、本稿で述べた提案方式は、X.509及びRFC2459における認証パス構築方式の考え方を引き継いだ非常に利便性の高い方式である。
【図面の簡単な説明】
【図１】本発明の相互認証構築方法の原理を説明するための図であり、Ａは認証システム全体の構成を示し、Ｂは認証パスを示す。
【図２】この発明による実施例の処理を示すフロー図を示す。
【図３】認証局CAβの処理を示すフロー図を示す。
【図４】認証局CAαの処理を示すフロー図。
【図５】検証者の処理を示すフロー図。
【図６】従来の相互認証構築方法を説明するための図であり、Ａは認証システム全体の構成を示し、Ｂは認証パスを示す。
【図７】従来の標準化された認証書のフォーマットを示す図。
【図１】
0003791758.tif 000003
【図２】
0003791758.tif 000004
【図３】
0003791758.tif 000005
【図４】
0003791758.tif 000006
【図５】
0003791758.tif 000007
【図６】
0003791758.tif 000008
【図７】
0003791758.tif 000009