(57)【要約】【課題】  ユーザの電子署名を付加した電子文書を生成する際に、ユーザの所有する端末機能の制限を補いながら、セキュリティを向上させる端末装置、サーバ、電子認証システム、及び、署名付電子文書生成方法を提供する。【解決手段】  端末１００は、端末１００に記憶されている秘密鍵を用いて、ハッシュ値から署名値を生成する署名値生成機能１３１を備え、サーバ２００は、ＸＭＬ文書を端末１００に表示可能なＨＴＭＬ形式に変換する文書変換部２２と、ＸＭＬ文書からハッシュ値を生成するハッシュ値生成部２３と、ＸＭＬ文書と署名値とを含む署名付ＸＭＬ文書を生成する署名付電子文書生成部２５とを備える。【選択図】  図１
2005142661.tif 000002
【特許請求の範囲】
【請求項１】
電子文書にユーザの電子署名を表す署名値を付加するための一連の処理を、サーバと分担して実行する端末装置において、
前記一連の処理のうち、自装置に記憶されている前記ユーザの秘密鍵を用いて、署名値を生成する処理を行う署名値生成手段
を備えることを特徴とする端末装置。
【請求項２】
一方向関数を用いて、前記電子文書から算出値を算出する一方向関数算出値生成手段と、
前記端末装置を所有するユーザの秘密鍵を用いて、前記算出値から署名値を生成する署名値生成手段と、
前記電子文書と前記署名値とを含む署名付電子文書を生成する署名付電子文書生成手段と
を少なくとも用いて実行される、前記署名付電子文書を生成するための一連の処理を、前記端末装置と分担して実行するサーバにおいて、
前記署名値生成手段以外の、少なくとも１の手段を備えることを特徴とするサーバ。
【請求項３】
端末装置とサーバとが、
一方向関数を用いて、電子文書から算出値を算出する一方向関数算出値生成手段と、
前記端末装置を所有するユーザの秘密鍵を用いて、前記算出値から署名値を生成する署名値生成手段と、
前記電子文書と前記署名値とを含む署名付電子文書を生成する署名付電子文書生成手段と
を備える電子認証システムにおいて、
前記端末装置は、
少なくとも、前記署名値生成手段を備え、
前記サーバは、
前記端末装置が備える手段以外の手段を備える
ことを特徴とする電子認証システム。
【請求項４】
前記電子文書の前記端末装置に表示可能な形式への変換と、前記電子文書の一部を抽出した、データ量の少ない電子文書への変換との、少なくとも一方の変換を行う文書変換手段をさらに備えることを特徴とする請求項３に記載の電子認証システム。
【請求項５】
公開鍵暗号方式における、対になる秘密鍵と公開鍵とからなる１組の鍵ペアに対応付けて、複数の電子証明書を順序付けして記憶する電子証明書管理手段と、
前記電子証明書管理手段により管理されている電子証明書のうちの何れかが失効した場合に、該失効した電子証明書より後に順序付けされている電子証明書を失効させる失効手段と
をさらに備えることを特徴とする請求項３又は４に記載の電子認証システム。
【請求項６】
一方向関数を用いて、電子文書から算出値を算出する一方向関数算出値生成ステップと、
端末装置を所有するユーザの秘密鍵を用いて、前記算出値から署名値を生成する署名値生成ステップと、
前記電子文書と前記署名値とを含む署名付電子文書を生成する署名付電子文書生成ステップと
を有する署名付電子文書生成方法において、
少なくとも、前記署名値生成ステップは、前記ユーザの秘密鍵を記憶している前記端末装置において実行され、
前記端末装置において実行されるステップ以外のステップは、サーバにおいて実行される
ことを特徴とする署名付電子文書生成方法。
【請求項７】
電子文書にユーザの電子署名を表す署名値を付加するための一連の処理を、サーバと端末装置とが分担して実行する署名付電子文書生成方法において、
前記サーバが、前記電子文書の前記端末装置に表示可能な形式への変換と、前記電子文書の一部を抽出した、データ量の少ない電子文書への変換との、少なくとも一方の変換を行う文書変換ステップと、
前記端末装置が、前記文書変換ステップにおいて変換された電子文書を表示する表示ステップと、
前記端末装置が、外部からの署名開始要求を検知することにより、自装置に記憶されている、自装置を所有するユーザの秘密鍵を用いて、署名値を生成する署名値生成ステップと、
前記サーバが、前記署名値生成ステップにおいて生成された署名値と変換前の電子文書とを含む署名付電子文書を生成する署名付電子文書生成ステップと
を有する署名付電子文書生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントサーバ型のシステムにおいて、署名付電子文書を生成する端末装置、サーバ、電子認証システム、及び、署名付電子文書生成方法に関する。
【背景技術】
【０００２】
従来より、公開鍵暗号方式（public key cryptosystem）に従って、電子文書にユーザの電子署名を付加するための一連の処理は、ユーザが所有する端末一台のみで行われていた（例えば、特許文献１）。ここで、一連の処理とは、電子署名の対象となる電子文書からハッシュ関数を用いてハッシュ値（「メッセージダイジェスト」ともいう）を生成する処理と、生成したハッシュ値から秘密鍵を用いて、電子署名を表す署名値を生成する処理と、生成した署名値と電子文書とを含む署名付電子文書を生成する処理とをいう。
【０００３】
このように、端末において署名付電子文書を生成する場合には、端末が対になる秘密鍵と公開鍵（以下、「鍵ペア」という）を管理しておく必要がある。この鍵ペアは、改竄されたり外部に流出したりするのを防ぐためと、端末のメモリの制約等により、ＩＣ（Integrated Circuit）カード等の耐タンパ装置に記憶されるのが一般的である。しかしながら、このような鍵ペアをＩＣカードに記憶しておく方法では、ＩＣカードのメモリ等の問題により、複数の鍵ペアを管理するのが困難である。また、ユーザにとっては、複数の鍵ペアを自己の端末で管理しておくのは煩雑である。さらに、端末が携帯電話機やＰＤＡ（Personal Digital Assistance）である場合には処理能力が低いため、端末に処理負荷がかかってしまう。
【０００４】
これらの問題を解消するため、クライアント（端末）とサーバとから構成されるクライアントサーバ型のシステムにおいて、サーバの代行による署名付電子文書の生成が実現されている。具体的な署名付電子文書生成の手順としては、サーバがクライアントの秘密鍵を管理し、クライアントからの依頼に基づいて、サーバが秘密鍵を用いて署名値を生成し、生成した署名値と電子文書とを含んだ署名付電子文書を生成する。
【特許文献１】特開２００２−９１３０３号公報（段落００７６〜０１００）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、サーバの代行によって署名付電子文書を生成する方法では、サーバが秘密鍵を管理するため、サーバがユーザの秘密鍵を不正使用した場合には、ユーザの署名値を無制限に生成することが可能となる。そのため、サーバがユーザの秘密鍵を管理することは、ユーザにとって大きな脅威となりえる。
一方、携帯電話機やＰＤＡ等の端末においては、端末が扱うことが可能な文書形式や画面サイズに制約があるため、電子署名の対象となる電子文書を処理することが困難である。例えば、携帯電話機にＷｅｂブラウザがインストールされている場合に、ＷｅｂブラウザはＨＴＭＬ（Hyper Text Markup Language）文書を解釈して携帯電話機のディスプレイに画面を表示することはできるが、近年電子署名の対象となっているＸＭＬ（eXtensible Markup Language）文書については表示することができない場合がある。また、パーソナルコンピュータのディスプレイに表示するために作成された文書を、携帯電話機やＰＤＡのディスプレイにそのまま表示することはできない。そのため、ユーザは署名付電子文書を生成するための端末が制限されてしまう。あるいは、電子文書提供者が端末に合わせた電子文書を提供する必要が生じるため、電子文書提供者の電子文書管理に関する負担が増すこととなる。
本発明は、上記のような課題を鑑みてなされたもので、その課題とするところ
は、ユーザの電子署名を付加した電子文書を生成する際に、ユーザの所有する端末機能の制限を補いながら、セキュリティを向上させる端末装置、サーバ、電子認証システム、及び、署名付電子文書生成方法を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、電子文書にユーザの電子署名を表す署名値を付加するための一連の処理を、サーバと分担して実行する端末装置において、前記一連の処理のうち、自装置に記憶されている前記ユーザの秘密鍵を用いて、署名値を生成する処理を行う署名値生成手段を備えることを特徴とする端末装置を提供する。
請求項１に記載の発明によれば、端末装置は、電子文書にユーザの電子署名を付加するための一連の処理のうち、自装置に記憶されているユーザの秘密鍵を用いて署名値を生成するため、端末装置は、ユーザの秘密鍵を自装置で安全に管理しておくことができる。このため、端末装置の外部に、安易に秘密鍵の情報が流出することがなくなり、ユーザの秘密鍵が不正利用されるのを防ぐことができる。また、サーバは、一連の処理のうち、端末装置が行う処理以外の処理を分担して行うため、端末装置の処理能力やメモリや表示機能等の制限を補いながら、署名付電子文書生成におけるセキュリティを向上させることができる。
【０００７】
請求項２に記載の発明は、一方向関数を用いて、前記電子文書から算出値を算出する一方向関数算出値生成手段と、前記端末装置を所有するユーザの秘密鍵を用いて、前記算出値から署名値を生成する署名値生成手段と、前記電子文書と前記署名値とを含む署名付電子文書を生成する署名付電子文書生成手段とを少なくとも用いて実行される、前記署名付電子文書を生成するための一連の処理を、前記端末装置と分担して実行するサーバにおいて、前記署名値生成手段以外の、少なくとも１の手段を備えることを特徴とするサーバを提供する。
【０００８】
請求項２に記載の発明によれば、サーバは、署名付電子文書を生成するための一連の処理のうち、署名値を生成する処理を行わないため、ユーザの秘密鍵をサーバで管理しておく必要がなくなる。このため、サーバによる秘密鍵の不正利用を防ぐことができ、セキュリティを高めることができる。また、サーバは、署名値生成処理以外の少なくとも１の処理を分担して行うため、端末装置が一連の処理を全て行う必要がなくなり、端末装置の機能上の制限を補うことができる。
【０００９】
請求項３に記載の発明は、端末装置とサーバとが、一方向関数を用いて、電子文書から算出値を算出する一方向関数算出値生成手段と、前記端末装置を所有するユーザの秘密鍵を用いて、前記算出値から署名値を生成する署名値生成手段と、前記電子文書と前記署名値とを含む署名付電子文書を生成する署名付電子文書生成手段とを備える電子認証システムにおいて、前記端末装置は、少なくとも、前記署名値生成手段を備え、前記サーバは、前記端末装置が備える手段以外の手段を備えることを特徴とする電子認証システムを提供する。
【００１０】
請求項３に記載の電子認証システムによれば、電子文書と端末装置を所有するユーザの署名値とを含む署名付電子文書を生成する一連の処理のうち、端末装置は、少なくとも署名値生成手段を備え、サーバは、端末装置が備える手段以外の手段を備えるため、端末装置は、ユーザの秘密鍵を自装置で管理しておくことができる。このため、サーバ等の外部装置が、ユーザの秘密鍵を安易に入手することができなくなるため、外部装置による秘密鍵の不正利用を防いで、セキュリティを高めることができる。また、端末装置が行う処理以外の処理は、サーバが分担して行うため、端末装置の処理能力やメモリ等の制限を補いながら、署名付電子文書生成に関わるセキュリティを向上させることができる。
【００１１】
請求項４に記載の発明は、請求項３に記載の電子認証システムにおいて、前記電子文書の前記端末装置に表示可能な形式への変換と、前記電子文書の一部を抽出した、データ量の少ない電子文書への変換との、少なくとも一方の変換を行う文書変換手段をさらに備えることを特徴とする。
請求項４に記載の発明によれば、電子認証システムは、電子文書を端末装置に表示可能な形式に変換するため、端末装置は、自装置において署名対象の電子文書を表示することが可能となる。さらに、サーバが当該文書変換手段を備えている場合には、サーバは、端末装置の表示機能の制約や処理能力等の制限を補うことができる。また、電子認証システムは、電子文書の一部を抽出することにより、該電子文書をデータ量の少ない電子文書に変換するため、端末装置は電子文書を表示するための処理負荷を軽減することができる。
【００１２】
請求項５に記載の発明は、請求項３又は４に記載の電子認証システムにおいて、公開鍵暗号方式における、対になる秘密鍵と公開鍵とからなる１組の鍵ペアに対応付けて、複数の電子証明書を順序付けして記憶する電子証明書管理手段と、前記電子証明書管理手段により管理されている電子証明書のうちの何れかが失効した場合に、該失効した電子証明書より後に順序付けされている電子証明書を失効させる失効手段とをさらに備えることを特徴とする。
【００１３】
請求項５に記載の発明によれば、電子証明書管理手段により、１組の鍵ペアに対応付けられた複数の電子証明書を順序付けして管理しておくだけで、管理されている電子証明書のうちの何れかが失効した場合に、該失効した電子証明書より後に順序付けされている電子証明書を全て失効させることができる。このため、ユーザは、各々の電子証明書の失効処理を手入力によって行う必要がなくなる。これにより、ユーザの失効処理時の入力ミスや失効処理のし忘れで、失効すべき電子証明書を誤って使用してしまうことがなくなる。このため、電子認証におけるセキュリティを高めることができ、また、ユーザの利便性を向上させることができる。また、この電子証明書の管理の仕方によれば、用途に応じた複数の鍵ペアと電子証明書とを管理するのではなく、１組の鍵ペアに対して、用途に応じた複数の電子証明書を管理することができるため、複数の鍵ペアを管理する必要がなくなる。これにより、端末装置は、秘密鍵を記憶するためのメモリの制約を解消することができる。
【００１４】
請求項６に記載の発明は、一方向関数を用いて、電子文書から算出値を算出する一方向関数算出値生成ステップと、端末装置を所有するユーザの秘密鍵を用いて、前記算出値から署名値を生成する署名値生成ステップと、前記電子文書と前記署名値とを含む署名付電子文書を生成する署名付電子文書生成ステップとを有する署名付電子文書生成方法において、少なくとも、前記署名値生成ステップは、前記ユーザの秘密鍵を記憶している前記端末装置において実行され、前記端末装置において実行されるステップ以外のステップは、サーバにおいて実行されることを特徴とする署名付電子文書生成方法を提供する。
【００１５】
請求項６に記載の署名付電子文書生成方法によれば、少なくとも署名値生成ステップは、端末装置において実行されるため、端末装置がユーザの秘密鍵を管理しておくことができ、署名付電子文書生成におけるセキュリティを高めることができる。また、サーバは、署名付電子文書生成における一連のステップのうちの、端末装置において実行されるステップ以外のステップを分担して実行するため、端末装置の機能上の制限を補うことができる。
【００１６】
請求項７に記載の発明は、電子文書にユーザの電子署名を表す署名値を付加するための一連の処理を、サーバと端末装置とが分担して実行する署名付電子文書生成方法において、前記サーバが、前記電子文書の前記端末装置に表示可能な形式への変換と、前記電子文書の一部を抽出した、データ量の少ない電子文書への変換との、少なくとも一方の変換を行う文書変換ステップと、前記端末装置が、前記文書変換ステップにおいて変換された電子文書を表示する表示ステップと、前記端末装置が、外部からの署名開始要求を検知することにより、自装置に記憶されている、自装置を所有するユーザの秘密鍵を用いて、署名値を生成する署名値生成ステップと、前記サーバが、前記署名値生成ステップにおいて生成された署名値と変換前の電子文書とを含む署名付電子文書を生成する署名付電子文書生成ステップとを有する署名付電子文書生成方法を提供する。
【００１７】
請求項７に記載の発明によれば、端末装置は、サーバによって変換された変換後の電子文書を表示するため、表示機能の制約や処理負荷を軽減することができる。また、ユーザが、表示された電子文書を確認した後に端末装置に指示入力を行うことにより、端末装置は外部からの署名開始要求を検知して、自装置に記憶されている秘密鍵を用いて署名値を生成するため、セキュリティの高い署名値生成を行うことができる。
【発明の効果】
【００１８】
本発明によれば、電子文書にユーザの電子署名を表す署名値を付加するための一連の処理のうち、端末装置は少なくとも署名値を生成し、サーバは端末装置が行う処理以外の処理を実行するため、端末装置は、ユーザの秘密鍵を自装置で管理しておくことができる。このため、サーバ等の外部装置が、ユーザの秘密鍵を安易に入手することができなくなるため、外部装置による秘密鍵の不正利用を防いでセキュリティを高めることができる。また、サーバは、一連の処理のうち、端末装置が行う処理以外の処理を分担して実行するため、端末装置の機能をサーバが補完することができる。
【発明を実施するための最良の形態】
【００１９】
次に、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、以下の説明において参照する各図においては、他の図と同等部分に同一符号が付されている。
［１．構成］
［１．１．全体構成］
図１は、本発明に係る電子認証システムの構成を示すブロック図である。同図に示すように、電子認証システムは、ユーザが所有する端末１００と、当該端末１００と署名付電子文書生成処理を分担するサーバ２００と、端末１００に電子文書を提供する電子文書提供者サーバ３００と、これらの装置を接続する通信ネットワークとを備えている。これらの装置同士は、ＳＳＬ（Secure Socket Layer）等のセキュリティの高い暗号化通信を行う。また、端末１００とサーバ２００とは、クライアントサーバ型の署名付電子文書を生成するシステムを構成している。
なお、同図においては、端末１００と電子文書提供者サーバ３００とを各々ひとつずつしか図示していないが、実際には多数存在する。
【００２０】
［１．２．端末］
次に、端末１００の構成について説明する。端末１００は、一般的な携帯電話機のハードウェア構成を備えている。具体的には、端末１００は、プログラムを実行し端末１００全体を制御するＣＰＵ（Central Processing Unit）と、通信ネットワークを介しての通信を制御する通信インターフェースと、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）等の揮発性メモリ及びフラッシュ・メモリ等の不揮発性メモリを含む記憶部と、各種指令をＣＰＵに与えるための複数の操作ボタンと、各種画面を表示するディスプレイとを備えており、これらはバスで接続されている。また、端末１００には、ＩＣカードが装着されている。当該ＩＣカードには、公開鍵暗号方式で用いられる秘密鍵が記憶されている。ここでのＩＣカードは、秘密鍵の改竄等を防ぐための耐タンパ装置として用いられている。当該秘密鍵が記憶されたＩＣカードは、特定の業者により作成され、端末１００を所有するユーザに提供されたものである。
【００２１】
端末１００の不揮発性メモリには、基本ソフトウェアであるＯＳ（Operating System）や、ＨＴＭＬ文書を解釈して表示するためのソフトウェアであるＷｅｂブラウザや、ＨＴＴＰ（Hyper Text Transfer Protocol）に従ってＨＴＴＰリクエスト／レスポンスを送受信するためのプログラムや、ＳＳＬによる暗号化通信を行うためのプログラムが記憶されている。なお、端末１００の不揮発性メモリには、ＸＭＬを解釈するためのソフトウェアは記憶されていない。また、端末１００の不揮発性メモリには、各種アプリケーションプログラムが記憶されている。
【００２２】
端末１００のＣＰＵがこれらのプログラムを実行することにより実現される機能と、上述した端末１００が備えるハードウェアの機能とにより、図１に示す端末１００の機能が実現される。同図を参照しながら、以下、端末１００が備える各機能について説明する。
表示画面部１１は、ディスプレイを含んで構成され、端末通信部１５がＨＴＭＬ文書を受信した場合に、当該ＨＴＭＬ文書をＷｅｂブラウザに解釈させ、ＨＴＭＬ文書で表される画面をディスプレイに表示する。なお、上述の通り、端末１００の不揮発性メモリには、ＸＭＬを解釈するためのソフトウェアは記憶されていないため、表示画面部１１は、ＸＭＬ文書で表される画面を表示することはできない。
【００２３】
入力部１２は、複数の操作ボタンを含んで構成され、当該操作ボタンが操作されることにより、入力された各種指示や文字情報を各部に送信する。
署名要求部１４は、入力部１２からの入力を検知して、サーバ２００に対して署名開始要求を行う。
鍵管理部１３は、ＩＣカードと当該ＩＣカードに記憶されたユーザの秘密鍵とを含んで構成されており、ユーザの秘密鍵を管理する。鍵管理部１３は、署名値生成機能１３１を備えている。署名値生成機能１３１は、ユーザの秘密鍵を用いて、ハッシュ値から署名値を生成する。具体的には、署名値生成機能１３１は、サーバ２００より署名演算要求を受信すると、サーバ２００より受信したハッシュ値を、ＩＣカードに記憶されている秘密鍵で演算して暗号化することにより、署名値を生成する。
【００２４】
端末通信部１５は、通信インターフェースを含んで構成され、サーバ２００とＨＴＴＰに従ったデータ通信処理を行う。具体的には、端末通信部１５は、サーバ２００から、ハッシュ値を含んだ、署名演算を要求するためのＨＴＴＰリクエストを受信する。また、端末通信部１５は、入力部１２より入力された情報や、鍵管理部１３が生成した署名値を受信したときに、受信した情報を含んだＨＴＴＰレスポンスを生成してサーバ２００に送信する。
【００２５】
［１．３．サーバ］
次に、サーバ２００の構成について説明する。サーバ２００は、一般的なＷＷＷ（World Wide Web）サーバのハードウェア構成を備えている。具体的には、サーバ２００は、プログラムを実行し、サーバ２００全体を制御するＣＰＵと、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、及び、ハードディスクを含む記憶部と、通信ネットワークを介してデータの授受を制御する通信インターフェースとを備えており、これらはバスで接続されている。このサーバ２００は、端末１００に比較して、ＣＰＵの処理能力や記憶部の容量が大きく構成されている。
【００２６】
サーバ２００のハードディスクには、端末１００で管理されている秘密鍵と対になる公開鍵を含んだ電子証明書が記憶されている。当該電子証明書は、認証局（Certificate Authority）が管理するサーバが、端末１００で管理されている秘密鍵と、対になる公開鍵と、（以下「鍵ペアＡ」という）に基づいて生成したものである。
電子証明書のデータ構成は、Ｘ．５０９に準拠している。電子証明書には、電子証明書のシリアル番号、認証局名（発行元）、有効期限、所有者名（発行先ユーザ名）、公開鍵情報、拡張項目、及び、認証局の署名を表す情報が含まれている。また、拡張項目には、電子証明書の用途が含まれている。
【００２７】
ここでは、鍵ペアＡに対応する電子証明書は複数記憶されており、これらの複数の電子証明書は、用途に応じて順序付けがなされて管理されている。図２には、サーバ２００で管理される複数の電子証明書を概念的に示す。
サーバ２００のハードディスクには、これらの電子証明書の順序付けや用途を一括で管理するための順序付管理テーブルが記憶されている。図３には、順序付管理テーブルのデータ構成を示す。順序付管理テーブルには、ハードディスクに記憶されている電子証明書を識別するための「電子証明書識別情報」と、電子証明書に対応する「鍵ペアの識別情報」と、電子証明書の順序付けを表す「順序番号」と、電子証明書の用途を表す「用途」とを表すデータが記憶されている。
【００２８】
図３に示す例では、電子証明書Ａ〜Ｇは、全て鍵ペアＡに対する電子証明書である。ここでは、順序番号の大きい電子証明書は、順序番号の小さい電子証明書より後に順序付けされているものとする。また、各々の電子証明書の用途としては、電子証明書Ａは契約用であり、電子証明書ＢはＳＳＬ認証用であり、電子証明書Ｃは一般行政手続用であり、電子証明書Ｆは電子入札用であり、電子証明書ＤはＤ銀行との電子商取引用であり、電子証明書ＧはＧ証券との電子商取引用であり、電子証明書ＥはＥ信託銀行との電子商取引用である。
【００２９】
また、サーバ２００のハードディスクには、電子文書からハッシュ値を演算するためのハッシュ関数（hash function）が記憶されている。ここで、ハッシュ関数とは、公知の公開鍵暗号方式において、電子文書を一定長のデータに要約するための関数・手順である。代表的なハッシュ関数としては、“SHA-1”が知られている。ここで、ハッシュ関数は１方向関数の一種である。１方向関数とは、ｙ＝ｆ（ｘ）において、ｘからｙを算出するのは簡単だが、ｙからｘを算出するのは事実上不可能である関数をいう。
【００３０】
また、サーバ２００の記憶部には、各種プログラムが記憶されている。例えば、ＲＯＭやハードディスクには、ＯＳや、ＨＴＴＰやＳＳＬに従ってデータを送受信するためのプログラムが記憶されている。また、サーバ２００のハードディスクには、ＸＭＬ文書を受信した場合に、当該ＸＭＬ文書をＨＴＭＬ文書に変換するためのプログラムや、ＸＭＬ文書からハッシュ値を生成するためのプログラムや、ＸＭＬ文書にＸＭＬ署名を付加することにより署名付ＸＭＬ文書を生成するためのアプリケーションプログラムが記憶されている。これらのプログラムをサーバ２００のＣＰＵが読み出して実行することにより実現される機能と、サーバ２００が備えるハードウェアの機能とにより、図１に示すサーバ２００の機能が実現される。以下、サーバ２００の各機能について説明する。
【００３１】
文書取得部２１は、通信インターフェースを含んで構成されており、電子文書提供者サーバ３００より電子文書を受信する。
文書変換部２２は、電子文書提供者サーバ３００より受信した電子文書がＸＭＬ文書である場合に、当該ＸＭＬ文書を端末１００のＷｅｂブラウザが解釈できるようにするために、ＨＴＭＬ形式に変換する。また、文書変換部２２は、電子文書の一部を抽出することにより、電子文書をデータ量の少ない電子文書に変換する機能を有する。ここで、電子文書の一部とは、主に電子文書の主要箇所であり、例えば、テキストデータのみであったり、色やレイアウトやフォントの指定を除いた部分であったりする。これにより、文書変換部２２は、例えば、１Ｍバイトの電子文書を１００Ｋバイトにして端末１００に提供することができる。
【００３２】
ハッシュ値生成部２３は、電子文書提供者サーバ３００より受信したＸＭＬ文書を、ハッシュ関数を用いて演算することにより、ハッシュ値を算出する。なお、ハッシュ値生成部２３は、端末１００より、署名開始要求と同時に、ユーザの住所や氏名等の入力情報を受信した場合には、当該入力情報を電子文書提供者から提供されたＸＭＬ文書に付加する。そして、ハッシュ値生成部２３は、入力情報が付加されたＸＭＬ文書から、ハッシュ関数を用いて、ハッシュ値を生成する。
【００３３】
署名付電子文書生成部２５は、署名付電子文書を生成する。具体的には、署名付電子文書生成部２５は、端末１００で生成された署名値を受信したときに、署名値を含むＸＭＬ署名を生成する。そして、署名付電子文書生成部２５は、ハッシュ値を生成する基となったＸＭＬ文書に対してＸＭＬ署名を付加することにより、署名付ＸＭＬ文書を生成する。
【００３４】
図４には、Ｗ３Ｇで標準化されているＸＭＬ署名のデータ構成の一例を示す。同図に示すように、ＸＭＬ署名は、署名値の他に、署名対象情報、公開鍵情報等の情報を含んでおり、これらの情報は<Signature>タグで囲まれている。ＸＭＬ署名がＸＭＬ文書に付加された場合には、当該ＸＭＬ署名は、ＸＭＬ文書中の<Signature>タグで囲まれるSignature要素として表される。
電子証明書管理部２６は、１組の鍵ペアに対応付けて、ハードディスクに記憶されている複数の電子証明書を順序付けして管理する。具体的には、電子証明書管理部２６は、順序付管理テーブルにおいて、鍵ペアの識別情報に対応付けて、電子証明書の順序番号を管理する。
【００３５】
失効部２７は、電子証明書管理部２６により１組の鍵ペアに対応付けて管理されている電子証明書のうちの何れかが、ユーザの失効指示や不正使用によって失効した場合に、失効した電子証明書より後に順序付けされている電子証明書を、全て失効させる処理を行う。ここでいう電子証明書を失効させる処理とは、公開鍵暗号方式における一般的な失効処理をいう。具体的には、失効部２７は、失効対象の電子証明書を削除するよう電子証明書管理部２６に指示すると共に、認証局サーバに対して、失効させる電子証明書に関する失効情報を通知する。電子証明書管理部２６は、失効部２７からの指示を受けて、失効対象の電子証明書をハードディスクより削除する。また、認証局サーバは、失効部２７より通知を受けて、自サーバに失効情報を記録する。これにより、電子証明書の失効処理は完了する。
例えば、図２及び図３に示すように電子証明書が管理されている場合に、電子証明書Ｂが失効した場合には、失効部２７は、電子証明書Ｂより後に順序付けられている電子証明書Ｃ、Ｆ、Ｄ、Ｇ、Ｅを失効させる処理を行う。
【００３６】
［１．４．電子文書提供者サーバ］
次に、電子文書提供者サーバ３００の構成について説明する。電子文書提供者サーバ３００は、サーバ２００と同様に、一般的なＷＷＷサーバのハードウェア構成を備えている。
電子文書提供者サーバ３００は、端末１００を所有するユーザからの要求に応じて、各種電子文書を提供するサーバである。電子文書提供者サーバ３００が提供する電子文書としては、例えば、図５に示すＡ契約申込書がある。ユーザが端末１００からＡ契約に申し込む指示を行った場合に、同図の内容を表示するＡ契約申込画面が端末１００の表示画面部１１に表示される。ユーザは、表示された画面上の「住所」、「氏名」、「使用する電子証明書」の入力欄に必要事項を入力して、画面上の「承認」を選択する操作を行う。
【００３７】
なお、文書の種類によっては、図５に示す「住所」や「氏名」等の入力欄が設けられていないものもある。また、図５に示す「使用する電子証明書」の入力欄は、ユーザの鍵ペアに対応する電子証明書がサーバ２００で複数管理されている場合に、ユーザが電子文書提供者サーバ３００に送信すべき電子証明書を選択するために入力されるものであり、文書の種類によっては設けられていない場合もある。
【００３８】
電子文書提供者サーバ３００のハードディスクには、図５に示す画面を表示するためのＸＭＬ文書が記憶されている。また、ハードディスクには、端末１００よりＡ契約への申し込みを要求するためのＨＴＴＰリクエストを受信した場合に、ハードディスクよりＸＭＬ文書を読み出して、当該ＸＭＬ文書を含んだＨＴＴＰレスポンスをサーバ２００に送信するためのプログラムが記憶されている。また、電子文書提供者サーバ３００のハードディスクには、サーバ２００より署名付ＸＭＬ文書を受信した場合に、公開鍵暗号方式に従い、署名付ＸＭＬ文書と同時に受信した電子証明書を用いて、ＸＭＬ文書の署名者が端末１００を所有するユーザであることを検証するためのプログラムが記憶されている。
【００３９】
［２．動作］
次に、上記構成における動作について説明する。前提として、サーバ２００のハードディスクには、図２に示す複数の電子証明書Ａ〜Ｇが記憶され、また、順序付管理テーブルには、図３に示す内容のデータが記憶されているものとする。また、電子文書提供者サーバ３００は、図５に示すＡ契約申込書を提供するサーバであり、電子文書提供者サーバ３００のハードディスクには、Ａ契約申込画面を表示するためのＸＭＬ文書が記憶されているものとする。
【００４０】
［２．１．電子署名生成処理］
図６は、本発明に係る署名付電子文書生成方法のフロー図である。
以下、図６を参照しながら、ＸＭＬ形式の電子文書「Ａ契約申込書」に、端末１００を所有するユーザのＸＭＬ署名を付加することにより、署名付ＸＭＬ文書を生成する処理を例にとって説明する。
まず、前提として、端末１００を所有するユーザは、電子文書提供者サーバ３００のＵＲＬ（Uniform Resource Locator）を指定することにより、文書提供者のＷｅｂページを端末１００の表示画面部１１に表示し、Ａ契約の申し込み指示を行ったものとする。これにより、端末１００は、電子文書提供者サーバ３００に、Ａ契約の申し込みを要求するためのＨＴＴＰリクエストを送信する。
【００４１】
電子文書提供者サーバ３００は、端末１００よりＨＴＴＰリクエストを受信すると、ハードディスクに記憶されているＸＭＬ文書を読み出して、当該ＸＭＬ文書を含んだＨＴＴＰレスポンスをサーバ２００に送信する（ステップＳ１０１）。
サーバ２００の文書取得部２１は、電子文書提供者サーバ３００よりＨＴＴＰレスポンスを受信し、当該ＨＴＴＰレスポンスに含まれるＸＭＬ文書を、ＲＡＭに一時的に記憶するとともに、文書変換部２２に送信する。
【００４２】
文書変換部２２は、ＸＭＬ形式の電子文書をＨＴＭＬ形式に変換することによりＨＴＭＬ文書を生成し（ステップＳ１０２）、サーバ通信部２４に送信する。サーバ通信部２４は、ＨＴＭＬ文書を含むＨＴＴＰレスポンスを生成して、端末１００に送信する（ステップＳ１０３）。
端末１００の端末通信部１５は、サーバ２００よりＨＴＴＰレスポンスを受信し、当該ＨＴＴＰレスポンスに含まれるＨＴＭＬ文書を表示画面部１１に送信する。表示画面部１１は、受信したＨＴＭＬ文書をＷｅｂブラウザに解釈させ、図５に示すＡ契約申込画面を表示する。これによって、ＸＭＬ形式の電子文書を表示不可能な端末１００においても、Ａ契約の内容確認が可能となる。
【００４３】
ユーザは、端末１００の表示画面部１１に表示されたＡ契約申込画面を参照して、Ａ契約の内容を確認する。次いで、ユーザは、端末１００の入力部１２より、Ａ契約申込画面上の「住所」の入力欄と「氏名」の入力欄とに、必要事項を入力する。また、ユーザは、画面上の「使用する電子証明書」欄に、今回使用する契約用の電子証明書である“Ａ証明書”を入力する。次いで、ユーザは、画面上の「承認」ボタンを選択する。
【００４４】
署名要求部１４は、「承認」ボタンが選択されたのを検知して、署名開始を要求する信号を端末通信部１５に送信する。端末通信部１５は、入力部１２より入力された「住所」、「氏名」、「使用する電子証明書」等の入力情報を含んだ、署名開始要求を指示するためのＨＴＴＰリクエストを生成し、サーバ２００に送信する（ステップＳ１０４）。
サーバ２００のサーバ通信部２４は、端末１００よりＨＴＴＰリクエストを受信し、当該ＨＴＴＰリクエストに含まれる入力情報をハッシュ値生成部２３に送信する。ハッシュ値生成部２３は、入力情報のうち「住所」と「氏名」とを表す情報を、ＲＡＭに記憶しておいたＸＭＬ文書に付加する。そして、ハッシュ値生成部２３は、「住所」と「氏名」とを表す情報を付加したＸＭＬ文書から、ハッシュ関数を用いてハッシュ値を生成し（ステップＳ１０５）、当該ハッシュ値をサーバ通信部２４に送信する。サーバ通信部２４は、ハッシュ値を含んだ、署名演算を要求するためのＨＴＴＰレスポンスを生成し、端末１００に送信する（ステップＳ１０６）。
【００４５】
端末１００の端末通信部１５は、サーバ２００からＨＴＴＰリクエストを受信すると、当該ＨＴＴＰリクエストに含まれるハッシュ値を鍵管理部１３に送信する。鍵管理部１３の署名値生成機能１３１は、ＩＣカードより秘密鍵を読み出し、読み出した秘密鍵を用いて、ハッシュ値に対して署名演算を行うことにより、署名値を生成する（ステップＳ１０７）。
端末通信部１５は、署名値生成機能１３１が生成した署名値を含むＨＴＴＰリクエストを生成し、サーバ２００に送信する（ステップＳ１０８）。
【００４６】
サーバ２００のサーバ通信部２４は、端末１００よりＨＴＴＰリクエストを受信し、当該ＨＴＴＰリクエストに含まれる署名値を署名付電子文書生成部２５に送信する。署名付電子文書生成部２５は、端末１００より受信した署名値と、署名対象情報と、公開鍵情報とを含む、ＸＭＬ署名を生成する。署名付電子文書生成部２５は、生成したＸＭＬ署名をＸＭＬ文書に付加することにより、署名付ＸＭＬ文書を生成する（ステップＳ１０９）。
【００４７】
また、サーバ２００は、ステップＳ１０４で受信した入力情報に含まれる「使用する電子証明書」が“証明書Ａ”を表していることから、電子証明書管理部２６に証明書Ａを要求する。電子証明書管理部２６は、ハードディスクに記憶されている証明書Ａを読み出して、サーバ２００に送信する。サーバ２００は、取得した証明書Ａと共に、生成した署名付ＸＭＬ文書を電子文書提供者サーバ３００に送信する（ステップＳ１１０）。
【００４８】
電子文書提供者サーバ３００は、受信した署名付ＸＭＬ文書と証明書Ａとを用いて、一般的な公開鍵暗号方式により、署名付ＸＭＬ文書が端末１００を所有するユーザより送信されたことを検証する。具体的には、電子文書提供者サーバ３００は、署名付ＸＭＬ文書に含まれるＸＭＬ署名を電子証明書Ａに含まれる公開鍵で復号化できることを確認する。なお、ここでは、装置同士は、セキュリティの高いＳＳＬ通信を行っていることから、署名付ＸＭＬ文書の改竄の確認は行わない。
このようにして、端末１００とサーバ２００とは署名付ＸＭＬ文書の生成処理を分担して行い、文書提供者に対して、ユーザの電子署名が付されたＸＭＬ文書を返信することが可能となる。
【００４９】
［２．２．失効処理］
次に、サーバ２００の電子証明書管理部２６で管理されている電子証明書Ｄが失効したときの失効処理の動作を説明する。ここでは、ユーザが、金融機関との電子商取引を中止するために、電子証明書Ｄを失効させる指示を行うものとする。
ユーザは、端末１００の入力部１２より、電子証明書Ｄを失効させるための指示を行う。これにより、端末１００の端末通信部１５は、サーバ２００に、電子証明書Ｄの失効指示を行うためのＨＴＴＰレスポンスを送信する。
サーバ２００のサーバ通信部２４は、当該ＨＴＴＰレスポンスを受信し、ＨＴＴＰレスポンスに含まれる電子証明書Ｄの失効指示を失効部２７に通知する。
【００５０】
失効部２７は、電子証明書管理部２６に対して、管理している電子証明書のうち、電子証明書Ｄに対応する鍵ペアが同一であり、かつ、電子証明書Ｄの順序番号より後に順序付されている電子証明書の情報を送信するように要求する。
電子証明書管理部２６は、ハードディスクに記憶されている順序付管理テーブルを参照する。図３に示すように、電子証明書Ｄの「鍵ペアの識別情報」が“鍵ペアＡ”であり、かつ、「順序番号」が“順序４−１”であることから、「鍵ペアの識別情報」が“鍵ペアＡ”であり、かつ、「順序番号」が“順序４−１”より後に順序付けられている電子証明書が、電子証明書Ｇ及びＥであることを確認する。電子証明書管理部２６は、電子証明書Ｇ及びＥの情報を失効部２７に通知する。失効部２７は、失効対象の電子証明書Ｇ及びＥを削除するよう電子証明書管理部２６に指示する。また、失効部２７は、電子証明書Ｇ及びＥに関する失効情報を、認証局サーバに送信する。
【００５１】
電子証明書管理部２６は、失効部２７より指示を受けて、失効対象の電子証明書Ｇ及びＥをハードディスクより削除する。また、認証局サーバは、失効部２７より通知を受けて、電子証明書Ｇ及びＥに関する失効情報を記録する。
このように、電子証明書を順序付けして管理しておくことで、一括で電子証明書の失効処理を行うことができるため、電子認証における利便性と安全性とを高めることができる。
【００５２】
［３．変形例］
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、その技術思想の範囲内で様々な変形が可能である。変形例としては、例えば、以下のようなものが考えられる。
（１）上述した実施形態においては、電子文書にユーザの電子署名を付加するための一連の処理のうち、端末１００が署名値を生成する処理を行い、サーバ２００が署名値を生成する処理以外の処理を行うとして説明したが、これに限定されずに、例えば、端末１００がある程度の処理能力を備えている場合には、端末１００は、一連の処理のうち署名値を生成する処理以外の処理を行ってもよい。
【００５３】
（２）上述した実施形態においては、電子文書提供者サーバ３００から送信された電子文書に対して、端末１００のユーザの電子署名を付加する場合について説明したが、電子文書提供者が電子文書を提供する態様に限定されることはない。
例えば、電子文書提供者サーバ３００から送信された電子文書に対してではなく、端末１００が生成した電子文書に対して電子署名を付与するようにしてもよい。この場合の用途としては、例えば、ユーザの署名入りの招待状や契約解除申請を、電子文書提供者サーバ３００に送信するという用途が考えられる。
【００５４】
（３）上述した実施形態においては、電子文書としてＸＭＬ文書を用い、電子署名の形式としてＷ３Ｇで標準化されているＸＭＬ署名を用いたが、ＸＭＬに限定されない。
（４）上述した実施形態においては、端末１００はＸＭＬ文書を表示できない装置であることが前提であり、サーバ２００の文書変換部２２は、電子文書提供者サーバ３００より受信したＸＭＬ文書をＨＴＭＬ文書に変換するようにしたが、文書の変換形式は一例に過ぎない。例えば、文書変換部２２は、端末１００のディスプレイの表示サイズに合う画面が表示されるように、電子文書提供者サーバ３００から受信したＸＭＬ文書を変換するようにしてもよい。
【００５５】
（５）上述した実施形態においては、秘密鍵を耐タンパ装置としてのＩＣカードに記憶したが、例えば、端末１００の不揮発性メモリの記憶容量に余裕がある場合には、揮発性メモリに、鍵管理部１３のみがアクセスできるようにした領域を確保して、当該領域に秘密鍵を記憶するようにしてもよい。また、同様に、サーバ２００で管理している電子証明書を端末１００の揮発性メモリで管理することも可能である。
【００５６】
（６）上述した実施形態においては、ユーザは、複数の電子証明書の中から使用する電子証明書を指定するために、Ａ契約申込画面上の「使用する電子証明書」の入力欄に電子証明書の情報を入力するようにしたが、使用する電子証明書を指定する方法はこれに限定されない。例えば、サーバ２００が、予め電子文書提供者サーバ３００のＵＲＬと、電子文書提供者サーバ３００が使用する電子証明書とを対応付けて管理しておき、サーバ２００が、ＸＭＬ文書を送信してきた電子文書提供者サーバ３００のＵＲＬによって、使用すべき電子証明書を判定するようにしてもよい。
【００５７】
（７）上述した実施形態においては、電子証明書管理部２６は、順序付管理テーブルによって、鍵ペアに対する複数の電子証明書の順序付けを管理するとして説明したが、例えば、電子証明書に含まれるデータによって、順序付管理テーブルで管理されるデータを全て管理できるのであれば、順序付管理テーブルを設けなくてもよい。また、順序付管理テーブルの構成は一例であり、電子証明書に対応付けられた順序番号同士が重複していてもよいし、用途によって順序番号が一意に決定されるような構成であってもよい。
【００５８】
また、上述した実施形態においては、失効処理のみを説明したが、電子証明書の有効期限更新処理に応用することも可能である。具体的な有効期限更新処理の一例としては、有効期限が異なる複数の電子証明書を管理している場合に、有効期限がある特定の日付以前である電子証明書全てについて、有効期限を２年後の日付に更新するといった処理が挙げられる。このように、複数の電子証明書を順序付けて管理することで、従来においては１つずつユーザの手作業で行っていた失効処理や更新処理を、コンピュータを用いて一括で行うことができる。これにより、正確かつ安全な電子証明書の管理を行うことが可能となる。
【００５９】
（８）上述した実施形態においては、秘密鍵を記憶したＩＣカードは、特定の業者により作成され、端末１００を所有するユーザに提供されたものであるとして説明したが、ＩＣカード自らが秘密鍵を生成することも可能である。
（９）上述した実施形態においては、端末１００は、携帯電話機であるとして説明したが、これに限定されず、機能的に制約のある装置、例えば、ＰＤＡや、ＰＨＳ（Personal Handyphone System）であってもよい。
【産業上の利用可能性】
【００６０】
本発明は、あらゆるクライアントサーバ型の電子認証システムにおいて利用することができる。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施の形態に係る電子認証システムの構成を示すブロック図である。
【図２】同実施の形態に係るサーバで管理される複数の電子証明書を概念的に説明する図である。
【図３】同実施の形態に係る順序付管理テーブルのデータ構成を示す図である。
【図４】同実施の形態に係るＸＭＬ署名の一例を示す図である。
【図５】同実施の形態に係る文書提供者サーバが提供する電子文書の一例を示す図である。
【図６】同実施の形態に係る署名付電子文書生成方法のフローを示す図である。
【符号の説明】
【００６２】
１００  端末
１１    表示画面部
１２    入力部
１３    鍵管理部
１３１  署名値生成機能
１４    署名要求部
１５    端末通信部
２００  サーバ
２１    文書取得部
２２    文書変換部
２３    ハッシュ値生成部
２４    サーバ通信部
２５    署名付電子文書生成部
２６    電子証明書管理部
２７    失効部
３００  電子文書提供者サーバ
【図１】
2005142661.tif 000003
【図２】
2005142661.tif 000004
【図３】
2005142661.tif 000005
【図４】
2005142661.tif 000006
【図５】
2005142661.tif 000007
【図６】
2005142661.tif 000008