【文献】
電子署名普及に関する活動報告2008,次世代電子商取引推進協議会,2009年 3月,pp. 108-112
(58)【調査した分野】(Int.Cl.,DB名)
前記ルートハッシュ値検証情報に基づいて前記ルートハッシュ値証明情報の非改ざんを検証し、当該ルートハッシュ値証明情報に基づいて前記ルートハッシュ値の非改ざんを検証し、前記ルートハッシュ値に基づいて、複数の前記原本証明情報ハッシュ値と前記原本検証情報ハッシュ値との非改ざんを検証し、複数の前記原本証明情報ハッシュ値と前記原本検証情報ハッシュ値とに基づいて複数の前記原本証明情報と前記原本検証情報の非改ざんを検証し、前記原本証明情報に基づいて前記原本ファイルの非改ざんを検証する検証部
を備えることを特徴とする請求項1から請求項3のいずれか1項に記載のデータ証明システム。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態について、図面を参照しながら説明する。
図1は、本実施形態における長期署名システムの構成を示したブロック図である。図示する例では、長期署名システム1は、長期署名サーバ2と、クライアント端末3と、タイムスタンプサーバ5と、リポジトリサーバ6,7とを含んでいる。なお、長期署名システム1に含まれる各装置は、互いに通信できるようにインターネット4にて接続されている。
【0015】
長期署名サーバ2は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、記憶部23と、入出力I/F24と、RAM(Random Access Memory)25と、表示部26と、通信制御部27とを備えている。
【0016】
CPU21は、記憶部23などに記憶されたプログラムに従って情報処理や長期署名サーバ2の各部の制御を行う中央処理装置である。本実施形態では、クライアント端末3やタイムスタンプサーバ5、リポジトリサーバ6,7と通信しながら長期署名データを作成する。
【0017】
ROM22は、リードオンリメモリであって、長期署名サーバ2が動作するための基本的なプログラムやパラメータなどを記憶する。RAM25は、ランダムアクセスメモリであって、長期署名サーバ2がクライアント端末3などと通信して長期署名データを作成する際に用いるデータを一時記憶する。
【0018】
記憶部23は、例えば、ハードディスクなどの大容量の記憶装置を用いて構成されており、長期署名サーバ2を動作させるためのOS(Operating System)や長期署名データを生成するためのプログラムなどを記憶する。表示部26は、例えば、液晶ディスプレイなどを用いた表示装置を備えており、長期署名サーバ2の運用担当者などが長期署名サーバ2を操作するための各種画面を表示する。
【0019】
入出力I/F24は、例えば、各種操作スイッチ、キーボード、マウスなどの入出力装置を備えており、運用担当者などは入出力I/F24を用いて長期署名サーバ2を操作することができる。通信制御部27は、インターネット4を介してクライアント端末3や、タイムスタンプサーバ5や、リポジトリサーバ6,7などと通信を行う。なお、インターネット4は、他の形態の通信網であってもよい。長期署名サーバ2は、通信制御部27により、クライアント端末3から電子署名値や原本データのハッシュ値(以下、原本ハッシュ値)や公開鍵証明書などを受信することができる。
【0020】
クライアント端末3は、CPU31と、ROM32と、記憶部33と、通信制御部34と、RAM35と、表示部36と、入出力I/F37とを備えている。
【0021】
CPU31は、記憶部33などに記憶されたプログラムに従って情報処理やクライアント端末3の各部の制御を行う中央処理装置である。本実施形態では、長期署名サーバ2との各種情報の送受信、秘密鍵による電子署名などを行う。
【0022】
ROM32は、リードオンリメモリであって、クライアント端末3が動作するための基本的なプログラムやパラメータなどを記憶する。RAM35は、ランダムアクセスメモリであって、例えば、クライアント端末3が長期署名サーバ2と通信しながら電子署名や原本ハッシュ値の作成を行う際に用いるデータを一時記憶する。
【0023】
記憶部33は、例えば、ハードディスクなどの大容量の記憶装置を用いて構成されており、クライアント端末3を動作させるためのOSや電子署名を行うための秘密鍵、当該秘密鍵に対応する公開鍵の公開鍵証明書、長期署名対象となっている原本データなどを記憶する。原本データは、例えば、ワープロやテキストエディタなどで作成された電子文書のほか、画像データ、音声データなどの各種のデータファイルである。
【0024】
また、クライアント端末3が長期署名データを作成するためのプログラムは、作成の度に長期署名サーバ2からダウンロードするように構成してもよいし、あるいは、予め記憶部33に記憶しておき、これを使用するように構成することもできる。
【0025】
表示部36は、例えば、液晶ディスプレイなどを用いた表示装置を備えており、クライアント端末3のユーザがクライアント端末3を操作するための各種画面を表示する。
【0026】
入出力I/F37は、例えば、キーボード、マウス、ICカードリーダライタなどの入出力装置を備えている。ICカードリーダライタは、ICカードを接続してクライアント端末3とICカードの通信を仲介する。ICカードは、CPU、ROM、RAM、EEPROM(Electrically Erasable and Programmable ROM)などを備えた情報処理装置であり、例えば、クライアント端末3を使用するユーザを認証するためのユーザ認証情報などを記憶している。また、秘密鍵や公開鍵証明書などをICカードに記憶させ、ICカードの秘密鍵を使って電子署名するようにクライアント端末3を構成することもできる。
【0027】
通信制御部34は、インターネット4を介して長期署名サーバ2と通信を行う。長期署名サーバ2へのハッシュ値の送信、電子署名値の送信などは、通信制御部34を用いて行う。
【0028】
タイムスタンプサーバ5は、タイムスタンプを発行するサーバであり、TSA(Time Stamping Authority:タイムスタンプ局)に設置されている。タイムスタンプサーバ5は、時刻配信局の配信する時刻によって補正される正確な時計を有しており、タイムスタンプ発行対象となる電子データを受信すると、これに当該時計による現在日時刻を付してタイムスタンプ用の秘密鍵で電子署名(暗号化)することによりタイムスタンプを発行する。
【0029】
リポジトリサーバ6は、TSA−CA(Time Stamping Authority Certificate Authority:タイムスタンプ認証局)に設置されたサーバであって、タイムスタンプの検証に用いる公開鍵証明書(タイムスタンプに用いた秘密鍵に対応する公開鍵の公開鍵証明書)の失効情報を提供する。失効情報にリストアップされていない公開鍵証明書は失効していないため、これによって公開鍵証明書の有効性を確認し、当該有効な公開鍵証明書によってタイムスタンプの有効性を確認することができる。
【0030】
リポジトリサーバ7は、CA(Certificate Authority)に設置されたサーバであって、クライアント端末3の行った電子署名の検証に用いる公開鍵証明書(クライアント端末3の秘密鍵に対応する公開鍵の公開鍵証明書)の失効情報を提供する。失効情報にリストアップされていない公開鍵証明書は失効していないため、これによって公開鍵証明書の有効性を確認し、当該有効な公開鍵証明書によってクライアント端末3の行った電子署名の有効性を確認することができる。リポジトリサーバ6とリポジトリサーバ7が提供する失効情報は、定期・不定期(例えば、24時間ごと)に更新される。
【0031】
次に、長期署名データのフォーマット(長期署名フォーマット)について説明する。
図2は、本実施形態における長期署名フォーマットのデータ構造を示した概略図である。本実施形態における長期署名データは、XAdES(XML Advanced Electronic Signatures)の規定に従い、XML(Extensible Markup Language)言語を用いて記述されている。
【0032】
ESは、KeyInfoと、署名対象プロパティと、SignedInfoと、SignatureValueとの各要素から構成されている。KeyInfoには、クライアント端末3が電子署名に用いた秘密鍵に対応する公開鍵の公開鍵証明書が設定されている。公開鍵証明書には、例えば、公開鍵、公開鍵の所有者、認証局、認証局の署名などが含まれている。署名対象プロパティには、公開鍵証明書のハッシュ値が設定されている。SignedInfoには、原本ハッシュ値、及び署名対象プロパティのハッシュ値(以下、署名対象プロパティハッシュ値)が設定されている。SignatureValueには、SignedInfoをクライアント端末3が秘密鍵で署名した署名値が設定されている。このように、クライアント端末3がSignedInfoに対して電子署名することにより、KeyInfoと、署名対象プロパティと、SignedInfoとに対する署名が行われる。
【0033】
ES−Tは、上記のESと署名タイムスタンプを要素として構成されている。署名タイムスタンプには、ESに対して発行されたSTS(署名タイムスタンプ)が設定されている。STSは、タイムスタンプサーバ5において、SignatureValueのハッシュ値に現在日時刻を付与して、これをタイムスタンプサーバ5の秘密鍵で電子署名したものである。
【0034】
ES−XL(ES−XLong)は、上記のES−Tと検証情報を要素として構成されている。検証情報は、証明書群と失効情報群を用いて構成されている。証明書群は、クライアント端末3が署名に用いた秘密鍵の公開鍵証明書と、タイムスタンプサーバ5がタイムスタンプに用いた秘密鍵の公開鍵証明書の認証パス上の公開鍵証明書で構成されている。この認証パスは、ルート認証局は自己署名証明書を発行し、そのルート認証局は子認証局に証明書を発行し、その子認証局は孫認証局に証明書を発行し、・・・、末端の認証局は、個人、証明書所有者に証明書を発行するという証明書信頼チェーンにおいて、公開鍵証明書の検証をルート認証局まで遡って確認するものである。失効情報群は、公開鍵証明書の失効情報で構成されている。
【0035】
ES−Aは、上記のES−XLとATSを要素として構成されている。ATS(Archive Time Stamp:アーカイブタイムスタンプ)は、ES−Tを検証する情報、原本ハッシュ値、クライアント端末3による電子署名、タイムスタンプサーバ5によるタイムスタンプ(STS)などから所定の方法で作成されたハッシュ値が含まれており、ATSによってES−XLの正当性を検証することができる。
【0036】
次に、長期署名データの作成方法について説明する。
図3は、本実施形態における長期署名システム1が長期署名データを生成する手順を示した概略図である。
(ステップS101)クライアント端末3のCPU32は文書管理機能部321として動作する。文書管理機能部321は、長期署名を付与する原本ファイルをES−A作成機能部322に入力する。
(ステップS102)クライアント端末3のCPU32はES−A作成機能部322として動作する。ES−A作成機能部322は、ステップS101の処理で入力された原本ファイルのハッシュ値(原本ハッシュ値)を算出する。その後、ES−A作成機能部322は、算出した原本ハッシュ値と、長期署名に用いる署名者証明書とを通信制御部34を介して長期署名サーバ2に対して送信する。なお、長期署名に用いる署名者証明書は、ユーザによって指定されたものを用いてもよく、予め定められたものを用いてもよい。
【0037】
(ステップS103)長期署名サーバ2のCPU21はES−A作成機能部211として動作する。ES−A作成機能部211は、ステップS102の処理で送信された原本ハッシュ値と署名者証明書とに基づいてES−Aを作成する。具体的には、ES−A作成機能部211は、通信制御部27を介して、タイムスタンプサーバ5からタイムスタンプを取得し、リポジトリサーバ7から署名者証明書失効情報を取得し、リポジトリサーバ6からTSA証明書失効情報を取得する。そして、取得した各情報を用いて、原本ハッシュ値と署名者証明書とに基づいてES−Aを作成する。
【0038】
(ステップS104)ES−A作成機能部211は、ステップS103の処理で作成したES−Aを記憶部23に記憶させ、さらに、通信制御部27を介してクライアント端末3に対して送信する。
(ステップS105)ES−A作成機能部322は、ステップS104の処理で送信されたES−Aを文書管理機能部321に入力する。
(ステップS106)文書管理機能部321は、原本ファイルとステップS105の処理で入力されたES−Aとを関連づけて記憶する。
【0039】
上述したステップS101〜ステップS106の処理により、原本ファイルのES−Aを作成し、作成したES−Aファイルを長期署名サーバ2とクライアント端末3とで保管することができる。
【0040】
(ステップS107)長期署名サーバ2のCPU21はERST作成機能部212として動作し、一定期間毎(例えば1日毎)にES−AからERSTを作成し、作成したERSTを記憶部23に記憶させる。具体的には、ERST作成機能部212は、通信制御部27を介して、一定期間毎に、リポジトリサーバ6からTSA証明書失効情報を取得し、タイムスタンプサーバ5からタイムスタンプを取得する。そして、ERST作成機能部212は、取得した各情報を用いてERSTを作成し、作成したERSTを記憶部23に記憶させる。なお、ERSTは、複数のES−AおよびTSA証明書検証情報からのルートハッシュと、このルートハッシュのTST(Time Stamp Token)とを含み、複数のES−AおよびTSA証明書検証情報の非改ざんを証明するための情報である。ERSTの詳細については後述する。
【0041】
次に、ERST作成機能部212が生成するERSTについて説明する。
図4は、本実施形態における原本と、原本の非改ざんを証明する情報であるES−Aと、ES−Aのルートハッシュ値hash_rootと、hash_rootの時刻証明書であるTST1との関係を示した概略図である。図示する例では、原本1〜原本5が示されている。また、原本1の非改ざんを証明する情報としてES−A1が示されている。同様に、原本2〜原本5の非改ざんを証明する情報としてES−A2〜ES−A5が示されている。また、TSA証明書検証情報が示されている。TSA証明書検証情報は、ES−A1〜ES−A5に含まれるATSの有効性を証明する情報である。
【0042】
また、ES−A1のハッシュ値としてhash1が示されている。同様に、ES−A2〜ES−A5のハッシュ値としてhash2〜hash5が示されている。また、TSA証明書検証情報のハッシュ値としてhash6が示されている。また、hash1とhash2とをハッシュ関数SHA512を用いて算出した値hash1−2が示されている。同様に、hash3とhash4とをハッシュ関数SHA512を用いて算出した値hash3−4と、hash5とhash6とをハッシュ関数SHA512を用いて算出した値hash5−6とが示されている。また、hash1−2と、hash3−4と、hash5−6とのルートをとった値hash_rootが示されている。すなわち、図示する例では、ES−A1〜ES−A5のハッシュ値と、TSA証明書検証情報のハッシュ値とのMerkle Hash Treeを作成し、ルートハッシュ値hash_rootを生成している。
【0043】
また、hash_rootの時刻証明書としてTST1が示されている。これにより、TST1を生成した日時にhash_rootが存在したことを証明することができる。また、hash_rootは、hash1〜hash6のルートハッシュであるため、TST1を生成した日時にhash1〜hash6が存在したことを証明することができる。また、hash1〜hash6は、ES−A1〜ES−A5とTSA証明書検証情報とのハッシュ値であるため、TST1を生成した日時にES−A1〜ES−A5およびTSA証明書検証情報が存在したことを証明することができる。また、TSA証明書検証情報は、ES−A1〜ES−A5に含まれるATSが有効であったことを証明する情報である。そのため、TSA証明書検証情報の有効期限が切れる前にTST1を生成した場合、TST1の有効期限が切れるまで、TSA証明書検証情報を生成した日時にES−A1〜ES−A5が存在し、かつ、有効であったことを証明することができる。
【0044】
ERST作成機能部212が生成するERSTは、上述したハッシュ値やルートハッシュ値を含んでいる。そのため、ERSTを用いて、ES−Aの非改ざんを証明することができる。
図5は、本実施形態におけるERSのフォーマット(ERSフォーマット)のデータ構造を示した概略図である。本実施形態におけるERSフォーマットは、EncryptionInformationと、SupportingInformaitonListと、ArchiveTimeStampSequenceとを含んでいる。また、ArchiveTimeStampSequenceは、ArchiveTimeStamp Chain 1を含んでいる。また、ArchiveTimeStamp Chain 1は、DigestMethodと、CanonicalizationMethodと、ArchiveTimeStamp 1とを含んでいる。また、ArchiveTimeStamp 1は、HashTreeと、TimeStampと、Attributesとを含んでいる。また、TimeStampは、TimeStampToken(TST1)と、CryptographicInformationListとを含んでいる。
【0045】
図6は、本実施形態におけるERSTのデータ構造を示した概略図である。図示する例では、ERSTは、Merkle Hash Treeに使用したファイル名および全ハッシュ値の一覧表と、ATS検証に必要なデータと、ERS−TSTと、ERS−TST情報とを含んでいる。Merkle Hash Treeに使用したファイル名および全ハッシュ値の一覧表は、No.と、ファイル名と、ES−Aのハッシュ値と、対応する原本ファイル名とのデータ項目を有しており、各データ項目のデータを行毎に関連付けて記憶する表である。
【0046】
データ項目「No.」は、ファイル名の番号を記憶する。データ項目「ファイル名」は、ES−Aのファイル名を記憶する。データ項目「ES−Aのハッシュ値」は、ES−Aのハッシュ値を記憶する。データ項目「対応する原本ファイル名」は、ES−Aに対応する原本ファイル名を記憶する。図示する例では、行101のデータ項目「No.」に記憶されている値が「1」であり、データ項目「ファイル名」に記憶されている値が「ES−A1.xml」であり、データ項目「ES−Aのハッシュ値」に記憶されている値が「hash1」であり、データ項目「対応する原本ファイル名」に記憶されている値が「1.pdf」である。これは、No.1のファイル名が「ES−A1.xml」であり、ES−Aのハッシュ値が「hash1」であり、対応する原本ファイル名が「1.pdf」であることを示している。他の行については図示するとおりである。なお、ファイル名「ES−A_VerifyInfo.zip」は、TSA証明書の認証パス(ルート証明書、中間証明書)ファイル、TSA証明書および認証パスの失効情報(CRL/ARL)ファイルをZIP圧縮したものである。そのため、ファイル名「ES−A_VerifyInfo.zip」に関連づけられている「対応する原本ファイル名」には何も記憶されていない。なお、図示する例では表形式で記載されているがこれに限らず、テキスト形式またはCSV形式で記載してもよい。
【0047】
ATS検証に必要なデータは、例えば、ES−A_VerifyInfo.zipである。ES−A_VerifyInfo.zipは、上述したとおり、TSA証明書の認証パス(ルート証明書、中間証明書)ファイル、TSA証明書および認証パスの失効情報(CRL/ARL)ファイルをZIP圧縮したものである。ERS−TSTは、例えば、tst1.tstであり、TSTのバイナリデータである。ERS−TST情報は、例えば、tst1.tst.infoであり、TSTの有効期限が記載されたXMLまたはTXTデータである。
【0048】
なお、ERSは、RFC6283で規定されるエビデンスレコードのフォーマットである。各フォーマットに設定される値の内容は、RFC6283で規定されている。ERSはハッシュツリーの葉の一つ一つについて作成されるが、ツリーの全ての葉(ES−A1〜ES−A5およびES−A_VerifyInfo)でERSを構成する要素について共通する部分が多い。そのため、本実施形態では、すぐにそれぞれのERS(XML)を作るのではなく、共通する部分をまとめて管理(ERST)しておいて、必要な時に、ERS(XML)を構築し出力する。
【0049】
また、ERST(ERSテーブル)は、RFC6283では規定されておらず、本実施形態独自のものであり、複数あるERSを動的に生成するための情報を持つテーブルである。本実施形態では、ERSTをZIP圧縮したものとする例を示しているがこれに限らず、内容物をデータベースで管理するようにしてもよい。
【0050】
次に、長期署名データの作成方法の詳細手順について説明する。
図7は、本実施形態における長期署名システム1が長期署名データを生成する詳細手順を示した概略図である。なお、以下の手順は、ES−Tの作成手順およびES−Aの作成手順については省略している。すなわち、長期署名サーバ2でES−Aを作成し、作成したES−Aをクライアント端末3に送信する処理から記載している。
【0051】
(ステップS1001)長期署名サーバ2は、クライアント端末3に対してES−Aを送信する。
(ステップS1002)クライアント端末3は、長期署名サーバ2から送信されるES−Aを受信する。
(ステップS1003)クライアント端末3のES−A作成機能部322は、ステップS1002の処理で受信したES−Aを文書管理機能部321に入力する。
(ステップS1004)クライアント端末3の文書管理機能部321は、ステップS1003の処理で入力されたES−Aを原本とともに保管する。
【0052】
(ステップS1005)長期署名サーバ2は、ES−AとERSチケットとをERS待ちフォルダに出力する。なお、ERSチケットは、「対象ES−Aファイル名」と、「ATS−TSA−CRL最新発行時刻」と、「ATS−TSA−CRL更新予測時刻」と、「ATS検証情報」とが記載されたファイルである。
【0053】
(ステップS1006)長期署名サーバ2は、ERSチケットに記載のATS−TSA−CRL更新予測時刻を超えているERSチケットおよびES−AをERS処理フォルダに投入する。
(ステップS1007)長期署名サーバ2は、ERS処理フォルダを定期的に(例えば、1日1回)監視する。
(ステップS1008)長期署名サーバ2は、ERS処理を行う。ERS処理は、ERS処理フォルダ内の全てのERSチケットを確認し、ATS検証情報(群)を取得する。なお、通常、同じTSA局を使用している場合、ATS検証情報は一種類と想定されるが、TSAのCA更新やTSAが違う場合も想定し、複数あることを前提とする。なお、ATS検証情報は、例えば「ATSに使用したTSA証明書に記載のCRL配布ポイント(URL)」と、「TSA証明書のDN」と、「TSA証明書の認証局証明書のDN」と、「TSA証明書の認証局証明書のシリアル番号」とが記載された情報である。
【0054】
(ステップS1009)長期署名サーバ2は、ATS検証情報(群)を元に、ATS検証に必要なデータを収集する。なお、ATS検証に必要なデータは、「TSA証明書の失効情報(CRL)」と、「TSA証明書の認証局証明書(中間)」と、「TSA証明書の認証局証明書(中間)の失効情報(CRL/ARL)」と、「TSA証明書の認証局証明書(ルート)」と、「TSA証明書の認証局証明書(ルート)の失効情報(CRL/ARL)」である。
【0055】
(ステップS1010)長期署名サーバ2は、ERS処理フォルダの全ES−AファイルおよびATS検証に必要なデータからMerkle Hash Treeを作成し、ルートハッシュ値を計算する。
(ステップS1011)長期署名サーバ2は、タイムスタンプサーバ5からルートハッシュ値に対するタイムスタンプトークン(ERS−TST)を取得する。
(ステップS1012)長期署名サーバ2は、ERS−TSTからERS−TST情報を生成し、ERS−TSTおよびERS−TST情報を元にERSテーブルを作成しERSテーブル保管フォルダに出力する。なお、ERS−TST情報は、「TSTの有効期限」を示す情報である。また、ERSテーブルは、「使用した全ES−Aファイル」と、「ATS検証に必要なデータ」と、「Merkle Hash Treeに使用したファイル名および全ハッシュ値の一覧表(テキストまたはCSV)」と、「ERS−TST」と、「ERS−TST情報」とを例えばZIP圧縮したファイルである。
【0056】
上述したステップS1001〜ステップS1012の処理を行うことで、長期署名システム1は、長期署名データとして、ERS−TST情報と、ERSテーブルとを作成し、ERSテーブル保管フォルダに出力することができる。
【0057】
次に、長期署名データの延長方法(原本ファイルの非改ざんを証明する証明情報を延長する方法)について説明する。タイムスタンプ技術を用いて、ERSTの有効期限が切れる前にERSTの有効期限を延長することで、ERSTの有効期限を延長することができる。すなわち、原本ファイルの非改ざんを証明する長期署名データを延長することができる。また、延長したERSTの有効期限が切れる前に、延長したERSTの有効期限をさらに延長し続けることで、永久に長期署名データの有効期限を延長することができる。また、本実施形態では、ES−Aごとに有効期限を延長するのではなく、上述したようにES−Aを纏めてERSテーブルを生成する。そして、長期署名データの有効期限を延長する際にはERSTのみの有効期限を延長するため、有効期限延長の処理の負荷をより軽減することができる。
【0058】
図8は、本実施形態における長期署名システム1が長期署名データの有効期限を延長する手順を示した概略図である。
(ステップS201)長期署名サーバ2のCPU21はERST延長機能部213として動作し、一定期間毎(例えば1ヶ月毎)にERSTの有効期限を確認し、有効期限が切れる前に延長する。具体的には、ERST延長機能部213は、確認対象のERSTに含まれるERS−TST情報に記載されているERS−TSTの有効期限を確認し、所定の有効期限切れ前である場合に、通信制御部27を介して、リポジトリサーバ6からERS−TSTに対するTSA証明書失効情報を取得し、タイムスタンプサーバ5からタイムスタンプを取得する。そして、ERST延長機能部213は、取得した各情報を用いてERSTの有効期限を延長する。
【0059】
図9は、本実施形態において、有効期限を一度延長した後のERSのフォーマット(ERSフォーマット)のデータ構造を示した概略図である。本実施形態において、有効期限を延長した後のERSのフォーマットは、EncryptionInformationと、SupportingInformaitonListと、ArchiveTimeStampSequenceとを含んでいる。また、ArchiveTimeStampSequenceは、ArchiveTimeStamp Chain 1を含んでいる。また、ArchiveTimeStamp Chain 1は、DigestMethodと、CanonicalizationMethodと、ArchiveTimeStamp 1と、ArchiveTimeStamp 2とを含んでいる。
【0060】
また、ArchiveTimeStamp 1は、HashTreeと、TimeStampと、Attributesとを含んでいる。また、TimeStampは、TimeStampToken(TST1)と、CryptographicInformationListとを含んでいる。CryptographicInformationListは、TSA証明書群とTSA失効情報群とを含んでいる。
【0061】
また、ArchiveTimeStamp 2は、HashTreeと、TimeStampと、Attributesとを含んでいる。また、TimeStampは、TimeStampToken(TST A1)と、CryptographicInformationListとを含んでいる。
【0062】
図10は、本実施形態において、有効期限を一度延長した後のERSTのデータ構造を示した概略図である。図示する例では、ERSTは、Merkle Hash Treeに使用したファイル名および全ハッシュ値の一覧表と、ATS検証に必要なデータと、ERS−TST(1)と、ERS−TST情報(1)と、ERS−TST(1)の検証に必要な検証情報と、ReducedHashTreeの一覧表と、ERS−TST(2)と、ERS−TST(2)情報とを含んでいる。Merkle Hash Treeに使用したファイル名および全ハッシュ値の一覧表と、ATS検証に必要なデータとは、
図6に示した例と同様である。
【0063】
ERS−TST(1)は、
図6に示したERS−TSTと同様である。ERS−TST情報(1)は、
図6に示したERS−TST情報と同様である。ERS−TST(1)の検証に必要な検証情報は、例えば、tst1_VerifyInfo.zipである。tst1_VerifyInfo.zipは、TSA証明書の認証パス(ルート証明書、中間証明書)ファイルと、TSA証明書および認証パスの失効情報(CRL/ARL)ファイルとをZIP圧縮したものである。
【0064】
ReducedHashTreeの一覧表は、No.と、ファイル名と、ES−Aのハッシュ値とのデータ項目を有しており、各データ項目のデータを行毎に関連付けて記憶する表である。
【0065】
データ項目「No.」は、ファイル名の番号を記憶する。データ項目「ファイル名」は、ERSのTimeStamp領域のファイル名を記憶する。データ項目「ERSのTimeStamp領域のハッシュ値」は、ERSのTimeStamp領域の計算ハッシュ値を記憶する。図示する例では、行201のデータ項目「No.」に記憶されている値が「1」であり、データ項目「ファイル名」に記憶されている値が「erst1_ats1_ts.xml」であり、データ項目「ERSのTimeStamp領域のハッシュ値」に記憶されている値が「hash A1」である。これは、No.1のファイル名が「erst1_ats1_ts.xml」であり、ERSのTimeStamp領域のハッシュ値が「hash A1」であることを示している。他の行については図示するとおりである。
【0066】
ERS−TST(2)は、例えば、tst2.tstであり、TSTのバイナリデータである。ERS−TST(2)情報は、例えば、tst2.tst.infoであり、TSTの有効期限が記載されたXMLまたはTXTデータである。
【0067】
次に、長期署名データの期限を延長する処理の詳細手順について説明する。
図11は、本実施形態における長期署名システム1が長期署名データの期限を延長する処理の詳細手順を示した概略図である。
(ステップS2001)長期署名サーバ2は、ERSテーブル保管フォルダ内のERSテーブルを定期的に(例えば、1ヶ月毎)監視する。
(ステップS2002)長期署名サーバ2は、ERS−TST情報を確認し、処理実行時刻との比較を行い、差が既定の時間以下の場合は、当該ERSテーブルをERSテーブル延長処理フォルダへ投入する。すなわち、延長が必要と判断したERSテーブルをERSテーブル延長処理フォルダへ投入する。
【0068】
(ステップS2003)長期署名サーバ2は、ERSテーブル延長処理フォルダを定期的に(例えば1日1回)監視する。
(ステップS2004)長期署名サーバ2は、ERSテーブル延長処理フォルダに存在するERSテーブル(1つ)からERS−TSTを取り出す。
(ステップS2005)長期署名サーバ2は、ERS−TSTを確認し、ERS−TSTの検証に必要なデータを収集する。なお、ERS−TSTの検証に必要なデータは、「TSA証明書の失効情報(CRL)」と、「TSA証明書の認証局証明書(中間)」と、「TSA証明書の認証局証明書(中間)の失効情報(CRL/ARL)」と、「TSA証明書の認証局証明書(ルート)」と、「TSA証明書の認証局証明書(ルート)の失効情報(CRL/ARL)」である。
【0069】
(ステップS2006)長期署名サーバ2は、ERSフォーマット(RFC4998,RFC6283)に準拠したTimeStamp(1)領域を作成する。
(ステップS2007)長期署名サーバ2は、TimeStamp(1)領域のバイナリデータに対するハッシュ値を計算し、そのハッシュ値に対するタイムスタンプトークン(ERS−TST(2))をタイムスタンプサーバ5から取得する。なお、TimeStamp領域のバイナリデータは、「ERS−TST」と、「ERS−TSTの検証に必要なデータ」とを含み、XMLの場合は、既定の正規化法(CanonicalizationMethod)に基づいた変換を行ったデータである。
(ステップS2008)長期署名サーバ2は、ERS−TST(2)からERS−TST(2)情報を生成する。
(ステップS2009)長期署名サーバ2は、ERSテーブルにTimeStamp(1)領域と、ERS−TST(2)と、ERS−TST(2)情報とを追加しERSテーブル保管フォルダに出力する。
【0070】
上述したステップS2001〜ステップS2009の処理を行うことで、長期署名システム1は、ERSテーブルの有効期限を延長することができる。
【0071】
次に、長期署名データの非改ざんの検証方法について説明する。
図12は、本実施形態における長期署名システム1が長期署名データの非改ざんの検証を行う手順を示した概略図である。
(ステップS301)クライアント端末3のCPU32は文書管理機能部321として動作する。文書管理機能部321は、非改ざんの検証を行う原本ファイルと、この原本ファイルと関連づけて記憶しているES−AとをES−A検証機能部323に入力する。
(ステップS302)クライアント端末3のCPU32はES−A検証機能部323として動作する。ES−A検証機能部323は、ステップS301の処理で入力された原本ファイルのハッシュ値(原本ハッシュ値)を算出する。その後、ES−A検証機能部323は、算出した原本ハッシュ値と、ステップS301の処理で入力されたES−Aとを通信制御部34を介して長期署名サーバ2に対して送信する。
【0072】
(ステップS303)長期署名サーバ2のCPU21はES−AおよびERST検証機能部214として動作する。ES−AおよびERST検証機能部214は、リポジトリサーバ6からTSA証明書失効情報を取得する。また、ES−AおよびERST検証機能部214は、記憶部23が記憶しているERSTを読み出す。そして、ES−AおよびERST検証機能部214は、取得したTSA証明書失効情報と、読み出したERSTと、ステップS302の処理で受信した原本ハッシュ値とES−Aとに基づいて、ES−Aの非改ざんの検証を行う。
【0073】
(ステップS304)ES−AおよびERST検証機能部214は、ステップS303の処理で検証した結果を示す検証結果ファイルと、検証対象のES−Aに対応するERSとを、通信制御部27を介してクライアント端末3に対して送信する。
(ステップS305)ES−A検証機能部323は、ステップS304の処理で送信された検証結果ファイルとERSとを文書管理機能部321に入力する。
(ステップS306)文書管理機能部321は、ステップS305の処理で入力された検証結果ファイルとERSとを関連づけて記憶する。
【0074】
上述したステップS301〜ステップS306の処理により、原本ファイルの非改ざんの検証を行うことができる。また原本ファイルの非改ざんの検証結果とERSファイルとをクライアント端末3で保管することができる。
【0075】
次に、長期署名データの非改ざんの検証方法の詳細手順について説明する。
図13は、本実施形態における長期署名システム1が長期署名データの非改ざんを検証する詳細手順を示した概略図である。
(ステップS3001)クライアント端末3の文書管理機能部321は、検証対象の原本ファイルとES−AファイルとをES−A検証機能部323検証入力フォルダに入力する。
(ステップS3002)クライアント端末3のES−A検証機能部323は、検証入力フォルダを定期的に(例えば60秒間隔)監視する。
【0076】
(ステップS3004)クライアント端末3のES−A検証機能部323は、ステップS3002の処理で検証入力フォルダに検証対象の原本ファイルとES−Aファイルが入力された場合、検証要求を長期署名サーバ2に対して送信する。なお、検証要求には原本ファイルのハッシュ値とES−Aファイルが含まれている。
(ステップS3005)長期署名サーバ2は、ステップS3004の処理で送信された検証要求を受信する。
(ステップS3006)長期署名サーバ2は、ステップS3005の処理で受信した検証要求(ES−A)と関連するERSテーブルを検索し、見つかったERSテーブルから「対象ES−A用のERS」と、そのES−Aの「ATSの検証情報用のERS」とを生成する。
【0077】
(ステップS3007)長期署名サーバ2は、「対象ES−A用のERS」と、そのES−Aの「ATSの検証情報用のERS」に含まれる共通のERS−TSTの検証に必要なデータを取得する。ERS−TSTの検証に必要なデータは、「TSA証明書の失効情報(CRL)」と、TSA証明書の認証局証明書(中間)」と、TSA証明書の認証局証明書(中間)の失効情報(CRL/ARL)」と、TSA証明書の認証局証明書(ルート)」と、TSA証明書の認証局証明書(ルート)の失効情報(CRL/ARL)」である。
【0078】
(ステップS3008)長期署名サーバ2は、ステップS3007の処理で取得したデータに基づいて、ステップS3006で生成した、対象ES−A用のERSを検証する。なお、ERSが延長されている際には、ERS−TST(n)の検証とreduceHashTreeの検証とを行う。これにより、ES−Aが最初のERS−TSTの時刻以降改ざんされていないことを確認することができる。
【0079】
(ステップS3009)長期署名サーバ2は、ATSの検証情報用のERSを検証する。なお、ERSが延長されている際には、ERS−TST(n)の検証とreduceHashTreeの検証とを行う。これにより、ES−AのATSを検証するための検証情報が最初のERS−TSTの時刻以降改ざんされていないことを確認することができる。
【0080】
(ステップS3010)長期署名サーバ2は、ES−Aを検証する。具体的には、以下の2つの処理を行う。
(1)最初のERS−TSTの時刻以降改ざんされていないES−AのATSの検証情報を元にATSの検証を行う。なお、この時の基準時刻は、最初のERS−TSTの時刻である。これにより、ES−AおよびES−Aの検証情報がATSの時刻以降改ざんされていないことがわかる。
(2)ATSの時刻以降改ざんされていないES−Aに含まれる署名者証明書およびSTSの検証情報を元にES−Tの検証を行う。この時の基準時刻は、ATSの時刻である。これにより、署名がSTS時刻以降改ざんされていないことがわかる。
(3)最後に、検証要求に含まれる原本ハッシュ値とES−Aに含まれる原本ハッシュ値とを比較し一致することを確認する。
【0081】
(ステップS3016)長期署名サーバ2は、ES−Aの検証結果である検証要求結果をクライアント端末3に対して送信する。検証要求結果は、検証結果のサマリと、検証結果の詳細とを含む情報である。
(ステップS3017)クライアント端末3のES−A検証機能部は、ステップS3016の処理で送信された検証要求結果を受信する。
【0082】
(ステップS3018)クライアント端末3のES−A検証機能部は、検証結果を検証結果出力フォルダに出力する。
(ステップS3019)クライアント端末3の文書管理機能部321は、検証結果出力フォルダから検証結果を取得する。
【0083】
上述したステップS3001〜ステップS3019の処理により、原本ファイルの非改ざんの検証を行うことができる。また原本ファイルの非改ざんの検証結果とERSファイルとをクライアント端末3とで保管することができる。
【0084】
従来知られている技術では、電子署名の延長(ES−Aの延長時)には、延長対象の全ての原本と全てのES−Aファイルにアクセスして延長処理を行う必要があり、すべてのES−Aファイルに対するタイムスタンプを取得する必要があった。従って、原本が多くなると、延長処理に時間がかかるという問題があった。
【0085】
本実施形態では、上述したとおり、原本の電子署名を延長し、長期署名データを作成する際に、一定期間に生成したES−Aを纏めてERSテーブルを生成する。そして、長期署名データの有効期限を延長する際には、ERSテーブルの電子署名の有効期限を延長する。これにより、長期署名データの有効期限を延長する際には、原本やES−Aにアクセスする必要が無く、ERSテーブルのみにアクセスするだけで延長処理を行うことができる。また、すべてのES−Aファイルに対するタイムスタンプを取得する必要が無く、ERSテーブルに対するタイムスタンプのみ取得するだけで延長処理を行うことができる。また、長期署名データの有効期限を延長する際には、原本とES−Aファイルにアクセスする必要が無いため、クライアント端末3での処理が必要無く、長期署名サーバ2の処理のみで延長処理を行うことができる。従って、クライアント端末3で保管している原本の数が多くなった場合においても、長期署名データの有効期限を延長する処理の負荷をより軽減することができる。
【0086】
なお、上述した実施形態では、長期署名サーバ2とクライアント端末3とを異なる装置とした例を用いて説明したが、これに限らない。例えば、クライアント端末が、長期署名サーバの機能を有していてもよい。また、長期署名サーバが、クライアント端末の機能を有していてもよい。
【0087】
図14は、クライアント端末が、長期署名サーバの機能を有する場合における長期署名システムの構成を示したブロック図である。図示する例では、長期署名システム100は、クライアント端末300と、タイムスタンプサーバ5と、リポジトリサーバ6,7とを含んでいる。なお、長期署名システム100に含まれる各装置は、互いに通信できるようにインターネット4にて接続されている。また、タイムスタンプサーバ5と、リポジトリサーバ6,7とは、
図1に示した各装置と同様である。
【0088】
クライアント端末300は、CPU310と、ROM320と、記憶部330と、通信制御部340と、RAM350と、表示部360と、入出力I/F370とを備えている。
【0089】
CPU310は、記憶部330などに記憶されたプログラムに従って情報処理やクライアント端末300の各部の制御を行う中央処理装置である。例えば、CPU310は、タイムスタンプサーバ5、リポジトリサーバ6,7と通信しながら長期署名データを作成する。ROM320は、リードオンリメモリであって、クライアント端末300が動作するための基本的なプログラムやパラメータなどを記憶する。RAM350は、ランダムアクセスメモリであって、例えば、クライアント端末300が電子署名や原本ハッシュ値の作成を行う際に用いるデータを一時記憶する。
【0090】
記憶部330は、例えば、ハードディスクなどの大容量の記憶装置を用いて構成されており、クライアント端末300を動作させるためのOSや電子署名を行うための秘密鍵、当該秘密鍵に対応する公開鍵の公開鍵証明書、長期署名対象となっている原本データなどを記憶する。原本データは、例えば、ワープロやテキストエディタなどで作成された電子文書のほか、画像データ、音声データなどの各種のデータファイルである。
【0091】
また、クライアント端末300が長期署名データを作成するためのプログラムは、予め記憶部330に記憶しておき、これを使用する。表示部360は、例えば、液晶ディスプレイなどを用いた表示装置を備えており、クライアント端末300のユーザがクライアント端末300を操作するための各種画面を表示する。
【0092】
入出力I/F370は、例えば、キーボード、マウス、ICカードリーダライタなどの入出力装置を備えている。ICカードリーダライタは、ICカードを接続してクライアント端末300とICカードの通信を仲介する。ICカードは、CPU、ROM、RAM、EEPROM(Electrically Erasable and Programmable ROM)などを備えた情報処理装置であり、例えば、クライアント端末3を使用するユーザを認証するためのユーザ認証情報などを記憶している。また、秘密鍵や公開鍵証明書などをICカードに記憶させ、ICカードの秘密鍵を使って電子署名するようにクライアント端末300を構成することもできる。
【0093】
通信制御部340は、インターネット4を介してタイムスタンプサーバ5や、リポジトリサーバ6,7などと通信を行う。なお、インターネット4は、他の形態の通信網であってもよい。
【0094】
なお、長期署名システム100の処理は、上述した長期署名システム1の処理と同様である。
【0095】
また、上述した実施形態における長期署名サーバ2と、クライアント端末3,300と、タイムスタンプサーバ5と、リポジトリサーバ6,7とが備える各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0096】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0097】
なお、本発明は、上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である