説明

署名鍵の検証方法、電子署名方法、電子署名の検証方法及び情報処理装置

【課題】署名鍵、タイムスタンプ、電子署名に関する処理のログを管理し、各データの正当性を保証する。
【解決手段】鍵管理と業務フロー管理を行い、業務上で付与された電子署名の長期に渡る検証及びログの真正性保証(時刻保証を含む)を行う。電子文書の検証では、通常の署名検証(S1501)に加えて、電子署名を行ったかどうかを検証するログ検証(S1502)、署名時刻を検証するタイムスタンプ検証(S1503)、及びその時に使用された鍵が有効期限内であったかどうかを検証する鍵検証(S1504)を行い、より厳密な真正性の証明を行う。時刻保証では、用途に対応して柔軟にタイムスタンプを作成しながら、かつ第三者機関利用と同等の信頼性を与える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ログ管理技術に関する。特に、信頼性の高いタイムスタンプを効率的に付与し、署名鍵、電子データ、ログ、業務フローなどの時刻証明、正当性証明を行うシステムに関する。
【背景技術】
【0002】
電子政府の一環として、2005年4月にe−文書法が施行され、電子署名やタイムスタンプを付与して真正性を保証することを条件として、紙をスキャニングした電子データを原本と同等なものとしてみなすことができるようになった。また、米国のサーベンス・オクスリー法(SOX法)に倣って、会計監査制度の充実と企業の内部統制強化を求める動きが、日本国内でも高まりつつある中で、企業に対して、日常業務の証拠を記録として残すような内部統制の仕組みが求められている。これらを実現する技術として、ログ管理技術など記録を取る技術、電子署名など改ざんを検知する技術、タイムスタンプなど時刻証明を行う技術が既に存在しているが、今後は、誰が、いつ、どのデータを、どのような手順(フロー)で処理したかを一元的に管理し、比較的長期に渡って保証するようなシステムが望まれる。
【0003】
電子署名の長期検証技術としては、例えば、特許文献1があり、タイムスタンプ付与システムとしては、例えば、特許文献2があり、ログを管理する技術としては、例えば、特許文献3がある。
【特許文献1】特開2005−136482号公報
【特許文献2】特開2005−210479号公報
【特許文献3】特開2006−99348号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
特許文献3などの文書管理システムにおいて、特許文献2の方式によるタイムスタンプを用いて、特許文献1の方式により、鍵の存在期間(署名付与時刻との前後関係)の検証を行うことで、通常の公開鍵証明書の有効期間を超えた長期検証が可能になる。
しかしながら、上記のような仕組みでは、業務管理においては、使用目的として正しい鍵が使われたかどうか、すなわち仮に認証局により保証された一般的に正当な鍵であっても、それが業務上正当な鍵であったかどうかの検証は行うことができない。
【0005】
本発明は、前記問題に鑑み、署名鍵、タイムスタンプ、電子署名に関する処理のログを管理し、各データの正当性を保証する方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
前記課題を解決する本発明は、電子署名に用いられる署名鍵の検証方法であって、情報処理装置が、前記署名鍵が更新された場合に、前記署名鍵を特定する鍵IDと、更新後の新たな署名鍵に付与される前記鍵IDと、前記更新が行われた更新時刻に基づく情報である更新時刻情報とを対応づけて記憶し、検証対象となる電子署名に用いられた署名鍵の鍵IDと、前記電子署名が行われた署名時刻に基づく情報である署名時刻情報とを受け付け、受け付けた前記鍵IDに対応づけて記憶している前記更新時刻情報のうち、最新の更新時刻情報によって特定される前記更新時刻と、受け付けた前記署名時刻情報によって特定される前記署名時刻との時間的な前後関係を比較することを特徴とする。
上記検証方法によれば、電子署名の有効性や不正使用の存在有無を判断することができる。例えば、更新時刻よりも署名時刻の方が前であれば、その電子署名は無効であり、又は、不正使用された可能性があると判断することができる。また、電子署名の検証時における公開鍵の検証に際し、公開鍵証明書の確認や公開鍵が失効しているかどうかの確認等とともに、上記検証方法による署名鍵の検証を行うことで、従来よりも確実に電子署名の検証を行うことが可能となる。
【0007】
また、本発明は、署名鍵の検証方法であって、前記情報処理装置が、タイムスタンプサーバと通信可能に接続し、前記タイムスタンプサーバが、前記情報処理装置からの要求に応じて過去に生成した前記更新時刻情報を時系列順に記憶し、前記タイムスタンプサーバが、直近に生成した前記更新時刻情報と、前記要求とともに前記情報処理装置から送られてくる前記鍵IDと、現在時刻とに基づいて、前記更新時刻情報を生成し、前記タイムスタンプサーバが、生成した前記更新時刻情報を前記情報処理装置に送信することを特徴とする。
上記検証方法によれば、過去に生成した更新時刻情報がタイムスタンプサーバにおいて時系列順に管理され、これにより署名鍵の更新時刻情報に、その生成順序に従った連鎖関係をもたせることができる。従って、タイムスタンプサーバは、現在時刻に頼ることなく署名鍵の更新の時間的な前後関係を保証することが可能となる。そして、この時間的な前後関係を、過去から最新の署名鍵まで辿ることにより、最新の署名鍵の正当性や有効性を保証することができる。
【0008】
また、本発明は、署名鍵の検証方法であって、前記タイムスタンプサーバが、自身が記憶している過去に生成した所定期間分の前記更新時刻情報を、時刻保証業務を行っている第三者機関のサーバに随時送信し、前記タイムスタンプサーバが、前記第三者機関のサーバから、前記第三者機関のサーバが前記送信した過去の前記更新時刻情報に基づいて生成した前記更新時刻情報を受信し、前記タイムスタンプサーバが、受信した前記更新時刻情報を、前記過去の更新時刻情報として記憶することを特徴とする。
上記検証方法によれば、タイムスタンプサーバが管理している連鎖関係を持つ過去の更新時刻情報に、時刻保証業務を行っている第三者機関のサーバによって生成された更新時刻情報が付加される。これにより、タイムスタンプサーバが管理している過去の更新時刻情報と、第三者機関のサーバによって生成された更新時刻情報との前後関係を確認することが可能となり、タイムスタンプサーバが管理している過去の更新時刻情報の正当性を検証又は保証することができる。
【0009】
また、本発明は、電子署名方法であって、情報処理装置が、電子データに対して電子署名を付した場合に、前記電子署名と前記電子署名を付した時刻に基づく情報である署名時刻情報とを対応づけて記憶し、時刻保証業務を行う第三者機関のサーバ又はそれ以外の前記署名時刻情報の取得先が指定されているポリシーデータを記憶し、前記電子署名と前記署名時刻情報とを対応づけて記憶する際、前記ポリシーデータに指定されている前記取得先から前記署名時刻情報を取得して、前記電子署名と取得した前記署名時刻情報とを対応づけて記憶することを特徴とする。
上記電子署名方法によれば、電子署名のログ情報を記憶している情報処理装置に、上記ログ情報に含ませる署名時刻情報の取得先を指定することができる。従って、高い信頼性が要求される場合には取得先として時刻保証業務を行う第三者機関のサーバを指定し、通信効率が求められる場合は通信効率の良い取得先を指定するなど、ユーザニーズに応じて適切に署名時刻情報の取得先を設定することが可能となる。
【0010】
また、本発明は、電子署名の検証方法であって、情報処理装置が、電子データに対して電子署名を付した場合に、前記電子署名と、前記電子署名に用いた署名鍵の鍵IDと、前記署名鍵とを対応づけて記憶し、検証対象となる電子署名と、当該電子署名に用いた署名鍵の鍵IDに対応づけて記憶している署名鍵を用いて生成した電子署名とを比較し、かつ、前記検証対象の電子署名と、記憶している電子署名とを比較することにより電子署名の検証を行うことを特徴とする。
上記検証方法によれば、検証対象となる電子署名と、当該電子署名に用いた署名鍵の鍵IDに対応づけて記憶している署名鍵を用いて生成した電子署名とを比較するという電子署名の検証方法に加えて、検証対象となる電子署名と、電子データに対して電子署名を付した場合にログ情報として記憶している電子署名とを比較するので、電子署名の検証精度を高めることができる。
【0011】
また、本発明は、電子署名の検証方法であって、前記情報処理装置が、タイムスタンプサーバと通信可能に接続し、前記情報処理装置が、前記電子署名を付した時刻に基づく情報である署名時刻情報を前記タイムスタンプサーバに要求し、前記タイムスタンプサーバが、前記要求に応じて生成した前記署名時刻情報を前記情報処理装置に送信し、前記タイムスタンプサーバが、前記要求に応じて過去に生成した前記署名時刻情報を時系列順に記憶し、前記タイムスタンプサーバが、自身が記憶している過去に生成した所定期間分の前記署名時刻情報を、時刻保証業務を行う第三者機関のサーバに随時送信し、前記タイムスタンプサーバが、前記第三者機関のサーバから、前記送信した過去の前記署名時刻情報に基づいて前記第三者機関のサーバが生成した前記署名時刻情報を受信し、前記情報処理装置が、前記タイムスタンプサーバに、検証対象の前記電子署名についての前記署名時刻情報を含む所定期間分の前記署名時刻情報と、前記所定期間分の前記署名時刻情報に時間的に前後に位置する、前記タイムスタンプサーバが前記第三者機関のサーバから受信した2つの前記署名時刻情報とを要求し、前記タイムスタンプサーバが、前記所定期間分の前記署名時刻情報と、自身が前記第三者機関のサーバから受信した2つの前記署名時刻情報とを送信し、前記情報処理装置が、前記所定期間分の署名時刻情報と、前記タイムスタンプサーバが前記第三者機関のサーバから受信した2つの前記署名時刻情報とを受信し、前記情報処理装置が、前記所定期間分の各前記署名時刻情報及び当該各前記署名時刻情報に時間的に後に位置する前記第三者機関のサーバから受信した前記署名時刻情報のそれぞれについて、それぞれの時間的に直前に位置する前記署名時刻情報に基づいて署名時刻情報を生成し、生成した前記署名時刻情報の時間的な前後関係を比較することを特徴とする。
上記検証方法によれば、検証対象となる電子署名と、当該電子署名に用いた署名鍵の鍵IDに対応づけて記憶している署名鍵を用いて生成した電子署名とを比較するという電子署名の検証方法と、検証対象となる電子署名と、電子データに対して電子署名を付した場合にログ情報として記憶している電子署名とを比較するという前述の検証方法に加えて、所定期間分の各署名時刻情報及び当該各署名時刻情報に時間的に後に位置する第三者機関のサーバから受信した署名時刻情報のそれぞれについて、それぞれの時間的に直前に位置する署名時刻情報に基づいて署名時刻情報を生成し、生成した前記署名時刻情報の時間的な前後関係を比較して、所定期間分の署名時刻情報及びその前後に位置する署名時刻情報の連鎖関係の検証も行う。このため、電子署名の検証精度をさらに高めることができる。
【0012】
また、本発明は、電子署名の検証方法であって、情報処理装置が、電子署名の対象となる電子データに業務フローが含まれており、かつ、前記電子データに対して既に前記業務フローに関する電子署名が付されている場合には、受け付けた前記電子データ及び当該電子データに付されている前記電子署名を含むデータの全体に対して電子署名を新たに付し、前記電子データについての前記電子署名の検証に際し、前記電子データに付されている前記複数の電子署名のそれぞれについて、前記電子署名と、前記電子署名よりも前に付されている電子署名及び前記電子データの全体に基づいて生成した電子署名とを比較することを特徴とする。
上記検証方法によれば、業務フローを含む電子データについて、業務フローに従って正しく電子署名が付されているかどうかを検証することができる。
【0013】
また、本発明は、情報処理装置であって、電子署名に用いられる署名鍵が更新された場合に、前記署名鍵を特定する鍵IDと、更新後の新たな署名鍵に付与される前記鍵IDと、前記更新が行われた更新時刻に基づく情報である更新時刻情報とを対応づけて記憶する手段と、検証対象となる電子署名に用いられた署名鍵の鍵ID及び前記電子署名が行われた署名時刻に基づく情報である署名時刻情報を受け付ける手段と、受け付けた前記鍵IDに対応づけて記憶している前記更新時刻のうち最新の更新時刻と前記署名時刻との時間的な前後関係を比較する手段とを備えることを特徴とする。
上記情報処理装置によれば、電子署名の有効性や不正使用の存在有無を判断することができる。例えば、更新時刻よりも署名時刻の方が前であれば、その電子署名は無効であり、又は、不正使用された可能性があると判断することができる。
また電子署名の検証時における公開鍵の検証に際し、公開鍵証明書の確認や公開鍵が失効しているかどうかの確認等とともに、上記検証方法による署名鍵の検証を行うことで、従来よりも確実に電子署名の検証を行うことが可能となる。
【0014】
また、本発明は、情報処理装置であって、電子データに対して電子署名を付した場合に、前記電子署名と前記電子署名を付した時刻に基づく情報である署名時刻情報とを対応づけて記憶する手段と、時刻保証業務を行う第三者機関のサーバ又はそれ以外の前記署名時刻情報の取得先が指定されているポリシーデータを記憶する手段と、前記電子署名と前記電子署名を付した時刻に基づく情報である署名時刻情報とを対応づけて記憶する際、前記ポリシーデータに指定されている前記取得先から前記署名時刻情報を取得して、前記電子署名と取得した前記署名時刻情報とを対応づけて記憶する手段とを備えることを特徴とする。
上記情報処理装置によれば、電子署名のログ情報を記憶している情報処理装置に、上記ログ情報に含ませる署名時刻情報の取得先を指定することができる。従って、高い信頼性が要求される場合には取得先として時刻保証業務を行う第三者機関のサーバを指定し、通信効率が求められる場合は通信効率の良い取得先を指定するなど、ユーザニーズに応じて適切に署名時刻情報の取得先を設定することが可能となる。
【0015】
また、本発明は、情報処理装置であって、電子データに対して電子署名を付した場合に、前記電子署名と、前記電子署名に用いた署名鍵の鍵IDと、前記署名鍵とを対応づけて記憶する手段と、検証対象となる電子署名と、当該電子署名に用いた署名鍵の鍵IDに対応づけて記憶している署名鍵を用いて生成した電子署名とを比較し、かつ、前記検証対象の電子署名と、記憶している電子署名とを比較することにより電子署名の検証を行う手段と備えることを特徴とする。
上記情報処理装置によれば、検証対象となる電子署名と、当該電子署名に用いた署名鍵の鍵IDに対応づけて記憶している署名鍵を用いて生成した電子署名とを比較するという電子署名の検証方法に加えて、検証対象となる電子署名と、電子データに対して電子署名を付した場合にログ情報として記憶している電子署名とを比較するので、電子署名の検証精度を高めることができる。
【発明の効果】
【0016】
本発明によれば、署名鍵、タイムスタンプ、電子署名に関する処理のログを管理し、各データの正当性を保証することができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【0018】
≪業務管理システムの構成≫
図1は、本発明を適用した一実施形態における業務管理システムの概略図である。本実施形態では、企業内の業務を記録、管理するシステムに本発明を適用した場合について述べる。
【0019】
図示するように、本実施形態での業務管理システム1は、企業内の業務内容、及び生成された電子文書を管理するために、電子文書に付与された電子署名の長期に渡る検証及びログ(業務のトレース)の真正性保証(時刻保証を含む)を行うシステムであり、時刻情報を含めた電子署名であるタイムスタンプの生成、管理を行うタイムスタンプサーバ101と、署名生成などに利用する鍵の管理、電子署名の生成・検証、タイムスタンプの取得・検証、業務ログの管理を行う情報処理装置である業務管理サーバ102と、正確な時刻のタイムスタンプを付与する(例えば、(財)日本データ通信協会により認定された)第三者機関のサーバ(又は、第三者機関の処理を代行するサーバ)であるタイムスタンプ局103と、正確な時刻を配信する第三者機関のサーバである時刻配信局104と、電子文書の生成、承認などの業務を行うユーザ側装置105〜107とを含んで構成される。
【0020】
ユーザ側装置は、ユーザ側装置105〜107に限定されることなく、業務を行うユーザ数分が存在する。タイムスタンプサーバ101や業務管理サーバ102は、ユーザ側装置105〜107と同一の組織内に存在してもよいし、管理専用の外部組織として存在してもよい。本実施形態では、タイムスタンプサーバ101、業務管理サーバ102、タイムスタンプ局103、時刻配信局104、ユーザ側装置105〜107は、ネットワーク108を介して繋がっている。なお、業務管理サーバ102は、外部ネットワークに接続されることなく、内部ネットワークによりユーザ側装置105〜107と繋がっていてもよい(情報漏洩防止の観点から見れば、こちらの方が望ましい)。
【0021】
≪タイムスタンプサーバの構成≫
図2に、タイムスタンプサーバ101の内部構成を示す。タイムスタンプサーバ101は、CPU(Central Processing Unit)201と、記憶装置202と、ネットワーク108を介して他の装置と通信を行うための通信装置204と、キーボードやマウスなどの入力装置205と、ディスプレイなどの表示装置206と、時刻情報を保持する時計装置207と、これらを接続するインタフェース203とから構成される。
【0022】
記憶装置202には、業務管理サーバ102又はユーザ側装置105〜107から送られて来たハッシュ値(又は電子データ)に対して、時刻情報及び前回生成したタイムスタンプデータのハッシュ値を含めて電子署名を生成することで、前回生成したタイムスタンプデータと連鎖構造を持つタイムスタンプデータを生成するタイムスタンプ生成プログラム208と、時刻配信局104から正確な時刻を取得し、時計装置207の持つ時刻の正確性を維持する時刻合わせプログラム209と、自身の持つログの一部をタイムスタンプ局103に送信して、第三者機関のタイムスタンプを取得するタイムスタンプ取得プログラム210と、タイムスタンプ生成や、タイムスタンプ局103からのタイムスタンプ取得などに関するログを蓄積、管理するログ管理プログラム211と、タイムスタンプ生成や、タイムスタンプ局103からのタイムスタンプ取得などに関するログが記録されたタイムスタンプサーバログ(更新時刻情報)212と、タイムスタンプ局103から取得したタイムスタンプを格納するタイムスタンプ格納領域213と、タイムスタンプデータの生成時に、電子署名の生成に使用するタイムスタンプサーバの秘密鍵214と、秘密鍵214とペアであり、電子署名の検証に使用する公開鍵215とが格納されている。
【0023】
以下の説明における各プログラム208〜211の処理は、インタフェース203を介して呼び出された各プログラムをCPU201が実行することにより、タイムスタンプサーバ101上で実現されるものである。各プログラムは、予め記憶装置202に格納されていてもよいし、タイムスタンプサーバ101が利用可能な媒体を介して導入されてもよい。媒体とは、例えば、タイムスタンプサーバ101に着脱可能な記憶媒体や、通信装置204に接続するネットワーク又はネットワークを伝搬する搬送波といった通信媒体を含む。
【0024】
≪業務管理サーバの構成≫
図3に、業務管理サーバ102の内部構成を示す。業務管理サーバ102は、前述のタイムスタンプサーバ101と同様の構成からなる(301〜306)。
【0025】
記憶装置302には、各ユーザに対する鍵(秘密鍵、公開鍵)を登録、管理する鍵管理プログラム307と、電子文書に対して、業務管理サーバ102の管理するユーザの秘密鍵を用いて署名を生成し、また、タイムスタンプサーバ101からタイムスタンプの取得を行う業務管理プログラム308と、業務管理プログラム308で処理した内容についてログを生成・管理する業務ログ管理プログラム309と、鍵に関する情報が登録された鍵管理データベース310と、業務ログ管理プログラム309により生成されたログが記録された業務管理サーバログ311と、業務などで扱う電子文書に対して規定される業務フローが記録された業務フロー管理ファイル312と、監査対象とすべき電子文書の識別番号が記録された監査用ファイル313と、業務などで扱う電子文書に対して、業務フローあるいは処理すべき内容についての規定が記載されている業務ポリシーファイル314と、取得したタイムスタンプを格納するタイムスタンプ格納領域315、電子署名の生成に使用する秘密鍵316、電子署名の検証に使用する公開鍵317、ユーザの鍵を格納する鍵格納領域318が格納されている。
【0026】
ここで、業務フローとは、1つのまとまった業務を構成する各処理や処理を行うべき者を処理単位として記述し、記述された複数の処理単位の間を業務の流れに合うようにポインタで結合したものである。例えば、流れ作業を構成する各工程が規定された工程フローや、担当者が作成した電子文書を上長や上位上長が承認する承認フローなどがある。
【0027】
以下の説明における各プログラム307〜309の処理は、業務管理サーバ102上で実現されるものである。各プログラムの実行及び格納方法については、前述のタイムスタンプサーバ101と同様である。
【0028】
≪ユーザ側装置の構成≫
図4に、ユーザ側装置105〜107の内部構成を示す。ユーザ側装置105〜107は、前述のタイムスタンプサーバ101と同様の構成からなる(401〜406)。
【0029】
記憶装置402には、電子署名や暗号化に利用する鍵を生成し、又は、業務管理サーバ102に鍵の生成を要求し、業務管理サーバ102に鍵を登録する鍵生成・登録プログラム407と、電子文書などの電子データを生成する電子文書生成プログラム408と、電子署名やタイムスタンプが付与された電子文書などの電子データの真正性を検証、又は、業務管理サーバ102に電子データの真正性の検証を要求する電子文書検証プログラム409と、生成した電子文書などの電子データ、付与された署名、タイムスタンプを格納する電子文書格納領域410と、電子署名の生成や暗号化・復号化に利用するユーザの秘密鍵411、公開鍵412とが格納されている。
【0030】
以下の説明における各プログラム407〜409の処理は、ユーザ側装置105〜107上で実現されるものである。各プログラムの実行及び格納方法については、前述のタイムスタンプサーバ101と同様である。
【0031】
≪鍵管理方法≫
図5に、本実施形態における鍵管理方法について、タイムスタンプサーバ101と、業務管理サーバ102と、ユーザ側装置105、106との間でやり取りされるデータフローの例を示す。
【0032】
ユーザ側装置105は、電子署名の生成などを行う際に必要な鍵を、業務管理サーバ102に登録する。登録にあたっては、鍵をユーザ自身で生成する場合と、業務管理サーバ102に鍵の生成を依頼する場合がある。鍵をユーザ自身で生成する場合には、ユーザ側装置105で生成した秘密鍵、公開鍵のペアについて、公開鍵と、公開鍵証明書など公開鍵に関連する情報とを含む鍵情報502を、業務管理サーバ102に送信する。業務管理サーバ102に鍵の生成を依頼する場合には、生成する鍵のサイズや、使用するアルゴリズムなど鍵の生成に必要な情報を含む鍵情報502を、業務管理サーバ102に送信する。本実施形態では、ユーザ側装置105から業務管理サーバ102に鍵の生成を依頼する場合、すなわち業務管理サーバ102において鍵の生成・登録を行う場合について述べる。なお、このとき、ユーザに関する情報を含む属性証明書501を、業務管理サーバ102に送信して、鍵情報502とともに業務管理サーバ102に登録してもよい。
【0033】
鍵情報502を受け取った業務管理サーバ102は、鍵情報502で指定された鍵サイズ、アルゴリズムに基づいて、公開鍵暗号方式により秘密鍵、公開鍵のペアを生成する。ただし、鍵情報502により、共通鍵の生成を依頼された場合は、共通鍵暗号方式により共通鍵を生成する。本実施形態では、公開鍵暗号方式により秘密鍵、公開鍵のペアを生成する場合について説明する。次に、生成した鍵に関する情報を基にログを生成し、業務管理サーバログ311に記録する。また、生成したログのハッシュ値を算出し、算出したハッシュ値及び生成した鍵を含むタイムスタンプ要求503を、タイムスタンプサーバ101に送信する。
【0034】
タイムスタンプ要求503を受信したタイムスタンプサーバ101は、タイムスタンプ要求503に含まれるハッシュ値に対して、受信した鍵を用いてタイムスタンプを生成し、生成したタイムスタンプを含むタイムスタンプデータ504を業務管理サーバ102に送信する。
【0035】
タイムスタンプデータ504を受け取った業務管理サーバ102は、生成した鍵とともにタイムスタンプデータ504を、鍵管理データベース310に登録する。次に、登録が完了した旨を示す登録完了通知505を、ユーザ側装置105に送信する。ユーザ側装置105から登録内容の閲覧要求があった場合には、業務管理サーバ102は、公開鍵やタイムスタンプデータなど登録内容が含まれる閲覧データ506を、ユーザ側装置105に送信する。また、登録したユーザ以外のユーザ、例えば、ユーザ側装置106が、ユーザ側装置105のユーザの電子署名を検証する場合に、検証に必要なユーザ側装置105の公開鍵を業務管理サーバ102に要求したときには、業務管理サーバ102は、検証に必要な公開鍵を含む検証用鍵情報507を、ユーザ側装置106に送信する。
【0036】
≪鍵生成・登録処理≫
図6に、ユーザ側装置105〜107が、業務管理サーバ102に鍵の生成・登録の要求を行って、業務管理サーバ102から登録完了通知505を受け取るまでの鍵生成・登録処理のフローチャートを示す。ユーザ側装置105〜107は、鍵生成・登録処理を行い、電子署名の生成(業務で生成する電子データに自身の電子署名を付与するため)に必要な鍵を、1つ又は用途に合わせて複数個、業務管理サーバ102に登録する。
【0037】
ユーザ側装置105〜107は、鍵生成・登録プログラム407により、S601の処理を行う。具体的には、生成する鍵のサイズ(例えば、1024bit)や、使用するアルゴリズム(例えば、RSA(Rivest Shamir Adleman)暗号方式)など鍵の生成に必要な情報を含む鍵情報502を生成し、業務管理サーバ102に送信することにより、鍵の生成・登録要求を行う。また、このとき、ユーザに関する情報を含む属性証明書501を、鍵情報502とともに業務管理サーバ102に送信してもよい。
【0038】
業務管理サーバ102は、鍵管理プログラム307により、S602〜S606、S608〜S609の処理を行う。まず、前半部分のS602〜S606について説明する。
【0039】
S602では、まずユーザ側装置105から、鍵情報502を含む鍵の生成・登録要求を受信する。受信にあたっては、認証の後に行うことが望ましい。例えば、ユーザ側装置105を介して、ユーザにID、パスワード(予め、ユーザ登録して設定しておく)を要求し、業務管理サーバ102にログオンさせてから鍵情報502を受け取る、又は、鍵情報502とともに、ユーザを証明するデータ(予めIC(Integrated Circuit)カードなどにより各ユーザに個別に与えられた秘密データなど)を受信し、秘密データがどのユーザのものであるかを確かめた上で、鍵情報502を受け取る。
【0040】
S603では、鍵情報502に記載された鍵サイズ及びアルゴリズムに従って、鍵の生成(例えば、RSA暗号方式における秘密鍵、公開鍵の生成)を行う。生成した秘密鍵、公開鍵の鍵ペアに対して、識別番号(以降、鍵IDと呼ぶ)を生成する。鍵ID生成にあたっては、鍵の生成・登録を要求したユーザ(ユーザ名、ユーザIDなどにより識別)と、鍵IDとを合わせたものが、固有であるように生成する(例えば、ユーザID=0001において、鍵ID=001の鍵ペアは複数存在しない)。また、業務管理サーバ102の業務ポリシーファイル314を参照して、鍵の有効期限を定めてもよい(例えば、生成日から2年間有効など)。
【0041】
S604では、S603で生成した鍵及び生成した鍵に関する情報を、鍵管理データベース310に登録する。鍵管理データベース310は、図9に示すように、鍵の所有者を示す「ユーザID」(906)、S603で生成した「鍵ID」(907)、利用用途(例えば、承認印、職印など)を示す「用途」(908)、鍵サイズやアルゴリズムを表す「バージョン」(909)、鍵の有効期限を示す「有効期限」(910)、公開鍵の正当性を証明する「証明書」(911)からなる。ここで、「証明書」(911)は、生成した公開鍵が、誰のものであるかを示すものであり、公開鍵データ、ユーザIDなどのユーザを特定する情報(又は、属性証明書501)、及びそれらに対して生成した業務管理サーバ102の電子署名などからなる。なお、証明書は認証局が発行したものでもよく、その場合は、認証局に対し、通常一般的に行われる証明書の取得手続きを行い、認証局の電子署名を含む証明書を取得し、「証明書」(911)に登録する。「証明書」を生成又は取得するかどうかは、業務管理サーバ102の業務ポリシーファイル314を参照して、ポリシーに従って決定してもよい。また、S603で生成した鍵は、鍵格納領域318に格納し、格納した鍵は、生成したユーザID、鍵IDで検索、取得できるようにしておく。
【0042】
S605では、今回の鍵生成処理に関する業務ログを生成し、業務管理サーバログ311に登録する。業務管理サーバログ311は、図11に示すように、業務ログのレコード1101〜1106からなり、業務ログの各レコードは、処理を識別するための番号であり、ログ生成の度に連番で付与される「処理ID」(1107)、業務内容(例えば、鍵生成)を表す「業務ID」(1108)、電子文書に対する処理である場合に、処理対象となった電子文書に付与された識別番号を表す「文書ID」(1109)、今回の処理が誰に関連する業務か(例えば、ユーザID=0001のユーザの鍵を生成)を示す「ユーザID」(1110)、鍵を生成した場合に、S603で生成した「鍵ID」(1111)、鍵更新、又は業務フローを持つ電子文書について、関連する処理IDを示す「関連ID」(1112)、今回の処理で生成された電子署名(例えば、S604で証明書を生成する際に、業務管理サーバ102が生成した電子署名)が入る「署名値(電子署名)」(1113)、後述するS608で取得したタイムスタンプデータ504に含まれるログIDを格納する「タイムスタンプ」(1114)からなる。ここで、「関連ID」(1112)は、例えば、今回の処理が、ユーザID=0001のユーザの鍵ID=002の鍵を生成する処理であり、前回鍵生成、又は鍵更新した際の業務ログの「処理ID」(1107)が処理ID=0001(ユーザID=0001のユーザの鍵ID=001の鍵を生成した際の業務ログ)であった場合、今回の処理に該当する業務ログの項目「関連ID」(1112)には、「0001」が入る。
【0043】
S606では、タイムスタンプ要求503を生成し、タイムスタンプサーバ101に送信する。タイムスタンプ要求503には、タイムスタンプ生成対象データのハッシュ値が含まれる。タイムスタンプ生成対象データは、S603で生成した公開鍵、S604で鍵管理データベース310に登録したデータ「ユーザID」(906)、「鍵ID」(907)、「用途」(908)、「バージョン」(909)、「有効期限」(910)、「証明書」(911)、及び、S605で業務管理サーバログ311に登録したデータのうち、「処理ID」(1107)、「業務ID」(1108)、「文書ID」(1109)、「ユーザID」(1110)、「鍵ID」(1111)、「関連ID」(1112)、「署名値」(1113)からなる。このとき、業務管理サーバ102は、業務ポリシーファイル314を参照し、鍵生成処理に対するポリシーを確認する。鍵生成処理の重要度に応じて、例えば、鍵生成時刻の保証をより厳密に行うべきである場合には、タイムスタンプ要求503を、タイムスタンプサーバ101ではなくタイムスタンプ局103に送信して、タイムスタンプ局103の生成するタイムスタンプデータ504を取得する。
【0044】
業務管理サーバ102からタイムスタンプ要求503を受け取ったタイムスタンプサーバ101は、タイムスタンプ生成プログラム208により、S607の処理を行う。本実施形態では、第三者機関のタイムスタンプと同等の信頼性を維持しながら、タイムスタンプ付与にかかるコストを軽減するタイムスタンプサーバ101の仕組みについて示す。図7に、この場合のS607の処理内容の詳細のフローチャートを示す。
【0045】
S701では、まず、今回のタイムスタンプ生成の処理番号(以降、ログIDと呼ぶ)を生成する。ログIDの生成にあたっては、例えば、前回のタイムスタンプ生成時に生成したログIDと連番になるようにする。ここでは、ログID「2」が生成されたとする。次に、業務管理サーバ102から受け取ったタイムスタンプ要求503から、タイムスタンプ生成対象データのハッシュ値「H(D)」を取得する。ここで、「D」は、ログID「2」におけるタイムスタンプ生成対象データを表す。
【0046】
S702では、前回のタイムスタンプ生成時に生成したログを取得し、取得したログのハッシュ値を算出する。具体的には、例えば、今回のタイムスタンプ生成について、S701で生成したログIDが「2」であった場合、「2」の1つ前のログID「1」のレコード1002(図10参照)を、タイムスタンプサーバログ212から取得し、ハッシュ値「H(S)」を取得する。ここで、「S」は、ログID「1」のレコード1002のデータを表す。タイムスタンプサーバログ212の各レコードの構成については、後述(S706)にて説明する。
【0047】
S703では、タイムスタンプサーバ101に内蔵されている時計装置207から、時刻情報「T」を取得する。ここで、時計装置207は、タイムスタンプサーバ101の時刻合わせプログラム209により正確な時刻が設定されていることが望ましい。正確な時刻とは、時刻配信局104などの信頼できる第三者機関によって配信される時刻である。時刻合わせプログラム209は、時刻配信局104と通信を行い、時計装置207が正確な時刻を維持できるようにする。ここで、「T」は、ログID「2」における時刻情報を表す。
【0048】
S704では、S701で取得したタイムスタンプ生成対象データのハッシュ値(ここでは、「H(D)」)と、S702で取得した前回のタイムスタンプ生成時に生成したログのハッシュ値(ここでは、「H(S)」)と、S703で取得した時刻情報(ここでは、「T」)とを入力とし、ハッシュ関数H(・)又は結合‖を任意に組み合わせた処理を行い、電子署名対象データを生成する。本実施形態では、例えば、ハッシュ値「H(H(D)‖H(S)‖T)」を算出する。次に、算出したハッシュ値に対して、公開鍵暗号方式により、タイムスタンプサーバ秘密鍵214を用いて、電子署名「Sign(H(H(D)‖H(S)‖T))」を生成する。上記のように電子署名対象データに前回のログのハッシュ値「H(S)」を含めることにより、ログID「1」のログと、ログID「2」のログとの間に連鎖関係を構築することができる。
【0049】
S705では、S704で生成した電子署名及び電子署名生成の対象となったデータとからなるタイムスタンプデータ504を生成する。タイムスタンプデータ504は、S701で生成したログID(ここでは、「2」)、タイムスタンプ要求503から取得したタイムスタンプ生成対象データのハッシュ値「H(D)」、S703で取得した時刻情報「T」、S704で生成した電子署名「Sign(H(H(D)‖H(S)‖T))」からなる。
【0050】
S706では、今回のタイムスタンプ生成に関するログを生成し、タイムスタンプサーバログ212に登録する。図10に、タイムスタンプサーバログ212の構成を示す。タイムスタンプサーバ101においてタイムスタンプ生成が行われるたびに、生成に関するレコードが、タイムスタンプサーバログ212に追加される。各レコードは、ログID1007、種別1008、前回ログのハッシュ値1009、時刻情報1010、署名値(更新時刻情報)1011からなる。本実施形態の場合、ログID1007は、S701で生成したログID「2」である。種別1008は、タイムスタンプを生成したときのログか、タイムスタンプ局103からタイムスタンプを取得したときのログかを表すデータが入る。本実施形態の場合、タイムスタンプを生成したときのログを表す「生成」が種別1008に入る。前回ログのハッシュ値1009は、S702で取得したハッシュ値「H(S)」であり、時刻情報1010は、S703で取得した時刻情報「T」であり、署名値1011は、S704で生成した署名値「Sign(H(H(D)‖H(S)‖T))」が入る。
S707では、S705で生成したタイムスタンプデータ504を、業務管理サーバ102に送信する。
【0051】
タイムスタンプサーバ101は、第三者機関のタイムスタンプと同等の信頼性を維持するために、タイムスタンプ取得プログラム210により、定期的(例えば、1日に1回)にタイムスタンプ局103からタイムスタンプの取得を行う。図8に、タイムスタンプ取得プログラム210による処理の詳細のフローチャートを示す。
【0052】
S801では、タイムスタンプサーバ101は、タイムスタンプ局103にタイムスタンプを要求するために、タイムスタンプ付与の対象となるデータの取得を行う。具体的には、タイムスタンプサーバログ212について、例えば、現時点で最新のレコードがログID「9」のレコード1004であった場合、それから遡って前回タイムスタンプ局103からタイムスタンプを取得した際に生成したログ、すなわち種別1008がタイムスタンプ局103からタイムスタンプを取得したことを示す「取得」であるログID「1」のレコード1002を検出し、ログID「1」からログID「9」までのレコード全て(「S‖S‖・・・‖S」)を取得する。
【0053】
S802では、タイムスタンプサーバログ212から、前回のタイムスタンプ生成のときに生成したログを取得し、取得したログのハッシュ値を算出する。具体的には、例えば、本実施形態の場合、現時点で最新のレコード(前回生成したログ)が、ログID「9」であるので、ログID「9」のレコード1004(図10参照)を、タイムスタンプサーバログ212から取得し、ハッシュ値「H(S)」を取得する。
S803では、S801で取得したデータ「S‖S‖・・・‖S」、及びS802で取得したデータ「H(S)」を合わせたもののハッシュ値「H((S‖S‖・・・‖S)‖H(S))」を算出する。
S804では、S803で生成した「H((S‖S‖・・・‖S)‖H(S))」を含むタイムスタンプ要求をタイムスタンプ局104に送信する。
【0054】
タイムスタンプ局104は、タイムスタンプを生成する第三者機関であり、タイムスタンプ生成方式には、様々なものがあるが、一般的に、「時刻情報」「署名値」を含むタイムスタンプデータをタイムスタンプ要求元に返す。本実施形態では、「時刻情報」は、タイムスタンプ局が要求を受け取った時刻(ここでは、「TS10」とする)であり、その時刻は正確であるとし、「署名値」は、タイムスタンプサーバ101が、S804で送信したデータ「H((S‖S‖・・・‖S)‖H(S))」と、前記「時刻情報(TS10)」とを合わせたものに対するタイムスタンプ局104の電子署名「Sign_T(H((S|S|・・・|S)|H(S))|TS10)」とする。
【0055】
S805では、タイムスタンプ局104から受け取ったタイムスタンプデータから、「時刻情報(TS10)」、署名値「Sign_T(H((S‖S‖・・・‖S)|H(S))‖TS10)」を取得する。
【0056】
S806では、今回のタイムスタンプ取得に関するログを生成し、タイムスタンプサーバログ212に登録する。本実施形態の場合のログの内容を、図10のレコード1005に示す。ログID1007には、前回のログID「9」からの連番となるログID「10」が入り、種別1008には、タイムスタンプ局104からタイムスタンプを取得した時のログを表す「取得」が入り、前回ログのハッシュ値1009には、S802で取得したハッシュ値「H(S)」が入り、時刻情報1010は、S805で取得した時刻情報「TS10」が入り、署名値1011は、S805で取得した署名値「Sign_T(H((S‖S‖・・・‖S)‖H(S))‖TS10)」が入る。
【0057】
以上により、タイムスタンプサーバログ212において、ログID「1」〜ログID「9」までのログ内容については、S805でタイムスタンプ局104から受け取ったタイムスタンプデータから、「TS10」より以前に存在していたことがタイムスタンプ局104により保証される。また、ログID「1」については、タイムスタンプ局104により、タイムスタンプ取得を行った際のログであるので、ログID「1」のレコード1002に含まれる署名値「Sign_T(H((S)‖H(S))‖TS)」を検証することにより、ログID「1」のレコード1002が、「TS」より以降に生成されたことがタイムスタンプ局104により保証される。
【0058】
また、ログID「1」からログID「10」までのログの間には、ハッシュ値による連鎖構造が構築されている(1つ前のログのハッシュ値が、次のログの署名値に反映されている)ので、この連鎖が途切れていなければ、ログID「2」〜ログID「9」のログ内容、すなわち、タイムスタンプサーバ102で生成したタイムスタンプのうちログID「2」〜ログID「9」に記録されたタイムスタンプ(署名値1011)の順序関係、及び、少なくとも「TS」以降、「TS10」までの間に生成されたことが、タイムスタンプ局104による保証と同程度に保証される。業務管理サーバログ311に含まれていても連鎖に含まれていないログは、正規の処理を経て生成されたログではないので、不正なログとみなすことができる。
【0059】
ここで、話を戻し、図6の鍵生成・登録処理のフローチャートについて、残りの処理を説明する。
【0060】
業務管理サーバ102の鍵管理プログラム307における、後半部分のS608〜S609について説明する。
S608では、タイムスタンプサーバ101(又は、S606でタイムスタンプ局103にタイムスタンプを要求した場合は、タイムスタンプ局103)から、タイムスタンプデータ504を受信する。受信したタイムスタンプデータ504に含まれるログID(ここでは、「2」)を、S605で生成した業務ログの項目「タイムスタンプ」(1114)に記録し、タイムスタンプデータ504を、タイムスタンプ格納領域315に格納する。業務管理サーバログ311に含まれる各業務ログ(レコード1101〜1106)の項目「タイムスタンプ」(1114)に記録されたログIDを参照することによって、タイムスタンプ格納領域315から、業務ログごとにそれぞれ対応したタイムスタンプデータ504を検索することができる。また、仮に、タイムスタンプ局103から取得したタイムスタンプデータ504に、上記ログIDに該当するような識別番号が存在しない場合は、ファイル名など識別可能なデータを、ログIDの代わりに項目「タイムスタンプ」(1114)に記録してもよい。
【0061】
S609では、登録完了通知505を生成し、鍵情報送信元(S602で受け取った鍵情報502の送信元)のユーザ側装置105〜107に送信する。ここで、登録完了通知505には、例えば、S606で生成したタイムスタンプ生成対象データ(S603で生成した公開鍵、S604で鍵管理データベース310に登録した「ユーザID」(906)、「鍵ID」(907)、「用途」(908)、「バージョン」(909)、「有効期限」(910)、「証明書」(911)、及び、S605で業務管理サーバログ311に登録したデータのうち、「処理ID」(1107)、「業務ID」(1108)、「文書ID」(1109)、「ユーザID」(1110)、「鍵ID」(1111)、「関連ID」(1112)、「署名値」(1113))、及びS608で受信したタイムスタンプデータ504を記載する。
【0062】
ユーザ側装置105〜107は、鍵生成・登録プログラム407により、S610の処理を行い、業務管理サーバ102から登録完了通知505を受信する。ユーザ側装置105〜107は、登録完了通知505に含まれる「証明書」(911)中の業務管理サーバ102の電子署名を、業務管理サーバ102の公開鍵317で検証することにより、登録完了通知505に含まれる自身の公開鍵が、業務管理サーバ102で生成・登録されたことを検証することができる。証明書が認証局により発行されたものである場合は、認証局の公開鍵を用いて、一般的に行われる証明書の検証手続きにより検証を行う。また、登録完了通知505に含まれるタイムスタンプデータ504中のタイムスタンプサーバ101の電子署名を、タイムスタンプサーバ101の公開鍵215で検証することにより、登録完了通知505に含まれる自身の公開鍵が、業務管理サーバ102でいつ生成されたかを検証することができる。
【0063】
業務管理サーバ102は、ユーザ側装置105〜107から登録内容の閲覧要求や、電子署名検証のための公開鍵要求があった場合には、閲覧データ506、検証用鍵情報507を送信する。ここで、閲覧データ506、検証用鍵情報507に含める情報としては、例えば、登録完了通知505と同様の構成にする。
【0064】
≪鍵更新処理≫
図12のS1202〜S1206、S1208〜S1209に、業務管理サーバ102の鍵管理プログラム307における鍵更新処理のフローチャートを示す。鍵更新処理を行うタイミングとしては、ユーザ側装置105〜107が業務管理サーバ102に鍵更新要求を行う場合と、業務管理サーバ102が鍵更新の必要性を判断した場合(例えば、鍵が漏洩した恐れ、暗号アルゴリズムの危殆化、有効期限910の期限切れなど)がある。なお、鍵を更新せず削除(無効化処理)を行ってもよい。この場合には、以下の処理のうち、S1203、S1204を省略し、業務IDに鍵削除を示すIDを設定する。
【0065】
S1202では、まず更新する鍵の鍵ID(以降、旧鍵IDと呼ぶ。ここでは、旧鍵ID=001とする)、及び鍵情報502を取得する。S1201でユーザ側装置105〜107から鍵更新要求があった場合には、ユーザ側装置105〜107から旧鍵ID及び鍵情報502を受信する。受信にあたっては、認証の後に行うことが望ましい。例えば、ユーザ側装置105〜107を介してユーザにID、パスワード(予め、ユーザ登録して設定しておく)を要求して、業務管理サーバ102にログオンさせてから鍵情報502を受け取るか、又は、鍵情報502とともに、ユーザを証明するデータ(予めICカードなどにより各ユーザに個別に与えられた秘密データなど)を受信し、秘密データがどのユーザのものであるかを確かめた上で、鍵情報502を受け取る。業務管理サーバ102が鍵更新の必要性を判断した場合には、ユーザ側装置105〜107に鍵情報502を送るよう要求して取得するか、又は業務ポリシーファイル314を参照して、鍵情報502を取得する。ここで、鍵情報502には、生成する鍵のサイズ(例えば、1024bit)や、使用するアルゴリズム(例えば、RSA暗号方式)など鍵の生成に必要な情報を含む。
【0066】
S1203では、鍵情報502に記載された鍵サイズ及びアルゴリズムに従って、鍵の生成(例えば、RSA暗号方式における秘密鍵、公開鍵の生成)を行う。生成した秘密鍵、公開鍵の鍵ペアに対して、鍵ID(例えば、「002」)を生成する。鍵ID生成にあたっては、鍵生成・登録を要求したユーザ(ユーザ名、ユーザIDなどにより識別)と、鍵IDとを合わせたものが、固有であるように生成する(例えば、ユーザID=0001において、鍵ID=002の鍵ペアは複数存在しない)。また、業務管理サーバ102の業務ポリシーファイル314を参照して、鍵の有効期限を定めてもよい(例えば、生成日から2年間有効など)。
【0067】
S1204では、S1203で生成した鍵及び生成した鍵に関する情報を、鍵管理データベース310に登録する(今回の処理では、例えば、レコード902が登録される)。鍵管理データベース310は、図9に示すように、鍵の所有者を示す「ユーザID」(906)、S603で生成した「鍵ID」(907)、利用用途(例えば、承認印、職印など)を示す「用途」(908)、鍵サイズやアルゴリズムを表す「バージョン」(909)、鍵の有効期限を示す「有効期限」(910)、公開鍵の正当性を証明する「証明書」(911)からなる。ここで、「証明書」(911)は、生成した公開鍵が誰のものであるかを示すものであり、公開鍵データ、ユーザIDなどのユーザを特定する情報(又は、属性証明書501)、及びそれらに対して生成した業務管理サーバ102の電子署名などからなる。なお、証明書は認証局が発行したものでもよく、その場合は、認証局に対し、通常一般的に行われる証明書の取得手続きを行い、認証局の電子署名を含む証明書を取得し、「証明書」(911)に登録する。「証明書」を生成又は取得するかどうかは、業務管理サーバ102の業務ポリシーファイル314を参照して、ポリシーに従って決定してもよい。
【0068】
S1205では、今回の鍵更新処理に関する業務ログを生成し、業務管理サーバログ311に登録する(今回の処理では、例えば、処理IDが「0005」のレコード1105が登録される)。業務管理サーバログ311は、図11に示すように、業務ログのレコード1101〜1106からなり、業務ログの各レコードは、処理を識別するための番号であり、ログ生成の度に連番で付与される「処理ID」(1107)、業務内容(例えば、鍵更新)を表す「業務ID」(1108)、電子文書に対する処理である場合に、処理対象となった電子文書に付与された識別番号を表す「文書ID」(1109)、今回の処理が誰に関連する業務か(例えば、ユーザID=0001のユーザの鍵を生成)を示す「ユーザID」(1110)、鍵を更新した場合に、S1203で生成した「鍵ID」(1111)、今回の鍵更新に関連する処理IDを示す「関連ID」(1112)、今回の処理で生成された電子署名(例えば、S1204で証明書を生成する際に、業務管理サーバ102が生成した電子署名)が入る「署名値」(1113)、後述S1208で取得したタイムスタンプデータ504に含まれるログIDを格納する「タイムスタンプ」(1114)からなる。
【0069】
ここで、「関連ID」(1112)は、以下のように取得する。例えば、今回の処理は、ユーザID=0001の鍵を更新する処理であるので、業務管理サーバログ311を検索して、業務ID(1108)が鍵生成又は鍵更新を表す「001」又は「002」であり、ユーザID(1110)が「0001」であるレコードのうち最新のレコード(処理ID(1107)が最も大きいレコード)を取得する。ここでは、処理ID(1107)が「0001」であるレコード1101が取得される。この取得されたレコードの処理ID「0001」が「関連ID」(1112)である。
【0070】
S1206では、タイムスタンプ要求503を生成し、タイムスタンプサーバ101に送信する。タイムスタンプ要求503には、タイムスタンプ生成対象データのハッシュ値が含まれる。タイムスタンプ生成対象データは、S1205で取得した関連IDを処理IDに持つレコード(ここでは、レコード1101)、S1203で生成した公開鍵、S1204で鍵管理データベース310に登録したデータ「ユーザID」(906)、「鍵ID」(907)、「用途」(908)、「バージョン」(909)、「有効期限」(910)、「証明書」(911)、及び、S1205で業務管理サーバログ311に登録したデータのうち、「処理ID」(1107)、「業務ID」(1108)、「文書ID」(1109)、「ユーザID」(1110)、「鍵ID」(1111)、「関連ID」(1112)、「署名値」(1113)からなる。
【0071】
このとき、業務管理サーバ102は、業務ポリシーファイル314を参照し、鍵生成処理に対するポリシーを確認する。鍵生成処理の重要度に応じて、例えば、鍵生成時刻の保証をより厳密に行いたい場合は、タイムスタンプ要求503を、タイムスタンプ局103に送信して、タイムスタンプ局の生成するタイムスタンプデータ504を取得する。タイムスタンプ生成対象データに、S1205で取得した関連IDを処理IDに持つレコード(ここでは、レコード1101)を含むことにより、ユーザID=「0001」のユーザの前回の鍵生成、鍵更新に関するレコードと、今回生成した鍵に関するレコードとの間に連鎖関係を構築することができる。
【0072】
S1207では、タイムスタンプサーバ101(又は、タイムスタンプ局103)において、業務管理サーバ102から送信されて来たタイムスタンプ要求503に対して、タイムスタンプデータ504を生成し、業務管理サーバ102にタイムスタンプデータ504を送信する。処理の詳細については、S607に記載した内容と同様である。
【0073】
S1208では、タイムスタンプサーバ101(又は、S1206でタイムスタンプ局103にタイムスタンプを要求した場合は、タイムスタンプ局103)から、タイムスタンプデータ504を受信する。受信したタイムスタンプデータ504に含まれるログID(ここでは、「12」)を、S1205で生成した業務ログの項目「タイムスタンプ」(1114)に記録し、タイムスタンプデータ504を、タイムスタンプ格納領域315に格納する。業務管理サーバログ311に含まれる各業務ログ(レコード1101〜1106)の項目「タイムスタンプ」(1114)に記録されたログIDを参照することによって、タイムスタンプ格納領域315から、業務ログごとにそれぞれ対応したタイムスタンプデータ504を検索することができる。また、仮に、タイムスタンプ局103から取得したタイムスタンプデータ504に、上記ログIDに該当するような識別番号が存在しない場合は、ファイル名など識別可能なデータを、ログIDの代わりに項目「タイムスタンプ」(1114)に記録してもよい。
【0074】
S1209では、更新完了通知505を生成し、更新された鍵の所有者であるユーザのユーザ側装置105〜107に送信する。ここで、更新完了通知505には、例えば、S1206で生成したタイムスタンプ生成対象データ(S1205で取得した関連IDを処理IDに持つレコード、S1203で生成した公開鍵、S1204で鍵管理データベース310に登録した「ユーザID」(906)、「鍵ID」(907)、「用途」(908)、「バージョン」(909)、「有効期限」(910)、「証明書」(911)、及び、S605で業務管理サーバログ311に登録したデータのうち、「処理ID」(1107)、「業務ID」(1108)、「文書ID」(1109)、「ユーザID」(1110)、「鍵ID」(1111)、「関連ID」(1112)、「署名値」(1113))、及びS1208で受信したタイムスタンプデータ504を記載する。
【0075】
≪電子文書生成処理≫
本実施形態における業務管理方法について、ユーザが電子文書(業務文書など)を生成し、本実施形態の業務管理サーバ102を介して、電子署名を付与し、電子文書の証拠性を確保する場合を例に挙げて説明する。
【0076】
図13に、ユーザ側装置105〜107が、電子文書を生成し、業務管理サーバ102に電子署名生成の要求を行って、業務管理サーバ102から電子署名が付与された電子文書を受け取るまでの電子文書生成処理のフローチャートを示す。
【0077】
ユーザ側装置105〜107は、電子文書生成プログラム408により、S1301の処理を行い、電子文書を生成する。ここで生成する電子文書は、ユーザが既存のアプリケーションソフトを使って生成する文書、表、図面、画像、映像、実験データなどや、業務管理サーバ102やその他文書保管サーバなどに保存されている予め定められたデータフォーマットを取得して、取得したフォーマットを編集して生成する文書、表、図面、画像、映像、実験データなどを指す。次に、ユーザ側装置105〜107は、生成した電子文書及び電子文書に関連するデータとして、「業務ID」、「文書ID」、「鍵ID」を、業務管理サーバ102に送信し、電子署名生成を要求する。ここで、業務IDは、電子文書がどのような業務で使用するものかを識別するIDであり、文書IDは、電子文書を識別するためのID(例えば、ファイル名など)であり、鍵IDは、電子署名生成に利用する鍵を指定するものである。業務IDは、予めシステム上で設定しておき、それを全ユーザが共有して使うことが望ましい。業務IDは、例えば、経理業務=「003」、業務フロー付き経理業務=「004」、特許関連業務=「005」、…、その他=「999」などと定める。電子署名に使用する鍵については、業務管理サーバ102において自動的に決定してもよい。
【0078】
業務管理サーバ102は、業務管理プログラム308により、S1302〜S1306、S1308、S1309の処理を行う。
【0079】
S1302では、ユーザ側装置105〜107から、電子文書、「業務ID」、「文書ID」及び「鍵ID」を受け取る。受信にあたっては、認証の後に行うことが望ましい。例えば、ユーザ側装置105〜107を介してユーザにID、パスワード(予め、ユーザ登録して設定しておく)を要求して、業務管理サーバ102にログオンさせてからデータを受け取るか、又は、ユーザを証明するデータ(予めICカードなどにより各ユーザに個別に与えられた秘密データなど)を一緒に受信し、秘密データがどのユーザのものであるかを確かめた上で、電子文書などを受け取る。次に、取得した業務IDから、業務フローが定められた電子文書(承認ルートを持つ電子文書)かどうかを判断する。ここの例では、業務フローのない電子文書であるとする。業務フローが定められた電子文書の場合については、後述する。次に、業務IDから、電子文書の重要性や、イレギュラー性(特殊な業務フローを持つ、日常的ではない業務、代理承認など)を判断する。
【0080】
S1303では、S1302で受け取った電子文書(本文1402)、業務ID及び文書ID(ヘッダ部1403)に対して、電子文書生成ユーザの電子署名を生成する。具体的には、以下のような処理を行う。まず、ユーザID、鍵IDを用いて、鍵格納領域318を検索し、電子署名生成に使用する秘密鍵を取得する。例えば、ユーザID=「0001」、鍵ID=「001」に対応する秘密鍵を取得したとする。次に、取得した秘密鍵を用いて、本文1402及びヘッダ部1403に対して電子署名生成を行う。
【0081】
S1304では、今回の署名付き電子文書生成処理に関する業務ログを生成し、業務管理サーバログ311に登録する(今回の処理では、例えば、処理IDが「0003」のレコード1103が登録される)。業務管理サーバログ311のレコード1103は、図11に示すように、「処理ID」(1107)、経理業務を表す「業務ID」(1108)、S1302で受け取った「文書ID」(1109)、電子文書生成ユーザを表す「ユーザID」(1110)、S1303で使用した鍵を表す「鍵ID」(1111)、今回の業務に関連する処理IDを示す「関連ID」(1112)、S1303で生成された電子署名が入る「署名値」(1113)、後述S1308で取得したタイムスタンプデータ504に含まれるログIDを格納する「タイムスタンプ」(1114)からなる。ここで、今回の電子文書には業務フローは設定されていないので、「関連ID」(1112)は、なしとする。
【0082】
S1305では、S1302で電子文書の重要性や、代理承認などのイレギュラー性を判断した場合に、監査用ファイル313にS1304で生成した業務ログの処理IDを記録する。これにより、後に行われる業務監査を支援することができる。例えば、監査用ファイル313を利用することによって、特に重要な監査対象となるべき業務に関して、その業務ログを優先的に検証するなど、監査作業を効率化することができる。
【0083】
S1306では、タイムスタンプ要求503を生成し、タイムスタンプサーバ101に送信する。タイムスタンプ要求503には、タイムスタンプ生成対象データのハッシュ値が含まれる。業務フローのない今回の電子文書生成処理におけるタイムスタンプ生成対象データは、S1304で生成した処理ID「0003」のレコード1103のうち、「処理ID」(1107)、「業務ID」(1108)、「文書ID」(1109)、「ユーザID」(1110)、「鍵ID」(1111)、「関連ID」(1112)、「署名値」(1113)からなる。このとき、業務管理サーバ102は、業務ポリシーファイル314を参照し、S1302で受け取った業務IDに対するポリシーを確認する。そして、業務管理サーバ102は、例えば、電子文書に対する電子署名生成時刻の保証をより厳密に行いたい場合には、タイムスタンプ要求503を、タイムスタンプサーバ101の代わりにタイムスタンプ局103に送信して、タイムスタンプ局103の生成するタイムスタンプデータ504を取得する。
【0084】
S1307では、タイムスタンプサーバ101(又は、タイムスタンプ局103)において、業務管理サーバ102から送信されたタイムスタンプ要求503に対して、タイムスタンプデータ504を生成し、業務管理サーバ102にタイムスタンプデータ504を送信する。処理の詳細については、S607に記載した内容と同様である。
【0085】
S1308では、タイムスタンプサーバ101(又は、S1306でタイムスタンプ局103にタイムスタンプを要求した場合には、タイムスタンプ局103)から、タイムスタンプデータ504を受信する。受信したタイムスタンプデータ504に含まれるログID(ここでは、「0008」)を、S1304で生成した業務ログの項目「タイムスタンプ」(1114)に記録し、タイムスタンプデータ504を、タイムスタンプ格納領域315に格納する。
【0086】
S1309では、電子署名付き電子文書1401を生成し、電子文書生成ユーザのユーザ側装置105〜107に送信する。図14に、電子署名付き電子文書1401の構成を示す。電子署名付き電子文書は、本文1402、ヘッダ部1403及び署名部1404からなる。本文1402は、S1302で受け取った電子文書である。ヘッダ部1403は、S1302で受け取った業務ID及び文書IDからなる。署名部1404は、S1304で生成した業務ログからなる署名データ1405(処理ID「0003」のレコード1103のうち、「処理ID」(1107)、「業務ID」(1108)、「文書ID」(1109)、「ユーザID」(1110)、「鍵ID」(1111)、「関連ID」(1112)、「署名値」(1113))、及びS1308で取得したタイムスタンプデータ504からなる。
【0087】
ユーザ側装置105〜107は、S1310で、業務管理サーバ102から電子署名付き電子文書1401を受け取る。
【0088】
≪電子文書検証処理≫
図15にユーザ側装置105〜107が、電子署名付き電子文書1401を検証する場合の電子文書検証処理の概要を示し、図16に電子文書検証処理のフローチャートを示す。
【0089】
図15に示すように、電子署名付き電子文書1401を検証する際には、以下の4つの検証が行われる。1つ目は、電子文書がどのユーザによって作られたか、また改ざんされていないかを検証するために電子署名付き電子文書1401に含まれる署名データ1405を、鍵蓄積領域318から得られる検証用公開鍵1506を用いて検証する署名検証(S1501)である。2つ目は、電子文書を生成した際のログが業務管理サーバ102に残っているか(業務管理サーバを介して署名されたか)を検証するために、電子署名付き電子文書1401に含まれる署名データ1405と、業務管理サーバ102の業務管理サーバログ311に含まれるレコード(署名データ1405に含まれる処理IDと同じ処理IDを持つレコード)との一致を検証するログ検証(S1502)である。3つ目は、電子文書がいつ作られた(電子署名された)かを検証するために、電子署名付き電子文書1401に含まれるタイムスタンプデータ504を、タイムスタンプサーバ公開鍵215や、タイムスタンプサーバログ212から得られるタイムスタンプ検証利用データ1505を用いて検証するタイムスタンプ検証(S1503)である。4つ目は、S1501で検証に利用した検証用公開鍵1506が、業務管理サーバ102に登録されており、電子署名生成時に有効期限内であったかどうかを検証する鍵検証(S1504)である。
【0090】
図16を用いて、ユーザ側装置105〜107が、電子署名付き電子文書1401の検証を業務管理サーバ102に要求し、検証結果を受け取るまでの電子文書検証処理のフローチャートを説明する。
S1601において、ユーザ側装置105〜107は、電子文書検証プログラム406により、検証対象となる電子署名付き電子文書1401を含む、電子文書の検証要求を業務管理サーバ102に送信する。
業務管理サーバ102は、業務管理プログラム308により、S1602〜S1604、S1606〜S1609、S1611、S1612の処理を行う。
S1602では、ユーザ側装置105〜107から、検証対象となる電子署名付き電子文書1401を含む、電子文書の検証要求を受信する。
S1603では、S1602で受信した電子署名付き電子文書1401の検証を行う。具体的には、図15のS1501〜S1504の処理を行う。以下に処理の詳細を説明する。
【0091】
S1501では、まずS1602で受信した電子署名付き電子文書1401に含まれる署名データ1405を取得する。次に、署名データ1405から、ユーザID、鍵IDを取得(ここでは、ユーザID=0001、鍵ID=001)し、これらのIDを用いて鍵蓄積領域318を検索し、該当する公開鍵(検証用公開鍵1506)を取得する。そして、取得した検証用公開鍵1506を用いて、署名データ1405に含まれる署名値を検証する。
【0092】
S1502では、署名データ1405に含まれる処理ID(ここでは、処理ID=「0003」)を取得し、取得した処理IDを基に業務管理サーバログ311を検索し、検証対象の電子署名付き電子文書1401が生成されたときのレコード(ここでは、レコード1103)を取得する。次に、取得したレコード1103の処理ID(1107)、業務ID(1108)、文書ID(1109)、ユーザID(1110)、鍵ID(1111)、関連ID(1112)、署名値(1113)が、署名データ1405の各項目の値と一致するかどうか検証する。
【0093】
S1503では、電子署名付き電子文書1401に含まれるタイムスタンプデータ504を取得し、タイムスタンプデータ504に含まれる対象データハッシュ値(ここでは、「H(D)」)が、署名データ1405のハッシュ値と一致するか調べる。次に、取得したタイムスタンプデータ504の検証を行う。タイムスタンプデータ504が、タイムスタンプ局103から取得したデータである場合は、タイムスタンプデータ504に含まれる署名値を、タイムスタンプ局103の公開鍵を用いて検証し、タイムスタンプデータがタイムスタンプ局103により生成されたものであることを検証する。タイムスタンプデータにタイムスタンプ局103独自のデータ(運営企業名など)が含まれており、かつそれが電子署名対象となっていた場合は、それも含めて電子署名検証を行う。
【0094】
タイムスタンプデータ504が、タイムスタンプサーバ101により生成されたものである場合には、図17のS1701〜S1704に示す検証手順を行う。なお、簡易的に検証を行いたい場合には、S1702のみ行い、検証対象となる電子署名付き電子文書1401に含まれるタイムスタンプデータ504を単独で検証してもよい。その場合、検証に必要な1つ前に生成されたタイムスタンプサーバログのレコードのハッシュ値(ここでは、「H(S)」)は、タイムスタンプサーバ101から取得するか、又は、タイムスタンプサーバ101においてタイムスタンプデータ生成(S705)のときに、タイムスタンプデータ504に簡易検証用の「H(S)」を予め含めておいてもよい。
【0095】
S1701では、タイムスタンプデータ504からログIDを取得する(ここでは、ログID=0008)。次に、上記ログIDを含むタイムスタンプサーバログ要求を、タイムスタンプサーバ101に送信し、検証に必要なタイムスタンプサーバログを取得する。
【0096】
ここで、タイムスタンプサーバログ要求を受け取ったタイムスタンプサーバ101は、要求に含まれるログID(ログID=0008)を基に、タイムスタンプサーバログ212を検索し、1つ前に生成したログ(ログID=0007)のレコードのハッシュ値「H(S)」を取得する。また、タイムスタンプサーバログ212の種別(1008)を参照して、要求に含まれるログID(ログID=0008)より前でタイムスタンプ局103からタイムスタンプを取得した際に生成したログのレコード(ここでは、ログID=0001のレコード)から、要求に含まれるログID(ログID=0008)より後でタイムスタンプ局103からタイムスタンプを取得した際に生成したログのレコード(ここでは、ログID=0010のレコード)までのレコードを全て取得する(ここで取得したレコードを、以降、タイムスタンプ検証用ログと呼ぶ)。また、ログID=0001、ログID=0010のログ作成時に取得したタイムスタンプ局103のタイムスタンプデータを、タイムスタンプ格納領域213から取得する。そして、ログID=0001のログ作成時に取得したタイムスタンプ局103のタイムスタンプデータに含まれる署名の対象となったタイムスタンプサーバ101のサーバログ「S(ログID=0000のレコード)」を取得する。次に、上記取得したタイムスタンプ検証用ログ、タイムスタンプ局103のタイムスタンプデータ及びログID=0001について取得したタイムスタンプ局103の署名の対象となったデータ「S」を含むタイムスタンプ検証利用データ1505を、業務管理サーバ102に送信する。
【0097】
ここで、本例では、ログID=0001について取得したタイムスタンプ局103の署名の対象となったデータ「S」を送信しているが、一般的には、タイムスタンプ検証用ログの中の、タイムスタンプ局103からタイムスタンプを取得した際に生成した2つのログのレコードのうち、小さい番号のログIDのログについて、タイムスタンプ局103のタイムスタンプデータに含まれる署名の対象となったタイムスタンプサーバ101のサーバログ(「S」から「Sm+n」までの全てのログ。例えば、種別1008が「取得」の2つのレコードのうち、小さい方の番号がログID=0010のレコードだとすれば、「S」から「S」までのログとなる。)を送信する。
【0098】
S1702では、業務管理サーバ102は、タイムスタンプサーバ101から、タイムスタンプ検証利用データ1505を受け取る。次に、タイムスタンプデータ504に含まれる署名値(ここでは、Sign(H(H(D)‖H(S)‖T)))を、タイムスタンプデータ504に含まれる対象データハッシュ値(ここでは、「H(D)」)、時刻情報(ここでは、「T」)、タイムスタンプ検証用ログに含まれる1つ前に生成されたレコード(ここでは、ログID=0007のレコード)のハッシュ値(ここでは、「H(S)」)及びタイムスタンプサーバ101の公開鍵215を用いて検証する。また、タイムスタンプデータ504に含まれる署名値(ここでは、「Sign(H(H(D)‖H(S)‖T))」)と、タイムスタンプ検証用ログに含まれる署名値(1011)とが一致するか検証する。これにより、タイムスタンプデータ504が検証される。
【0099】
S1703では、タイムスタンプ検証利用データ1505に含まれるタイムスタンプ検証用ログについて、タイムスタンプサーバ101から取得したタイムスタンプデータ504を取得する。具体的には、ログID=0002〜0009について、タイムスタンプ格納領域315を検索して、タイムスタンプデータを取得する。
【0100】
S1704では、S1703で取得したタイムスタンプデータ及びS1702で受信したタイムスタンプ検証利用データ1505に含まれるタイムスタンプ局103のタイムスタンプデータの検証を行う。S1703で取得したタイムスタンプデータの検証は、S1702と同様の手順で行う。具体的には、ログID=0002〜0009のレコードに対応するタイムスタンプデータを用いて、それぞれS1702と同様の手順を行う。タイムスタンプ局103のタイムスタンプデータ(ログID=0001、0010のログ作成時に取得したタイムスタンプ局103のタイムスタンプデータ)の検証については、タイムスタンプ検証利用データ1505から、タイムスタンプデータに含まれる署名の対象となったログを取得して署名対象データを作成し、タイムスタンプ局103の公開鍵を用いて、タイムスタンプ局103のタイムスタンプデータに含まれる署名値の検証を行う。
【0101】
具体的には、本例では、ログID=0001のログ作成時に取得したタイムスタンプ局103のタイムスタンプデータを検証する場合には、タイムスタンプ検証利用データ1505に含まれる「S(タイムスタンプデータに含まれる署名の対象となったログ)」から「H((S)‖H(S))‖TS」を作成し、タイムスタンプ局103の公開鍵を用いて、タイムスタンプ局103のタイムスタンプデータに含まれる署名値「Sign_T(H((S)‖H(S))‖TS)」の検証を行う(ここで、時刻情報「TS」は、タイムスタンプ局103のタイムスタンプデータに含まれているので、それを利用する)。また、ログID=0010のログ作成時に取得したタイムスタンプ局103のタイムスタンプデータを検証する場合には、タイムスタンプ検証利用データ1505に含まれるログID=0001〜0009のタイムスタンプサーバログのレコードから「H((S‖・・・‖S)‖H(S))‖TS10」を作成し、タイムスタンプ局103のタイムスタンプデータに含まれる署名値「Sign_T(H((S‖・・・‖S)‖H(S))‖TS10)」の検証を行う(ここで、時刻情報「TS10」は、タイムスタンプ局103のタイムスタンプデータに含まれているので、それを利用する)。
【0102】
これにより、タイムスタンプ局103のタイムスタンプデータの検証、及びその間にタイムスタンプサーバ101が生成したタイムスタンプ間の連鎖関係の検証が行われ、S1702で検証したタイムスタンプデータ504(検証対象の電子署名付き電子文書1401に含まれるタイムスタンプデータ)が、S1704で検証したタイムスタンプ局103のタイムスタンプデータの時刻情報の間(例えば、「TS」から「TS10」までの間)に存在していたことを証明できる。簡易的に検証を行いたい場合などには、S1703、S1704の処理は省略してもよい。また、S1702で取得したタイムスタンプ検証利用データ1505に含まれるハッシュ値「H(S)」は、電子署名付き電子文書生成時に、タイムスタンプデータ504に予め入れておいてもよい。
【0103】
S1504(図15参照)では、S1501での電子署名検証に利用した検証用公開鍵1506の検証を行う。具体的には、以下のS1705〜S1709の処理を行う。
【0104】
S1705では、検証用公開鍵1506の鍵ID(ここでは、鍵ID=「001」)を基に、鍵管理データベース310を検索し、検証用公開鍵1506の鍵情報に関するレコード(ここでは、レコード901)を取得する。次に、有効期限(910)の値を確認し、S1503で検証したタイムスタンプデータ504の時刻情報「T」が有効期限を超えていないことを確認する。これにより、鍵の有効期限を保証できる。また、証明書(911)を検証する。証明書(911)の検証は、例えば、証明書(911)に含まれる業務管理サーバ102の電子署名を検証する。証明書が認証局にから発行されたものである場合は、通常一般的に行われる認証局の証明書検証手順に従って、証明書の検証を行う。
【0105】
S1706では、S1501で検証用公開鍵1506を取得するときに使用したユーザID(ここでは、ユーザID=0001)により、業務管理サーバログ311を検索して、項目としてユーザID(1110)が「0001」であり、かつ、業務ID(1108)が「鍵生成」、「鍵更新」、「鍵削除」など鍵管理に関連する業務IDを持つレコードを取得する。例えば、図18のレコード1801〜1803が取得されたとする。なお、
鍵IDが全署名鍵に固有である場合には、S1602で受信した署名付き電子文書1401に含まれる鍵IDにより業務管理サーバログ311を検索して、該当したレコードのユーザID及び鍵管理に関連する業務IDを持つレコードを取得してもよい。また、鍵管理に関連するレコードだけ(例えば、「鍵更新」の業務IDを持つレコードだけ)が業務管理サーバログ311に格納されている場合には、業務IDを用いることなく、当該ユーザIDを持つレコードを取得するようにしてもよい。
【0106】
S1707では、S1706で取得したレコードに対するタイムスタンプデータを、タイムスタンプ格納領域315から取得する。例えば、図18のタイムスタンプデータ1804〜1806が取得されたとする。
【0107】
S1708では、S1707で取得したタイムスタンプデータの連鎖関係の検証を行う。具体的には、まずS1706で取得したレコードのうち最新のレコード1803に対応するタイムスタンプデータ1806について、タイムスタンプデータ1806に含まれる対象データハッシュ値(例えば、H(D28))と、タイムスタンプデータ1806についてのタイムスタンプ生成対象データとの整合性を検証する(ハッシュ値が一致するかどうか)。ここで、タイムスタンプ生成対象データは、レコード1803に含まれる関連IDを処理IDに持つレコード(ここでは、レコード1802)、レコード1803に含まれる鍵IDに対応する公開鍵(鍵格納領域318から取得)、レコード1803に含まれる鍵IDに対応する公開鍵の鍵情報(レコード1803に含まれるユーザID、鍵IDを用いて鍵管理データベース310を検索して取得されるレコード)、及び、レコード1803のうち、「処理ID」、「業務ID」、「文書ID」、「ユーザID」、「鍵ID」、「関連ID」、「署名値」である。また、タイムスタンプデータ1806を検証する。検証手順は、S1701〜S1704と同様である。以上の処理をレコード1802、1801についても行う。これにより、S1706で取得したレコード間の連鎖関係を、タイムスタンプデータに含まれるタイムスタンプサーバ101(又は、タイムスタンプ局103)の電子署名を用いて検証することができる。
【0108】
S1709では、まず、検証用公開鍵1506(鍵ID=「001」)について、S1706で取得したレコードの中に含まれることを確認する。具体的には、鍵ID=「001」であり、業務ID(1108)が鍵生成(=001)、又は鍵更新(=「002」)であるレコード(例えば、1801)が、S1706で取得したレコードの中に存在することを確認する。
【0109】
次に、上記存在したレコード(例えば、1801)に対応するタイムスタンプデータ(例えば、1804)に含まれる時刻情報が、S1503で検証したタイムスタンプデータ504に含まれる時刻情報「T」より前であるか確認する。なお、最新の署名鍵による電子署名だけを有効とするために、上記存在したレコードと同じユーザID及び鍵更新の業務IDを持つレコードのうち、最新のレコードの時刻情報が、時刻情報「T」より前であるか確認するようにしてもよい。
【0110】
続いて、上記存在したレコード(例えば、1801)の処理IDを関連IDに持つレコード(例えば、1802)をS1706で取得したレコードの中から検索する。そして、検索したレコード(例えば、1802)に対応するタイムスタンプデータ(例えば、1805)に含まれる時刻情報が、S1503で検証したタイムスタンプデータ504に含まれる時刻情報「T」より後であることを確認する。(このとき検索されたレコードは、検証用公開鍵1506が鍵更新又は鍵削除されたときのレコードである。)そして、検索したレコードの時刻情報が時刻情報「T」より後である場合には、検証失敗と判定する。
なお、簡易的に鍵の検証を行いたい場合は、S1706〜S1709の処理を省略してもよい。
【0111】
S1604では、S1603で得られた検証の結果(電子署名検証成功、タイムスタンプ検証成功など)を記載した検証結果を生成し、生成した検証結果に対して、業務管理サーバ102の秘密鍵を用いて電子署名を生成し、検証結果に付与する。
【0112】
S1605では、今回の電子文書検証処理に関する業務ログを生成し、業務管理サーバログ311に登録する。業務管理サーバログ311には、「処理ID」(1107)、検証を表す「業務ID」(1108)、検証対象の電子署名付き電子文書1401の「文書ID」(1109)、検証対象の電子文書の生成ユーザを表す「ユーザID」(1110)、検証で使用した検証用公開鍵を表す「鍵ID」(1111)、「関連ID」(1112)、S1604で生成された電子署名が入る「署名値」(1113)が記録される。ここで、「関連ID」(1112)は、無効とする。
【0113】
S1606では、タイムスタンプ要求503を生成し、タイムスタンプサーバ101に送信する。タイムスタンプ要求503には、タイムスタンプ生成対象データのハッシュ値が含まれる。ここで、タイムスタンプ生成対象データは、S1605で生成した業務ログのレコードである。保証をより厳密に行いたい場合は、タイムスタンプ要求503をタイムスタンプ局103に送信して、タイムスタンプ局103の生成するタイムスタンプデータ504を取得してもよい。
【0114】
S1607では、タイムスタンプサーバ101(又は、タイムスタンプ局103)において、業務管理サーバ102から送信されたタイムスタンプ要求503に対して、タイムスタンプデータ504を生成し、業務管理サーバ102にタイムスタンプデータ504を送信する。処理の詳細については、S607に記載した内容と同様である。
【0115】
S1608では、タイムスタンプサーバ101(又は、S1606でタイムスタンプ局103にタイムスタンプを要求した場合は、タイムスタンプ局103)から、タイムスタンプデータ504を受信する。受信したタイムスタンプデータ504に含まれるログIDを、S1605で生成した業務ログの項目である「タイムスタンプ」(1114)に記録し、タイムスタンプデータ504を、タイムスタンプ格納領域315に格納する。
【0116】
S1609では、S1604で生成した電子署名付き検証結果を、検証要求ユーザ(S1601で、電子署名付き電子文書1401を業務管理サーバ102に送信したユーザ)のユーザ側装置105〜107に送信する。
S1610では、電子署名付き検証結果を受け取ったユーザ側装置は、電子署名付き検証結果に含まれる業務管理サーバ102の電子署名を検証した後、検証結果を確認する。
【0117】
以上、本実施形態では、業務管理サーバ102によって、電子署名付き電子文書1401を検証する手順について述べたが、業務管理サーバ102やタイムスタンプサーバ101から上記検証で利用したデータを取得して、ユーザ側装置105〜107において、電子署名付き電子文書1401を検証してもよい。
【0118】
≪業務フロー付き電子文書生成処理≫
図13を用いて、ユーザ側装置105〜107が、業務管理サーバ102に業務フロー付き電子文書に対する電子署名生成の要求を行ってから、業務管理サーバ102から電子署名が新たに付与された業務フロー付き電子文書を受け取るまでの処理(業務フロー付き電子文書生成処理)のフローチャートについて説明する。
【0119】
ここでは、図19に示す業務フロー付き電子文書1901について、ユーザ側装置105(ユーザID=「0002」)により、課長入力欄1907に文章を入力し、電子署名を生成する場合を例に挙げて説明する。業務フロー付き電子文書1901には、既にユーザID=「0001」のユーザ及び業務管理サーバ102によってS1301〜S1310の処理(図13の電子文書生成処理)が行われ、署名部1905に、署名データ1909及びタイムスタンプデータ1910が付与されている。また、ヘッダ部1903には、業務ID=「005(例えば、業務フロー付き申請を表す)」、文書ID=「shinsei001」及び業務フロー記録部1904(申請者から始まり、課長、部長という承認フロー)が設定されている。
【0120】
ユーザ側装置105は、電子文書生成プログラム408により、S1301の処理を行い、電子文書を生成する。ここでは、業務フロー付き電子文書1901に対して、課長入力欄1907に文章を入力する。申請者の署名がされた業務フロー付き電子文書1901は、他のユーザ側装置、業務管理サーバ102又は文書管理サーバなどから取得する。次に、ユーザ側装置105は、生成した(文章入力後の)業務フロー付き電子文書1901及び「鍵ID」を、業務管理サーバ102に送信し、電子署名生成を要求する。ここで、鍵IDは、電子署名生成に利用する鍵を指定するものである。なお、電子署名に使用する鍵については、業務管理サーバ102において自動的に決定してもよい。
【0121】
業務管理サーバ102は、業務管理プログラム308により、S1302〜S1306、S1308、S1309の処理を行う。
【0122】
S1302では、ユーザ側装置105から、業務フロー付き電子文書1901及び「鍵ID」を受け取る。受信にあたっては、認証の後に行うことが望ましい。例えば、ユーザにID、パスワード(予め、ユーザ登録して設定しておく)を要求して、業務管理サーバ102にログオンさせてからデータを受け取るか、又は、ユーザを証明するデータ(予めICカードなどにより各ユーザに個別に与えられた秘密データなど)を一緒に受信し、秘密データがどのユーザのものであるかを確かめた上で、電子文書などを受け取る。次に、業務フロー付き電子文書1901のヘッダ部1903に含まれる業務IDから、業務フローが定められた電子文書(承認ルートを持つ電子文書)かどうかを判断する。ここでは、業務フローが存在する電子文書である。そこで、業務フロー付き電子文書1901の業務フロー記録部1904を参照する。本実施形態の場合、一人目(申請者)が署名済みであるので、本文1902のうち課長入力欄及び部長入力欄を除いたデータ、及びヘッダ部1903に対する一人目の電子署名の検証(S1603と同様の手順)を行う。ここで、検証に失敗した場合には、業務フロー付き電子文書が不正であるので、処理を終了する。
【0123】
二人目まで(申請者及び課長が)署名済みである場合は、以下のように検証を行う。まず、本文1902のうち部長入力欄を除いたデータ、ヘッダ部1903、及び署名部1905のうち一人目の署名データ1909及びタイムスタンプデータ1910に対する二人目の電子署名の検証(S1603と同様の手順)を行う。次に、本文1902のうち課長入力欄及び部長入力欄を除いたデータ、及びヘッダ部1903に対する一人目の電子署名の検証(S1603と同様の手順)を行う。ここで、検証に失敗した場合は、業務フロー付き電子文書が不正である(電子文書の改ざん、署名値自体が不正、又は、業務フローの間で連鎖が途切れている)ので、処理を終了する。
【0124】
次に、電子署名生成を要求しているユーザ(ここでは、ユーザID=「0002」のユーザ)が、業務フロー付き電子文書1901の業務フロー記録部1904の二人目に設定されているユーザとして正当かどうか、例えば、業務管理サーバ102の業務ポリシーファイル314を参照して判断する。二人目のユーザとして不適切な場合は、処理を終了する。また、業務IDから、電子文書の重要性や、イレギュラー性(特殊な業務フローを持つ、又は、日常的ではない業務、また本実施形態の場合、課長の職位を持つユーザの代わりに、課長代理の職位を持つユーザが電子署名を生成する場合など)を判断する。
【0125】
S1303では、S1302で受け取った業務フロー付き電子文書1901に対し、S1301で電子署名生成を要求したユーザ(以降、署名生成要求ユーザと呼ぶ)の電子署名を生成する。具体的には、以下のような処理を行う。まず、署名生成要求ユーザID(ここでは、ユーザID=「0005」)、S1302で取得した鍵ID(ここでは、鍵ID=「001」とする)を用いて、鍵格納領域318を検索し、電子署名生成に使用する秘密鍵を取得する。次に、取得した秘密鍵を用いて、S1302で受け取った業務フロー付き電子文書1901の本文1902、ヘッダ部1903、並びに署名部1905のうち一人目の署名データ1909及びタイムスタンプデータ1910に対し、電子文書生成ユーザの電子署名を生成する。
【0126】
S1304では、今回の電子文書生成処理に関する業務ログを生成し、業務管理サーバログ311に登録する。業務管理サーバログ311には、図11に示すように、最新の業務ログから連番で付与する「処理ID」、「業務ID」(ここでは、業務ID=「005」)、「文書ID」(ここでは、文書ID=「shinsei001」)、「ユーザID」(ここでは、ユーザID=「0002」)、「鍵ID」(ここでは、鍵ID=「001」)、「関連ID」、「署名値」(S1303で生成された電子署名が入る)を記録する。ここで、今回の電子文書には業務フローが設定されているので、「関連ID」には、一つ前の処理フローに関する処理ID(ここでは、業務フロー付き電子文書1901の署名部1905のうち一人目の署名データ1909の処理ID=「0003」)が入る。
【0127】
S1305では、S1302で電子文書の重要性やイレギュラー性を判断した場合に、監査用ファイル313にS1304で生成した業務ログの処理IDを記録する。この監査用ファイル313を利用することによって、業務監査を行う場合など、特に重要な監査対象となるべき業務に関して、その業務ログを優先的に検証するなど監査作業を効率化することができる。
【0128】
S1306では、タイムスタンプ要求503を生成し、タイムスタンプサーバ101に送信する。タイムスタンプ要求503には、タイムスタンプ生成対象データのハッシュ値が含まれる。本実施形態におけるタイムスタンプ生成対象データは、S1304で生成した処理IDのレコードのうち、「処理ID」(1107)、「業務ID」(1108)、「文書ID」(1109)、「ユーザID」(1110)、「鍵ID」(1111)、「関連ID」(1112)及び「署名値」(1113)からなる。このとき、業務管理サーバ102は、業務ポリシーファイル314を参照し、S1302で受け取った業務IDに対するポリシーを確認する。業務フローの重要度に応じて、例えば、電子文書に対する電子署名生成時刻の保証をより厳密に行いたい場合は、タイムスタンプ要求503を、タイムスタンプ局103に送信して、タイムスタンプ局103の生成するタイムスタンプデータ504を取得する。
【0129】
S1307では、タイムスタンプサーバ101(又は、タイムスタンプ局103)において、業務管理サーバ102から送信されたタイムスタンプ要求503に対して、タイムスタンプデータ504を生成し、業務管理サーバ102にタイムスタンプデータ504を送信する。処理の詳細については、S607に記載した内容と同様である。
【0130】
S1308では、タイムスタンプサーバ101(又は、S1306でタイムスタンプ局103にタイムスタンプを要求した場合は、タイムスタンプ局103)から、タイムスタンプデータ504を受信する。受信したタイムスタンプデータ504に含まれるログIDを、S1304で生成した業務ログの項目である「タイムスタンプ」(1114)に記録し、タイムスタンプデータ504を、タイムスタンプ格納領域315に格納する。
【0131】
S1309では、業務フロー付き電子文書1901に二人目の電子署名として、S1303で生成した電子署名を、署名部1905に付与し、署名生成要求ユーザのユーザ側装置105に送信する。
【0132】
ユーザ側装置105は、S1310で、業務管理サーバ102から送信された業務フロー付き電子文書1901(二人目の電子署名が付与された業務フロー付き電子文書)を受け取る。
【0133】
業務フロー付き電子文書1901(例えば、X人目まで業務フローがある場合)の検証は、以下のように行う。まず、本文1902のうちX人目入力欄を除いたデータ、ヘッダ部1903、及び署名部1905のうち(X−1)人目の署名データ、及びタイムスタンプデータに対するX人目の電子署名(署名データ、タイムスタンプデータ)の検証(S1603と同様の手順)を行う。次に、本文1902のうちX人目及び(X−1)人目入力欄を除いたデータ、ヘッダ部1903、及び署名部1905のうち(X−2)人目の署名データ、及びタイムスタンプデータに対する(X−1)人目の電子署名(署名データ、タイムスタンプデータ)の検証(S1603と同様の手順)を行う。これをX=2まで繰り返し、最後に、本文1902のうち一人目以降に入力した文章を全て除いたデータ、及びヘッダ部1903に対する一人目の電子署名の検証(S1603と同様の手順)を行う。
【0134】
検証対象の業務フロー付き電子文書に付与された署名データは、1つ前のユーザが付与した署名データ、及びタイムスタンプデータを反映して作られているため、連鎖関係が構築されているが、上記検証により、その連鎖関係の整合性の有無を含めて検証される。したがって、上記業務フロー付き電子文書1901の検証を行うことによって、業務フロー付き電子文書1901が業務フロー順に処理(署名)され、かつその過程で改ざんがないことを証明することができる。また、タイムスタンプデータの時刻情報により、業務フロー付き電子文書1901が処理されていった経過の時刻の参照、及びその検証ができる。
【0135】
ただし、上記検証過程に示す通り、署名データに含まれる署名値の検証を行う際は、本文1402のうち、署名生成対象となった部分のみ(例えば、課長の生成した署名データを検証する際には、部長記入欄を除く)を検証に用いることが必要である。
【0136】
また、業務フロー付き電子文書1901において、業務管理サーバ102は、ユーザからの要望に応じて、S1303において、電子署名を生成する代わりに、業務フロー付き電子文書191に付与されている電子署名を削除して、1つ前の状態に戻してもよい。その場合の業務ログは、処理IDには電子署名生成のときと同様、今回の処理に対するIDが連番で付与され、業務IDは、電子署名削除を表すIDであり、文書IDは、業務フロー付き電子文書1901のヘッダ部に記載された文書IDであり、ユーザIDは、削除依頼をしたユーザのユーザIDであり、鍵IDは、関連IDは、削除した電子署名が生成された時の業務ログに含まれる処理IDであり、署名値は、削除した署名データ1909に含まれる署名値が入る。この場合、業務フロー付き電子文書の検証の際には、署名削除された電子署名が含まれていないかどうかの検証を行う必要がある。
【0137】
また、タイムスタンプサーバ101のタイムスタンプサーバログ212のログの連鎖を検証するステップ(S1703〜S1704)は、必ずしも行う必要はない。例えば、S1302において、電子署名生成対象となる業務フロー付き電子文書の業務フローの正当性を検証する場合や、社内監査部門による検証など内部で検証する場合などは、上記連鎖を検証するステップを省略し、外部に証拠として提示する場合など重要な場面で連鎖の検証を実施することが、運用効率上望ましい。
【0138】
本実施形態の鍵管理方式によれば、鍵の存在有無、及び存在期間の連続性を保証し、業務上正当な鍵であったかどうかの検証も行うことができる。また、電子文書に対しては、通常の署名検証に加えて、署名時刻の検証、およびそのときに使用された鍵が有効期限内であったかどうかの検証を行い、より厳密な真正性証明を行うことができる。また、承認フローなどの業務フローがある電子文書については、承認などの業務の過程で作成された電子署名の連鎖関係を検証することによって、業務フローの正当性を保証することができる。
【0139】
また、内部に設置したタイムスタンプサーバが、前回のタイムスタンプとの間に連鎖関係を構築しながらタイムスタンプを作成し、定期的に第三者機関であるタイムスタンプ局のタイムスタンプを連鎖に含めることにより、時刻保証業務を行う第三者機関のタイムスタンプと同等の信頼性を与えることができる。すなわち、第三者機関については必要最低限の利用にとどめて、タイムスタンプ付与にかかるコストや時間を軽減しながら、連鎖全体に渡って第三者機関の信頼性や安全性を波及させることができる。これにより、時刻保証を含めた効率的なログ管理を実現することができる。
【0140】
本発明は、内部業務の記録保証(内部統制)に限らず、電子商取引システムや電子メールシステムなど、電子文書やログを扱うシステムにおける電子データの真正性を保証する機能に適用可能である。また、鍵管理部分のみを別サーバに実装するといったように機能を切り分けて運用することも可能である。
【0141】
以上本発明の実施の形態について説明したが、図1に示す業務管理システム1内の各サーバや各装置を機能させるために、CPUで実行されるプログラムをコンピュータにより読み取り可能な記録媒体に記録し、その記録したプログラムをコンピュータに読み込ませ、実行させることにより、本発明の実施の形態に係る業務管理システム1が実現されるものとする。なお、プログラムをインターネットなどのネットワーク経由でコンピュータに提供してもよいし、プログラムが書き込まれた半導体チップなどをコンピュータに組み込んでもよい。
【0142】
以上、本発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得るとともに、本発明にはその等価物も含まれる。
【産業上の利用可能性】
【0143】
上記実施形態では、内部業務、特に電子文書に対する署名付与(承認業務)について処理内容の記録、管理、保証について述べたが、本発明は、内部業務の記録保証(内部統制)に限らず、電子商取引システムや電子メールシステムなど、電子文書やログを扱うシステムにおける電子データの真正性を保証する機能に適用可能である。また、鍵管理部分のみを別サーバに実装するといったように機能を切り分けて運用することも可能である。
【図面の簡単な説明】
【0144】
【図1】本発明の実施形態が適用されたシステムの概略図である。
【図2】タイムスタンプサーバの内部構成を示した図である。
【図3】業務管理サーバの内部構成を示した図である。
【図4】ユーザ側装置の内部構成を示した図である。
【図5】鍵生成処理の際に、各装置間でやり取りされるデータフローの概要を示した図である。
【図6】鍵生成処理における全体シーケンスを示した図である。
【図7】タイムスタンプサーバにおけるタイムスタンプデータ生成処理手順を示した図である。
【図8】タイムスタンプサーバにおいて、タイムスタンプ局からタイムスタンプデータの取得を行う際の処理手順を示した図である。
【図9】業務管理サーバにおける鍵管理データベースの構成を示した図である。
【図10】タイムスタンプサーバにおけるタイムスタンプサーバログの構成を示した図である。
【図11】業務管理サーバにおける業務管理サーバログの構成を示した図である。
【図12】鍵更新処理における全体シーケンスを示した図である。
【図13】電子文書生成処理における全体シーケンスを示した図である。
【図14】電子署名付き電子文書の構成例を示した図である。
【図15】電子署名付き電子文書の検証処理で利用するデータの概要を示した図である。
【図16】電子署名付き電子文書の検証処理における全体シーケンスを示した図である。
【図17】タイムスタンプデータの検証処理手順を示した図である。
【図18】検証処理の概要を示した図である。
【図19】業務フロー付き電子文書の構成例を示した図である。
【符号の説明】
【0145】
101 タイムスタンプサーバ
102 業務管理サーバ(情報処理装置)
103 タイムスタンプ局(第三者機関のサーバ)
105〜107 ユーザ側装置
212 タイムスタンプサーバログ(更新時刻情報)
213 タイムスタンプ格納領域
310 鍵管理データベース
311 業務管理サーバログ
314 業務ポリシーファイル
315 タイムスタンプ格納領域
1010 時刻情報
1011 署名値(更新時刻情報)
1107 処理ID
1108 業務ID
1111 鍵ID
1112 関連ID
1113 署名値(電子署名)
1114 タイムスタンプ(署名時刻情報)
1401 署名付き電子文書(電子署名付き電子データ)
1901 業務フロー付き電子文書(業務フロー付き電子データ)

【特許請求の範囲】
【請求項1】
電子署名に用いられる署名鍵の検証方法であって、
情報処理装置が、
前記署名鍵が更新された場合に、前記署名鍵を特定する鍵IDと、更新後の新たな署名鍵に付与される前記鍵IDと、前記更新が行われた更新時刻に基づく情報である更新時刻情報とを対応づけて記憶し、
検証対象となる電子署名に用いられた署名鍵の鍵IDと、前記電子署名が行われた署名時刻に基づく情報である署名時刻情報とを受け付け、
受け付けた前記鍵IDに対応づけて記憶している前記更新時刻情報のうち、最新の更新時刻情報によって特定される前記更新時刻と、受け付けた前記署名時刻情報によって特定される前記署名時刻との時間的な前後関係を比較すること
を特徴とする署名鍵の検証方法。
【請求項2】
請求項1に記載の署名鍵の検証方法であって、
前記情報処理装置は、タイムスタンプサーバと通信可能に接続し、
前記タイムスタンプサーバは、前記情報処理装置からの要求に応じて過去に生成した前記更新時刻情報を時系列順に記憶し、
前記タイムスタンプサーバは、直近に生成した前記更新時刻情報と、前記要求とともに前記情報処理装置から送られてくる前記鍵IDと、現在時刻とに基づいて、前記更新時刻情報を生成し、
前記タイムスタンプサーバは、生成した前記更新時刻情報を前記情報処理装置に送信すること
を特徴とする署名鍵の検証方法。
【請求項3】
請求項2に記載の署名鍵の検証方法であって、
前記タイムスタンプサーバは、自身が記憶している過去に生成した所定期間分の前記更新時刻情報を、時刻保証業務を行っている第三者機関のサーバに随時送信し、
前記タイムスタンプサーバは、前記第三者機関のサーバから、前記第三者機関のサーバが前記送信した過去の前記更新時刻情報に基づいて生成した前記更新時刻情報を受信し、
前記タイムスタンプサーバは、受信した前記更新時刻情報を、前記過去の更新時刻情報として記憶すること
を特徴とする署名鍵の検証方法。
【請求項4】
電子署名方法であって、
情報処理装置が、
電子データに対して電子署名を付した場合に、前記電子署名と前記電子署名を付した時刻に基づく情報である署名時刻情報とを対応づけて記憶し、
時刻保証業務を行う第三者機関のサーバ又はそれ以外の前記署名時刻情報の取得先が指定されているポリシーデータを記憶し、
前記電子署名と前記署名時刻情報とを対応づけて記憶する際、前記ポリシーデータに指定されている前記取得先から前記署名時刻情報を取得して、前記電子署名と取得した前記署名時刻情報とを対応づけて記憶すること
を特徴とする電子署名方法。
【請求項5】
電子署名の検証方法であって、
情報処理装置が、
電子データに対して電子署名を付した場合に、前記電子署名と、前記電子署名に用いた署名鍵の鍵IDと、前記署名鍵とを対応づけて記憶し、
検証対象となる電子署名と、当該電子署名に用いた署名鍵の鍵IDに対応づけて記憶している署名鍵を用いて生成した電子署名とを比較し、かつ、前記検証対象の電子署名と、記憶している電子署名とを比較することにより電子署名の検証を行うこと
を特徴とする電子署名の検証方法。
【請求項6】
請求項5に記載の電子署名の検証方法であって、
前記情報処理装置は、タイムスタンプサーバと通信可能に接続し、
前記情報処理装置は、前記電子署名を付した時刻に基づく情報である署名時刻情報を前記タイムスタンプサーバに要求し、
前記タイムスタンプサーバは、前記要求に応じて生成した前記署名時刻情報を前記情報処理装置に送信し、
前記タイムスタンプサーバは、前記要求に応じて過去に生成した前記署名時刻情報を時系列順に記憶し、
前記タイムスタンプサーバは、自身が記憶している過去に生成した所定期間分の前記署名時刻情報を、時刻保証業務を行う第三者機関のサーバに随時送信し、
前記タイムスタンプサーバは、前記第三者機関のサーバから、前記送信した過去の前記署名時刻情報に基づいて前記第三者機関のサーバが生成した前記署名時刻情報を受信し、
前記情報処理装置は、前記タイムスタンプサーバに、検証対象の前記電子署名についての前記署名時刻情報を含む所定期間分の前記署名時刻情報と、前記所定期間分の前記署名時刻情報に時間的に前後に位置する、前記タイムスタンプサーバが前記第三者機関のサーバから受信した2つの前記署名時刻情報とを要求し、
前記タイムスタンプサーバは、前記所定期間分の前記署名時刻情報と、自身が前記第三者機関のサーバから受信した2つの前記署名時刻情報とを送信し、
前記情報処理装置は、前記所定期間分の署名時刻情報と、前記タイムスタンプサーバが前記第三者機関のサーバから受信した2つの前記署名時刻情報とを受信し、
前記情報処理装置は、前記所定期間分の各前記署名時刻情報及び当該各前記署名時刻情報に時間的に後に位置する前記第三者機関のサーバから受信した前記署名時刻情報のそれぞれについて、それぞれの時間的に直前に位置する前記署名時刻情報に基づいて署名時刻情報を生成し、生成した前記署名時刻情報の時間的な前後関係を比較すること、
を特徴とする電子署名の検証方法。
【請求項7】
電子署名の検証方法であって、
情報処理装置が、
電子署名の対象となる電子データに業務フローが含まれており、かつ、前記電子データに対して既に前記業務フローに関する電子署名が付されている場合には、受け付けた前記電子データ及び当該電子データに付されている前記電子署名を含むデータの全体に対して電子署名を新たに付し、
前記電子データについての前記電子署名の検証に際し、前記電子データに付されている前記複数の電子署名のそれぞれについて、前記電子署名と、前記電子署名よりも前に付されている電子署名及び前記電子データの全体に基づいて生成した電子署名とを比較すること
を特徴とする電子署名の検証方法。
【請求項8】
電子署名に用いられる署名鍵が更新された場合に、前記署名鍵を特定する鍵IDと、更新後の新たな署名鍵に付与される前記鍵IDと、前記更新が行われた更新時刻に基づく情報である更新時刻情報とを対応づけて記憶する手段と、
検証対象となる電子署名に用いられた署名鍵の鍵ID及び前記電子署名が行われた署名時刻に基づく情報である署名時刻情報を受け付ける手段と、
受け付けた前記鍵IDに対応づけて記憶している前記更新時刻のうち最新の更新時刻と前記署名時刻との時間的な前後関係を比較する手段と、
を備えることを特徴とする情報処理装置。
【請求項9】
電子データに対して電子署名を付した場合に、前記電子署名と前記電子署名を付した時刻に基づく情報である署名時刻情報とを対応づけて記憶する手段と、
時刻保証業務を行う第三者機関のサーバ又はそれ以外の前記署名時刻情報の取得先が指定されているポリシーデータを記憶する手段と、
前記電子署名と前記電子署名を付した時刻に基づく情報である署名時刻情報とを対応づけて記憶する際、前記ポリシーデータに指定されている前記取得先から前記署名時刻情報を取得して、前記電子署名と取得した前記署名時刻情報とを対応づけて記憶する手段と、
を備えることを特徴とする情報処理装置。
【請求項10】
電子データに対して電子署名を付した場合に、前記電子署名と、前記電子署名に用いた署名鍵の鍵IDと、前記署名鍵とを対応づけて記憶する手段と、
検証対象となる電子署名と、当該電子署名に用いた署名鍵の鍵IDに対応づけて記憶している署名鍵を用いて生成した電子署名とを比較し、かつ、前記検証対象の電子署名と、記憶している電子署名とを比較することにより電子署名の検証を行う手段と、
備えることを特徴とする情報処理装置。

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


【公開番号】特開2008−109519(P2008−109519A)
【公開日】平成20年5月8日(2008.5.8)
【国際特許分類】
【出願番号】特願2006−291803(P2006−291803)
【出願日】平成18年10月26日(2006.10.26)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】