JP2005142719A - メッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラム - Google Patents
メッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラム Download PDFInfo
- Publication number
- JP2005142719A JP2005142719A JP2003375572A JP2003375572A JP2005142719A JP 2005142719 A JP2005142719 A JP 2005142719A JP 2003375572 A JP2003375572 A JP 2003375572A JP 2003375572 A JP2003375572 A JP 2003375572A JP 2005142719 A JP2005142719 A JP 2005142719A
- Authority
- JP
- Japan
- Prior art keywords
- message
- caller
- verification
- code
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】発信者のなりすましによる不正なメッセージの発信を防止するためのメッセージ検証を高速かつ軽負荷で実現することを課題とする。
【解決手段】発信者認証装置10は、メッセージサービスを利用し得る正当な利用者であることを証明する発信者コードを、所定の鍵および利用者の発信者アドレスを引数とする演算処理を実行して生成する。一方、メッセージ受信装置20は、発信者端末1からメッセージとともに、発信者コードで署名された署名データを受信すると、メッセージの発信者アドレスおよび所定の鍵を引数として発信者コードの生成と同様の演算処理を実行して検証コードを生成し、さらに、この検証コードで署名された検証用署名データを生成し、その後、発信者端末1から受信した署名データと検証用署名データとが一致するか否かを判定して発信者コードの有効性を検証する。
【選択図】 図1
【解決手段】発信者認証装置10は、メッセージサービスを利用し得る正当な利用者であることを証明する発信者コードを、所定の鍵および利用者の発信者アドレスを引数とする演算処理を実行して生成する。一方、メッセージ受信装置20は、発信者端末1からメッセージとともに、発信者コードで署名された署名データを受信すると、メッセージの発信者アドレスおよび所定の鍵を引数として発信者コードの生成と同様の演算処理を実行して検証コードを生成し、さらに、この検証コードで署名された検証用署名データを生成し、その後、発信者端末1から受信した署名データと検証用署名データとが一致するか否かを判定して発信者コードの有効性を検証する。
【選択図】 図1
Description
この発明は、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラムに関する。
従来より、インターネットなどのネットワーク上では、インスタントメッセージを利用者端末から受信して相手端末に伝達するサービスや、IP電話の呼メッセージを利用者端末から受け付けて相手端末を呼び出すサービス、電子メールを利用者端末から受信して相手端末に送信するサービスなど、IP(Internet Protocol)網を介して利用者端末からSIP(Session Initiation Protocol)等によるメッセージを受信してメッセージを処理するメッセージサービスが提供されている。
かかるメッセージサービスにおいては、利用者端末から発信されたメッセージがメッセージサービスを利用し得る正当な利用者から発信されたものであるかを検証した上でメッセージを処理することが一般的である。そして、このようなメッセージ検証の手法としては、特許文献1(特開平11−220496号公報)に開示されているように、発信者からメッセージとともにユーザIDおよびパスワードを受け付け、データベースに予め格納されたユーザIDおよびパスワードと比較して検証するパスワード認証が一般的である。
ところで、上記した従来の技術では、メッセージが発信される毎にデータベースを参照してパスワード認証を行う必要があるので、データベースに負担がかかるという問題点の他に、メッセージ検証処理が遅滞するという問題点があった。特に、メールやインスタントメッセージのように、個々の短いデータグラムを個別のメッセージとして扱うメッセージサービスでは、データベースの参照回数が多くなってしまうので、パスワード認証を行うことによる問題点は大きかった。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、発信者のなりすましによる不正なメッセージの発信を防止するためのメッセージ検証を高速かつ軽負荷で実現することが可能なメッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証システムであって、前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成手段と、前記利用者端末から前記メッセージとともに前記発信者コード生成手段によって生成された発信者コードを受信し、当該メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証手段と、を備えたことを特徴とする。
また、請求項2に係る発明は、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証システムであって、前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成手段と、前記利用者端末から前記メッセージとともに、前記発信者コード生成手段によって生成された発信者コードで署名された署名データを受信し、前記メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証手段と、を備えたことを特徴とする。
また、請求項3に係る発明は、上記の発明において、前記検証手段は、前記利用者端末から受信したメッセージの発信者アドレスおよび前記所定の鍵を引数として前記発信者コードの生成と同様の演算処理を実行して、前記発信者コードの有効性を検証する検証コードを生成する検証コード生成手段と、前記検証コード生成手段によって生成された検証コードで署名された検証用署名データを生成する検証用署名データ生成手段と、前記利用者端末から受信した署名データと前記検証用署名データ生成手段によって生成された検証用署名データとが一致するか否かを判定して、前記発信者コードの有効性を検証するコード検証手段と、を備えたことを特徴とする。
また、請求項4に係る発明は、上記の発明において、前記発信者コード生成手段および検証コード生成手段は、前記所定の鍵および発信者アドレスの他に、前記メッセージの発信が満たすべき発信条件をさらに引数とする演算処理を実行して前記発信者コードまたは検証コードを生成することを特徴とする。
また、請求項5に係る発明は、上記の発明において、前記発信者コード生成手段および検証コード生成手段は、前記メッセージの発信を許可する利用者端末のネットワークアドレス、前記メッセージの発信を許可する期限若しくはこれらの組み合わせを前記発信条件として前記発信者コードまたは検証コードを生成することを特徴とする。
また、請求項6に係る発明は、上記の発明において、前記発信者コード生成手段によって生成された発信者コードとともに、当該発信者コードの生成に用いた発信条件を前記利用者に対して付与する付与手段と、前記利用者に付与された発信条件を前記メッセージとともに前記利用者端末から受信し、前記メッセージの発信が当該発信条件を満たすか否かを判定する発信条件判定手段と、を備え、前記検証コード生成手段は、前記発信条件判定手段によって前記メッセージの発信が前記発信条件を満たすと判定された場合にのみ、当該発信条件をさらに引数とする演算処理を実行して前記検証コードを生成することを特徴とする。
また、請求項7に係る発明は、上記の発明において、前記利用者端末から前記メッセージを受信した際に、当該メッセージの受信状況に基づいて当該メッセージの発信が満たすべき発信条件を取得する発信条件取得手段を備え、前記検証コード生成手段は、前記発信条件取得手段によって取得した発信条件をさらに引数とする演算処理を実行して前記検証コードを生成することを特徴とする。
また、請求項8に係る発明は、上記の発明において、前記発信者コード生成手段および検証コード生成手段は、複数の鍵のなかから前記発信条件に対応する鍵を選択し、当該選択した鍵、前記発信者アドレスおよび発信条件を引数とする演算処理を実行して前記発信者コードまたは検証コードを生成することを特徴とする。
また、請求項9に係る発明は、上記の発明において、前記発信者コード生成手段および検証コード生成手段は、前記所定の鍵から定まる一方向関数に前記発信者アドレスおよび発信条件を入力することで前記発信者コードまたは検証コードを生成することを特徴とする。
また、請求項10に係る発明は、上記の発明において、前記発信者コード生成手段および検証コード生成手段は、前記所定の鍵を用いて前記発信者アドレスおよび発信条件を暗号化することで前記発信者コードまたは検証コードを生成することを特徴とする。
また、請求項11に係る発明は、上記の発明において、前記利用者端末とネットワークを介して接続される複数のサーバが前記検証コード生成手段をそれぞれ備え、前記複数のサーバは、前記所定の鍵をそれぞれ有し、前記検証コードをそれぞれ生成することを特徴とする。
また、請求項12に係る発明は、上記の発明において、前記メッセージを着信する着信者の着信者アドレスおよび前記署名データからなる宛先アドレスのメールを受信するリメールサーバが前記検証手段を備え、当該リメールサーバは、前記発信者コードの有効性が認められた場合に、前記メールの宛先アドレスを前記着信者アドレスに置換して転送することを特徴とする。
また、請求項13に係る発明は、上記の発明において、前記リメールサーバによって転送されたメールに対する返信メールを受信するメール転送サーバをさらに備え、当該メール転送サーバは、前記発信者コードを再生成した後に、当該発信者コードを用いて前記署名データを再生成し、前記返信メールの発信元を前記着信者アドレスおよび署名データからなるアドレスに置換して転送することを特徴とする。
また、請求項14に係る発明は、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証方法であって、前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成工程と、前記利用者端末から前記メッセージとともに前記発信者コード生成工程によって生成された発信者コードを受信し、当該メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証工程と、を含んだことを特徴とする。
また、請求項15に係る発明は、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証方法であって、前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成工程と、前記利用者端末から前記メッセージとともに、前記発信者コード生成工程によって生成された発信者コードで署名された署名データを受信し、前記メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証工程と、を含んだことを特徴とする。
また、請求項16に係る発明は、上記の発明において、前記検証工程は、前記利用者端末から受信したメッセージの発信者アドレスおよび前記所定の鍵を引数として前記発信者コードの生成と同様の演算処理を実行して、前記発信者コードの有効性を検証する検証コードを生成する検証コード生成工程と、前記検証コード生成工程によって生成された検証コードで署名された検証用署名データを生成する検証用署名データ生成工程と、前記利用者端末から受信した署名データと前記検証用署名データ生成工程によって生成された検証用署名データとが一致するか否かを判定して、前記発信者コードの有効性を検証するコード検証工程と、を含んだことを特徴とする。
また、請求項17に係る発明は、上記の発明において、前記発信者コード生成工程および検証コード生成工程は、前記所定の鍵および発信者アドレスの他に、前記メッセージの発信が満たすべき発信条件をさらに引数とする演算処理を実行して前記発信者コードまたは検証コードを生成することを特徴とする。
また、請求項18に係る発明は、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証する方法をコンピュータに実行させるメッセージ検証プログラムであって、前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成手順と、前記利用者端末から前記メッセージとともに前記発信者コード生成手順によって生成された発信者コードを受信し、当該メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証手順と、をコンピュータに実行させることを特徴とする。
また、請求項19に係る発明は、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証する方法をコンピュータに実行させるメッセージ検証プログラムであって、前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成手順と、前記利用者端末から前記メッセージとともに、前記発信者コード生成手順によって生成された発信者コードで署名された署名データを受信し、前記メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証手順と、をコンピュータに実行させることを特徴とする。
また、請求項20に係る発明は、上記の発明において、前記検証手順は、前記利用者端末から受信したメッセージの発信者アドレスおよび前記所定の鍵を引数として前記発信者コードの生成と同様の演算処理を実行して、前記発信者コードの有効性を検証する検証コードを生成する検証コード生成手順と、前記検証コード生成手順によって生成された検証コードで署名された検証用署名データを生成する検証用署名データ生成手順と、前記利用者端末から受信した署名データと前記検証用署名データ生成手順によって生成された検証用署名データとが一致するか否かを判定して、前記発信者コードの有効性を検証するコード検証手順と、をコンピュータに実行させることを特徴とする。
また、請求項21に係る発明は、上記の発明において、前記発信者コード生成手順および検証コード生成手順は、前記所定の鍵および発信者アドレスの他に、前記メッセージの発信が満たすべき発信条件をさらに引数とする演算処理を実行して前記発信者コードまたは検証コードを生成することを特徴とする。
請求項1、14または18の発明によれば、発信者アドレスおよび鍵を引数とする発信者コードを利用してメッセージ検証を行うので、パスワード認証のようなデータベースを参照する必要がなくなり、発信者のなりすましによる不正なメッセージの発信を防止するためのメッセージ検証を高速かつ軽負荷で実現することが可能になる。
また、請求項2、15または19の発明によれば、発信者アドレスおよび鍵を引数とする発信者コードを利用してメッセージ検証を行うので、パスワード認証のようなデータベースを参照する必要がなくなり、発信者のなりすましによる不正なメッセージの発信を防止するためのメッセージ検証を高速かつ軽負荷で実現することが可能になる。さらに、発信者コードそのものではなく、発信者コードで署名された署名データを受け付けて検証するので、経路中にあるメッセージ中継装置が発信者コードをコピーして発信者になりすます行為も防止することが可能になる。
また、請求項3、16または20の発明によれば、検証に際して発信者アドレスおよび発信者コードを対応付けたデータベースから発信者コードを読み出すのではなく、演算処理によって発信者コード(検証コード)を生成するので、高速かつ軽負荷なメッセージ検証を実現することが可能になる。なお、発信者コードおよび検証コードを生成するための関数を発信者などに開示しないので、複数の利用者の結託による関数解読も防止することが可能になる。
また、請求項4、17または21の発明によれば、発信条件も関係付けて発信者コードを生成するので、発信者コードの漏洩、傍受または偽造による不正が行われても(例えば、不正発信を試みる不正利用者と結託した発信者が自信の発信者コードを不正利用者に漏らしたとしても)、発信条件を満たさない限り不正なメッセージ発信として検出することができ、発信者のなりすましによる不正なメッセージの発信を確実に防止することが可能になるだけでなく、発信条件を満たさない他の不正なメッセージ発信を確実に防止することも可能になる。
また、請求項5の発明によれば、ネットワークアドレスや有効期限を満たさないメッセージを不正なメッセージ発信として排除することが可能になる。
また、請求項6の発明によれば、発信条件を発信者コードに埋め込むことで利用者による発信条件の改ざんを防止していることを前提に、利用者端末からメッセージとともに受け付けた発信条件を検証に用いることができるので、発信条件をデータベースで管理して検証に用いる方式に比較して、高速かつ軽負荷なメッセージ検証を実現することが可能になる。さらに、発信条件を満たさない不正なメッセージ発信については検証コードを生成することなくメッセージ処理を拒否するので、一層高速なメッセージ検証を実現することも可能になる。
また、請求項7の発明によれば、発信者コードの生成に用いた発信条件をデータベースで管理して検証に用いるのではなく、メッセージの受信状況から取得した発信条件を検証に用いるので、高速かつ軽負荷なメッセージ検証を実現することが可能になる。さらに、発信条件を利用者に開示しないので、発信条件の改ざんを回避して、不正なメッセージ発信を一層確実に防止することも可能になる。
また、請求項8の発明によれば、発信者コードおよび検証コードの生成に用いる鍵を固定することなく選択するので、鍵の解析を困難にして不正なメッセージ発信を抑止することも可能になる。
また、請求項9の発明によれば、一方向関数によるコード生成を採用することで、暗号化による発信者コードの生成(暗号化による発信者コードの生成では、暗号化アルゴリズムのデータブロック長によってコードの長さが決まるため、短い発信者コードを生成することはできない。)とは異なり、短い発信者コードを生成することが可能になる。
また、請求項10の発明によれば、暗号化によるコード生成を採用することで、乱数列を用いたコード生成を行うこともできるので、既知平文攻撃や差分攻撃による鍵解析を一層困難にして不正なメッセージ発信を抑止することも可能になる。
また、請求項11の発明によれば、ユーザテーブルのようなデータベースを分散させたり、利用者ごとの署名鍵を各サーバ装置に配信したりすることなく、鍵の共有のみで各サーバ装置がメッセージ検証を行うことができるので、広範囲で大規模なメッセージ処理システムでも負荷を生じさせることなくなくメッセージ検証を行うことが可能になる。
また、請求項12の発明によれば、いわゆるメールサービスにおいても、発信者のなりすましによる不正なメール発信を防止することが可能になる。
また、請求項13の発明によれば、発信者が返信メールに対してさらに返信しようとする場合に、署名データを含んだ宛先アドレスを再び生成する必要はなく、通常のメール返信処理を発信者が実行するだけで、署名付きのメールを返信することが可能になる。
以下に添付図面を参照して、この発明に係るメッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラムの実施例を詳細に説明する。なお、以下では、本実施例で用いる主要な用語、本実施例に係るメッセージ検証システムの概要および特徴を説明した後に、種々の実施例(実施例1〜5)を説明する。
[用語の説明]
最初に、本実施例で用いる主要な用語を説明する。本実施例で用いる「サービス」とは、IP(Internet Protocol)網を介して利用者端末からSIP(Session Initiation Protocol)等によるメッセージを受信して処理するサービスのことであり、例えば、インスタントメッセージを利用者端末から受信して相手端末に伝達するサービスや、IP電話の呼メッセージを利用者端末から受け付けて相手端末を呼び出すサービス、電子メールメッセージを利用者端末から受信して相手端末に送信するサービスなどがこれに該当する。
最初に、本実施例で用いる主要な用語を説明する。本実施例で用いる「サービス」とは、IP(Internet Protocol)網を介して利用者端末からSIP(Session Initiation Protocol)等によるメッセージを受信して処理するサービスのことであり、例えば、インスタントメッセージを利用者端末から受信して相手端末に伝達するサービスや、IP電話の呼メッセージを利用者端末から受け付けて相手端末を呼び出すサービス、電子メールメッセージを利用者端末から受信して相手端末に送信するサービスなどがこれに該当する。
また、本実施例で用いる「メッセージ」とは、上記のサービスを利用する利用者の利用者端末からSIP等によって発信されるメッセージのことであり、例えば、インスタントメッセージや、IP電話の呼メッセージ、電子メールなどがこれに該当する。
また、本実施例で用いる「発信者アドレス(本実施例では「S」と表記する。)」とは、上記のサービスを利用する利用者(メッセージの発信者)が本来的に有している通信用の連絡先のことを指し、例えば、メールアドレスや、IP電話の電話番号などがこれに該当する。なお、かかる発信者アドレスは、上記のメッセージ発信にともなって利用者端末から発信されるものである。
また、本実施例で用いる「有効条件(特許請求の範囲に記載の「発信条件」に対応する。また、本実施例では「C」と表記する。)」とは、上記のメッセージの発信が満たすべき発信条件のことであり、例えば、図6に示すように、メッセージの発信を許可する利用者端末のネットワークアドレス(IPアドレス等)、メッセージの発信を許可する期限(若しくは期間)などを指定した条件がこれに該当する。
また、本実施例で用いる「発信者コード(本実施例では「T」と表記する。)」とは、上記のサービスを利用し得る正当な利用者であることを証明するためのコードであり、具体的には、上記の発信者アドレスおよび所定の鍵、さらには上記の有効条件を引数とする演算処理(一方向関数や暗号化による演算処理)を経て生成される。
また、本実施例で用いる「署名データ(本実施例では「D(T)」や「D(R,T)」と表記する。)」とは、上記の発信者コードで署名されたデータのことであり、例えば、上記のメッセージにおけるヘッダ情報のうちからTOフィールド(宛先である着信者アドレスR)とDATEフィールドとを連結した文字列などを引数とし、上記の発信者コードを鍵とする鍵付きハッシュ関数から求められた値などがこれに該当する。
また、本実施例で用いる「検証コード(本実施例では「V」と表記する。)」とは、上記の発信者コードの有効性(発信者のなりすまし等の不正が行われていないかどうか)を検証するためのコードであり、具体的には、上記の発信者コードの生成処理と同様の処理を実行することで生成される。
また、本実施例で用いる「検証用署名データ(本実施例では「D(V)」や「D(R,V)」と表記する。)」とは、上記の検証コードで署名されたデータのことであり、具体的には、上記の署名データの生成処理と同様の処理を実行することで生成される。
[システムの概要および特徴]
続いて、本実施例に係るメッセージ検証システムの概要および特徴を説明する。本実施例に係るメッセージ検証システムは、概略的には、メッセージサービスを提供するサーバ装置(図1に示すメッセージ受信装置20など)において、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証した上でメッセージを処理するものである。
続いて、本実施例に係るメッセージ検証システムの概要および特徴を説明する。本実施例に係るメッセージ検証システムは、概略的には、メッセージサービスを提供するサーバ装置(図1に示すメッセージ受信装置20など)において、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証した上でメッセージを処理するものである。
そして、かかるメッセージ検証システムでは、いわゆるパスワード認証ではなく、発信者アドレスおよび鍵を引数とする発信者コードを利用してメッセージ検証を行うこと等によって、発信者のなりすましによる不正なメッセージの発信を防止するためのメッセージ検証を高速かつ軽負荷で実現することを可能にしている点などに主たる特徴がある。以下に、この主たる特徴を簡単に説明する。
本実施例に係るメッセージ検証システムでは、利用者によるメッセージの発信に先立って、その利用者がメッセージサービスを利用し得る正当な利用者であることを証明するための発信者コードを生成して利用者に付与する。ここで、この利用者コードは、所定の鍵および当該利用者の発信者アドレス、さらには当該利用者によるメッセージの発信が満たすべき有効条件を引数とする演算処理を実行することで生成される。
そして、メッセージサービスを提供するサーバ装置(図1に示すメッセージ受信装置20など)においては、利用者端末からメッセージとともに、発信者コードで署名された署名データを受信し、メッセージの発信者アドレスを用いて発信者コードの有効性を検証する。より詳細には、先ずは、利用者端末から受信したメッセージの発信者アドレスおよび所定の鍵(上記の発信者コード生成に用いられた鍵)、さらには有効条件を用いて、発信者コードの生成と同様の演算処理を実行して検証コードを生成する。続けて、この検証コードで署名された検証用署名データを生成し、この検証用署名データと利用者端末から受信した署名データとが一致するか否かを判定して発信者コードの有効性を検証する。
その結果、サーバ装置(図1に示すメッセージ受信装置20など)においては、両者が一致する場合には、発信者コードが有効であるとしてメッセージ転送などのメッセージ処理を実行する。その一方、両者が一致しない場合には、発信者コードが無効である(すなわち、発信者アドレスが異なる発信者のなりすましによる不正なメッセージ、または、有効条件を満たさない不正なメッセージである)としてメッセージを破棄等する。
上記したようなことから、本実施例によれば、発信者アドレスおよび鍵を引数とする発信者コードを利用してメッセージ検証を行うので、パスワード認証のようなデータベースを参照する必要がなくなり、発信者のなりすましによる不正なメッセージの発信を防止するためのメッセージ検証を高速かつ軽負荷で実現することが可能になる。また、本実施例によれば、発信者コードそのものではなく、発信者コードで署名された署名データを受け付けて検証するので、経路中にあるメッセージ中継装置が発信者コードをコピーして発信者になりすます行為も防止することが可能になる。
また、本実施例によれば、検証に際して発信者アドレスおよび発信者コードを対応付けたデータベースから発信者コードを読み出すのではなく、演算処理によって発信者コード(検証コード)を生成するので、高速かつ軽負荷なメッセージ検証を実現することが可能になる。なお、発信者コードおよび検証コードを生成するための関数を発信者などに開示しないので、複数の利用者の結託による関数解読も防止することが可能になる。
さらに、本実施例によれば、有効条件も関係付けて発信者コードを生成するので、発信者コードの漏洩、傍受または偽造による不正が行われても(例えば、不正発信を試みる不正利用者と結託した発信者が自信の発信者コードを不正利用者に漏らしたとしても)、有効条件を満たさない限り不正なメッセージ発信として検出することができ、発信者のなりすましによる不正なメッセージの発信を確実に防止することが可能になるだけでなく、有効条件を満たさない他の不正なメッセージ発信を確実に防止することも可能になる。
実施例1では、インスタントメッセージやIP電話の呼メッセージを利用者端末から受け付けてメッセージ処理するサービスに本発明を適用した場合を説明する。なお、以下では、本実施例1に係るメッセージ検証システムの構成を説明した後に、システム全体の処理手順を説明し、最後に実施例1の効果等を説明する。
[メッセージ検証システムの構成(実施例1)]
まず最初に、図1を用いて、実施例1に係るメッセージ検証システムの構成を説明する。図1は、実施例1に係るメッセージ検証システムの構成を示すブロック図である。同図に示すように、このメッセージ検証システムは、インターネット3と接続されるIP網2やLAN4を介して、発信者端末1と、発信者認証装置10と、複数のメッセージ受信装置20とを相互に通信可能に接続して構成される。なお、発信者端末1は請求項2などに記載の利用者端末に対応し、発信者認証装置10は請求項2などに記載の発信者コード生成手段に対応し、メッセージ受信装置20は請求項2などに記載の検証手段および請求項11に記載のサーバに対応する。
まず最初に、図1を用いて、実施例1に係るメッセージ検証システムの構成を説明する。図1は、実施例1に係るメッセージ検証システムの構成を示すブロック図である。同図に示すように、このメッセージ検証システムは、インターネット3と接続されるIP網2やLAN4を介して、発信者端末1と、発信者認証装置10と、複数のメッセージ受信装置20とを相互に通信可能に接続して構成される。なお、発信者端末1は請求項2などに記載の利用者端末に対応し、発信者認証装置10は請求項2などに記載の発信者コード生成手段に対応し、メッセージ受信装置20は請求項2などに記載の検証手段および請求項11に記載のサーバに対応する。
このうち、発信者端末1は、メッセージサービスを利用する利用者であってメッセージを発信する発信者が使用する利用者端末であり、主として、発信者認証装置10にアクセスして発信者認証の後に発信者コードの発行を受ける役割や、発信者コードとともに有効条件を発信者認証装置10から取得する役割、発信者コードを用いて署名データを生成する役割、署名データおよび有効条件とともにメッセージをメッセージ受信装置20に送信する役割などを有する。なお、かかる発信者端末1は、既知のパーソナルコンピュータやワークステーション、家庭用ゲーム機、インターネットTV、PDA、あるいは携帯電話やPHSの如き移動体通信端末などで実現される。
発信者認証装置10は、メッセージサービスを利用し得る利用者の情報を管理する業者(ISP業者など)の装置であり、主として、発信者端末1との間で利用者の認証を行う役割、利用者認証が成功した利用者に対して発信者コードを発行する役割などを有する。また、メッセージ受信装置20は、メッセージサービスを提供する業者(ISP業者など)の装置であり、主として、発信者端末1から受信したメッセージを検証して処理する役割などを有する。なお、発信者認証装置10およびメッセージ受信装置20は、既知のサーバコンピュータで実現される。以下に、これらの各装置の機能構成を詳細に説明する。
[発信者端末の構成(実施例1)]
発信者端末1は、Webブラウザやインスタントメッセージ用ソフト、IP電話用ソフトなど、各種のソフトウェアがインストールされた既知の利用者端末であるが、特に本発明に密接に関連するものとしては、図1に示すように、署名生成部1aを備える。
発信者端末1は、Webブラウザやインスタントメッセージ用ソフト、IP電話用ソフトなど、各種のソフトウェアがインストールされた既知の利用者端末であるが、特に本発明に密接に関連するものとしては、図1に示すように、署名生成部1aを備える。
この署名生成部1aは、発信者コードを用いて署名データを生成する処理部である。具体的には、メッセージ受信装置20に送信しようとしているメッセージにおけるヘッダ情報のうちからTOフィールド(宛先である着信者アドレスR)とDATEフィールドとを連結した文字列を引数とし、発信者コードTを鍵とする鍵付きハッシュ関数の値を求め、この値の下位16バイトを抽出することで署名データD(T)を生成する。つまり、下位16バイトの値が署名データD(T)となる。なお、鍵付きハッシュ関数は、RFC−2104に記載のものなどの公知のものでもよく、また、鍵付きハッシュ関数の構成に用いるハッシュ関数も、MD−5やSHA−1などの公知のものでもよい。
[発信者認証装置の構成(実施例1)]
発信者認証装置10は、図1に示すように、認証通信部11と、ユーザテーブル12と、発信者認証部13と、マスター鍵テーブル14と、発信者コード生成部15とを備える。なお、認証通信部11は請求項6に記載の付与手段に対応し、発信者コード生成部14は請求項2、4、5、8または9に記載の発信者コード生成手段に対応する。
発信者認証装置10は、図1に示すように、認証通信部11と、ユーザテーブル12と、発信者認証部13と、マスター鍵テーブル14と、発信者コード生成部15とを備える。なお、認証通信部11は請求項6に記載の付与手段に対応し、発信者コード生成部14は請求項2、4、5、8または9に記載の発信者コード生成手段に対応する。
このうち、認証通信部11は、いわゆるHTTPの通信プロトコルなどにしたがって、発信者端末1との間における通信を制御する処理部である。具体的には、発信者端末1からアクセス要求を受け付けると、ユーザ認証ページを発信者端末1に送信してユーザ名(発信者アドレスS)およびパスワードの入力を受け付ける。また、発信者認証が成功して発信者コードTが生成されると、この発信者コードTおよび当該発信者コードTの生成に用いた有効条件Cを発信者端末1に対して送信する。なお、発信者コードTの送信に際しては、TLSやS/MIMEなどの暗号化処理を利用することで、発信者コードTの傍受を防止することが望ましい。
ユーザテーブル12は、メッセージサービスを利用し得る利用者の情報を記憶する手段であり、具体的には、図2に例示するように、利用者ごとに、発信者認証に用いられるユーザ名およびパスワードを記憶して構成される。このユーザテーブル12はデータベースで実現される。なお、本実施例では、発信者認証に用いられるユーザ名と、利用者の発信者アドレスSのユーザ名とが一致する例を挙げているため、ユーザテーブル12には各利用者の発信者アドレスSそのものを記憶していないが、両者が異なる場合には、発信者アドレスSも記憶することとなる。
マスター鍵テーブル14は、発信者コードTの生成に用いる鍵(マスター鍵)を記憶する手段であり、具体的には、図3に例示するように、マスター鍵を一定期間ごとに更新する趣旨から、発信者コードTに関係づけられる有効期限(有効条件の一つ)の範囲ごとに、複数のインデックス番号(0〜3)に対応付けて、それぞれの鍵(K)を記憶して構成される。なお、このマスター鍵テーブル14は、マスター鍵のデータを含む電子ファイルを発信者認証装置10の蓄積領域に保存することで実現される。ただし、発信者コードTの生成を高速に実現するために、後述の発信者コード生成部15は、プログラム実行プロセス起動時に電子ファイルのデータをプロセス内のメモリに読み込み、起動中はメモリをマスター鍵テーブル14として利用する。
発信者認証部13は、発信者端末1の発信者がメッセージサービスを利用し得る正当な利用者であるか否かを認証する処理部である。具体的には、発信者端末1から発信者アドレスS(ユーザ名)およびパスワードを受け付けると、これに対応するユーザ名およびパスワードがユーザテーブル12に記憶されているか否かを認証する。その結果、発信者の認証が成功すれば、発信者コード生成部15に発信者アドレスS(ユーザ名)および発信者端末1のIPアドレスを受け渡す。その一方、発信者の認証が失敗すれば、その旨を発信者端末1に送信する。なお、発信者認証の手法は任意であり、例えば、ダイジェスト認証や公開鍵を用いる手法を採用してもよい。
発信者コード生成部15は、マスター鍵テーブル14に記憶された鍵K、発信者認証部13から受け取った発信者アドレスSおよび有効条件Cを引数とする演算処理(一方向関数を用いた処理)を実行して発信者コードTを生成する処理部である。以下に、図5および図6を用いて、発信者コード生成部15による発信者コードTの生成処理を説明する。図5は、実施例1による発信者コード生成処理の流れを示すフローチャートであり、図6は、有効条件Cの構成例を示す図である。
図6に示すように、有効条件Cは、有効条件の種別を表す種別情報と有効条件(例えば、IPアドレス指定、有効期限指定などの発信条件)の内容とを「コンマ(,)」で結合して構成される。ここで、「IPアドレス指定(N)」は、メッセージの発信を許可する発信者端末1のネットワークアドレスを指定する条件であり、発信者認証部13から受け取ったIPアドレスの値をもって規定する。また、「有効期限指定(E)」は、メッセージの発信を許可する期限を指定する条件であり、現在(発信者認証の成功時)の年月日時から所定期間後の年月日時の値をもって規定する。
そして、このようにして規定された有効条件C、さらには、マスター鍵テーブル14に記憶された鍵Kと発信者認証部13から受け取った発信者アドレスSとを用いて発信者コードTが生成される。すなわち、発信者コード生成部15は、図5に示すように、有効条件Cに基づいてマスター鍵テーブル14からマスター鍵Kmを選択する(ステップS501)。この選択は、有効条件Cのハッシュ値の下位2ビットをインデックス番号として求めた後、有効条件C内の有効期限を有効期限範囲に含み、かつ、インデックス番号が一致する鍵をマスター鍵Kmとして選択することによって行われる。
続いて、発信者コード生成部15は、発信者アドレスSと有効条件Cとを連結した文字列xを生成する(ステップS502)。そして、この文字列xを引数とし、マスター鍵Kmを鍵とする鍵付きハッシュ関数の値を求め、この値の下位16バイトを抽出することで発信者コードTを生成する(ステップS503)。つまり、下位16バイトの値が発信者コードTとなる。このようにして生成された発信者コードTおよび当該発信者コードTの生成に用いた有効条件Cは発信者端末1に送信される。
なお、本実施例では、いわゆるKeyedHashアルゴリズムによって発信者コードTを生成するが、具体的なハッシュ関数としてはSHA−1を用いた例を示している。ただし、発信者コード生成部15と後述する検証コード生成部25とでアルゴリズムが共有されていればハッシュ関数は任意であり、例えばMD5を用いてもよい。
[メッセージ受信装置の構成(実施例1)]
メッセージ受信装置20は、図1に示すように、メッセージ受信部21と、メッセージ処理部22と、有効条件判定部23と、マスター鍵テーブル24と、検証コード生成部25と、検証用署名生成部26と、コード検証部27とを備える。なお、有効条件判定部23は請求項6に記載の発信条件判定手段に対応し、検証コード生成部25は請求項3、4、5、6、8、9または11に記載の検証コード生成手段に対応し、検証用署名生成部26は請求項3に記載の検証用署名データ生成手段に対応し、コード検証部27は請求項3に記載のコード検証手段に対応する。
メッセージ受信装置20は、図1に示すように、メッセージ受信部21と、メッセージ処理部22と、有効条件判定部23と、マスター鍵テーブル24と、検証コード生成部25と、検証用署名生成部26と、コード検証部27とを備える。なお、有効条件判定部23は請求項6に記載の発信条件判定手段に対応し、検証コード生成部25は請求項3、4、5、6、8、9または11に記載の検証コード生成手段に対応し、検証用署名生成部26は請求項3に記載の検証用署名データ生成手段に対応し、コード検証部27は請求項3に記載のコード検証手段に対応する。
このうち、メッセージ受信部21は、いわゆるUDP/IPやTCP/IPの通信プロトコルなどにしたがって、発信者端末1からメッセージを受信する処理部である。具体的には、発信者アドレスSと、発信者認証装置10から利用者が受け取った発信者コードTで署名された署名データD(T)と、同じく発信者認証装置10から利用者が受け取った有効条件Cとを含んだメッセージを発信者端末1から受信する。
メッセージ処理部22は、メッセージ受信部21が発信者端末1から受信したメッセージを処理する処理部である。具体的には、受信したインスタントメッセージの伝達や、IP電話における呼の確立などのメッセージ処理を実行するが、後述の有効条件判定やコード検証が失敗した場合には、これらのメッセージ処理を実行することなくメッセージの廃棄等を実行する。
マスター鍵テーブル24は、上記した発信者認証装置10が備えるマスター鍵テーブル14との間で、LAN4を介して同期が取られているテーブルである。つまり、マスター鍵テーブル24も、図3に例示したものと同様の情報を記憶する。
有効条件判定部23は、発信者端末1から受信した有効条件Cをメッセージの発信が満たしているか否かを判定する処理部である。具体的には、有効条件CにIPアドレス指定(N)が含まれていれば、メッセージを伝達したUDP/IPパケット等のソースIPアドレスと有効条件C内のIPアドレスが一致するか否かを判定し、さらに、有効条件Cに有効期限指定(E)が含まれていれば、メッセージを受信した時点が有効条件C内の有効期限の以前であるか否かを判定する。その結果、全ての有効条件を満たす場合には、後述の検証コード生成部25による処理が実行されるが、有効条件を一つでも満たさない場合には、上記のメッセージ処理部22によってメッセージの廃棄等が実行される。
検証コード生成部25は、マスター鍵テーブル24に記憶された鍵K、発信者端末1からメッセージとともに受信した発信者アドレスSおよび有効条件Cを引数とする演算処理(一方向関数を用いた処理)を実行して検証コードVを生成する処理部である。具体的には、図5に示したように、上記した発明者認証装置10の発信者コード生成部15による発信者コードTの生成と同様の演算処理を実行して検証コードVを生成する。
検証用署名作成部26は、検証コード生成部25によって生成された検証コードVで署名された検証用署名データD(V)を生成する処理部である。具体的には、上記した発信者端末1の署名生成部1aによる署名データD(T)の生成と同様の処理を実行して検証用署名データD(V)を生成する。
コード検証部27は、発信者端末1から受信した署名データD(T)と検証用署名作成部26によって生成された検証用署名データD(V)とが一致するか否かを判定して、発信者コードTの有効性を検証する処理部である。その結果、両者が一致する場合には、上記のメッセージ処理部22によってメッセージ処理が実行されるが、両者が一致しない場合には、メッセージ処理部22によってメッセージの廃棄等が実行される。なお、発信者コードTの生成に用いた発信者アドレスSとは異なる発信者アドレスSからメッセージが発信された場合や、発信者コードTの生成に用いた有効条件Cが改ざんされて異なる有効条件Cが発信されたような場合には、署名データD(T)と検証用署名データD(V)とが一致しなくなる。
[システム全体の処理手順(実施例1)]
次に、図4を用いて、実施例1に係るメッセージ検証システムの処理手順を説明する。図4は、実施例1による処理手順を示すシーケンス図である。
次に、図4を用いて、実施例1に係るメッセージ検証システムの処理手順を説明する。図4は、実施例1による処理手順を示すシーケンス図である。
同図に示すように、発信者認証装置10は、発信者端末1からアクセス要求を受け付けると(ステップS401)、ユーザ認証ページを発信者端末1に送信してユーザ名(発信者アドレスS)およびパスワードの入力を受け付ける(ステップS402)。そして、発信者端末1からユーザ名およびパスワードを含んだ認証要求を受信すると(ステップS403)、発信者認証装置10は、これに対応するユーザ名およびパスワードがユーザテーブル12に記憶されているか否か判定して発信者を認証する(ステップS404)。
その結果、発信者の認証が失敗すれば、その旨を発信者端末1に送信するが、これとは反対に発信者の認証が成功した場合には、発信者認証装置10は、マスター鍵テーブル14に記憶された鍵K、発信者認証部13から受け取った発信者アドレスSおよび有効条件Cを引数とする演算処理(一方向関数を用いた処理)を実行して発信者コードTを生成する(ステップS405)。
そして、発信者認証装置10は、認証応答として、生成した発信者コードTおよび当該発信者コードTの生成に用いた有効条件Cを発信者端末1に対して送信する(ステップS406)。これによって、発信者コードTが有効である限り、発信者は発信者コードTを用いてメッセージを発信することとなる。
すなわち、メッセージの発信に際して、発信者端末1では、メッセージ受信装置20に送信しようとしているメッセージにおけるヘッダ情報のうちからTOフィールド(宛先である着信者アドレスR)とDATEフィールドとを連結した文字列を引数とし、発信者コードTを鍵とする鍵付きハッシュ関数の値を求め、この値の下位16バイトを抽出することで署名データD(T)を生成する(ステップS407)。
そして、メッセージ受信装置20は、発信者アドレスSと、発信者認証装置10から利用者が受け取った有効条件Cと、同じく発信者認証装置10から受け取った発信者コードTで署名された署名データD(T)とを含んだメッセージを発信者端末1から受信する(ステップS408)。続いて、メッセージ受信装置20は、発信者端末1から受信した有効条件Cをメッセージの発信が満たしているか否かを判定する(ステップS409)。
この判定の結果、有効条件を一つでも満たさなければ、メッセージの廃棄等を実行するが、これとは反対に全ての有効条件を満たす場合には、メッセージ受信装置20は、マスター鍵テーブル24に記憶された鍵K、発信者端末1からメッセージとともに受信した発信者アドレスSおよび有効条件Cを引数とする演算処理を実行して検証コードVを生成する(ステップS410)。
続けて、メッセージ受信装置20は、ステップS410で生成した検証コードVで署名された検証用署名データD(V)を生成し(ステップS411)、さらに、発信者端末1から受信した署名データD(T)とステップS411で生成した検証用署名データD(V)とが一致するか否かを判定して、発信者コードTの有効性を検証する(ステップS412)。
この検証の結果、両者が一致しなければ、メッセージの廃棄等を実行するが、これとは反対に両者が一致する場合には、メッセージ受信装置20は、発信者端末1から受信したインスタントメッセージの伝達や、IP電話における呼の確立などのメッセージ処理を実行する(ステップS413)。
[実施例1の効果等]
上述してきたように、実施例1によれば、発信者アドレスおよび鍵を引数とする発信者コードを利用してメッセージ検証を行うので、パスワード認証のようなデータベースを参照する必要がなくなり、発信者のなりすましによる不正なメッセージの発信を防止するためのメッセージ検証を高速かつ軽負荷で実現することが可能になる。
上述してきたように、実施例1によれば、発信者アドレスおよび鍵を引数とする発信者コードを利用してメッセージ検証を行うので、パスワード認証のようなデータベースを参照する必要がなくなり、発信者のなりすましによる不正なメッセージの発信を防止するためのメッセージ検証を高速かつ軽負荷で実現することが可能になる。
また、実施例1によれば、発信者コードそのものではなく、発信者コードTで署名された署名データD(T)を受け付けて検証するので、経路中にあるメッセージ中継装置(例えば、メッセージ受信装置20など)が発信者コードTをコピーして発信者になりすます行為も防止することが可能になる。
また、実施例1によれば、検証に際してデータベース(発信者アドレスSおよび発信者コードTを対応付けたデータベース)から発信者コードTを読み出すのではなく、演算処理によって発信者コードTと同等の検証コードVを生成するので、高速かつ軽負荷なメッセージ検証を実現することが可能になる。なお、発信者コードTおよび検証コードVを生成するための関数を発信者などに開示しないので、複数の利用者の結託による関数解読も防止することが可能になる。
また、実施例1によれば、有効条件Cも関係付けて発信者コードTを生成するので、発信者コードTの漏洩、傍受または偽造による不正が行われても(例えば、不正発信を試みる不正利用者と結託した発信者が自信の発信者コードを不正利用者に漏らしたとしても)、有効条件Cを満たさない限り不正なメッセージ発信として検出することができ、発信者のなりすましによる不正なメッセージの発信を確実に防止することが可能になるだけでなく、有効条件Cを満たさない他の不正なメッセージ発信を確実に防止することも可能になる。より具体的には、ネットワークアドレスや有効期限を満たさないメッセージを不正なメッセージ発信として排除することが可能になる。
また、実施例1によれば、有効条件Cを発信者コードTに埋め込むことで利用者による有効条件Cの改ざんを防止していることを前提に、発信者端末1からメッセージとともに受け付けた有効条件Cを検証に用いることができるので、有効条件Cをデータベースで管理して検証に用いる方式に比較して、高速かつ軽負荷なメッセージ検証を実現することが可能になる。さらに、有効条件Cを満たさない不正なメッセージ発信については検証コードTを生成することなくメッセージ処理を拒否するので、一層高速なメッセージ検証を実現することも可能になる。
また、実施例1によれば、発信者コードTおよび検証コードVの生成に用いる鍵を固定することなく選択するので、鍵の解析を困難にして不正なメッセージ発信を抑止することも可能になる。
また、実施例1によれば、一方向関数によるコード生成を採用することで、暗号化による発信者コードTの生成(暗号化による発信者コードTの生成では、暗号化アルゴリズムのデータブロック長によってコードの長さが決まるため、短い発信者コードTを生成することはできない。)とは異なり、短い発信者コードTを生成することが可能になる。
また、実施例1によれば、ユーザテーブルのようなデータベースを分散させたり、利用者ごとの署名鍵を各メッセージ受信装置20に配信したりすることなく、鍵の共有のみで各メッセージ受信装置20がメッセージ検証を行うことができるので、複数のメッセージ受信装置20を備える広範囲で大規模なメッセージ処理システムでも負荷を生じさせることなくなくメッセージ検証を行うことが可能になる。
ところで、上記の実施例1では、発信者コードTの生成に用いた有効条件Cを利用者に付与した上で発信者端末1から受け付けることにしたが、本発明はこれに限定されるものではなく、有効条件Cの種別や組合せを固定とし、メッセージ受信装置20が別途の手段で有効条件Cを取得するようにしてもよい。そこで、実施例2では、有効条件Cを利用者に付与しない場合を説明する。
[メッセージ検証システムの構成(実施例2)]
最初に、図7を用いて、実施例2に係るメッセージ検証システムの構成を説明する。図7は、実施例2に係るメッセージ検証システムの構成を示すブロック図である。同図に示すように、このメッセージ検証システムは、インターネット3と接続されるIP網2やLAN4を介して、発信者端末1と、発信者認証装置30と、複数のメッセージ受信装置40とを相互に通信可能に接続して構成される。なお、発信者端末1は請求項2などに記載の利用者端末に対応し、発信者認証装置30は請求項2などに記載の発信者コード生成手段に対応し、メッセージ受信装置40は請求項2などに記載の検証手段および請求項11に記載のサーバに対応する。
最初に、図7を用いて、実施例2に係るメッセージ検証システムの構成を説明する。図7は、実施例2に係るメッセージ検証システムの構成を示すブロック図である。同図に示すように、このメッセージ検証システムは、インターネット3と接続されるIP網2やLAN4を介して、発信者端末1と、発信者認証装置30と、複数のメッセージ受信装置40とを相互に通信可能に接続して構成される。なお、発信者端末1は請求項2などに記載の利用者端末に対応し、発信者認証装置30は請求項2などに記載の発信者コード生成手段に対応し、メッセージ受信装置40は請求項2などに記載の検証手段および請求項11に記載のサーバに対応する。
このうち、発信者端末1は、上記の実施例1で説明した発信者端末1に対応するものであり、これと基本的には同様の機能を有する。ただし、実施例2では、発信者認証装置30から発信者端末1へ発信者コードTのみを送信する(有効条件Cは送信しない)ので、発信者端末1は、メッセージとともに署名データのみをメッセージ受信装置40に送信する(有効条件Cは送信しない)。
また、実施例2では、後述するように、所定時間ごと(例えば、1時間ごと)に有効な発信者コードTを生成するので、発信者端末1は、所定時間ごと(例えば、毎時0分になるごと)に発信者認証装置30にアクセスし、次の所定時間に有効な発信者コードTの発行を受ける。
発信者認証装置30は、上記の実施例1で説明した発信者認証装置10に対応するものであり、これと基本的には同様の機能を有する。つまり、図7に示す認証通信部31、ユーザテーブル32、発信者認証部33、マスター鍵テーブル34および発信者コード生成部35は、図1に示した認証通信部11、ユーザテーブル12、発信者認証部13、マスター鍵テーブル14および発信者コード生成部15と基本的に同様の機能を果たす。
ただし、実施例2では、有効条件Cの種別や組合せを固定とし、所定時間ごと(例えば、1時間ごと)に有効な発信者コードTを生成することを実現するために、発信者コード生成部35は、有効条件Cとして、発信者端末1のIPアドレスを指定IPアドレスとして指定するとともに、現在(発信者認証の成功時)時刻の次の時の0分を有効期限として指定する。つまり、現在が12時30分であれば13時0分を有効期限として指定する。
そして、発信者コード生成部35は、このようにして指定された有効条件C、さらには、マスター鍵テーブル14に記憶された鍵Kと発信者認証部33から受け取った発信者アドレスSとを用いて、図5に示したように、発信者コードTを生成する。なお、実施例2では、発信者認証装置30は、上記したように、発信者端末1へ発信者コードTのみを送信し、当該発信者コードTの生成に用いた有効条件Cは送信しない。
メッセージ受信装置40は、上記の実施例1で説明したメッセージ受信装置20に対応するものであり、図7に示すように、図1に示した有効条件判定部23の代わりに有効条件取得部43を備えるが、メッセージ受信装置20と基本的には同様の機能を有する。つまり、図7に示すメッセージ受信部41、メッセージ処理部42、マスター鍵テーブル44、検証コード生成部45、検証用署名生成部46およびコード検証部47は、図1に示したメッセージ受信部21、メッセージ処理部22、マスター鍵テーブル24、検証コード生成部25、検証用署名生成部26およびコード検証部27と同様の機能を果たす。なお、有効条件取得部43は請求項7に記載の発信条件取得手段に対応し、検証コード生成部45は請求項7に記載の検証コード生成手段に対応する。
ただし、実施例2では、メッセージ受信部41は、上記したように、発信者端末1からメッセージとともに署名データのみを受信する(有効条件Cは受信しない)。また、有効条件取得部43は、発信者端末1からメッセージを受信した際に、当該メッセージの受信状況に基づいて当該メッセージの発信が満たすべき有効条件を取得する。つまり、メッセージを伝達したUDP/IPパケット等のソースIPアドレス(発信者端末1のIPアドレス)を指定IPアドレスの有効条件として取得するとともに、現在(メッセージの受信時)の時刻の次の時の0分を有効期限の有効条件として取得する。
さらに、実施例2では、検証コード生成部45は、有効条件取得部43によって取得された有効条件Cを用いて検証コードVを生成する。したがって、検証コードVで署名された検証用署名データD(V)が発信者端末1から受信した署名データD(T)と一致しない場合には、有効条件取得部43によって取得した有効条件Cが発信者コードTの生成に用いたものと異なっているものとして、結果的に有効条件を判定することができる。
[システム全体の処理手順(実施例2)]
次に、図8を用いて、実施例2に係るメッセージ検証システムの処理手順を説明する。図8は、実施例2による処理手順を示すシーケンス図である。
次に、図8を用いて、実施例2に係るメッセージ検証システムの処理手順を説明する。図8は、実施例2による処理手順を示すシーケンス図である。
同図に示すように、発信者認証装置30は、図4に示した実施例1と同様の手順を経て発信者を認証する(ステップS801〜S804)。その結果、発信者の認証が失敗すれば、その旨を発信者端末1に送信するが、これとは反対に発信者の認証が成功した場合には、発信者認証装置30は、マスター鍵テーブル14に記憶された鍵K、発信者認証部13から受け取った発信者アドレスSおよび有効条件Cを引数とする演算処理(一方向関数を用いた処理)を実行して発信者コードTを生成する(ステップS805)。なお、有効条件Cとしては、発信者端末1のIPアドレスが指定IPアドレスとして指定されるとともに、現在(発信者認証の成功時)の時刻の次の時の0分が有効期限として指定される。
そして、発信者認証装置30は、認証応答として、生成した発信者コードTを発信者端末1に対して送信する(ステップS806)。ただし、発信者コードTの生成に用いた有効条件Cは発信者端末1に送信されない。これによって、発信者コードTが有効である限り、発信者は発信者コードTを用いてメッセージを発信することとなる。
すなわち、メッセージの発信に際して、発信者端末1では、図4に示した実施例1と同様の手順を経て署名データD(T)を生成する(ステップS807)。そして、メッセージ受信装置40は、発信者アドレスSと、発信者認証装置10から受け取った発信者コードTで署名された署名データD(T)とを含んだメッセージを発信者端末1から受信する(ステップS808)。なお、発信者コードTの生成に用いた有効条件Cは発信者端末1から受信しない。
続いて、メッセージ受信装置40は、メッセージを伝達したUDP/IPパケット等のソースIPアドレス(発信者端末1のIPアドレス)を指定IPアドレスの有効条件Cとして取得するとともに、現在(メッセージの受信時)の時刻の次の時の0分を有効期限の有効条件Cとして取得する(ステップS809)。
そして、メッセージ受信装置40は、マスター鍵テーブル44に記憶された鍵K、発信者端末1からメッセージとともに受信した発信者アドレスS、および、ステップS809で取得した有効条件Cを引数とする演算処理を実行して検証コードVを生成する(ステップS810)。これに続いて、メッセージ受信装置40は、図4に示した実施例1と同様の手順を経て、検証用署名データD(V)の生成、署名データD(T)と検証用署名データD(V)との一致判定、メッセージ処理を実行する(ステップS811〜S813)。
[実施例2の効果等]
上述してきたように、実施例2によれば、発信者コードTの生成に用いた有効条件Cをデータベースで管理して検証に用いるのではなく、メッセージの受信状況から取得した有効条件Cを検証に用いるので、高速かつ軽負荷なメッセージ検証を実現することが可能になる。さらに、有効条件Cを利用者に開示しないので、有効条件Cの改ざんを回避して、不正なメッセージ発信を一層確実に防止することも可能になる。
上述してきたように、実施例2によれば、発信者コードTの生成に用いた有効条件Cをデータベースで管理して検証に用いるのではなく、メッセージの受信状況から取得した有効条件Cを検証に用いるので、高速かつ軽負荷なメッセージ検証を実現することが可能になる。さらに、有効条件Cを利用者に開示しないので、有効条件Cの改ざんを回避して、不正なメッセージ発信を一層確実に防止することも可能になる。
ところで、上記の実施例1および2では、一方向関数を用いた演算処理によって発信者コードTおよび検証コードVを生成する場合を説明したが、本発明はこれに限定されるものではなく、暗号化を用いた演算処理によって発信者コードTおよび検証コードVを生成するようにしてもよい。そこで、実施例3では、暗号化によって発信者コードTおよび検証コードVを生成する場合を説明する。
[メッセージ検証システムの構成(実施例3)]
図9は、実施例3に係るメッセージ検証システムの構成を示すブロック図である。同図に示すように、このメッセージ検証システムは、インターネット3と接続されるIP網2やLAN4を介して、発信者端末1と、発信者認証装置50と、複数のメッセージ受信装置60とを相互に通信可能に接続して構成される。なお、発信者端末1は請求項2などに記載の利用者端末に対応し、発信者認証装置50は請求項2などに記載の発信者コード生成手段に対応し、メッセージ受信装置60は請求項2などに記載の検証手段および請求項11に記載のサーバに対応する。
図9は、実施例3に係るメッセージ検証システムの構成を示すブロック図である。同図に示すように、このメッセージ検証システムは、インターネット3と接続されるIP網2やLAN4を介して、発信者端末1と、発信者認証装置50と、複数のメッセージ受信装置60とを相互に通信可能に接続して構成される。なお、発信者端末1は請求項2などに記載の利用者端末に対応し、発信者認証装置50は請求項2などに記載の発信者コード生成手段に対応し、メッセージ受信装置60は請求項2などに記載の検証手段および請求項11に記載のサーバに対応する。
このうち、発信者端末1は、上記の実施例1で説明した発信者端末1に対応するものであり、これと基本的には同様の機能を有する。また、発信者認証装置50は、上記の実施例1で説明した発信者認証装置10に対応するものであり、図9に示すように、乱数列テーブル56をさらに備えるが、発信者認証装置10と基本的には同様の機能を有する。
つまり、図9に示す認証通信部51、ユーザテーブル52、発信者認証部53、マスター鍵テーブル54および発信者コード生成部55は、図1に示した認証通信部11、ユーザテーブル12、発信者認証部13、マスター鍵テーブル14および発信者コード生成部15と基本的に同様の機能を果たす。なお、発信者コード生成部55は請求項10に記載の発信者コード生成手段に対応する。
ここで、発信者認証装置50の乱数列テーブル56は、発信者コードTの生成に用いる乱数列を記憶する手段であり、具体的には、図10に例示するように、複数の乱数列それぞれを一意に特定するためのインデックス番号に対応付けて、それぞれの乱数列を記憶して構成される。
また、発信者認証装置50の発信者コード生成部55は、マスター鍵テーブル54に記憶された鍵K、発信者アドレスSおよび有効条件Cを引数とする演算処理(暗号化を用いた処理)を実行して発信者コードTを生成する処理部である。以下に、図11を用いて、発信者コード生成部55による発信者コードTの生成処理を説明する。図11は、実施例3による発信者コード生成処理の流れを示すフローチャートである。
同図に示すように、発信者コード生成部55は、実施例1と同様の手順でマスター鍵テーブル54からマスター鍵Kmを選択する(ステップS1101)。さらに、発信者コード生成部55は、有効条件Cを引数とする選択関数によって乱数列テーブル56からある一つの乱数列rを選択する(ステップS1102)。
続けて、発信者コード生成部55は、発信者アドレスSに乱数列rをEXORで加算して文字列S.rを生成する(ステップS1103)。そして、発信者コード生成部55は、有効条件Cと文字列S.rとをつなげたデータをマスター鍵Kmで暗号化し、暗号化結果を発信者コードTとして生成する(ステップS1104)。なお、このようにして生成された発信者コードTおよび当該発信者コードの生成に用いた有効条件Cは、実施例1と同様、発信者端末1に送信される。
図9に戻ると、メッセージ受信装置60は、上記の実施例1で説明したメッセージ受信装置20に対応するものであり、同図に示すように、乱数列テーブル68をさらに備えるが、メッセージ受信装置20と基本的には同様の機能を有する。つまり、図9に示すメッセージ受信部61、メッセージ処理部62、有効条件判定部63、マスター鍵テーブル64、検証コード生成部65、検証用署名生成部66およびコード検証部67は、図1に示したメッセージ受信部21、メッセージ処理部22、有効条件判定部23、マスター鍵テーブル24、検証コード生成部25、検証用署名生成部26およびコード検証部27と同様の機能を果たす。なお、検証コード生成部65は請求項10に記載の検証コード生成手段に対応する。
ここで、メッセージ受信装置60の乱数列テーブル68は、上記の乱数列テーブル56との間でLAN4を介して同期が取られているテーブルであり、図10に例示したものと同様の情報を記憶する。そして、メッセージ受信装置60の検証コード生成部65は、図11に示したように、上記した発明者認証装置50の発信者コード生成部55による発信者コードTの生成と同様の演算処理を実行して検証コードVを生成する。
[実施例3の効果等]
上述してきたように、実施例3によれば、暗号化によるコード生成を採用することで、乱数列を用いたコード生成を行うこともできるので、既知平文攻撃や差分攻撃による鍵解析を一層困難にして不正なメッセージ発信を抑止することも可能になる。
上述してきたように、実施例3によれば、暗号化によるコード生成を採用することで、乱数列を用いたコード生成を行うこともできるので、既知平文攻撃や差分攻撃による鍵解析を一層困難にして不正なメッセージ発信を抑止することも可能になる。
なお、実施例3では、メッセージ受信装置60でも暗号化によって検証コードVを生成して発信者コードTを検証する場合を説明したが、本発明はこれに限定されるものではなく、メッセージ受信装置60で受信した発信者コードTを復号化することによって発信者コードTの有効性(発信者コードTから復元された発信者アドレスSや有効条件Cの有効性)を検証するようにしてもよい。なお、この場合には、有効条件Cを発信者コードTから復元することができるので、有効条件Cを取得するための別手段を不要にすることも可能になる。
ところで、上記の実施例1〜3では、インスタントメッセージやIP電話の呼メッセージを利用者端末から受け付けてメッセージ処理するサービスに本発明を適用した場合を説明したが、本発明はこれに限定されるものではなく、利用者端末からメールを受け付けて処理するサービスにも同様に適用することができる。
そこで、実施例4では、利用者端末から発信されたメールが当該メールのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証システムであって、特に、メッセージ検証を発信者メールサーバではなく経路上のリメールサーバで行う点、メッセージ検証に用いる署名データを利用者端末だけではなくメール転送サーバでも生成する点を主たる特徴とする場合を説明する。
[メッセージ検証システムの構成(実施例4)]
最初に、図12を用いて、実施例4に係るメッセージ検証システムの構成を説明する。図12は、実施例4に係るメッセージ検証システムの構成を示すブロック図である。同図に示すように、このメッセージ検証システムは、インターネット3やIP網2、LAN4を介して、発信者端末1と、着信者端末5と、発信者認証装置70と、リメールサーバ80と、メール転送サーバ90と、発信者メールサーバ6と、着信者メールサーバ7とを相互に通信可能に接続して構成される。なお、発信者端末1は請求項2などに記載の利用者端末に対応し、発信者認証装置10は請求項2などに記載の発信者コード生成手段に対応し、リメールサーバ80は請求項12に記載のリメールサーバに対応し、メール転送サーバ90は請求項12に記載のメール転送サーバに対応する。
最初に、図12を用いて、実施例4に係るメッセージ検証システムの構成を説明する。図12は、実施例4に係るメッセージ検証システムの構成を示すブロック図である。同図に示すように、このメッセージ検証システムは、インターネット3やIP網2、LAN4を介して、発信者端末1と、着信者端末5と、発信者認証装置70と、リメールサーバ80と、メール転送サーバ90と、発信者メールサーバ6と、着信者メールサーバ7とを相互に通信可能に接続して構成される。なお、発信者端末1は請求項2などに記載の利用者端末に対応し、発信者認証装置10は請求項2などに記載の発信者コード生成手段に対応し、リメールサーバ80は請求項12に記載のリメールサーバに対応し、メール転送サーバ90は請求項12に記載のメール転送サーバに対応する。
このうち、発信者端末1および着信者端末5は、少なくとも電子メールソフトがインストールされた、既知のパーソナルコンピュータやワークステーション、家庭用ゲーム機、インターネットTV、PDA、あるいは携帯電話やPHSの如き移動体通信端末などである。より詳細には、発信者端末1は、着信者にメールを発信する発信者が使用する端末であり、実施例1の発信者端末1と同様の役割を有するとともに、このメールに対する返信メールを着信者から受信する役割もある。一方、着信者端末5は、発信者から送信されたメールを着信する着信者が使用する端末であり、このメールに対する返信メールを発信者に発信する役割もある。
発信者メールサーバ6および着信者メールサーバ7は、いわゆる既知のメールサーバである。より詳細には、発信者メールサーバ6は、発信者端末1からメールを受け付けるとともに、このメールに対する返信メールを発信者端末1に送信する役割を有し、また、着信者メールサーバ7は、メールを着信者端末5に送信するとともに、このメールに対する返信メールを発信者端末5から受け付ける役割を有する。
発信者認証装置70は、上記の実施例1で説明した発信者認証装置10に対応するものであり、これと基本的には同様の機能を有する。また、リメールサーバ80は、発信者端末1(発信者メールサーバ6)からメールを受け付けて、正当な利用者から発信されたものであるかを検証した上でメールを着信者端末5(着信者メールサーバ7)に転送するサーバである。さらに、メール転送サーバ90は、着信者端末5(着信者メールサーバ7)から返信メールを受け付けて、この返信メールを発信者端末1(発信者メールサーバ6)に転送するサーバである。以下に、本実施例4の主たる特徴を担う発信者端末1、発信者認証装置70、リメールサーバ80、メール転送サーバ90の構成を詳細に説明する。
[発信者端末の構成(実施例4)]
発信者端末1は、Webブラウザや電子メールソフトなど、各種のソフトウェアがインストールされた既知の利用者端末であるが、特に本発明に密接に関連するものとしては、図12に示すように、署名生成部1bを備える。
発信者端末1は、Webブラウザや電子メールソフトなど、各種のソフトウェアがインストールされた既知の利用者端末であるが、特に本発明に密接に関連するものとしては、図12に示すように、署名生成部1bを備える。
この署名生成部1bは、発信者コードを用いて署名データを生成する処理部である。具体的には、発信しようとしているメールの着信者が有する着信者アドレスRの文字列を引数とし、発信者コードTを鍵とする鍵付きハッシュ関数の値を求め、この値の下位30ビットをBASE32符号化によって6文字の文字列に変換することで署名データD(R,T)を生成する。つまり、図13に例示するような「ertg5e」の如き6文字の文字列が署名データD(R,T)となる(ステップS1308の宛先アドレス参照)。
そして、発信者端末1は、作成した署名データD(R,T)をメールのヘッダ情報のTOフィールドに書き込んでメールを送信する。より詳細には、図13に例示するように(ステップS1308の宛先アドレス参照)、着信者の着信者アドレスR「suzuki@mail.isp-B.ne.jp」におけるユーザ名「suzuki」およびドメイン名「mail.isp-B.ne.jp」と署名データ「ertg5e」とを「/」で連結し、さらに、これにリメールサーバ80のドメイン名「remail.verfied.ne.jp」を「@」を介して結合することで、「suzuki/mail.isp-B.ne.jp/ertg5e@remail.verfied.ne.jp」の如き宛先アドレスを新たに生成し、これをTOフィールドに書き込んでメールを送信する。
[発信者認証装置の構成(実施例4)]
発信者認証装置70は、上記の実施例1で説明した発信者認証装置10に対応するものであり、これと基本的には同様の機能を有する。つまり、図12に示す認証通信部71、ユーザテーブル72、発信者認証部73、マスター鍵テーブル74および発信者コード生成部75は、図1に示した認証通信部11、ユーザテーブル12、発信者認証部13、マスター鍵テーブル14および発信者コード生成部15と基本的に同様の機能を果たす。
発信者認証装置70は、上記の実施例1で説明した発信者認証装置10に対応するものであり、これと基本的には同様の機能を有する。つまり、図12に示す認証通信部71、ユーザテーブル72、発信者認証部73、マスター鍵テーブル74および発信者コード生成部75は、図1に示した認証通信部11、ユーザテーブル12、発信者認証部13、マスター鍵テーブル14および発信者コード生成部15と基本的に同様の機能を果たす。
ただし、実施例4では、有効条件を採用せず、かつ、複数のマスター鍵を用意しない場合の例である。すなわち、マスター鍵テーブル74は、一つのマスター鍵Kmのみを記憶する。また、発信者コード生成部75は、発信者アドレスSを引数とし、マスター鍵Kmを鍵とする鍵付きハッシュ関数の値を求め、この値の下位16バイトを抽出することで発信者コードTを生成する。なお、生成した発信者コードTは発信者端末1に送信される。
[リメールサーバの構成(実施例4)]
リメールサーバ80は、図12に示すように、上記の実施例1で説明したメッセージ受信装置20に対応するものであり、これと基本的には同様の機能を有する。つまり、図12に示すメール受信部81、メール転送部82、マスター鍵テーブル84、検証コード生成部85、検証用署名生成部86およびコード検証部87は、図1に示したメッセージ受信部21、メッセージ処理部22、マスター鍵テーブル24、検証コード生成部25、検証用署名生成部26およびコード検証部27と同様の機能を果たす。なお、検証コード生成部25、検証用署名生成部26およびコード検証部27は請求項12に記載の検証手段に対応する。
リメールサーバ80は、図12に示すように、上記の実施例1で説明したメッセージ受信装置20に対応するものであり、これと基本的には同様の機能を有する。つまり、図12に示すメール受信部81、メール転送部82、マスター鍵テーブル84、検証コード生成部85、検証用署名生成部86およびコード検証部87は、図1に示したメッセージ受信部21、メッセージ処理部22、マスター鍵テーブル24、検証コード生成部25、検証用署名生成部26およびコード検証部27と同様の機能を果たす。なお、検証コード生成部25、検証用署名生成部26およびコード検証部27は請求項12に記載の検証手段に対応する。
ただし、マスター鍵テーブル84は、発信者認証装置70のマスター鍵テーブル74と同様、一つのマスター鍵Kmのみを記憶する。また、検証コード生成部85も、発信者認証装置70の発信者コード生成部75と同様、発信者アドレスSを引数とし、マスター鍵Kmを鍵とする鍵付きハッシュ関数の値を求め、この値の下位16バイトを抽出することで検証コードVを生成する。
また、メール転送部82は、コード検証が成功した場合には、メールを着信者端末5(着信者メールサーバ7)に転送する処理を行うが、転送に際しては、メールの宛先を着信者アドレスRに置換するとともに、メールの発信元をメール転送先アドレスに置換する。より詳細には、図13に例示するように(ステップS1312の発信元アドレス参照)、着信者の着信者アドレスR「suzuki@mail.isp-B.ne.jp」をTOフィールドに書き込むとともに、発信者の発信者アドレスS「tanaka@mail.isp-A.ne.jp」におけるユーザ名「tanaka」およびドメイン名「mail.isp-A.ne.jp」を「/」で連結し、さらに、これにメール転送サーバ90のドメイン名「recv.verfied.ne.jp」を「@」を介して結合することで、「tanaka/mail.isp-A.ne.jp@recv.verfied.ne.jp」の如きメール転送先アドレスを新たに生成し、これをFROMフィールドに書き込んでメールを転送する。
[メール転送サーバの構成(実施例4)]
メール転送サーバ90は、図12に示すように、メール受信部91と、メール転送部92と、マスター鍵テーブル94と、発信者コード生成部95と、署名生成部96とを備える。
メール転送サーバ90は、図12に示すように、メール受信部91と、メール転送部92と、マスター鍵テーブル94と、発信者コード生成部95と、署名生成部96とを備える。
このうち、メール受信部91は、着信者端末5(着信者メールサーバ7)から返信メールを受信する処理部である。また、マスター鍵テーブル94は、発信者認証装置70のマスター鍵テーブル74との間で同期が取られ、発信者コードTの生成に用いるマスター鍵Kmを記憶する手段である。そして、発信者コード生成部95は、発信者認証装置70の発信者コード生成部75と同様に、発信者コードTを生成する処理部である。すなわち、返信メールの宛先である発信者アドレスSおよびマスター鍵Kmを用いて発信者コードTを生成する。
署名生成部96は、発信者端末1の署名生成部1bと同様に、署名データD(R,T)を生成する処理部である。すなわち、返信メールの発信元である着信者アドレスRと検証コード生成部95によって生成された発信者コードTとを用いて「ertg5e」の如き署名データD(R,T)を生成する。
メール転送部92は、返信メールを発信者端末1(発信者メールサーバ6)に転送する処理部であるが、転送に際しては、メールの宛先を発信者アドレスSに置換するとともに、メールの発信元をリメール先アドレスに置換する。より詳細には、図13に例示するように(ステップS1316の発信元アドレス参照)、発信者の発信者アドレスS「tanaka@mail.isp-A.ne.jp」をTOフィールドに書き込むとともに、着信者の着信者アドレスR「suzuki@mail.isp-B.ne.jp」におけるユーザ名「suzuki」およびドメイン名「mail.isp-B.ne.jp」と署名データ「ertg5e」とを「/」で連結し、さらに、これにリメールサーバ80のドメイン名「remail.verfied.ne.jp」を「@」を介して結合することで、「suzuki/mail.isp-B.ne.jp/ertg5e@remail.verfied.ne.jp」の如きリメール先アドレスを新たに生成し、これをFROMフィールドに書き込んで返信メールを転送する。
[システム全体の処理手順(実施例4)]
次に、図13を用いて、実施例4に係るメッセージ検証システムの処理手順を説明する。図13は、実施例4による処理手順を示すシーケンス図である。
次に、図13を用いて、実施例4に係るメッセージ検証システムの処理手順を説明する。図13は、実施例4による処理手順を示すシーケンス図である。
同図に示すように、発信者認証装置70は、図4に示した実施例1と同様の手順を経て発信者を認証する(ステップS1301〜S1304)。その結果、発信者の認証が失敗すれば、その旨を発信者端末1に送信するが、これとは反対に発信者の認証が成功した場合には、発信者認証装置70は、マスター鍵テーブル14に記憶された鍵Kおよび発信者アドレスSから発信者コードTを生成する(ステップS1305)。
そして、発信者認証装置70は、認証応答として、生成した発信者コードTを発信者端末1に対して送信する(ステップS1306)。これによって、発信者コードTが有効である限り、発信者は発信者コードTを用いてメールを発信することとなる。
すなわち、メールの発信に際して、発信者端末1では、メールの着信者が有する着信者アドレスRの文字列を引数とし、発信者コードTを鍵とする鍵付きハッシュ関数の値を求め、この値の下位30ビットをBASE32符号化によって6文字の文字列に変換することで署名データD(R,T)を生成する(ステップS1307)。
さらに、発信者端末1は、着信者の着信者アドレスRにおける「ユーザ名」および「ドメイン名」と「署名データ」とを「/」で連結し、さらに、これにリメールサーバ80の「ドメイン名」を「@」を介して結合することで宛先アドレスを新たに生成し、これをTOフィールドに書き込んでメールを発信者メールサーバ6経由でリメールサーバ80に送信する(ステップS1308)。
かかるメールを受信したリメールサーバ80では、マスター鍵テーブル84に記憶されたマスター鍵Km、メールの発信元である発信者アドレスSを引数とする演算処理を実行して検証コードVを生成する(ステップS1309)。さらに、リメールサーバ80は、ステップS1309で生成した検証コードVで署名された検証用署名データD(R,V)を生成し(ステップS1310)、さらに、メールの宛先アドレスに含まれる署名データD(R,T)とステップS1310で生成した検証用署名データD(R,V)とが一致するか否かを判定して、発信者コードTの有効性を検証する(ステップS1311)。
この検証の結果、両者が一致しなければ、メールの廃棄等を実行するが、これとは反対に両者が一致する場合には、リメールサーバ80は、発信者端末1から受信したメールを着信者メールサーバ7経由で着信者端末5に転送する(ステップS1312)。具体的には、着信者の着信者アドレスRをTOフィールドに書き込むとともに、発信者の発信者アドレスSにおける「ユーザ名」および「ドメイン名」を「/」で連結し、さらに、これにメール転送サーバ90の「ドメイン名」を「@」を介して結合することでメール転送先アドレスを新たに生成し、これをFROMフィールドに書き込んでメールを転送する。
これに対して、メール転送サーバ90は、メールに対する返信メールを着信者端末5から着信者メールサーバ7を介して受信すると(ステップS1313)、発信者認証装置70による発信者コードTの生成と同様の手順で、返信メールの宛先である発信者アドレスSおよびマスター鍵Kmを用いて発信者コードTを生成する(ステップS1314)。
さらに、メール転送サーバ90は、発信者端末1による署名データD(R,T)の生成と同様の手順で、返信メールの発信元である着信者アドレスRおよびステップS1314で生成した発信者コードTを用いて署名データD(R,T)を生成する(ステップS1315)。
そして、メール転送サーバ90は、着信者端末5から受信した返信メールを発信者メールサーバ6経由で発信者端末1に転送する(ステップS1316)。具体的には、発信者の発信者アドレスSをTOフィールドに書き込むとともに、着信者の着信者アドレスRにおける「ユーザ名」および「ドメイン名」と「署名データ」とを「/」で連結し、さらに、これにリメールサーバ80の「ドメイン名」を「@」を介して結合することでリメール先アドレスを新たに生成し、これをFROMフィールドに書き込んで返信メールを転送する。なお、発信者が返信メールに対して更なる返信メールを送信した場合には、上記のステップS1308から処理が繰り返される。
[実施例4の効果等]
上述してきたように、実施例4によれば、いわゆるメールサービスにおいても、発信者のなりすましによる不正なメール発信を防止することが可能になる。さらに、メッセージの検証を発信者メールサーバ6ではなく、経路中のリメールサーバ80で実行することもできる。
上述してきたように、実施例4によれば、いわゆるメールサービスにおいても、発信者のなりすましによる不正なメール発信を防止することが可能になる。さらに、メッセージの検証を発信者メールサーバ6ではなく、経路中のリメールサーバ80で実行することもできる。
また、実施例4によれば、メール転送サーバ90で署名コードを含んだ発信元アドレスを作成するので、発信者が返信メールに対してさらに返信しようとする場合に、署名データを含んだ宛先アドレスを再び生成する必要はなく、通常のメール返信処理を発信者が実行するだけで、署名付きのメールを返信することが可能になる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる形態にて実施されてよいものである。そこで、実施例5として種々の異なる実施例を説明する。
例えば、上記した実施例では、インスタントメッセージやIP電話、電子メールなどのメッセージサービスに本発明を適用した場合を説明したが、本発明はこれに限定されるものではなく、これらと同様に発信者アドレスを伴ったメッセージを処理するサービスであれば、本発明を同様に適用することができる。
また、上記した実施例では、発信者コードで署名された署名データを発信者から受け付けて検証を行う場合を説明したが、本発明はこれに限定されるものではなく、発信者コードそのものを利用者から受け付け、発信者コードの一致不一致によって検証を行うようにしてもよい。この場合でも、ユーザ名やパスワードではなく、発信者アドレスに起因する発信者コードを利用してメッセージ検証を行うので、発信者のなりすましによる不正なメッセージの発信を防止することが可能になる。
また、上記した実施例では、有効条件も関係付けて発信者コードを生成する場合を説明したが、本発明はこれに限定されるものではなく、少なくとも発信者アドレスおよび鍵を引数として発信者コードを生成するものであれば、他の条件を選択的に付加若しくは削除する場合であっても、本発明を同様に適用することができる。
また、上記した実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(特に、有効条件に関する情報)については、特記する場合を除いて任意に変更することができる。
また、上記の実施例で図示した各装置(発信者認証装置、メッセージ受信装置、リメールサーバ、メール転送サーバなど)の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
なお、上記の実施例では、本発明を実現する各装置(発信者認証装置、メッセージ受信装置、リメールサーバ、メール転送サーバなど)を機能面から説明したが、各装置の各機能はパーソナルコンピュータやワークステーションなどのコンピュータにプログラムを実行させることによって実現することもできる。すなわち、本実施例で説明した各種の処理手順は、あらかじめ用意されたプログラムをコンピュータに実行することによって実現することができる。そして、これらのプログラムは、インターネットなどのネットワークを介して配布することができる。さらに、これらのプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。つまり、例を挙げれば、実施例1に示したような発信者認証装置10用プログラム、メッセージ受信装置20用プログラムおよび発信者端末1用プログラムを格納したCD−ROM(装置ごとに別個のCD−ROMであってもよい)を配布し、このCD−ROMに格納されたプログラムを各コンピュータが読み出して実行するようにしてもよい。
以上のように、本発明に係るメッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラムは、利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証する場合に有用であり、特に、発信者のなりすましによる不正なメッセージの発信を防止するためのメッセージ検証を高速かつ軽負荷で実現することに適する。
1 発信者端末
2 IP網
3 インターネット
4 LAN
10 発信者認証装置
11 認証通信部
12 ユーザテーブル
13 発信者認証部
14 マスター鍵テーブル
15 発信者コード生成部
20 メッセージ受信装置
21 メッセージ受信部
22 メッセージ処理部
23 有効条件判定部
24 マスター鍵テーブル
25 検証コード生成部
26 コード検証部
2 IP網
3 インターネット
4 LAN
10 発信者認証装置
11 認証通信部
12 ユーザテーブル
13 発信者認証部
14 マスター鍵テーブル
15 発信者コード生成部
20 メッセージ受信装置
21 メッセージ受信部
22 メッセージ処理部
23 有効条件判定部
24 マスター鍵テーブル
25 検証コード生成部
26 コード検証部
Claims (21)
- 利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証システムであって、
前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成手段と、
前記利用者端末から前記メッセージとともに前記発信者コード生成手段によって生成された発信者コードを受信し、当該メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証手段と、
を備えたことを特徴とするメッセージ検証システム。 - 利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証システムであって、
前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成手段と、
前記利用者端末から前記メッセージとともに、前記発信者コード生成手段によって生成された発信者コードで署名された署名データを受信し、前記メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証手段と、
を備えたことを特徴とするメッセージ検証システム。 - 前記検証手段は、
前記利用者端末から受信したメッセージの発信者アドレスおよび前記所定の鍵を引数として前記発信者コードの生成と同様の演算処理を実行して、前記発信者コードの有効性を検証する検証コードを生成する検証コード生成手段と、
前記検証コード生成手段によって生成された検証コードで署名された検証用署名データを生成する検証用署名データ生成手段と、
前記利用者端末から受信した署名データと前記検証用署名データ生成手段によって生成された検証用署名データとが一致するか否かを判定して、前記発信者コードの有効性を検証するコード検証手段と、
を備えたことを特徴とする請求項2に記載のメッセージ検証システム。 - 前記発信者コード生成手段および検証コード生成手段は、前記所定の鍵および発信者アドレスの他に、前記メッセージの発信が満たすべき発信条件をさらに引数とする演算処理を実行して前記発信者コードまたは検証コードを生成することを特徴とする請求項3に記載のメッセージ検証システム。
- 前記発信者コード生成手段および検証コード生成手段は、前記メッセージの発信を許可する利用者端末のネットワークアドレス、前記メッセージの発信を許可する期限若しくはこれらの組み合わせを前記発信条件として前記発信者コードまたは検証コードを生成することを特徴とする請求項4に記載のメッセージ検証システム。
- 前記発信者コード生成手段によって生成された発信者コードとともに、当該発信者コードの生成に用いた発信条件を前記利用者に対して付与する付与手段と、
前記利用者に付与された発信条件を前記メッセージとともに前記利用者端末から受信し、前記メッセージの発信が当該発信条件を満たすか否かを判定する発信条件判定手段と、
を備え、
前記検証コード生成手段は、前記発信条件判定手段によって前記メッセージの発信が前記発信条件を満たすと判定された場合にのみ、当該発信条件をさらに引数とする演算処理を実行して前記検証コードを生成することを特徴とする請求項4または5に記載のメッセージ検証システム。 - 前記利用者端末から前記メッセージを受信した際に、当該メッセージの受信状況に基づいて当該メッセージの発信が満たすべき発信条件を取得する発信条件取得手段を備え、
前記検証コード生成手段は、前記発信条件取得手段によって取得した発信条件をさらに引数とする演算処理を実行して前記検証コードを生成することを特徴とする請求項4または5に記載のメッセージ検証システム。 - 前記発信者コード生成手段および検証コード生成手段は、複数の鍵のなかから前記発信条件に対応する鍵を選択し、当該選択した鍵、前記発信者アドレスおよび発信条件を引数とする演算処理を実行して前記発信者コードまたは検証コードを生成することを特徴とする請求項4〜7のいずれか一つに記載のメッセージ検証システム。
- 前記発信者コード生成手段および検証コード生成手段は、前記所定の鍵から定まる一方向関数に前記発信者アドレスおよび発信条件を入力することで前記発信者コードまたは検証コードを生成することを特徴とする請求項4〜8のいずれか一つに記載のメッセージ検証システム。
- 前記発信者コード生成手段および検証コード生成手段は、前記所定の鍵を用いて前記発信者アドレスおよび発信条件を暗号化することで前記発信者コードまたは検証コードを生成することを特徴とする請求項4〜8のいずれか一つに記載のメッセージ検証システム。
- 前記利用者端末とネットワークを介して接続される複数のサーバが、前記検証コード生成手段をそれぞれ備え、
前記複数のサーバは、前記所定の鍵をそれぞれ有し、前記検証コードをそれぞれ生成することを特徴とする請求項4〜10のいずれか一つに記載のメッセージ検証システム。 - 前記メッセージを着信する着信者の着信者アドレスおよび前記署名データからなる宛先アドレスのメールを受信するリメールサーバが、前記検証手段を備え、
当該リメールサーバは、前記発信者コードの有効性が認められた場合に、前記メールの宛先アドレスを前記着信者アドレスに置換して転送することを特徴とする請求項2〜11のいずれか一つに記載のメッセージ検証システム。 - 前記リメールサーバによって転送されたメールに対する返信メールを受信するメール転送サーバをさらに備え、
当該メール転送サーバは、前記発信者コードを再生成した後に、当該発信者コードを用いて前記署名データを再生成し、前記返信メールの発信元を前記着信者アドレスおよび署名データからなるアドレスに置換して転送することを特徴とする請求項12に記載のメッセージ検証システム。 - 利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証方法であって、
前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成工程と、
前記利用者端末から前記メッセージとともに前記発信者コード生成工程によって生成された発信者コードを受信し、当該メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証工程と、
を含んだことを特徴とするメッセージ検証方法。 - 利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証するメッセージ検証方法であって、
前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成工程と、
前記利用者端末から前記メッセージとともに、前記発信者コード生成工程によって生成された発信者コードで署名された署名データを受信し、前記メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証工程と、
を含んだことを特徴とするメッセージ検証方法。 - 前記検証工程は、
前記利用者端末から受信したメッセージの発信者アドレスおよび前記所定の鍵を引数として前記発信者コードの生成と同様の演算処理を実行して、前記発信者コードの有効性を検証する検証コードを生成する検証コード生成工程と、
前記検証コード生成工程によって生成された検証コードで署名された検証用署名データを生成する検証用署名データ生成工程と、
前記利用者端末から受信した署名データと前記検証用署名データ生成工程によって生成された検証用署名データとが一致するか否かを判定して、前記発信者コードの有効性を検証するコード検証工程と、
を含んだことを特徴とする請求項15に記載のメッセージ検証方法。 - 前記発信者コード生成工程および検証コード生成工程は、前記所定の鍵および発信者アドレスの他に、前記メッセージの発信が満たすべき発信条件をさらに引数とする演算処理を実行して前記発信者コードまたは検証コードを生成することを特徴とする請求項16に記載のメッセージ検証方法。
- 利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証する方法をコンピュータに実行させるメッセージ検証プログラムであって、
前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成手順と、
前記利用者端末から前記メッセージとともに前記発信者コード生成手順によって生成された発信者コードを受信し、当該メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証手順と、
をコンピュータに実行させることを特徴とするメッセージ検証プログラム。 - 利用者端末から発信されたメッセージが当該メッセージのサービスを利用し得る正当な利用者から発信されたものであるかを検証する方法をコンピュータに実行させるメッセージ検証プログラムであって、
前記正当な利用者であることを証明する発信者コードを、所定の鍵および前記利用者の発信者アドレスを引数とする演算処理を実行して生成する発信者コード生成手順と、
前記利用者端末から前記メッセージとともに、前記発信者コード生成手順によって生成された発信者コードで署名された署名データを受信し、前記メッセージの発信者アドレスおよび前記所定の鍵を用いて前記発信者コードの有効性を検証する検証手順と、
をコンピュータに実行させることを特徴とするメッセージ検証プログラム。 - 前記検証手順は、
前記利用者端末から受信したメッセージの発信者アドレスおよび前記所定の鍵を引数として前記発信者コードの生成と同様の演算処理を実行して、前記発信者コードの有効性を検証する検証コードを生成する検証コード生成手順と、
前記検証コード生成手順によって生成された検証コードで署名された検証用署名データを生成する検証用署名データ生成手順と、
前記利用者端末から受信した署名データと前記検証用署名データ生成手順によって生成された検証用署名データとが一致するか否かを判定して、前記発信者コードの有効性を検証するコード検証手順と、
をコンピュータに実行させることを特徴とする請求項19に記載のメッセージ検証プログラム。 - 前記発信者コード生成手順および検証コード生成手順は、前記所定の鍵および発信者アドレスの他に、前記メッセージの発信が満たすべき発信条件をさらに引数とする演算処理を実行して前記発信者コードまたは検証コードを生成することを特徴とする請求項20に記載のメッセージ検証プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003375572A JP2005142719A (ja) | 2003-11-05 | 2003-11-05 | メッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003375572A JP2005142719A (ja) | 2003-11-05 | 2003-11-05 | メッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005142719A true JP2005142719A (ja) | 2005-06-02 |
Family
ID=34686908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003375572A Pending JP2005142719A (ja) | 2003-11-05 | 2003-11-05 | メッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005142719A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010537292A (ja) * | 2007-08-21 | 2010-12-02 | エンドレス ウント ハウザー コンダクタ ゲゼルシャフト フューア メス‐ ウント レーゲルテヒニック エムベーハー ウント コンパニー コマンディートゲゼルシャフト | 測定変換器とセンサを有する測定システムの互換性検査のための方法 |
KR101425320B1 (ko) * | 2013-04-24 | 2014-08-01 | 에스케이씨앤씨 주식회사 | 신뢰 메시지 운용방법 및 이를 위한 시스템 |
CN114422140A (zh) * | 2021-12-27 | 2022-04-29 | 微位(深圳)网络科技有限公司 | 消息时间验证方法、装置、设备及介质 |
-
2003
- 2003-11-05 JP JP2003375572A patent/JP2005142719A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010537292A (ja) * | 2007-08-21 | 2010-12-02 | エンドレス ウント ハウザー コンダクタ ゲゼルシャフト フューア メス‐ ウント レーゲルテヒニック エムベーハー ウント コンパニー コマンディートゲゼルシャフト | 測定変換器とセンサを有する測定システムの互換性検査のための方法 |
KR101425320B1 (ko) * | 2013-04-24 | 2014-08-01 | 에스케이씨앤씨 주식회사 | 신뢰 메시지 운용방법 및 이를 위한 시스템 |
WO2014175671A1 (ko) * | 2013-04-24 | 2014-10-30 | 에스케이씨앤씨 주식회사 | 신뢰 메시지 운용방법 및 이를 위한 시스템 |
CN114422140A (zh) * | 2021-12-27 | 2022-04-29 | 微位(深圳)网络科技有限公司 | 消息时间验证方法、装置、设备及介质 |
CN114422140B (zh) * | 2021-12-27 | 2024-03-12 | 微位(深圳)网络科技有限公司 | 消息时间验证方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5047291B2 (ja) | インターネットユーザに対して認証サービスを提供するための方法およびシステム | |
US9509681B2 (en) | Secure instant messaging system | |
US7039713B1 (en) | System and method of user authentication for network communication through a policy agent | |
US8214649B2 (en) | System and method for secure communications between at least one user device and a network entity | |
EP1583319B1 (en) | Authenticated exchange of public information using electronic mail | |
JP5291725B2 (ja) | Ipアドレス委任 | |
KR101219862B1 (ko) | 서버와 대응 도메인이 호환성 안전 이메일을 갖도록 하기위한 시스템 및 방법 | |
US8683194B2 (en) | Method and devices for secure communications in a telecommunications network | |
JP2008529326A (ja) | 暗号技術を使用する電子メッセージの管理およびフィルタ処理の方法及びシステム | |
US8144875B2 (en) | Method and system for establishing real-time authenticated and secured communications channels in a public network | |
CN107517194B (zh) | 一种内容分发网络的回源认证方法和装置 | |
JP4367546B2 (ja) | メール中継装置 | |
CN114928503B (zh) | 一种安全通道的实现方法及数据传输方法 | |
CN116471008A (zh) | 一种基于混合加密的接口访问安全控制方法及系统 | |
Schulz et al. | d 2 Deleting Diaspora: Practical attacks for profile discovery and deletion | |
JP2005142719A (ja) | メッセージ検証システム、メッセージ検証方法およびメッセージ検証プログラム | |
JP4137769B2 (ja) | 通信システム、通信方法および通信プログラム | |
JP2004274134A (ja) | 通信方法並びにこの通信方法を用いた通信システム、サーバおよびクライアント | |
KR101204648B1 (ko) | 무선 통신 네트워크와 유선 통신 네트워크가 공존하는 통신 네트워크에서 안전하게 비밀키를 교환하는 방법 | |
Mueller | Let’s attest! Multi-modal certificate exchange for the web of trust | |
JP3908722B2 (ja) | メッセージ配送システム、メッセージ配送方法およびメッセージ配送プログラム | |
Hoffman | RFC2487: SMTP Service Extension for Secure SMTP over TLS | |
CN112073370B (zh) | 一种客户端加密通信方法 | |
Breuch | Web Key Directory and other key exchange methods for OpenPGP | |
JP2008165613A (ja) | 認証システム、認証装置、認証方法、ユーザ装置、およびデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050513 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080617 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081021 |