説明

タイムスタンプ装置及び方法

【課題】 独立電源を有し、外部から操作できない時計を用いながら、正しい時刻のタイムスタンプを発行する。
【解決手段】 タイムスタンプ装置10は、時刻の初期設定を除いては外部から操作できないローカル時計部と、タイムスタンプ処理部とを備える。ローカル時計部は、独立電源を有し、当該電源からの電力の供給を受けて発振手段が生成した一定間隔の発振信号から時刻を生成し、この時刻の情報を含む送信データを一定間隔で出力する。タイムスタンプ処理部は、受信した送信データから時刻の情報を取得し、取得された時刻の情報を時刻監査局システム70に送信して時刻監査証明書データを受信し、保持する。そして、クライアント端末80からタイムスタンプ要求を受信すると、当該要求の受信時に取得した時刻が、保持している時刻監査証明書データから得られる有効期限内である場合に、当該時刻によってタイムスタンプを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、ディジタルドキュメント等がある時刻に存在していたことを証明するために用いるタイムスタンプを発行するタイムスタンプ装置及び方法に関する。
【背景技術】
【0002】
従来、ディジタルドキュメントがある時刻に確かに存在し、それ以降変更や改ざんがなされていないことを証明するため、タイムスタンプ技術が用いられている。
特許文献1には、タイムスタンプ装置が、時刻配信監査サーバにより時刻の監査・校正を受けたローカル時刻を用いてタイムスタンプを発行する技術が記載されている。また、特許文献2には、タイムスタンプ装置が、時刻配信監査サーバに常時接続できない場合に、時刻配信を受けた後の時計の精度維持のために電波時計により時刻の補正を行うことが記載されている。
【特許文献1】特開2002−229869号公報
【特許文献2】特開2006−236251号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
タイムスタンプ装置の時刻を外部の時刻ソースにより校正・補正する上述した従来の方法では、外部から時刻の改ざんを受ける可能性が高く、また、装置も複雑になってしまうという問題がある。また、時刻精度を求めない場合においても、常時、時刻配信監査サーバと接続したり、電波時計で時刻を補正したりすることは、配信コストを高め、タイムスタンプ装置を複雑にする。しかし、外部から校正・補正できない時計を用いると、その時計に狂いが生じてしまった場合に、正しい時刻を使用したタイムスタンプを発行することができなくなってしまうおそれがある。
【0004】
本発明は、このような事情を考慮してなされたもので、その目的は、独立電源を有し、外部から操作できない時計を用いながら、正しい時刻のタイムスタンプを発行することができるタイムスタンプ装置及び方法を提供することにある。
【課題を解決するための手段】
【0005】
この発明は、上記の課題を解決すべくなされたもので、時刻を生成する時計部と、前記時計部により生成された時刻を用いてタイムスタンプデータを生成するタイムスタンプ処理部とを備えたタイムスタンプ装置であって、前記時計部は、電源と、前記電源からの電力の供給を受けて一定周期の発振信号を生成する発振部と、前記発振部により生成された発振信号から時刻を生成する時刻制御部と、前記時刻制御部へ時刻の設定を一度だけ行い、以降は時刻の設定を禁止する時刻設定部と、前記時刻制御部によって生成された時刻の情報を含む送信データを一定間隔で出力する信号送信部とを備え、前記タイムスタンプ処理部は、前記信号送信部から一定間隔で出力される送信データを受信する信号受信部と、前記信号受信部により受信した送信データから時刻の情報を取得する時刻取得部と、前記時刻取得部により取得された時刻の情報を時刻監査局システムに送信し、送信した時刻の情報に対する時刻監査証明書データを受信して時刻監査証明書保持部に書き込む時刻監査制御部と、クライアント端末からタイムスタンプ要求を受信し、当該タイムスタンプ要求の受信時に前記時刻取得部により取得された時刻が、前記時刻監査証明書保持部に記憶されている時刻監査証明書データから得られる有効期限内である場合に、当該時刻によってタイムスタンプデータを生成し、前記クライアント端末へ返送するタイムスタンプ作成部とを備える、ことを特徴とするタイムスタンプ装置である。
【0006】
また、本発明は、上述するタイムスタンプ装置であって、前記時計部及び前記タイムスタンプ処理部は耐タンパ性を有することを特徴とする。
【0007】
また、本発明は、上述するタイムスタンプ装置であって、前記時刻設定部は、時刻設定要求を受信し、前記時計部の備える記憶部に時刻の初期設定を行ったことを示す情報が設定されていない場合に、前記時刻制御部へ時刻の設定を行うとともに、時刻の初期設定を行ったことを示す情報を当該記憶部に書き込む、ことを特徴とする。
【0008】
また、本発明は、上述するタイムスタンプ装置であって、前記タイムスタンプ作成部は、前記時刻監査証明書データをさらに設定したタイムスタンプデータを生成する、ことを特徴とする。
【0009】
また、本発明は、上述するタイムスタンプ装置であって、前記時刻取得部は、取得した時刻の情報が、過去に取得した時刻より進んだ時刻である場合に、取得した時刻の情報が正しいと判断することを特徴とする。
【0010】
また、本発明は、上述するタイムスタンプ装置であって、前記信号送信部は、暗号化された前記時刻である暗号化時刻の情報を含む送信データを出力し、前記時刻取得部は、前記送信データに設定されている暗号化時刻の情報を復号化する、ことを特徴とする。
【0011】
また、本発明は、上述するタイムスタンプ装置であって、前記時計部は、時刻と、当該時刻の暗号化時刻とを対応付けた情報を保持する暗号化時刻保持部をさらに有し、前記信号送信部は、前記時刻制御部によって生成された時刻に対応した暗号化時刻の情報を前記暗号化時刻保持部から読み出し、読み出した暗号化時刻の情報を含む送信データを出力する、ことを特徴とする。
【0012】
また、本発明は、上述するタイムスタンプ装置であって、前記時刻取得部は、前記信号受信部により受信した送信データに設定されている暗号化時刻の情報が、過去に受信した送信データに設定されている暗号化時刻の情報ではない場合に当該送信データが正当であると判断することを特徴とする。
【0013】
また、本発明は、上述するタイムスタンプ装置であって、前記時計部と、前記タイムスタンプ処理部とは着脱可能であることを特徴とする。
【0014】
また、本発明は、上述するタイムスタンプ装置であって、前記タイムスタンプ処理部は、前記時計部の交換を検知した場合に、前記時刻監査証明書保持部に記憶されている時刻監査証明書データを消去する消去部をさらに備えることを特徴とする。
【0015】
また、本発明は、上述するタイムスタンプ装置であって、前記タイムスタンプ処理部は、前記時刻監査制御部により受信した時刻監査証明書データに、時刻が著しくずれていることを示す情報が設定されている場合に、エラーを出力する出力部をさらに備えることを特徴とする。
【0016】
また、本発明は、上述するタイムスタンプ装置であって、前記タイムスタンプ処理部は、前記時計部の有効期限まで所定の期間となったときに、有効期限が近いことを通知する通知部をさらに備えることを特徴とする。
【0017】
また、本発明は、上述するタイムスタンプ装置であって、前記クライアント端末にネットワークを介して接続されるコンピュータ装置と、前記時計部、及び、前記タイムスタンプ処理部としてのハードウェアセキュリティモジュールとからなることを特徴とする。
【0018】
また、本発明は、上述するタイムスタンプ装置であって、前記クライアント端末にコネクタにより接続されるハードウェアセキュリティモジュールであることを特徴とする。
【0019】
また、本発明は、時刻を生成する時計部と、前記時計部により生成された時刻を用いてタイムスタンプデータを生成するタイムスタンプ処理部とを備えたタイムスタンプ装置に用いられるタイムスタンプ方法であって、前記時計部において、発振部が、当該時計部が備える電源からの電力の供給を受けて一定間隔の発振信号を生成し、時刻制御部が、前記発振部により生成された発振信号から時刻を生成し、時刻設定部が、前記時刻制御部へ時刻の設定を一度だけ行い、以降は時刻の設定を禁止し、信号送信部が、前記時刻制御部によって生成された時刻の情報を含む送信データを一定間隔で出力する一方、前記タイムスタンプ処理部において、信号受信部が、前記信号送信部から一定間隔で出力される送信データを受信し、時刻取得部が、前記信号受信部により受信した送信データから時刻の情報を取得し、時刻監査制御部が、前記時刻取得部により取得された時刻の情報を時刻監査局システムに送信し、送信した時刻の情報に対する時刻監査証明書データを受信して時刻監査証明書保持部に書き込み、タイムスタンプ作成部が、クライアント端末からタイムスタンプ要求を受信し、当該タイムスタンプ要求の受信時に前記時刻取得部により取得された時刻が、前記時刻監査証明書保持部に記憶されている時刻監査証明書データから得られる有効期限内である場合に、当該時刻によってタイムスタンプデータを生成し、前記クライアント端末へ返送する、ことを特徴とするタイムスタンプ方法である。
【発明の効果】
【0020】
本発明によれば、初期設定後は外部から操作できない時計を用いるため、時刻が改ざんされるおそれがなく、加えて、時刻監査を行った時刻を用いてタイムスタンプデータを生成することができるため、信頼性の高いタイムスタンプを発行することができる。
【発明を実施するための最良の形態】
【0021】
以下、図面を参照して本発明の一実施の形態を説明する。
図1は、本発明の一実施の形態によるタイムスタンプシステムの全体構成図である。同図に示すように、タイムスタンプシステムは、TSA(Time-Stamping Authority:タイムスタンプ局)において用いられるTSU(Time-Stamping Unit:タイムスタンプユニット)としてのタイムスタンプ装置10と、当該タイムスタンプ装置10が内部に備える独立電源からの電力の供給を受けて生成した時刻の監査結果を示す時刻監査証明書を発行する、TA(Time Authority:時刻配信監査局)の時刻監査局システム70と、タイムスタンプ装置10へタイムスタンプの発行を要求し、タイムスタンプデータを受信してディジタルドキュメントに付加するクライアント端末80からなる。タイムスタンプ装置10と時刻監査局システム70とは、例えば、ISDNなどのネットワークにより接続される。また、クライアント端末80としては、例えば、パーソナルコンピュータ(以下、「PC」と記載)などが用いられ、タイムスタンプ装置10とは、インターネットやLAN(Local Area Network)などのネットワークを介して接続されるか、または、USB等のコネクタにより接続される。
【0022】
図2は、本発明の一実施の形態によるタイムスタンプ装置10(TSU)の機能ブロック図である。同図において、タイムスタンプ装置10は、ローカル時計部20、タイムスタンプ処理部30、通信手段50、タイムスタンプ受付/出力手段51、及び、表示手段52を備える。タイムスタンプ装置10は、例えば、PC等のコンピュータ装置に、ローカル時計部20及びタイムスタンプ処理部30としてのハードウェアセキュリティモジュール(HSM)を接続して構成することができる。この場合、通信手段50、タイムスタンプ受付/出力手段51、及び、表示手段52は、PCにより実現することができる。
【0023】
通信手段50は、他の装置とのデータの送受信を行い、ここでは、時刻監査局システム70、及び、クライアント端末80とSSL(Secure Socket Layer)等を用いた暗号化通信を行う。タイムスタンプ受付/出力手段51は、クライアント端末80としてのクライアントPCからタイムスタンプ要求を受信してタイムスタンプ処理部30に通知し、タイムスタンプ処理部30が生成したタイムスタンプをクライアント端末80へ返送する。表示手段52は、LCD(Liquid Crystal Display)などのディスプレイやランプであり、情報を表示する。
【0024】
HSMであるローカル時計部20は、時刻設定手段21、独立電源手段22a及び22b、発振手段23a及び23b、時刻制御手段24a及び24b、時刻A一時保持手段25a、時刻B一時保持手段25b、暗号化時刻ラベル保持手段26a及び26b、信号送信手段27を備える。
【0025】
独立電源手段22aは発振手段23aに、独立電源手段22bは発振手段23bに電力を供給する。発振手段23a及び23bは、源発振器による周波数に基づいて所定の周波数の発振信号を生成し、出力する。時刻制御手段24aは発振手段23aから出力された発振信号を用いて時刻を生成し、生成した時刻を時刻A一時保持手段25aに一時的に書き込む。同様に、時刻制御手段24bは発振手段23bから出力された周波数信号を用いて時刻を生成し、生成した時刻を時刻B一時保持手段25bに一時的に書き込む。ここでは、時刻制御手段24aが発振手段23aからの発振信号である発振信号Aを用いて生成する時刻を時刻Aとし、時刻制御手段24bが発振手段23bからの発振信号である発振信号Bを用いて生成する時刻を時刻Bする。暗号化時刻ラベル保持手段26a及び26bは、時刻と、当該時刻に対応した暗号化時刻ラベルとを対応付けた情報を記憶しており、時刻制御手段24aは生成した時刻Aに対応した暗号化時刻ラベルである暗号時刻Aを暗号化時刻ラベル保持手段26aから読み出して信号送信手段27に出力し、時刻制御手段24bは生成した時刻Bに対応した暗号化時刻ラベルである暗号時刻Bを暗号化時刻ラベル保持手段26bから読み出して信号送信手段27に出力する。信号送信手段27は、暗号時刻A及び暗号時刻Bの情報、当該ローカル時計部20の識別番号をタイムスタンプ処理部30に出力する。
【0026】
HSMであるタイムスタンプ処理部30は、信号受信手段31、復号化手段32、暗号化時刻ラベル保持手段33a及び33b、ローカル時計識別番号確認手段34、時刻A保持手段35a、時刻B保持手段35b、タイムスタンプ発行制御手段36、時刻監査制御手段37、署名鍵・証明書保持手段38、時刻監査証明書保持手段39、時刻比較手段40、タイムスタンプ作成手段41、署名手段42、タイムスタンプ時刻確認手段43を備える。
【0027】
信号受信手段31は、ローカル時計部20から暗号時刻A、暗号時刻B、ローカル時計部20の識別番号を受信する。復号化手段32は、時刻Aと暗号時刻Aを対応づけた情報を記憶する暗号化時刻ラベル保持手段33aを参照して、受信した暗号時刻Aを時刻Aに復号化し、時刻A保持手段35aに書き込む。同様に、復号化手段32は、時刻Bと暗号時刻Bを対応づけた情報を記憶する暗号化時刻ラベル保持手段33bを参照して受信した暗号時刻Bを時刻Bに復号化し、時刻B保持手段35bに書き込む。ローカル時計識別番号確認手段34は、受信したローカル時計部20の識別番号により、暗号時刻A、暗号時刻Bを出力したローカル時計部20の正当性を確認する。
【0028】
時刻監査制御手段37は、時刻監査局システム70へ時刻Aまたは時刻Bの情報と、署名鍵・証明書保持手段38から読み出した当該タイムスタンプ装置10の機器認証証明書データ(以下、単に「機器認証証明書」と記載)とを設定した時刻監査要求を時刻監査局システム70へ送信し、返送された時刻監査証明書データ(以下、単に「時刻監査証明書」または「時刻監査証」と記載)を時刻監査証明書保持手段39に書き込む。タイムスタンプ発行制御手段36は、タイムスタンプ受付/出力手段51からタイムスタンプ要求データを受信し、タイムスタンプが作成可能であるか否かを判定し、作成可能である場合にタイムスタンプ作成手段41へタイムスタンプの作成を指示する。時刻比較手段40は、現在保持している時刻の情報が正しいか否かを時刻Aと時刻Bを比較して判断する。タイムスタンプ作成手段41は、タイムスタンプの作成のためのタイムスタンプ要求データ内の情報、時刻比較手段40および時刻監査制御手段37によって正しいと判断されたときの時刻Aまたは時刻Bのデータを用いて電子署名前のタイムスタンプデータを生成する。署名手段42は、タイムスタンプ作成手段41が生成したタイムスタンプデータに、当該タイムスタンプ装置10の署名用の秘密鍵である署名鍵により電子署名を付加する。タイムスタンプ時刻確認手段43は、生成されたタイムスタンプデータ内のスタンプ時刻が時刻Aであれば時刻B保持手段35bに保持されている時刻Bとの誤差が、スタンプ時刻が時刻Bであれば時刻A保持手段35aに保持されている時刻Aとの誤差が所定の許容値内であれば、タイムスタンプデータをタイムスタンプ受付/出力手段51へ出力する。
【0029】
なお、クライアント端末80がモバイルコンピュータなどの可搬のコンピュータ端末である場合は、ローカル時計部20及びタイムスタンプ処理部30としてのHSMを、USB等によりクライアント端末80に直接接続するように構成することができる。この場合、時刻監査局システム70や他の装置との通信を行う通信手段50、タイムスタンプ受付/出力手段51、及び、表示手段52は、クライアント端末80により実現することができる。
【0030】
時刻監査局システム70は、時刻監査要求を受信する時刻監査手段71と、この受信した時刻監査要求に設定されている時刻と、時刻監査局システム70で管理する、高精度にUTC(Coordinated Universal Time:協定世界時)に同期した正確な現在時刻とのずれを検出して、時刻の誤差および時刻監査局の電子署名の付加された時刻監査証明書を返送する時刻監査証発行手段72とを備える。
【0031】
常時、時刻配信監査サーバと接続できないモバイルPC環境等においてタイムスタンプを生成する場合、一度受信した時刻監査証明書を、モバイルPCの停止/起動後も有効にしたい。しかし、従来のタイムスタンプ装置では、タイムスタンプ処理をおこなうHSMは、パーソナルコンピュータ(PC)に接続され、電源供給を受けて動作していた。そのため、HSM内の時計に対する時刻監査を受けた後に、PCの再起動または停止が行われると、時計も初期化されてしまう。よって、起動後にもう一度、時刻配信および監査を受ける必要があった。そこで、HSM内に独立した電源(電池)を持つことが考えられる。しかし、これによってある期間、時刻を保つことは可能となるが、電源がHSM内に備えられるため、電源が動作しなくなった場合は、その他の機能、すなわち、署名暗号処理機能、タイムスタンプ生成機能、データ処理機能、メモリ機能、通信機能等が正常に動作するにもかかわらず、HSM自体を破棄・交換する必要があり、経済的でない。そこで、本実施の形態のタイムスタンプ装置10では、自律電源からの電力の供給を受けて動作するローカル時計部20を着脱可能とし、電源が切れた場合にはローカル時計部20のみを新しいものに交換できるようにしている。そして、ローカル時計部20が別のローカル時計部20と交換されない間は、一度受けた時刻監査証明書は、タイムスタンプ処理部30の時刻監査証明書保持手段39に保管しておき、別のローカル時計部20に交換されたことが検知されると、タイムスタンプ処理部30のローカル時計識別番号確認手段34は、時刻監査証明書保持手段39に保管されている時刻監査証明書を消去する。
【0032】
図3に、ローカル時計部20の暗号化時刻ラベル保持手段26aが保持するデータの例を示す。なお、暗号化時刻ラベル保持手段26bも同様のデータを保持する。
暗号化時刻ラベル保持手段26a、26bは、時刻の情報を示す時刻ラベルと、当該時刻ラベルに対応した暗号化時刻ラベルと、当該暗号化時刻ラベル及び当該識別番号から生成したハッシュ値と、残日数ラベルとを対応付けた情報及びローカル時計部20を特定する識別番号とを保持しており、これらの情報が送信データとしてタイムスタンプ処理部30へ出力される。このようなデータを保持することにより、ローカル時計部20は、暗号化時刻ラベル保持手段26a及び26bの保持する時刻ラベルにおいて示される日時の期間のみ、自身の生成した時刻A、時刻Bの情報をタイムスタンプ処理部30に出力することができる。従って、暗号化時刻ラベル保持手段26a及び26bに、ローカル時計部20が正しく動作可能と保証される期間(例えば、独立電源手段22a及び22bが電力を供給できる期間)に対応した時刻ラベルを保持することによって、その期間を過ぎた場合にはローカル時計部20を使用できないようにすることが可能となる。以下では、時刻Aに対応した暗号化時刻ラベル、識別番号、ハッシュ値、及び、残日数ラベルを暗号化時刻ラベルA、識別番号A、ハッシュ値A、及び、残日数ラベルAとし、時刻Bに対応した暗号化時刻ラベル、識別番号、ハッシュ値、及び、残日数ラベルを暗号化時刻ラベルB、識別番号B、ハッシュ値B、及び、残日数ラベルBと記載する。
【0033】
なお、暗号化時刻ラベル保持手段26a、26bに保持されるハッシュ値は、例えば、暗号化時刻ラベルと識別番号とを結合した情報から、SHA1(Secure Hash Algorithm 1)などのアルゴリズムにより16進数40桁(160ビット)のハッシュ値を算出し、その算出したハッシュ値の前半20桁のみを抽出した値とする。また、残日数ラベルは、保持されている時刻ラベルのうち、最終の時刻に対応したラベルにより示される日付まで、すなわち、使用できる日にちに達するまで、あと何日であるかの情報が示される。この残日数ラベルにより示される残日数を表示手段52に表示させることにより、ユーザへローカル時計部20の有効期限終了が近いことを知らせ、新たなローカル時計部20に交換するよう促すことができる。なお、残日数ラベルに「−1」が設定される日時は、有効期限に達するまでに十分な日数があることを示す。また、残日数のかわりに残時間を用いることでもよい。
【0034】
図4に、タイムスタンプ処理部30の暗号化時刻ラベル保持手段33aが保持するデータの例を示す。なお、暗号化時刻ラベル保持手段33bも同様のデータを保持する。
同図において、暗号化時刻ラベル保持手段33a、33bは、暗号化時刻ラベルと、当該暗号化時刻ラベルを復号化した後の時刻を示す復号化時刻ラベルを対応付けた情報を保持している。例えば、暗号化時刻ラベル保持手段26a、26bには1年分の情報を、暗号化時刻ラベル保持手段33a、33bには20年分の情報を保持するなど、暗号化時刻ラベル保持手段33a、33bに、暗号化時刻ラベル保持手段26a、26bよりも十分長い期間の時刻に対応した情報を保持することで、ローカル時計部20が新しいものに交換された場合でも時刻を復号可能となる。以下では、暗号化時刻ラベルAに対応した復号化時刻ラベルを復号化時刻ラベルA、暗号化時刻ラベルBに対応した復号化時刻ラベルを復号化時刻ラベルBと記載する。
【0035】
図5は、タイムスタンプ発行制御手段36の備える記憶手段に保持されるタイムスタンプ制御フラグを説明するための図である。
同図に示すように、タイムスタンプ制御フラグには、4つのフラグF0〜F3があり、各フラグF0〜F3には、それぞれ、時刻正常フラグまたは時刻異常フラグが設定される。フラグF0には、ローカル時計部20が正常であることを示す時刻正常フラグN0、または、異常であることを示す時刻異常フラグE0が設定される。フラグF1には、時刻監査が正常であることを示す時刻正常フラグN1、または、異常であることを示す時刻異常フラグE1が設定される。フラグF2には、時刻監査証明書で示される有効期間内であることを示す時刻正常フラグN2、または、有効期間外であることを示す時刻異常フラグE2が設定される。フラグF3には、時刻Aと時刻Bの比較の結果、時刻が正常であることを示す時刻正常フラグN3、または、異常であることを示す時刻異常フラグE3が設定される。
【0036】
次に、タイムスタンプ装置10の動作について説明する。
図6は、タイムスタンプ装置10の概要動作フローを示す図であり、各フローは繰り返し実行される。
まず、ローカル時計部20に時刻A及び時刻Bの初期設定を行なう(ステップS101)。初期設定後、ローカル時計部20は、時刻A及び時刻Bの生成を開始し、一定周期(例えば、1秒毎)にて、時刻Aが生成される度に、生成された時刻Aに対応した暗号化時刻ラベルA、識別番号A、ハッシュ値A、及び、残日数ラベルAの情報からなる送信データAを、時刻Bが生成される度に、生成された時刻Bに対応した暗号化時刻ラベルB、識別番号B、ハッシュ値B、及び、残日数ラベルBの情報からなる送信データBをタイムスタンプ処理部30に出力する(ステップS102)。
【0037】
タイムスタンプ処理部30は、ローカル時計部20から送信データA、送信データBを受信する毎にそれぞれ送信データの正当性を確認し、送信データAの暗号化時刻ラベルAからは時刻Aを、送信データBの暗号化時刻ラベルBからは時刻Bを得る(ステップS111)。タイムスタンプ処理部30は、得られた時刻Aと時刻Bとを比較して時刻が正常であるか否かを判定し、その判定結果を示すタイムスタンプ制御フラグを発行許可情報として保持する(ステップS112)。
【0038】
タイムスタンプ処理部30は、ステップS111により得た時刻Aまたは時刻Bの情報を設定するとともに、当該タイムスタンプ処理部30の機器認証証明書を付加した時刻監査要求を定期的に(あるいは、必要に応じて非定期に)時刻監査局システム70に送信する。これにより、時刻監査局システム70から時刻監査結果を示す時刻監査証明書を受信する(ステップS121)。タイムスタンプ処理部30は、時刻が正常内の誤差であることを示す時刻監査証明書を受信したかを判断し、判断結果を示すタイムスタンプ制御フラグを発行許可情報として保持する。なお、時刻監査要求に、時刻Aを用いるか、時刻Bを用いるかは所定のルールに従う。例えば、時刻A(または時刻B)を常に用いる、あるいは、時刻Aと時刻Bとを一回毎に、または、所定の時間(回数)毎に交互に用いる、などとすることができる。また、時刻監査要求は、タイムスタンプ装置10から所定の時間毎に自律的に送信することでもよく、時刻監査局システム70から所定の時間毎に送信される時刻監査の指示を受信して送信することでもよい。時刻監査は、数時間毎など、時刻監査証明書に設定されうる有効期限より短い周期で行うこともできる。
【0039】
時刻監査証明書には、時刻監査要求により通知した時刻が、UTCからどれくらいずれの時間があるかを示す誤差の情報と、当該時刻監査証明書の有効期限の情報とが含まれるが、ずれの時間が大きい場合には、有効期限として零の値が設定される。タイムスタンプ処理部30は、受信した時刻監査証明書に設定された有効期限の情報から、ローカル時計部20から通知した時刻Aまたは時刻Bが正しいか否かを判断して、判断結果を示すタイムスタンプ制御フラグを発行許可情報として保持し、所定の時間毎に(例えば、送信データA、Bの受信間隔と同じ間隔で)時刻監査証明書の有効期限をチェックする(ステップS122)。タイムスタンプ処理部30は、次の時刻監査証明書を受信するまで、あるいは、ローカル時計部20の交換が検出されるまで、受信した時刻監査証明書を保持する。
【0040】
クライアント端末80からタイムスタンプ発行要求を受信した場合、タイムスタンプ処理部30は、タイムスタンプの発行許可情報(タイムスタンプ制御フラグ)により、ステップS112において時刻Aと時刻Bの比較による時刻が正常であると判断され、かつ、ステップS121において受信した時刻監査証明書から時刻が正常内の誤差であると判断され、かつ、現在の時刻が保持している時刻監査証明書で示される有効期限内であると判断されたことを確認した場合に、現在の時刻Aまたは時刻Bによりタイムスタンプデータを生成してクライアント端末80へ返送する(ステップS131)。タイムスタンプデータの生成には、現在保持している時刻監査証明書が、時刻監査時の時刻Aに対するものであれば現在の時刻Aを使用し、時刻監査時の時刻Bに対するものであれば、現在の時刻Bを使用する。また、タイムスタンプデータの生成後、クライアント端末80への出力前に、タイムスタンプデータの生成に使用していない確認用の時刻A、または、時刻Bによってタイムスタンプデータ内の時刻をチェックする。
【0041】
クライアント端末80から受信するタイムスタンプ要求には、タイムスタンプを付与したいディジタルドキュメントのハッシュデータが含まれる。タイムスタンプ処理部30がこのタイムスタンプ要求によって生成するタイムスタンプデータは、タイムスタンプ要求から取得したディジタルドキュメントのハッシュデータと、現在の時刻Aまたは時刻Bと、時刻監査証明書とからなるデータに、タイムスタンプ装置10の署名鍵により電子署名したものである。
【0042】
ディジタルドキュメントのタイムスタンプを検証する場合、クライアント端末80は、ディジタルドキュメントのハッシュデータを再計算するとともに、TSA(タイムスタンプ装置10)の署名鍵と対になる公開鍵によりタイムスタンプデータの電子署名値を復号化し検証することで正当性を確認する。公開鍵は、予め受け取ってクライアント端末80内に保持するようにしてもよく、タイムスタンプデータ内に含めるようにしてもよい。そして、再計算したハッシュ値と、タイムスタンプデータに含まれるハッシュ値が一致すれば、タイムスタンプデータで示されるタイムスタンプ時刻に当該ディジタルドキュメントが存在したことが証明でき、一致しない場合は変更や改ざんがあったと判断される。
【0043】
次に、タイムスタンプ装置10の詳細な動作について説明する。なお、ここでは、発振手段23a、23bは、1秒周期の発振信号を出力するものとする。
【0044】
図7は、図6のステップS101における時刻初期設定処理の詳細なフローである。ここでは、時刻Aの初期設定を行う場合について説明する。
ローカル時計部20の時刻設定手段21は、当該時刻設定手段21の備えるに記憶手段に、時刻Aが初期設定済みであることを示すフラグが設定されているかを判断する(ステップS201)。時刻設定手段21は、時刻Aの初期設定済みを示すフラグが設定されていないと判断した場合(ステップS201:YES)、外部の時刻設定装置から、TAより出力された時刻に基づく時刻ラベルを受信し、この時刻ラベルの受信タイミングと、発振手段23aにより生成される発振信号Aとを同期させる(ステップS202)。時刻設定手段21は、ステップS202において同期を行った結果の同期誤差が、所定の規定値より小さいか否かを判断する(ステップS203)。所定の規定値以上であると判断した場合(ステップS203:NO)、ステップS202に戻り、再び同期処理を行う。
【0045】
そして、ステップS202において同期を行った結果の同期誤差が、所定の規定値より小さいと判断した場合(ステップS203:YES)、時刻制御手段24aは、取得した時刻Aを示す時刻ラベルを時刻A一時保持手段25aに設定し(ステップS204)、時刻設定手段21は、時刻設定手段21の備える記憶手段に、時刻Aが初期設定済みであることを示すフラグを設定する(ステップS205)。
なお、ステップS201において、時刻Aの初期設定済みを示すフラグが設定されていると判断した場合は(ステップS201:NO)、そのまま処理を終了する。
【0046】
上記では時刻Aの初期設定処理について説明したが、時刻Bの初期設定についても同様である。時刻Bの初期設定処理の場合、発振手段23a、時刻制御手段24a、時刻A一時保持手段25a、発振信号A、時刻Aをそれぞれ、発振手段23b、時刻制御手段24b、時刻B一時保持手段25b、発振信号B、時刻Bと置き換えればよい。
【0047】
図8は、図6のステップS102における時刻生成送信処理の詳細なフローである。ここでは、時刻Aの時刻生成送信処理を行う場合について説明する。
時刻制御手段24aは、発振手段23a(発振手段A)から出力される発振信号Aの発振立ち上がりのタイミングにより、時刻A一時保持手段25aに保持されている過去の時刻Aである時刻A’を取得し、この時刻A’にプラス1秒を追加して新たな時刻Aを生成し、時刻A一時保持手段25aに設定する(ステップS301)。時刻制御手段24aは、時刻Aを示す送信データAとして、当該時刻Aに対応した暗号化時刻ラベルA、識別番号A、ハッシュ値A、及び、残日数ラベルAの情報を暗号化時刻ラベル保持手段26aから読み出す(ステップS302)。時刻制御手段24aは、読み出したデータが0ではないかにより、暗号化時刻ラベル保持手段26aからの情報の読み出しに成功したか否かを判断する(ステップS303)。情報の読み出しに成功したと判断した場合(ステップS303:YES)、信号送信手段27は、暗号化時刻ラベル保持手段26aから読み出された暗号化時刻ラベルA、識別番号A、ハッシュ値A、及び、残日数ラベルAの情報からなる送信データAをタイムスタンプ処理部30へ送信し(ステップS304)、再びステップS301からの処理を繰り返す。なお、暗号化時刻ラベル保持手段26aからの情報の読み出しに失敗したと判断した場合(ステップS303:NO)、処理を終了する。
【0048】
上記では時刻Aの時刻生成送信処理について説明したが、時刻Bの時刻生成送信処理についても同様である。時刻Bの時刻生成送信処理の場合、発振手段23a、時刻制御手段24a、時刻A一時保持手段25a、暗号化時刻ラベル保持手段26a、発振信号A、時刻A、時刻A’、送信データA、暗号化時刻ラベルA、識別番号A、ハッシュ値A、残日数ラベルAをそれぞれ、発振手段23b、時刻制御手段24b、時刻B一時保持手段25b、暗号化時刻ラベル保持手段26b、発振信号B、時刻B、時刻B’、送信データB、暗号化時刻ラベルB、識別番号B、ハッシュ値B、残日数ラベルBと置き換えればよい。
【0049】
図9は、図6のステップS111における時刻設定処理の詳細なフローである。ここでは、時刻Aの時刻設定処理を行う場合について説明する。
タイムスタンプ処理部30の信号受信手段31は、ローカル時計部20から送信データAを受信する(ステップS401)。復号化手段32は、送信データAに設定されている暗号化時刻ラベルAがオール0(0の羅列)ではなく、かつ、以前に受信した暗号化時刻ラベルAと一致しないかにより、暗号化時刻ラベルAが有効であるかを判断する(ステップS402)。有効であると判断した場合(ステップS402:YES)、復号化手段32は、暗号化時刻ラベル保持手段33aから、暗号化時刻ラベルAに対応した復号化時刻ラベルAを読み出す(ステップS403)。なお、このとき、前回復号化時刻ラベルAを読み出した行以降の行を順に検索するか、または、前回復号化時刻ラベルAを読み出した行の近傍の行のみを検索することにより、処理を高速化することができる。復号化手段32は、現在時刻A保持手段35aに保持されている過去の時刻Aである時刻A’を取得し、読み出した復号化時刻ラベルAにより示される時刻、すなわち、時刻Aが時刻A’よりも進んだ時刻であるか否かを判断する(ステップS404)。
【0050】
時刻Aが時刻A’よりも進んだ時刻であると判断した場合(ステップS404:YES)、ローカル時計識別番号確認手段34は、時計識別により正当性を確認する(ステップS405)。この処理の詳細は後述する。
ローカル時計識別番号確認手段34により時計識別が正しいと判断されると、復号化手段32は、復号化時刻ラベルAを時刻A保持手段35aに格納し(ステップS406)、タイムスタンプ発行制御手段36の備える記憶手段に、時計正常フラグN0を設定する(ステップS407)。復号化手段32は、送信データAに設定されている残日数ラベルAが負の値であった場合(ステップS408:YES)、再びステップS401からの処理を繰り返し、残日数ラベルAが正の値であった場合(ステップS408:NO)、表示手段52に残日数を表示したり、図示しない警告手段(例えば、ローカル時計取替え時期が近いことを音声で知らせる装置など)により警告を出力して(ステップS409)、再びステップS401からの処理を繰り返す。
【0051】
なお、ステップS402において、暗号化時刻ラベルAが有効ではないと判断した場合(ステップS402:NO)、あるいは、ステップS404において、時刻Aが時刻A’より進んだ時刻ではないと判断した場合(ステップS404:NO)、復号化手段32は、タイムスタンプ発行制御手段36の備える記憶手段に、時計異常フラグE0を設定し(ステップS410)、処理を終了する。
【0052】
上記では送信データAを受信したときの時刻設定処理について説明したが、送信データBを受信したときの時刻設定処理についても同様である。送信データBを受信したときの時刻設定処理の場合、暗号化時刻ラベル保持手段33a、時刻A保持手段35a、時刻A、時刻A’、送信データA、暗号化時刻ラベルA、復号化時刻ラベルA、残日数ラベルAをそれぞれ、暗号化時刻ラベル保持手段33b、時刻B保持手段35b、時刻B、時刻B’、送信データB、暗号化時刻ラベルB、復号化時刻ラベルB、残日数ラベルBと置き換えればよい。
なお、復号鍵を予め記憶しておき、都度、暗号化時刻ラベルA、Bを復号するようにしてもよい。
【0053】
図10は、図6のステップS112における時刻比較処理の詳細なフローである。
時刻比較手段40は、時刻A保持手段35aから時刻Aの情報を、時刻B保持手段35bから時刻Bの情報を取得し(ステップS501)、時刻Aと時刻Bとの時刻の誤差が所定の規定値より小さいかを判断する(ステップS502)。時刻Aと時刻Bとの時刻の誤差が所定の規定値より小さいと判断した場合(ステップS502:YES)、時刻比較手段40は、タイムスタンプ発行制御手段36の備える記憶手段に、時計正常フラグN3を設定し(ステップS503)、ステップS501の処理へ戻る。一方、時刻Aと時刻Bとの時刻の誤差が所定の規定値以上であると判断した場合(ステップS502:NO)、時刻比較手段40は、タイムスタンプ発行制御手段36の備える記憶手段に、時計異常フラグE3を設定するとともに(ステップS504)、表示手段52または図示しない警告手段により警告を出力してローカル時計の交換を促す(ステップS505)。
【0054】
図11は、図6のステップS121における時刻監査処理の詳細なフローである。以下では、時刻Aにより時刻監査を行う場合について説明する。
時刻監査制御手段37は、時刻監査要求を送信する所定の時間であることを検出するか、あるいは、時刻監査局システム70から時刻監査の指示を受信する(ステップS601)。時刻監査制御手段37は、時刻監査局システム70からTAの機器認証証明書を受信し(ステップS602)、正当性を確認する(ステップS603)。さらに署名鍵・証明書保持手段38から取得した当該タイムスタンプ装置10の機器認証証明書を時刻監査局システム70に送信することで時刻監査局システム70によってタイムスタンプ装置10が正しいことが確認されると、TAの機器認証証明書が正しいと判断した場合(ステップS603:YES)、通信手段50は、SSLによる暗号化通信を確立する。時刻監査制御手段37は、時刻A保持手段35aから時刻Aを取得し、取得した時刻Aを設定した時刻監査要求を時刻監査局システム70へ送信する(ステップS604)。
【0055】
通信エラー等の異常が発生せず、時刻監査要求の送信が成功した場合(ステップS605:YES)、時刻監査制御手段37は時刻監査局システム70から時刻監査証明書を受信する。時刻監査制御手段37は、受信した時刻監査証明書と、送信データA内の識別番号Aとを時刻監査証明書保持手段39に書き込む(ステップS606)。時刻監査制御手段37は、受信した時刻監査証明書の有効期限の情報に正常な値(正の値)が設定されていれば時刻監査が成功したと判断し(ステップS607:YES)、タイムスタンプ発行制御手段36の保持する記憶手段に、当該時刻監査証明書の有効期限の情報を設定するとともに、時計正常フラグN1、N2を設定する(ステップS608)。時刻比較手段40は、時刻監査証明書内の監査時刻と、時刻A保持手段35aから取得した時刻Aと、時刻B保持手段35bから取得した時刻Bの情報とから、時刻監査証明書内の監査時刻に対する時刻Bの時刻誤差を算出する(ステップS609)。算出した時刻BのTA時刻に対する時刻誤差が所定の規定値より小さい場合(ステップS610:YES)、そのまま処理を終了する。
【0056】
なお、ステップS603において、TAの機器認証証明書が正しくないと判断した場合(ステップS603:NO)、ステップS605において、時刻監査要求の送信が失敗した場合(ステップS605:NO)、表示手段52または図示しない警告手段により時刻監査の失敗の警告を出力する(ステップS613)。
また、ステップS607において、時刻監査証明書内の時刻の有効期限の情報が正ではない場合(ステップS607:NO)、タイムスタンプ発行制御手段36の備える記憶手段に、時計異常フラグE1を設定し(ステップS611)、表示手段52または図示しない警告手段により警告を出力してローカル時計の交換を促す(ステップS613)。
また、ステップS609において、算出した時刻BのTA時刻に対する時刻誤差が所定の規定値以上である場合(ステップS610:NO)、タイムスタンプ発行制御手段36の備える記憶手段に、時計異常フラグE3を設定し(ステップS612)、表示手段52または図示しない警告手段により警告を出力してローカル時計の交換を促す(ステップS613)。
【0057】
上記では時刻Aの監査処理について説明したが、時刻Bの監査処理についても同様である。時刻Bの監査処理の場合、時刻A保持手段35a、時刻A、識別番号A、時刻B保持手段35b、時刻Bをそれぞれ、時刻B保持手段35b、時刻B、識別番号B、時刻A保持手段35a、時刻Aと置き換えればよい。
【0058】
図12は、図6のステップS122における時刻監査証有効期限チェック処理の詳細なフローである。以下では、直前の時刻監査を時刻Aにより行った場合について説明する。
時刻監査制御手段37は、タイムスタンプ発行制御手段36に時刻正常フラグN1が設定されている場合(ステップS701)、時刻A保持手段35aから時刻Aの情報を読み出す(ステップS702)。時刻監査制御手段37は、読み出した時刻Aが、時刻監査証明書保持手段39に保持されている時刻監査証明書に設定されている有効期限内である場合(ステップS703:YES)、タイムスタンプ発行制御手段36の備える記憶手段に、時刻正常フラグN2を設定する(ステップS704)。さらに、時刻監査制御手段37は、時刻監査証明書に設定されている有効期限が、規定の日数(または時間)の後に有効期限となるかを判断する(ステップS705)。規定の日数(または時間)の後にはまだ有効期限とはならないと判断した場合は、処理を終了し(ステップS705:NO)、規定の日数(または時間)の後に有効期限となると判断した場合は、表示手段52または図示しない警告手段に残日数または残り時間を表示して、時刻監査証明書の期限が近いことを警告する(ステップS706)。
【0059】
なお、時刻監査制御手段37は、タイムスタンプ発行制御手段36に時刻正常フラグN1が設定されていない場合(ステップS701:NO)、処理を終了する。
また、ステップS703において、読み出した時刻Aが、時刻監査証明書に設定されている有効期限を超えている場合(ステップS703:NO)、タイムスタンプ発行制御手段36の備える記憶手段に時刻異常フラグE2を設定するとともに(ステップS707)、TAの時刻監査局システム70へ時刻監査要求を送信する(ステップS708)。
【0060】
上記では、直前の時刻監査を時刻Aにより行った場合の時刻監査証有効期限チェック処理について説明したが、直前の時刻監査を時刻Bにより行った場合の時刻監査証有効期限チェック処理についても同様である。直前の時刻監査を時刻Bにより行った場合の時刻監査証有効期限チェック処理の場合、時刻A保持手段35a、時刻A、残日数ラベルAをそれぞれ、時刻B保持手段35b、時刻B、残日数ラベルBと置き換えればよい。
【0061】
図13は、図6のステップS131におけるタイムスタンプ発行処理の詳細なフローである。以下では、直前の時刻監査を時刻Aにより行った場合について説明する。
タイムスタンプ発行制御手段36は、通信手段50及びタイムスタンプ受付/出力手段51を介して、クライアント端末80としてのクライアントPCからタイムスタンプ要求データを受信する(ステップS801)。タイムスタンプ発行制御手段36は、記憶手段に時計正常フラグN0が設定されており(ステップS802:YES)、かつ、時刻比較によって時刻正常フラグN3が設定されている場合(ステップS803:YES)、時刻A保持手段35aから現在時刻である時刻Aの情報を取得する(ステップS804)。タイムスタンプ発行制御手段36は、自身の備える記憶手段を参照し、時刻Aが有効期限内であり、かつ、時刻正常フラグN1及びN2が設定済みであると判断した場合(ステップS805:YES)、時刻Aを用いてタイムスタンプを生成するようタイムスタンプ作成手段41に指示する。タイムスタンプ作成手段41は、タイムスタンプ要求から取得したディジタルドキュメントのハッシュデータと、時刻Aと、時刻監査証明書保持手段39内に保持されている時刻監査証明書とを含むタイムスタンプの平文データを生成する。署名手段42は、この生成された平文データに対して、署名鍵・証明書保持手段38から読み出した、TSA(タイムスタンプ装置10)の署名鍵により電子署名を行い、前記平文データに付加する(ステップS806)。タイムスタンプ時刻確認手段43は、このようにして生成されたタイムスタンプデータ内のスタンプ時刻である時刻Aと、時刻B保持手段35bから取得した時刻Bとの時刻誤差が所定の規定値より小さい場合(ステップS807:YES)、生成されたタイムスタンプデータを含むタイムスタンプレスポンスをクライアントPCへ返送する(ステップS808)。
【0062】
なお、記憶手段に時計正常フラグN0が設定されていない場合(ステップS802:NO)、時刻正常フラグN3が設定されていない場合(ステップS803:NO)、時刻Aが有効期限内ではない場合、または、記憶手段に時刻正常フラグN1、N2が設定されていない場合(ステップS805:NO)、あるいは、タイムスタンプデータ内のスタンプ時刻である時刻Aと、時刻B保持手段35bから取得した時刻Bとの時刻誤差が所定の規定値以上である場合(ステップS807:NO)、タイムスタンプ作成手段41は、エラーを設定したタイムスタンプレスポンスをクライアントPCへ返送する(ステップS809)。
【0063】
上記では、直前の時刻監査を時刻Aにより行った場合のタイムスタンプ発行処理について説明したが、直前の時刻監査を時刻Bにより行った場合のタイムスタンプ発行処理についても同様である。直前の時刻監査を時刻Bにより行った場合の時刻監査証有効期限チェック処理の場合、時刻A保持手段35a、時刻A、時刻B保持手段35b、時刻Bをそれぞれ、時刻B保持手段35b、時刻B、時刻A保持手段35a、時刻Aに置き換えればよい。
【0064】
図14は、時刻監査証有無確認処理のフローであり、1秒ごとなどの所定の時間毎に、図12の時刻監査証有効期限チェック処理の前に実行される。
時刻監査制御手段37は、時刻監査証明書保持手段39に時刻監査証明書が保持されているか否かを判断する(ステップS901)。時刻監査証明書が保持されている場合、図12に示す時刻監査証有効期限チェック処理を実行し(ステップS902)、ステップS901からの処理を繰り返す。一方、時刻監査証明書保持手段39に時刻監査証明書が保持されていない場合、タイムスタンプ発行制御手段36の備える記憶手段に、時計異常フラグE1及びE2を設定し、ステップS901からの処理を繰り返す(ステップS903)。
【0065】
図15は、図9のステップS405における時計識別確認処理の詳細なフローである。
ローカル時計識別番号確認手段34は、送信データAに設定されている暗号化時刻ラベルAと識別番号Aとを結合した情報から、ローカル時計部20において保持しているハッシュアルゴリズムと同じアルゴリズムであるSHA1アルゴリズムを用いてハッシュ値αを算出する(ステップS1001)。ローカル時計識別番号確認手段34は、算出されたハッシュ値αの前半20桁が送信データAに設定されているハッシュ値Aと同じであれば(ステップS1002:YES)、時刻監査証明書保持手段39に保管されている識別番号A’を取得し(ステップS1003)、送信データAから取得した識別番号Aと一致するかを判断する(ステップS1004)。ローカル時計識別番号確認手段34は、識別番号A’と識別番号Aとが一致する場合(ステップS1004:YES)、処理を終了し、一致しない場合(ステップS1004:NO)、時刻監査証明書保持手段39に保管されている時刻監査証明書を消去する(ステップS1005)。
【0066】
また、ステップS1002において、算出されたハッシュ値αが送信データAに設定されているハッシュ値Aと一致しないと判断された場合、ローカル時計識別番号確認手段34は、時刻監査証明書保持手段39に保管されている時刻監査証明書を消去するとともに(ステップS1006)、タイムスタンプ発行制御手段36の備える記憶手段に、時計異常フラグE0を設定する(ステップS1007)。
【0067】
上記では送信データAを受信したときの時計識別確認処理について説明したが、送信データBを受信したときの時計識別確認処理についても同様である。送信データBを受信したときの時計識別確認処理の場合、送信データA、暗号化時刻ラベルA、識別番号A、ハッシュ値A、識別番号A’をそれぞれ、時刻B、送信データB、暗号化時刻ラベルB、識別番号B、ハッシュ値B、識別番号B’に置き換えればよい。
【0068】
このように、ローカル時計部20から送信される送信データにローカル時計部20を特定する固有の識別番号と、ハッシュ値を含めることにより、タイムスタンプ処理部30側において、過去に時刻監査証を受けた時計の識別番号と比較され、変更があれば過去に受けた時刻監査証を消去する。ハッシュ値は、暗号化時刻ラベルと識別番号から生成されるが、ハッシュ値があることで、暗号化時刻ラベルをローカル時計部20ごとに作成する必要が無いため、タイムスタンプ処理部30が保管すべき復号用データを減らすことができる。また、新しいローカル時計部20と偽の識別番号(固定であるため)を入力することによる時刻監査証の引き続きの使用を阻止できる。
従って、時刻監査証明書の有効期限内であれば、タイムスタンプ装置10の電源が切れても再度、起動時に、時刻監査を新たに受ける必要が無くタイムスタンプを発行することができる。
【0069】
図16及び図17は、ローカル時計部20のハードウェア構成の例を示す。
図16において、ローカル時計部20のハードウェアセキュリティ部は、CPU(central processing unit)101a、EEPROM(Electronically Erasable and Programmable Read Only Memory)102a、RAM(Random Access Memory)103a、電源部104a、時計105a、入力I/F(インタフェース)106a、及び、出力I/F107aをバス108aで接続した構成と、CPU101b、EEPROM102b、RAM103b、電源部104b、時計105b、入力I/F(インタフェース)106b、及び、出力I/F107bをバス108bで接続した構成とからなる。
【0070】
CPU101aは演算や制御を行う中央演算装置であり、図2の時刻設定手段21及び時刻制御手段24aを実現する。EEPROM102aは、時刻設定手段21及び時刻制御手段24aのプログラムを記憶するとともに、暗号化時刻ラベル保持手段26aを実現する。RAM103aは、読み出し・書き込み可能なメモリであって、CPU101aが各種プログラムを実行する際のワークエリアなどがあり、時刻A一時保持手段25aを実現する。電源部104aは、独立電源手段22aを、時計105aは発振手段23aを実現する。
同様に、CPU101bは時刻設定手段21及び時刻制御手段24bを実現し、EEPROM102bは、時刻設定手段21及び時刻制御手段24bのプログラムを記憶するとともに、時刻設定手段21及び暗号化時刻ラベル保持手段26bを実現する。RAM103bは、CPU101bが各種プログラムを実行する際のワークエリアなどがあり、時刻B一時保持手段25bを実現する。電源部104bは、独立電源手段22bを、時計105bは発振手段23bを実現する。
入力I/F106a、106bは外部からのデータの受信を可能とするものであり、時刻設定手段21を実現し、出力I/F107a、107bは外部へのデータ送信を可能とするものであり、信号送信手段27を実現する。
【0071】
図17において、ローカル時計部20のハードウェアセキュリティ部は、CPU101、EEPROM102、RAM103、電源部104、時計105a及び105b、入力I/F(インタフェース)106、及び、出力I/F107をバス108で接続して構成される。発振手段23a及び23bは、それぞれ時計105a、105bで実現されるが、他の手段は共通のハードウェアで実現される。
【0072】
図18は、タイムスタンプ処理部30、通信手段50、タイムスタンプ受付/出力手段51、表示手段52のハードウェア構成の例を示す図である。同図において、タイムスタンプ処理部30としてのハードウェアセキュリティ部115は、当該ハードウェアセキュリティ部115とUSB等により接続されるPC等のコンピュータ装置のCPU111、ROM112、RAM113、記憶部114、通信制御部116、出力I/F117、入力I/F118、及び、表示部119とバス121により接続して構成される。ハードウェアセキュリティ部115は、CPU122、ROM123、RAM124、EEPROM125により構成される。
【0073】
CPU111は、ROM112からシステムプログラムを読み出し、各部の制御を行う。RAM113bは、CPU111が各種プログラムを実行する際のワークエリアなどがある。記憶部114は、ハードディスクなどであり、各種プログラムなどを記憶するとともに、データを記憶する。通信制御部116は、出力I/F117による外部へのデータの出力、入力I/F118による外部からのデータの入力を制御し、これらにより図2の通信手段50を実現する。表示部119は、ディスプレイなどの表示装置である。
【0074】
CPU122はROM123からプログラムを読み出して、復号化手段32、ローカル時計識別番号確認手段34、タイムスタンプ発行制御手段36、時刻監査制御手段37、時刻比較手段40、タイムスタンプ作成手段41、署名手段42、タイムスタンプ時刻確認手段43を実現する。RAM124は、時刻A保持手段35a、時刻B保持手段35b、時刻監査証明書保持手段39を実現し、EEPROM125は、暗号化時刻ラベル保持手段33a及び33b、署名鍵・証明書保持手段38を実現する。
【0075】
図19は、タイムスタンプ装置10全体のハードウェア構成の例を示す図である。同図においては、図16に示すような出力I/F107a及び107bが、図18に示すようなローカル時計部20のハードウェアセキュリティ部に接続される。ただし、出力I/F117、入力I/F118は併せて入出力I/F120としている。
【0076】
図20は、ローカル時計部20として用いる耐タンパローカル時計の外観を示す図である。耐タンパローカル時計は、CPU、RAM、EEPROM、発振器、電池等からなる内部モジュールを樹脂でパッケージした内部モジュールケースと、内部モジュールへ外部からの信号を入力するための信号送信用端子(初期時刻設定用端子としても使用される)と、内部モジュールケースに巻きつけられるコイルの端子と接続される端子X、端子Yとを備える。
【0077】
図21は、ローカル時計部20のモジュール構成を示す図である。図21(a)は、コイル1の形状を、図21(b)はコイル2の形状を示している。コイル1及びコイル2は、それぞれ1本の電線であり、コイル1が内部モジュールの周囲に巻きつけられ、さらにその周囲に、コイル2がコイル1とは直交する方向に巻きつけられる。そして、コイル端子Xが、コイル1の一方の端子とつながり、コイル1のもう一方の端子が、コイル2一方の端子とつながり、コイル2のもう一方の端子が、コイル端子Yとつながることで、コイル端子Xとコイル端子Yは1本の電線として作用する。このようにコイル1、2を巻きつけた後、図21(c)に示すような外部モジュールケースに入れて樹脂パッケージすると、図21(d)のようなモジュール構成となる。
【0078】
図22は、耐タンパローカル時計の不正操作検出を説明する図である。同図に示すように、コイルの先端は、CPUに接続されたスイッチの2つの端子にそれぞれ接続されている。このような構成において、コイルが破断されると、CPUが切断を検知して、EEPROMに保管されている暗号化時刻ラベルのデータを消去する。
【0079】
具体的には、製造の過程でコイルが内部モジュールの外側から接続され、最初の切断された状態を0、コイルが接続された状態を1、コイルが破断した状態を2としたときに、RAM上には、最初状態0が設定されており、EEPROMのデータは保護されている状態である。次に、コイルが接続されたときに、CPUが接続を検知して、RAM上に状態1を設定する。RAM上に状態1が設定されている状態においてCPUが破断を検知すると、状態2を設定し、EEPROM上のデータが消去される。
上記の仕組みにより、不正操作を目的として、外部の樹脂を破壊し、コイルを破壊した場合に、EEPROM上の暗号化時刻データが消去されることから、不正に(未来の)暗号化時刻ラベルを取り出すことができないようにすることが可能となる。
【0080】
本実施の形態によれば、タイムスタンプ装置のローカル時計は、出荷時にのみ時刻設定が可能であり、外部時刻からの校正・補正を受けないことがないため、時刻の改ざんを受けないようにすることができる。
また、ローカル時計から出力される時刻ラベルが暗号化されているため、タイムスタンプ処理装置に、不正に未来の時刻を入れることが出来ない。そして、このローカル時計の時刻ラベルは、あらかじめ暗号化されてローカル時計部に保持されているため、ローカル時計に複雑な暗号処理装置が必要もない。加えて、タイムスタンプ処理装置は、過去に受けた時刻を再度受けられないので、リプレイ攻撃(暗号化されたデータを観察し、同じ内容を後ほど送信する)を遮断することが可能である。
また、タイムスタンプ処理装置は、時刻監査機関から取得した時刻監査証明書によって指定された期限のみタイムスタンプを発行することができるため、タイムスタンプの発行権限は時刻監査機関に依存する。よって、改ざんした時刻によるタイムスタンプが発行されるのを防ぐことができる。
また、ローカル時計とタイムスタンプ処理装置が接続されている間は、時刻監査証明書が有効なため、タイムスタンプ処理装置への電源供給が切れても、電源再供給後に時刻監査証明書の有効期間内であれば、引き続きタイムスタンプを発行できる。
また、ローカル時計を着脱可能にすることにより、メンテナンスが容易になり、また、経済的であるとともに、時刻精度を保証することができる。そして、ローカル時計の交換タイミング、すなわち、ラベルがなくなる数日前になったとき、時刻比較でエラーとったとき、時刻監査時により時刻のずれが許容範囲外となったときにエラーを出力することができる。
また、監査後の時計が大幅にずれることにより望ましくないタイムスタンプが発行され続けることを防ぐために、2つの時計の時刻によりチェックを行うことで、不正なタイムスタンプの発行が行われないようにすることができる。
【図面の簡単な説明】
【0081】
【図1】本発明の一実施の形態によるタイムスタンプシステムの構成を示す図である。
【図2】同実施の形態によるタイムスタンプ装置の機能ブロック図である。
【図3】同実施の形態によるローカル時計部の暗号化時刻ラベル保持手段が保持するデータの例を示す図である。
【図4】同実施の形態によるタイムスタンプ処理部の暗号化時刻ラベル保持手段が保持するデータの例を示す図である。
【図5】同実施の形態によるタイムスタンプ発行制御手段が保持するタイムスタンプ制御フラグの例を示す図である。
【図6】同実施の形態によるタイムスタンプ装置の概要処理フローを示す図である。
【図7】同実施の形態によるタイムスタンプ装置の時刻初期設定処理フローを示す図である。
【図8】同実施の形態によるタイムスタンプ装置の時刻生成送信処理フローを示す図である。
【図9】同実施の形態によるタイムスタンプ装置の時刻設定処理フローを示す図である。
【図10】同実施の形態によるタイムスタンプ装置の時刻比較処理フローを示す図である。
【図11】同実施の形態によるタイムスタンプ装置の時刻監査処理フローを示す図である。
【図12】同実施の形態によるタイムスタンプ装置の時刻監査証有効期限チェック処理フローを示す図である。
【図13】同実施の形態によるタイムスタンプ装置のタイムスタンプ発行処理フローを示す図である。
【図14】同実施の形態によるタイムスタンプ装置の時刻監査証有無確認処理フローを示す図である。
【図15】同実施の形態によるタイムスタンプ装置の時計識別確認処理フローを示す図である。
【図16】同実施の形態によるローカル時計部のハードウェア構成例を示す図である。
【図17】同実施の形態によるローカル時計部のハードウェア構成例を示す図である。
【図18】同実施の形態によるタイムスタンプ処理部のハードウェア構成例を示す図である。
【図19】同実施の形態によるタイムスタンプ装置のハードウェア構成例を示す図である。
【図20】同実施の形態による耐タンパローカル時計の構成例を示す図である。
【図21】図20に示す耐タンパローカル時計のモジュール構成図である。
【図22】図20に示す耐タンパローカル時計の不正操作検出を説明する図である。
【符号の説明】
【0082】
10…タイムスタンプ装置
20…ローカル時計部(時計部)
21…時刻設定手段(時刻設定部)
22a,22b…独立電源手段(電源)
23a,23b…発振手段(発振部)
24a,24b…時刻制御手段(時刻制御部)
25a…時刻A一時保持手段
25b…時刻B一時保持手段
26a,26b…暗号化時刻ラベル保持手段
27…信号送信手段(信号送信部)
30…タイムスタンプ処理部
31…信号受信手段(信号受信部)
32…復号化手段(時刻取得部)
33a,33b…暗号化時刻ラベル保持手段(暗号化時刻保持部)
34…ローカル時計識別番号確認手段(消去部)
35a…時刻A保持手段
35b…時刻B保持手段
36…タイムスタンプ発行制御手段
37…時刻監査制御手段(時刻監査制御部)
38…署名鍵・証明書保持手段
39…時刻監査証明書保持手段
40…時刻比較手段
41…タイムスタンプ作成手段(タイムスタンプ作成部)
42…署名手段
43…タイムスタンプ時刻確認手段
50…通信手段
51…タイムスタンプ受付/出力手段
52…表示手段(出力部、通知部)
70…時刻監査局システム
80…クライアント端末

【特許請求の範囲】
【請求項1】
時刻を生成する時計部と、前記時計部により生成された時刻を用いてタイムスタンプデータを生成するタイムスタンプ処理部とを備えたタイムスタンプ装置であって、
前記時計部は、
電源と、
前記電源からの電力の供給を受けて一定周期の発振信号を生成する発振部と、
前記発振部により生成された発振信号から時刻を生成する時刻制御部と、
前記時刻制御部へ時刻の設定を一度だけ行い、以降は時刻の設定を禁止する時刻設定部と、
前記時刻制御部によって生成された時刻の情報を含む送信データを一定間隔で出力する信号送信部と
を備え、
前記タイムスタンプ処理部は、
前記信号送信部から一定間隔で出力される送信データを受信する信号受信部と、
前記信号受信部により受信した送信データから時刻の情報を取得する時刻取得部と、
前記時刻取得部により取得された時刻の情報を時刻監査局システムに送信し、送信した時刻の情報に対する時刻監査証明書データを受信して時刻監査証明書保持部に書き込む時刻監査制御部と、
クライアント端末からタイムスタンプ要求を受信し、当該タイムスタンプ要求の受信時に前記時刻取得部により取得された時刻が、前記時刻監査証明書保持部に記憶されている時刻監査証明書データから得られる有効期限内である場合に、当該時刻によってタイムスタンプデータを生成し、前記クライアント端末へ返送するタイムスタンプ作成部と
を備える、
ことを特徴とするタイムスタンプ装置。
【請求項2】
前記時計部及び前記タイムスタンプ処理部は耐タンパ性を有することを特徴とする請求項1に記載のタイムスタンプ装置。
【請求項3】
前記時刻設定部は、時刻設定要求を受信し、前記時計部の備える記憶部に時刻の初期設定を行ったことを示す情報が設定されていない場合に、前記時刻制御部へ時刻の設定を行うとともに、時刻の初期設定を行ったことを示す情報を当該記憶部に書き込む、
ことを特徴とする請求項1または請求項2に記載のタイムスタンプ装置。
【請求項4】
前記タイムスタンプ作成部は、前記時刻監査証明書データをさらに設定したタイムスタンプデータを生成する、
ことを特徴とする請求項1から請求項3のいずれかの項に記載のタイムスタンプ装置。
【請求項5】
前記時刻取得部は、取得した時刻の情報が、過去に取得した時刻より進んだ時刻である場合に、取得した時刻の情報が正しいと判断することを特徴とする請求項1から請求項4のいずれかの項に記載のタイムスタンプ装置。
【請求項6】
前記信号送信部は、暗号化された前記時刻である暗号化時刻の情報を含む送信データを出力し、
前記時刻取得部は、前記送信データに設定されている暗号化時刻の情報を復号化する、
ことを特徴とする請求項1から請求項5のいずれかの項に記載のタイムスタンプ装置。
【請求項7】
前記時計部は、
時刻と、当該時刻の暗号化時刻とを対応付けた情報を保持する暗号化時刻保持部をさらに有し、
前記信号送信部は、前記時刻制御部によって生成された時刻に対応した暗号化時刻の情報を前記暗号化時刻保持部から読み出し、読み出した暗号化時刻の情報を含む送信データを出力する、
ことを特徴とする請求項6に記載のタイムスタンプ装置。
【請求項8】
前記時刻取得部は、前記信号受信部により受信した送信データに設定されている暗号化時刻の情報が、過去に受信した送信データに設定されている暗号化時刻の情報ではない場合に当該送信データが正当であると判断することを特徴とする請求項6または請求項7に記載のタイムスタンプ装置。
【請求項9】
前記時計部と、前記タイムスタンプ処理部とは着脱可能であることを特徴とする請求項1から請求項8のいずれかの項に記載のタイムスタンプ装置。
【請求項10】
前記タイムスタンプ処理部は、前記時計部の交換を検知した場合に、前記時刻監査証明書保持部に記憶されている時刻監査証明書データを消去する消去部をさらに備えることを特徴とする請求項9に記載のタイムスタンプ装置。
【請求項11】
前記タイムスタンプ処理部は、前記時刻監査制御部により受信した時刻監査証明書データに、時刻が著しくずれていることを示す情報が設定されている場合に、エラーを出力する出力部をさらに備えることを特徴とする請求項1から請求項10のいずれかの項に記載のタイムスタンプ装置。
【請求項12】
前記タイムスタンプ処理部は、前記時計部の有効期限まで所定の期間となったときに、有効期限が近いことを通知する通知部をさらに備えることを特徴とする請求項1から請求項11のいずれかの項に記載のタイムスタンプ装置。
【請求項13】
前記クライアント端末にネットワークを介して接続されるコンピュータ装置と、前記時計部、及び、前記タイムスタンプ処理部としてのハードウェアセキュリティモジュールとからなることを特徴とする請求項1から請求項11のいずれかの項に記載のタイムスタンプ装置。
【請求項14】
前記クライアント端末にコネクタにより接続されるハードウェアセキュリティモジュールであることを特徴とする請求項1から請求項12のいずれかの項に記載のタイムスタンプ装置。
【請求項15】
時刻を生成する時計部と、前記時計部により生成された時刻を用いてタイムスタンプデータを生成するタイムスタンプ処理部とを備えたタイムスタンプ装置に用いられるタイムスタンプ方法であって、
前記時計部において、
発振部が、当該時計部が備える電源からの電力の供給を受けて一定間隔の発振信号を生成し、
時刻制御部が、前記発振部により生成された発振信号から時刻を生成し、
時刻設定部が、前記時刻制御部へ時刻の設定を一度だけ行い、以降は時刻の設定を禁止し、
信号送信部が、前記時刻制御部によって生成された時刻の情報を含む送信データを一定間隔で出力する一方、
前記タイムスタンプ処理部において、
信号受信部が、前記信号送信部から一定間隔で出力される送信データを受信し、
時刻取得部が、前記信号受信部により受信した送信データから時刻の情報を取得し、
時刻監査制御部が、前記時刻取得部により取得された時刻の情報を時刻監査局システムに送信し、送信した時刻の情報に対する時刻監査証明書データを受信して時刻監査証明書保持部に書き込み、
タイムスタンプ作成部が、クライアント端末からタイムスタンプ要求を受信し、当該タイムスタンプ要求の受信時に前記時刻取得部により取得された時刻が、前記時刻監査証明書保持部に記憶されている時刻監査証明書データから得られる有効期限内である場合に、当該時刻によってタイムスタンプデータを生成し、前記クライアント端末へ返送する、
ことを特徴とするタイムスタンプ方法。

【図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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2009−187179(P2009−187179A)
【公開日】平成21年8月20日(2009.8.20)
【国際特許分類】
【出願番号】特願2008−25012(P2008−25012)
【出願日】平成20年2月5日(2008.2.5)
【出願人】(000002325)セイコーインスツル株式会社 (3,629)
【Fターム(参考)】