(57)【特許請求の範囲】
【請求項１】
複数の所有者名を含む公開鍵の証明書が格納される証明書データベースを備える認証局に構成され、該認証局に対して通信可能に構成されたディレクトリへの証明書の格納契機がディレクトリ更新時か証明書作成時かを示す判定フラグを用いてディレクトリへの証明書の格納制御を行う証明書格納制御装置であって、
証明書に含まれた所有者名が書き込まれる名前管理テーブルと、
証明書データベースに証明書が格納された際に当該証明書から全所有者名を抽出し、判定フラグの値を判定する名前抽出部と、
ディレクトリ更新時を示す判定フラグの値と判定された際に抽出された全所有者名を名前管理テーブルに書き込むテーブル更新部と、
ディレクトリ更新時に、ディレクトリへ格納されていない証明書を証明書データベースから読み出し、当該証明書に含まれた所有者名を検索キーとして、名前管理テーブルから当該所有者名を含む全所有者名を読み出し、当該証明書を当該全所有者名それぞれに対応づけて格納するようにディレクトリへ指示を行う一方、証明書作成時を示す判定フラグの値と判定された際に抽出された全所有者名それぞれに対応づけて当該全所有者名を抽出された証明書を格納するようにディレクトリへ指示を行うディレクトリ制御部と
を備える証明書格納制御装置。
【請求項２】
ディレクトリ制御部は、ディレクトリに格納すべき証明書を送信し所有者名を通知することを特徴とする請求項１記載の証明書格納制御装置。
【請求項３】
前記複数の所有者名には、証明書の所有者名と該所有者名の別名とが少なくとも含まれることを特徴とする請求項１または２記載の証明書格納制御装置。
【請求項４】
複数の所有者名を含む公開鍵の証明書が格納される証明書データベースと、証明書に含まれた所有者名が書き込まれる名前管理テーブルとを備える認証局に構成された証明書格納制御装置が、当該認証局に対して通信可能に構成されたディレクトリへの証明書の格納契機がディレクトリ更新時か証明書作成時かを示す判定フラグを用いて行う証明書格納制御方法であって、
証明書格納制御装置の名前抽出部が、証明書データベースに証明書が格納された際に当該証明書から全所有者名を抽出し、判定フラグの値を判定し、
証明書格納制御装置のテーブル更新部が、ディレクトリ更新時を示す判定フラグの値と判定された際に抽出された全所有者名を名前管理テーブルに書き込み、
証明書格納制御装置のディレクトリ制御部が、ディレクトリ更新時に、ディレクトリへ格納されていない証明書を証明書データベースから読み出し、当該証明書に含まれた所有者名を検索キーとして、名前管理テーブルから当該所有者名を含む全所有者名を読み出し、当該証明書を当該全所有者名それぞれに対応づけて格納するようにディレクトリへ指示を行う一方、証明書作成時を示す判定フラグの値と判定された際に抽出された全所有者名それぞれに対応づけて当該全所有者名を抽出された証明書を格納するようにディレクトリへ指示を行う証明書格納制御方法。
【請求項５】
ディレクトリ制御部は、ディレクトリに格納すべき証明書を送信し所有者名を通知することを特徴とする請求項４記載の証明書格納制御方法。
【請求項６】
前記複数の所有者名には、証明書の所有者名と該所有者名の別名とが少なくとも含まれることを特徴とする請求項４または５記載の証明書格納制御方法。
【請求項７】
請求項４ないし６のいずれかに記載の証明書格納制御方法を実行させるコンピュータプログラム。
【請求項８】
請求項４ないし６のいずれかに記載の証明書格納制御方法を実行させるコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、公開鍵の証明書を確実に取得するための証明書格納制御装置、証明書格納制御方法、コンピュータプログラムおよびコンピュータプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
ＰＫＩ（公開鍵基盤：PublicKeyInfrastructure）において、認証局（ＣＡ:Certification Authority）は、登録申請のあった公開鍵を証明する公開鍵証明書を発行し、その公開鍵証明書をディレクトリ内のエントリ（格納場所）に格納させる。
【０００３】
こうして発行された公開鍵証明書は、業務遂行のためのコンピュータシステムである業務システムにおける利用可否の判定などに使用される。業務システムは、利用希望者の端末から利用開始に際して送信された署名を検証するために、ディレクトリへ要求して公開鍵証明書を取得し、この公開鍵証明書により当該署名を検証後、その証明書から業務システムが信頼する証明書までのパス検証を行うことにより、利用希望者の証明書の信頼性が認められたときは利用許可を行う。これにより、業務システムなどの不正使用が防止される。
【０００４】
【発明が解決しようとする課題】
さて、ＰＫＩにおいては、どの登場人物（Party、つまり人や団体など）が証明書の所有者なのかを一意に特定するために、公開鍵証明書のSubject（所有者名）にはDistinguished Name（DN）と呼ばれる名称が使用される。例えば"International Customer Association"という協会が存在した場合にはSubjectとして"International Customer Association"というDNが用いられる。
【０００５】
その一方で、"International Customer Association"という組織が"ICA"として認知されるように、企業や協会の略称が認められている場合がある。Ｘ．５０９やＲＦＣ２４５９という標準規約には、公開鍵証明書に格納するSubjectの別名やExtensionとして、Subject Alt Nameが規定されている。Subject Alt Nameにはインターネットにおける電子メールアドレス、ＤＮＳ名、ＩＰアドレス、別ＤＮなどが規定されている。
【０００６】
しかし、Subject Alt NameにSubjectの別名を記述したとしても、ＣＡがディレクトリに公開鍵証明書を格納させる際には、あくまでSubject(所有者名）を検索ラベルとして、このラベルに対応づけた場所（エントリ）に証明書を格納させるよう制御にする。
【０００７】
その一方、業務システムなどが、利用希望者の端末から利用開始に際して送信された署名を検証するために、ディレクトリに対しては、利用希望者について予め分かっている情報を検索キーとして証明書を要求する。
【０００８】
しかし、ディレクトリでの検索ラベルはあくまでSubject(所有者名）であるので、検索キーが必ずしもディレクトリにおける検索ラベルに一致しない可能性がある。したがって、業務システムは証明書を必ずしも取得できず、そのため、業務システムを利用希望者に利用させることができないという不都合が生じる。
【０００９】
なお、利用希望者が自身の公開鍵証明書を送ったり、その所有者名を通知することで、業務システムの利用が可能になるが、その際には、利用希望者の端末や業務システムにおけるプログラムの変更が必要になるので、必ずしも最善の解決方法ではない。
【００１０】
そこで本発明は上記従来の課題に鑑みなされたものであり、その目的とするところは、利用者が公開鍵の証明書を確実に取得するための証明書格納制御装置、証明書格納制御方法、コンピュータプログラムおよびコンピュータプログラムを記録した記録媒体を提供することにある。
【００１１】
【課題を解決するための手段】
上記従来の課題を解決するために、複数の所有者名を含む公開鍵の証明書が格納される証明書データベースを備える認証局に構成され、該認証局に対して通信可能に構成されたディレクトリへの証明書の格納契機がディレクトリ更新時か証明書作成時かを示す判定フラグを用いてディレクトリへの証明書の格納制御を行う証明書格納制御装置であって、証明書に含まれた所有者名が書き込まれる名前管理テーブルと、証明書データベースに証明書が格納された際に当該証明書から全所有者名を抽出し、判定フラグの値を判定する名前抽出部と、ディレクトリ更新時を示す判定フラグの値と判定された際に抽出された全所有者名を名前管理テーブルに書き込むテーブル更新部と、ディレクトリ更新時に、ディレクトリへ格納されていない証明書を証明書データベースから読み出し、当該証明書に含まれた所有者名を検索キーとして、名前管理テーブルから当該所有者名を含む全所有者名を読み出し、当該証明書を当該全所有者名それぞれに対応づけて格納するようにディレクトリへ指示を行う一方、証明書作成時を示す判定フラグの値と判定された際に抽出された全所有者名それぞれに対応づけて当該全所有者名を抽出された証明書を格納するようにディレクトリへ指示を行うディレクトリ制御部とを備える証明書格納制御装置をもって解決手段とする。
【００１２】
請求項２の本発明は、ディレクトリ制御部は、ディレクトリに格納すべき証明書を送信し所有者名を通知することを特徴とする請求項１記載の証明書格納制御装置をもって解決手段とする。
【００１４】
請求項３の本発明は、前記複数の所有者名には、証明書の所有者名と該所有者名の別名とが少なくとも含まれることを特徴とする請求項１または２記載の証明書格納制御装置をもって解決手段とする。
【００１５】
請求項４の本発明は、複数の所有者名を含む公開鍵の証明書が格納される証明書データベースと、証明書に含まれた所有者名が書き込まれる名前管理テーブルとを備える認証局に構成された証明書格納制御装置が、当該認証局に対して通信可能に構成されたディレクトリへの証明書の格納契機がディレクトリ更新時か証明書作成時かを示す判定フラグを用いて行う証明書格納制御方法であって、証明書格納制御装置の名前抽出部が、証明書データベースに証明書が格納された際に当該証明書から全所有者名を抽出し、判定フラグの値を判定し、証明書格納制御装置のテーブル更新部が、ディレクトリ更新時を示す判定フラグの値と判定された際に抽出された全所有者名を名前管理テーブルに書き込み、証明書格納制御装置のディレクトリ制御部が、ディレクトリ更新時に、ディレクトリへ格納されていない証明書を証明書データベースから読み出し、当該証明書に含まれた所有者名を検索キーとして、名前管理テーブルから当該所有者名を含む全所有者名を読み出し、当該証明書を当該全所有者名それぞれに対応づけて格納するようにディレクトリへ指示を行う一方、証明書作成時を示す判定フラグの値と判定された際に抽出された全所有者名それぞれに対応づけて当該全所有者名を抽出された証明書を格納するようにディレクトリへ指示を行う証明書格納制御方法をもって解決手段とする。
【００１６】
請求項５の本発明は、ディレクトリ制御部は、ディレクトリに格納すべき証明書を送信し所有者名を通知することを特徴とする請求項４記載の証明書格納制御方法をもって解決手段とする。
【００１８】
請求項６の本発明は、前記複数の所有者名には、証明書の所有者名と該所有者名の別名とが少なくとも含まれることを特徴とする請求項４または５記載の証明書格納制御方法をもって解決手段とする。
【００１９】
請求項７の本発明は、請求項４ないし６のいずれかに記載の証明書格納制御方法を実行させるコンピュータプログラムをもって解決手段とする。
【００２０】
請求項８の本発明は、請求項４ないし６のいずれかに記載の証明書格納制御方法を実行させるコンピュータプログラムを記録した記録媒体をもって解決手段とする。
【００２１】
請求項１または請求項４の本発明によれば、所有者名のいずれからであっても当該証明書を検索することができ、したがって、あいまいな検索キーからであっても目的の証明書を取得することができるようになる。
【００２２】
請求項２または請求項５の本発明によれば、ディレクトリ制御部は、ディレクトリに格納すべき証明書を送信し所有者名を通知するので、ディレクトリが、証明書を所有者名それぞれに対応づけて格納することができる。
【００２５】
請求項３または請求項６の本発明によれば、前記複数の所有者名には、証明書の所有者名と該所有者名の別名とが少なくとも含まれるので、Subjectを所有者名として、Subject Alt Nameを別名として規定された証明書に適用することができる。
【００２６】
請求項７の本発明によれば、証明書の確実に取得するためのプログラムを流通させることができる。
【００２７】
請求項８の本発明によれば、証明書の確実に取得するためのプログラムを記録媒体により流通させることができる。
【００２８】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。なお、実施の形態の説明においては、公開鍵証明書を単に証明書という。
【００２９】
図１は、本発明の実施の形態のＣＡ１とディレクトリ２の構成を示す図である。図１において認証局（以下ＣＡという）１は、演算装置と記憶装置とを備えるコンピュータシステムであり、同じくコンピュータシステムであるディレクトリ２に対する通信を可能に構成されている。なお、記憶装置はハードディスク装置や半導体メモリにより構成される。
【００３０】
ＣＡ１は、証明書作成部１１と証明書データベース１２と名前管理テーブル１３と名前抽出部１４とテーブル更新部１５とディレクトリ制御部１６とを備える。
【００３１】
証明書作成部１１は、利用者からの申請を元に証明書を発行する処理部である。証明書データベース１２は、発行された証明書が格納されるデータベースである。名前管理テーブル１３は、所有者名が格納されるテーブルである。名前抽出部１４は証明書または名前管理テーブル１３から所有者名を抽出する処理部である。テーブル更新部１５は、名前管理テーブル１３を更新する処理部である。ディレクトリ制御部１６は、名前抽出部１４が抽出した名前に対応づけて証明書を格納するようにディレクトリ２を制御する処理部である。なお、名前抽出部１４はＡＳＮ．１コンパイラを用いて実現される。
【００３２】
なお、ＣＡ１にあっては、ディレクトリ２へ証明書の格納契機を判定するための判定フラグを備え、この判定フラグは、格納契機がディレクトリ更新時のときは一方の値に、格納契機が証明書作成時のときには他方の値にそれぞれ設定される。前者の値を「１」、後者の値を「０」として説明を続ける。
【００３３】
ディレクトリ２は、ＣＡ１から指示された所有者名のそれぞれを検索ラベルとし、ＣＡ１から送信された証明書を当該各検索ラベルに対応づけられたエントリに格納する処理を行う。なお、所有者名は厳密には、ディレクトリ２における検索の際の照合規則に応じて変換されるが、かかる変換についての説明は省略する。
【００３４】
なお、ＣＡ１の各処理部は、コンピュータプログラムが該プログラムを記憶した記憶媒体から当該コンピュータシステムに読み込まれて該システムの演算処理装置で実行されることにより実現されるものである。
【００３５】
図２は、ＣＡ１の処理を示すフローチャートである。
【００３６】
先ず、証明書作成部１１は、例えば、図示しない業務システムを利用しようとする利用希望者のコンピュータから、証明書の申請があると、この申請を元に証明書の発行処理を行う（ステップＳ１）。証明書作成部１１は、先ず証明書を生成する。この証明書には、１つの所有者名が含まれ、申請内容に応じて必要な場合には、所有者の別名（所有者別名という）が１つまたは複数が含まれる。以下、所有者名と所有者別名の全てを総称するときは「全所有者名」と記す。そして、証明書を申請元のコンピュータに送信するとともに、証明書データベース１２に格納する。なお、証明書にあっては、所有者名はSubjectとして、所有者別名はSubject Alt Nameとして規定されている。これらは共にDistinguished Name（DN）と呼ばれるものである。
【００３７】
次に名前抽出部１４が、当該証明書から全所有者名を抽出する（ステップＳ３）。次に、名前抽出部１４は、判定フラグの値を判定する（ステップＳ５）。
【００３８】
ここで、判定フラグが「１」であると判定されたときは、テーブル更新部１５が、その全所有者名を、所有者名を検索キーとして検索できるように名前管理テーブル１３に書き込む（ステップＳ７）。
【００３９】
そして、ディレクトリ更新時になると、ディレクトリ制御部１６が証明書データベース１２から、ディレクトリ２へ格納されていない証明書を読み出す（ステップＳ９）。そして、この証明書に含まれた所有者名を検索キーとして、名前管理テーブル１３から当該所有者名を含む全所有者名をこの読み出す（ステップＳ１１）。
【００４０】
そして、ディレクトリ制御部１６は、当該証明書を、当該全所有者名それぞれに対応づけて格納するようにディレクトリ２へ指示を行う（ステップＳ１３）。その際は、ディレクトリ２に対し、当該証明書を送信するとともに当該全所有者名を通知する。ディレクトリ２では、送信された証明書を、通知された全所有者名のそれぞれに対応するエントリに格納する。したがって、証明書を該証明書に含まれた全所有者名のそれぞれに対応づけて格納させることができる。
【００４１】
一方、ステップＳ５で判定フラグが「０」であると判定されたときは、ディレクトリ制御部１６が、ステップＳ３で当該証明書から抽出された全所有者名それぞれに対応づけて当該証明書を格納するようにディレクトリ２へ指示を行う（ステップＳ１３）。その際は、ディレクトリ２に対し、当該証明書を送信するとともに当該全所有者名を通知し、ディレクトリ２では、送信された証明書を、通知された全所有者名のそれぞれに対応するエントリに格納する。したがって、生成された証明書を該証明書に含まれた全所有者名のそれぞれに対応づけたエントリに格納させることができる。
【００４２】
なお、ディレクトリ２は、利用希望者のコンピュータが業務システムを利用開始する際に、当該業務システムから検索キーが送信されると、この検索キーに対応するエントリの証明書を読み出して当該検索キーの送信元である業務システムへと送信する。したがって、検索キーがあいまいな場合であっても、証明書の取得が可能になる。
【００４３】
なお、本実施の形態では、全所有者名のそれぞれに対応づけて証明書を格納するようにしたが、証明書に、該証明書を対応づけて格納する必要のない別名が含まれている場合は、その別名の抽出、名前管理テーブル１３への格納、並びにその別名に対応づけて証明書を格納させる処理は行わなくてよい。また、上記ＣＡ１に構成された名前抽出部１４とディレクトリ制御部１６の機能をディレクトリ２内が具備するようにしても勿論よい。
【００４４】
以上説明したように、本発明の実施の形態のＣＡ１によれば、公開鍵の証明書に含まれた複数の所有者名を抽出する所有者名抽出手段（名前抽出部１４）／所有者名抽出段階（ステップＳ３）と、前記抽出された所有者名のそれぞれに対応づけて前記証明書を格納させる証明書格納制御手段（ディレクトリ制御部１６）／証明書格納制御段階（ステップＳ１３）とを備えるので、所有者名のいずれからであっても当該証明書を検索することができ、したがって、あいまいな検索キーからであっても目的の証明書を取得することができるようになる。
【００４５】
また、前記証明書格納制御手段は、前記証明書と前記抽出された所有者名とを当該証明書の格納先に送信するので、通信回線を介しての証明書の遠隔的な格納制御、たとえば本実施の形態のような、認証局がディレクトリへ証明書を格納させる際の格納制御に適用することができる。
【００４６】
また、前記所有者名抽出手段により証明書の生成のときに抽出された所有者名が格納される所有者名記憶手段（名前管理テーブル１３）または抽出された所有者名を記憶させる所有者名記憶段階（ステップＳ７）を備え、前記証明書格納制御手段／段階は、ディレクトリ２などに証明書を格納させる際に当該所有者名を読み出すようにしたので、ディレクトリ２などに証明書を格納させる際に所有者名を証明書から逐一抽出する必要がなくなる。
【００４７】
また、前記複数の所有者名には、証明書の所有者名と該所有者名の別名とが少なくとも含まれるので、Subjectを所有者名として、Subject Alt Nameを別名として規定された証明書に適用することができる。
【００４８】
しかも、ＣＡ１というサービス提供側の構成に特徴があり、そのため利用者端末や業務システムなどといった利用者側のプログラム変更であるので、既存のシステムに対する導入において特に高い効果を得られる。
【００４９】
なお、上記説明した処理を実行させるコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録したり、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【００５０】
【発明の効果】
以上説明したように、本発明によれば、公開鍵の証明書に含まれた複数の所有者名を抽出し、抽出された所有者名のそれぞれに対応づけて証明書を格納させるようにしたので、所有者名のいずれからであっても当該証明書を検索することができ、したがって、あいまいな検索キーからであっても目的の証明書を取得することができるようになる。
【図面の簡単な説明】
【図１】本発明の実施の形態のＣＡ１とディレクトリ２の構成を示す図である。
【図２】ＣＡ１の処理を示すフローチャートである。
【符号の説明】
１  ＣＡ
２  ディレクトリ
１１  証明書作成部
１２  証明書データベース
１３  名前管理テーブル
１４  名前抽出部
１５  テーブル更新部
１６  ディレクトリ制御部
【図１】
0003808784.tif 000002
【図２】
0003808784.tif 000003