(57)【要約】【課題】サービスを提供するアプリケーションをほとんど変更せずに、電子署名による検証を実現する。【解決手段】まず、ＣＬコンピュータ２上で動作するＷｅｂブラウザ２０２とＡＰサーバ５との間で通信により、フォームデータが作成され、署名サーバ３に送信される。署名サーバ３は、フォームデータを、暗合鍵により署名し、ＣＬコンピュータ２に送信する。ＣＬコンピュータ２は、署名サーバ３からの署名を検証し、正常な場合にはＡＰサーバ５上のアプリケーションを呼び出す。ＣＬコンピュータ２は、フォームデータをＸＭＬ形式に変換し、さらに、暗合鍵で署名して署名サーバ３に送る。署名サーバ３は、この署名を検証し、保存する。【選択図】          図１３
2004320589.tif 000002
【特許請求の範囲】
【請求項１】
第１のノードと、第２のノードと、第３のノードとを有する電子署名システムであって、
前記第１のノードは、
所定の伝送データを、前記第３のノードに対して送信する伝送データ送信手段と、
前記第３のノードが送信した第１の電子署名を受信し、前記受信された第１の電子署名を検証する検証手段と、
前記伝送データから、前記第２の電子署名を生成し、前記生成された第２の電子署名を、前記第３のノードに対して送信する第１の署名手段と、
少なくとも前記第１の電子署名が正常と検証されたときに、前記第２のノードに対してアクセスするアクセス手段と
を有し、
前記第３のノードは、
前記送信された伝送データを受信する伝送データ受信手段と、
前記受信された伝送データから、前記第１の電子署名を生成し、前記生成された第１の電子署名を、前記第１のノードに対して送信する第２の署名手段と、
前記送信された第２の電子署名を受信し、前記受信された第２の電子署名を保持する署名保持手段と
を有する
電子署名システム。
【請求項２】
第１のノードに対して電子署名処理を実行させる電子署名装置であって、前記第１のノードは、所定の伝送データを送信し、第１の電子署名を正常と検証したときに、第２のノードに対してアクセスし、前記伝送データから、前記第２の電子署名を生成して送信する電子署名処理を行い、
前記送信された伝送データを受信し、前記受信された伝送データから、前記第１の電子署名を生成する署名生成手段と、
前記生成された第１の電子署名を、前記第１のノードに対して送信する署名送信手段と、
前記送信された第２の電子署名を受信し、前記受信された第２の電子署名を保持する署名保持手段と
を有する電子署名装置。
【請求項３】
前記署名生成手段は、
前記受信された伝送データを、前記電子署名装置に対して設定された秘密鍵を用いて暗号化して第１の暗号化データとし、
前記受信された伝送データと、前記第１の暗号化データとを含む前記前記第１の電子署名を生成し、
前記第１のノードにおける電子署名処理は、
前記第１の電子署名データに含まれる前記第１の暗号化データを、前記電子署名装置に対して設定された公開鍵を用いて復号して前記伝送データとし、
前記第１の電子署名に含まれる伝送データと、前記復号された伝送データとに基づいて、前記第１の電子署名が正常であるか否かを検証する
請求項２に記載の電子署名装置。
【請求項４】
前記署名生成手段は、
前記受信された伝送データのハッシュ値を、前記電子署名装置に対して設定された秘密鍵を用いて暗号化して第１の暗号化データとし、
前記受信された伝送データと、前記生成された第１の暗号化データとを含む前記前記第１の電子署名を生成し、
前記第１のノードにおける電子署名処理は、
前記第１の電子署名データに含まれる前記第１の暗号化データを、前記電子署名装置に対して設定された公開鍵を用いて復号して前記伝送データのハッシュ値とし、
前記第１の電子署名に含まれる伝送データのハッシュ値と、前記復号された伝送データのハッシュ値とに基づいて、前記第１の電子署名が正常であるか否かを検証する
請求項２に記載の電子署名装置。
【請求項５】
前記受信された第２の電子署名を検証する検証手段
をさらに有する請求項２〜４のいずれか３に記載の電子署名装置。
【請求項６】
前記検証手段は、前記保持された第２の電子署名をさらに検証する
請求項５に記載の電子署名装置。
【請求項７】
前記署名保持手段は、前記受信された第２の電子署名が正常と検証されたときに、前記受信された第２の電子署名を保持する
請求項５または６に記載の電子署名装置。
【請求項８】
前記第１のノードにおける電子署名処理は、前記伝送データを、前記第１のノードに対して設定された秘密鍵を用いて暗号化して第２の暗号化データとし、前記伝送データと、前記第２の暗号化データとを含む前記第２の電子署名を生成し、
前記検証手段は、
前記第２の電子署名データに含まれる前記第２の暗号化データを、前記第１のノードに対して設定された公開鍵を用いて復号して前記伝送データとし、
前記第２の電子署名に含まれる伝送データと、前記復号された伝送データとに基づいて、前記第２の電子署名が正常であるか否かを検証する
請求項５〜７のいずれかに記載の電子署名装置。
【請求項９】
前記署名保持手段は、前記第２の暗号化データと、前記伝送データと、前記第１のノードに対して設定された公開鍵とを保持する
請求項８に記載の電子署名装置。
【請求項１０】
前記第１のノードにおける電子署名処理は、前記伝送データに対して所定の変換処理を行って変換データとし、前記変換データを、前記第１のノードに対して設定された秘密鍵を用いて暗号化して第２の暗号化データとし、前記変換データと、前記第２の暗号化データとを含む前記第２の電子署名を生成し、
前記検証手段は、
前記第２の電子署名データに含まれる前記第２の暗号化データを、前記第１のノードに対して設定された公開鍵を用いて復号して前記変換データとし、
前記第２の電子署名に含まれる変換データと、前記復号された変換データとに基づいて、前記第２の電子署名が正常であるか否かを検証する
請求項５〜６のいずれかに記載の電子署名装置。
【請求項１１】
前記署名保持手段は、前記第２の暗号化データと、前記変換データと、前記第１のノードに対して設定された公開鍵とを保持する
請求項１０に記載の電子署名装置。
【請求項１２】
前記第１のノードに対して、前記第１のノードにおける電子署名処理を実行する署名モジュールを送信する署名モジュール送信手段
をさらに有し、
前記第１のノードが、前記送信された署名モジュールを受信して実行することにより、前記第１のノードにおける電子署名処理が実現される
請求項２〜１１のいずれかに記載の電子署名装置。
【請求項１３】
第１のノードに対して電子署名処理を実行させる電子署名方法であって、前記第１のノードは、所定の伝送データを送信し、第１の電子署名を正常と検証したときに、第２のノードに対してアクセスし、前記伝送データから、前記第２の電子署名を生成して送信する電子署名処理を行い、
前記送信された伝送データを受信し、前記受信された伝送データから、前記第１の電子署名を生成し、
前記生成された第１の電子署名を、前記第１のノードに対して送信し、
前記送信された第２の電子署名を受信し、前記受信された第２の電子署名を保持する
電子署名方法。
【請求項１４】
第１のノードに対して電子署名処理を実行させるプログラムであって、前記第１のノードは、所定の伝送データを送信し、第１の電子署名を正常と検証したときに、第２のノードに対してアクセスし、前記伝送データから、前記第２の電子署名を生成して送信する電子署名処理を行い、
前記送信された伝送データを受信し、前記受信された伝送データから、前記第１の電子署名を生成するステップと、
前記生成された第１の電子署名を、前記第１のノードに対して送信するステップと、
前記送信された第２の電子署名を受信し、前記受信された第２の電子署名を保持するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報セキュリティを保持するための電子署名システムおよびその方法に関する。
【０００２】
【従来の技術】
例えば、特許文献１，２は、電子署名を用いて文書データを保存する方法を開示する。
特許文献１，２に開示された電子署名を行うためには、一般に、クライアントに対してサービスを提供するアプリケーションに対する大幅な変更が必要とされる。
このことが、電子署名の普及の障壁になっているという意見もある。
また、非特許文献１には、「Ｔｒｕｅ  Ｐａｓｓ（商標）」と呼ばれる電子署名システムが開示されている。
【０００３】
【特許文献１】特開２００２−２１５８２７号公報
【特許文献２】特開２００２−１８３６５３号公報
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｅｎｔｒｕｓｔ．ｃｏ．ｊｐ／ｐｒｏｄｕｃｔｓ／ｔｒｕｅｐａｓｓ６０．ｈｔｍｌ
【０００４】
【発明が解決しようとする課題】
本発明は、上述した背景からなされたものであり、サービスを提供するアプリケーションをほとんど変更せずに、電子署名処理を実現可能な電子署名システムおよびその方法を提供することを目的とする。
また、本発明は、上述した非特許文献１に開示された方法とは異なる電子署名システムおよびその方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
［電子署名システム］
上記目的を達成するために、本発明に係る電子署名システムは、第１のノードと、第２のノードと、第３のノードとを有する電子署名システムであって、前記第１のノードは、所定の伝送データを、前記第３のノードに対して送信する伝送データ送信手段と、前記第３のノードが送信した第１の電子署名を受信し、前記受信された第１の電子署名を検証する検証手段と、前記伝送データから、前記第２の電子署名を生成し、前記生成された第２の電子署名を、前記第３のノードに対して送信する第１の署名手段と、少なくとも前記第１の電子署名が正常と検証されたときに、前記第２のノードに対してアクセスするアクセス手段とを有し、前記第３のノードは、前記送信された伝送データを受信する伝送データ受信手段と、前記受信された伝送データから、前記第１の電子署名を生成し、前記生成された第１の電子署名を、前記第１のノードに対して送信する第２の署名手段と、前記送信された第２の電子署名を受信し、前記受信された第２の電子署名を保持する署名保持手段とを有する。
【０００６】
［電子署名装置］
また、本発明に係る電子署名装置は、第１のノードに対して電子署名処理を実行させる電子署名装置であって、前記第１のノードは、所定の伝送データを送信し、第１の電子署名を正常と検証したときに、第２のノードに対してアクセスし、前記伝送データから、前記第２の電子署名を生成して送信する電子署名処理を行い、前記送信された伝送データを受信し、前記受信された伝送データから、前記第１の電子署名を生成する署名生成手段と、前記生成された第１の電子署名を、前記第１のノードに対して送信する署名送信手段と、前記送信された第２の電子署名を受信し、前記受信された第２の電子署名を保持する署名保持手段とを有する。
【０００７】
［電子署名方法］
また、本発明に係る電子署名装置は、第１のノードに対して電子署名処理を実行させる電子署名方法であって、前記第１のノードは、所定の伝送データを送信し、第１の電子署名を正常と検証したときに、第２のノードに対してアクセスし、前記伝送データから、前記第２の電子署名を生成して送信する電子署名処理を行い、前記送信された伝送データを受信し、前記受信された伝送データから、前記第１の電子署名を生成し、前記生成された第１の電子署名を、前記第１のノードに対して送信し、前記送信された第２の電子署名を受信し、前記受信された第２の電子署名を保持する。
【０００８】
［プログラム］
また、本発明に係るプログラムは、第１のノードに対して電子署名処理を実行させるプログラムであって、前記第１のノードは、所定の伝送データを送信し、第１の電子署名を正常と検証したときに、第２のノードに対してアクセスし、前記伝送データから、前記第２の電子署名を生成して送信する電子署名処理を行い、
前記送信された伝送データを受信し、前記受信された伝送データから、前記第１の電子署名を生成するステップと、前記生成された第１の電子署名を、前記第１のノードに対して送信するステップと、前記送信された第２の電子署名を受信し、前記受信された第２の電子署名を保持するステップとをコンピュータに実行させる。
【０００９】
【発明の実施の形態】
以下、本発明の実施形態を説明する。
【００１０】
［ネットワークシステム１］
図１は、本発明に係る電子署名方法が適応されるネットワークシステム１の構成を示す図である。
図１に示すように、ネットワークシステム１は、ｍ台（ｍ≧１；図１においてはｍ＝３）のクライアントコンピュータ（ＣＬコンピュータ）２−１〜２−３と、署名サーバ３およびログデータベース（ログＤＢ）４と、アプリケーションサーバ（ＡＰサーバ）５とが、ＬＡＮ、ＷＡＮあるいはインターネットなどのネットワーク１０を介して接続された構成を採る。
【００１１】
なお、以下、ＣＬコンピュータ２−１〜２−３など、複数ある構成部分のいずれかを、特定せずに示す場合には、単にＣＬコンピュータ２などと略記する場合がある。
また、以下、ＣＬコンピュータ２、署名サーバ３、ログＤＢ４およびＡＰサーバ５などを総称して、ノードと記載することがある。
ネットワークシステム１においては、これらの構成により、ＣＬコンピュータ２と署名サーバ３との間で電子署名処理が行われ、ＡＰサーバ５からＣＬコンピュータ２に対して様々なサービス・機能が提供される。
なお、ＣＬコンピュータ２、署名サーバ３、ＡＰサーバ５との間の通信に用いられるプロトコルは何でもよいが、以下、これらの間で、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）により通信が行われる場合を具体例とする。
【００１２】
［ハードウェア構成］
図２は、図１に示したＣＬコンピュータ２、署名サーバ３、ログＤＢ４およびＡＰサーバ５のハードウェア構成を例示する図である。
図２に示すように、ＣＬコンピュータ２、署名サーバ３、ログＤＢ４およびＡＰサーバ５は、ＣＰＵ１０２、メモリ１０４およびこれらの周辺回路などを含む本体１００、表示装置、キーボードおよびマウスなどを含む表示・入力装置１０６、ネットワークシステム１あるいは他のノードとの通信を行う通信装置１１０、および、ＨＤ装置およびＣＤ装置などの記録装置１１２から構成される。
つまり、ＣＬコンピュータ２、署名サーバ３、ログＤＢ４およびＡＰサーバ５は、通信機能を有するコンピュータとしての構成部分を有している。
【００１３】
［ＡＰサーバ５］
図３は、図１，図２に示したＡＰサーバ５が、ＣＬコンピュータ２に送信する入力フォームが示すＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画像を例示する図である。
図４は、図３に示した入力フォームの伝送に用いられる伝送フレームを例示する図である。
なお、以下、各伝送フレームを示す図においては、本発明の説明に関連がないデータは、適宜、省略されている。
【００１４】
ＡＰサーバ５は、例えば、Ｗｅｂアプリケーションを動作させるＷｅｂサーバであって、ＣＬコンピュータ２との間で通信を行って、ＣＬコンピュータ２のユーザに対して、様々な機能・サービスの提供を行う。
ＡＰサーバ５は、必要に応じて、図３に例示するように、ＣＬコンピュータのユーザに対して、入力すべきデータの項目を示し、データの入力を促す入力フォームを、ＣＬコンピュータ２に対して送信する。
【００１５】
つまり、例えば、ＣＬコンピュータ２のユーザが、商品を注文するための操作を行ったときに、この操作を受けたＡＰサーバ５は、ＸＭＬあるいはＨＴＭＬにより記述された商品注文受付用のＧＵＩ画像（図３）を、ＣＬコンピュータ２の表示・入力装置１０６（図２）に表示させる入力フォームを、ＣＬコンピュータ２に対して送信する。
なお、この入力フォームは、例えば、図４に例示するように、送信先のＵＲＬとしてＣＬコンピュータ２のＵＲＬを含み、送信元のＵＲＬとしてＡＰサーバ５のＵＲＬを含む伝送フォーマットに収容されて伝送される。
また、図４に示した各データは、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）などの方式により暗号化され、ノード間を伝送されてもよい（以下、各伝送フレームについての説明において同じ）。
【００１６】
［フォームデータ］
図５は、図３に対するユーザによるデータ入力操作を例示する図である。
図５に例示するように、ＣＬコンピュータ２の表示・入力装置１０６に表示された入力フォームの各項目に対してユーザがデータを入力する操作を行うと、ＣＬコンピュータ２において、下表１に示すように、ＨＴＴＰ形式のフォームデータが生成される。
なお、以下の表１，２においては、本発明に係る電子署名方法の説明に関係がないデータは、適宜、省略されている。
このフォームデータには、図３に示した入力フォームの各項目を示すデータと、これらの項目それぞれに対して、図５に示したようにユーザが入力したデータそれぞれとが、対応付けられて含まれている。
【００１７】
【表１】
2004320589.tif 000003
【００１８】
なお、表１に示したフォームデータと同じ内容を、例えば、ＨＴＴＰよりも拡張性および汎用性に優れているＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述すると、下表２に示すように、入力フォームの各項目に対して入力されたデータが、各項目を示すタグで仕切られて含まれるフォームデータ（以下の説明において、ＸＭＬで記述されたフォームデータを、ＸＭＬデータとも記す）が得られる。
【００１９】
【表２】
2004320589.tif 000004
【００２０】
［ログＤＢ４］
ログＤＢ４は、署名サーバ３が生成したログ（図６，図１０などを参照して後述）を記憶し、管理する。
また、ログＤＢ４は、署名サーバ３からの検索に応じて、記憶・管理したログを、署名サーバ３に対して出力する。
【００２１】
［署名サーバプログラム３０］
図６は、図１，図２に示した署名サーバ３上で実行される署名サーバプログラム３０の構成を示す図である。
なお、図示の簡略化・明確化のために、以下の各構成図においては、データなどの流れを示す線は、適宜、省略されることがある。
図６に示すように、署名サーバプログラム３０は、ユーザインターフェース部（ＵＩ部）３００、サーバ側秘密鍵記憶部３０２、通信制御部３０８およびサーバ側署名モジュール（ＳＳＭ）３２から構成される。
ＳＳＭ３２は、署名制御部３２０、ハッシュ値生成部３２２、署名生成部３２４、クライアント側署名モジュール（ＣＬＳＭ）送信部３２６、ＸＭＬ署名検証部３３０、ログ生成部３３２およびログ検証部３３４から構成される。
【００２２】
なお、署名サーバ３とＡＰサーバ５とは、必ずしも別々に構成される必要はなく、署名サーバプログラム３０は、ＡＰサーバ５の機能を提供するアプリケーションを含んでいてもよい。
また、同様に、署名サーバ３とログＤＢ４とは必ずしも別々に構成される必要はなく、これらは一体に構成されてもよい。
署名サーバプログラム３０は、例えば、記録媒体１１４（図２）を介して署名サーバ３に供給され、メモリ１０４にロードされて実行される。
署名サーバプログラム３０は、これらの構成部分により、例えば、ＣＬコンピュータ２からフォームデータ（表１）を受けたときに、電子署名処理を行う。
【００２３】
署名サーバプログラム３０において、ＵＩ部３００は、署名サーバ３の表示・入力装置１０６（図２）に対するユーザの操作を受け入れて、必要なデータを署名サーバプログラム３０の構成部分に対して出力する。
また、ＵＩ部３００は、署名サーバプログラム３０の動作状態、および、他のノードから受信されたデータなどを、表示・入力装置１０６に対して表示する。
サーバ側秘密鍵記憶部３０２は、例えば、ＵＩ部３００を介して署名サーバ３に設定された秘密鍵を記憶し、署名生成部３２４に対して出力する。
通信制御部３０８は、他のノードとの間の通信に必要な通信制御を行う。
【００２４】
ＳＳＭ３２において、署名制御部３２０は、ＳＳＭ３２の各構成部分の処理を制御し、ログＤＢ４およびＡＰサーバ５との間の電子署名処理を実現する。
また、署名制御部３２０は、他のノードから通信制御部３０８を介してデータを受信し、電子署名処理に必要なデータを、ＳＳＭ３２の各構成部分に対して出力する。
また、署名制御部３２０は、ＳＳＭ３２の各構成部分から入力されたデータを、必要に応じて、通信制御部３０８を介して他のノードに対して送信する。
【００２５】
図７は、ＣＬコンピュータ２が署名サーバ３に対してフォームデータを送信するために用いる伝送フレームを例示する図である。
ＣＬコンピュータ２（ＣＬＳＭ２２；図１１）において生成されたフォームデータは、ＡＰサーバ５に対してではなく、署名サーバ３に対して送信される。
このフォームデータの伝送のためには、例えば、図７に示すように、送信先として署名サーバ３のＵＲＬを含み、送信元ＵＲＬとしてＣＬコンピュータ２のＵＲＬを含み、さらに、フォームデータを含む伝送フレームが用いられる。
ハッシュ値生成部３２２は、ＣＬコンピュータ２から、通信制御部３０８を介して署名制御部３２０が受信したフォームデータのハッシュ値を生成する。
ハッシュ値生成部３２２は、生成したフォームデータのハッシュ値を、署名生成部３２４に対して出力する。
【００２６】
署名生成部３２４は、生成されたフォームデータのハッシュ値を、署名サーバ３に対して設定され、サーバ側秘密鍵記憶部３０２に記憶されている秘密鍵を用いて暗号化し、サーバ側署名とする。
署名生成部３２４は、署名制御部３２０から入力されるフォームデータと、サーバ側署名とを、ＣＬＳＭ送信部３２６に対して出力する。
【００２７】
なお、ハッシュ値生成部３２２は、ＳＳＭ３２において必須ではなく、署名生成部３２４は、ハッシュ値とされていないフォームデータ自体（表１）を署名サーバ３の秘密鍵により暗号化して、サーバ側署名とし、このサーバ側署名と、フォームデータとを、ＣＬＳＭ送信部３２６に対して送信してもよい。
一方、ハッシュ値生成部３２２は、フォームデータから一定のデータ長（例えば１２８バイト）のハッシュ値を生成する。
従って、ハッシュ値生成部３２２を用いると、フォームデータが、非常に長いようなときには、ネットワーク１０（図１）を介して伝送するデータ量を減らすことができ、電子署名処理を効率化することができる。
以下、本発明に係る電子署名方法の明確化のために、ハッシュ値生成部３２２が用いられる場合を具体例とする。
【００２８】
図８は、図６に示したＣＬＳＭ送信部３２６が、ＣＬＳＭ２２（図１１）をＣＬコンピュータ２に対して送信するために用いる伝送フレームを例示する図である。
ＣＬＳＭ送信部３２６は、署名生成部３２４から入力されたサーバ側署名と、フォームデータと、ＣＬコンピュータ２にダウンロードされて実行されるＣＬＳＭ２２（図１１を参照して後述）とを、署名制御部３２０および通信制御部３０８などを介して、ＣＬコンピュータ２に対して送信する。
【００２９】
ＣＬＳＭ送信部３２６は、例えば、図８に示す伝送フレームを用いて、サーバ側署名と、フォームデータとを初期値として付して、ＣＬＳＭ２２を、ＣＬコンピュータ２に対して送信する。
この伝送フレームには、送信先ＵＲＬとしてＣＬコンピュータ２のＵＲＬが含まれ、送信元ＵＲＬとして署名サーバ３のＵＲＬが含まれる。
【００３０】
図９は、ＣＬコンピュータ２上で実行されるＣＬＳＭ２２から署名サーバ３に対して、ＸＭＬデータ（表２）などを伝送するために用いられる伝送フレームを例示する図である。
ＣＬコンピュータ２上で実行されるＣＬＳＭ２２（図１１）は、上述のように署名サーバ３から伝送されてきたＨＴＴＰ形式のフォームデータ（場合によってはＣＬコンピュータ２において生成されたフォームデータ；表１）を、ＸＭＬ形式のフォームデータ（ＸＭＬデータ；表２）に変換する。
ＣＬコンピュータ２は、ＸＭＬデータを、ＣＬコンピュータ２の秘密鍵によりＸＭＬデータを暗号化して得られる署名（以下、ＸＭＬ署名とも記す）、および、ＣＬコンピュータ２の公開鍵を含む証明書（公開鍵証明書）とともに、署名サーバ３に対して伝送する。
【００３１】
ＸＭＬ署名検証部３３０は、図９に示したようにＣＬＳＭ２２から送られてきたＸＭＬ署名を、公開鍵証明書に含まれるＣＬコンピュータ２の公開鍵を用いて復号してＸＭＬデータ（表２）とし、ＣＬＳＭ２２から送られてきたＸＭＬデータと、復号の結果として得られたＸＭＬデータとを比較する。
ＸＭＬ署名検証部２２０は、これらのＸＭＬデータが一致するときには、ＣＬＳＭ２２から送られてきたＸＭＬ署名が正常であると検証し、これらが一致しない場合には、ＣＬＳＭ２２から送られてきたＸＭＬ署名に異常が生じていると検証する。
このように、ＸＭＬ署名検証部３３０は、ＣＬコンピュータ２（ＣＬＳＭ２２）の認証と、ＣＬＳＭ２２から送られてきたＸＭＬデータに改ざんが加えられているか否かを検証する。
ＸＭＬ署名検証部３３０は、ＸＭＬ署名に異常が生じている場合には、ＣＬコンピュータ２（ＣＬＳＭ２２）に対して、その旨を通知する。
【００３２】
図１０は、図６に示したログ生成部３３２が生成するログを例示する図である。
ログ生成部３３２は、ＣＬコンピュータ２からＸＭＬデータ、ＸＭＬ署名および公開鍵証明書を含むデータ（図９）が送られてくると、署名制御部３２０を介してこれらを受け、図１０に示すように、これらＸＭＬデータ、ＸＭＬ署名および公開鍵証明書を含むログを生成し、ログＤＢ４に記憶させる。
【００３３】
ログ検証部３３４は、署名サーバ３に対するユーザの操作、あるいは、ＣＬコンピュータ２からの要求に応じて、ログＤＢ４に対する検索を行い、正当性の検証が要求されたログ読み出し、読み出したログの正当性を検証する。
ログ検証部３４４は、読み出したログ（図１０）に含まれるＸＭＬ署名を、公開鍵証明書に含まれる公開鍵を用いて復号してＸＭＬデータとし、復号の結果として得られたＸＭＬデータと、ログに含まれるＸＭＬデータとが一致した場合に、読み出したログが正常であると検証し、一致しない場合に、このログが異常を示すと検証する。
【００３４】
［ＣＬプログラム２０］
図１１は、図１，図２に示したＣＬコンピュータ２上で実行されるクライアントプログラム（ＣＬプログラム）２０の構成を示す図である。
図１１に示すように、ＣＬプログラム２０は、ＵＩ部２００、Ｗｅｂブラウザ２０２、通信制御部２０６、ダウンローダ２０８、サーバ公開鍵記憶部２１０、クライアント秘密鍵記憶部（ＣＬ秘密鍵記憶部）２１２およびＣＬＳＭ２２から構成される。
ＣＬＳＭ２２は、受信処理部２２０、署名検証部２２２、ＸＭＬデータ生成部２２４、署名生成部２２６、送信処理部２２８およびアプリケーション呼出部（ＡＰ呼出部）２３０から構成される。
【００３５】
ＣＬプログラム２０の内、ＣＬＳＭ２２以外の各構成部分は、例えば、記録媒体１１４（図２）を介してＣＬコンピュータ２に供給され、メモリ１０４にロードされて実行される。
ＣＬＳＭ２２は、署名サーバプログラム３０のＣＬＳＭ送信部３２６により、署名サーバ３からＣＬコンピュータ２にダウンロードされ、実行される。
ＣＬプログラム２０は、これらの構成部分により、ＣＬコンピュータ２とＡＰサーバ５との間の通信、および、ＣＬコンピュータ２と署名サーバ３との間の電子署名処理を行う。
なお、ＣＬＳＭ２２は、電子署名処理が行われるたびに署名サーバからＣＬコンピュータ２にダウンロードされ、電子署名処理が終わるたびに消去されてもよく、あるいは、一度、ＣＬコンピュータ２にダウンロードされた後に、継続的に、ＣＬコンピュータ２において使用されてもよい。
【００３６】
ＵＩ部２００は、表示・入力装置１０６（図２）に対するユーザの操作を受け入れて、処理に必要なデータを、ＣＬプログラム２０の各構成要素に対して出力する。
また、ＵＩ部２００は、ＣＬプログラム２０の動作状態、および、Ｗｅｂブラウザ２０２から入力される画像などを、表示・入力装置１０６に表示する。
【００３７】
また、ＵＩ部２００は、ＡＰサーバ５からＷｅｂブラウザ２０２などを介して入力フォーム（図３）を受け入れ、ＣＬコンピュータ２の表示・入力装置１０６（図２）に表示する。
さらに、ＵＩ部２００は、表示した入力フォームに対するユーザの操作（図５）を受け入れてフォームデータ（表１）を生成し、Ｗｅｂブラウザ２０２および通信制御部２０６を介して、署名サーバ３に対して送信する。
なお、図１１に点線で示すように、ＣＬＳＭ２２のＸＭＬデータ生成部２２４が、ＵＩ部２００が生成したフォームデータからＸＭＬデータを作成する場合、あるいは、署名検証部２２２が、ＵＩ部２００が生成したフォームデータを用いてＸＭＬ署名の検証を行う場合には、ＵＩ部２００からＸＭＬデータ生成部２２４および署名検証部２２２に対して、フォームデータが出力される。
【００３８】
Ｗｅｂブラウザ２０２は、ＷＷＷ閲覧のための機能を提供する。
また、Ｗｅｂブラウザ２０２は、電子署名処理に必要なデータをＣＬＳＭ２２に対して出力し、また、ＣＬＳＭ２２から入力されるデータを、他のノードに対して送信する。
通信制御部２０６は、ＣＬコンピュータ２と他のノードとの間の通信に必要とされる通信制御を行う。
ダウンローダ２０８は、署名サーバ３（ＣＬＳＭ送信部３２６）から伝送されてきたＣＬＳＭ２２を、例えば、Ｗｅｂブラウザ２２０を介して受け、メモリ１０４上にロードして実行可能な状態とする。
サーバ公開鍵記憶部２１０は、ＵＩ部２００などを介して入力される署名サーバ３の公開鍵を記憶し、ＣＬＳＭ２２の署名検証部２２２に対して出力する。
ＣＬ秘密鍵記憶部２１２は、ＵＩ部２００などを介して入力されるＣＬコンピュータ２側の秘密鍵を記憶し、ＣＬＳＭ２２の署名生成部２２６に対して出力する。
【００３９】
ＣＬＳＭ２２において、受信処理部２２０は、通信制御部２０６およびＷｅｂブラウザ２０２などを介して他のノードから送られてくる電子署名に関するデータを受信し、ＳＳＭ３２の各構成部分に対して出力する。
送信処理部２２８は、ＣＬＳＭ２２の各構成部分から入力される電子署名に関するデータを、通信制御部２０６およびＷｅｂブラウザ２０２などを介して、他のノードに対して送信する。
【００４０】
署名検証部２２２は、図６に示したように、署名サーバ３からＣＬＳＭ２２などとともに送られてきたサーバ側署名を、サーバ公開鍵記憶部２１０に記憶されている署名サーバ３の公開鍵を用いて復号し、ＨＴＴＰ形式のフォームデータ（表１）とする。
署名検証部２２２は、署名サーバ３からＣＬＳＭ２２などとともに送られてきたフォームデータ（場合によってはＵＩ部２００から入力されたフォームデータ；表１）と、上記復号の結果として得られたフォームデータとが一致する場合に、署名サーバ３から送られてきたフォームデータが正常であると検証し、一致しない場合には、署名サーバ３から送られてきたフォームデータに異常が生じていると判断する。
このように、署名検証部２２２は、署名サーバ３の認証と、送られてきたデータに対する改ざんが行われたか否かの検証とを行う。
【００４１】
ＸＭＬデータ生成部２２４は、署名検証部２２２から入力されるＨＴＴＰ形式のフォームデータ（場合によってはＵＩ部２００から入力されるフォームデータ；表１）を、ＸＭＬ形式に変換し、ＸＭＬデータ（表２）とする。
なお、以下、説明の明確化のために、ＸＭＬデータ生成部２２４が、他の形式のフォームデータをＸＭＬ形式に変換する場合を具体例とする。
しかしながら、ＸＭＬデータ生成部２２４は、ＣＬＳＭ２２にとって必須ではなく、署名生成部２２６は、ＸＭＬ形式に変換されないフォームデータから署名を作成してもよい。
【００４２】
署名生成部２２６は、ＸＭＬデータ生成部２２４から入力されるＸＭＬデータを、ＣＬ秘密鍵記憶部２１２から入力されるＣＬコンピュータ２の秘密鍵を用いて暗号化し、ＸＭＬ署名とする。
このように、署名生成部２２６が、ＸＭＬデータのハッシュ値を、ＣＬコンピュータ２の秘密鍵で暗号化してＸＭＬ署名とすることにより、署名サーバ３側における、ＸＭＬ署名の改ざんが不可能になる。
【００４３】
署名検証部２２２が、署名サーバ３から送られてきたフォームデータが正当であるという検証結果を出したとき、送信処理部２２８は、ＸＭＬデータと、署名生成部２２６から入力されるＸＭＬ署名および公開鍵証明書とを含むデータ（図９）を、署名サーバ３に対して送信する。
送信処理部２２８は、データの宛先（送信先）のＵＲＬを、ＡＰサーバ５のＵＲＬから署名サーバ３のＵＲＬとし、送信元のＵＲＬをＣＬコンピュータ２のＵＲＬとして、図９に示したデータを生成する。
署名検証部２２２が、署名サーバ３から送られてきたフォームデータが正当でないとという検証結果を出したときには、送信処理部２２８は、署名サーバ３に対して、その旨を通知するデータを、署名サーバ３に対して送信する。
【００４４】
図１２は、図１１に示したＣＬＳＭ２２からＡＰサーバ５に対してフォームデータを送るために用いられる伝送フレームを示す図である。
署名検証部２２２が、署名サーバ３から送られてきたフォームデータが正当であると検証したときには、ＡＰ呼出部２３０は、ＡＰサーバ５に対して、フォームデータを送信し、ＡＰサーバ５上のアプリケーションを呼び出して、そのサービスの提供を受ける。
【００４５】
ＡＰ呼出部２３０は、図１２に示すように、送信先のＵＲＬとしてＡＰサーバ５のＵＲＬを含み、送信元のＵＲＬとしてＣＬコンピュータ２のＵＲＬを含み、さらにフォームデータ（表１）を含む伝送フレームを、ＡＰサーバ５に対して送信する。
なお、署名サーバ３において、ＸＭＬ署名が正常と検証されたときに、署名サーバ３からＣＬＳＭ２２に対してその旨が通知されるようにして、ＡＰ呼出部２３０が、この通知を受けた後に、ＡＰサーバ５に対してフォームデータ（表１）を送信するようにしてもよい。
【００４６】
［ネットワークシステム１の動作］
図１３は、ネットワークシステム１（図１など）における電子署名処理が、正常終了する場合（Ｓ１０）の通信シーケンス図である。
図１３に示すように、ステップ１００（Ｓ１００）に示すように、ＣＬコンピュータ２上で動作するＷｅｂブラウザ２０２（図１１）とＡＰサーバ５との間で、一般的な通信が行われる。
ステップ１０２（Ｓ１０２）において、ＣＬコンピュータ２のＷｅｂブラウザ２０２が、ＡＰサーバ５に対して、入力フォーム（図３）の送信を要求する。
【００４７】
ステップ１０４（Ｓ１０４）において、ＡＰサーバ５は、図４に示した伝送フレームを用いて、ＣＬコンピュータ２のＷｅｂブラウザ２０２に対して、入力フォームを送信する。
Ｗｅｂブラウザ２０２は、ＡＰサーバ５から入力フォームを受信して、入力フォームを、ＵＩ部２００を介してＣＬコンピュータ２の表示・入力装置１０６（図２）に表示する。
ユーザが、表示された入力フォームの各項目に対して必要なデータを入力すると、ＵＩ部２００は、フォームデータ（表１）を生成し、Ｗｅｂブラウザ２０２に対して出力する。
【００４８】
ステップ１０６（Ｓ１０６）において、Ｗｅｂブラウザ２０２は、生成されたフォームデータを、ＡＰサーバ５に対して送信する。
ステップ１０８（Ｓ１０８）において、署名サーバ３は、図８に示した伝送フォームを用いて、Ｗｅｂブラウザ２０２に対して、フォームデータと、サーバ側署名と、ＣＬＳＭ２２（図１１）とを送信する。
ダウンローダ２０８は、署名サーバ３からＣＬＳＭ２２を受信してＣＬコンピュータ２にロードし、起動する。
ＣＬＳＭ２２は、署名サーバ３から受信されたサーバ側署名を、正常であると検証する。
【００４９】
ステップ１１０（Ｓ１１０）において、ＣＬＳＭ２２は、ＸＭＬデータと、ＸＭＬ署名と、ＸＭＬ署名の公開鍵証明書を作成し、図９に示した伝送フレームを用いて、署名サーバ３に対して送信する。
ステップ１１２（Ｓ１１２）において、署名サーバ３は、ＣＬコンピュータ２のＣＬＳＭ２２から送られてきたＸＭＬ署名を、正常であると検証し、図１０に示したログを生成し、ログＤＢ４に記憶する。
【００５０】
ステップ１１４（Ｓ１１４）において、ＣＬＳＭ２２は、ＡＰサーバ５にアクセスし、アプリケーションの呼び出しを行う。
ステップ１１６（Ｓ１１６）において、ＣＬコンピュータ２とＡＰサーバ５との間で、呼び出されたアプリケーションによるサービスを提供するための通信が行われる。
【００５１】
なお、既に述べたように、図１３に点線で示すように、署名サーバ３が、ＣＬＳＭ２２に対して、ＸＭＬ署名が正常と検証されたことを通知（ＡＣＫを送出）するようにして、このＡＣＫを待って、ＣＬＳＭ２２がアプリケーションの呼び出しを行うようにしてもよい。
図１３を参照すると分かるように、本発明に係る電子署名方式を組み込んでも、既存のシステムにおける通信シーケンスを、ほとんど変更しなくて済む。
つまり、既存の通信シーケンスに、Ｓ１０８〜Ｓ１１２までの処理を追加し、Ｓ１０８の処理における送信先を、ＡＰサーバ５のＵＲＬから署名サーバ３のＵＲＬに変更するだけでよい。
従って、本発明に係る電子署名方式によれば、既存の通信システムに対して適応しやすく、容易に、既存の通信システムに、電子認証処理機能を追加することができる。
【００５２】
図１４は、ネットワークシステム１（図１など）における電子署名処理が、サーバ署名が異常と検証されて終了する場合（Ｓ１２）の通信シーケンス図である。
なお、以下の各シーケンス図において、実質的に共通な処理には、共通の符号が付してある。
Ｓ１００〜Ｓ１０８の処理において、図１３に示したように、ＡＰサーバ５との間の通信から、ＣＬＳＭ２２の実行までの処理が行われる。
【００５３】
ステップ１２０（Ｓ１２０）において、ＣＬＳＭ２２は、署名サーバ３から受信したサーバ側署名が、異常であると検証し、異常処理を行い、さらに、サーバ側署名が異常であると検証された旨を、Ｗｅｂブラウザ２０２を介して、ＣＬコンピュータ２の表示・入力装置１０６（図２）に表示する。
ステップ１２２（Ｓ１２２）において、ＣＬＳＭ２２は、署名サーバ３に対して、サーバ側署名が異常であると検証された旨を通知する。
この通知を受けて、署名サーバ３は、異常処理を行う。
【００５４】
図１５は、ネットワークシステム１（図１など）における電子署名処理が、ＸＭＬ署名が異常と検証されて終了する場合（Ｓ１４）の通信シーケンス図である。
Ｓ１００〜Ｓ１１０の処理において、図１３に示したように、ＡＰサーバ５との間の通信から、ＸＭＬ署名などの送信までの処理が行われる。
【００５５】
ステップ１４０（Ｓ１４０）において、署名サーバ３は、ＣＬＳＭ２２から送られてきたＸＭＬ署名が異常であると検証する。
署名サーバ３は、異常処理を行い、ＣＬＳＭ２２に対して、ＸＭＬ署名が異常であると検証された旨を通知する。
ステップ１４２（Ｓ１４２）において、ＣＬＳＭ２２は、Ｗｅｂブラウザ２０２を介して、ＣＬコンピュータ２の表示・入力装置１０６に、ＸＭＬ署名が異常であると検証された旨を通知する。
【００５６】
図１６は、ＣＬコンピュータ２（図１，図２など）が、署名サーバ３にＸＭＬ署名の検証を要求し、署名サーバ３が、ログの検証を行う場合（Ｓ１６）を示す通信シーケンス図である。
図１６に示すように、ステップ１６０（Ｓ１６０）において、ＣＬコンピュータ２は、ユーザの操作に応じて、ＸＭＬ署名の検証要求を、署名サーバ３に対して送信する。
【００５７】
ステップ１６２（Ｓ１６２）において、署名サーバ３は、ログＤＢ４を検索して、検証の対象となるログを取り出す。
ステップ１６４（Ｓ１６４）において、署名サーバ３は、ログに対する検証の結果を、ＣＬコンピュータ２に通知する。
【００５８】
［変形例］
ＣＬコンピュータ２が、署名サーバ３からＸＭＬ署名を受けるようにして、上記ＸＭＬ署名などの検証処理を、ＣＬコンピュータ２が行うようにしてもよい。また、上記ＸＭＬ署名などの検証処理は、署名サーバ３に対するユーザの操作に応じて行われてもよい。
【００５９】
図１７は、署名サーバ３（図１，図２）からＣＬコンピュータ２へのＣＬＳＭ２２の送信と、サーバ側署名データなどの送信を別とした電子署名を用いた検証の変形例（Ｓ１８）を示す通信シーケンス図である。
図１８は、図１７に示した変形例において、署名サーバ３（図１，図２）からＣＬコンピュータ２にＣＬＳＭ２２を送るための伝送フレームの構成を示す図である。
図１９は、図１７に示した変形例において、署名サーバ３（図１，図２）からＣＬコンピュータ２にフォームデータなどを送るための伝送フレームの構成を示す図である。
なお、以上説明した処理においては、図８に示したように、署名サーバ３からＣＬコンピュータ２に対して、ＣＬＳＭ２２と、サーバ側署名などとが一緒に送信される場合を具体例としたが、図１７〜図１９に示すように、署名サーバ３から、ＣＬコンピュータ２に対して、ＣＬＳＭ２２と、ＸＭＬ署名などとが別々に送られるようにしてもよい。
【００６０】
図１７に示すように、Ｓ１００〜Ｓ１０６の処理において、図１３に示したように、ＣＬコンピュータ２とＡＰサーバ５との通信から、Ｗｅｂブラウザ２０２から署名サーバ３へのフォームデータの送信までの処理が行われる。
ステップ１８０（Ｓ１８０）において、署名サーバ３は、図１８に示す伝送フレームを用いて、ＣＬコンピュータ２に対してＣＬＳＭ２２（図９）を送信する。
【００６１】
ステップ１８２（Ｓ１８２）において、ＣＬコンピュータ２は、ＣＬＳＭ２２の受信および動作準備が完了すると、署名サーバ３に対して、ＡＣＫ信号を返す。
ステップ（Ｓ１８４）において、署名サーバ３は、ＣＬコンピュータ２に対して、図１９に示す伝送フレームを用いて、フォームデータおよびサーバ側署名とを送信する。
Ｓ１１０〜Ｓ１１６の処理において、サーバ側署名の検証から、ＣＬコンピュータ２とＡＰサーバ５との間の通信までの処理が行われる
【００６２】
【発明の効果】
以上説明したように、本発明に係る電子検証システムおよびその方法によれば、サービスを提供するアプリケーションをほとんど変更せずに、電子検証を実現可能である。
【図面の簡単な説明】
【図１】本発明に係る電子署名方法が適応されるネットワークシステムの構成を示す図である。
【図２】図１に示したＣＬコンピュータ、署名サーバ、ログＤＢおよびＡＰサーバのハードウェア構成を例示する図である。
【図３】図１，図２に示したＡＰサーバが、ＣＬコンピュータに送信する入力フォームが示すＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画像を例示する図である。
【図４】図３に示した入力フォームの伝送に用いられる伝送フレームを例示する図である。
【図５】図３に対するユーザによるデータ入力操作を例示する図である。
【図６】図１，図２に示した署名サーバ上で実行される署名サーバプログラムの構成を示す図である。
【図７】ＣＬコンピュータが署名サーバに対してフォームデータを送信するために用いる伝送フレームを例示する図である。
【図８】図６に示したＣＬＳＭ送信部が、ＣＬＳＭ（図１１）をＣＬコンピュータに対して送信するために用いる伝送フレームを例示する図である。
【図９】ＣＬコンピュータ上で実行されるＣＬＳＭから署名サーバに対して、ＸＭＬデータ（表２）などを伝送するために用いられる伝送フレームを例示する図である。
【図１０】図６に示したログ生成部が生成するログを例示する図である。
【図１１】図１，図２に示したＣＬコンピュータ上で実行されるクライアントプログラム（ＣＬプログラム）の構成を示す図である。
【図１２】図１１に示したＣＬＳＭからＡＰサーバに対してフォームデータを送るために用いられる伝送フレームを示す図である。
【図１３】ネットワークシステム（図１など）における電子署名処理が、正常終了する場合（Ｓ１０）の通信シーケンス図である。
【図１４】ネットワークシステム（図１など）における電子署名処理が、サーバ署名が異常と検証されて終了する場合（Ｓ１２）の通信シーケンス図である。
【図１５】ネットワークシステム（図１など）における電子署名処理が、ＸＭＬ署名が異常と検証されて終了する場合（Ｓ１４）の通信シーケンス図である。
【図１６】ＣＬコンピュータ２（図１，図２など）が、署名サーバにＸＭＬ署名の検証を要求し、署名サーバが、ログの検証を行う場合（Ｓ１６）を示す通信シーケンス図である。
【図１７】署名サーバ（図１，図２）からＣＬコンピュータへのＣＬＳＭの送信と、サーバ側署名データなどの送信を別とした電子署名を用いた検証の変形例（Ｓ１８）を示す通信シーケンス図である。
【図１８】図１７に示した変形例において、署名サーバ（図１，図２）からＣＬコンピュータにＣＬＳＭを送るための伝送フレームの構成を示す図である。
【図１９】図１７に示した変形例において、署名サーバ（図１，図２）からＣＬコンピュータにフォームデータなどを送るための伝送フレームの構成を示す図である。
【符号の説明】
１・・・ネットワークシステム、
２・・・ＣＬコンピュータ、
１００・・・本体、
１０２・・・ＣＰＵ、
１０４・・・メモリ、
１０６・・・表示・入力装置、
１１０・・・通信装置、
１１２・・・記録装置、
１１４・・・記録媒体、
２０・・・ＣＬプログラム、
２００・・・ＵＩ部、
２０２・・・Ｗｅｂブラウザ、
２０４・・・ユーザ検証部、
２０６・・・通信制御部、
２０８・・・ダウンローダ、
２１０・・・サーバ公開鍵記憶部、
２１２・・・ＣＬ秘密鍵記憶部、
２２・・・ＣＬＳＭ、
２２０・・・受信処理部、
２２２・・・署名検証部、
２２４・・・ＸＭＬデータ生成部、
２２６・・・署名生成部、
２２８・・・送信処理部、
２３０・・・ＸＭＬ署名ＤＢ、
３・・・署名サーバ、
３０・・・ＷＳプログラム、
３００・・・ＵＩ部、
３０２・・・サーバ側秘密鍵記憶部、
３０８・・・通信制御部、
３１０・・・アプリケーション、
３２・・・ＳＳＭ、
３２０・・・署名制御部、
３２２・・・ハッシュ値生成部、
３２４・・・署名生成部、
３２６・・・ＣＬＳＭ送信部、
３３０・・・ＸＭＬ署名検証部、
３３２・・・ログ生成部、
３３４・・・ログ検証部、
４・・・ログＤＢ、
５・・・ＡＰサーバ、
【図１】
2004320589.tif 000005
【図２】
2004320589.tif 000006
【図３】
2004320589.tif 000007
【図４】
2004320589.tif 000008
【図５】
2004320589.tif 000009
【図６】
2004320589.tif 000010
【図７】
2004320589.tif 000011
【図８】
2004320589.tif 000012
【図９】
2004320589.tif 000013
【図１０】
2004320589.tif 000014
【図１１】
2004320589.tif 000015
【図１２】
2004320589.tif 000016
【図１３】
2004320589.tif 000017
【図１４】
2004320589.tif 000018
【図１５】
2004320589.tif 000019
【図１６】
2004320589.tif 000020
【図１７】
2004320589.tif 000021
【図１８】
2004320589.tif 000022
【図１９】
2004320589.tif 000023