タイムスタンプ付加装置、タイムスタンプ付加方法、電子メール中継サーバ及びコンピュータプログラム
【課題】電子メール本文の原本性を担保しつつ、信頼性の高いタイムスタンプを付加できるタイムスタンプ付加装置を提供する。
【解決手段】本発明のタイムスタンプ付加装置3は、インターネットを介して接続された他のサーバとデータ通信を行う通信部31と、電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段301と、前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、時刻認証事業者に送信するタイムスタンプ要求手段302と、前記時刻認証事業者からの応答メッセージの内容をチェックする応答メッセージチェック手段303と、前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、前記電子メールのヘッダ部に付加するタイムスタンプ付加手段304と、を備える。
【解決手段】本発明のタイムスタンプ付加装置3は、インターネットを介して接続された他のサーバとデータ通信を行う通信部31と、電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段301と、前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、時刻認証事業者に送信するタイムスタンプ要求手段302と、前記時刻認証事業者からの応答メッセージの内容をチェックする応答メッセージチェック手段303と、前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、前記電子メールのヘッダ部に付加するタイムスタンプ付加手段304と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子署名付き電子メールにタイムスタンプを付加する装置、方法、電子メール中継サーバ及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年、電子メールは、情報伝達手段として欠くことのできないものとなっている。かかる電子メールは、電子データであるが故、第三者により、その内容が閲覧され、あるいは「改ざん」や「なりすまし」等の不正行為が容易に行われるという危険性を有する。これに対し、暗号化や電子署名を使って、このような不正行為をブロックし、電子メールのやり取りの安全性を高めるという技術(例えば、PGP(Pretty Good Privacy)やS/MIME(Secure/Multipurpose Internet Mail Extensions)等)が知られている。
【0003】
ところで、一般的に、電子メールに添付される(ヘッダ部に付加される)送信日時は、当該電子メールの送信元のマシン(パーソナルコンピュータ等)の設定日時に依存する。そのため、正確性に欠け、また、容易に変更できるので信頼性に乏しい。したがって、上記S/MIME等の技術により、電子メール本文の原本性が担保できても、送信日時の信頼性が希薄なため、例えば、「いつ」送信したかが重要となる場合には、その利用価値は低減せざるを得ない。
【0004】
これに対し、特許文献1には、電子メールの本文に信頼性のあるタイムスタンプを追加する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特表2005−531995号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記特許文献1に係る技術では、電子メール本文の当初の内容が、タイムスタンプを追加することにより変更されることになる。したがって、電子署名のロジックにおいては、これを「改ざん」とみなす可能性があり、特に、S/MIMEを使った電子署名には適用できないものと考えられる。
【0007】
また、電子メールを扱うメールソフト等のアプリケーションプログラムには、電子メール本文の内容に基づいて処理を行うものもあるが、これらと上記特許文献1に係る技術との整合を保つためには、前記アプリケーションプログラムの変更等が必要となる。したがって、上記特許文献1に係る技術の導入は容易とはいえない。
【0008】
本発明は、上記問題を解決すべくなされたものであり、電子メール本文の原本性を担保しつつ、信頼性の高いタイムスタンプを付加できる装置、方法、電子メール中継サーバ及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係るタイムスタンプ付加装置は、
所定のネットワークを介して接続されたサーバとの間でデータ通信を行う通信手段と、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを前記通信手段を使用して時刻認証事業者が運営するサーバに送信するタイムスタンプ要求手段と、
前記通信手段を使用して受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック手段と、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加手段と、
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割手段と、を備え、
前記ハッシュ値生成手段は、前記分割手段により前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、ことを特徴とする。
【0010】
「時刻認証事業者」とは、電子データの作成時刻を証明する第三者機関をいう。
【0011】
また、本発明に係るタイムスタンプ付加方法は、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成工程と、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを時刻認証事業者が運営するサーバに送信するタイムスタンプ要求工程と、
受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック工程と、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加工程と、
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割工程と、を備え、
前記ハッシュ値生成工程では、前記分割工程で前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、ことを特徴とする。
【0012】
また、本発明に係る電子メール中継サーバは、所定のネットワークにおいて電子メールの中継を行う電子メール中継サーバであって、上記構成のタイムスタンプ付加方法を用いて、中継対象の電子メールにタイムスタンプを付加する、ことを特徴とする。
【0013】
また、本発明に係るコンピュータプログラムは、
コンピュータを、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを、所定のネットワークを介して接続されたサーバとの間でデータ通信を行う通信装置を使用して時刻認証事業者が運営するサーバに送信するタイムスタンプ要求手段、
前記通信装置を使用して受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック手段、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加手段、及び
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割手段、として機能させるためのコンピュータプログラムであって、
前記ハッシュ値生成手段は、前記分割手段により前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、ことを特徴とする。
【発明の効果】
【0014】
以上の如く、本発明によれば、電子メールに、メール本文の原本性を担保しつつ、信頼性の高いタイムスタンプを付加できる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態に係るタイムスタンプ付加装置の適用例を示す概念図である。
【図2】同実施形態に係るタイムスタンプ付加装置の構成を説明するためのブロック図であり、(a)は、タイムスタンプ付加装置全体の概略構成を示す図であり、(b)は、タイムスタンプ付加装置が備える制御部の内部構成を示す図である。
【図3】同実施形態において、ハッシュ関数を用いたハッシュ値の生成について説明するための概念図である。
【図4】同実施形態において、タイムスタンプ付加装置とTSAとの間のデータ通信について説明するための概念図である。
【図5】同実施形態において、タイムスタンプを付加した電子メールの概略構成を示す図である。
【図6】同実施形態において、タイムスタンプ付加装置によるタイムスタンプ付加に係る処理手順を示すフローチャートである。
【図7】同実施形態において、送信したタイムスタンプ付き電子メールの検証手順を示すフローチャートである。
【図8】他の実施形態において、生成対象情報が設定されている場合のヘッダ部の内容を示す図である。
【図9】他の実施形態において、添付ファイルの分割について説明するための図である。
【図10】図9の分割の際、各分割電子メールのヘッダ部に記述される分割情報について説明するための図である。
【図11】他の実施形態において、特徴データの抽出について説明するための図である。
【図12】他の実施形態において、電子メール中継サーバでタイムスタンプが付加される際のヘッダ部の内容を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明に係るタイムスタンプ付加装置の一実施形態について図面を参照して説明する。
【0017】
図1は、本実施形態に係るタイムスタンプ付加装置の適用例を示す概念図である。図1において、ユーザPC1は、企業等の組織で構築されたネットワーク(イントラネット)に接続するパーソナルコンピュータ(PC)である。
【0018】
メールサーバ2は、ユーザPC1で作成された電子メールを他のユーザのPC等に送信したり、また、他のユーザのPC等から送信された電子メールをユーザPC1からの受信要求があるまで保管等を行うコンピュータである。タイムスタンプ付加装置3は、インターネット4に接続し、メールサーバ2とインターネット4間の電子メールの送受信の中継を行うと共に、メールサーバ2から送られてきた電子メールにタイムスタンプを付加する装置である。タイムスタンプ付加装置3の詳細については後述する。
【0019】
本実施形態では、ユーザPC1、メールサーバ2及びタイムスタンプ付加装置3は、同一のイントラネット上に存在する。尚、メールサーバ2及びタイムスタンプ付加装置3が他のネットワーク上に存在する構成でもよいし、タイムスタンプ付加装置3のみが他のネットワーク上に存在する構成でもよい。
【0020】
TSA5は、利用者からの要求に応じて、タイムスタンプを発行することで、該利用者が作成した電子データの時刻認証を第三者機関的に行う時刻認証事業者(タイムスタンプ局ともいう)である。TSA5は、図示しない時刻配信局(TA)と所定のネットワークを介して接続し、該TAから標準時に基づく極めて正確な時刻の配信を受けることで、発行するタイムスタンプの信頼性を維持している。尚、本実施形態では、TSA5は、PKI(Public Key Infrastructure)を利用したタイムスタンプのプロトコルフォーマットに従ってタイムスタンプを発行する。
【0021】
次に、タイムスタンプ付加装置3の機能について説明する。図2(a)は、本実施形態に係るタイムスタンプ付加装置3の内部構成を概略的に示すブロック図である。図2(a)において、制御部30は、マイクロコンピュータと、マイクロコンピュータによる処理の手順を定義したプログラムを格納するROMと、ワークエリア等に使用するRAM(何れも図示せず)とを備え、タイムスタンプ付加装置3全体の制御を行う。
【0022】
通信部31は、外部機器とデータ通信を行うための装置であり、イントラネットを介してメールサーバ2とデータ通信を行う装置(図示せず)と、インターネット4を介して外部サーバ等と通信を行う装置(図示せず)と、を備える。I/O部32は、ハードディスク等の補助記憶装置(図示せず)や、モニタ、キーボード等の各種入出力装置(図示せず)を備え、タイムスタンプ付加装置3のI/O処理全般を行う。
【0023】
図2(b)は、制御部30の内部構成を示すブロック図である。図2(b)に示すように、制御部30は、メール送受信手段300と、ハッシュ値生成手段301と、タイムスタンプ要求手段302と、応答メッセージチェック手段303と、タイムスタンプ付加手段304と、を備える。
【0024】
メール送受信手段300は、メールサーバ2から送られてきた電子メールを送信先のPC等(即ち、当該電子メールのヘッダ部に記述されている受信者のメールアドレス宛)に通信部31を通して送信し、また、相手側のPC等から送られてきた電子メールをメールサーバ2に送る処理を行う。
【0025】
ハッシュ値生成手段301は、ユーザPC1から送られてきた電子メールが電子署名付きの場合に、所定のハッシュ関数(例えば、SHA−256等)を用いて、当該電子メールに係る署名値のハッシュ値(メッセージダイジェストともいう)を求める処理を行う。署名値は、S/MIME等の電子署名方式で生成されたデータである。その生成手順を説明すると、図3(a)に示すように、ユーザPC1(あるいはメールサーバ2)によって、先ず、電子メール本文のメッセージダイジェストが所定のハッシュ関数(例えば、MD5やSHA−1等)を用いて生成される。そして、当該メッセージダイジェストを秘密鍵で暗号化することで署名値が生成される。
【0026】
ハッシュ値生成手段301は、この署名値を電子メールから抽出し、図3(b)に示すように、所定のハッシュ関数を用いて、当該署名値のハッシュ値を生成する。この生成したハッシュ値は後述するTSA5へのタイムスタンプ要求処理で使用される。
【0027】
タイムスタンプ要求手段302は、TSA5に対してタイムスタンプ発行の要求を行う。具体的には、ハッシュ値生成手段301が生成したハッシュ値を格納した、所定フォーマットのタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを通信部31を通じて、TSA5に送信する。
【0028】
図4に示すように、TSA5は、タイムスタンプ要求メッセージを受けると、時刻情報と、タイムスタンプ要求メッセージに含まれるハッシュ値と、を含むタイムスタンプトークン(タイムスタンプ情報)を生成する。そして、タイムスタンプトークンを格納した応答メッセージを作成して、要求元であるタイムスタンプ付加装置3に送信する。より詳細には、TSA5は、所定のハッシュ関数を使用して、タイムスタンプトークンのハッシュ値を求め、このハッシュ値をTSA5の秘密鍵で暗号化することでタイムスタンプトークンの署名値を生成し、タイムスタンプトークンと併せてこの署名値も応答メッセージに格納する。これにより、後にタイムスタンプトークンの署名値をTSA5の公開鍵で復号し、この復号した値と、所定のハッシュ関数を使用してタイムスタンプトークンから求めたハッシュ値とを比較することで、当該タイムスタンプトークンが正規のTSA5で生成されたものか否かの検証が可能となる。
【0029】
応答メッセージチェック手段303は、通信部31によって受信された応答メッセージの内容をチェックし、TSA5が発行したタイムスタンプの検証を行う。具体的には、(1)応答メッセージにタイムスタンプトークン(タイムスタンプ情報)が含まれているか否か、(2)タイムスタンプトークンが正規のTSA5で生成されたものであるか否か、(3)タイムスタンプトークンに含まれるハッシュ値が正しいものであるか否か、等のチェックを行う。
【0030】
タイムスタンプ付加手段304は、応答メッセージチェック手段303の上記検証の結果、正常なタイムスタンプトークンであると判定された場合に、当該タイムスタンプトークンを所定の方式(例えば、BASE64等)で文字列(テキスト)データに変換(エンコード)し、当該電子メールのヘッダ部に付加する。具体的には、図5に示すように、タイムスタンプトークンであることを示すフィールド(例えば、“X−TimeStamp”等)を付け、これの後にエンコードしたタイムスタンプトークンを記述する。尚、タイムスタンプトークンを付加する際、“Date”フィールドに記述されている日時をタイムスタンプトークンに含まれる時刻情報に置き換えてもよい。このように“Date”フィールドの日時とタイムスタンプを一致させることによって、一般的な電子メールソフト等に表示される送信日時を認証済みタイムスタンプに同期させることができる。また、エンコード方式を相手側に知らせるため、例えば、“X−TimeStamp/encode=BASE64”等のようにフィールド名を記述して、送信先のユーザにエンコード方式(即ち、相手側にとっては、デコード方式)を通知できる仕様にしてもよい。これにより、複数のエンコード方式を動的に利用することが可能となる。
【0031】
メール送受信手段300は、以上のようにして、タイムスタンプトークンが付加された電子メールを通信部31を通して、送信先のPC等に送信する。
【0032】
次に、以上のように構成されたタイムスタンプ付加装置3が行うタイムスタンプ付加処理の手順を図6のフローチャートに沿って説明する。
【0033】
タイムスタンプ付加処理は、タイムスタンプ付加装置3の通信部31が、ユーザPC1で作成された電子メールをメールサーバ2を介して受信することにより開始される。
【0034】
先ず、ハッシュ値生成手段301が、当該電子メールが電子署名付きであるか否かをチェックする。その結果、電子署名付きである場合(ステップS601でYES)には、上述した手法により、署名値のハッシュ値を生成する(ステップS602)。一方、電子署名付きでない場合(ステップS601でNO)には、タイムスタンプの付加対象でないとして、当該電子メールは、そのまま送信先のPC等に送信される(ステップS609)。
【0035】
署名値のハッシュ値が生成されると、タイムスタンプ要求手段302は、そのハッシュ値を格納したタイムスタンプ要求メッセージを作成する(ステップS603)。そして、該タイムスタンプ要求メッセージを通信部31を通じて、TSA5に送信する(ステップS604)。
【0036】
しかる後、TSA5からの応答メッセージが受信されると(ステップS605でYES)、応答メッセージチェック手段303は、当該応答メッセージをチェックし、TSA5が発行したタイムスタンプが正常であるか否かの検証を行う。その結果、当該タイムスタンプが正常でないと判定された場合(ステップS606でNO)には、ステップS604に戻り、再度、タイムスタンプ要求メッセージがTSA5に送信される。ここで、タイムスタンプが正常でないと判定される例として、TSA5からエラーメッセージが送信されてきた場合、タイムスタンプトークンの署名がTSA5の公開鍵で検証できない場合、応答メッセージにタイムスタンプトークンが含まれていない場合、タイムスタンプトークンに含まれるハッシュ値と先に送信したタイムスタンプ要求メッセージに格納したハッシュ値とが一致しない場合等が挙げられる。尚、ステップS606の判断がNOであった場合に前処理(ステップS604)に戻るループを所定回数繰り返すと、電子メールの送信元にエラーメールを戻し、本処理を終了する。
【0037】
一方、タイムスタンプが正常であると判定されると(ステップS606でYES)、タイムスタンプ付加手段304は、当該タイムスタンプトークン及びその署名値を所定の方式(例えば、BASE64等)で文字列データにエンコードする(ステップS607)。そして、図5に示すように、当該電子メールのヘッダ部に、タイムスタンプトークンであることを示すフィールド名と、エンコード後の文字列データ(タイムスタンプトークン文字列)を記述する(ステップS608)。
【0038】
タイムスタンプトークン文字列が付加された電子メールは、メール送受信手段300によって、通信部31を通して、相手側のPC等に送信される(ステップS609)。以上でタイムスタンプ付加処理は終了となる。
【0039】
次に、送信先のPC等で行われるタイムスタンプ検証処理の手順について、図7のフローチャートに沿って説明する。先ず、電子メールを受信すると、当該電子メールのヘッダ部を検索して、タイムスタンプトークンの付加を示すフィールド(例えば、“X−TimeStamp”等)が存在するか否かのチェックを行う。そして、前記フィールドが存在する場合、その後に記述されているタイムスタンプトークン文字列を抽出する(ステップS701)。
【0040】
次に、この抽出したタイムスタンプトークン文字列を所定の方式(例えば、BASE64等)でデコードして、タイムスタンプトークン及びその署名値を取得する(ステップS702)。尚、タイムスタンプトークンの付加を示すフィールド名にエンコード方式を示す内容を追記する仕様においては、その方式に従って、タイムスタンプトークン文字列をデコードする。次に、このタイムスタンプトークンが正規のものであるか否かの検証を行う(ステップS703)。かかる検証は、上述したように、取得した署名値をTSA5の公開鍵で復号し、この復号した値と、所定のハッシュ関数を使用してタイムスタンプトークンから求めたハッシュ値とを比較することで行われる。ここで正規のものであると検証できれば、タイムスタンプトークンからハッシュ値を抽出する(ステップS704)。
【0041】
次に、当該電子メールの署名値を抽出し、タイムスタンプ付加装置3が使用したハッシュ関数と同一のハッシュ関数を用いて、当該署名値のハッシュ値を生成する(ステップS705)。そして、この生成したハッシュ値とタイムスタンプトークンに含まれていたハッシュ値との比較を行う(ステップS706)。ここで、両者が一致していれば、タイムスタンプが正常に検出されたものとみなされる。
【0042】
以上のタイムスタンプ検証処理の終了後(タイムスタンプ検証処理の前でもよい)、一般的な方法により電子署名の検証が行われる(例えば、電子証明書の有効性確認やメール本文の改ざん有無の確認等)。そして、双方の検証の結果、タイムスタンプが正常に検出され、メール本文の改ざんが無いものと判定されると、当該電子メールの送信日時証明がなされたものとして、その旨の報知等をユーザに対して行う。一方、メール本文の改ざんが検出された場合等は、当該電子メールを破棄し、該電子メールの送信元にエラーメールを返信する。また、電子署名の正当性を高める観点から、タイムスタンプトークンが、電子署名の有効期間内に付加されたか否かをチェックし、有効期間内に付加されていない場合には、当該電子メールを破棄し、該電子メールの送信元にエラーメールを返信する仕様にしてもよい。また、かかるチェック及びエラー処理をタイムスタンプ付加装置3と相手側(送信先)PCとの間に介在し、当該電子メールを中継する各サーバ(電子メール中継サーバ)で行ってもよい。
【0043】
以上説明したように、本実施形態に係るタイムスタンプ付加装置は、第三者機関である時刻認証事業者が発行するタイムスタンプを電子メールのヘッダ部に付加する。したがって、正確な時刻を付与できると共に、非改ざん性も確保できるので、S/MIME等を使った電子署名に適用することが可能となる。また、タイムスタンプをヘッダ部に付加するため、電子メール本文の内容に基づいて処理を行う既存のアプリケーションプログラムと整合を保つことも容易となる。
【0044】
また、上記の如くタイムスタンプが付加された電子メールの受信ユーザは、そのヘッダ情報をインデックスとして使用することで、保存した電子メールについて、認証済みであるか否かの判断や認証された日時等に基づく分類が容易となる。
【0045】
尚、本発明に係るタイムスタンプ付加装置は、上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の変更が可能である。
【0046】
例えば、電子メールヘッダ部のタイムスタンプトークンであることを示すフィールド名(例えば、図5の“X−TimeStamp”)に、当該タイムスタンプトークンのフォーマットを示す内容を追記して、電子メールの受信者に知らせる仕様にしてもよい。例えば、RFC(Request For Comment)3161準拠ならば、“X−Rfc3161TimeStamp”等のように記述する。
【0047】
また、メールサーバとタイムスタンプ付加装置とを別体にする必要はなく、一体化することも当然可能である。
【0048】
また、上記実施形態では、電子署名付きの電子メールから抽出した署名値のハッシュ値をタイムスタンプ要求メッセージに格納しているが、これに限らず、電子メールのヘッダ部に続く電子メールの本文のハッシュ値を生成して、タイムスタンプ要求メッセージに格納する構成にしてもよい。この場合も、電子メール本文の原本性を担保しつつ、電子メール本文の内容に基づいて処理を行う既存のアプリケーションプログラムと整合を保つことも容易となる。
【0049】
さらには、ハッシュ値の生成対象をユーザ(電子メール作成ユーザ)が任意に設定できるようにしてもよい。具体的には、ユーザは、例えば、上記ユーザPC1により、ハッシュ値の生成対象(例えば、署名値、メール本文、添付ファイル、ヘッダ部若しくはヘッダ部の所定部分、又はこれらの組み合わせ等)を設定する。ここで設定された内容(生成対象情報)は、ヘッダ部の所定領域に記述される。例えば、図8に示すように、生成対象情報であることを示すフィールド(例えば、“X−ObjectDefine”等)を付け、このフィールドの後に生成対象情報を記述する。タイムスタンプ付加装置3のハッシュ値生成手段301は、ヘッダ部から生成対象情報を抽出し、これが示す領域のハッシュ値を生成する。
【0050】
上記のようにすると、途中の通信経路等にて、内容が改変されることをユーザが承知している領域(例えば、ヘッダ部の所定部分等)をハッシュ値の生成対象から除外することが可能となる。また、その電子メールの重要度や内容に応じて、ユーザは、適宜、タイムスタンプで保護する領域を変更することができる。例えば、ヘッダ部に当該電子メールの利用権限を記述し、これをタイムスタンプで保護することが可能となる。あるいは、添付ファイルのサイズが大きい場合、当該添付ファイルをハッシュ値の生成対象から除外することで、処理効率の低下を防げることも可能となる。
【0051】
また、上記実施形態のタイムスタンプ付加装置3に電子メールに添付されたファイルを分割して送信できる機能を追加してもよい。具体的には、所定条件の下、添付ファイルを2以上のファイルに分割した電子メールを作成し、分割後の各電子メールのヘッダ部に当該分割に関する情報(分割情報)を記述する分割手段を備える構成にする。例えば、分割手段は、電子メールに添付されたファイルが、所定サイズ以上(例えば、5MB以上)である場合、図9に示すように、添付ファイルをN個(Nは2以上の整数)のファイルに分割した電子メール(分割電子メール1〜N)を作成する。そして、各分割電子メール(1〜N)のヘッダ部の所定領域に分割情報を記述する。分割手段は、例えば、図10に示すように、分割情報であることを示すフィールド(例えば、“X−DivisionInfo”等)を付け、このフィールドの後に分割情報を記述する。ここで、分割情報には、例えば、分割のアルゴリズム、ユーザ名、分割数、通し番号等が含まれる。そして、ハッシュ値生成手段301は、各分割電子メール(1〜N)について、少なくとも、分割情報を含むヘッダ部の所定部分を対象にしてハッシュ値を生成する。
【0052】
これにより、容量の大きいファイルが添付された電子メールの送信の不都合が解消され、また、タイムスタンプで分割情報を有効に保護することができる。
【0053】
また、分割したファイルを全て送信するのではなく、添付ファイルの一部のデータのみを送信する仕様にしてもよい。具体的には、所定条件の下、添付ファイルから一部の特徴的なデータ(特徴データ)を抽出し、当該電子メールの添付ファイルをこの特徴データに替え、抽出に関する情報(抽出情報)をヘッダ部に記述するデータ抽出手段を備える構成にする。例えば、データ抽出手段は、電子メールに添付されたファイルが、所定サイズ以上(例えば、100MB以上)である場合、図11に示すように、添付ファイルから一部の特徴的なデータ(特徴データ)を抽出し、該特徴データを添付する新しい電子メールを作成する(ヘッダ部、メール本文及び署名値の内容は元の電子メールと同一)。特徴データの抽出手法については特に限定はなく、既知の様々な方式を採用できる。そして、作成した電子メールのヘッダ部の所定領域に抽出情報を記述する。データ抽出手段は、例えば、図11に示すように、抽出情報であることを示すフィールド(例えば、“X−ExtractionInfo”等)を付け、このフィールドの後に抽出情報を記述する。ここで、抽出情報には、例えば、抽出のアルゴリズム、ユーザ名、残りのデータの運搬方法等が含まれる。そして、ハッシュ値生成手段301は、少なくとも、この抽出情報を含むヘッダ部の所定部分を対象にしてハッシュ値を生成する。
【0054】
このようにすることで、例えば、実験データ等のデータサイズが非常に大きいファイルについても、一部のデータを電子メールにて送信するだけで、送信日時を証明することが可能となる(残りのデータについては、CD−R等の記録媒体に保存し、郵送等にて送る)。したがって、用途の幅が広がり、利用シーンの拡大が図れる。
【0055】
また、電子メールのヘッダ部へのタイムスタンプ(タイムスタンプトークン)の付加をタイムスタンプ付加装置3のみならず、各々の電子メール中継サーバで多重に行ってもよい。この場合の電子メール中継サーバは、タイムスタンプ付加装置3と類似した構成及び機能を有する(図2参照)。以下、かかる場合の電子メール中継サーバの処理手順の一例を説明する。
【0056】
先ず、電子メール中継サーバは、タイムスタンプ付加装置3又は他の電子メール中継サーバから送られてきた電子メール(タイムスタンプトークンが付加されている)のヘッダ部を抽出する。そして、所定のハッシュ関数(例えば、SHA−256等)を用いて、このヘッダ部を対象にしたハッシュ値を生成する。電子メール中継サーバは、生成したハッシュ値を格納したタイムスタンプ要求メッセージを作成し、時刻認証事業者(TSA5)に送信する。
【0057】
TSA5からの応答メッセージが受信されると、電子メール中継サーバは、当該応答メッセージをチェックし、TSA5が発行したタイムスタンプが正常であるか否かの検証を行う。検証の方法、異常時の処理の手順は、上記実施形態のタイムスタンプ付加装置3と同様である。検証の結果、タイムスタンプが正常であると判定されると、電子メール中継サーバは、当該タイムスタンプトークン及びその署名値を所定の方式(例えば、BASE64等)で文字列データにエンコードする。そして、当該電子メールのヘッダ部に、タイムスタンプトークンであることを示すフィールド名と、エンコード後の文字列データ(タイムスタンプトークン文字列)を記述(追加)する。この際のフィールド名は、“定型名+番号(付加数)”のようにすればよい。例えば、タイムスタンプ付加装置3と、他の電子メール中継サーバにて既に2つのタイムスタンプが付加されているとすると、当該電子メール中継サーバは、図12に示すように、当該電子メールのヘッダ部に“X−TimeStamp3”等のような3つ目のタイムスタンプであることを示すフィールド名を付け、このフィールドの後に今回のタイムスタンプ(タイムスタンプトークン文字列)を記述する。
【0058】
このように、各中継先(電子メール中継サーバ)でタイムスタンプが埋め込まれることで、電子メール受信側で、電子メールの通信経路の検証(トレーサビリティ)が容易となり、電子メールの安全性が高まる。また、電子メールの安全性をより高めるため、各電子メール中継サーバで、直前の電子メール中継サーバによりタイムスタンプが付加されてからの時間を計時し、所定時間を超えた場合には、エラー処理(電子メールの破棄、エラーメールの返信等)を行う仕様にしてもよい。
【符号の説明】
【0059】
1 ユーザPC
2 メールサーバ
3 タイムスタンプ付加装置
4 インターネット
5 TSA(時刻認証事業者)
30 制御部
300 メール送受信手段
301 ハッシュ値生成手段
302 タイムスタンプ要求手段
303 応答メッセージチェック手段
304 タイムスタンプ付加手段
【技術分野】
【0001】
本発明は、電子署名付き電子メールにタイムスタンプを付加する装置、方法、電子メール中継サーバ及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年、電子メールは、情報伝達手段として欠くことのできないものとなっている。かかる電子メールは、電子データであるが故、第三者により、その内容が閲覧され、あるいは「改ざん」や「なりすまし」等の不正行為が容易に行われるという危険性を有する。これに対し、暗号化や電子署名を使って、このような不正行為をブロックし、電子メールのやり取りの安全性を高めるという技術(例えば、PGP(Pretty Good Privacy)やS/MIME(Secure/Multipurpose Internet Mail Extensions)等)が知られている。
【0003】
ところで、一般的に、電子メールに添付される(ヘッダ部に付加される)送信日時は、当該電子メールの送信元のマシン(パーソナルコンピュータ等)の設定日時に依存する。そのため、正確性に欠け、また、容易に変更できるので信頼性に乏しい。したがって、上記S/MIME等の技術により、電子メール本文の原本性が担保できても、送信日時の信頼性が希薄なため、例えば、「いつ」送信したかが重要となる場合には、その利用価値は低減せざるを得ない。
【0004】
これに対し、特許文献1には、電子メールの本文に信頼性のあるタイムスタンプを追加する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特表2005−531995号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記特許文献1に係る技術では、電子メール本文の当初の内容が、タイムスタンプを追加することにより変更されることになる。したがって、電子署名のロジックにおいては、これを「改ざん」とみなす可能性があり、特に、S/MIMEを使った電子署名には適用できないものと考えられる。
【0007】
また、電子メールを扱うメールソフト等のアプリケーションプログラムには、電子メール本文の内容に基づいて処理を行うものもあるが、これらと上記特許文献1に係る技術との整合を保つためには、前記アプリケーションプログラムの変更等が必要となる。したがって、上記特許文献1に係る技術の導入は容易とはいえない。
【0008】
本発明は、上記問題を解決すべくなされたものであり、電子メール本文の原本性を担保しつつ、信頼性の高いタイムスタンプを付加できる装置、方法、電子メール中継サーバ及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係るタイムスタンプ付加装置は、
所定のネットワークを介して接続されたサーバとの間でデータ通信を行う通信手段と、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを前記通信手段を使用して時刻認証事業者が運営するサーバに送信するタイムスタンプ要求手段と、
前記通信手段を使用して受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック手段と、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加手段と、
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割手段と、を備え、
前記ハッシュ値生成手段は、前記分割手段により前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、ことを特徴とする。
【0010】
「時刻認証事業者」とは、電子データの作成時刻を証明する第三者機関をいう。
【0011】
また、本発明に係るタイムスタンプ付加方法は、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成工程と、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを時刻認証事業者が運営するサーバに送信するタイムスタンプ要求工程と、
受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック工程と、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加工程と、
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割工程と、を備え、
前記ハッシュ値生成工程では、前記分割工程で前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、ことを特徴とする。
【0012】
また、本発明に係る電子メール中継サーバは、所定のネットワークにおいて電子メールの中継を行う電子メール中継サーバであって、上記構成のタイムスタンプ付加方法を用いて、中継対象の電子メールにタイムスタンプを付加する、ことを特徴とする。
【0013】
また、本発明に係るコンピュータプログラムは、
コンピュータを、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを、所定のネットワークを介して接続されたサーバとの間でデータ通信を行う通信装置を使用して時刻認証事業者が運営するサーバに送信するタイムスタンプ要求手段、
前記通信装置を使用して受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック手段、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加手段、及び
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割手段、として機能させるためのコンピュータプログラムであって、
前記ハッシュ値生成手段は、前記分割手段により前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、ことを特徴とする。
【発明の効果】
【0014】
以上の如く、本発明によれば、電子メールに、メール本文の原本性を担保しつつ、信頼性の高いタイムスタンプを付加できる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態に係るタイムスタンプ付加装置の適用例を示す概念図である。
【図2】同実施形態に係るタイムスタンプ付加装置の構成を説明するためのブロック図であり、(a)は、タイムスタンプ付加装置全体の概略構成を示す図であり、(b)は、タイムスタンプ付加装置が備える制御部の内部構成を示す図である。
【図3】同実施形態において、ハッシュ関数を用いたハッシュ値の生成について説明するための概念図である。
【図4】同実施形態において、タイムスタンプ付加装置とTSAとの間のデータ通信について説明するための概念図である。
【図5】同実施形態において、タイムスタンプを付加した電子メールの概略構成を示す図である。
【図6】同実施形態において、タイムスタンプ付加装置によるタイムスタンプ付加に係る処理手順を示すフローチャートである。
【図7】同実施形態において、送信したタイムスタンプ付き電子メールの検証手順を示すフローチャートである。
【図8】他の実施形態において、生成対象情報が設定されている場合のヘッダ部の内容を示す図である。
【図9】他の実施形態において、添付ファイルの分割について説明するための図である。
【図10】図9の分割の際、各分割電子メールのヘッダ部に記述される分割情報について説明するための図である。
【図11】他の実施形態において、特徴データの抽出について説明するための図である。
【図12】他の実施形態において、電子メール中継サーバでタイムスタンプが付加される際のヘッダ部の内容を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明に係るタイムスタンプ付加装置の一実施形態について図面を参照して説明する。
【0017】
図1は、本実施形態に係るタイムスタンプ付加装置の適用例を示す概念図である。図1において、ユーザPC1は、企業等の組織で構築されたネットワーク(イントラネット)に接続するパーソナルコンピュータ(PC)である。
【0018】
メールサーバ2は、ユーザPC1で作成された電子メールを他のユーザのPC等に送信したり、また、他のユーザのPC等から送信された電子メールをユーザPC1からの受信要求があるまで保管等を行うコンピュータである。タイムスタンプ付加装置3は、インターネット4に接続し、メールサーバ2とインターネット4間の電子メールの送受信の中継を行うと共に、メールサーバ2から送られてきた電子メールにタイムスタンプを付加する装置である。タイムスタンプ付加装置3の詳細については後述する。
【0019】
本実施形態では、ユーザPC1、メールサーバ2及びタイムスタンプ付加装置3は、同一のイントラネット上に存在する。尚、メールサーバ2及びタイムスタンプ付加装置3が他のネットワーク上に存在する構成でもよいし、タイムスタンプ付加装置3のみが他のネットワーク上に存在する構成でもよい。
【0020】
TSA5は、利用者からの要求に応じて、タイムスタンプを発行することで、該利用者が作成した電子データの時刻認証を第三者機関的に行う時刻認証事業者(タイムスタンプ局ともいう)である。TSA5は、図示しない時刻配信局(TA)と所定のネットワークを介して接続し、該TAから標準時に基づく極めて正確な時刻の配信を受けることで、発行するタイムスタンプの信頼性を維持している。尚、本実施形態では、TSA5は、PKI(Public Key Infrastructure)を利用したタイムスタンプのプロトコルフォーマットに従ってタイムスタンプを発行する。
【0021】
次に、タイムスタンプ付加装置3の機能について説明する。図2(a)は、本実施形態に係るタイムスタンプ付加装置3の内部構成を概略的に示すブロック図である。図2(a)において、制御部30は、マイクロコンピュータと、マイクロコンピュータによる処理の手順を定義したプログラムを格納するROMと、ワークエリア等に使用するRAM(何れも図示せず)とを備え、タイムスタンプ付加装置3全体の制御を行う。
【0022】
通信部31は、外部機器とデータ通信を行うための装置であり、イントラネットを介してメールサーバ2とデータ通信を行う装置(図示せず)と、インターネット4を介して外部サーバ等と通信を行う装置(図示せず)と、を備える。I/O部32は、ハードディスク等の補助記憶装置(図示せず)や、モニタ、キーボード等の各種入出力装置(図示せず)を備え、タイムスタンプ付加装置3のI/O処理全般を行う。
【0023】
図2(b)は、制御部30の内部構成を示すブロック図である。図2(b)に示すように、制御部30は、メール送受信手段300と、ハッシュ値生成手段301と、タイムスタンプ要求手段302と、応答メッセージチェック手段303と、タイムスタンプ付加手段304と、を備える。
【0024】
メール送受信手段300は、メールサーバ2から送られてきた電子メールを送信先のPC等(即ち、当該電子メールのヘッダ部に記述されている受信者のメールアドレス宛)に通信部31を通して送信し、また、相手側のPC等から送られてきた電子メールをメールサーバ2に送る処理を行う。
【0025】
ハッシュ値生成手段301は、ユーザPC1から送られてきた電子メールが電子署名付きの場合に、所定のハッシュ関数(例えば、SHA−256等)を用いて、当該電子メールに係る署名値のハッシュ値(メッセージダイジェストともいう)を求める処理を行う。署名値は、S/MIME等の電子署名方式で生成されたデータである。その生成手順を説明すると、図3(a)に示すように、ユーザPC1(あるいはメールサーバ2)によって、先ず、電子メール本文のメッセージダイジェストが所定のハッシュ関数(例えば、MD5やSHA−1等)を用いて生成される。そして、当該メッセージダイジェストを秘密鍵で暗号化することで署名値が生成される。
【0026】
ハッシュ値生成手段301は、この署名値を電子メールから抽出し、図3(b)に示すように、所定のハッシュ関数を用いて、当該署名値のハッシュ値を生成する。この生成したハッシュ値は後述するTSA5へのタイムスタンプ要求処理で使用される。
【0027】
タイムスタンプ要求手段302は、TSA5に対してタイムスタンプ発行の要求を行う。具体的には、ハッシュ値生成手段301が生成したハッシュ値を格納した、所定フォーマットのタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを通信部31を通じて、TSA5に送信する。
【0028】
図4に示すように、TSA5は、タイムスタンプ要求メッセージを受けると、時刻情報と、タイムスタンプ要求メッセージに含まれるハッシュ値と、を含むタイムスタンプトークン(タイムスタンプ情報)を生成する。そして、タイムスタンプトークンを格納した応答メッセージを作成して、要求元であるタイムスタンプ付加装置3に送信する。より詳細には、TSA5は、所定のハッシュ関数を使用して、タイムスタンプトークンのハッシュ値を求め、このハッシュ値をTSA5の秘密鍵で暗号化することでタイムスタンプトークンの署名値を生成し、タイムスタンプトークンと併せてこの署名値も応答メッセージに格納する。これにより、後にタイムスタンプトークンの署名値をTSA5の公開鍵で復号し、この復号した値と、所定のハッシュ関数を使用してタイムスタンプトークンから求めたハッシュ値とを比較することで、当該タイムスタンプトークンが正規のTSA5で生成されたものか否かの検証が可能となる。
【0029】
応答メッセージチェック手段303は、通信部31によって受信された応答メッセージの内容をチェックし、TSA5が発行したタイムスタンプの検証を行う。具体的には、(1)応答メッセージにタイムスタンプトークン(タイムスタンプ情報)が含まれているか否か、(2)タイムスタンプトークンが正規のTSA5で生成されたものであるか否か、(3)タイムスタンプトークンに含まれるハッシュ値が正しいものであるか否か、等のチェックを行う。
【0030】
タイムスタンプ付加手段304は、応答メッセージチェック手段303の上記検証の結果、正常なタイムスタンプトークンであると判定された場合に、当該タイムスタンプトークンを所定の方式(例えば、BASE64等)で文字列(テキスト)データに変換(エンコード)し、当該電子メールのヘッダ部に付加する。具体的には、図5に示すように、タイムスタンプトークンであることを示すフィールド(例えば、“X−TimeStamp”等)を付け、これの後にエンコードしたタイムスタンプトークンを記述する。尚、タイムスタンプトークンを付加する際、“Date”フィールドに記述されている日時をタイムスタンプトークンに含まれる時刻情報に置き換えてもよい。このように“Date”フィールドの日時とタイムスタンプを一致させることによって、一般的な電子メールソフト等に表示される送信日時を認証済みタイムスタンプに同期させることができる。また、エンコード方式を相手側に知らせるため、例えば、“X−TimeStamp/encode=BASE64”等のようにフィールド名を記述して、送信先のユーザにエンコード方式(即ち、相手側にとっては、デコード方式)を通知できる仕様にしてもよい。これにより、複数のエンコード方式を動的に利用することが可能となる。
【0031】
メール送受信手段300は、以上のようにして、タイムスタンプトークンが付加された電子メールを通信部31を通して、送信先のPC等に送信する。
【0032】
次に、以上のように構成されたタイムスタンプ付加装置3が行うタイムスタンプ付加処理の手順を図6のフローチャートに沿って説明する。
【0033】
タイムスタンプ付加処理は、タイムスタンプ付加装置3の通信部31が、ユーザPC1で作成された電子メールをメールサーバ2を介して受信することにより開始される。
【0034】
先ず、ハッシュ値生成手段301が、当該電子メールが電子署名付きであるか否かをチェックする。その結果、電子署名付きである場合(ステップS601でYES)には、上述した手法により、署名値のハッシュ値を生成する(ステップS602)。一方、電子署名付きでない場合(ステップS601でNO)には、タイムスタンプの付加対象でないとして、当該電子メールは、そのまま送信先のPC等に送信される(ステップS609)。
【0035】
署名値のハッシュ値が生成されると、タイムスタンプ要求手段302は、そのハッシュ値を格納したタイムスタンプ要求メッセージを作成する(ステップS603)。そして、該タイムスタンプ要求メッセージを通信部31を通じて、TSA5に送信する(ステップS604)。
【0036】
しかる後、TSA5からの応答メッセージが受信されると(ステップS605でYES)、応答メッセージチェック手段303は、当該応答メッセージをチェックし、TSA5が発行したタイムスタンプが正常であるか否かの検証を行う。その結果、当該タイムスタンプが正常でないと判定された場合(ステップS606でNO)には、ステップS604に戻り、再度、タイムスタンプ要求メッセージがTSA5に送信される。ここで、タイムスタンプが正常でないと判定される例として、TSA5からエラーメッセージが送信されてきた場合、タイムスタンプトークンの署名がTSA5の公開鍵で検証できない場合、応答メッセージにタイムスタンプトークンが含まれていない場合、タイムスタンプトークンに含まれるハッシュ値と先に送信したタイムスタンプ要求メッセージに格納したハッシュ値とが一致しない場合等が挙げられる。尚、ステップS606の判断がNOであった場合に前処理(ステップS604)に戻るループを所定回数繰り返すと、電子メールの送信元にエラーメールを戻し、本処理を終了する。
【0037】
一方、タイムスタンプが正常であると判定されると(ステップS606でYES)、タイムスタンプ付加手段304は、当該タイムスタンプトークン及びその署名値を所定の方式(例えば、BASE64等)で文字列データにエンコードする(ステップS607)。そして、図5に示すように、当該電子メールのヘッダ部に、タイムスタンプトークンであることを示すフィールド名と、エンコード後の文字列データ(タイムスタンプトークン文字列)を記述する(ステップS608)。
【0038】
タイムスタンプトークン文字列が付加された電子メールは、メール送受信手段300によって、通信部31を通して、相手側のPC等に送信される(ステップS609)。以上でタイムスタンプ付加処理は終了となる。
【0039】
次に、送信先のPC等で行われるタイムスタンプ検証処理の手順について、図7のフローチャートに沿って説明する。先ず、電子メールを受信すると、当該電子メールのヘッダ部を検索して、タイムスタンプトークンの付加を示すフィールド(例えば、“X−TimeStamp”等)が存在するか否かのチェックを行う。そして、前記フィールドが存在する場合、その後に記述されているタイムスタンプトークン文字列を抽出する(ステップS701)。
【0040】
次に、この抽出したタイムスタンプトークン文字列を所定の方式(例えば、BASE64等)でデコードして、タイムスタンプトークン及びその署名値を取得する(ステップS702)。尚、タイムスタンプトークンの付加を示すフィールド名にエンコード方式を示す内容を追記する仕様においては、その方式に従って、タイムスタンプトークン文字列をデコードする。次に、このタイムスタンプトークンが正規のものであるか否かの検証を行う(ステップS703)。かかる検証は、上述したように、取得した署名値をTSA5の公開鍵で復号し、この復号した値と、所定のハッシュ関数を使用してタイムスタンプトークンから求めたハッシュ値とを比較することで行われる。ここで正規のものであると検証できれば、タイムスタンプトークンからハッシュ値を抽出する(ステップS704)。
【0041】
次に、当該電子メールの署名値を抽出し、タイムスタンプ付加装置3が使用したハッシュ関数と同一のハッシュ関数を用いて、当該署名値のハッシュ値を生成する(ステップS705)。そして、この生成したハッシュ値とタイムスタンプトークンに含まれていたハッシュ値との比較を行う(ステップS706)。ここで、両者が一致していれば、タイムスタンプが正常に検出されたものとみなされる。
【0042】
以上のタイムスタンプ検証処理の終了後(タイムスタンプ検証処理の前でもよい)、一般的な方法により電子署名の検証が行われる(例えば、電子証明書の有効性確認やメール本文の改ざん有無の確認等)。そして、双方の検証の結果、タイムスタンプが正常に検出され、メール本文の改ざんが無いものと判定されると、当該電子メールの送信日時証明がなされたものとして、その旨の報知等をユーザに対して行う。一方、メール本文の改ざんが検出された場合等は、当該電子メールを破棄し、該電子メールの送信元にエラーメールを返信する。また、電子署名の正当性を高める観点から、タイムスタンプトークンが、電子署名の有効期間内に付加されたか否かをチェックし、有効期間内に付加されていない場合には、当該電子メールを破棄し、該電子メールの送信元にエラーメールを返信する仕様にしてもよい。また、かかるチェック及びエラー処理をタイムスタンプ付加装置3と相手側(送信先)PCとの間に介在し、当該電子メールを中継する各サーバ(電子メール中継サーバ)で行ってもよい。
【0043】
以上説明したように、本実施形態に係るタイムスタンプ付加装置は、第三者機関である時刻認証事業者が発行するタイムスタンプを電子メールのヘッダ部に付加する。したがって、正確な時刻を付与できると共に、非改ざん性も確保できるので、S/MIME等を使った電子署名に適用することが可能となる。また、タイムスタンプをヘッダ部に付加するため、電子メール本文の内容に基づいて処理を行う既存のアプリケーションプログラムと整合を保つことも容易となる。
【0044】
また、上記の如くタイムスタンプが付加された電子メールの受信ユーザは、そのヘッダ情報をインデックスとして使用することで、保存した電子メールについて、認証済みであるか否かの判断や認証された日時等に基づく分類が容易となる。
【0045】
尚、本発明に係るタイムスタンプ付加装置は、上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の変更が可能である。
【0046】
例えば、電子メールヘッダ部のタイムスタンプトークンであることを示すフィールド名(例えば、図5の“X−TimeStamp”)に、当該タイムスタンプトークンのフォーマットを示す内容を追記して、電子メールの受信者に知らせる仕様にしてもよい。例えば、RFC(Request For Comment)3161準拠ならば、“X−Rfc3161TimeStamp”等のように記述する。
【0047】
また、メールサーバとタイムスタンプ付加装置とを別体にする必要はなく、一体化することも当然可能である。
【0048】
また、上記実施形態では、電子署名付きの電子メールから抽出した署名値のハッシュ値をタイムスタンプ要求メッセージに格納しているが、これに限らず、電子メールのヘッダ部に続く電子メールの本文のハッシュ値を生成して、タイムスタンプ要求メッセージに格納する構成にしてもよい。この場合も、電子メール本文の原本性を担保しつつ、電子メール本文の内容に基づいて処理を行う既存のアプリケーションプログラムと整合を保つことも容易となる。
【0049】
さらには、ハッシュ値の生成対象をユーザ(電子メール作成ユーザ)が任意に設定できるようにしてもよい。具体的には、ユーザは、例えば、上記ユーザPC1により、ハッシュ値の生成対象(例えば、署名値、メール本文、添付ファイル、ヘッダ部若しくはヘッダ部の所定部分、又はこれらの組み合わせ等)を設定する。ここで設定された内容(生成対象情報)は、ヘッダ部の所定領域に記述される。例えば、図8に示すように、生成対象情報であることを示すフィールド(例えば、“X−ObjectDefine”等)を付け、このフィールドの後に生成対象情報を記述する。タイムスタンプ付加装置3のハッシュ値生成手段301は、ヘッダ部から生成対象情報を抽出し、これが示す領域のハッシュ値を生成する。
【0050】
上記のようにすると、途中の通信経路等にて、内容が改変されることをユーザが承知している領域(例えば、ヘッダ部の所定部分等)をハッシュ値の生成対象から除外することが可能となる。また、その電子メールの重要度や内容に応じて、ユーザは、適宜、タイムスタンプで保護する領域を変更することができる。例えば、ヘッダ部に当該電子メールの利用権限を記述し、これをタイムスタンプで保護することが可能となる。あるいは、添付ファイルのサイズが大きい場合、当該添付ファイルをハッシュ値の生成対象から除外することで、処理効率の低下を防げることも可能となる。
【0051】
また、上記実施形態のタイムスタンプ付加装置3に電子メールに添付されたファイルを分割して送信できる機能を追加してもよい。具体的には、所定条件の下、添付ファイルを2以上のファイルに分割した電子メールを作成し、分割後の各電子メールのヘッダ部に当該分割に関する情報(分割情報)を記述する分割手段を備える構成にする。例えば、分割手段は、電子メールに添付されたファイルが、所定サイズ以上(例えば、5MB以上)である場合、図9に示すように、添付ファイルをN個(Nは2以上の整数)のファイルに分割した電子メール(分割電子メール1〜N)を作成する。そして、各分割電子メール(1〜N)のヘッダ部の所定領域に分割情報を記述する。分割手段は、例えば、図10に示すように、分割情報であることを示すフィールド(例えば、“X−DivisionInfo”等)を付け、このフィールドの後に分割情報を記述する。ここで、分割情報には、例えば、分割のアルゴリズム、ユーザ名、分割数、通し番号等が含まれる。そして、ハッシュ値生成手段301は、各分割電子メール(1〜N)について、少なくとも、分割情報を含むヘッダ部の所定部分を対象にしてハッシュ値を生成する。
【0052】
これにより、容量の大きいファイルが添付された電子メールの送信の不都合が解消され、また、タイムスタンプで分割情報を有効に保護することができる。
【0053】
また、分割したファイルを全て送信するのではなく、添付ファイルの一部のデータのみを送信する仕様にしてもよい。具体的には、所定条件の下、添付ファイルから一部の特徴的なデータ(特徴データ)を抽出し、当該電子メールの添付ファイルをこの特徴データに替え、抽出に関する情報(抽出情報)をヘッダ部に記述するデータ抽出手段を備える構成にする。例えば、データ抽出手段は、電子メールに添付されたファイルが、所定サイズ以上(例えば、100MB以上)である場合、図11に示すように、添付ファイルから一部の特徴的なデータ(特徴データ)を抽出し、該特徴データを添付する新しい電子メールを作成する(ヘッダ部、メール本文及び署名値の内容は元の電子メールと同一)。特徴データの抽出手法については特に限定はなく、既知の様々な方式を採用できる。そして、作成した電子メールのヘッダ部の所定領域に抽出情報を記述する。データ抽出手段は、例えば、図11に示すように、抽出情報であることを示すフィールド(例えば、“X−ExtractionInfo”等)を付け、このフィールドの後に抽出情報を記述する。ここで、抽出情報には、例えば、抽出のアルゴリズム、ユーザ名、残りのデータの運搬方法等が含まれる。そして、ハッシュ値生成手段301は、少なくとも、この抽出情報を含むヘッダ部の所定部分を対象にしてハッシュ値を生成する。
【0054】
このようにすることで、例えば、実験データ等のデータサイズが非常に大きいファイルについても、一部のデータを電子メールにて送信するだけで、送信日時を証明することが可能となる(残りのデータについては、CD−R等の記録媒体に保存し、郵送等にて送る)。したがって、用途の幅が広がり、利用シーンの拡大が図れる。
【0055】
また、電子メールのヘッダ部へのタイムスタンプ(タイムスタンプトークン)の付加をタイムスタンプ付加装置3のみならず、各々の電子メール中継サーバで多重に行ってもよい。この場合の電子メール中継サーバは、タイムスタンプ付加装置3と類似した構成及び機能を有する(図2参照)。以下、かかる場合の電子メール中継サーバの処理手順の一例を説明する。
【0056】
先ず、電子メール中継サーバは、タイムスタンプ付加装置3又は他の電子メール中継サーバから送られてきた電子メール(タイムスタンプトークンが付加されている)のヘッダ部を抽出する。そして、所定のハッシュ関数(例えば、SHA−256等)を用いて、このヘッダ部を対象にしたハッシュ値を生成する。電子メール中継サーバは、生成したハッシュ値を格納したタイムスタンプ要求メッセージを作成し、時刻認証事業者(TSA5)に送信する。
【0057】
TSA5からの応答メッセージが受信されると、電子メール中継サーバは、当該応答メッセージをチェックし、TSA5が発行したタイムスタンプが正常であるか否かの検証を行う。検証の方法、異常時の処理の手順は、上記実施形態のタイムスタンプ付加装置3と同様である。検証の結果、タイムスタンプが正常であると判定されると、電子メール中継サーバは、当該タイムスタンプトークン及びその署名値を所定の方式(例えば、BASE64等)で文字列データにエンコードする。そして、当該電子メールのヘッダ部に、タイムスタンプトークンであることを示すフィールド名と、エンコード後の文字列データ(タイムスタンプトークン文字列)を記述(追加)する。この際のフィールド名は、“定型名+番号(付加数)”のようにすればよい。例えば、タイムスタンプ付加装置3と、他の電子メール中継サーバにて既に2つのタイムスタンプが付加されているとすると、当該電子メール中継サーバは、図12に示すように、当該電子メールのヘッダ部に“X−TimeStamp3”等のような3つ目のタイムスタンプであることを示すフィールド名を付け、このフィールドの後に今回のタイムスタンプ(タイムスタンプトークン文字列)を記述する。
【0058】
このように、各中継先(電子メール中継サーバ)でタイムスタンプが埋め込まれることで、電子メール受信側で、電子メールの通信経路の検証(トレーサビリティ)が容易となり、電子メールの安全性が高まる。また、電子メールの安全性をより高めるため、各電子メール中継サーバで、直前の電子メール中継サーバによりタイムスタンプが付加されてからの時間を計時し、所定時間を超えた場合には、エラー処理(電子メールの破棄、エラーメールの返信等)を行う仕様にしてもよい。
【符号の説明】
【0059】
1 ユーザPC
2 メールサーバ
3 タイムスタンプ付加装置
4 インターネット
5 TSA(時刻認証事業者)
30 制御部
300 メール送受信手段
301 ハッシュ値生成手段
302 タイムスタンプ要求手段
303 応答メッセージチェック手段
304 タイムスタンプ付加手段
【特許請求の範囲】
【請求項1】
所定のネットワークを介して接続されたサーバとの間でデータ通信を行う通信手段と、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを前記通信手段を使用して時刻認証事業者が運営するサーバに送信するタイムスタンプ要求手段と、
前記通信手段を使用して受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック手段と、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加手段と、
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割手段と、を備え、
前記ハッシュ値生成手段は、前記分割手段により前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、
ことを特徴とするタイムスタンプ付加装置。
【請求項2】
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成工程と、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを時刻認証事業者が運営するサーバに送信するタイムスタンプ要求工程と、
受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック工程と、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加工程と、
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割工程と、を備え、
前記ハッシュ値生成工程では、前記分割工程で前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、
ことを特徴とするタイムスタンプ付加方法。
【請求項3】
所定のネットワークにおいて電子メールの中継を行う電子メール中継サーバであって、請求項2に記載のタイムスタンプ付加方法を用いて、中継対象の電子メールにタイムスタンプを付加する、
ことを特徴とする電子メール中継サーバ。
【請求項4】
コンピュータを、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを、所定のネットワークを介して接続されたサーバとの間でデータ通信を行う通信装置を使用して時刻認証事業者が運営するサーバに送信するタイムスタンプ要求手段、
前記通信装置を使用して受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック手段、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加手段、及び
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割手段、として機能させるためのコンピュータプログラムであって、
前記ハッシュ値生成手段は、前記分割手段により前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、
ことを特徴とするコンピュータプログラム。
【請求項1】
所定のネットワークを介して接続されたサーバとの間でデータ通信を行う通信手段と、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを前記通信手段を使用して時刻認証事業者が運営するサーバに送信するタイムスタンプ要求手段と、
前記通信手段を使用して受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック手段と、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加手段と、
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割手段と、を備え、
前記ハッシュ値生成手段は、前記分割手段により前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、
ことを特徴とするタイムスタンプ付加装置。
【請求項2】
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成工程と、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを時刻認証事業者が運営するサーバに送信するタイムスタンプ要求工程と、
受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック工程と、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加工程と、
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割工程と、を備え、
前記ハッシュ値生成工程では、前記分割工程で前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、
ことを特徴とするタイムスタンプ付加方法。
【請求項3】
所定のネットワークにおいて電子メールの中継を行う電子メール中継サーバであって、請求項2に記載のタイムスタンプ付加方法を用いて、中継対象の電子メールにタイムスタンプを付加する、
ことを特徴とする電子メール中継サーバ。
【請求項4】
コンピュータを、
電子メールに基づいて所定のハッシュ関数を使用してハッシュ値を生成するハッシュ値生成手段、
前記ハッシュ値を格納したタイムスタンプ要求メッセージを作成し、該タイムスタンプ要求メッセージを、所定のネットワークを介して接続されたサーバとの間でデータ通信を行う通信装置を使用して時刻認証事業者が運営するサーバに送信するタイムスタンプ要求手段、
前記通信装置を使用して受信した前記サーバからの前記タイムスタンプ要求メッセージに対する応答メッセージの内容をチェックする応答メッセージチェック手段、
前記応答メッセージに格納されていたタイムスタンプ情報をテキストデータにエンコードし、該エンコード後のテキストデータを前記電子メールのヘッダ部に付加するタイムスタンプ付加手段、及び
前記電子メールにファイルが添付されている場合、所定条件の下、前記ファイルを2以上のファイルに分割した電子メールを作成し、該分割後の電子メールのヘッダ部に当該分割に関する情報を記述する分割手段、として機能させるためのコンピュータプログラムであって、
前記ハッシュ値生成手段は、前記分割手段により前記分割が行われた場合、当該電子メールのヘッダ部の少なくとも前記分割に関する情報を含む所定部分を前記ハッシュ値の生成対象にする、
ことを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−72041(P2011−72041A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2011−2446(P2011−2446)
【出願日】平成23年1月7日(2011.1.7)
【分割の表示】特願2007−216513(P2007−216513)の分割
【原出願日】平成19年8月22日(2007.8.22)
【出願人】(396004981)セイコープレシジョン株式会社 (481)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願日】平成23年1月7日(2011.1.7)
【分割の表示】特願2007−216513(P2007−216513)の分割
【原出願日】平成19年8月22日(2007.8.22)
【出願人】(396004981)セイコープレシジョン株式会社 (481)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】
[ Back to top ]