説明

署名履歴保管装置、署名履歴保管方法およびそのプログラム

【課題】公開鍵証明書の有効期限が切れた後や秘密鍵が漏洩したときであっても、公開鍵証明書などの有効性を検証することができるようにする。
【解決手段】署名履歴保管装置104は、署名履歴リスト117と、証明書リスト120とを備え、作成されたヒステリシス署名の署名情報の部分を署名記録として署名履歴リスト117に登録し、ユーザ証明書の部分を証明書リスト120に登録する。また、署名履歴保管装置104は、信頼ポイントリスト118を備え、適宜またはユーザ証明書が期限切れになる前に、署名履歴リスト117に登録されている署名記録の検証を行い、検証した署名記録のうち最新の署名記録を特定する識別情報と、検証済み署名記録のユーザ証明書の有効性を検証する証拠情報と、これらの情報を連結した情報のハッシュ値とを信頼ポイントリスト118に登録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディジタル署名の有効性を長期に亘り保証する署名履歴保管装置、署名履歴保管方法およびそのプログラムに関する。
【背景技術】
【0002】
電子文書の正当性を保証するディジタル署名(以下、単に「署名」ともいう)は、暗号技術に基礎をおく技術であり、従って、その安全性は、「秘密鍵」の推定に係る計算の困難性によって保証される。そのため、現状のディジタル署名は、短い期間に対しては、電子文書の正当性を保証することができるが、20年や30年などという長い期間に対しては、電子文書の正当性を必ずしも保証することができない。長い期間には、コンピュータの計算速度が向上したり、暗号解読アルゴリズムが改善されたりする技術革新によって、「秘密鍵」の推定ができるようになる可能性があるからである。あるいは、運用に伴う人的エラーによって「秘密鍵」が漏洩する可能性もある。
【0003】
一旦、「秘密鍵」が悪意ある第三者の手に渡ってしまうと、その「秘密鍵」を用いて作成された署名の正当性を保証することはできなくなってしまう。そのため、公開鍵証明書には有効期間が設定されており、ディジタル署名の有効性は、その有効期間内でしか保証されない。このようなディジタル署名では、長期に亘って保存する電子文書に対して、その正当性を保証することができない。そこで、この課題を解決すべく、公開鍵証明書の有効期限を超えてディジタル署名の有効性を延長させる技術の開発がなされている。
【0004】
例えば、非特許文献1には、署名の再検証時に必要な証拠情報(認証局の証明書、証明書失効リスト(CRL:Certificate Revocation List)など)をあらかじめ取得し、当該電子文書、署名、証拠情報に対してタイムスタンプを付与しておき、そのタイムスタンプの有効期限が切れる前に新しいタイムスタンプを再付与することによって、ディジタル署名の有効性を長期に亘り保証する技術が開示されている。
【0005】
また、特許文献1では、署名生成時にその署名を履歴として残しておき、新たに署名を生成する際には、その新たな署名に前回の署名の履歴を反映させる、ヒステリシス署名と呼ばれる技術が開示されている。このヒステリシス署名技術によれば、ヒステリシス署名がされた電子文書については、その後も後続の電子文書にヒステリシス署名が行なわれている限りは、各電子文書に再署名することなしにその電子文書の署名の有効性を延長することができる。
【0006】
また、ヒステリシス署名技術では、署名履歴の一部を、例えば、新聞、雑誌などの定期刊行物やインターネットのウェブサイトなどの公開媒体を介して公開することによって、署名間の連鎖関係の正当性を向上させることができるとしている。
【非特許文献1】D. Pinkas, J. Ross, N. Pope, "RFC3126 - Electronic Signature Formats for long term electronic signatures", IETF (Internet Engineering Task Force), Sep. 2001, [On line], [平成17年9月5日検索], インターネット<http://www.faqs.org/rfcs/ rfc3126.html>
【特許文献1】特開2001−331104号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1で開示されている方法においては、利用する証拠情報が同一であっても署名ごとに証拠情報を保管する必要があるため、証拠情報を保管するのに多くの記憶領域を必要とする。さらには、タイムスタンプの有効期限が切れる前に、電子文書、署名、証拠情報などに対して新しいタイムスタンプを付与する必要があるので、関係する電子文書が磁気テープやDVD(Digital Versatile Disk)などの外部の可搬記憶媒体に保管され、コンピュータから直接にアクセス可能でない場合には、大きな運用の手間となる。
【0008】
また、特許文献1には、公開鍵証明書の有効期限が切れた後や秘密鍵が漏洩したとき、電子文書や署名の改竄を検知する技術は開示されているが、その公開鍵証明書などの有効性を検証する技術については開示されていない。
【0009】
本発明の目的は、以上の従来技術の問題点を解決すべく、証拠情報などを保管するのに必要となる記憶装置の記憶容量、および、運用の手間を削減することができ、さらに、公開鍵証明書の有効期限が切れた後や秘密鍵が漏洩したときであっても、公開鍵証明書などの有効性を検証することが可能な署名履歴保管装置、署名履歴保管方法およびそのプログラムを提供することにある。
【課題を解決するための手段】
【0010】
本発明は、CPUと記憶装置とを少なくとも備え、複数のディジタル署名間に一方向関数による連鎖関係を付与した署名情報とその署名情報の作成に使用された公開鍵情報を含むユーザ証明書とを含んで構成されたヒステリシス署名の署名履歴を、前記記憶装置に保管する署名履歴保管装置、署名履歴保管方法およびプログラムであって、前記記憶装置は、署名履歴リストと証明書リストとを備え、前記署名履歴保管装置は、前記ヒステリシス署名が作成されたときに、その作成されたヒステリシス署名のうち、前記署名情報の部分を署名記録として前記署名履歴リストに登録し、前記ユーザ証明書の部分を前記署名記録と対応させて前記証明書リストに登録することを特徴とする。
【0011】
本発明によれば、ヒステリシス署名に含まれる情報のうち、署名情報の部分を署名記録として署名履歴リストに保管し、ユーザ証明書(公開鍵情報)の部分を署名記録に対応させて証明書リストに保管する。通常、ユーザが同じであればその複数の署名に対して、ユーザ証明書はその有効期間中は同じであるので、同じユーザ証明書を重複して保管する必要がなくなる。そのため、ユーザ証明書を記憶する記憶装置の記憶容量は、小さくなる。
【0012】
また、本発明においては、前記記憶装置が、さらに、前記署名履歴リストに登録されている署名記録のうち、最新の検証済み署名記録を特定する第1の識別情報を含む情報を、信頼ポイントデータとして登録する信頼ポイントリストを備える。そして、前記署名履歴保管装置は、前記署名履歴リストに登録されている署名記録のうち、最新の署名記録を取り出し、前記取り出した署名記録から前記第1の識別情報によって特定される署名記録までの署名記録について、前記証明書リストに登録されている前記ユーザ証明書を用いて、前記署名記録の有効性および前記署名記録の連鎖関係の有効性を検証し、前記ユーザ証明書について、そのユーザ証明書の有効性を証明する証拠情報を取得し、その取得した証拠情報に基づき前記ユーザ証明書の有効性を検証し、前記最新の署名記録を特定する第2の識別情報と、前記収集した証拠情報と、前記第2の識別情報によって特定される署名記録および前記証拠情報を連結した情報のハッシュ値とを、信頼ポイントデータとして前記信頼ポイントリストに登録する。
【0013】
すなわち、本発明においては、適宜、または、ユーザ証明書の期限が切れる前に、署名履歴リストに登録されている署名記録について、その署名情報および署名情報の連鎖関係の有効性を検証するとともに、その検証に用いたユーザ証明書の有効性を証明する証拠情報を取得し、その取得した証拠情報を信頼ポイントデータの一部として信頼ポイントリストに保管する。従って、ユーザ証明書の期限が切れた後や秘密鍵が漏洩したときであっても、ユーザ証明書の有効性を検証することができる。
【0014】
また、本発明においては、前記署名履歴保管装置は、前記信頼ポイントリストに新たな信頼ポイントデータが登録されたときに、前記証明書リストに登録されているユーザ証明書をすべて消去する。従って、ユーザ証明書を記憶する記憶装置の記憶容量は、さらに小さくなる。
【発明の効果】
【0015】
本発明により、ユーザ証明書(公開鍵証明書)の有効期限が切れた後や秘密鍵が漏洩したときであっても、電子文書の署名とそのユーザ証明書の有効性を検証をすることができるようになるだけでなく、記憶装置の容量を削減し、さらには、運用の手間を省くことができるようになる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の実施形態について、適宜、図1〜図9を参照して詳細に説明する。
【0017】
図1は、本発明の実施形態に係る署名履歴保管装置を用いたヒステリシス署名文書管理システムの構成の例を示した図である。図1に示すように、ヒステリシス署名文書管理システム10は、認証局装置101と、署名作成装置102と、文書保管装置103と、署名履歴保管装置104と、署名検証装置105とを含み、さらに、これらの装置がネットワーク106を介して相互に接続されて構成される。以下、これら各装置101〜105およびその装置の構成および機能について説明する。
【0018】
図1において、認証局装置101は、少なくともCPU(Central Processing Unit)と記憶装置とを備えたコンピュータであり、証明書発行部107、CRL発行部108、CRL公開部109などの機能ブロックを備える。
【0019】
ここで、証明書発行部107は、署名者などからの要求に応じて、ヒステリシス署名用の秘密鍵を生成するとともに、その秘密鍵に対応する公開鍵証明書を発行する。また、CRL発行部108は、前記発行した公開鍵証明書の失効情報の管理を行うとともに、定期的にCRLを発行する。また、CRL公開部109は、署名者や検証者に対して前記発行したCRLを公開する機能を有する。
【0020】
次に、署名作成装置102は、少なくともCPUと記憶装置とを備えたコンピュータであり、署名作成部110、文書登録部111などの機能ブロックを備える。
【0021】
ここで、署名作成部110は、ヒステリシス署名を付与しようとする電子文書に対してヒステリシス署名を作成し、付与する。また、文書登録部111は、当該電子文書と、その電子文書に対し署名作成部110が作成したヒステリシス署名とを文書保管装置103に登録する。
【0022】
署名作成装置102は、また、その記憶装置の所定の領域に、署名作成に必要なデータ(秘密鍵、公開鍵証明書、前回作成したヒステリシス署名(以下、「前署名」という))を記憶する。署名作成部110は、これらのデータと当該電子文書とを入力として、ヒステリシス署名を作成する。このとき作成されるヒステリシス署名のデータ形式については、別途、図3を用いて説明する。
【0023】
なお、別の実施形態として、これらの署名作成に必要なデータ(秘密鍵、公開鍵証明書、前署名)を、署名作成装置102の記憶装置に保管せずに、ICカードなどの外部記憶媒体に保管してもよく、また、署名作成時に署名履歴保管装置104から取得するようにしてもよい。また、さらに別の実施形態として、署名作成装置102は、第三者が発行するタイムスタンプ(例えば、RFC3161参照)を取得し、取得したタイムスタンプをヒステリシス署名に付与してもよい。
【0024】
次に、文書保管装置103は、少なくともCPUと記憶装置とを備えたコンピュータであり、文書管理部112などの機能ブロックを備える。
【0025】
ここで、文書管理部112は、電子文書、ヒステリシス署名、その他当該電子文書に関するデータ(例えば、保存期限、文書作成日時など)を記憶装置の所定の領域に蓄積、管理する。また、文書管理部112は、その電子文書などのデータを管理する機能の一部として、ユーザまたは他の装置からの要求に応じて、電子文書などのデータを登録するとともに、登録された電子文書などのデータを提供する。
【0026】
次に、署名履歴保管装置104は、少なくともCPUと記憶装置とを備えたコンピュータであり、署名登録部113、信頼ポイント構築部114、署名検証部115などの機能ブロックを備える。また、署名履歴保管装置104は、記憶装置116に署名履歴リスト117、信頼ポイントリスト118、認証局証明書119、証明書リスト120などヒステリシス署名の検証に必要なデータを記憶または保存する領域を備える。なお、本明細書においては、認証局装置101の公開鍵証明書を「認証局証明書」といい、署名履歴保管装置104に登録されたユーザの公開鍵証明書を「ユーザ証明書」または単に「証明書」という。
【0027】
ここで、署名登録部113は、署名作成装置102が作成したヒステリシス署名に含まれる情報を署名履歴リスト117および証明書リスト120に登録する。また、信頼ポイント構築部114は、署名履歴リスト117に含まれるヒステリシス署名の履歴データに基づき、信頼ポイントデータを生成し、生成した信頼ポイントデータを信頼ポイントリスト118に登録する。また、署名検証部115は、署名履歴リスト117、信頼ポイントリスト118、認証局証明書119、証明書リスト120などのデータを用いてヒステリシス署名の検証を行う。
【0028】
なお、署名登録部113、信頼ポイント構築部114および署名検証部115のそれぞれの機能を実現するための処理フローについては、別途、図5〜図7および図9を用いて詳しく説明する。また、署名履歴リスト117の構成については図4を用い、また、信頼ポイントリスト118の構成については図8を用いて、別途、詳しく説明する。
【0029】
また、図示を省略したが、署名履歴保管装置104は、2台以上の署名作成装置102からヒステリシス署名の登録要求を受け付ける機能ブロック、および、複数の署名履歴を管理する機能ブロックを備える。
【0030】
次に、署名検証装置105は、少なくともCPUと記憶装置とを備えたコンピュータであり、文書取得部121、署名検証要求部122などの機能ブロックを備える。
【0031】
ここで、文書取得部121は、文書保管装置103から検証対象となる電子文書とその電子文書に係るヒステリシス署名とを取得する。また、署名検証要求部122は、署名履歴保管装置104に対しヒステリシス署名の検証を要求する。
【0032】
なお、本実施形態では、電子文書とヒステリシス署名との関係の有効性の検証(以下、「単体検証」という)と、署名履歴を用いたヒステリシス署名の連鎖関係の有効性の検証(以下、「履歴検証」という)の2つの検証処理が含まれる。このうち、単体検証については、署名検証装置105で行ってもよい。また、検証に必要なデータを署名履歴保管装置104から取得するようにすれば、署名検証装置105で単体検証と履歴検証との両方を行ってもよい。
【0033】
図2は、本発明の実施形態に係るコンピュータの一般的な構成の例を示した図である。図2に示すように、コンピュータ201は、CPU202、主記憶装置203、補助記憶装置204、ネットワークインターフェース205、I/Oインターフェース206などが内部バス207によって相互に接続されて構成される。なお、本明細書では、主記憶装置203と補助記憶装置204とを総称する場合には、単に「記憶装置」という。
【0034】
ここで、主記憶装置203は、半導体メモリであるRAM(Random Access Memory)などによって構成され、また、補助記憶装置204は、ハードディスク、CD−ROM(Compact Disk Read Only Memory)、DVDなどを記憶媒体とする不揮発性の記憶装置によって構成される。また、ネットワークインターフェース205は、インターネットやLAN(Local Area Network)などのネットワーク106を内部バス207に接続する接続装置であり、I/Oインターフェース206は、ディスプレイ装置、マウス、キーボードなどの入出力装置を内部バス207に接続する接続装置である。
【0035】
図1に示した認証局装置101、署名作成装置102、文書保管装置103、署名履歴保管装置104、署名検証装置105の各装置は、例えば、図2のようなコンピュータによって構成される。そして、それらの各装置が備える各機能ブロックの機能は、CPU202が主記憶装置203にロードされた所定のプログラムを実行することによって実現される。なお、当該所定のプログラムは、通常は、補助記憶装置204に記憶され、実行される前に主記憶装置203にロードされる。
【0036】
本実施形態では、図1に示したように、署名作成装置102、文書保管装置103、署名履歴保管装置104および署名検証装置105は、それぞれが異なるコンピュータによって実現された装置としているが、これら全ての装置を1つのコンピュータによって実現してもよい。あるいは、2つ以上の装置を1つのコンピュータによって実現してもよい。なお、認証局装置101は、通常は、これらいずれの装置とも同一のコンピュータによって実現されることはない。
【0037】
続いて、図3および図4を用いて、本実施形態に係るヒステリシス署名データの構成、および、そのヒステリシス署名データを記録して保存する署名履歴リスト117の構成について説明する。ここで、図3は、本発明の実施形態に係るヒステリシス署名データの形式の例を示した図、図4は、本発明の実施形態に係る署名記録データの形式の例を示した図である。ここで、署名記録データとは、署名履歴リスト117に記録された個々のヒステリシス署名データ(ただし、実際には、後記するように、ヒステリシス署名データからユーザ証明書のデータを取り除いたデータ)をいう。
【0038】
図3に示すように、ヒステリシス署名データ300は、[1]署名ID301“i”、[2]署名対象の電子文書“Mi”のハッシュ値302“H(Mi)”、[3]前回の署名(連番が“i−1”)に対応する署名記録データ“Pi-1”のハッシュ値303“H(Pi-1)”、[4]ハッシュ値302“H(Mi)”とハッシュ値303“H(Pi-1)”とを連結したデータに対する署名値304“Sign(H(Mi)||H(Pi-1))”、[5]ユーザ証明書306を一意に特定するための証明書識別情報305、[6]ユーザ証明書306を含んで構成される。
【0039】
ここで、H(x)は、ハッシュ関数と呼ばれ、任意長の入力データから固定長の値を出力する関数である。情報の安全性を確保する目的からは、ハッシュ関数は、同じ出力値を与えるような2つの異なる入力データを見出すのが困難で、かつ、出力値がある値となる入力データを見出すのが困難であるような関数を用いるのが好ましい。なお、ハッシュ関数の計算アルゴリズムは公開されていても構わない。
【0040】
また、署名ID301は、当該ヒステリシス署名が含まれる署名履歴リスト117を特定する識別情報(署名履歴ID)と、その署名履歴リスト117内での連番とが連結されて構成される(例えば、署名履歴ID_連番)。署名ID301に署名履歴IDを含めることにより、複数の署名履歴リスト117がある場合であっても、その署名ID301によって署名履歴リスト117を一意に特定することができる。
【0041】
なお、証明書識別情報305には、公開鍵証明書の発行元、所有者、証明書のシリアル番号などの情報が含まれる。また、ヒステリシス署名データ300に、第三者が発行するタイムスタンプの一部または全部を含めるようにしてもよい。
【0042】
次に、図4に示すように、署名記録データ400は、ヒステリシス署名データ300からユーザ証明書306を取り除いたデータである。従って、署名記録データ400は、[1]署名ID301“i”、[2]署名対象の電子文書“Mi”のハッシュ値302“H(Mi)”、[3]前回の署名(連番が“i−1”)に対応する署名記録データ“Pi-1”のハッシュ値303“H(Pi-1)”、[4]ハッシュ値302“H(Mi)”とハッシュ値303“H(Pi-1)”とを連結したデータに対する署名値304“Sign(H(Mi)||H(Pi-1))”、[5]ユーザ証明書306を一意に特定するための証明書識別情報305を含んで構成される。また、このとき、署名記録データ400に第三者が発行するタイムスタンプの一部または全部を含めるようにしてもよい。
【0043】
本実施形態においては、署名作成装置102において電子文書のヒステリシス署名が作成されると、署名作成装置102は、そのヒステリシス署名の登録を署名履歴保管装置104に要求する。署名履歴保管装置104は、その要求に基づき、ヒステリシス署名データ300を署名履歴リスト117に登録する。ただし、実際には、ヒステリシス署名データ300のうちユーザ証明書306を取り除いたデータである署名記録データ400を署名履歴リスト117に登録する。
【0044】
ヒステリシス署名データ300に含まれるユーザ証明書306は、署名履歴リスト117に登録されない代わりに、証明書リスト120に記憶される。一般に、ユーザ証明書306は、複数の電子文書に対して共通に使用されることが多いが、証明書リスト120に記憶する場合、同じユーザ証明書306を重複して記憶することを避けることができる。また、後記するように、信頼ポイントが構築されるたびに、証明書リスト120に記憶されているユーザ証明書306は消去される。そのため、ユーザ証明書306を署名記録データ400に含めて署名履歴リスト117に記憶する場合に比べて、記憶領域の使用量を大幅に削減することができる。
【0045】
また、本実施形態においては、署名履歴リスト117は署名作成装置102ごとに作成される。例えば、署名作成装置102が2台ある場合には、署名履歴保管装置104には2つの署名履歴リスト117が存在することになる。この場合には、署名ID301は、例えば、署名履歴IDと連番とを組み合わせ、一方が“log1_0001”、他方が“log2_0001”のような形式となる。また、別の実施形態として、署名履歴リスト117をユーザごとに作成してもよい。その場合には、署名履歴保管装置104にはユーザ数分の署名履歴リスト117が作成されるので、署名ID301は、例えば、ユーザIDと連番とを組み合わせて、“user1_0001”のような形式となる。
【0046】
以上のように、本実施形態では、署名履歴保管装置104は、ヒステリシス署名データ300を署名記録データ400にして署名履歴リスト117に登録するとき、署名ID301を参照することによって、どの署名履歴リスト117に登録するかを判定することができる。なお、別の実施形態として、署名登録を要求したユーザまたは署名作成装置102について、署名履歴保管装置104がユーザ認証または装置認証を行い、認証されたユーザまたは装置にあらかじめ割り当てられた署名履歴リスト117に署名記録データ400を登録するようにしてもよい。
【0047】
続いて、図5を参照して、署名履歴保管装置104が署名登録部113の機能として実行する署名登録処理のフローについて説明する。ここで、図5は、本実施形態に係る署名履歴保管装置が実行する署名登録処理のフローを示した図である。この処理は、署名作成装置102において電子文書のヒステリシス署名が作成されたときに、署名作成装置102からの要求に応じて実行される。
【0048】
図5において、署名履歴保管装置104は、まず、署名作成装置102から送信されるヒステリシス署名データ300を受信する(ステップS501)。そして、その受信したヒステリシス署名データ300に含まれているユーザ証明書306を抽出する(ステップS502)。
【0049】
次に、署名履歴保管装置104は、ステップS502で抽出したユーザ証明書306の検証を行う(ステップS503)。その検証処理には、記憶装置116に記憶されている認証局証明書119をトラストアンカーとして行う認証パス検証、有効期限の検査、失効確認の各処理が含まれる。なお、この失効確認においては、署名履歴保管装置104は、認証局装置101が公開しているCRLを取得し、検査する。これらの検証に失敗した場合には、署名作成装置102にエラーを返送し、署名登録処理を終了する(図示せず)。
【0050】
次に、署名履歴保管装置104は、ユーザ証明書306に含まれる公開鍵を用いて、ヒステリシス署名の署名値を検証する(ステップS504)。ヒステリシス署名データ300には、署名対象の電子文書“Mi”のハッシュ値302“H(Mi)”と、前回、つまり、連番が(i−1)の署名記録データ“Pi-1”のハッシュ値303“H(Pi-1)”とが含まれているため、署名対象の電子文書がない場合でも、署名値の検証を行うことができる。この検証に失敗した場合には、署名作成装置102にエラーを返送し、署名登録処理を終了する(図示せず)。
【0051】
次に、署名履歴保管装置104は、ユーザ証明書306が証明書リスト120に登録済みのユーザ証明書であるか否かを判定し(ステップS505)、ユーザ証明書306が登録済みであった場合には(ステップS505でYes)、ヒステリシス署名データ300からユーザ証明書306を取り除いて署名記録データ400とし、その署名記録データ400を署名履歴リスト117に登録する(ステップS507)。一方、ユーザ証明書306が登録済みでなかった場合には(ステップS505でNo)、証明書リスト120にユーザ証明書306を追加し(ステップS506)、その後、ヒステリシス署名データ300からユーザ証明書306を取り除いて署名記録データ400とし、その署名記録データ400を署名履歴リスト117に登録する(ステップS507)。
【0052】
なお、別の実施形態として、ヒステリシス署名データ300のデータにタイムスタンプが含まれる場合には、タイムスタンプの検証処理を署名値検証処理(ステップS504)の後に行うようにする。
【0053】
続いて、図6および図7を参照して、署名履歴保管装置104が信頼ポイント構築部114の機能として実行する信頼ポイント構築処理のフローについて説明する。ここで、図6は、本実施形態に係る署名履歴保管装置が実行する信頼ポイント構築処理のフローを示した図であり、図7は、信頼ポイント構築処理に含まれる署名履歴検証処理の詳細フローを示した図である。
【0054】
なお、信頼ポイントとは、署名履歴リスト117に記録されている署名記録データ400でその単体検証および履歴検証を済ませた署名記録データ400のうち、その検証を行ったときの最新の署名記録データ400を指し示す情報(例えば、署名ID301)をいい、信頼ポイントデータには、後記するように、検証に使用した証拠情報などを含む。従って、信頼ポイント構築処理は、署名記録データ400の単体検証および履歴検証の処理であり、さらには、信頼ポイントデータを作成し、保存する処理である。よって、この信頼ポイント構築処理は、日次、週次など定期的に実行することが望ましい。ただし、ユーザ証明書の有効期限切れや失効手続を行う場合には、そのような事象が発生する前に実行するものとする。
【0055】
ここでは、まず、署名履歴保管装置104の署名履歴リスト117が1つの場合について、信頼ポイント構築処理の処理フローを説明する。なお、以下の説明においては、繁雑を避けるために、署名履歴リスト117に記録された個々の署名記録データ400を単に「署名記録」という。
【0056】
図6において、署名履歴保管装置104は、署名履歴リスト117を参照して、前回構築した信頼ポイント以降の署名記録のうち、最新の署名記録を取得する(ステップS601)。前回信頼ポイントを構築して以降、署名記録が追加されていない場合にはエラーを返し、信頼ポイント構築処理を終了する(図示せず)。
【0057】
次に、署名履歴保管装置104は、ステップ601で取得した最新の署名記録について署名記録検証を行なう(ステップS602)。その署名記録検証では、当該署名記録に含まれている証明書識別情報305によって証明書リスト120に記憶されているユーザ証明書を特定し、その特定したユーザ証明書を用い、さらに、当該署名記録自身に含まれている署名対象データであるハッシュ値302、303、署名値304を用いて当該署名記録の有効性を検証する。そして、この署名記録検証が成功した場合には、次のステップS603へ進み、検証が失敗した場合には、当該署名記録の署名ID301を返し、信頼ポイント構築処理を終了する(図示せず)。
【0058】
なお、別の実施形態として、この署名記録検証に失敗した場合には、前記最新の署名記録を破棄し、新たに、1つ前の署名記録を最新の署名記録として、ステップS602以降の処理を行うようにしてもよい。
【0059】
次に、署名履歴保管装置104は、ステップ601で取得した最新の署名記録から前回構築した信頼ポイントによって特定される署名記録までの署名記録の連鎖関係の有効性の検証、つまり、署名履歴検証を行う(ステップS603)。ここでは、図6の説明を中断し、図7を参照して、ステップS603の署名履歴検証処理の詳細について説明する。
【0060】
図7において、署名履歴保管装置104は、まず、カウンタ変数iをi=N−1とする(ステップS701)。ここで、Nは、最新の署名記録の署名IDに含まれる連番を表す数である。続いて、署名履歴保管装置104は、署名履歴リスト117から署名記録(i)を取得する(ステップS702)。そして、署名記録(i+1)に含まれる前回の署名記録(i)のハッシュ値と、前回の署名記録(i)の実際のハッシュ値とが一致していることを検証する(ステップS703)。この検証に成功した場合には、ステップS704へ進み、失敗した場合には、署名記録(i)の署名ID301を返し、署名履歴検証処理を終了する(図示せず)。
【0061】
次に、署名履歴保管装置104は、カウンタ変数iが、i>Tであるか判定する(ステップS704)。ここで、Tは、前回の信頼ポイントである署名記録の署名IDに含まれる連番を表す数である。そして、この判定の結果、i>Tであった場合には(ステップS704でYes)、カウンタ変数iをi=i−1とし(ステップS705)、ステップS702へ戻り、ステップS702以降の処理を再度実行する。また、i>Tでなかった場合(ステップS704でNo)、つまり、i=Tとなった場合には、署名履歴検証処理を終了する。
【0062】
再び、図6のフローの説明に戻る。署名履歴保管装置104は、署名履歴検証処理(ステップS603)を終了すると、証明書リスト120に登録されている全てのユーザ証明書を取得する(ステップS604)。そして、それぞれのユーザ証明書の検証に必要な認証局証明書119とCRLとを証拠情報として、認証局装置101から取得する(ステップS605)。このとき、全てのユーザ証明書が同一の認証局装置101から発行されている場合には、認証局証明書119とCRLとは、それぞれ1つですむ。また、ユーザ証明書が相異なる複数の認証局装置101からを発行されている場合には、最大、認証局装置101の数だけの認証局証明書119とCRLとが必要となる。
【0063】
次に、署名履歴保管装置104は、ステップS605で取得した認証局証明書119とCRLとを用いて、ユーザ証明書が有効かつ失効していないことを検証する(ステップS606)。この検証において、検証に失敗したユーザ証明書があった場合には、当該検証に失敗したユーザ証明書の識別情報を返し、次のステップへ進む。なお、この場合は、ユーザ証明書の検証に失敗した場合であって、署名履歴リスト117が改竄されているわけではないので、検証の失敗があったことを情報として返すにとどめる。また、別の実施形態として、検証失敗時には単にエラーを返して信頼ポイント構築処理を終了してもよい。
【0064】
次に、署名履歴保管装置104は、最新の署名記録と、認証局証明書119、CRLなどを含む証拠情報とを結合したデータのハッシュ値を計算する(ステップS607)。そして、信頼ポイントIDと、最新の署名記録の署名IDと、認証局証明書、CRLなどを含む証拠情報と、ステップ607で計算したハッシュ値とを信頼ポイントデータとして信頼ポイントリスト118に登録する(ステップS608)。なお、信頼ポイントIDは、本ステップで生成する信頼ポイントデータを一意に特定可能な識別情報である。
【0065】
最後に、署名履歴保管装置104は、証明書リスト120に登録されているユーザ証明書を全て削除、つまり、証明書リスト120をクリアし(ステップS609)、信頼ポイントIDとハッシュ値とを返して、信頼ポイント構築処理を終了する。
【0066】
次に、署名履歴保管装置104の署名履歴リスト117が複数ある場合について、信頼ポイント構築処理の処理フローを補足的に説明する。
【0067】
署名履歴保管装置104は、ステップS601では、署名履歴ごとに最新の署名記録を取得する。このとき、前回の信頼ポイント構築時から更新されていない署名履歴リスト117については署名記録を取得しない。例えば、M個の署名履歴リスト117がある場合において、前回の信頼ポイント構築時から更新されていない、つまり、新たな署名記録が追加されていない署名履歴リスト117がL個あった場合には、(M−L)個の署名履歴リスト117からそれぞれ1つずつ、合計(M−L)個の最新の署名記録を取得することになる。
【0068】
次に、署名履歴保管装置104は、ステップS602(署名記録検証)からステップS603(署名履歴検証)までの処理をそれぞれの署名履歴リスト117ごとに行う。次に、ステップS604(ユーザ証明書取得)からステップS606(ユーザ証明書検証)までの処理を行う。そして、ステップS607(ハッシュ値計算)では、ステップS601(署名記録取得)で取得した(M−L)個の最新の署名記録と、認証局証明書119、CRLなどを含む証拠情報とを結合したデータのハッシュ値を計算する。
【0069】
本実施形態では、署名履歴が複数の場合であっても、信頼ポイントデータは1つであるとする。そこで、ステップS608では、(M−L)個の最新の署名記録の署名IDを信頼ポイントデータに含めるようにし、その信頼ポイントデータを信頼ポイントリスト118に登録する。そして、最後に、ステップS609の処理を実行する。
【0070】
なお、以上の信頼ポイント構築処理によって求められたハッシュ値および信頼ポイントIDは、公開刊行物、例えば新聞、雑誌、ウェブサイト、または、その他の定期刊行物といった公開媒体に公開することが望ましい。公開することによって、信頼ポイントリスト118の信頼ポイントデータの改竄の有無を検証することができるようになる。
【0071】
図8は、本発明の実施形態に係る信頼ポイントリストを構成する信頼ポイントデータの形式を示した図である。図8に示すように、信頼ポイントデータは、信頼ポイントID801、署名IDリスト802、信頼ポイントハッシュ値803、証拠情報リスト804によって構成される。
【0072】
ここで、信頼ポイントID801は、当該信頼ポイントデータを信頼ポイントリスト118内で一意的に特定可能にする識別情報である。また、署名IDリスト802は、信頼ポイント構築時に取得された最新の署名IDのリストである。また、信頼ポイントハッシュ値803は、信頼ポイント構築時に計算されたハッシュ値である(図6、ステップS607参照)。また、証拠情報リスト804は、信頼ポイント構築時に取得、利用した認証局証明書119、CRLなどである。
【0073】
なお、信頼ポイントリスト118の信頼ポイントハッシュ値803は、新聞などに公開されたハッシュ値を利用できない場合であっても、簡易な検証を行う場合には、トラストアンカーとして利用することができる。また、新聞などに公開したハッシュ値を必ず利用するシステムにおいては、信頼ポイントリスト118の信頼ポイントハッシュ値803はなくてもよい。
【0074】
また、証拠情報リスト804には、OCSP(Online Certificate Status Protocol)レスポンス、ARL(Authority Revocation List)、ユーザ証明書などを含めてもよい。さらに、別の実施形態として、ヒステリシス署名にタイムスタンプを含む場合には、証拠情報リスト804にタイムスタンプに関連する証明書を含める。
【0075】
続いて、図9を参照して、署名履歴保管装置104が署名検証部115の機能として実行する署名検証処理のフローについて説明する。ここで、図9は、本実施形態に係る署名履歴保管装置が実行する署名検証処理のフローを示した図である。この処理は、署名検証装置105において署名検証要求が発生したときに、署名検証装置105からの要求に応じて実行される。
【0076】
図9において、署名履歴保管装置104は、まず、ヒステリシス署名、信頼ポイントID、信頼ポイントのハッシュ値などの検証対象情報を入力する(ステップS900)。このとき、信頼ポイントIDおよび信頼ポイントハッシュ値は、公開先の新聞などに掲載された値を用いる。そして、署名履歴保管装置104は、信頼ポイントリスト118を参照して、ステップS900で入力した信頼ポイントIDによって特定される信頼ポイントデータから、署名IDリスト802と証拠情報リスト804とを取得する(ステップS901)。
【0077】
次に、署名履歴保管装置104は、入力された信頼ポイントIDと信頼ポイントのハッシュ値とによって、入力されたヒステリシス署名の検証が可能か否かを判定する(ステップS902)。すなわち、入力されたヒステリシス署名に含まれる署名ID(ID1)と署名IDリスト802に含まれる署名ID(ID2)とが、同一の署名履歴リスト117に含まれ、かつ、署名ID(ID2)が署名ID(ID1)よりも新しければ、検証可能と判定する。なお、同一の署名履歴リスト117に含まれるか否かの判定は、署名IDに含まれる署名履歴IDを比較することによって行う。この判定において、検証可能な場合には、次のステップへ進み、検証不可の場合には、エラーとして署名検証処理を終了する(図示せず)。
【0078】
次に、署名履歴保管装置104は、署名IDリスト802に列挙されている署名IDによって特定される署名記録を署名履歴リスト117から取得し、取得した署名記録と証拠情報リスト804とを連結したデータのハッシュ値を計算する(ステップS903)。そして、ステップ903で計算されたハッシュ値を、ステップS900で入力された信頼ポイントのハッシュ値、つまり、公開されたハッシュ値と比較する(ステップS904)。その比較の結果、両者のハッシュ値が一致した場合には、次のステップへ進み、一致しなかった場合には、エラーとして署名検証処理を終了する(図示せず)。
【0079】
次に、署名履歴保管装置104は、信頼ポイントに含まれる署名ID(ID2)から検証対象の署名ID(ID1)までの署名履歴の検証を行う(ステップS905)。このとき、検証対象の署名履歴は、入力されたヒステリシス署名データ300に含まれる署名IDによって特定する。この署名履歴検証処理は、図7の署名履歴検証処理のフローとほぼ同様である。異なる点は、Tが検証対象のヒステリシス署名データ300の署名IDから1を引いた値になる点である。
【0080】
次に、署名履歴保管装置104は、入力されたヒステリシス署名と署名履歴リスト117上の対応する署名記録とを比較する(ステップS906)。ただし、このときの比較においては、図3および図4に示したように、署名記録データ400は、ヒステリシス署名データ300からユーザ証明書306を除いた形式となっているので、ユーザ証明書306を除いた共通部分のデータを比較する。その比較の結果、両者が一致した場合には、次のステップへ進み、一致しなかった場合には、エラーとして署名検証処理を終了する(図示せず)。
【0081】
次に、署名履歴保管装置104は、証拠情報リスト804に含まれる認証局証明書、CRLなどを用いてユーザ証明書を検証する(ステップS907)。検証は、認証局証明書に含まれる公開鍵を用いた検証と、ユーザ証明書がCRLに含まれていないかの検査を行う。なお、証明書の有効期限の検査は行わない。
【0082】
以上のようにして、公開鍵証明書の有効期限が切れた後や秘密鍵の漏洩時であっても、電子文書に付されたヒステリシス署名およびその中に含まれるユーザ証明書(公開鍵証明書)の有効性を検証することができる。この場合、公開鍵証明書の期限切れになる前に、電子文書ごとに新たに公開鍵証明書やタイムスタンプを取る必要がないので、運用の手間を省くことができる。また、電子文書ごとにまたは署名記録ごとにユーザ証明書を保存する必要がないので、ユーザ証明書を保存する記憶装置の領域を大幅に削減することができるようになる。
【図面の簡単な説明】
【0083】
【図1】本発明の実施形態に係る署名履歴保管装置を用いたヒステリシス署名文書管理システムの構成の例を示した図である。
【図2】本発明の実施形態に係るコンピュータの一般的な構成の例を示した図である。
【図3】本発明の実施形態に係るヒステリシス署名データの形式の例を示した図である。
【図4】本発明の実施形態に係る署名記録データの形式の例を示した図である。
【図5】本実施形態に係る署名履歴保管装置が実行する署名登録処理のフローを示した図である。
【図6】本実施形態に係る署名履歴保管装置が実行する信頼ポイント構築処理のフローを示した図である。
【図7】本発明の実施形態に係る信頼ポイント構築処理に含まれる署名履歴検証処理の詳細フローを示した図である。
【図8】本発明の実施形態に係る信頼ポイントリストを構成する信頼ポイントデータの形式を示した図である。
【図9】本実施形態に係る署名履歴保管装置が実行する署名検証処理のフローを示した図である。
【符号の説明】
【0084】
10 ヒステリシス署名文書管理システム
101 認証局装置
102 署名作成装置
103 文書保管装置
104 署名履歴保管装置
105 署名検証装置
106 ネットワーク
107 証明書発行部
108 CRL発行部
109 CRL公開部
110 署名作成部
111 文書登録部
112 文書管理部
113 署名登録部
114 信頼ポイント構築部
115 署名検証部
116 記憶装置
117 署名履歴リスト
118 信頼ポイントリスト
119 認証局証明書
120 証明書リスト
121 文書取得部
122 署名検証要求部
201 コンピュータ
202 CPU
203 主記憶装置
204 補助記憶装置
205 ネットワークインターフェース
206 I/Oインターフェース
207 内部バス
300 ヒステリシス署名データ
301 署名ID
302 ハッシュ値
303 ハッシュ値
304 署名値
305 証明書識別情報
306 ユーザ証明書
400 署名記録データ
801 信頼ポイントID
802 署名IDリスト
803 信頼ポイントハッシュ値
804 証拠情報リスト

【特許請求の範囲】
【請求項1】
CPUと記憶装置とを少なくとも備え、複数のディジタル署名間に一方向関数による連鎖関係を付与した署名情報とその署名情報の作成に使用された公開鍵情報を含むユーザ証明書とを含んで構成されたヒステリシス署名の署名履歴を、前記記憶装置に保管する署名履歴保管装置であって、
前記記憶装置は、署名履歴リストと証明書リストとを備え、
前記ヒステリシス署名が作成されたときに、その作成されたヒステリシス署名のうち、前記署名情報の部分を署名記録として前記署名履歴リストに登録し、前記ユーザ証明書の部分を前記署名記録と対応させて前記証明書リストに登録すること
を特徴とする署名履歴保管装置。
【請求項2】
前記記憶装置は、さらに、前記署名履歴リストに登録されている署名記録のうち、最新の検証済み署名記録を特定する第1の識別情報を含む情報を、信頼ポイントデータとして登録する信頼ポイントリストを備え、
前記署名履歴リストに登録されている署名記録のうち、最新の署名記録を取り出し、前記取り出した署名記録から前記第1の識別情報によって特定される署名記録までの署名記録について、前記証明書リストに登録されている前記ユーザ証明書を用いて、前記署名記録の有効性および前記署名記録の連鎖関係の有効性を検証し、
前記ユーザ証明書について、そのユーザ証明書の有効性を証明する証拠情報を取得し、その取得した証拠情報に基づき前記ユーザ証明書の有効性を検証し、
前記最新の署名記録を特定する第2の識別情報と、前記収集した証拠情報と、前記第2の識別情報によって特定される署名記録および前記証拠情報を連結した情報のハッシュ値とを、信頼ポイントデータとして前記信頼ポイントリストに登録すること
を特徴とする請求項1に記載の署名履歴保管装置。
【請求項3】
前記信頼ポイントリストに新たな信頼ポイントデータが登録されたときに、前記証明書リストに登録されているユーザ証明書をすべて消去すること
を特徴とする請求項2に記載の署名履歴保管装置。
【請求項4】
検証対象のヒステリシス署名と、前記信頼ポイントリストに登録されている信頼ポイントデータの1つを特定する信頼ポイント識別情報と、その信頼ポイント識別情報によって特定される信頼ポイントデータに含まれるハッシュ値として過去に公開された公開ハッシュ値とを入力し、
前記入力した信頼ポイント識別情報によって特定される信頼ポイントデータから、前記署名記録を特定する第3の識別情報と前記証拠情報とを取り出し、前記第3の識別情報によって特定される署名記録および前記証拠情報を連結した情報のハッシュ値を計算し、
前記計算したハッシュ値と前記入力した公開ハッシュ値とを比較し、
前記第3の識別情報によって特定される署名記録から、前記入力されたヒステリシス署名に対応する署名記録までの署名記録の連鎖関係の有効性を検証し、
前記入力されたヒステリシス署名と前記入力されたヒステリシス署名に対応する署名記録とを比較し、
前記入力されたヒステリシス署名に含まれるユーザ証明書を前記取り出した証拠情報を用いて検証すること
を特徴とする請求項2または請求項3に記載の署名履歴保管装置。
【請求項5】
CPUと記憶装置とを少なくとも備え、複数のディジタル署名間に一方向関数による連鎖関係を付与した署名情報とその署名情報の作成に使用された公開鍵情報を含むユーザ証明書とを含んで構成されたヒステリシス署名の署名履歴を、前記記憶装置に保管する署名履歴保管装置における署名履歴保管方法であって、
前記記憶装置は、署名履歴リストと証明書リストとを備え、
前記署名履歴保管装置は、
前記ヒステリシス署名が作成されたときに、その作成されたヒステリシス署名のうち、前記署名情報の部分を署名記録として前記署名履歴リストに登録し、前記ユーザ証明書の部分を前記署名記録と対応させて前記証明書リストに登録すること
を特徴とする署名履歴保管方法。
【請求項6】
前記記憶装置は、さらに、前記署名履歴リストに登録されている署名記録のうち、最新の検証済み署名記録を特定する第1の識別情報を含む情報を、信頼ポイントデータとして登録する信頼ポイントリストを備え、
前記署名履歴保管装置は、さらに、
前記署名履歴リストに登録されている署名記録のうち、最新の署名記録を取り出し、前記取り出した署名記録から前記第1の識別情報によって特定される署名記録までの署名記録について、前記証明書リストに登録されている前記ユーザ証明書を用いて、前記署名記録の有効性および前記署名記録の連鎖関係の有効性を検証し、
前記ユーザ証明書について、そのユーザ証明書の有効性を証明する証拠情報を取得し、その取得した証拠情報に基づき前記ユーザ証明書の有効性を検証し、
前記最新の署名記録を特定する第2の識別情報と、前記収集した証拠情報と、前記第2の識別情報によって特定される署名記録および前記証拠情報を連結した情報のハッシュ値とを、信頼ポイントデータとして前記信頼ポイントリストに登録すること
を特徴とする請求項5に記載の署名履歴保管方法。
【請求項7】
前記署名履歴保管装置は、さらに、
前記信頼ポイントリストに新たな信頼ポイントデータが登録されたときに、前記証明書リストに登録されているユーザ証明書をすべて消去すること
を特徴とする請求項6に記載の署名履歴保管方法。
【請求項8】
前記署名履歴保管装置は、さらに、
検証対象のヒステリシス署名と、前記信頼ポイントリストに登録されている信頼ポイントデータの1つを特定する信頼ポイント識別情報と、その信頼ポイント識別情報によって特定される信頼ポイントデータに含まれるハッシュ値として過去に公開された公開ハッシュ値とを入力し、
前記入力した信頼ポイント識別情報によって特定される信頼ポイントデータから、前記署名記録を特定する第3の識別情報と前記証拠情報とを取り出し、前記第3の識別情報によって特定される署名記録および前記証拠情報を連結した情報のハッシュ値を計算し、
前記計算したハッシュ値と前記入力した公開ハッシュ値とを比較し、
前記第3の識別情報によって特定される署名記録から、前記入力されたヒステリシス署名に対応する署名記録までの署名記録の連鎖関係の有効性を検証し、
前記入力されたヒステリシス署名と前記入力されたヒステリシス署名に対応する署名記録とを比較し、
前記入力されたヒステリシス署名に含まれるユーザ証明書を前記取り出した証拠情報を用いて検証すること
を特徴とする請求項6または請求項7に記載の署名履歴保管方法。
【請求項9】
請求項5ないし請求項8のいずれか1項に記載の署名履歴保管方法をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−110180(P2007−110180A)
【公開日】平成19年4月26日(2007.4.26)
【国際特許分類】
【出願番号】特願2005−295869(P2005−295869)
【出願日】平成17年10月11日(2005.10.11)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】