説明

長期署名用端末、長期署名用サーバ、長期署名用端末プログラム、及び長期署名用サーバプログラム

【課題】ユーザ側に機密情報を保持したまま長期署名を行う。
【解決手段】クライアント端末3は、PDF文書と電子署名に用いる秘密鍵を長期署名サーバ2に渡さずに、長期署名サーバ2と通信しながらPAdESを生成することができる。PAdESとは、PDF形式のファイルに対して規定されている長期署名フォーマットである。クライアント端末3は、電子署名済みでタイムスタンプ発行前のCAdESを長期署名サーバ2に送信してCAdESへのタイムスタンプの発行を依頼する。クライアント端末3は、検証情報の収集を長期署名サーバ2に依頼して取得し、更に、署名済みPDF文書と検証情報の非改竄性を確認するための情報をこれらから生成して長期署名サーバ2に送信してDTSの生成を依頼する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、長期署名用端末、長期署名用サーバ、長期署名用端末プログラム、及び長期署名用サーバプログラムに関し、例えば、長期署名データを作成するものに関する。
【背景技術】
【0002】
電子データの非改竄性(真正)を証明するために、電子データを秘密鍵で暗号化することにより電子署名を行い、当該秘密鍵に対応する公開鍵で電子データを復号化することにより検証する電子署名が広く利用されている。
電子データを公開鍵で復号化することにより、当該電子データは当該公開鍵に対応する秘密鍵で暗号化されたことを確認できるが、当該秘密鍵を有しているのは署名者であるので、当該電子データが当該署名者によるものであると認定することができる。例えるなら、秘密鍵は印鑑として機能し、公開鍵は印鑑証明書として機能している。
公開鍵は、認証局が発行する公開鍵証明書により配布され、配布を受けたものは当該証明書により公開鍵の真正を確認できるようになっている。
【0003】
ところで、電子署名は、署名などに用いた暗号アルゴリズムの危殆化などに対処するため有効期限が設定されている。
また、有効期限前であっても、署名者の都合で失効したり、秘密鍵の遺漏などによりルート証明書以下の全ての証明書が失効する場合もある。
そこで、この問題に対処するため、特許文献1に示されているように、電子署名の有効性を永続させるための電子署名フォーマット(以下、長期署名フォーマット)が規定されている。
【0004】
長期署名フォーマットでは、保存対象となる電子データと電子署名に対して、電子署名よりも有効期限の長いタイムスタンプであるドキュメントタイムスタンプを付与することにより、電子署名の有効期限が経過した後も電子データの正当性を保証する。
そして、当該ドキュメントタイムスタンプの有効期限が経過する前に、当該ドキュメントタイムスタンプよりも有効期限が長い第2世代のドキュメントタイムスタンプを付与することにより有効期限を延長する。以下、第3世代、第4世代、・・・、と有効期限を延長していくことにより、電子データの非改竄性の検証が長期に渡って可能となる。
【0005】
しかし、従来は、長期署名サービスの提供を受けるためには、ユーザは、電子署名に用いる自身の秘密鍵や電子データの原本データを長期署名サービス事業者に渡す必要があり、機密情報(秘密鍵、原本データ)を外部に出さなくてはならないという問題があった。
若しくは、ユーザが長期署名サービスの提供を受けずに長期署名する場合には、ユーザ側に長期署名システムを構築し、証明書の管理、タイムスタンプ取得、失効情報取得などの運用を行う必要があった。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2003−533940号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、ユーザ側に機密情報を保持したまま長期署名を行うことを目的とする。
【課題を解決するための手段】
【0008】
本発明は、前記目的を達成するために、請求項1に記載の発明では、保存対象データを取得する保存対象データ取得手段と、前記取得した保存対象データの電子署名データを取得する電子署名データ取得手段と、前記取得した電子署名データを所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された電子署名データを受信する電子署名データ受信手段と、前記受信したタイムスタンプが付与された電子署名データを前記取得した保存対象データに結合して署名済みデータを生成する署名済みデータ生成手段と、所定のサーバから、前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を受信して前記署名済みデータに付与し、長期署名用データを生成する長期署名用データ生成手段と、前記生成した長期署名用データの非改竄性を確認するための確認データを生成して所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された確認データを受信する確認データ受信手段と、前記受信したタイムスタンプが付与された確認データを前記長期署名用データに付与して長期署名データを生成する長期署名データ生成手段と、を具備したことを特徴とする長期署名用端末を提供する。
請求項2に記載の発明では、前記取得した保存対象データを第1のデータと第2のデータに分割する分割手段を具備し、前記署名済みデータ生成手段は、前記取得した電子署名データを前記第1のデータと前記第2のデータの間に結合することを特徴とする請求項1に記載の長期署名用端末を提供する。
請求項3に記載の発明では、前記電子署名データ受信手段と、前記長期署名用データ生成手段と、前記確認データ受信手段のうちの少なくとも2つは、同一のサーバと通信することを特徴とする請求項1、又は請求項2に記載の長期署名用端末を提供する。
請求項4に記載の発明では、保存対象データに対する長期署名データを生成する長期署名端末から、電子署名データを受信して、当該電子署名データのタイムスタンプ要求をタイムスタンプサーバに送信する電子署名データタイムスタンプ要求手段と、前記電子署名データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを電子署名データに付与して前記長期署名端末に送信する電子署名データ送信手段と、前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を収集して前記長期署名端末に送信する検証情報送信手段と、前記長期署名端末が、前記保存対象データ、前記タイムスタンプが付与された電子署名データ、及び前記送信した検証情報を用いて生成した長期署名用データの非改竄性を確認するための確認データを前記長期署名端末から受信して、当該確認データのタイムスタンプ要求をタイムスタンプサーバに送信する確認データタイムスタンプ要求手段と、前記確認データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを前記確認データに付与して前記長期署名端末に送信する確認データ送信手段と、を具備したことを特徴とする長期署名用サーバを提供する。
請求項5に記載の発明では、保存対象データを取得する保存対象データ取得機能と、前記取得した保存対象データの電子署名データを取得する電子署名データ取得機能と、前記取得した電子署名データを所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された電子署名データを受信する電子署名データ受信機能と、前記受信したタイムスタンプが付与された電子署名データを前記取得した保存対象データに結合して署名済みデータを生成する署名済みデータ生成機能と、所定のサーバから、前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を受信して前記署名済みデータに付与し、長期署名用データを生成する長期署名用データ生成機能と、前記生成した長期署名用データの非改竄性を確認するための確認データを生成して所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された確認データを受信する確認データ受信機能と、前記受信したタイムスタンプが付与された確認データを前記長期署名用データに付与して長期署名データを生成する長期署名データ生成機能と、をコンピュータで実現する長期署名用端末プログラムを提供する。
請求項6に記載の発明では、保存対象データに対する長期署名データを生成する長期署名端末から、電子署名データを受信して、当該電子署名データのタイムスタンプ要求をタイムスタンプサーバに送信する電子署名データタイムスタンプ要求機能と、前記電子署名データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを電子署名データに付与して前記長期署名端末に送信する電子署名データ送信機能と、前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を収集して前記長期署名端末に送信する検証情報送信機能と、前記長期署名端末が、前記保存対象データ、前記タイムスタンプが付与された電子署名データ、及び前記送信した検証情報を用いて生成した長期署名用データの非改竄性を確認するための確認データを前記長期署名端末から受信して、当該確認データのタイムスタンプ要求をタイムスタンプサーバに送信する確認データタイムスタンプ要求機能と、前記確認データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを前記確認データに付与して前記長期署名端末に送信する確認データ送信機能と、をコンピュータで実現する長期署名用サーバプログラムを提供する。
【発明の効果】
【0009】
本発明によれば、機密情報をユーザ側に保持したまま、長期署名に必要な要素をサーバで作成するため、ユーザ側に機密情報を保持したまま長期署名を行うことができ、また、証明書管理やタイムスタンプ取得、失効情報取得に関わるシステム運用負荷を軽減することができる。
【図面の簡単な説明】
【0010】
【図1】長期署名システムの構成を説明するための図である。
【図2】長期署名データのフォーマットを説明するための図である。
【図3】CAdESの構成を説明するための図である。
【図4】長期署名システムでPAdESを生成する手順を説明するためのフローチャートである。
【図5】長期署名システムでPAdESを生成する手順の続きを説明するためのフローチャートである。
【発明を実施するための形態】
【0011】
(1)実施形態の概要
クライアント端末3(図1)は、PDF文書と電子署名に用いる秘密鍵を長期署名サーバ2に渡さずに、長期署名サーバ2と通信しながらPAdESを生成することができる。PAdESとは、PDF形式のファイルに対して規定されている長期署名フォーマットである。
【0012】
PAdESは、図2(c)に示したように、PDF文書を分割したPDF文書A、Bの間にCAdES(タイムスタンプ付きの電子署名)を埋め込んだ署名済みPDF文書と、電子署名やタイムスタンプを検証する検証情報、及び署名済みPDF文書と検証情報に対して発行されたDTS(ドキュメントタイムスタンプ)によって構成されており、以下のように作成される。
【0013】
まず、クライアント端末3は、電子署名済みでタイムスタンプ発行前のCAdESを長期署名サーバ2に送信してCAdESへのタイムスタンプの発行を依頼する。
若しくは、電子署名済みでタイムスタンプ発行前のCAdESに対して、タイムスタンプに必要なハッシュ値データを計算し、ハッシュ値のみを長期署名サーバ2に送信してもよい。
これにより、クライアント端末3は、PDF文書、及び秘密鍵を保持したままCAdESを長期署名サーバ2から取得し、署名済みPDF文書を作成することができる。
【0014】
次に、クライアント端末3は、検証情報の収集を長期署名サーバ2に依頼して取得し、更に、署名済みPDF文書と検証情報の非改竄性を確認するための情報をこれらから生成して長期署名サーバ2に送信してDTSの生成を依頼する。
クライアント端末3は、このようにして署名済みPDF文書、検証情報、DTSを取得してPAdESを生成する。
【0015】
(2)実施形態の詳細
図1は、長期署名システム1の構成を説明するための図である。
長期署名システム1は、長期署名サーバ2、クライアント端末3、タイムスタンプサーバ5、リポジトリサーバ6、7などがインターネット4で通信可能に接続されて構成されている。
【0016】
長期署名サーバ2は、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、記憶部23、入出力I/F24、RAM(Random Access Memory)25、表示部26、通信制御部27などから構成されている。
【0017】
CPU21は、記憶部23などに記憶されたプログラムに従って情報処理や長期署名サーバ2の各部の制御を行う中央処理装置である。
本実施の形態では、クライアント端末3やタイムスタンプサーバ5、リポジトリサーバ6、7と通信しながらクライアント端末3での長期署名データの作成を支援する。
【0018】
ROM22は、読み取り専用のメモリであって、長期署名サーバ2が動作するための基本的なプログラムやパラメータなどが記憶されている。
RAM25は、読み書きが可能なメモリであって、長期署名サーバ2がクライアント端末3などと通信して長期署名データを作成するためのワーキングメモリなどを提供する。
【0019】
記憶部23は、例えば、ハードディスクなどの大容量の記憶装置を用いて構成されており、長期署名サーバ2を動作させるためのOS(Operating System)や長期署名データの生成を支援するためのプログラムなどが記憶されている。
表示部26は、例えば、液晶やCRT(Cathode Ray Tube)などを用いた表示装置を備えており、長期署名サーバ2の運用担当者などが長期署名サーバ2を操作するための各種画面を表示する。
【0020】
入出力I/F24は、例えば、各種操作スイッチ、キーボード、マウスなどの入出力装置を備えており、運用担当者などは入出力I/F24から長期署名サーバ2を操作することができる。
通信制御部27は、インターネット4を介してクライアント端末3、タイムスタンプサーバ5、リポジトリサーバ6、7などと通信する。なお、インターネット4は、他の形態の通信網であってもよい。
【0021】
長期署名サーバ2は、通信制御部27により、クライアント端末3から後述のCAdES−BESなど、タイムスタンプを必要とするデータを受信してタイムスタンプサーバ5に送信してタイムスタンプを付与してもらい、これをクライアント端末3に返送したりするほか、リポジトリサーバ6、7から検証情報など、クライアント端末3がPAdES(PDF Advanced Electronic Signatures:PDF(Portable Document Format)形式による長期署名データ)を作成するのに必要な情報を収集してクライアント端末3に送信したりすることができる。
【0022】
クライアント端末3は、CPU31、ROM32、記憶部33、通信制御部34、RAM35、表示部36、入出力I/F37などから構成されている。
【0023】
CPU31は、記憶部33などに記憶されたプログラムに従って情報処理やクライアント端末3の各部の制御を行う中央処理装置である。
本実施の形態では、長期署名サーバ2との各種情報の送受信、秘密鍵による電子署名などを行い、PAdESを生成する。
【0024】
ROM32は、読み取り専用のメモリであって、クライアント端末3が動作するための基本的なプログラムやパラメータなどが記憶されている。
RAM35は、読み書きが可能なメモリであって、例えば、クライアント端末3が長期署名サーバ2と通信しながらPAdES生成の際にワーキングメモリを提供する。
【0025】
記憶部33は、例えば、ハードディスクなどの大容量の記憶装置を用いて構成されており、クライアント端末3を動作させるためのOSや電子署名を行うための秘密鍵、当該秘密鍵に対応する公開鍵の公開鍵証明書、長期署名対象となっている原本データとしてPDF文書などが記憶されている。
【0026】
また、クライアント端末3がPAdESを作成するためのプログラムは、作成の度に長期署名サーバ2からダウンロードするように構成してもよいし、あるいは、予め記憶部33に記憶しておき、これを使用するように構成することもできる。
【0027】
表示部36は、例えば、液晶やCRTなどを用いた表示装置を備えており、クライアント端末3のユーザがクライアント端末3を操作するための各種画面を表示する。
【0028】
入出力I/F37は、例えば、キーボード、マウス、ICカードリーダライタなどの入出力装置を備えている。
ICカードリーダライタは、ICカードを接続してクライアント端末3とICカードの通信を仲介する。
ICカードは、CPU、ROM、RAM、EEPROM(Electrically Erasable and Programmable ROM)などを備えた情報処理装置であり、例えば、クライアント端末3を使用するユーザを認証するためのユーザ認証情報などが記憶されている。
また、秘密鍵や公開鍵証明書などをICカードに記憶させ、ICカードの秘密鍵を使って電子署名するようにクライアント端末3を構成することもできる。
【0029】
通信制御部34は、インターネット4を介して長期署名サーバ2との通信を行う。長期署名サーバ2へのCAdES−BESの送信、CAdES−Tの受信、検証情報の受信、DTSの受信などは、通信制御部34を用いて行われる。
【0030】
タイムスタンプサーバ5は、タイムスタンプを発行するサーバであり、TSA(Time Stamping Authority:タイムスタンプ局)に設置されている。
タイムスタンプサーバ5は、時刻配信局の配信する時刻によって補正される正確な時計を有しており、タイムスタンプ発行対象となる電子データを受信すると、これに当該時計による現在日時刻を付してタイムスタンプ用の秘密鍵で電子署名(暗号化)することによりタイムスタンプを発行する。
【0031】
リポジトリサーバ6は、TSA−CA(Time Stamping Authority Certificate Authority:タイムスタンプ認証局)に設置されたサーバであって、タイムスタンプの検証に用いる公開鍵証明書(タイムスタンプに用いた秘密鍵に対応する公開鍵の公開鍵証明書)の失効情報(CRL:Certificate Revocation List)を提供する。
失効情報にリストアップされていない公開鍵証明書は失効していないため、これによって公開鍵証明書の有効性を確認し、当該有効な公開鍵証明書によってタイムスタンプの有効性を確認することができる。
【0032】
リポジトリサーバ7は、CA(Certificate Authority)に設置されたサーバであって、クライアント端末3の行った電子署名の検証に用いる公開鍵証明書(クライアント端末3の秘密鍵に対応する公開鍵の公開鍵証明書)の失効情報を提供する。
失効情報にリストアップされていない公開鍵証明書は失効していないため、これによって公開鍵証明書の有効性を確認し、当該有効な公開鍵証明書によってクライアント端末3の行った電子署名の有効性を確認することができる。
リポジトリサーバ6とリポジトリサーバ7が提供する失効情報は、定期・不定期(例えば、24時間ごと)に更新される。
【0033】
クライアント端末3に長期署名の仕組みを持たずに長期署名を行う場合、長期署名サーバ2に原本データや電子署名用の秘密鍵などの機密情報を預ける必要があるが長期署名システム1では、クライアント端末3と長期署名サーバ2で役割を分割し、クライアント・サーバ間の通信により長期署名処理を協働して行うことで、これら機密情報を外部に出さずにクライアント端末3に保持したまま長期署名を行うことができる。
【0034】
また、クライアント端末3のみで長期署名を行う場合、公開鍵証明書、失効情報の収集やタイムスタンプサーバ5への接続の管理などを自己で行う必要があり、運用が複雑となるが、長期署名システム1では、これら複雑な手順は、長期署名サーバ2が代行するため、クライアント端末3の接続先を長期署名サーバ2に集約することができる。
【0035】
図2は、長期署名システム1で使用する長期署名データのフォーマットを説明するための図である。
本実施の形態では、PDFファイルに対して規定されている長期署名データのフォーマットであるPAdESを長期署名に用いる。
なお、これは、原本データや長期署名フォーマットをPDFやPAdESに限定するものではなく、他の種類の原本データや長期署名フォーマットに適用することもできる。
【0036】
また、PAdESは、ETSI(European Telecommunications Standards Institute:欧州電気通信標準化機構)により作成され、欧州連合で広く認識されており、人が読むことができる文書を含むアプリケーションに適した電子署名の概念であって、他の2つの電子署名である人が読むことができる文書を含まないアプリケーションに適したCAdESやXAdES(XML Advanced Electronic Signatures)の概念を補足するものである。
【0037】
図2(a)は、保存対象となるPDF文書(PDFファイル)を示した図である。PDF文書には、PDF形式の文書データ(以下、PDF文書)が記録されている。
PDF文書は、例えば、企画書、報告書、規格書など、ユーザが任意の文書をPDF形式にて作成したものである。
【0038】
図2(b)は、PDF文書にCAdES(CMS Advanced Electronic Signatures)による電子署名を付与したところを示した図である。
ここで、CAdESとは、電子署名にタイムスタンプを付すなどした、より高度な電子署名のフォーマットであり、CAdES−T、CAdES−Cなどの各種の形式が存在する。
PAdESで長期署名を行う場合、電子署名にタイムスタンプを付与したCAdES−Tを用いる。
【0039】
PDF文書からPAdESを作成する場合、その前段階として、PDF文書をPDF文書A、Bに2分割し、その間にCAdESを結合することが規定されている。分割箇所は、CAdESのタグ情報に記録される。
以下、図2(b)に示した、PDF文書A、BにCAdESを結合することにより電子署名を付したPDF文書を署名済みPDF文書と呼ぶことにする。
【0040】
なお、本実施の形態では、PDF文書を分割して、その間にCAdESを挿入したが、原本データを分割せずに、原本データの末尾、又は先頭にCAdESを結合するように構成することも可能である。
【0041】
図2(c)は、署名済みPDF文書からPAdESを生成したところを示した図である。
この長期署名データのフォーマットは、第1世代によるものであり、PAdES(1st)と図示してある。
PAdESは、署名済みPDF文書に検証情報とDTS(ドキュメントタイムスタンプ:Document Time Stamp)を付与して構成されている。ここでは、第1世代のDTSであるため、DTS(1st)と図示してある。
【0042】
検証情報には、電子署名やタイムスタンプに用いた秘密鍵に対応する公開鍵証明書と、公開鍵証明書の失効情報(失効した公開鍵証明書のリスト)が含まれている。
ユーザの電子署名やタイムスタンプに使用した秘密鍵に対応する公開鍵証明書が失効情報に含まれていないことを確認することにより、これら秘密鍵が有効であることが確認でき、これによってCAdESの正当性を検証することができる。
【0043】
DTS(1st)は、署名済みPDF文書と失効情報の非改竄性を検証するための情報(例えば、これらのハッシュ値)に対して発行されたタイムスタンプである。
DTS(1st)は、CAdESによるユーザの電子署名やタイムスタンプよりも長い有効期限を有しており、ユーザの電子署名やタイムスタンプの有効期間内に発行される。
そのため、DTS(1st)の有効期間内であれば、例え、CAdESの電子署名やタイムスタンプの有効期限が経過したり、あるいは、有効期限内に有効性を失った場合であっても、DTS(1st)によって、これらの非改竄性を担保することができる。
【0044】
即ち、DTS(1st)が有効であれば、署名済みPDF文書と検証情報の非改竄性を確認することができ、非改竄性が確認されれば、CAdESの電子署名とタイムスタンプの有効期限に関わらず、検証情報によってCAdESを検証することができ、CAdESの非改竄性が検証できたら、CAdESを用いてPDF文書の非改竄性を確認することができる。
【0045】
なお、CAdES内にDTSを追加することも考えられるが、DTSを署名済みPDF文書の外部に追加する形態としたのは、PDF署名ではCAdESの容量があらかじめ確保されており、DTSは世代を重ねていくため、これによって確保されたCAdESの容量内にDTSが納まらなくなるのを回避するためである。
【0046】
図2(d)は、第2世代のPAdESにより長期署名の有効期限が延長されたところを示した図である。図では、第2世代のPAdESをPAdES(2nd)と示してある。
PAdES(2nd)は、PAdES(1st)にDTS(2nd)を付与して構成されている。
DTS(2nd)は、第2世代のドキュメントタイムスタンプであって、PAdES(1st)の非改竄性を検証するための情報(例えば、PAdES(1st)のハッシュ値)に対して発行されたタイムスタンプである。
【0047】
DTS(2nd)は、DTS(1st)の有効期限よりも長い有効期限を有しており、DTS(1st)の有効期限が経過する前にPAdES(1st)に対して発行される。
そのため、DTS(1st)が有効期限を経過したり、あるいは、有効期限内に有効性を失った場合であっても、DTS(2nd)が有効であれば、PAdES(1st)の非改竄性を担保することができる。
【0048】
図示しないが、更に、第3世代、第4世代、・・・、とPAdESの世代を重ねることができる。
このように、PAdESでは、最新のDTSが有効性を失う前に、最新のDTSよりも有効期限が長いDTSを追加して世代を重ねることにより、PAdESの有効期限を順次延長することができる。
【0049】
図3は、CAdESの構成を説明するための図である。本実施の形態では、各種あるCAdESのうち、CAdES−Tを用いる。
CAdES−Tは、CAdES−BESとタイムスタンプを用いて構成されている。
CAdES−BESは、ユーザが電子署名に用いる秘密鍵に対応する公開鍵証明書の参照情報、当該公開鍵証明書のハッシュ値、及び、PDF文書のハッシュ値を含む署名対象データと、当該署名対象データをユーザの秘密鍵で署名した電子署名を含んでいる。
タイムスタンプは、タイムスタンプサーバ5がCAdES−BESに対して発行したものである。
【0050】
検証者は、DTS(図2(c))の非改竄性が検証できると、タイムスタンプによって、CAdES−BESの非改竄性を確認することができる。
そして、検証者は、CAdES−BESの非改竄性が確認できると、電子署名によって、署名対象データの非改竄性を確認することができ、署名対象データに含まれるPDF文書のハッシュ値と、検証対象となっているPDF文書のハッシュ値が一致することを確認することにより、検証対象となっているPDF文書の非改竄性を検証することができる。
【0051】
図4は、長期署名システム1でPAdESを生成する手順のうちCAdES−Tを生成するまでの手順を説明するためのフローチャートである。
以下の処理は、クライアント端末3のCPU31と、長期署名サーバ2のCPU21が所定のプログラムに従って行うものである。
【0052】
クライアント端末3は、長期署名対象となるPDF文書を格納するディレクトリ(フォルダ)にPDF文書が格納されたか否かを監視しており(ステップ5)、PDF文書が格納されていない場合は(ステップ5;N)、引き続き監視を継続し、PDF文書が格納された場合は(ステップ5;Y)、ユーザ名、パスワードなどのログイン情報を長期署名サーバ2に送信する(ステップ10)。
【0053】
このログイン情報の送信は、予めクライアント端末3にログイン情報を記憶しておき、自動的に行ってもよいし、あるいは、表示部36にログイン画面を表示して、ユーザに入力してもらい、これを送信してもよい。
【0054】
長期署名サーバ2は、クライアント端末3からログイン情報を受信すると、これによってユーザを認証してログイン処理を行い、ログイン処理が完了した旨をクライアント端末3に送信する(ステップ15)。
【0055】
クライアント端末3は、ログイン処理が完了すると、ディレクトリに格納されているPDF文書のハッシュ値を計算するなどして署名対象データを作成し、これに自身の秘密鍵で電子署名してCAdES−BESを作成する(ステップ20)。なお、既に成されている電子署名を取得してもよい。
そして、クライアント端末3は、CAdES−BESを長期署名サーバ2に送信する(ステップ25)。
【0056】
長期署名サーバ2は、クライアント端末3からCAdES−BESを受信すると、これに対するタイムスタンプ要求をタイムスタンプサーバ5に送信する。
この要求は、例えば、CAdES−BES内の署名値のハッシュ値を計算して長期署名サーバ2に送信するなどして行われる。
タイムスタンプサーバ5は、長期署名サーバ2からCAdES−BESに対するタイムスタンプ要求を受信すると、これにタイムスタンプを発行して長期署名サーバ2に送信する。
【0057】
長期署名サーバ2は、タイムスタンプサーバ5からタイムスタンプを受信し、これとCAdES−BESからCAdES−Tを作成する(ステップ30)。
更に、長期署名サーバ2は、ES−Tチケットを作成し、CAdES−TとES−Tチケットをクライアント端末3に送信する(ステップ35)。
ここで、ES−Tチケットは、クライアント端末3が以降の処理を開始する時間を指定する情報であり、処理したCAdES−Tを特定する情報なども含まれている。
【0058】
クライアント端末3は、長期署名サーバ2からCAdES−TとES−Tチケットを受信すると、これらを所定のディレクトリに格納し(ステップ40)、ES−Tチケットで指定された時間までPAdES生成処理を休止する。この休止期間は、例えば、1日程度である。
【0059】
このように休止期間を設けるのは、リポジトリサーバ6、7が提供する失効情報が最新のものに更新されるまでの時間を稼ぐためである。即ち、クライアント端末3からCAdES−BESを受信した時点で、本来は公開鍵証明書が失効しているにもかかわらず、まだ失効情報などが更新されていない事態を回避するためである。
【0060】
図5は、長期署名システム1でPAdESを生成する手順のうちCAdES−Tを生成した後の手順を説明するためのフローチャートである。
まず、当該手順開始前に、長期署名サーバ2は、定期的にリポジトリサーバ6、7にアクセスし、失効情報を定期的に所定のディレクトリにキャッシュしている。
【0061】
クライアント端末3は、ES−Tチケットで指定された所定時間が経過したか監視し(ステップ50)、経過していない場合は(ステップ50;N)、監視を継続する。
一方、所定時間が経過した場合(ステップ50;Y)、クライアント端末3は、ログイン情報を長期署名サーバ2に送信する(ステップ55)。
【0062】
長期署名サーバ2は、クライアント端末3からログイン情報を受信すると、これによってユーザを認証してログイン処理を行い、ログイン処理が完了した旨をクライアント端末3に送信する(ステップ60)。
クライアント端末3は、長期署名サーバ2からログイン処理が完了した旨を受信すると、格納しておいたES−Tチケットを長期署名サーバ2に送信する(ステップ65)。
【0063】
長期署名サーバ2は、クライアント端末3からES−Tチケットを受信すると、これを確認し、クライアント端末3が何れのCAdES−Tについて処理を続行しようとしているのかを認識する。そして、長期署名サーバ2は、クライアント端末3にES−Tチケットを確認した旨を通知する(ステップ70)。
【0064】
クライアント端末3は、長期署名サーバ2から当該通知を受信すると、CAdES−Tを送信する(ステップ75)。
長期署名サーバ2は、クライアント端末3からCAdES−Tを受信すると、CAdES−Tの検証に必要な全ての公開鍵証明書を収集する(ステップ80)。
【0065】
次に、長期署名サーバ2は、失効情報をキャッシュしているディレクトリから、CAdES−Tの検証に必要な全ての公開鍵証明書の全ての失効情報を収集する(ステップ85)。
次に、長期署名サーバ2は、収集した公開鍵証明書と失効情報から検証情報を生成し、クライアント端末3に送信する(ステップ90)。
【0066】
クライアント端末3は、長期署名サーバ2から検証情報を受信すると、DTS(ここでは、第1世代のためDTS(1st))の取得に必要な情報を生成し、これを長期署名サーバ2に送信してDTSの取得を要求する(ステップ95)。
ここで、DTSの取得に必要な情報(以下、DTS作成用情報)は、PDF文書、署名済みPDF文書、及び検証情報の非改竄性を確認できる情報であり、例えば、PDF文書、CAdES−T、検証情報などを含む情報のハッシュ値などを用いることができる。
【0067】
長期署名サーバ2は、DTS作成用情報を受信すると、これのタイムスタンプ要求をタイムスタンプサーバ5に送信し、タイムスタンプを発行してもらい、DTSを取得する(ステップ100)。
このタイムスタンプ要求は、例えば、DTS作成用情報のハッシュ値を長期署名サーバ2に送信するなどして行い、DTSの取得は、例えば、タイムスタンプサーバ5から受信したタイムスタンプをDTS作成用情報に付与することにより行われる。
そして、長期署名サーバ2は、DTSをクライアント端末3に送信する(ステップ105。
クライアント端末3は、長期署名サーバ2からDTSを受信して署名済みPDF文書と検証情報から成るデータに埋め込んでPAdESを生成する(ステップ110)。
【0068】
以上に説明した実施の形態により、次のような効果を得ることができる。
(1)クライアント端末3は、電子署名に用いる秘密鍵やPDF文書などの機密情報を外部に出さずにPAdESを生成することができる。
(2)クライアント端末3は、タイムスタンプサーバ5、リポジトリサーバ6、7に個別にアクセスする必要が無く、長期署名サーバ2にアクセスするだけでPAdESを生成することができる。
(3)タイムスタンプサーバ5、リポジトリサーバ6、7のURL(Uniform Resource Locators)などのアクセス情報に変更が生じた場合でも、変更対応は長期署名サーバ2が行い、クライアント端末3は、アクセス情報の再設定の必要が無い。
(4)証明書類の複雑な管理は、長期署名サーバ2が行うため、これらの管理をクライアント端末3側で行わなくてよい。
(5)長期署名に関わるクライアント端末3の通信は長期署名サーバ2のみのため、ネットワーク・セキュリティの設定が簡単になる。
(6)長期署名サーバ2が、検証情報の収集、タイムスタンプの取得、証明書管理を代行することができる。
(7)長期署名処理をクライアント側とサーバ側に適切に分離処理することができ、これによって、公開鍵証明書やタイムスタンプの運用管理をサーバ側で行い、ユーザの負担を軽減することができる。
【0069】
以上に説明した長期署名システム1では、クライアント端末3のアクセス対象は長期署名サーバ2だけであるが、クライアント端末3が長期署名サーバ2にアクセスせず、タイムスタンプサーバ5、リポジトリサーバ6、7に個別にアクセスしてPAdESを生成するように構成することもできる。
【0070】
以上に説明した長期署名システム1により、次の構成を得ることができる。
クライアント端末3は、所定のフォルダにPDF文書を格納するため、保存対象データ(PDF文書)を取得する保存対象データ取得手段を備えている。
また、クライアント端末3は、PDF文書を自身の秘密鍵で電子署名してCAdES−BESを生成するため、前記取得した保存対象データの電子署名データ(CAdES−BES)を取得する電子署名データ取得手段を備えている。
クライアント端末3は、長期署名サーバ2にCAdES−BESを送信して、長期署名サーバ2からCAdES−Tを受信するため、前記取得した電子署名データを所定のサーバ(長期署名サーバ2)に送信し、当該所定のサーバからタイムスタンプが付与された電子署名データ(CAdES−T)を受信する電子署名データ受信手段を備えている。
また、クライアント端末3は、PDF文書を分割して間にCAdES−Tを結合し、署名済みPDF文書を生成するため、前記受信したタイムスタンプが付与された電子署名データを前記取得した保存対象データに結合して署名済みデータ(署名済みPDF文書)を生成する署名済みデータ生成手段を備えている。
また、クライアント端末3は、長期署名サーバ2から検証情報を受信し、署名済みPDF文書と検証情報から成るデータを生成するため、所定のサーバ(長期署名サーバ2)から、前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を受信して前記署名済みデータに付与し、長期署名用データ(署名済みPDF文書と検証情報から成るデータ)を生成する長期署名用データ生成手段を備えている。
また、クライアント端末3は、署名済みPDF文書と検証情報の非改竄性を確認するためのDTS作成用情報を長期署名サーバ2に送信してDTSを生成してもらうため、前記生成した長期署名用データの非改竄性を確認するための確認データ(DTS作成用情報)を生成して所定のサーバ(長期署名サーバ2)に送信し、当該所定のサーバからタイムスタンプが付与された確認データ(DTS)を受信する確認データ受信手段を備えている。
また、クライアント端末3は、署名済みPDF文書と検証情報にDTSを付与してPAdESを生成するため、前記受信したタイムスタンプが付与された確認データを前記長期署名用データに付与して長期署名データを生成する長期署名データ生成手段を備えている。
【0071】
クライアント端末3は、PDF文書をPDF文書A、Bに2分割するため、前記取得した保存対象データを第1のデータ(PDF文書A)と第2のデータ(PDF文書B)に分割する分割手段を備えている。
そして、クライアント端末3は、PDF文書A、Bの間にCAdESを挿入して結合することにより署名済みPDF文書を生成するため、前記署名済みデータ生成手段は、前記取得した電子署名データを前記第1のデータと前記第2のデータの間に結合している。
【0072】
クライアント端末3は、長期署名サーバ2にアクセスして全ての処理を行うため、前記電子署名データ受信手段と、前記長期署名用データ生成手段と、前記確認データ受信手段のうちの少なくとも2つは、同一のサーバ(長期署名サーバ2)と通信している。
【0073】
長期署名サーバ2は、クライアント端末3からCAdES−BESを受信して、CAdES−BESのタイムスタンプ要求をタイムスタンプサーバ5に送信し、タイムスタンプサーバ5でタイムスタンプを発行してもらうと、CAdES−Tをクライアント端末3に送信するため、保存対象データに対する長期署名データを生成する長期署名端末(クライアント端末3)から、電子署名データ(CAdES−BES)を受信して、当該電子署名データのタイムスタンプ要求をタイムスタンプサーバに送信する電子署名データタイムスタンプ要求手段と、前記電子署名データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを電子署名データに付与してCAdES−Tとして前記長期署名端末に送信する電子署名データ送信手段を備えている。
また、長期署名サーバ2は、リポジトリサーバ6、7からCAdES−Tの検証に必要な失効情報を収集して検証情報を生成し、クライアント端末3に送信するため、前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を収集して前記長期署名端末に送信する検証情報送信手段を備えている。
また、長期署名サーバ2は、クライアント端末3から、原本データ、署名済みPDF文書、検証情報の非改竄性を確認するためのDTS作成用情報を受信して、そのタイムスタンプ要求をタイムスタンプサーバ5に送信するため、前記長期署名端末が、前記保存対象データ、前記タイムスタンプが付与された電子署名データ、及び前記送信した検証情報を用いて生成した長期署名用データの非改竄性を確認するための確認データを前記長期署名端末から受信して、当該確認データのタイムスタンプ要求をタイムスタンプサーバに送信する確認データタイムスタンプ要求手段を備えている。
また、長期署名サーバ2は、タイムスタンプサーバ5にタイムスタンプを発行してもらい、DTSを生成してクライアント端末3に送信するため、前記確認データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを前記確認データに付与してDTSとして前記長期署名端末に送信する確認データ送信手段を備えている。
【0074】
また、クライアント端末3は、CAdESを生成するために、保存対象データを取得する保存対象データ取得機能と、前記取得した保存対象データの電子署名データを取得する電子署名データ取得機能と、前記取得した電子署名データを所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された電子署名データを受信する電子署名データ受信機能と、前記受信したタイムスタンプが付与された電子署名データを前記取得した保存対象データに結合して署名済みデータを生成する署名済みデータ生成機能と、所定のサーバから、前記電子署名データ及び前記タイムスタンプの有効性を検証するための検証情報を受信して前記署名済みデータに付与し、長期署名用データを生成する長期署名用データ生成機能と、前記生成した長期署名用データの非改竄性を確認するための確認データを生成して所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された確認データを受信する確認データ受信機能と、前記受信したタイムスタンプが付与された確認データを前記長期署名用データに付与して長期署名データを生成する長期署名データ生成機能と、をコンピュータで実現する長期署名用端末プログラムを実行する。
【0075】
また、長期署名サーバ2は、保存対象データに対する長期署名データを生成する長期署名端末から、電子署名データを受信して、当該電子署名データのタイムスタンプ要求をタイムスタンプサーバに送信する電子署名データタイムスタンプ要求機能と、前記電子署名データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを電子署名データに付与して前記長期署名端末に送信する電子署名データ送信機能と、前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を収集して前記長期署名端末に送信する検証情報送信機能と、前記長期署名端末が、前記保存対象データ、前記タイムスタンプが付与された電子署名データ、及び前記送信した検証情報を用いて生成した長期署名用データの非改竄性を確認するための確認データを前記長期署名端末から受信して、当該確認データのタイムスタンプ要求をタイムスタンプサーバに送信する確認データタイムスタンプ要求機能と、前記確認データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを前記確認データに付与して前記長期署名端末に送信する確認データ送信機能と、をコンピュータで実現する長期署名用サーバプログラムを実行する。
【符号の説明】
【0076】
1 長期署名システム
2 長期署名サーバ
3 クライアント端末
4 インターネット
5 タイムスタンプサーバ
6 リポジトリサーバ
7 リポジトリサーバ

【特許請求の範囲】
【請求項1】
保存対象データを取得する保存対象データ取得手段と、
前記取得した保存対象データの電子署名データを取得する電子署名データ取得手段と、
前記取得した電子署名データを所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された電子署名データを受信する電子署名データ受信手段と、
前記受信したタイムスタンプが付与された電子署名データを前記取得した保存対象データに結合して署名済みデータを生成する署名済みデータ生成手段と、
所定のサーバから、前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を受信して前記署名済みデータに付与し、長期署名用データを生成する長期署名用データ生成手段と、
前記生成した長期署名用データの非改竄性を確認するための確認データを生成して所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された確認データを受信する確認データ受信手段と、
前記受信したタイムスタンプが付与された確認データを前記長期署名用データに付与して長期署名データを生成する長期署名データ生成手段と、
を具備したことを特徴とする長期署名用端末。
【請求項2】
前記取得した保存対象データを第1のデータと第2のデータに分割する分割手段を具備し、
前記署名済みデータ生成手段は、前記取得した電子署名データを前記第1のデータと前記第2のデータの間に結合することを特徴とする請求項1に記載の長期署名用端末。
【請求項3】
前記電子署名データ受信手段と、前記長期署名用データ生成手段と、前記確認データ受信手段のうちの少なくとも2つは、同一のサーバと通信することを特徴とする請求項1、又は請求項2に記載の長期署名用端末。
【請求項4】
保存対象データに対する長期署名データを生成する長期署名端末から、電子署名データを受信して、当該電子署名データのタイムスタンプ要求をタイムスタンプサーバに送信する電子署名データタイムスタンプ要求手段と、
前記電子署名データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを電子署名データに付与して前記長期署名端末に送信する電子署名データ送信手段と、
前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を収集して前記長期署名端末に送信する検証情報送信手段と、
前記長期署名端末が、前記保存対象データ、前記タイムスタンプが付与された電子署名データ、及び前記送信した検証情報を用いて生成した長期署名用データの非改竄性を確認するための確認データを前記長期署名端末から受信して、当該確認データのタイムスタンプ要求をタイムスタンプサーバに送信する確認データタイムスタンプ要求手段と、
前記確認データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを前記確認データに付与して前記長期署名端末に送信する確認データ送信手段と、
を具備したことを特徴とする長期署名用サーバ。
【請求項5】
保存対象データを取得する保存対象データ取得機能と、
前記取得した保存対象データの電子署名データを取得する電子署名データ取得機能と、
前記取得した電子署名データを所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された電子署名データを受信する電子署名データ受信機能と、
前記受信したタイムスタンプが付与された電子署名データを前記取得した保存対象データに結合して署名済みデータを生成する署名済みデータ生成機能と、
所定のサーバから、前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を受信して前記署名済みデータに付与し、長期署名用データを生成する長期署名用データ生成機能と、
前記生成した長期署名用データの非改竄性を確認するための確認データを生成して所定のサーバに送信し、当該所定のサーバからタイムスタンプが付与された確認データを受信する確認データ受信機能と、
前記受信したタイムスタンプが付与された確認データを前記長期署名用データに付与して長期署名データを生成する長期署名データ生成機能と、
をコンピュータで実現する長期署名用端末プログラム。
【請求項6】
保存対象データに対する長期署名データを生成する長期署名端末から、電子署名データを受信して、当該電子署名データのタイムスタンプ要求をタイムスタンプサーバに送信する電子署名データタイムスタンプ要求機能と、
前記電子署名データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを電子署名データに付与して前記長期署名端末に送信する電子署名データ送信機能と、
前記タイムスタンプが付与された電子署名データの有効性を検証するための検証情報を収集して前記長期署名端末に送信する検証情報送信機能と、
前記長期署名端末が、前記保存対象データ、前記タイムスタンプが付与された電子署名データ、及び前記送信した検証情報を用いて生成した長期署名用データの非改竄性を確認するための確認データを前記長期署名端末から受信して、当該確認データのタイムスタンプ要求をタイムスタンプサーバに送信する確認データタイムスタンプ要求機能と、
前記確認データのタイムスタンプの要求に対して前記タイムスタンプサーバが送信してきたタイムスタンプを受信し、当該受信したタイムスタンプを前記確認データに付与して前記長期署名端末に送信する確認データ送信機能と、
をコンピュータで実現する長期署名用サーバプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate