図3は本発明の動作概念図である。本発明は、図3に示すように電子証明書を用いた電子処理毎にCRLが保存される。そのため、時刻Taにおいて行なわれた電子処理Aに用いられた電子証明書の有効性の検証は、図2に示す従来手法のように電子処理Aのために時刻T2でCRLを取得し電子証明書の有効性を検証するのではなく、時刻Tbにおいて行なわれた電子処理B時に取得されたCRL_bを用いて行なうことができる。また、時刻Tbにおいて行なわれた電子処理Bに用いられた電子証明書の有効性の検証も、時刻Tcにおいて行なわれた電子処理C時に取得されたCRL_cを用いて行なうことができる。時刻Tcにおいて行なわれた電子処理Cに用いられた電子証明書の有効性の検証は、時刻T5以降に行なわれた電子処理時に取得されたCRLを用いて行なうことができる。
以下、本発明の具体的な内容について実施例を用いて説明する。
(実施例1)
図4から図10を用いて実施例1を説明する。図4は本発明を適用した実施例1の全体構成を説明する図であり、図5はRFC3280に基づく電子証明書の構造において実施例1に関連が深い項目を記述した図であり、図6はRFC3280に基づくCRLの構造において実施例1に関連が深い項目を記述した図であり、図7は実施例1における状態管理テーブルの構造を説明する図であり、図8は実施例1における電子署名処理のフローチャートであり、図9は実施例1において複数の電子署名処理が行なわれた場合に、ある時刻における電子署名処理に用いられた電子証明書の有効性を検証する処理のフローチャートであり、図10は実施例1において電子署名に用いられた電子証明書管理装置内の記憶装置に保持される各電子証明書に対して有効期限までの期間を検出する処理のフローチャートである。以下、図面に沿って説明する。
図4は、本発明に関わる電子証明書管理装置を適用した全体構成を説明する図である。電子証明書管理装置401はネットワーク402を通してCA403と通信が可能になっている。また、電子証明書管理装置401は、図4に示すように入力装置部404、出力装置部405、時刻情報部406、通信部407、プログラム制御部408、メモリ部409、記憶装置部410、演算装置部411を有している。
CA403は、電子証明書を発行する機関であり、同時に発行した電子証明書に関して、失効した電子証明書の識別情報をCRLに記し、ネットワーク402を通じてCRLを配布する機能を有している。
入力装置部404は、認証局403から発行された電子証明書を電子証明書管理装置401内の記憶装置部410内の一部の記憶領域である電子証明書保持部413に保持するための入力装置である。入力装置部404は請求項1記載の電子証明書保持手段に相当し、電子証明書を電子証明書管理装置401に入力する機能を有する。また、入力装置部404は、電子証明書管理装置401を利用するユーザが記憶装置部410内に記憶される1001から1013のプログラムを実行するように指示を入力する機能を有する。
出力装置部405は、記憶装置部410に記憶される1001から1013のプログラムがプログラム制御部408によって制御され実行された時に、メモリ部409に格納される情報を各プログラムが必要に応じて電子証明書管理装置401の外へ出力するための出力装置である。実施例1では、電子署名時に電子証明書の有効期限が過ぎてしまっていた場合に有効期限外であることの表示や、電子証明書をCRLに記載される情報から失効検証した際に電子証明書が失効していることの表示を行う。また、電子証明書が一定期間後(以降、猶予期間)に有効期限切れになってしまうような場合に、猶予期間後に有効期限切れになってしまうことを表示することを行う。
時刻情報部406は、電子証明書管理装置401内で利用される時刻情報を保持する装置である。
通信部407は、電子証明書管理装置401がネットワーク402を通してCA403と通信を行なう時に、情報の送受信を行なう装置である。
プログラム制御部408とメモリ部409と演算装置部411は、電子証明書管理装置401を動作させるためのプログラム1001から1013を実行するための装置である。記憶装置部410に記憶される1001から1013の各プログラムは、プログラム制御部408によってメモリ部409に読み込まれ、演算装置部411によって演算される。演算結果により、入力装置部404や出力装置部405等といった電子証明書管理装置401内に存在する装置が制御される。
記憶装置部410は、電子証明書管理装置401を動作させるためのプログラムが記憶されており、電子証明書取得プログラム1001、電子署名プログラム1002、CRL取得プログラム1003、電子証明書有効性検証プログラム1004、CRL検索プログラム1005、CRL有効性判断プログラム1006、CRL取得判断プログラム1007、状態管理テーブル管理プログラム1008、時刻管理プログラム1009、入出力装置制御プログラム1010、電子証明書有効期限期間検出プログラム1011、電子証明書有効期限切れ検出プログラム1012、電子データ識別情報作成プログラム1013が記憶されている。また、記憶装置部410には電子証明書管理装置401で管理する電子証明書とCRLと状態管理テーブルを保持する記憶領域を有し、電子証明書保持部412とCRL保持部413と状態管理テーブル保持部414を有している。それぞれ、請求項1記載の電子証明書保持手段と取得したCRLを保持するCRL保持手段と請求項3記載の電子証明書を用いた電子処理時刻とその電子証明書の識別情報を管理する状態管理テーブルを保持する装置に相当する。
上記電子証明書取得プログラム1001は請求項1記載の電子証明書保持手段に相当し、入力装置部404を制御して電子証明書を電子証明書保持部412に記憶する機能を有する。
上記電子署名プログラム1002は、請求項1記載の電子証明書を用いた電子処理を実行する電子処理実行手段に相当し、電子証明書保持部412において保持される電子証明書内に記憶される秘密鍵の項目を利用して電子署名を行う機能を有する。
上記CRL取得プログラム1003は、請求項1記載の電子証明書のCRLを取得するCRL取得手段と取得したCRLを保持するCRL保持手段に相当し、電子証明書内に記憶される電子証明書に対応するCRLの配布場所からCRLを取得し保持する機能を有する。
上記電子証明書有効性検証プログラム1004は、請求項1記載のCRLを用いて電子証明書の有効性を検証する電子証明書有効性検証手段に相当し、CRL保持部413において保持されるCRLを用いて電子証明書の有効性を検証する機能を有する。また、電子証明書保持部412に保持される電子証明書内の有効期間が開始する時刻の項目と有効期間が終了する時刻の項目の二つの項目と、時刻管理プログラム1009を用いて参照した時刻情報から、電子証明書が有効期間内であるかどうかを検証する機能を有する。
上記CRL検索プログラム1005は、請求項1記載の第一の電子処理に用いた電子証明書の有効性の検証を前記第一の電子処理後に行う第二の電子処理時に取得したCRLを用いて行う際の、第二の電子処理時に取得したCRLを検索する機能を有する。
上記CRL有効性判断プログラム1006は、請求項2記載のCRLの有効性を判断するCRL有効性判断手段に相当し、CRL内に記憶されるCRLの有効期間が開始する時刻の項目とCRLが次回に更新される時刻の項目の二つと、時刻情報部406に保持される時刻情報を比較して、CRLが無効であるかどうかを判断する機能を有する。
上記CRL取得判断プログラム1007は、請求項2記載の、CRL保持手段によって保持されるCRLが前記CRL有効性判断手段によって無効であると判断された場合にCRLを取得する動作に相当し、CRL保持部413に保持されるCRLが前記CRL有効性判断プログラム1006によって無効であると判断された場合にCRLを取得すると判断する機能を有する。
上記状態管理テーブル管理プログラム1008は、請求項3記載の電子証明書を用いた電子処理時刻とその電子証明書の識別情報を管理する状態管理テーブルに対して、電子処理時刻とその電子証明書の識別情報を状態管理テーブルに記憶し管理する機能を有する。
上記時刻管理プログラム1009は、時刻情報部406に保持される時刻情報を参照する機能を有する。
上記入出力装置制御プログラム1010は、電子証明書有効性検証プログラム1004や電子証明書有効期限切れ検出プログラム1012で検出した電子証明書の有効期限切れや失効したという情報を出力装置部405を制御して表示する機能を有する。また、請求項1記載の電子証明書保持手段にも相当し、入力装置部404を制御して電子証明書を電子証明書保持部412に保持する機能を有する。
上記電子証明書有効期限期間検出プログラム1011は、請求項3記載の状態管理テーブルを用いて前記電子証明書保持手段において保持される一つ以上の電子証明書に対して、一つ以上の電子証明書の有効期限までの期間を検出する電子証明書有効期限切れ検出手段に相当し、状態管理テーブル保持部414に記憶される状態管理テーブルを用いて、電子処理に用いられた電子証明書を検出し、検出された電子証明書の有効期間終了時刻503と時刻情報部406に記される時刻情報から有効期限までの期間を検出する機能を有する。
上記電子証明書有効期限切れ検出プログラム1012は、前記電子証明書有効期限期間検出プログラム1011によって検出された電子証明書の有効期限までの期間情報と、状態管理テーブル内に記される猶予期間情報を比較し、有効期限までの期間情報が猶予期間よりも時系列上で短くなった場合に、電子証明書が猶予期限後に有効期限が切れることを検出する機能を有する。
上記電子データ識別情報作成プログラム1013は、電子証明書もしくはCRLを構成する電子データから一方向性関数を用いて一意に生成されるハッシュと呼ばれる電子データを作成する機能を有する。
上記電子証明書について、図5を用いて電子証明書内に記憶される情報を説明する。実施例1における電子証明書とは、RFC3280において定義される電子証明書のことであり、電子証明書の有効期間が開始する時刻の項目502と、有効期間が終了する時刻の項目503と、電子証明書を発行した発行者の項目504と、電子証明書に与えられている識別番号の項目505と、電子証明書の発行先の項目506と、電子証明書に対応するCRLの配布場所が記される項目507と、電子証明書に関連づけられる公開鍵の項目508と、電子証明書を発行した発行者が電子証明書に対して行なった電子署名の項目509と、電子証明書に関連付けられる秘密鍵の項目510とが存在する。
上記CRLについて、図6を用いてCRL内に記憶される情報を説明する。実施例1におけるCRLとは、RFC3280において定義されるCRLのことであり、CRLの発行者の項目602と、CRLの有効期間が開始する時刻の項目603と、CRLが次回に更新される時刻の項目604と、失効した電子証明書の識別情報の項目(605〜607)が失効している電子証明書の数だけ存在する。
上記状態管理テーブルについて、図7を用いて状態管理テーブル内に記憶される情報を説明する。実施例1において状態管理テーブル701は、電子証明書管理装置401が保持する電子署名に用いた電子証明書の識別情報を記憶する電子証明書識別情報記憶領域(702と703)を有している。また、電子証明書識別情報記憶領域(702と703)に対応付けられて、電子署名処理毎に電子署名処理時刻を記憶する電子処理時刻記憶領域(704〜706と712)と、その電子署名処理時に電子証明書に対応した最新のCRLを記憶装置部410に保持する際の保持名を記憶するCRL識別情報記憶領域(707〜709と713)を有する。また、電子証明書に対応したCRLの有効期間から計算する猶予期間情報を記憶する猶予期間情報記憶領域(710及び711と714及び715)を有する。
次いで、図4から図10を用いて、本発明に係る電子証明書管理装置の作用について説明する。電子証明書は、CA403によってあらかじめ発行されているとする。電子証明書管理装置401は、入力装置404を通じて電子証明書保持部412に電子証明書を保持する。ユーザは、後述する電子証明書による電子署名処理動作を実行し、電子証明書保持部412に保持される電子証明書を用いて電子署名処理を行う。電子署名処理は、ユーザの指示により複数回行われる(仮にnとする(n:2,3,4,...)。)。ここで、n回行われた電子署名において、i番目(i:1,2,3,...,n−1)に行われた電子署名に用いられた電子証明書の有効性を確認することを考える。ユーザは後述する過去のある電子署名処理時刻における電子証明書の有効性を検証する方法を用いてi番目の電子署名の有効性を確認することができる。また、電子署名処理時には、後述する電子証明書有効期限期間チェック処理動作を行い、電子署名処理が終了した後に電子証明書管理装置内の電子証明書保持部412に保持される電子証明書の中で、電子署名処理時点までに電子署名を行っていた各電子証明書に関して有効期限までの期間を検出し、それぞれの電子証明書に対して猶予期間後に有効期限が過ぎてしまう電子証明書があれば出力装置部405を通して、猶予期間後に有効期限が過ぎてしまう電子証明書が存在することを表示する。
ここで、電子証明書管理装置401による電子署名処理時の動作について、図8に沿って詳細に説明する。図8は本発明に係る電子証明書管理装置を適用した電子証明書管理装置の電子署名処理時の動作を示すフローチャートである。電子証明書管理装置401はプログラム制御部408によって記憶装置部410内にある電子署名プログラム1002を動作させ、電子署名処理のステップを開始する。
電子署名処理のステップが開始すると、ステップ20101にて電子署名処理に用いる電子証明書の有効期限検証を行う。ステップ20101における電子署名処理に用いる電子証明書の有効期限検証は、電子証明書有効性検証プログラム1004を用いて、電子証明書内に記される電子証明書の有効期間が開始する時刻502と有効期間が終了する時刻503の二つの項目と時刻情報部406の時刻情報とを比較して、時刻情報部の時刻が時系列上において有効期間が開始する時刻よりも前もしくは有効期間が終了する時刻よりも後であった場合には有効期限外としてみなし、そうでない場合は電子証明書が有効期限内であると判断する。
ステップ20101において、電子証明書が有効期限外であると判断された場合は、ステップ20102に進む。ステップ20102では、入出力装置制御プログラム1011を用いて電子証明書が有効期限外であることを出力装置部405に表示して、電子署名処理のステップを終了する。
ステップ20101において、電子証明書が有効期限内であると判断された場合は、ステップ20103に進む。ステップ20103では、電子署名に用いる電子証明書を識別するために電子データ識別情報作成プログラム1013を用いて電子証明書のハッシュを計算する。ステップ20103で
電子証明書のハッシュを計算後、ステップ20104に進む。ステップ20104では、状態管理テーブル保持部414に状態管理テーブルが存在するかを調べる。
ステップ20104において、状態管理テーブル保持部414に状態管理テーブルが存在しない場合は、ステップ20105に進む。ステップ20105では、状態管理テーブル管理プログラム1008を用いて状態管理テーブルを作成する。ステップ20105で状態管理テーブルを作成後、ステップ20106に進む。ステップ20106では、電子署名に用いる電子証明書から電子証明書に対応するCRLの配布場所507を取得し、CRL取得プログラム1003を用いてCRLを取得する。ステップ20106でCRLを取得後、ステップ20107に進む。
ステップ20107では、電子証明書有効性検証プログラム1004を用いて、取得したCRLによる電子署名に用いる電子証明書の有効性検証を行う。ステップ20107におけるCRLを用いた電子証明書の有効性検証は、取得したCRLに記される失効した電子証明書の識別情報の項目(605〜607)の中に、電子署名に用いる電子証明書の識別情報505が記されている場合には電子証明書が失効していると判断し、そうでない場合は電子証明書が有効であると判断する。
ステップ20107において、電子署名に用いる電子証明書が失効していると判断された場合は、ステップ20108に進む。ステップ20108では、入出力装置制御プログラム1011を用いて電子証明書が失効している事を出力装置部405に表示して、電子署名処理のステップを終了する。
ステップ20112において、電子署名に用いた電子証明書が有効であると判断された場合は、ステップ20109へ進む。ステップ20109では、電子署名プログラム1002によって電子署名を行う。ステップ20109の電子証明書による電子署名が終了後、ステップ20110に進む。ステップ20110では、時刻管理プログラム1009を用いて時刻情報部406の時刻を電子署名時刻として取得する。ステップ20110で電子署名処理時刻を取得した後、ステップ20111に進む。
ステップ20111では、CAから取得したCRLを電子データ識別情報作成プログラム1013を用いてCRLの識別情報としてハッシュ計算し、ステップ20110で取得した電子署名処理時刻と組み合わせて、取得したCRLをCRL保持部413に保持する際のCRL保存名を作成する。CRL保存名はハッシュを文字列表記したものと電子署名処理時刻を文字列表記したものをアンダーバー(_)で連結して作成する(ハッシュ値:1A0B3C...9A、電子署名処理時刻:20XX/YY/ZZならば1A−0B−3C...−9A_20XX/YY/ZZ.crlという文字列を作成する)。ただし、後述するステップ20117において、CRLが最新であると判断され、記憶装置内のCRL保持部413からCRLを取得していた場合は、CRL保持部413に記憶されていた時のCRL保存名をCRL保存名として作成する。
ステップ20111でCRL保存名を作成後、ステップ20112に進む。ステップ20112では、状態管理テーブル管理プログラム1008を用いて、状態管理テーブルに電子証明書から計算したハッシュと電子署名処理時刻とCRL保存名を記憶する。例えば、電子証明書から計算したハッシュがAB−CD−EF・・・00−11であり、電子署名処理時刻が200X/7/30であり、CRL保存名が3F−5A・・・1C_200X_07_30.crlであるならば、図7に示すように電子証明書のハッシュは電子証明書識別情報記憶領域702に記憶され、電子署名処理時刻は電子署名処理時刻記憶領域704に記憶され、CRL保存名はCRL識別情報記憶領域707に記憶される。ここで、同じ電子証明書(つまり、電子証明書のハッシュがAB−CD−EF・・・00−11になる電子証明書)で既に電子署名が過去に行われていた場合には、電子署名処理時刻とCRL保存名は過去に記憶された電子署名処理時刻のフィールドとCRL保存名のフィールドの下に連続して記憶される。例えば、前述した例で200X/7/30において電子書名を行い、200X/8/4に同じ電子証明書を用いて電子署名処理を行った場合を考える。この場合、電子証明書のハッシュは電子証明書識別情報702が既に記憶されているので新たに記憶はしないが、電子署名処理時刻200X/8/4は記憶されている最後の電子署名処理時刻704のフィールドの下の電子署名処理時刻記憶領域705に記憶し、CRL保存名も記憶されている最後のCRL保存名707のフィールドの下のCRL識別情報記憶領域708に記憶する。以後同様にして、電子署名処理が行われる度に最後に行われた電子処理時に記憶されたフィールドの下に追記していく形式で電子署名処理時刻とCRL保存名を記憶する。状態管理テーブルに電子証明書のハッシュと電子署名処理時刻とCRL保存名を記憶した後は、取得したCRLをCRL保持部413にCRL保存名の名前で記憶する。ステップ20112で状態管理テーブルに情報を記憶及びCRL保持部413に取得したCRLを保持後、ステップ20113に進む。
ステップ20113では、後述する電子証明書有効期限期間チェック処理動作を行い、電子署名処理のステップを終了する。
ステップ20104において、状態管理テーブルが存在するか調べた際に、状態管理テーブルが存在した場合は、ステップ20114に進む。ステップ20114では、図7における状態管理テーブル701内の電子証明書識別情報記憶領域702において、電子署名に用いる電子証明書から計算されたハッシュに等しい項目が存在するかを調べる。例えば、電子証明書から計算されたハッシュがABCDEF・・・0011であった場合で、図7に示すように電子証明書識別情報記憶領域702にAB−CD−ED・・・00−11とあった場合には、ハッシュに等しい項目が存在すると判断する。もし、電子証明書から計算されたハッシュがBCDEF0・・・5678であった場合は、図7に示す状態管理テーブルの例ではAB−CD−EF・・・00−11の項目702と22−33−44・・・AA−CCの項目703しかないので、ハッシュに等しい項目は存在しないと判断する。
ステップ20114において、状態管理テーブル内に、電子署名に用いる電子証明書から計算されたハッシュに等しい項目が存在しなかった場合には、ステップ20106に進む。ステップ20106以降のステップは、上記ステップ20106以降のステップと等しい動作を行い、電子署名処理のステップを終了する。
ステップ20114において、状態管理テーブル内に、電子署名に用いた電子証明書から計算されたハッシュに等しい項目が存在した場合は、ステップ20115に進む。ステップ20115では、図7に示す状態管理テーブルにおいて、電子証明書のハッシュに対応する電子署名処理時刻において、一番下の電子署名処理時刻に対応付けて記憶されるCRL保存名を取得する(電子署名処理時刻は前回行った電子署名処理時刻の下に記憶していくので、一番下に記憶される電子署名処理時刻とは、最後に行った電子署名処理時刻のことをさす)。例えば、電子証明書から計算されたハッシュがABCDEF・・・0011であるならば、電子証明書識別情報702の電子署名処理時刻(704〜706)において一番下の電子署名処理時刻706に対応付けて記憶されるCRL保存名709を取得する。ステップ20115でCRL保存名706を取得後、ステップ20116に進む。
ステップ20116では、CRL保持部413から取得したCRL保存名706に対応するCRLを取得する。ステップ20116でCRLを取得後、ステップ20117に進む。ステップ20117では、CRL有効性判断プログラム1006を用いて、取得したCRLが最新のものであるかどうかを判断する。ステップ20117における判断は、CRLに記される次回に更新される時刻の項目604が時系列上において時刻情報部406にて保持される時刻情報よりも後であった場合は、CRLが最新であると判断し、そうでない場合はCRLが古いと判断する。
20117において、取得したCRLが古いと判断された場合は、ステップ20106に進む。ステップ20106以降のステップは、上記ステップ20106以降のステップと等しい動作を行い、電子署名処理のステップを終了する。
20117において、取得したCRLが最新であると判断された場合は、ステップ20107に進む。ステップ20107以降のステップは、上記ステップ20107以降のステップと等しい動作を行い、電子署名処理のステップを終了する。
ここで、電子証明書管理装置401の過去のある電子署名処理時刻における電子証明書の有効性を検証する方法について、図9を用いて詳細に説明する。図9は本発明に係る電子証明書管理装置を適用した電子証明書管理装置の過去の電子署名処理時の電子証明書の有効性検証の動作を示すフローチャートである。電子証明書管理装置401はプログラム制御部408によって記憶装置部410内に記憶される状態管理テーブル管理プログラム1008を動作させ、過去のある電子署名処理時刻における電子証明書の有効性を検証するステップを開始する。
過去のある電子署名処理時刻における電子証明書の有効性を検証するステップが開始すると、まずはステップ20201に進む。ステップ20201では、状態管理テーブル管理プログラム1008を用いて状態管理テーブル保持部414に状態管理テーブルが存在するかどうかを判断する。
ステップ20201において、状態管理テーブル保持部414に状態管理テーブルが存在しないと判断されればステップ20202に進む。ステップ20202では、過去のある電子署名処理時刻における電子証明書の有効性の検証は不可能としてステップを終了する。
ステップ20201において、状態管理テーブルが存在すればステップ20203へ進む。ステップ20203では、検証を行いたい電子証明書から電子データ識別情報作成プログラム1013を用いて電子証明書のハッシュを計算する。ステップ20203で電子証明書からハッシュを計算後、ステップ20204へ進む。ステップ20204では、CRL検索プログラム1005を用いて状態管理テーブルに記憶される電子証明書識別情報記憶領域702において電子証明書から計算されたハッシュと等しくなる項目を検索する。例えば、図7に示すように状態管理テーブルに電子証明書識別情報702と電子処理時刻(704〜706)とCRL識別情報(707〜709)が記憶されている場合に、検証を行いたい電子証明書のハッシュがABCDEF・・・0011と計算された場合は、電子証明書識別情報702と一致するので電子証明書から計算されたハッシュと等しくなる項目が存在し検索できたと判断する。仮に、検証を行いたい電子証明書のハッシュが543210・・・FEDCであったならば、図7に示される状態管理テーブルに記載される電子証明書識別情報は702と703であり、それぞれAB−CD−EF・・・00−11と22−33−44・・・AA−CCであり、543210・・・FEDCではないので、電子証明書から計算されたハッシュと等しくなる項目は存在せず、検索できなかったと判断する。
ステップ20204において、電子証明書から計算されたハッシュと等しくなる項目が状態管理テーブル内から検索できなかった場合はステップ20202へ進む。ステップ20202以降のステップは、上記ステップ20202以降のステップと等しい動作を行い、過去のある電子署名処理時刻における電子証明書の有効性の検証は失敗としてステップを終了する。
ステップ20204において、電子証明書から計算されたハッシュと等しくなる項目が状態管理テーブル内から検索できた場合は、ステップ20205へ進む。ステップ20205では、CRL検索プログラム1005を用いて電子証明書の有効性の検証を行いたい過去のある電子署名処理時刻よりも後に電子署名処理が行われているかどうかを調べる。例えば、電子証明書のハッシュがABCDEF・・・0011である電子証明書で、図7に示すような情報が記憶される状態管理テーブルであった場合を仮定する。この時、過去に行った電子署名処理として200X/7/30に行った電子署名処理時刻704における電子証明書の有効性検証を行いたかったとする。その場合は、200X/7/30の電子署名処理時刻704の後に、200X/8/4における電子署名処理時刻705と200X/8/29における電子署名処理時刻706が存在するので、検証したい電子署名処理時刻よりも後に電子署名処理が行われていると判断する。仮に、過去に行った電子署名処理として200X/8/29の電子署名処理時刻706における電子証明書の有効性検証を行いたかった場合は、状態管理テーブル内に200X/8/29以降の電子署名処理時刻情報が記載されていないので、検証したい電子署名処理時刻よりも後に電子署名処理が行われていないと判断する。
ステップ20205において、過去のある電子署名処理時刻よりも時系列上で後に電子署名処理が行われていた場合は、ステップ20206へ進む。ステップ20206では、CRL検索プログラム1005を用いて、CRL保持部413に保持されるCRLの中に過去のある電子署名処理時刻における電子証明書の有効性検証を行うことができるCRLがあるかどうかを検索する。具体的には、状態管理テーブルに記載される検証を行いたい過去のある電子署名処理時刻におけるCRL保存名と、その電子署名処理時刻より後で行われた電子署名処理時におけるCRL保存名が異なるかどうかを判断する(CRL保存名が異なれば、後の電子署名時に保持したCRLは、検証を行いたい電子署名処理時のCRLの後に更新されたものであるため)。例えば、電子証明書から計算されるハッシュがABCDEF・・・0011であり、図7に示すように状態管理テーブルが記憶されていたと仮定する。この時、200X/7/30における電子署名処理時における電子証明書の検証を行いたかった場合は、200X/7/30において取得しCRL保持部413に記憶したCRLのCRL保存名707は3F−5A−・・・−1C_200X_07_30.crlである。そして、200X/7/30より後に電子署名処理は200X/8/4と200X/8/29に行われており、そのどちらの電子署名処理時に取得され保存されたCRLのCRL保存名(708〜709)もAC−96−・・・−3D_200X_08_29.crlであり、3F−5A−・・・−1C_200X_07_30.crlとは異なる。そのため、この場合は検証したい電子署名処理時刻よりも後の電子署名処理時刻のCRL保存名においてCRL保存名が異なるCRLがあると判断する。仮に、検証したい電子署名処理時刻が200X/8/4であった場合は、200X/8/29に電子署名処理が行われてているものの、200X/8/4時点でのCRL保存名708と、200X/8/29時点でのCRL保存名が同じであるため、検証したい電子署名処理時刻よりも後の電子署名処理時刻のCRL保存名においてCRL保存名が異なるCRLは存在しないと判断する
ステップ20206において、CRL保存名が異ならない場合は、ステップ20207へ進む。
ステップ20207では、ステップS206において検証を行いたい電子署名処理時刻におけるCRL保存名707と異なると判断されたCRL保存名708を用いて、CRL取得プログラム1003を用いて記憶装置内のCRL保持部413から保持されていたCRLを取得する。ステップ20207で保持されていたCRLを取得したら、ステップ20208へ進む。
ステップ20208では、CRL有効性判断プログラム1006を用いて、保持されていたCRLが有効であるかどうかを判断する(CAが発行する最新のCRLであるかどうかを判断する)。CRLが有効であるかどうかは、図6に示すCRLに記載される各項目の中で、CRL次回更新時刻604と時刻情報部406の時刻情報を比較し、時刻情報部406の時刻情報がCRL次回更新時刻604よりも時系列上で過ぎていた場合はCRLが無効である(古いものである)と判断し、過ぎていなければCRLは有効である(最新のものである)と判断する。
ステップ20208において、CRLが有効であると判断された場合は、ステップ20202へ進む。ステップ20202以降のステップは、上記ステップ20202以降のステップと等しい動作を行い、過去のある電子署名処理時刻における電子証明書の有効性の検証は失敗としてステップを終了する。
ステップ20208において、CRL更新時刻が過ぎていてCRLが無効であると判断された場合は、ステップ20209へ進む。ステップ20209では、CRL取得プログラム1003を用いて、電子証明書に記載されるCRL配布場所507から最新のCRLを取得する。ステップ20209で最新のCRLを取得した後、ステップ20210へ進む。
ステップ20210では、CRLを電子証明書に記載されるCRL配布場所507から取得していた場合に、電子証明書の有効期限を電子証明書有効性検証プログラム1004を用いて検証する(ステップS213とステップ20209からの場合)。もし、CRLを記憶装置部のCRL保持部413から取得していた場合は、何もせずにステップ20211へ進む(ステップ20212からの場合)。ステップ20210における電子証明書の有効期限検証は、電子証明書有効性検証プログラム1004を用いて、電子証明書内に記される電子証明書の有効期間が開始する時刻502と有効期間が終了する時刻503の二つの項目と時刻情報部406の時刻情報とを比較して、時刻情報部の時刻が時系列上において有効期間が開始する時刻よりも前もしくは有効期間が終了する時刻よりも後であった場合には有効期限外としてみなし、そうでない場合は電子証明書が有効期限内であると判断する。
ステップ20210において、電子証明書が有効期限外であると判断された場合は、ステップ20202へ進む。ステップ20202以降のステップは、上記ステップ20202以降のステップと等しい動作を行い、過去のある電子署名処理時刻における電子証明書の有効性の検証は失敗としてステップを終了する。
ステップ20210において、電子証明書が有効期限内であると判断された場合は、ステップ20211へ進む。ステップ20211では、電子証明書有効性検証プログラム1004を用いて、取得したCRLによる過去のある電子署名処理時刻における電子証明書の有効性の検証を行う。ステップ20211における電子証明書の有効性の検証は、取得したCRLに記される失効した電子証明書の識別情報の項目(605~607)の中に、電子署名に用いた電子証明書の識別情報505が記されている場合には電子証明書が失効していると判断し、そうでない場合は電子証明書が有効であると判断する。電子証明書の有効性の検証が終了すれば、過去のある電子署名処理時刻における電子証明書の有効性の検証のステップを終了する。
ステップ20206において、CRL保存名が異なる場合は、ステップ20212に進む。ステップ20212では、CRL取得プログラム1003を用いて、CRL保持部413からステップ20206において異なると判断されたCRL保存名に一致するCRLを取得する。ステップ20212でCRL保持部413からCRLを取得した後、ステップ20210へ進む。ステップ20210以降のステップは、上記ステップ20210以降のステップと等しい動作を行い、過去のある電子署名処理時刻における電子証明書の有効性の検証のステップを終了する。
ステップ20205において、過去のある電子署名処理時刻よりも時系列上で後に電子署名処理が行われていなかった場合は、ステップ20213へ進む。ステップ20213では、CRL取得プログラム1003を用いて、電子証明書に記載されるCRL配布場所507から最新のCRLを取得する。ステップ20213で最新のCRLを取得した後、ステップ20210へ進む。ステップ20210以降のステップは、上記ステップ20210以降のステップと等しい動作を行い、過去のある電子署名処理時刻における電子証明書の有効性の検証のステップを終了する。
ここで、電子証明書管理装置401において保持される電子証明書がある一定期間後(猶予期間)に有効期限が過ぎてしまう場合に出力装置部405に猶予期間後に有効期限が切れることを表示する動作について、図10に沿って説明する。
図10は本発明に係る電子証明書管理装置を適用した電子証明書管理装置において、電子署名処理動作を行った後に、猶予期間後に有効期限が切れてしまうような電子証明書が存在した場合にそのことを検出し、出力装置部405を利用して表示する動作(以降、有効期限期間検出動作と称する)を行うフローチャートである。電子証明書管理装置401は前述した電子署名処理時のステップ20112のステップが終了した後に、有効期限期間検出動作のステップを開始する。
有効期限期間検出動作のステップが開始すると、ステップ20301に進む。ステップ20301では、状態管理テーブル管理プログラム1008を用いて、状態管理テーブル保持部414に状態管理テーブルが存在するかどうかを判断する。
ステップ20301において、状態管理テーブルが存在しないと判断された場合は、有効期限期間検出動作のステップを終了する。
ステップ20301において、状態管理テーブルが存在すると判断された場合は、ステップ20302へ進む。ステップ20302では、状態管理テーブル管理プログラム1008を用いて、状態管理テーブル内の電子証明書識別情報記憶領域に電子証明書識別情報の記載があるかどうかを判断する。例えば、図7のように状態管理テーブルに電子証明書識別情報としてAB−CD−EF・・・00−11の項目702と22−33−44・・・AA−CCの項目703が存在した場合は電子証明書識別情報の記載があると判断する。
ステップ20302において、電子証明書識別情報の記載がないと判断された場合は、有効期限期間検出動作のステップを終了する。
ステップ20302において、電子証明書識別情報の記載があると判断された場合は、ステップ20303へ進む。ステップ20303では、状態管理テーブル管理プログラム1003を用いて、状態管理テーブルの電子証明書識別情報に対応している猶予期間情報が存在するかどうかを判断する。例えば、図7に示す状態管理テーブルにおいて、電子証明書識別情報がAB−CD−EF・・・00−11である項目702に対応する猶予期間情報711は62であり、猶予期間情報が存在すると判断する。仮に電子証明書識別情報が22−33−44・・・AA−CCである項目703であった場合は、対応する猶予期間情報715は28となる。
ステップ20303において、電子証明書識別情報に対応する猶予期間情報が存在しないと判断された場合は、ステップ20304へ進む。ステップ20304では、電子証明書識別情報に対応する最後の電子署名処理時刻におけるCRL保存名から、CRL取得プログラム1003を用いてCRL保持部413に保持されるCRLを取得する。例えば、図7に示すように状態管理テーブルが記載されていた場合に、電子証明書識別情報AB−CD−EF・・・00−11における電子署名処理時刻(704〜706)は3つあるが、この場合最後の電子署名処理時刻とは一番下に記載される電子署名処理時刻706が最後に行われた電子署名処理時刻であり、最後に行われた電子署名処理時刻706におけるCRL保存名709からCRL保持部413に保持されるCRLを取得する。
ステップ20304において、記憶装置部413からCRLを取得した後、ステップ20305へ進む。ステップ20305では、電子証明書有効期限期間検出プログラム1011を用いて、取得したCRLに記される項目の中で、CRLの次回更新時刻604の時刻情報とCRLの有効期間開始時刻603の時刻情報の差をとり、CRL発行間隔を計算する。そして、計算されたCRL発行間隔に対して2倍の期間を猶予期間として計算する。例えば、図7の状態管理テーブルに記載されるCRL保存名711で示されるAC−96−・・・−3D_200X_08_29.crlに記されるCRLの有効期間開始時刻603が200X/8/1であり、CRLの次回更新時刻604が200X/9/1であったならば、時刻情報の差をとり31日がCRL発行間隔となる。そしてCRL発行間隔が31日なので、猶予期間はその期間を2倍して62日が猶予期間情報となる。ステップ20305において猶予期間の計算をした後、ステップ20306へ進む。
ステップ20306では、計算された猶予期間の時刻情報を状態管理テーブル管理プログラム1008を用いて状態管理テーブルの猶予期間情報記憶領域に記憶する。例えば、図7において、電子証明書識別情報がAB−CD−EF・・・00−11で示される電子証明書において、猶予期間情報が記憶されていなかったと仮定すると猶予期間情報記憶領域710の位置に猶予期間という文字列を記憶し、猶予期間情報記憶領域711の位置に計算された猶予期間62を記憶する。ステップ20306において猶予期間情報を状態管理テーブルに記憶した後、ステップ20307へ進む。
ステップ20307では、計算された猶予期間情報もしくは状態管理テーブルから取得した猶予期間情報を用いて、電子証明書有効期限期間検出プログラム1011を用いて電子証明書が猶予期間後に有効期限が過ぎてしまうかどうかを判断する。具体的には、猶予期間と時刻情報部406の時刻情報を加算した結果が、電子証明書に記載される証明書の有効期間終了時刻503の時刻情報を過ぎていれば猶予期間後に電子証明書の有効期限が過ぎてしまうと判断し、そうでない場合は有効期限が過ぎないと判断する。例えば、図7の状態管理テーブルにおいて電子証明書識別情報702がAB−CD−EF・・・00−11で表される電子証明書で200X/8/4に電子署名処理を行った場合に、電子証明書の有効期間終了時刻503が200X/9/1であった場合は、電子署名処理時刻200X/8/4に対して猶予期間の62日を加算して200X/10/5となるので、電子証明書の有効期間終了時刻503より過ぎてしまっているので、電子証明書の有効期限が過ぎてしまうと判断する。仮に、同様の条件で、電子証明書の有効期間終了時刻503のみが200X/12/31であった場合は、有効期間終了時刻503を過ぎないので、電子証明書の有効期限が過ぎないと判断する。
ステップ20307において、猶予期間後に電子証明書の有効期限が過ぎてしまうと判断された場合は、ステップ20308へ進む。ステップ20308では、入出力装置制御プログラム1010を用いて、出力装置部405に猶予期間後に電子証明書の有効期限が過ぎてしまうことを表示する。猶予期間後に有効期限が過ぎてしまうことを表示したらステップ20309へ進む。
ステップ20309では、状態管理テーブル管理プログラム1008を用いて、状態管理テーブルに記載される電子証明書識別情報の中で、有効期限期間検出動作を行っていないものが存在するかどうかを判断する。具体的には、有効期限期間検出動作を行った電子証明書識別情報の次の電子証明書識別情報が存在するかどうかを判断する。例えば、図7に示す状態管理テーブルのように記載されていると仮定すると、AB−CD−EF・・・00−11と記載される電子証明書識別情報702の有効期限検出動作をこれまでのステップで行っていれば、次の電子証明書識別情報として22−33−44・・・AA−CCと記載される電子証明書識別情報703があるかどうかを判断する。この場合は電子証明書識別情報703があるので、次の電子証明書識別情報が存在すると判断する。仮にこれまでのステップが22−33−44・・・AA−CCと記載される電子証明書識別情報703であった場合は、次の電子証明書識別情報703は存在しないので、次の電子証明書識別情報は存在しないと判断する。
ステップ20309において、次の電子証明書識別情報が存在しないと判断された場合は、有効期限期間検出動作のステップを終了する。
ステップ20309において、次の電子証明書識別情報が存在すると判断された場合は、ステップ20310を経由して、ステップ20303へ進む。ステップ20310は有効期限期間検出動作における繰り返し処理が開始するステップ点であり、状態管理テーブルに記載される電子証明書識別情報の数だけ繰り返し経由される。ステップ20303以降は、上記ステップ20303以降のステップと等しい動作を行う。
ステップ20307において、猶予期間後に電子証明書の有効期限が過ぎないと判断された場合は、ステップ20309へ進む。ステップ20309以降は、上記ステップ20309以降のステップと等しい動作を行う。
ステップ20303において、電子証明書識別情報に対応する猶予期間情報が存在すると判断された場合は、ステップ20311へ進む。ステップ0311では、状態管理テーブルに記載される電子証明書識別情報に対応した猶予期間を取得する。例えば、図7に示すような状態管理テーブルであったと仮定すると、AV−CD−EF・・・00−11で示される電子証明書識別情報702であった場合は、猶予期間情報711として62を取得する。22−33−44・・・AA−CCで示される電子証明書識別情報703であった場合は、猶予期間情報715として24を取得する。ステップ20311において、猶予期間情報を取得した後、ステップ20307へ進む。ステップ20307以降は、上記ステップ20307以降のステップと等しい動作を行う。
以上のように、本実施例1によれば、上記の構成により電子署名処理毎に電子証明書管理装置内に電子証明書に対応する最新のCRLが保存される。もし電子証明書管理装置内にすでに最新のCRLが存在すればCRLは取得されない。また、CRLを保存した際のCRL保存名を電子証明書毎及びCRLを保存した日時毎に状態管理テーブルに記憶する。そのため、電子証明書管理装置は電子署名処理毎の電子証明書に対応した最新のCRLを容易に検索可能な状態で保持することができる。
また、従来手法のように電子署名処理毎に第一のCRL及び第二のCRLを取得するのではなく、電子署名処理毎にその電子署名処理時刻における最新のCRLを取得もしくは最新のCRLと同等のCRLが何であるかを状態管理テーブルにより把握して、電子証明書管理装置内にCRLを保持しておく事により、後の時刻においてある電子署名処理時における電子証明書の有効性検証を行うためのCRLの取得回数を軽減する事ができる。取得されるCRLの回数が軽減されるため、CRL保持部に必要とされる記憶領域量は軽減される。さらには、電子署名処理毎にのみCRLを取得するので、装置を常時起動している必要はなく電力消費量の軽減にもつながる。さらには、実施例1では、従来手法のようにCRLが新しく更新される事を検出し装置が自発的にもしくは人的に装置を起動させる必要はないので、自発的に装置を起動させるもしくは人的に装置を起動させるためのコストが必要ではなくなる。
なお、実施例1では電子証明書に関する電子処理として電子署名処理を例にあげるが、電子証明書の情報を用いた電子処理ならば電子証明書内に記憶される情報の参照や、電子証明書内に記憶される項目を用いた電子処理、電子証明書を用いた暗号化処理でもよい。また、実施例1では電子証明書の識別情報の作成方法として電子証明書からハッシュを計算して電子証明書の識別情報として用いているが、電子証明書を特定する事ができれば、電子証明書内に記憶される項目を用いてもよいし、電子証明書管理装置内で生成されるただ一度のみ生成される乱数値でもよいし、電子証明書管理装置外で生成されるただ一度のみ生成される電子データの値でもよいし、電子証明書管理装置外で生成されるただ一度のみ生成される電子データから電子証明書管理装置内で演算を行って修正を加えた電子データでもよい。
また、実施例1ではCRL識別情報の作成方法としてCRLからハッシュを計算し、電子処理を行った日付とハッシュから作成した文字列を作成してCRLを保持する際のCRL保存名とし、CRL保存名をCRL識別情報として用いているが、CRLを特定する事ができればCRLの識別情報はCRL内に記憶される項目でもよいし、電子証明書管理装置内で生成されるただ一度のみ生成される乱数値でもよいし、電子証明書管理装置外で生成されるただ一度のみ生成される電子データの値でもよいし、電子証明書管理装置外で生成されるただ一度のみ生成される電子データから電子証明書管理装置内で演算を行って修正を加えた電子データでもよい。
また、電子証明書が失効しているかどうかを検証するために、実施例1ではCAから最新のCRLを取得しているが、そのCRLが入手可能な最新のCRLであれば、CRLの取得先は電子証明書管理装置に接続しているネットワークに接続されるデータベースでもよいし、電子証明書管理装置の入力装置部から直接CRLを入力してもよい。また、実施例1では、電子証明書管理装置内の記憶装置部に取得したCRLを記憶する領域、電子証明書を記憶する領域、状態管理テーブルを記憶する領域を有しているが、これらを記憶する領域は電子証明書管理装置の外、例えばネットワークを通じて外部のデータベースに記憶されてもよいし、電子証明書管理装置内の入力装置部によってそれら情報を入力する事が可能な外部記憶媒体でもよい。
また、実施例1では、時刻を時系列上において比較する際に、電子証明書管理装置内の時刻情報部にて保持される時刻情報を用いて比較しているが、電子証明書管理装置外において管理される時刻、例えばネットワークを通じて時刻配信局からの時刻情報を用いてもよいし、電子証明書管理装置内の入力装置部によってそれら情報を入力する事が可能な外部記憶媒体でもよいし、電子証明書管理装置内の記憶装置部に記憶される電子データに対して電子処理を行って導き出される時刻でもよい。