JP2010198636A - 不要メッセージおよび受信者側が送信を要求していないメッセージの低減 - Google Patents

不要メッセージおよび受信者側が送信を要求していないメッセージの低減 Download PDF

Info

Publication number
JP2010198636A
JP2010198636A JP2010118664A JP2010118664A JP2010198636A JP 2010198636 A JP2010198636 A JP 2010198636A JP 2010118664 A JP2010118664 A JP 2010118664A JP 2010118664 A JP2010118664 A JP 2010118664A JP 2010198636 A JP2010198636 A JP 2010198636A
Authority
JP
Japan
Prior art keywords
computer system
message
receiving
data
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.)
Granted
Application number
JP2010118664A
Other languages
English (en)
Other versions
JP5079844B2 (ja
Inventor
Robert George Atkinson
ジョージ アトキンソン ロバート
Joshua T Goodman
ティー.グッドマン ジョシュア
James M Lyon
エム.リオン ジェームズ
Roy Williams
ウィリアムズ ロイ
Khaja E Ahmed
イー.アハメド カジャ
Harry Simon Katz
シモン カッツ ハリー
Robert L Rounthwaite
エル.ラウンスウェイト ロバート
Andrew V Goldberg
ブイ.ゴールドバーグ アンドリュー
Cynthia Dwork
ドワーク シンシア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US10/684,020 external-priority patent/US7398315B2/en
Priority claimed from US10/683,624 external-priority patent/US7552176B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010198636A publication Critical patent/JP2010198636A/ja
Application granted granted Critical
Publication of JP5079844B2 publication Critical patent/JP5079844B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/60Business processes related to postal services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/48Message addressing, e.g. address format or anonymous messages, aliases

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Signal Processing (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】メッセージ分類モジュールに供給することによって、電子メッセージを、例えば不要メッセージおよび/または受信者側が送信を要求していないメッセージとしてより信頼性高く分類できるようにするための入力を生成することを可能にすること。
【解決手段】応答ドキュメントとパズル入力ハッシュ値との結合から計算される応答ハッシュ値が計算パズルの応答値になる応答ドキュメントおよび前記電子メッセージデータを含む電子メッセージを前記受信側コンピュータシステムに送信する
【選択図】図7

Description

本発明は、電子メール技術に関し、より詳細には、不要電子メッセージおよび受信者側が送信を要求していない電子メッセージの低減に関する。
コンピュータシステムおよびそれに関連する技術は、社会の多くの側面に影響を与えている。実際、コンピュータシステムの情報を処理する能力は、我々の生活の仕方、働き方を全く変えてしまった。コンピュータシステムは、今や、コンピュータシステムが出現する以前は手作業で行われていた多くの仕事(例えば、文書処理、スケジューリング、およびデータベース管理)を普通に行うようになっている。最近では、コンピュータシステムは互いに結合されて有線および無線コンピュータネットワークの両方を形成し、それらを介して電子的に通信を行うことにより)データを共用することができるようになっている。その結果、コンピュータシステムで行われる多くの 仕事(例えば、音声通信、電子メールへのアクセス、電子会議、ウェブ閲覧)は、有線および/または無線のコンピュータネットワークを介した、1つまたは複数のその他のコンピュータシステムとの電子通信を伴うようになっている。
不要電子メールおよび受信者側が送信を要求していない電子メール(一般に「スパム」と呼ばれている)の歴史は、事実上、電子メールの歴史と同じほど長い。これまで、スパムが与える迷惑および心配は(注目には値したが)大きな問題にはならないほど小さいものだった。しかし、最近では、ユーザの電子メールボックスにスパムが現れる割合は著しく増加してきている。大規模商用電子メールボックスプロバイダが、自分のユーザが受け取る電子メールの半分以上、さらには4分の3がスパムであることを、日常的に観察することは珍しくない。この問題は、ユーザ、産業、および経済が多大な時間と財源を当てることを強いられ、恐らく、有益な通信媒体としての電子メールの存続を危うくする恐れさえある、きわめて深刻な問題の1つとなっている。
従来、電子メールクライアントソフトウェアおよび電子メールサーバソフトウェアの設計は、主として、ユーザが電子メールをできるだけ効率的、有益、かつ心地よいものとして扱えるようにすることに焦点が当てられてきた。これらのソフトウェアは、送られてきた電子メールメッセージに対してユーザが実際に持つ興味については、考慮していたとしてもわずかしか考慮していない。したがって、受信された電子メールメッセージはすべて同等に扱われがちであり、それらの電子メールメッセージの内容に関係なく、ユーザに対して同じように提示されている。残念なことに、電子メールメッセージがこのように扱われていることにより、実質的に正当な電子メールメッセージ(例えば、知人である送信者からの電子メッセージ、ユーザからの送信された電子メールに対する応答)の提示と区別がつけられずにスパムが提示されている。
したがって、電子メールメッセージをスパムとして分類し、それによってスパムをその他の正当な電子メールメッセージと区別するための技術がいくつか開発されている。いくつかの技術では、受信した電子メールメッセージを調べ、その中に見出される単語やフレーズに基づいて、受信した電子メールメッセージをスパムとして分類する。スパムを分類するための別の技術では、スパムである電子メールメッセージは一般に多数のユーザに送信されることを利用している。これら別の技術は、電子メールメッセージをスパムとして識別するのに一括ボーティングアプローチを使用している。別の一般的で特に有益な技術は、知人である文通相手のリストのメンテナンスをユーザに代わって行う技術であり、これは一般に「知人送信者リスト」または「ホワイトリスト」と呼ばれているアプローチである。
スパムとして分類した後、例えば、そのスパム電子メールメッセージを自動的にユーザの「スパムフォルダ」に移動させることにより、あるいは、可能には、ユーザがそのスパム電子メールメッセージが送られてきたことさえ知らないうちに削除することにより、スパム電子メールメッセージを正当な電子メールメッセージとは異なって扱うことができる。
しかし、多くの従来の電子メール分類技術は、電子メールメッセージが正当なメッセージかまたはスパムかを判断する場合に、電子メールメッセージの内容(例えば、電子メールメッセージのヘッダおよび/または本文)のみを利用している。これは問題がある。なぜならば、スパムを送りつけようとしているエンティティは、正当な電子メールメッセージに見えるように、意図的にスパム電子メールメッセージを変更できる(しかもしばしばきわめて容易に)からである。例えば、スパムを送りつけようとしているエンティティは、電子メールフィルタによって検出される可能性が低くなるように電子メールメッセージの本文を構成することができる。さらに、スパムを送りつけようとしているエンティティは、電子メールメッセージのヘッダ部分中の特定のアドレス指定情報を変更することができる。これは一般に「ドメインのなりすまし」と呼ばれている。
ドメイン名のなりすましには、送信者の電子メールアドレスのドメイン名(すなわち、電子メールアドレスの“@”以降のテキスト)を変更して、その電子メールメッセージが、実際にはそれを送っていない特定のエンティティから送られれてきたかのように見せることが含まれる。この場合、電子メール分類技術は、実際にはスパムとして分類しなければならない場合に、そのなりすましのドメイン名に基づいて、電子メールメッセージを正当なメッセージとして誤って分類する場合がある。したがって、従来のメール分類技術の有効性は低減される。
一般に、電子メールメッセージが送信メールサーバから受信メールサーバに転送される前に、それらの送信および受信メールサーバの間に、例えば送信制御プロトコル(“TCP”)接続などの接続が確立される。接続の確立には、ネットワークアドレス、ポート番号、および連番を含む構成情報の交換が含まれ得る。例えば、TCP接続の確立は、周知の3方向ハンドシェイクを含む。残念なことに、TCPの3方向ハンドシェイクはよく知られているため、スパムを送りつけようとしているエンティティは、ネットワークアドレスを偽造し、次いでその偽造したネットワークアドレスから発信されたとみなされる構成情報(例えば連番)を送信することができる。受信メッセージサーバは、その構成情報が偽造ネットワークアドレスから発信されたと誤って判断する場合がある。
このように、エンティティは、ネットワークアドレスを偽造し、受信メッセージサーバにはその偽造ネットワークアドレスから発信されたように見える接続を確立することができる。したがって、このエンティティは、次いで、確立された接続を使って、その偽造ネットワークアドレスから発信されたように見える電子メールメッセージを送信することができる。その後、エンティティがその偽造ネットワークアドレスのドメイン名にもなりすました場合、電子メールメッセージの真の発信ネットワークアドレスを判断することは、不可能ではないまでも難しいことがある。受信メッセージサーバは、偽造ネットワークアドレスとなりすましのドメイン名に基づいて、その電子メールメッセージを正当なメッセージとして誤って分類する場合がある。したがって、不要電子メッセージおよび受信者側が送信を要求していない電子メッセージを調整により低減するためのメカニズムがあれば有利であろう。
従来技術の上述の問題点は、不要電子メッセージおよび受信者側が送信を要求していない電子メッセージの低減のための方法、システム、コンピュータプログラム製品(コンピュータ可読媒体)、およびデータ構造を対象とした、本発明の原理によって克服される。所望の機能に応じて、複数の異なる生成入力のうち1つまたは複数を、可能には電子メッセージ中に含まれるメッセージデータとともに、メッセージ分類モジュールに供給することができる。メッセージ分類モジュールは、受信した入力に基づいて、電子メッセージを正当なメッセージ、または不要メッセージおよび受信者側が送信を要求していないメッセージとして分類することができる。複数の入力(それぞれの入力が電子メッセージの送信に関連する異なる情報を表す)を利用した場合、メッセージ分類モジュールは、電子メッセージを不要メッセージおよび/または受信者側が送信を要求していないメッセージとしてより信頼性高く分類するなど、電子メッセージをより信頼性高く分類することができる。
一実施形態では、標準的な接続確立データの交換が変更されて、エンティティが偽造ネットワークアドレス(例えば、偽造インターネットプロトコル(“IP”)アドレス)から電子メッセージを送信する可能性が低減される。送信側コンピュータシステムは、送信ネットワークアドレスとみなされるアドレスを含む接続開始データ(例えば、ポート、連番など)を送信する。受信側コンピュータシステムは、その送信アドレスとみなされるアドレスを含む接続開始データを受信する。受信側コンピュータシステムは、アドレス検証データを含むように標準接続確立データを変更する。受信コンピュータは、変更された接続確立データを送信ネットワークアドレスとみなされるアドレスに送信する。
送信ネットワークアドレスとみなされるアドレスが送信コンピュータシステムに対応する場合、送信コンピュータシステムは、アドレス検証データを含む変更済み接続確立データを受信することができる。したがって、送信側コンピュータシステムは、そのアドレス検証データに基づいて、適切な接続応答データを生成することができる。一方、送信ネットワークアドレスとみなされるアドレスが送信コンピュータシステムに対応しない場合(例えば、ネットワークアドレスが偽造されている場合)、送信コンピュータシステムは、アドレス検証データを含む変更済み接続確立データを受信しない。
送信側コンピュータシステムが受信コンピュータシステムに標準接続応答データを送信する場合がある(例えば、送信アドレスとみなされるアドレスに対応しないコンピュータシステムから、標準接続応答データのシミュレーションを試みようとする場合)。しかし、送信側コンピュータシステムはアドレス検証データを知らないため、アドレス検証データに適切に応答することができない。受信側コンピュータシステムは、送信ネットワークアドレスとみなされるアドレスに対応するコンピュータシステムがアドレス検証データ適切に応答したかどうかを判断する。
別の実施形態では、あるドメイン(例えば、“test.com”)のネームサービス(例えば、ドメインネームサービス)エントリが、そのドメインへの送信メッセージを扱うことを許可されているコンピュータシステムのネットワークアドレス(例えばIPアドレス)を含むように構成される。すなわち、ネームサーバエントリが、そのドメインのために電子メッセージを送信することを許可されているコンピュータシステムのネットワークアドレスで構成される。受信メッセージサーバは、送信側ドメインから送信されたとみなされる電子メッセージを受信する。受信メッセージサーバは、その電子メッセージを送った送信メッセージサーバに対応する実際の送信側ネットワークアドレスを識別する(例えば、接続確立データから)。
受信メッセージサーバは、その送信ドメインのために電子メッセージを送信することを許可されたネットワークアドレスのリストを、ネームサーバに問い合わせる。受信メッセージサーバは、実際の送信側ネットワークアドレスが許可ネットワークアドレスリストに含まれているかどうかを判断する。受信メッセージサーバは、判断の結果(すなわち、送信コンピュータシステムがドメインのために電子メッセージを送信することを許可されているか、または許可されていないか)をメッセージ分類モジュールに供給する。
さらに別の実施形態では、電子メッセージ送信ポリシー(“ETP”)が、ドメインのネームサービスエントリ中に、または受信電子メッセージ中に含まれている。ETP証明書を使って、送信ドメインが遵守しているETPを受信コンピュータシステムに示すことができる。受信メッセージサーバは、送信ドメインから電子メッセージを受信する。受信メッセージサーバは、送信ドメインに対応する1つまたは複数のETP(例えば、ETP証明書に含まれているETP)を受信する。受信メッセージサーバは、例えば、ネームサーバに問い合わせることにより、あるいは受信電子メッセージからETPを抽出することにより、ETPを受け取ることができる。
受信メッセージサーバは、関連するETPを解析する。関連ETPは、送信ドメインが遵守しているETPを示す。受信メッセージサーバは、その関連ETPをメッセージ分類モジュールに供給する。
さらに別の実施形態では、送信コンピュータシステムは、電子メッセージを送信する前に計算リソースが消費されたことを受信コンピュータシステムに示す。送信コンピュータシステムが計算パズルに適切な解決を与えた場合、消費された計算リソースを、受信コンピュータシステムが少なくとも見積もることができる。計算パズルは、適切な解決(例えば、強引なアプローチを使って識別される解決)を生成するために、送信コンピュータシステムがより多くの計算リソースを消費することを要求されるように構成することができる。しかし、受信コンピュータシステムにおいては、適切な解決を確認するのに著しく低減された計算リソースしか消費されない。確認可能な解決を計算することは、基本的に、電子メッセージ送信者が、電子メッセージを電子メッセージ受信側に送信するためのチケットを購入する(消費されたプロセッササイクルを通して)ことになる。このような計算パズルの1つは、応答ドキュメントの強引な計算を行うものである。
送信メッセージサーバは、電子メッセージに含めるべき電子メッセージデータを受信する。送信メッセージサーバは、例えば、その電子メッセージデータおよび/またはその他の状態情報の異なる部分から、初期ドキュメントを生成する。パズル入力は、電子メッセージの1つまたは複数の構成要素から生成される。パズル入力は、特に不要メッセージおよび/または受信者側が送信を要求していないメッセージを阻止する際に使用するように設計された、パズルハッシュアルゴリズムに供給される。例えば、パズルハッシュアルゴリズムは、SHA−1アルゴリズムのハッシュ副関数を利用し得るが、それらの副関数を、SHA−1アルゴリズムとは異なる順序で適用する。副関数を異なる順序で適用することによって、パズルハッシュアルゴリズムをハードウェアに実装することがより困難になり、また、正当な必要性のためにハッシュアルゴリズムのハードウェア加速が望まれる問題空間とは区別されて使用される。
実施形態によっては、パズル入力が初期ドキュメントである。別の実施形態では、初期ドキュメントおよびその他のメールメッセージデータからパズル入力が計算される。
送信メッセージサーバは、応答ドキュメントとパズル入力(初期ドキュメントまたはパズル入力ハッシュ値のいずれか)との結合から計算された(パズルハッシュアルゴリズムを使って)応答ハッシュ値が計算パズルの応答値になるように、応答ドキュメントを識別する。例えば、応答ドキュメントを使って、先頭に指定数のゼロを有する応答ハッシュ値を計算することができる。送信メッセージサーバは、メッセージデータと応答ドキュメントを含む電子メッセージを受信ドメインに送信する。
受信ドメインの受信コンピュータシステムがこの電子メッセージを受信する。受信コンピュータシステムは、例えば、送信コンピュータシステムで使用されたメッセージでおよび/またはその他の状態情報の異なる部分から、初期ドキュメントを再生する。受信コンピュータシステムは、初期ドキュメントからパズル入力を再計算する(可能には、パズルハッシュアルゴリズムを使ってパズル入力ハッシュ値を計算する)。受信コンピュータシステムは、応答ドキュメントとパズル入力(初期ドキュメントかパズル入力ハッシュ値のいずれか)との結合から計算された(パズルハッシュアルゴリズムを使って)確認ハッシュ値が、計算パズルの解決を示す応答であるかどうか(例えば、確認ハッシュ値が先頭に指定数のゼロを有するかどうか)を判断する。受信コンピュータシステムは、判断の結果(例えば、送信メッセージサーバが確認可能または確認不可能な解決を供給した、あるいは何も解決を供給しなかったなど)をメッセージ分類モジュールに供給する。
本発明のさらなる特徴および利点を、以下に説明する。それらの一部はその説明から明らかになるであろうし、あるいは、本発明を実施することによりわかる場合もあろう。本発明の特徴および利点は、特に添付の特許請求の範囲において指摘している機器および組合せを用いることにより実現することができ、また得ることができる。本発明のこれらおよびその他の特徴は、以下の説明および添付の特許請求の範囲からより十分に明らかになるであろう。あるいは、以下の説明のように本発明を実施することによってわかる場合もあろう。
本発明の上述およびその他の利点および特徴を得ることが可能な方法を説明するために、上記に簡単に説明した本発明を、添付の図面に図示したそれらの具体的な実施形態を参照しながらより詳細に説明する。それらの図面が本発明の代表的な実施形態を表したものにすぎず、したがって本発明の範囲を限定するものとしてみなすべきものではないことを理解した上で、本発明を、添付の図面を使用しながら、さらなる特性および詳細を示して説明する。
本発明の原理に従って接続ハイジャックの低減を実施するネットワークアーキテクチャの一例を示す図である。 本発明の原理に従って接続ハイジャックを低減するための方法の例示的流れ図である。 本発明に従って許可された送信メッセージサーバの識別を実施する、ネットワークアーキテクチャの一例を示す図である。 本発明に従って許可された送信メッセージサーバを識別するための方法の例示的流れ図である。 本発明に従って送信ドメインの電子メッセージ送信ポリシーの判断、および計算パズルの解決の確認を実施する、ネットワークアーキテクチャの一例を示す図である。 本発明に従って送信ドメインの電子メッセージ送信ポリシーを判断するための方法の例示的流れ図である。 本発明に従って計算パズルの解決を確認するための方法の例示的流れ図である。 本発明の原理に適した動作環境を示す図である。
本発明の原理は、不要電子メッセージおよび受信者側が送信を要求していない電子メッセージを調整により低減するための方法、システム、コンピュータプログラム製品、およびデータ構造を対象としている。接続確立データの交換が変更されることにより、エンティティが偽造ネットワークアドレスを含む電子メッセージを送るリスクを低減し、また防げる可能性がある。受信メッセージサーバは、許可送信サーバリストをチェックして、あるドメインのために電子メッセージを送信することが認可されているサーバを識別する。送信メッセージサーバは、ドメインの電子メッセージ送信ポリシーを識別する。送信メッセージサーバは、計算パズルに対する応答を計算し、受信メッセージサーバは、それを確認する。送信サーバリストのチェック、識別された電子メッセージ送信ポリシー、およびパズル応答確認を、その他の入力と共に電子メッセージ分類モジュールに供給することができる。
本発明の範囲に含まれる実施形態には、コンピュータ実行可能命令またはデータ構造を運ぶ、あるいは保持しているコンピュータ可読媒体が含まれる。このようなコンピュータ可読媒体は、汎用または専用コンピュータシステムがアクセス可能ないずれかの入手可能な媒体であってよい。例として、このようなコンピュータ可読媒体には、RAM、ROM、EPROM、CD−ROMまたはその他の光ディスク記憶装置、あるいは磁気ディスクストレージまたはその他の磁気記憶装置などの物理記憶媒体、あるいは、所望のプログラムコード手段をコンピュータ実行可能命令、コンピュータ可読命令、またはデータ構造の形態で運ぶ、または記憶するために使用することができ、また、汎用または専用コンピュータシステムがアクセス可能ないずれかのその他の媒体が含まれるが、それらに限定されるわけではない。
情報がネットワークまたはその他の通信接続(有線、無線、または有線と無線の組合せのうちいずれか)を介してコンピュータシステムに転送または提供される場合、その接続はコンピュータ可読媒体として正しくみなされる。したがって、いずれかのこのような接続も、コンピュータ可読媒体と正しく呼ばれる。上記を組み合わせたものも、コンピュータ可読媒体の範囲に含まれるものとする。コンピュータ実行可能命令またはコンピュータ可読命令には、例えば、汎用コンピュータシステムまたは専用コンピュータシステムに特定の機能または機能グループを実行させる命令またはデータが含まれる。コンピュータ実行可能またはコンピュータ可読命令とは、例えば、バイナリ、アセンブリ言語などの中間書式命令、さらにはソースコードの場合がある。
この説明および添付の特許請求の範囲では、「コンピュータシステム」を、協働して電子データ上で動作する、1つまたは複数のソフトウェアモジュール、1つまたは複数のハードウェアモジュール、またはそれらの組合せとして定義している。例えば、コンピュータシステムの定義には、パーソナルコンピュータのハードウェアモジュール、およびパーソナルコンピュータのオペレーティングシステムなどのソフトウェアモジュールが含まれる。モジュールの物理的なレイアウトは重要ではない。コンピュータシステムは、ネットワークを介して結合された1つまたは複数のコンピュータを含む場合がある。同様に、コンピュータシステムは、内部モジュール(プロセッサおよびメモリなど)が協働して電子データ上で動作する、単一の物理デバイス(携帯電話またはパーソナルディジタルアシスタント“PDA”など)を含む場合がある。
当業者は、本発明を、ハブ、ルータ、無線アクセスポイント(“AP”)、無線局、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、ページャなどを含む、様々なタイプのコンピュータシステム構成を備えたネットワークコンピューティング環境において実施できることを理解されよう。本発明はまた、ネットワークを介してリンクされた(無線、有線、または有線接続と無線接続の組合せのいずれかによって)ローカルおよびリモートのコンピュータシステムが共にタスクを実行する、分散システム環境においても実施することができる。
図1は、本発明の原理に従って接続ハイジャックの低減を実施する、ネットワークアーキテクチャ100の一例を示している。ネットワークアーキテクチャ100内では、送信メッセージサーバ107、受信メッセージサーバ109、およびメッセージサーバ184が、それぞれ、対応するリンク102、104、および103によってネットワーク101に接続されている。同様に、ネームサーバ108が、リンク106によってネットワーク101に接続されている。リンク102、103、104および106、およびネットワーク101は、システムバスの一部、ローカルエリアネットワーク(“LAN”)の一部、広域ネットワーク(“WAN”)の一部、および/またはインターネットの一部さえも含み得る。両方向矢印186が示すように、ネームサーバ108は、反復クエリの目的で、その他のネームサーバ185と通信することもできる。同様に、ネットワークアーキテクチャ100内のコンピュータシステムは、反復クエリの目的で、その他のネームサーバ185に直接、問い合わせることができる(ただし、ネットワークアーキテクチャ100内のコンピュータシステムをその他のネームサーバ185に接続するリンクは明示していない)。
メッセージクライアント132および133は、それぞれ、対応するリンク136および137によって、受信メッセージサーバ109に接続されている。メッセージエンティティ(例えば、ユーザまたは法人)は、メッセージクライアント132および133を利用して、受信メッセージサーバ109に記憶されている電子メッセージにアクセスすることができる。
送信メッセージサーバ107、受信メッセージサーバ109、およびメッセージサーバ184は、送信制御プロトコル(“TCP”)を利用して、相互間の接続、およびその他のコンピュータシステムとの接続を確立する電子メッセージサーバであり得る。送信メッセージサーバ107、受信メッセージサーバ109、およびメッセージサーバ184はまた、簡易メール転送プロトコル(“SMTP”)を利用して、その他のメッセージサーバおよびその他のコンピュータシステムと電子メールメッセージを交換することができる(例えば、確立されたTCP接続を介して)。ネームサーバ108は、ドメイン名(例えば、www.test.com)をインターネットプロトコル(“IP”)アドレス(例えば、112.45.123.99)に変換する、ドメインネームシステム(“DNS”)サーバであり得る。
ネームサーバ108は、あるドメインが、例えば拡張NOOPコマンドに対するサポートやその他のSMTP拡張コマンドに対するサポートなど、非標準接続確立データの交換をサポートしていることを表す1つまたは複数のレコードを記憶することができる。非標準接続確立データの交換に対するサポートを表すレコードは、例えば特別なNOOPレコード、TXTレコード、または1組のTXTレコードなどのDNSレコードであり得る。TXTレコードまたは1組のTXTレコードは、テキストデータ、または、例えば拡張マークアップ言語(“XML”)命令など、テキストフォームで符号化されたその他のデータを含むことができる。非標準接続確立データの交換に対するサポートを表すレコードは、ドメインの電子メールポリシーを表すDNSレコードセットに含むことができる。
図2は、本発明の原理に従って接続ハイジャックを低減するための方法200の例示的流れ図を示す。方法200を、ネットワークアーキテクチャ100中に示す構成要素に関して説明する。方法200は、送信アドレスとみなされるアドレスを含む接続開始データを受信コンピュータシステムに送信する動作を含む(動作201)。動作201は、送信コンピュータシステムが送信接続開始データを受信コンピュータシステムに送る動作を含むことができる。接続開始データは、例えば、送信メッセージサーバと他のコンピュータシステムの間のTCPまたはSMTP接続などの、接続の確立を開始するためのデータであり得る。したがって、接続開始データは、接続確立を開始するための連番、ポート番号、またはその他の適切なコマンドも含み得る。
例えば、送信メッセージサーバ107は、アドレス112を含む接続開始データ111を受信メッセージサーバ109に送ることができる。これは、送信メッセージサーバ107が、メッセージサーバ184に対応するネットワークアドレス(例えば、IPアドレス)のハイジャックを試みている場合があり得る。この場合、アドレス112は、メッセージサーバ184に対応するネットワークアドレスであり得る。一方、送信メッセージサーバ107がネットワークアドレスのハイジャックを試みているのではなく、アドレス112が送信メッセージサーバ107に対応するネットワークアドレスの場合もあり得る。接続開始データ111は、例えば、送信メッセージサーバ107が送信するSMTP HELOコマンドまたはSMTP EHLOコマンドに含めることができる。
方法200は、送信アドレスとみなされるアドレスを含む接続開始データを、送信コンピュータシステムから受信する動作(動作205)を含む。動作205は、受信コンピュータシステムが送信コンピュータシステムから接続開始データを受信する動作を含むことができる。受信した接続開始データは、例えば、受信メッセージサーバと他のコンピュータシステムとの間のTCPまたはSMTP接続などの、接続の確立を開始するためのデータであり得る。例えば、受信メッセージサーバ109は、アドレス112を含む接続開始データ111を送信メッセージサーバ107から受信することができる。接続開始データ111は、受信メッセージサーバ109において受信されるSMTP HELOコマンドに含めることができる。
方法200は、アドレス検証データを含むように標準接続確立データを変更する動作(動作206)を含む。動作206は、受信コンピュータシステムがアドレス検証データを含むように標準接続確立データを変更する動作を含むことができる。例えば、受信メッセージサーバ109は、本来ならば接続開始データ111に応答してアドレス112に送信されるはずの標準接続確立データを変更することができる。接続開始データ111がTCP接続を確立すべきであることを表している場合、受信メッセージサーバ109は、標準接続応答データを複数のネットワークパケットに分解する。あるいは、接続開始データ111がTCP接続を確立すべきであることを表している場合、受信メッセージサーバ109は、接続開始データ111を削除することができる。実施形態によっては、接続開始データ111を受信したことに応答して、受信メッセージサーバ109が、ランダムな文字列(またはその他の非標準データの一部)を含むように標準接続確立データを変更する。
方法200は、変更した接続確立データを送信アドレスとみなされるアドレスに送信する動作(動作207)を含む。動作207は、受信コンピュータシステムが、変更した接続確立データを送信アドレスとみなされるアドレスに送信する動作を含むことができる。例えば、アドレス112が送信メッセージサーバ107に対応する場合、受信メッセージサーバ109は、アドレス検証データ114を含む変更済み接続確立データ113を送信メッセージサーバ107に送信することができる。一方、アドレス112がメッセージサーバ184に対応する場合は、受信メッセージサーバ109は、アドレス検証データ114を含む変更済み接続確立データ118をメッセージサーバ184に送ることができる。
変更済み接続確立データ113および118は、接続確立データを含む連続したパケットの最後のネットワークパケット、接続開始データの再送信要求、あるいはランダムな文字列(またはその他の非標準データの部分)を含むSMTP HELO応答またはSMTP EHLO応答コマンドであり得る。これらのタイプの接続確立データは標準接続確立データとは異なる。したがって、ネットワークアドレスのハイジャックしようとしているコンピュータシステムがこの変更された接続確立データに対する適切な応答を正しく予測できる可能性は低くなる。
方法200は、アドレス検証データを含む変更済み接続確立データを受信する動作(動作202)を含む。動作202は、送信コンピュータシステムが、アドレス検証データを含む変更済み接続確立データを受信する動作を含むことができる。例えば、送信メッセージサーバ107は、アドレス検証データ114を含む変更済み接続確立データ113を受信メッセージサーバ109から受信することができる。
実施形態によっては、接続開始データを送信していないメッセージサーバが変更済み接続確立データを受け取る。例えば、アドレス112がメッセージサーバ184に対応する場合、メッセージサーバ184は、アドレス検証データ114を含む変更済み接続確立データ118を受信メッセージサーバ109から受信することができる。受信された変更済み接続確立データ118が対応する接続開始データに応答して受信されたのではない場合、メッセージサーバ184は、単に変更済み接続確立データ118を廃棄する。したがって、送信メッセージサーバ107がメッセージサーバ184からの接続のシミュレーション(およびそれによるハイジャック)を試みている場合、受信メッセージサーバ109は、アドレス検証データ114に対する適切な応答を受信することができない。例えば、受信メッセージサーバ109は、アドレス検証データ114中に含まれているランダムな文字列をエコーバックする拡張NOOPコマンドを受信することができない。
したがって、受信メッセージサーバ109は、ネームサーバ108に問い合わせて、メッセージサーバ184(アドレス112に対応するメッセージサーバ)が変更済み接続確立データをサポートしているかどうかを判断することができる。エントリ176は、メッセージサーバ184を含むドメインのDNSエントリであり得る。受信メッセージサーバ109は、変更済み接続確立サポートレコード、例えば拡張NOOPサポートレコード138(特別なNOOPサポートレコードまたはTXTレコード)について、エントリ176に問い合わせることができる。メッセージサーバ184が変更済み接続確立、例えば拡張NOOPコマンドをサポートすることが示される場合、アドレス検証データ114への適切な応答を受信できないことは、接続開始データ111がメッセージサーバ184から送信されていないことを表しているはずである。
方法200は、アドレス検証データに基づいて適切な接続応答データを生成する動作(動作203)を含む。動作203は、送信コンピュータシステムが、アドレス検証データに基づいて適切な接続応答データを生成する動作を含むことができる。例えば、送信メッセージサーバ107は、アドレス検証データ114に基づいて適切な接続応答データ117を生成することができる。接続確立データ113が複数のネットワークパケットにおける最後のネットワークパケットである場合、送信メッセージサーバ107は、その最後のネットワークパケットに該当する連番確認メッセージを生成することができる。接続確立データ113が接続開始データ111の再送信要求である場合、送信メッセージサーバ107は接続開始データ111を再生成することができる。接続確立データが非標準データ(例えば、ランダムな文字列)を含むSMTP HELO応答コマンドまたはSMTP EHLO応答コマンドである場合、送信メッセージサーバ107は、その非標準データを含む拡張NOOPコマンドを生成することができる。
方法200は、適切な接続応答データを受信コンピュータシステムに送信する動作(動作204)を含む。動作204は、送信コンピュータシステムが適切な接続応答データを受信コンピュータシステムに送信する動作を含むことができる。例えば、送信メッセージサーバ107は、適切な接続応答データ117を含む接続応答データ116を、受信メッセージサーバ109に送信することができる。適切な接続応答データ117は、例えば、該当する確認連番、再生成された接続開始データ、または非標準データを含むことができる。送信メッセージサーバ107が、例えば受信したSMTP HELOコマンドまたはSMTP EHLOコマンドからのランダムな文字列を拡張NOOPコマンドに含める場合がある。
受信メッセージサーバ109は、接続応答データ116を受信することができる。しかし、受信メッセージサーバは、適切な接続応答を含んでいないその他の接続応答データを受信したり、あるいは接続応答データを全く受信しない場合もある。例えば、送信メッセージサーバ107がメッセージサーバ184に対応するネットワークアドレスをハイジャックしようとしている場合、送信メッセージサーバ107はアドレス検証データ114を受信しない場合がある(アドレス検証データ114がメッセージサーバ184に送信されないために)。したがって、送信メッセージサーバ107は、アドレス検証データ114に基づかない接続応答データを予測しようとする。したがって、送信メッセージサーバ107が不適切な(例えば、標準の)接続応答データを予測する可能性が高くなる。
方法200は、送信アドレスとみなされるアドレスに対応するコンピュータシステムが、アドレス検証データに適切に応答したかどうかを判断する動作(動作208)を含む。動作208は、受信コンピュータシステムが、送信アドレスとみなされるアドレスに対応するコンピュータシステムがアドレス検証データに適切に応答したかどうかを判断する動作を含むことことができる。例えば、受信メッセージサーバ109は、アドレス112に対応するコンピュータシステムがアドレス検証データ114に適切に応答したかどうかを判断することができる。適切な接続応答データ117を受信することによって、受信メッセージサーバ109は、アドレス112に対応するコンピュータシステムが適切に114に応答したことを知ることができる。例えば、接続確立データ113を含むネットワークパケットに該当する確認連番、再送信要求に応答しての接続開始データ111の再送信、またはランダムなエコー文字列を含む拡張SMTP NOOPコマンドが適切な接続応答を表すことができる。受信メッセージサーバ109が適切な接続応答を受信した場合、ネットワークアドレスとみなされるアドレスがハイジャックされている可能性は低い。
不適切な接続データに応答して、受信メッセージサーバは、送信アドレスとみなされるアドレスに対応するネームサーバエントリに問い合わせることができる。例えば、受信メッセージサーバ109はエントリ176(アドレス112に対応するエントリ)に問い合わせて、メッセージサーバ184が変更済み接続確立をサポートしているかどうかを判断することができる。メッセージサーバ184が変更済み接続確立データ、例えば拡張NOOPコマンドをサポートしていることが示された場合、メッセージサーバ184からのものとみなされる不適切な応答データの受信は、接続開始データ111がメッセージサーバ184から送信されたものではないことを表すはずである。
次に図3を参照すると、図3は、本発明に従って許可された送信メッセージサーバの識別を実施する、ネットワークアーキテクチャ300の一例を示している。ネットワークアーキテクチャ300には、ドメイン305、306、および307を示してある。ドメイン305、306、および307を、それらがそれらの内に示されている対応コンピュータシステムを論理的に含んでいることを説明するために、破線で示してある。しかし、あるドメインに含まれるコンピュータシステムの物理的な場所は互いに異なってよい。例えば、メッセージクライアント341およびメッセージクライアント343は、物理的にきわめて近くに(例えば、同じ部屋に)位置することも可能であるし、あるいは、物理的にきわめて離れて(例えば、異なる大陸に)位置することも可能である。
ネットワークアーキテクチャ300にはネームサーバ308も示してある。一般に、ネームサーバ308は、例えば、異なるドメインにあるコンピュータシステム間の通信を実施するために、コンピュータシステムのテキスト列識別子を対応する数値のネットワークアドレスに対応付けるネーム情報を記憶している。ネームサーバ308は、ドメイン名(例えば、WWW.test.com)をインターネットプロトコル(“IP”)アドレス(例えば、102.33.23.112)に変換するドメインネームシステム(“DNS”)サーバの場合がある。
ネームサーバ108は、あるドメインのための許可された送信メッセージサーバを表す1つまたは複数のレコードを記憶することができる。ドメインのための許可された送信メッセージサーバを表すレコードは、例えば、RMXレコード、TXTレコード、または1組のTXTレコードなどのDNSレコードであり得る。TXTレコードまたは1組のTXTレコードは、テキストデータ、または、例えばXML命令など、テキストフォームで符号化されたその他のデータを含むことができる。許可された送信メッセージサーバを示すレコードは、ドメインの電子メールポリシーを示すDNSレコードセット中に含めることができる。
ネットワークアーキテクチャ300にはネットワーク301も示してある。ドメイン305、ドメイン306、ドメイン307、およびネームサーバ308は、それぞれ、対応するリンク391、392、393、および394によってネットワーク301に接続されている。リンク391、392、393および394、およびネットワーク301は、システムバスの一部、ローカルエリアネットワーク(“LAN”)の一部、広域ネットワーク(“WAN”)の一部、および/またはインターネットの一部さえも含むことができる。ネットワークアーキテクチャ300内に示してあるドメインおよびコンピュータシステムは、図示のリンクを介して、例えば、電子メールメッセージ、DNSクエリ、DNS応答(リソースレコードを含む)などの電子メッセージを交換することができる。両方向矢印386で示すように、ネームサーバ308は、反復クエリの目的でその他のネームサーバ385と通信することもできる。同様に、ネットワークアーキテクチャ300内のコンピュータシステムは、反復クエリの目的で、その他のネームサーバ385に直接、問い合わせることができる(ただし、ネットワークアーキテクチャ300内のコンピュータシステムをその他のネームサーバ385に接続するリンクは明示していない)。
ドメイン307内において、メッセージクライアント341および343は、それぞれ、対応するリンク396および397によってメッセージサーバ317に接続されている。メッセージクライアント341および343はそれぞれ、例えば電子メールクライアントソフトウェアに含まれた、対応するメッセージインタフェースモジュール(図示せず)を含むことができる。メッセージインタフェースモジュールは、メッセージクライアントの1つのユーザに、メッセージサーバ317にアクセスして電子メッセージを見るためのメカニズムを提供する。ユーザ(例えば、John Doe)は、このユーザに割り当てられ、かつ/またはこのユーザによる使用が許可されている電子メッセージアドレス(例えば、jdoe@test2.com)に送信された電子メッセージを見ることができる。
図4は、本発明に従って許可された送信メッセージサーバを識別するための方法400の例示的流れ図を示す。許可されていないコンピュータシステムは、電子メッセージの1つまたは複数のフィールドを変更して(以下、これを「ドメインのなりすまし」と呼ぶ)、実際には電子メッセージ(例えば、電子メールメッセージ)がそこから送信されていない場合に、指定したドメインから送信されたように見せることができる。したがって、方法400は、電子メッセージに含まれるドメイン名がなりすましである可能性を示す入力を供給するための方法とみることもできる。ドメイン名がなりすましである可能性が高いことは、電子メッセージが不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージであることを表す(単独で、または他の入力との組合せによって)場合がある。
ネットワークアーキテクチャ300内に示してある構成要素に関して、方法400を説明する。方法400は、送信側ドメインから送信されたとみなされる電子メッセージを受信する動作(動作401)を含む。動作401は、受信側ドメイン中の受信メッセージサーバが、送信側ドメインから送信されたとみなされる電子メッセージを受信する動作を含むことができる。例えば、メッセージサーバ317(ドメイン307内の)は、メッセージサーバ316から電子メッセージ371を受信することができる。電子メッセージ371は、電子メッセージ371がドメイン305から送信されたことを示す、なりすましドメイン名372を含む。
送信ドメインとみなされるドメインは、電子メッセージに含まれるパラメータ値から識別することができる。例えば、メッセージサーバ317は、電子メッセージ371に含まれるパラメータ値から(例えば、なりすましドメイン名372から)ドメイン305を識別することができる。送信ドメインとみなされるドメインは、送信エンティティとみなされるエンティティのドメイン部分(例えば、“@”文字以降の文字群)から識別することができる。電子メッセージ中のその他のパラメータ値には、実際の送信ネットワークアドレスを含めることができる。例えば、実際の送信ネットワークアドレスは、電子メッセージの逆パス(差出人アドレスと呼ぶことがある)中に含まれ得る。逆パスは、送信コンピュータシステムがSMTPの“MAIL FROM”コマンドを発行した結果として電子メッセージに含まれ得る。したがって、メッセージサーバ317は、電子メッセージ371のこのパラメータ値を調べて、実際の送信ネットワークアドレス(例えば、メッセージサーバ316の実際のIPアドレス)の識別を試みることができる。
しかし、実際の送信ネットワークアドレスが、電子メッセージの第1の再送信差出人ヘッダ、電子メッセージの再送信差出人アドレスヘッダ中の第1のメールボックス、電子メールの差出人ヘッダ、または電子メッセージの差出人アドレスヘッダの第1のメールボックス中に含まれる場合もある。したがって、メッセージサーバ317は、電子メッセージ371のこれらのパラメータ値をそれぞれ調べて(別途に、あるいは逆パスパラメータ値を調べることと組み合わせて)、実際の送信ネットワークアドレス(例えば、メッセージサーバ316の実際のIPアドレス)の識別を試みることができる。電子メッセージのいくつかの異なる部分を調べるので、電子メッセージの実際の送信ネットワークアドレスを識別できる可能性が高くなる。電子メールの実装によっては、逆パスを空にして電子メッセージを送信することが要求される。本発明の実施形態は、電子メッセージが逆パスパラメータ値を含まない場合に実際の送信アドレスを識別するのに有利であり得る。
なりすましドメイン372に基づいて、メッセージサーバ317は、ドメイン305を、電子メッセージ371の送信ドメインとみなされるドメインとして識別する場合がある。逆パスまたはリストされたヘッダの少なくとも1つを含まない電子メッセージは、不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージとみなされる場合がある。このような電子メッセージを不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージとみなすことによって、エンティティがメッセージ分類モジュール欺くために意図的に逆パスおよび全てのヘッダを省略する可能性が低減される。
方法400は、電子メッセージの複数のパラメータ値を調べて、送信コンピュータシステムに対応する実際の送信側ネットワークアドレスの識別を試みる動作(動作402)を含む。動作402は、受信側コンピュータシステムが、送信コンピュータシステムに対応する実際の送信側ネットワークアドレスを識別する動作を含むことができる。受信側コンピュータシステムは、例えば、電子メッセージ371の逆パス、第1の再送信差出人ヘッダ、再送信差出人アドレスヘッダ中の第1のメールボックス、電子メッセージの差出人ヘッダ、または差出人アドレスヘッダの第1のメールボックスの1つまたは複数から、実施の送信側ネットワークアドレスを識別することができる。メッセージサーバ317は、実際の送信側IPアドレスがメッセージサーバ316に対応していることを識別できる。方法200を利用して、IPアドレスがなりすましである可能性を低減することができる。
方法400は、ある送信側ドメインのために電子メッセージを送信することを許可されているネットワークアドレスのリストを、ネームサーバに問い合わせる動作(動作403)を含む。動作403は、受信コンピュータシステムが、送信側ドメインのために電子メッセージを送信することを許可されているネットワークアドレスのリストを、ネームサーバに問い合わせる動作を含むことができる。例えば、メッセージサーバ317は、ドメイン307に、許可サーバクエリ379を含むネームサービスメッセージ375をネームサーバ308へ発行させることができる。ネームサービスメッセージ375は、ドメイン305を識別する識別子を含むことができる。
ネームサーバ308は、ネームサービスメッセージ375を受け取り、それに応じて許可サーバクエリ379を処理する。ネームサーバ308では、エントリ376がドメイン305に対応するDNSエントリである場合がある。エントリ376は、許可サーバレコード336を含む、ドメイン305についての1つまたは複数のレコード(例えば、RMXおよび/またはTXTレコード)を含むことができる。受信したTXTレコードは、XML命令を含み得る。許可サーバレコード336はドメイン105のために電子メッセージを送信することを許可されたメッセージサーバに対応するネットワークアドレス(例えば、IPアドレス)を含むことができる。
メッセージサーバ315がドメイン305からの電子メッセージを送信することを許可されたコンピュータシステムとして指定され、しかし、メッセージサーバ316が305からの電子メッセージを送信することを許可されたコンピュータシステムとして指定されていない場合がある。この場合、許可サーバレコード336を、メッセージサーバ315に対応するメッセージアドレス(および、可能には、その他のコンピュータシステムのネットワークアドレス)を含むように、しかしメッセージサーバ316に対応するネットワークアドレスを含まないように構成することができる。したがって、ネームサービスメッセージ375を受信したことに応答して、ネームサーバ308は、許可サーバリスト378を含むネームサーバ応答377をドメイン307に送信することができる。ドメイン307は、ネームサーバ応答377を受信し、それをメッセージサーバ317に転送することができる。
方法400は、実際の送信側ネットワークアドレスが送信ドメインのために送信電子メッセージを送信することを許可されているかどうかを判断する動作(動作404)を含む。動作404は、受信コンピュータシステムが、実際の送信側ネットワークアドレスが送信ドメインのために送信電子メッセージを送信することを許可されているかどうかを判断する動作を含むことができる。例えば、メッセージサーバ317は、メッセージサーバ316に対応するネットワークアドレスがドメイン305のために電子メッセージを送信することを許可されているかどうかを判断することができる。
受信コンピュータシステムは、実際の送信側ネットワークアドレスを、許可サーバリストに含まれているネットワークアドレスと比較して、実際の送信側ネットワークアドレスが許可されているアドレスであるかどうかを判断することができる。例えば、メッセージサーバ317は、メッセージサーバ316に対応するネットワークアドレスを、許可サーバリスト378に含まれているネットワークアドレスと比較して、メッセージサーバ316がドメイン305のために電子メッセージを送信することを許可されているかどうかを判断することができる。実際の送信側ネットワークアドレスが、ドメインのための許可ネットワークアドレスのリストに含まれていない場合、これは、送信側コンピュータシステムが、そのドメインからの電子メッセージとみなされる電子メッセージを送信する許可を受けていなかったことを表す。したがって、メッセージサーバ316は、電子メッセージ371中になりすましドメイン名372を含めることによって、ドメイン305になりすましたわけであるから、メッセージサーバ316を不正コンピュータシステムとして認めることができる。不正コンピュータシステムによる電子メッセージの送信は、その電子メッセージが不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージであることを表すことができる。
一方、実際の送信側ネットワークアドレスがドメインのための許可ネットワークアドレスリストに含まれている場合、これは、送信側コンピュータシステムが、そのドメインからの電子メッセージとみなされる電子メッセージを送信する許可を受けていたことを表す。例えば、メッセージサーバ315は、電子メッセージに正当にドメイン305を含めることができ、許可されたコンピュータシステムとして認められる得る。許可されたコンピュータシステム(例えば、メッセージサーバ315)による電子メッセージの送信は、その電子メッセージが正当な電子メッセージであることを示すことができる。
方法400は、判断の結果をメッセージ分類モジュールに供給する動作(動作405)を含む。メッセージ分類モジュールは、供給された入力に基づいて、電子メッセージを正当、不要メッセージおよび/または受信者側が送信を要求していないメッセージに分類することができる。例えば、メッセージサーバ317は、メッセージサーバコンピュータシステム316(不正)に関する、またはメッセージサーバ315(正当)に関する判断の結果を、メッセージ分類モジュール328に供給することができる。供給された、メッセージサーバ316が不正であることを示す結果(単独で、または他の供給された入力との組合せによる)に基づいて、メッセージ分類モジュール328は電子メッセージ371を不要メッセージおよび/または受信者側が送信を要求していないメッセージとして分類することができる。
実施形態によっては、メッセージ分類モジュールがメッセージクライアントに常駐している。例えば、メッセージクライアント343は、メッセージ分類モジュール353を含む。この場合、メッセージサーバ317は、適宜、判断(送信コンピュータシステムが、あるドメインのために電子メッセージを転送することを許可されているかどうかについての)の結果を代わりにメッセージ分類モジュール353に供給することができる。
次に図5を参照すると、図5は、本発明に従って送信ドメインの電子メッセージ送信ポリシーの識別および計算パズルの解決の確認を実施する、ネットワークアーキテクチャ500の例を示す。ネットワークアーキテクチャには、ドメイン506および507を示してある。ドメイン506および507を、それらがそれらの内に示されている対応コンピュータシステムを論理的に含んでいることを説明するために破線で示してある。しかし、ネットワークアーキテクチャ300と同様に、ネットワークアーキテクチャ500のドメインに含まれるコンピュータシステムの物理的な場所は互いに異なっている。
ネットワークアーキテクチャ500にはネームサーバ508も示してある。一般に、ネームサーバ508は、例えば、異なるドメインにあるコンピュータシステム間の通信を実施するために、コンピュータシステムのテキスト列識別子を対応する数値のネットワークアドレスに対応付けるネーム情報を記憶している。ネームサーバ508は、ドメイン名(例えば、WWW.test.com)をインターネットプロトコル(“IP”)アドレス(例えば、119.46.122.87)に変換するドメインネームシステム(“DNS”)サーバの場合がある。ネームサーバ508は、ドメインが1つまたは複数の電子メッセージ送信ポリシー(以下、“ETP”と呼ぶ)を遵守していることを示すレコード、およびドメインが計算パズルの解決および/またはその解決の確認が可能であることを表すレコードも記憶することができる。
ETPは、例えば特別なETPレコード、TXTレコード、または1組のTXTレコードなどのDNSレコードに含めることができる。TXTレコードまたは1組のTXTレコードは、テキストデータ、または、例えばXML命令など、テキストフォームで符号化されたその他のデータを含むことができる。ETPを識別するレコードは、ドメインの電子メールポリシーを表すDNSレコードセット中に含めることができる。ETPは、電子メッセージポリシーに関連付けられた証拠を表す、既存の許可フレームワークおよび技術に含めることができる。例えば、ETPを、DNSレコードに記憶されているX.509証明書、拡張権利マークアップ言語(“XrML”)ライセンス、またはKerberos PACに含めることができる。
ETPは、ドメインに対して拘束力を持つ参照テキストを含むことができ、また、相互に信頼できるソースによって発行されることができる。例えば、発行されたX.509証明書は、そのドメインに合致するルーティングアドレスを含むことができる。これは、上述のポリシーをDNSから検索することよりも、ドメインに対してポリシーの拘束力を与えることになる。
計算パズルサポートインジケータを、例えば、特殊なパズルサポートレコード、TXTレコードまたは1組のTXTレコードなどのDNSレコードに含めることができる。TXTレコードまたは1組のTXTレコードは、テキストデータ、または、例えばXML命令など、テキストフォームで符号化されたその他のデータを含むことができる。計算パズルに対するサポートを表すレコードは、ドメインの電子メールポリシーを表すDNSレコードに含めることができる。
ネットワークアーキテクチャ500にはネットワーク501も示してある。ドメイン506、ドメイン507、およびネームサーバ508は、それぞれ、対応するリンク592、593、および594によってネットワーク501に接続されている。リンク592、593、および594、およびネットワーク501は、システムバスの一部、ローカルエリアネットワーク(“LAN”)の一部、広域ネットワーク(“WAN”)の一部、および/またはインターネットの一部さえも含むことができる。ネットワークアーキテクチャ500に示してあるドメインおよびコンピュータシステムは、図示のリンクを介して、例えば、電子メールメッセージ、DNSクエリ、DNS応答(リソースレコードを含む)などの電子メッセージを交換することができる。両方向矢印586で示すように、ネームサーバ508は、反復クエリの目的でその他のネームサーバ585と通信することもできる。同様に、ネットワークアーキテクチャ500中のコンピュータシステムは、反復クエリの目的で、その他のネームサーバ585に直接、問い合わせることができる(ただし、ネットワークアーキテクチャ500内のコンピュータシステムをその他のネームサーバ585に接続するリンクは明示していない)。
ドメイン507内において、メールクライアント541、542、および543は、それぞれ、対応するリンク596、597および598によってメッセージサーバ517に接続されている。メールクライアント541、542、および543はそれぞれ、例えば電子メールクライアントソフトウェアに含まれた、対応する電子メッセージインタフェースモジュール(図示せず)を含むことができる。電子メッセージインタフェースモジュールは、メールクライアントの1つのユーザに、電子メッセージにアクセスして見るためのメカニズムを提供する。ユーザ(例えば、Jane Smith)は、このユーザに割り当てられ、かつ/またはこのユーザによる使用が許可されている電子メッセージアドレス(例えば、jsmith@test12.net)に送信された電子メッセージを見ることができる。
図6は、本発明に従って送信ドメインの電子メッセージ送信ポリシーを判断するための方法600の例示的流れ図を示す。電子メッセージを送信するドメインが1つまたは複数のETPを遵守している場合がある。ドメインが特定のETPを遵守していることは、そのドメインが不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージを送信する(または、他のドメインに送信させる)可能性が低いことを表す。反対に、ドメインがその特定のETPを遵守していないことは、そのドメインが不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージを送信する(または、他のドメインに送信させる)可能性が高いことを表す。実施形態によっては、実際の送信ネットワークアドレスがハイジャックされていないことを判断した後で(例えば、方法200に従って)、また、送信ドメインがなりすましのドメインではないことを判断した後で(例えば、方法400に従って)、ドメインのETPを識別することが適切な場合がある。
方法600を、ネットワークアーキテクチャ500内に示す構成要素に関して説明する。方法600は、送信ドメインから電子メッセージを受信する動作(動作601)を含む。動作601は、受信コンピュータシステムが、送信ドメインから電子メッセージ(例えば、電子メールメッセージ)を受信する動作を含むことができる。例えば、メッセージサーバ517は、メッセージサーバ516から電子メッセージ575(例えば、電子メールメッセージ)を受信することができる。電子メッセージ575は、オプションで、ドメイン506が遵守するETPを表すETP証明書576を含む。
方法600は、送信側ドメインが遵守する関連電子メッセージ送信ポリシー(例えば、特定の予め定義された標準に含まれるようなポリシー)を識別するための機能結果志向ステップ(ステップ605)を含む。ステップ605は、送信側ドメインが遵守する電子メッセージ送信ポリシーを識別するための、いずれかの対応する動作を含むことができる。しかし、図6に説明する方法では、ステップ605は、送信側ドメインに対応する1つまたは複数の電子メッセージ送信ポリシーを受信するという対応動作(動作602)を含んでいる。
動作602は、受信コンピュータシステムが、送信側ドメインに対応する1つまたは複数の電子メッセージ送信ポリシーを受信する動作を含むことができる。例えば、メッセージサーバ517は、ETP証明書576を含む電子メッセージ575を受信することができる。ETP証明書576は、ドメイン506が遵守するETPを表す、1つまたは複数のX.509証明書であり得る。
実施形態によっては、妥当な電子メッセージの動作のポリシーを伝達する意図で、S/MIME(セキュア/マルチパーパスインターネットメールエクステンションズ)電子メッセージ(以下、「ETP S/MIMEメッセージ」と呼ぶ)に署名を行う。ETP S/MIMEメッセージは、S/MIMEv3に準拠した電子メッセージであり得る。ETP S/MIMEメッセージは、マルチパート/署名フォーマットであり得、2つのMIME部分を含むことができる。第1のMIME部分は、電子メッセージの署名すべき部分(例えば、メッセージの平文部分)を含むことができる。第2のMIME部分は、第1のMIME部分から分離された署名を含む。分離署名は、ETP証明書の援助のもとに作成することができる。ETP S/MIMEメッセージは、署名メールシステムと署名を認識しないメッセージシステムの間の改良された下位互換性を提供する、完全インヘッダモードで実装することができる。
電子メッセージの受信者は、自分達のETP協約に違反するエンティティを識別することができる。したがって、電子メッセージ受信者は、ETP S/MIME中の証明書が失効しているかどうかの判断を試みることができる。電子メッセージ受信者が証明書が失効しているかどうかの判断を試みるには少なくとも4つの方法がある。一実施形態では、電子メッセージ受信者が、証明書の発行元にその証明書が失効しているかどうかを問い合わせる。別の実施形態では、電子メッセージ受信者が、信頼できる証明書発行元によって定期的に更新される、失効証明書リストを保持する。ETP S/MIMEメッセージが受信された場合、この電子メッセージの受信者は、リストをチェックして、含まれている証明書が失効しているかどうかを判断することができる。さらに別の実施形態では、電子メッセージ受信者が、現在、委託されている全ての証明書のリストを保持する。ETP S/MIMEメッセージが受信された場合、この電子メッセージの受信者は、リストをチェックして、含まれている証明書が委託されているものであるかどうかを判断することができる。
さらに別の実施形態では、ETP S/MIMEメッセージ中に、含まれている証明書とともに新しさの証拠が含まれている。例えば、ETP S/MIMEメッセージは、特定の(可能には最新の)時間枠(例えば、1分または15分)の間、その証明書が有効な状態であることを示す、発行元からの証明書を含む。電子メッセージ受信者が、その時間枠の間に、あるいはそれよりもあまり時間が経たないうちにETP S/MIMEメッセージを受信すると、その証明書は新しいとみなされる。一方、電子メッセージ受信者がその時間枠よりもかなり後にETP S/MIMEを受信した場合、その電子メッセージ受信者は、例えば、証明書の発行元に問い合わせてその証明書が失効しているかどうかを知るなど、その他のメカニズムの1つに頼ることができる。
ETP S/MIMEメッセージ中に新しさの証拠を含めることは、電子メッセージ受信者にとって効率面での多大な利点がある。例えば、ETP S/MIME中に新しさの証拠を含めることによって、電子メール受信者が行うクエリの回数を著しく低減することができる。また、ETP S/MIME中に新しさの証拠を含めても、伝メッセージ送信者には、与えるとしても限定的な影響しか与えない。例えば、電子メッセージの送信を、新規の新しさの証拠をたまにしか(例えば、15分ごと)要求しないようにし、それを任意の数の電子メッセージ中に含めるように構成することができる。これによって、証明書の発行元へのクエリの回数が著しく低減される。
メッセージサーバ517はまた、送信側ドメインに対応するETPのネームサーバについてのクエリを発生させる。例えば、メッセージサーバ517は、ETPクエリ586を含む、ネームサーバメッセージ585を、ドメイン507に発行させることができる。ネームサーバメッセージ585は、適切なDNSクエリメッセージであってよい。ネームサーバ585は、ドメイン506を識別する識別子を含むことができる。
ネームサーバ508は、ネームサーバメッセージ585を受信し、それに応じてETPクエリ586を処理することができる。ネームサーバ508において、エントリ576は、ドメイン506に対応するDNSエントリであってよい。エントリ576は、証明書レコード556を含む、ドメイン506についての1つまたは複数のレコード(例えば、特別なETPレコードおよび/またはTXTレコード)を含むことができる。TXTレコードまたは1組のTXTレコードはXML命令を含むことができる。証明書レコード556は、ドメイン506が遵守するETPを示す、1つまたは複数のETP証明書(例えば、X.509証明書)を含むことができる。
ドメイン506が、ETPに遵守しないように構成されている場合がある。この場合、エントリ576は、ドメイン506がETPに遵守しないことを示す電子メッセージ構成情報を含む場合がある。したがって、証明書レコード556がどの証明書も含まない場合があり、あるいは、証明書556がエントリ576中には含まれていない場合さえある。ドメイン506がETPに準拠しない場合、ネームサーバ応答514を、ドメイン506がETPに準拠していないことを示すように構成することができる。したがって、ネームサーバ508は、ネームサーバメッセージ585を受信したことに応答して、ドメイン506がETPをサポートしないという指示とともにネームサーバ応答513を送信することができる。
一方、ドメイン506が、1つまたは複数のETPを遵守するように構成されている場合がある。この場合、証明書レコード556を、1つまたは複数のETPを含む証明書で構成することができる。したがって、ネームサーバ508は、ネームサーバメッセージ585を受信したことに応答して、ETP証明書514を含むネームサーバ応答513をドメイン507に送信することができる。ドメイン507は、ネームサーバ応答513を受信して、それをメッセージサーバ517に転送することができる。
ステップ605は、1つまたは複数の受信電子メッセージ送信ポリシーから、関連する電子メッセージ送信ポリシーを解析する動作(動作603)を含む。動作603は、受信コンピュータシステムが、1つまたは複数の受信電子メッセージ送信ポリシーから関連電子メッセージ送信ポリシーを解析する動作を含む。例えば、メッセージサーバ517は、ETP証明書576および/またはETP証明書514から、ドメイン506のETPを解析することができる。ETPによっては、何が妥当なメッセージ送信動作なのかを指摘するいくつかの組織が同意している場合もある。
ポリシーを、特定の組織グループにとって何が適切な動作なのかに基づいて展開させることができる。しかし、いずれかの1組のポリシーを全てのメッセージユーザが例外なく遵守しなければならないということはない。ただし、例えば、電子メッセージを比較的低速で送信すること、および/または電子メッセージを多数のアドレスに送信することを控えることなど、特定のポリシーをドメインが遵守することによって、そのドメインからの電子メッセージが不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージである可能性が低いことを示すことができる。一方、これらのポリシーを遵守していないことは、そのドメインからの電子メッセージが不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージである可能性が高いことを示し得る。
方法600は、関連電子メッセージ送信ポリシーをメッセージ分類モジュールに供給する動作(動作604)を含む。動作604は、受信コンピュータシステムが、関連電子メッセージ送信ポリシーをメッセージ分類モジュールに供給する動作を含むことができる。例えば、メッセージサーバ517は、ドメイン506の関連ETPをメッセージ分類モジュール529に供給することができる。メッセージ分類モジュール529は、関連ETPに基づいて(単独で、または他の供給された入力との組合せによって)、電子メッセージ575を正当な電子メッセージとして、または不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージとして分類することができる。代わりに、適切な場合には、メッセージサーバ517は、ドメイン506の関連ETPをメッセージ分類モジュール553に供給することができる。メッセージ分類モジュール553は、関連ETPに基づいて(単独で、または他の供給された入力との組合せによって)、電子メッセージ575を正当な電子メッセージとして、または不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージとして分類することができる。
図7は、本発明に従って計算パズルの解決を確認するための方法700の例示的流れ図を示す。計算パズルの完了は、送信コンピュータシステムが、電子メッセージを送信する前にいくつかのプロセッササイクルを消費したことを表し得る。消費したプロセッササイクルの指示を提供することは、その送信コンピュータシステムが比較的高速で電子メッセージを送出していないことの証拠、および財源の消費の証拠となる。この場合、この送信コンピュータシステムからの電子メッセージは、不要メッセージおよび/または受信者側が送信を要求していないメッセージである可能性が潜在的に低い。
ネットワークアーキテクチャ500内に示してあるコンピュータシステムおよびモジュールに関して、方法700を説明する。方法700は、電子メッセージに含めるべき電子メッセージデータを受信する動作(動作701)を含む。動作701は、送信メッセージサーバまたは送信メッセージクライアントが、電子メッセージに含めるべき電子メッセージデータを受信する動作を含むことができる。メッセージデータは、電子メッセージのヘッダまたは本文部分に含めるべきいずれかのデータを含み得る。例えば、メッセージサーバ516に接続されたメッセージクライアントは、電子メッセージ545のヘッダおよび/または本文部分に含めるべきメッセージデータ(例えば、電子アドレス、件名、メッセージの本文など)を受信することができる。メッセージサーバ516では、電子メッセージデータがすでに配信すべき電子メッセージ(例えば、電子メッセージ545)に含まれている場合がある。したがって、メッセージサーバ516は、電子メッセージデータの部分(例えば、メッセージデータ546の部分)を、対応する電子メッセージが配信される前に、抽出して処理することができる。
計算パズルの解決を計算する前に、受信側のドメインが計算パズルの解決を確認するように構成されていることを確認することができる。例えば、受信メッセージサーバなどの受信コンピュータシステムは、それが計算パズルの解決を確認するように構成されていることを名前エントリに記入している場合がある。例えば、エントリ577が、ドメイン507の名前情報を記憶している場合がある。エントリ577には、ドメイン507が計算パズルの応答を確認するように構成されていることを示す、応答確認サポートレコード537がある。応答確認サポートレコード537は、例えば特別なパズルサポートレコード、TXTレコード、または1組のTXTレコードなどのDNSレコードであり得る。TXTレコードまたは1組のTXTレコードは、テキストデータ、または、例えばXML命令など、テキストフォームで符号化されたその他のデータを含む。
したがって、メッセージサーバ516は、ネームサーバコンピュータシステム508に問い合わせて(例えば、適切なDNSクエリメッセージを送信することによって)、ドメイン507が計算パズルの解決を確認できるかどうかを判断することができる。このクエリに応答して、ネームサーバ508は、応答確認サポートレコード537を含む指示を返すことができ(例えば、適切なDNS応答メッセージを送信することによって)、これはドメイン506で受信される。ドメイン506は、受信した指示をメッセージサーバ516に適切に転送する。
方法700は、状態情報の異なる部分から初期ドキュメントを生成する動作(動作702)を含む。動作702は、送信コンピュータシステムが、状態情報の異なる部分から初期ドキュメントを生成する動作を含むことができる。例えば、メッセージサーバ516は、メッセージデータ546の異なる部分から初期ドキュメントを生成することができる。実施形態によっては、メッセージデータの異なる部分から初期ドキュメントを生成する動作が、電子メッセージからメッセージデータの異なる部分を抽出する動作を含むことができる。送信メッセージサーバが、受信メッセージサーバに転送すべき電子メッセージ(例えば、メッセージクライアントからの)を受信する場合がある。例えば、メッセージサーバ516は、メッセージサーバ517に転送すべき、メッセージデータ546を含む電子メッセージを受信することができる。
メッセージサーバ516は、電子メッセージ545に含めるべきメッセージデータ546の部分を抽出することができる。例えば、メッセージサーバ516は、電子メッセージ545の差出人フィールド、宛先フィールド、開始時刻フィールド、終了時刻フィールド、日付フィールド、本文フィールド、添付フィールド、件名フィールド、および/またはメッセージIDフィールドなどに含めるべきデータの一部を抽出することができる。データの部分を抽出する動作は、例えば、テキストデータ、グラフィカルデータ、ユニフォームリソース識別子(“URI”)データ、実行可能データなど、実質的に、電子メッセージに含めることができるどのようなタイプのデータでも抽出する動作を含むことができる。メッセージサーバ516は、次いで、抽出した部分を連結して、初期ドキュメントを生成する。
初期ドキュメントは、例えば、メッセージに一意のナンス(例えば、ランダムに生成された番号またはストリング)などの状態情報からも生成することができる。例えば、メッセージサーバ516は、128ビットのランダムな一意のストリングを生成して、電子メッセージ545に含めることができる。ナンスをメッセージデータの1つまたは複数の部分に連結して、初期ドキュメントを生成することができる。
方法700は、電子メッセージの1つまたは複数の構成要素からパズル入力を生成する動作(動作703)を含む。動作703は、送信コンピュータシステムが、電子メッセージの1つまたは複数の構成要素からパズル入力を生成する動作を含むことができる。例えば、パズル計算モジュール528は、電子メッセージ545の1つまたは複数の構成要素(例えば、メッセージの本文、メッセージの添付物、およびメッセージのヘッダ)からパズル入力を生成することができる。パズル入力を生成する動作は、電子メッセージの構成要素に対する抽出、ハッシュ、連結、またはその他の動作を行うことを含むことができる。
実施形態によっては、パズル入力が初期ドキュメントである。別の実施形態では、パズル入力が、初期ドキュメントを初期ハッシュアルゴリズムに入力として供給することにより計算される、パズル入力ハッシュ値であり得る。初期ハッシュアルゴリズムを利用して均一な長さの入力を生成することができ、それによってより均一なパズル解決時間が得られる。初期ハッシュアルゴリズムは、応答ドキュメントを計算する場合に使用されるパズルハッシュアルゴリズムであり得る。
パズルハッシュアルゴリズムを、特に、不要電子メッセージおよび/または受信者側が送信を要求していない電子メッセージを阻止する際に使用するために設計することができる。例えばSHA−1アルゴリズムなどのハッシュアルゴリズムは、ハッシュ値を作成する間、入力の異なる対応部分にそれぞれ異なった時間に適用される複数の副関数を含んでいる場合がある。本発明の実施形態は、この副関数と入力の部分の間の標準的な対応を変更することによって、ハッシュアルゴリズムの標準動作を変更する。同じ副関数を利用することができるが、それらの副関数が、標準動作の場合であれば同じ部分に適用されるところを、データの異なる部分に適用される。例えば、パズルハッシュアルゴリズムは、SHA−1アルゴリズムの副関数をハッシュすることを利用するが、それらの副関数をSHA−1アルゴリズムとは異なる順番で適用する。副関数を異なる順序で適用することにより、パズルハッシュアルゴリズムをハードウェアに実装することがより難しくなる。
例えば、SHA−1が、以下の式に従って80の副関数を指定する場合を考える。 ft(B,C,D)=(B AND C) OR ((NOT B) AND D) (0 <=t<=19) ft(B,C,D)=B XOR C XOR D (20<=t<=39) ft(B,C,D)=(B AND C) OR (B AND D) OR (C AND D) (40<=t<= 59) ft(B,C,D)=B XOR C XOR D (60<=t<=79)
この場合、SHA−1アルゴリズムは、以下の式に従って、80の副関数を指定する。 ft(B,C,D)=B XOR C XOR D (0 <=t<=19) ft(B,C,D)=(B AND C) OR ((NOT B) AND D) (20<=t<=39) ft(B,C,D)=B XOR C XOR D (40<=t<=59) ft(B,C,D)=(B AND C) OR (B AND D) OR (C AND D) (60<=t<=79) 表1は、テキストデータの例を、それらの対応する変更済みSHA−1ハッシュ出力と共に示したものである。
Figure 2010198636
方法700は、応答ドキュメントとパズル入力との結合から計算された応答ハッシュ値が計算パズルの応答値になるように、応答ドキュメントを識別する動作(動作704)を含む。動作704は、送信コンピュータシステムが、応答ドキュメントとパズル入力との結合から計算された応答ハッシュ値が計算パズルの応答値になるように、応答ドキュメントを識別する動作を含むことができる。例えば、パズル計算モジュール528は、計算パズルの応答となる応答ハッシュ値になるような応答ドキュメントを識別することができる。
一実施形態では、計算パズルは、パズル入力(例えば、初期ドキュメントまたはパズル入力ハッシュ値)と結合され、次いでパズル入力と結合された後にハッシュされた場合に(例えば、変更済みSHA−1アルゴリズムを使って)、複数のビット位置(結果として得られるハッシュ値中に散在する)に指定値を有するハッシュ値になるような応答ドキュメントを識別することである。例えば、計算パズルは、2番目のビット位置に1という値、13番目および54番目のビット位置にゼロの値を有するハッシュ値になるような応答ドキュメントを識別するである場合がある。しかし、本発明の実施形態は、特定の複数ビット位置または特定の指定値に限定されるものではない。
より具体的な実装においては、計算パズルとは、パズル入力の先頭に追加されて、パズル入力と連結された後にハッシュされた場合に、少なくとも最初のnビット(すなわち、各バイトの最上位ビットから始めて)がゼロであるハッシュ値になるような応答ドキュメントを識別することである。例えば、計算パズルが、最初の16ビットがゼロのハッシュ値になるような応答ドキュメントを識別することである場合がある。一般に、応答ドキュメントを識別することは、H(応答ドキュメントOパズル入力)を形成することを含み得る。より具体的には、応答ドキュメントを識別することは、H(応答ドキュメントO初期ドキュメント)またはH(応答ドキュメントOH(初期ドキュメント))を形成することを含み得る。十分に大きいとみなされる特定の数nについては、強引な手段でなければ応答ドキュメントを識別できない可能性がある。
計算パズルを解決する期待時間の変動を低減するために、第1の複数のビット位置(「集合A」)および集合A中の各ビットの指定値を選択する。集合Aと共通のビット位置が含まれない、第2の複数のビット位置(「集合B」)も選択する。パズルの解決は、指定サイズの複数の応答ドキュメント(「集合S」)であり、この場合、各応答ドキュメントは、パズル入力と連結されてハッシュされた場合に、集合A中の各ビット位置に指定値を有し、また、集合Bの各ビット位置の値が、1つおいた応答ドキュメントに対応するハッシュ値に一致する。
変動の低減のより具体的な実施では、集合Aが、結果として得られるハッシュ値の プレフィックスであり、集合Bが、結果として得られるハッシュ値のサフィックスである。したがって、計算パズルは、各応答ドキュメントがパズル入力の先頭に追加され、次いで各応答ドキュメントとパズル入力との連結がハッシュされた場合に、少なくとも最初のnビット(集合A)がゼロであり、最後のmビット(集合B)が同一の値であるような集合Sを識別することの場合がある。例えば、計算パズルは、最初の24ビットがゼロであり、最後の12ビットが同じ値(0か1)であるハッシュ値になる、16の応答ドキュメントを識別することであり得る。代わりに、最初の24ビットおよび/または最後の12ビットが、ゼロの値と1の値を散在させた指定のビットパターンのこともあり得る。
計算パズルを解決するための期待時間を、集合A、集合B、および/または集合Sのサイズを変えることによって構成することができる。集合Aのサイズを、適切な期待解決時間が得られるように変えることができる。集合Bのサイズおよび集合Sのサイズを変化させて、適切に解決時間を変えることができる。解決時間がより長くなるように計算問題を構成することによって、それに応じて、解決を識別するために消費される計算リソースが増加する。一方、解決時間がより短くなるように計算問題を構成することによって、それに応じて、解決を識別するために消費される計算リソースが減少する。メッセージサーバ(例えば、サーバ516および517)は、指定の解決時間に同意することによって、または、対応するリソースレコードに問い合わせることによって、指定解決時間を識別することができる。例えば、メッセージサーバ516は、エントリ577に問い合わせて、ドメイン507の特定の解決時間を識別することができる。
実施形態によっては、一方向パズルハッシュ関数が利用される。一方向パズルハッシュ関数が、特に、不要電子メッセージおよび/または受信者側が送信を要求していな電子メッセージを阻止する際に使用するために設計されている場合がある。一方向パズルハッシュ関数は、ハードウェアの加速を防ぐ目的で、既知の一方向ハッシュを変更したものであり得る。より詳細には、一方向パズルハッシュ関数は、著しい回数の除算を含む。除算は、ハードウェアで加速することが困難なためである。
送信コンピュータシステムは、識別された応答ドキュメント(または識別された複数の応答ドキュメント)を、電子メッセージデータと共に電子メッセージに含めることができる。例えば、メッセージサーバ516は、応答ドキュメント547を、メッセージデータ546と共に電子メッセージ545(例えば、電子メールメッセージ)に含めることができる。方法700は、識別された応答ドキュメントおよび電子メッセージデータを含む電子メッセージを、受信側ドメインに送信する動作(動作705)を含む。動作705は、送信コンピュータシステムが、識別された応答ドキュメント(または応答ドキュメント)および電子メッセージデータを含む電子メッセージを、受信側ドメインに送信する動作を含むことができる。例えば、メッセージサーバ516は、応答ドキュメント547およびメッセージデータ546を含む電子メッセージ545を、ドメイン507に送信することができる。ドメイン507は、電子メッセージ545をメッセージサーバ517に転送することができる。電子メッセージ545を単一の応答ドキュメント(応答ドキュメント547)を含むものとして示してあるが、電子メッセージ545は、1つまたは複数のさらなる応答ドキュメントを含む場合がある。
方法700は、電子メッセージデータおよび応答ドキュメントを含む電子メッセージを受信する動作(動作706)を含む。動作706は、受信コンピュータシステムが、電子メッセージデータおよび応答ドキュメント(または応答ドキュメント)を含む電子メッセージを受信する動作を含むことができる。例えば、メッセージサーバ517は、応答ドキュメント547およびメッセージデータ546を含む電子メッセージ545を受信することができる。電子メッセージが特定のメッセージクライアントに配信される場合、メッセージサーバは、電子メッセージをそのメッセージクライアントに転送することができる。例えば、メッセージサーバ517は、適切な場合には、電子メッセージ545をメッセージクライアント542に転送することができる。メッセージクライアント542は、電子メッセージ545を受信することができる。
方法700は、状態情報の異なる部分から初期ドキュメントを再生する動作(動作707)を含む。動作707は、受信コンピュータシステムが、状態情報の異なる部分から初期ドキュメントを再生する動作を含むことができる。例えば、応答確認モジュール527および/または応答確認モジュール552は、電子メッセージ545(例えば、ナンス)に含まれるメッセージデータ546またはその他の状態情報の部分から、初期ドキュメントを再生することができる。初期ドキュメントの計算と同様に、応答確認モジュール527および/または応答確認モジュール552は、メッセージデータ546またはその他の状態情報の部分を抽出して連結し、初期ドキュメントを再生することができる。
方法700は、電子メッセージの1つまたは複数の構成要素からパズル入力を再計算する動作(動作708)を含む。パズル入力を再計算することにより、初期ドキュメント、または送信コンピュータシステムで使用したのと同じパズルハッシュアルゴリズム(例えば、変更済みSHA−1アルゴリズム)を使って計算されたパズル入力ハッシュ値にすることができる。例えば、応答確認モジュール527および/または応答確認モジュール552は、パズル計算モジュール528が使用したのと同じパズルハッシュアルゴリズムを使って、再生された初期ドキュメントからパズル入力ハッシュ値を再計算することができる。この場合、送信コンピュータシステムにおいて計算されたパズル入力が、受信コンピュータシステムにおいて再計算される。
方法700は、応答ドキュメントとパズル入力との結合から計算された確認ハッシュ値が、計算パズルの解決を表す応答値であるかどうかを判断する動作(動作709)を含む。動作709は、受信コンピュータシステムが、応答ドキュメントとパズル入力との結合から計算された確認ハッシュ値が計算パズルの解決を表す応答値であるかどうかを判断する動作を含むことができる。例えば、応答確認モジュール527および/または応答確認モジュール552は、一般的公式H(応答ドキュメントOパズル入力)を利用して、確認ハッシュ値が解決を表しているかどうかを判断することができる。確認ハッシュ値が、その中に散在する複数の固定ビット位置(例えば、最初のnビット)に指定値を持つ場合、その確認ハッシュ値は解決を表していると言える。
実施形態によっては、複数の応答ドキュメントおよびパズル入力との結合から、複数の確認ハッシュ値が算出される。これらの実施形態では、確認ハッシュ値が、第1の複数のビット位置(例えば、ハッシュ値のプレフィックス)に指定値を有し、第2の複数のビット位置(例えば、ハッシュ値のサフィックス)に、その他の応答ドキュメントから得られたその他の確認ハッシュ値に等しい値を有する場合、その確認ハッシュ値は解決を表していると言える。
確認ハッシュ値が計算問題の解決である場合、消費された計算リソースを少なくとも見積もることができる。すなわち、計算パズルに対する確認可能な解決によって、受信コンピュータシステムは、送信コンピュータシステムがその計算パズルを解決するために強引なアプローチでプロセッササイクルおよびメモリリソースを消費したことを知ることができる。例えば、確認ハッシュ値がメッセージデータ546に基づく計算パズルの解決である場合、これは、メッセージサーバ516がプロセッササイクルを消費したことを応答確認モジュール527および/または応答確認モジュール552に示す。一方、確認ハッシュ値が計算問題の解決ではない場合、これは、その送信コンピュータシステムが、計算パズルを解決するために強引なアプローチでプロセッササイクルを消費しなかった可能性が高いことを表す。例えば、確認ハッシュ値がメッセージデータ546に基づいた計算パズルの解決ではない場合、これは、メッセージサーバ516がプロセッササイクルを消費しなかった可能性が高いことを、応答確認モジュール527および/または応答確認モジュール552に示す。
方法700は、判断の結果をメッセージ分類モジュールに供給する動作(動作710)を含む。動作710は、受信コンピュータシステムが、判断の結果をメッセージ分類モジュールに供給する動作を含むことができる。例えば、メッセージサーバ517は、メッセージサーバ516に関する判断の結果(メッセージサーバ516がプロセッササイクルを消費した、または消費しなかったことを示す判断の結果)をメッセージ分類モジュール529に供給することができる。供給された、メッセージサーバ516が計算リソースを消費したことを示す判断に基づいて(単独で、または他の供給された入力との組合せによって)、メッセージ分類モジュール529は、電子メッセージ545を正当なメッセージとして分類することができる。一方、供給された、メッセージサーバ516が計算リソースを消費しなかった可能性が高いことを示す判断に基づいて(単独で、または他の供給された入力との組合せによって)、メッセージ分類モジュール529は電子メッセージ545を不要メッセージおよび/または受信者側が送信を要求していないメッセージとして分類することができる。代わりに、適切な場合には、メッセージサーバ517は、メッセージサーバ516が計算リソースを消費した、または消費しなかった可能性が高いことを示す結果をメッセージ分類モジュール553に供給することができる。
本発明の実施形態によっては、ドメインが指定ETPをサポートするという指示または送信コンピュータシステムが計算パズルを解決したという指示のいずれかが、電子メッセージが正当であることの十分な証拠になる。例えば、送信エンティティが財源、またはETP証明書を利用したいという要望が不足している場合がある。しかし、それでも、この送信エンティティが、電子メッセージが正当であることを受信コンピュータシステムに示したいと思う場合がある。この場合、送信エンティティは、計算パズルの解決を計算して、電子メッセージに応答ドキュメントを含めるように送信コンピュータシステムを構成することができる。
そのような送信エンティティに関連するドメインのETP証明書の識別を試みるように、受信コンピュータシステムを構成することができる。さらに、ETP証明書が1つも識別されなかった場合には計算パズルの解決を確認するように、受信コンピュータシステムを構成することができる。この場合、受信コンピュータシステムは、最初に電子メッセージを解析し、または送信エンティティに関連するドメインに対応するETP証明書をネームサーバに問い合わせる。ETP証明書が識別され、そのETP証明書が特定のETPに対するサポートを示す場合、その特定のETPに対するサポートは、電子メッセージが正当であることの十分な証拠となり得る。しかし、ETP証明書が1つも識別されない場合、または、識別されたETP証明書が特定のETPに対するサポートを示していない場合、受信コンピュータシステムは、引き続き、含まれている計算パズルの解決の確認を試みる。
スキーマを使って、電子メッセージ情報の意味に制約を与えることができる。以下の例示的XMLスキーマを使って、ドメインに関連する電子メッセージ情報の意味に制約を与えることができる。
Figure 2010198636
Figure 2010198636
Figure 2010198636
Figure 2010198636
Figure 2010198636
スキーマを使用することによって、開発者は、電子メッセージ構成情報を処理するアプリケーションを再設計する必要なく、電子メッセージ構成情報をどのように構造化するかを柔軟に定義することができる(あるいは再定義することさえできる)。TXTレコードを利用して、例示のXMLスキーマによって制約を与えたXML命令を記憶することができる。XML命令は、同じDNSレコードセット中の複数のTXTレコードにわたることが可能であり、そのDNSレコードセットを受信したコンピュータシステムにおいてXMLインスタンスにまとめることができる。例えば、各TXTレコードは、複数のTXTレコードに一意の非負整数である、十進法表示の4桁を含む4文字で(必要に応じて先頭にゼロを用いて)開始することが可能である。受信されると、このTXTレコードは十進数順に順序付けられる。各TXTレコードから最初の4文字(十進数)が取り除かれ、その結果得られた文字が連結されて、単一の連続した文字列(XMLインスタンス)が形成される。
以下は、ドメインのXMLポリシードキュメントを示す、例示的DNS構成ファイルフラグメントである。
Figure 2010198636
この例示的DNS構成ファイルフラグメントは、2つのTXTレコードを含む。1つは文字列“0002”を含み、もう1つは文字列“0001”を含む。受信コンピュータシステムでは、これらの文字列を使ってTXTレコードに含まれるXML命令の適切な順序を判断することができる。しかし、当業者には、この説明を検討することにより、その他の順序メカニズムを使用することが可能であり、また、DNS構成ファイルがさらなるTXTレコードを含み得ることが明らかであろう。コンピュータシステムではこれらの2つのテキストレコードを受信することができ(例えば、DNSクエリに応答して)、また、TXTレコードの部分を連結してXMLインスタンスにすることができる。XMLインスタンスを複数のTXTレコードに及ぶようにすることによって、より多量の電子メッセージ構成情報(2000文字を超える情報)を運ぶことが可能になる。さらに、XMLインスタンスの異なる部分を同じDNSレコードセットに含めることができるので、1つのDNSクエリで異なる部分を検索することができる。
この例示的DNS構成ファイルフラグメントまたはその他のDNS構成ファイルフラグメントを、DNSサブドメイン(例えば、_emailPolicyサブドメイン)に含めることができる。したがって、電子メッセージ構成情報を含む1つまたは複数のTXTレコード(例えば、例示的DNS構成ファイルフラグメントのTXTレコード)が、特定のDNSサブドメイン内のレコードの全てである場合がある。したがって、既存のTXTレコード(他のサブドメイン中の)の使用との混乱またはコンフリクトを低減することができる。
以下は、例示的DNS構成ファイルフラグメントの部分を連結した結果得られる、例示的XMLインスタンスである。
Figure 2010198636
例示的XMLインスタンスは、例示的XMLスキーマによって制約を受けたemailPolicyエレメントを含む。例示的XMLインスタンスは、HashedSpam計算パズルに関する2つの受信ポリシーを表している。第1の受信ポリシーは、少なくとも13のゼロビットを有し、また45分間以下の時間間隔パラメータを有するパズル解決が受諾可能であることを示している。第2の受信ポリシーは、少なくとも29のゼロビットを有し、1週間以内の時間間隔パラメータ、指定された日付および件名ヘッダを有するパズル解決も受諾可能であることを示している。
ネームサーバで、例示的XMLインスタンスの部分、およびその他のXMLインスタンスをTXTレコードに含めることにより、ドメインまたは電子メッセージサーバに関連する電子メッセージ構成情報を伝達することができる。例えば、このようなXMLインスタンスは、変更済み接続確立データに対するサポート、許可送信メールサーバ、ETP証明書の参照、および計算パズルに対するサポートを伝達することができる。XMLインスタンスの部分をTXTレコードに含めることによって、クライアントおよび/またはサーバDNSソフトウェアを更新する必要なく、新しいタイプの電子メッセージ情報をDNSに追加することもできる。
ネームサーバを、電子メッセージ構成情報を返す場合に連番を要求するプロトコルを利用するように、明確に構成する場合がある。この場合、ネームサーバのなりすましを試みようとすると、そのネームサーバが使用している連番を当てなければならないというさらなる負担がかけられる。例えば、ネームサーバを、ユーザデータグラムプロトコル(“UDP”)ではなくTCPを介して電子メッセージ構成情報を返すように、明確に構成することができる。この場合、ネームサーバのなりすましを試みようとすると、そのネームサーバが使用している適切なTCP/IP連番を当てることが要求される。実施形態によっては、電子メッセージ構成情報の長さが返される結果として、連番を要求するプロトコルが使用される。例えば、XMLインスタンスが512バイトよりも大きい場合、自動的にTCPが使用される。
電子メッセージ送信側が、不要電子メッセージおよび受信者側が送信を要求していない電子メッセージを減らすためのメカニズムを複数利用するように構成されている場合がある。この場合、この電子メッセージ送信側は、電子メッセージを送信する場合に、構成されているメカニズムのうちの1つ、いくつか、または全てを選択することができる。同様に、電子メッセージ受信側が、不要電子メッセージおよび受信者側が送信を要求していない電子メッセージを減らすためのメカニズムを複数利用するように構成されている場合がある。この場合、この電子メッセージ受信側は、電子メッセージを受信する場合に、構成されているメカニズムのうちの1つ、いくつか、または全てを選択することができる。しかし、電子メッセージ送信側の構成メカニズムが電子メッセージ受信側の構成メカニズムとは異なる場合がある。
したがって、電子メッセージ送信側および受信側は、不要電子メッセージおよび受信者側が送信を要求していない電子メッセージを減らすための双方で構成されたメカニズムに同意する場合がある。この場合、異なって構成されたメカニズムからの結果を結合したものが、メッセージ分類モジュールに供給される場合がある。例えば、電子メッセージの受信側は、EPTへの遵守に対するチェックと、電子メッセージ送信側による努力の証拠に対するチェックの両方を行って、その両方のチェックの結果をメッセージ分類モジュールに供給する場合がある。努力の証拠には、ハッシュの衝突、暗号化の問題に対する解決策、メモリの制約の問題に対する解決策、逆チューリングテストに対する解決策を提供することが含まれ得る。受信側のドメインは、提供された努力の証拠をチェックして、チェックの結果をメッセージ分類モジュールに提供することができる。
この説明、および添付の特許請求の範囲では、「スキーマ」を、複数のコンピュータシステムがそれに従ってドキュメントを処理することを可能にする、それらの複数のコンピュータシステム間の共用ボキャブラリの表現として定義している。例えば、拡張マークアップ言語(“XML”)スキーマは、XMLスキーマ言語のスキーマコンストラクトを使って、XMLドキュメントのクラスを定義および記述することができる。これらのスキーマコンストラクトを使って、データ型の意味、使用法および関係、エレメントおよびそれらの内容、属性およびそれらの値、エンティティおよびそれらの内容、および表記法を、XMLドキュメント中で使用するように制約を与え、また文書化する。したがって、XMLスキーマにアクセス可能であればどのコンピュータシステムでも、XMLスキーマに従ってXMLドキュメントを処理することができる。さらに、MLスキーマにアクセス可能であればどのコンピュータシステムでも、同じくXMLスキーマにアクセス可能なその他のコンピュータシステムが使用できるように、XMLドキュメントを作成または修正することができる。
所望の機能に応じて、複数の異なる生成入力のうちの1つまたは複数を、可能には電子メッセージに含まれたメッセージデータと共に、メッセージ分類モジュールに供給することができる。受信した入力に基づいて、メッセージ分類モジュールは、電子メッセージを正当なメッセージ、または不要メッセージおよび/または受信者側が送信を要求していないメッセージとして分類することができる。複数の入力(各入力が電子メッセージの送信に関連する情報を表す)を利用する場合、メッセージ分類モジュールは、例えば、電子メッセージを不要メッセージおよび/または受信者側が送信を要求していないメッセージとしてより信頼性高く分類するなど、電子メッセージをより信頼性高く分類することができる。
当業者は、本発明が、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、ページャなどを含む様々なタイプのコンピュータシステム構成を備えたネットワークコンピューティング環境において実施できることを理解されよう。本発明はまた、ネットワークを介してリンクされた(有線データリンク、無線データリンクによって、または有線データリンクと無線データリンクの組合せによって)ローカルおよびリモートのコンピュータシステムが共にタスクを実行する分散システム環境においても、実施することができる。分散システム環境においては、プログラムモジュールをローカルおよびリモートのメモリ記憶装置の両方に設置することができる。
図8および以下の説明は、本発明を実施することができる適切なコンピューティング環境の簡単かつ一般的な説明を提供することを目的としている。必ずしも必要とされるわけではないが、本発明を、コンピュータシステムによって実行されている、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況において説明する。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。コンピュータ実行可能命令、関連するデータ構造、およびプログラムモジュールは、本明細書に開示する方法の動作を実行するためのプログラムコード手段の例を示す。
図8を参照すると、本発明を実施するための例示的システムは、処理装置821、システムメモリ822、およびシステムメモリ822を含む様々なシステム構成要素を処理装置821に結合するシステムバス823を含む、コンピュータシステム820の形態の汎用コンピューティングデバイスを含む。処理装置821は、本発明の機能を含む、コンピュータシステム820の機能を実装するように設計された、コンピュータ実行可能命令を実行することができる。システムバス823は、様々なバスアーキテクチャのいずれかを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のうちのいずれかであってよい。システムメモリは、読取り専用メモリ(“ROM”)824およびランダムアクセスメモリ(“RAM”)825を含む。起動時などにコンピュータシステム820内のエレメント間における情報の転送を援助する基本ルーチンを含む、基本入出力システム(“BIOS”)826を、ROM824に記憶することができる。
コンピュータシステム820はまた、磁気ハードディスク839からの読取りおよびそこへの書込みを行うための磁気ハードディスクドライブ827、リムーバブル磁気ディスク829からの読取りおよびそこへの書込みを行うための磁気ディスクドライブ828、例えばCD−ROMやその他の光媒体などのリムーバブル光ディスク831からの読取りおよびそこへの書込みを行うための光ディスクドライブ830も含むことができる。磁気ハードディスクドライブ827、磁気ディスクドライブ828、および光ディスクドライブ830は、それぞれ、ハードディスクドライブインタフェース832、磁気ディスクドライブインタフェース833、および光ドライブインタフェース834によってシステムバス823に接続されている。ドライブおよびそれらに関連するコンピュータ読取り可能媒体は、コンピュータ実行可能命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶をコンピュータシステム820に提供する。本明細書に記載の例示的環境は、磁気ハードディスク839、リムーバブル磁気ディスク829、およびリムーバブル光ディスク831を利用しているが、磁気カセット、フラッシュメモリカード、ディジタル多用途ディスク、ベルヌーイカートリッジ、RAM、ROMなどを含めて、データを記憶するためのその他のタイプのコンピュータ読取り可能媒体を使用することもできる。
オペレーティングシステム835、1つまたは複数のアプリケーションプログラム836、その他のプログラムモジュール837、およびプログラムデータ838を含めて、1つまたは複数のプログラムモジュールを含むプログラムコード手段を、ハードディスク839、磁気ディスク829、光ディスク831、ROM824またはRAM825に記憶することができる。ユーザは、キーボード840、ポインティングデバイス842、またはマイクロフォン、ジョイスティック、ゲームパッド、スキャナなど、その他の入力デバイス(図示せず)を介して、コンピュータシステム820にコマンドおよび情報を入力することができる。これらおよびその他の入力デバイスを、システムバス823に結合された入出力インタフェース846を介して、処理装置821に接続することができる。入出力インタフェース846は、例えば、シリアルポートインタフェース、PS/2インタフェース、パラレルポートインタフェース、ユニバーサルシリアルバス(“USB”)インタフェース、または電気電子技術者協会(IEEE)1394インタフェース(すなわち、FireWireインタフェース)などの広範にわたる様々な異なるインタフェースのいずれかを論理的に表し、あるいは、さらに、異なるインタフェースの組合せを論理的に表す場合もある。
モニタ847またはその他のディスプレイデバイスも、ビデオインタフェース848を介してシステムバス823に接続されている。スピーカ869またはその他のオーディオ出力デバイスも、オーディオインタフェース849を介してシステムバス823に接続されている。例えばプリンタなどのその他の周辺出力デバイス(図示せず)も、コンピュータシステム820に接続することができる。
コンピュータシステム820は、例えば、オフィス規模または企業規模のコンピュータネットワーク、家庭内ネットワーク、イントラネット、および/またはインターネットなどのネットワークに接続可能である。コンピュータシステム820は、このようなネットワークを介して、例えばリモートコンピュータシステム、リモートアプリケーションおよび/またはリモートデータベースなどの外部ソースと、データを交換することができる。例えば、コンピュータシステム820は、コンピュータシステム820と共通のネットワークに接続されたその他のコンピュータシステムと電子メッセージを交換することができる。
コンピュータシステム820はネットワークインタフェース853を含み、これを介して、外部ソースからデータを受信し、かつ/または外部ソースにデータを送信する。図8に示すように、ネットワークインタフェース853は、リンク851を介してリモートコンピュータシステム883とのデータの交換を実施する。ネットワークインタフェース853は、例えばネットワークインタフェースカードおよび対応するネットワークドライバインターフェース規約(“NDIS”)スタックなどの、1つまたは複数のソフトウェアおよび/またはハードウェアモジュールを論理的に表し得る。データリンク851は、ネットワークの一部(例えば、イーサネット(登録商標)セグメント)を表し、リモートコンピュータシステム883はネットワークのノードを表す。例えば、リモートコンピュータシステム883は、コンピュータシステム820にDNSクエリを送信する問合せコンピュータシステムであり得る。一方、リモートコンピュータシステム883は、DNSクエリを受信したことに応答して、コンピュータシステム820にDNS応答を送信するDNSサーバであり得る。
同様に、コンピュータシステム820は入出力インタフェース846を含み、それを介して外部ソースからデータを受信し、かつ/または外部ソースにデータを送信する。入出力インタフェース846は、データリンク859を介してモデム554(例えば、標準モデム、ケーブルモデム、ディジタル加入者回線(“DSL”)モデム)に結合されており、それを通してデータを受信し、かつ/または外部ソースにデータを送信する。図8に示すように、入出力インタフェース846およびモデム854は、リンク852を介して、リモートコンピュータシステム893とのデータの交換を実施する。リンク852はネットワークの一部を表し、リモートコンピュータシステム893はネットワークのノードを表す。例えば、リモートコンピュータシステム893は、電子メッセージをコンピュータシステム820に送信する送信コンピュータシステムの場合がある。一方、リモートコンピュータシステム893は、コンピュータシステム820から電子メールメッセージを受信する受信コンピュータシステムの場合がある。
図8は、本発明のための適切な動作環境を表すが、本発明の原理は、必要に応じて適切な変更を加えて本発明の原理を実施することができる、どのシステムにおいても利用することができる。図8に示す環境は例にすぎず、本発明の原理を実施することが可能な広範にわたる様々な環境のわずかな部分を表すものでさえない。
本発明を、その趣旨または基本的な特性から逸脱することなく、その他の特定の形態で実施することができる。記載の実施形態は、あらゆる点に関して、例示的なものにすぎず、限定的なものではないとみなすべきものとする。したがって、本発明の範囲は、上述の説明によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲の同等物の意味および範囲に含まれるあらゆる変更は、特許請求の範囲に含まれるものとする。
100、300、500 ネットワークアーキテクチャ
101、301、501 ネットワーク
102、103、104、106、136、137、391、392、393、394、396、397、592、593、594、596、597、598 リンク
106、305、306、307、506、507 ドメイン
107 送信メッセージサーバ
108、308、385、508、585 ネームサーバ
109 受信メッセージサーバ
111、113、118 接続開始データ
112 アドレス 114 アドレス検証データ
116、117 接続応答データ
132、133、341、343、542 メッセージクライアント
138 拡張NOOPサポートレコード
176、376、576、577 エントリ
184、315、316、317、516、517 メッセージサーバ
185、585 その他のネームサーバ
316 メッセージサーバコンピュータシステム
328、353、529、553 メッセージ分類モジュール
336 許可サーバレコード
371、545、575 電子メッセージ
372 ドメイン名
375 ネームサービスメッセージ
377 ネームサーバ応答
379、378 許可サーバクエリ
508 ネームサーバコンピュータシステム
513 ネームサーバ応答
514、576 ETP証明書
527、552 応答確認モジュール 528
パズル計算モジュール
537 応答確認サポートレコード
541、542、543 メールクライアント
546 メッセージデータ
547 応答ドキュメント
556 証明書レコード
585 ネームサーバメッセージ
586 ETPクエリ

Claims (74)

  1. 1つまたは複数の受信コンピュータシステムにネットワーク接続可能な送信コンピュータシステムであって、電子メッセージを前記受信コンピュータシステムに送信するように構成されている送信メッセージサーバを含む送信コンピュータシステムにおいて、前記メッセージサーバが電子メッセージを前記受信側コンピュータシステムに送信する前に計算リソースを消費して計算パズルを解決したことを、前記受信側コンピュータシステムに示すための方法であって、前記送信コンピュータシステムは、
    電子メッセージに含まれるべき電子メッセージデータを受信する動作と、
    状態情報の異なる部分から初期ドキュメントを生成する動作と、
    前記電子メッセージの1つまたは複数の構成要素からパズル入力を生成する動作であって、前記1つまたは複数の構成要素が、メッセージの本体、メッセージの添付物、およびメッセージのヘッダから選択され、パズル入力の生成が構成要素の部分を抽出すること、構成要素の部分をハッシュすること、および構成要素の部分を連結することのうち1つまたは複数を含む動作と、
    応答ドキュメントとパズル入力ハッシュ値との結合から計算される応答ハッシュ値が計算パズルの応答値になるように、前記応答ドキュメントを識別する動作であって、前記応答値がパズルハッシュアルゴリズムを使って計算される動作と、
    前記識別された応答ドキュメントおよび前記電子メッセージデータを含む電子メッセージを前記受信側コンピュータシステムに送信する動作と
    を実行することを特徴とする方法。
  2. 前記電子メッセージに含まれるべき電子メッセージデータを受信する動作は、電子メールメッセージに含まれるべき電子メッセージデータを受信する動作を含むことを特徴とする請求項に記載の方法。
  3. 前記状態情報の異なる部分から初期ドキュメントを生成する動作は、前記電子メッセージデータの少なくとも1つのフィールドからデータを抽出する動作であって、前記少なくとも1つのフィールドが、差出人フィールド、宛先フィールド、開始時刻フィールド、終了時刻フィールド、日付フィールド、本文フィールド、添付フィールド、件名フィールド、およびメッセージIDフィールドから選択される動作を含むことを特徴とする請求項に記載の方法。
  4. 前記状態情報の異なる部分から初期ドキュメントを生成する動作は、1つまたは複数の日付範囲フィールドからデータを抽出する動作を含むことを特徴とする請求項に記載の方法。
  5. 前記状態情報の異なる部分から初期ドキュメントを生成する動作は、テキストデータ、グラフィカルデータ、ユニフォームリソース識別子(“URI”)データ、または実行可能データであるデータを抽出する動作を含むことを特徴とする請求項に記載の方法。
  6. 前記応答ドキュメントを識別する動作は、前記パズル入力と結合され、パズル入力との結合物がハッシュされることによって、複数の固定ビット位置に指定値を有するハッシュ値になるような、応答ドキュメントを識別する動作を含むことを特徴とする請求項に記載の方法。
  7. 前記応答ドキュメントを識別する動作は、前記パズル入力に連結され、前記パズル入力、および前記応答ドキュメントとパズル入力との連結物がハッシュされると、少なくとも第1の指定数のビット位置にゼロを有するハッシュ値になるような、応答ドキュメントを識別する動作を含むことを特徴とする請求項に記載の方法。
  8. 前記応答ドキュメントを識別する動作は、前記パズル入力に連結され、前記応答ドキュメントとパズル入力の連結物がハッシュされると、第1の複数のビット位置に指定ビット値を有し、第2の複数のビット位置に、他の応答ドキュメントから得られたハッシュの対応するビット値に等しいビット値を有するハッシュ値になるような、応答ドキュメントを識別する動作を含むことを特徴とする請求項に記載の方法。
  9. 前記応答ドキュメントを識別する動作は、前記パズル入力に連結され、前記応答ドキュメントとパズル入力の連結物がハッシュされると、ハッシュ値のプレフィックスの各ビット位置に指定値を有し、ハッシュ値のサフィックスに、他の応答ドキュメントから得られた対応するハッシュビット値に等しい値を有するハッシュ値になるような、応答ドキュメントを識別する動作を含むことを特徴とする請求項に記載の方法。
  10. 前記応答ドキュメントを識別する動作はパズルハッシュアルゴリズムを使用する動作を含み、前記パズルハッシュアルゴリズムが、特に、前記パズルハッシュアルゴリズムのハードウェアの加速の実装を一層困難にするように設計されている動作を含むことを特徴とする請求項に記載の方法。
  11. 前記応答ドキュメントを識別する動作は、SHA−1副関数の標準的な適用を変更するハッシュアルゴリズムを使って応答ハッシュ値を計算する動作を含むことを特徴とする請求項に記載の方法。
  12. 前記識別された応答ドキュメントおよび前記電子メッセージデータを含む電子メッセージを受信側コンピュータシステムに送信する動作は、複数の応答ドキュメントを含む電子メッセージを送信する動作を含むことを特徴とする請求項に記載の方法。
  13. 前記送信コンピュータシステムは、サーバに問い合わせて、前記受信コンピュータシステムが計算パズルへの応答を確認するように構成されているかどうかを判断する動作と、
    前記受信コンピュータシステムの電子メッセージ構成情報を含む1つまたは複数のDNS TXTレコードを受信する動作とをさらに実行することを特徴とする請求項に記載の方法。
  14. 前記サーバに問い合わせる動作は、前記送信コンピュータシステムが電子メール送信ポリシー証明書をサポートしていないことに応答してサーバに問い合わせる動作を含むことを特徴とする請求項12に記載の方法。
  15. 前記1つまたは複数のDNS TXTレコードを受信する動作は、前記電子メッセージ構成情報をXML命令に符号化している1つまたは複数のDNS TXTレコードを受信する動作を含むことを特徴とする請求項12に記載の方法。
  16. 1つまたは複数の送信コンピュータシステムにネットワーク接続可能な受信コンピュータシステムであって、電子メッセージを前記送信コンピュータシステムから受信するように構成されている1つまたは複数の受信メッセージサーバを含む受信コンピュータシステムにおいて、送信メッセージサーバが電子メッセージを送信する前に計算パズルを解決したかどうかを判断するための方法であって、前記受信コンピュータシステムは、
    電子メッセージデータおよび応答ドキュメントを含む電子メッセージを受信する動作と、
    前記メッセージに含まれる状態情報の異なる部分から初期ドキュメントを再生する動作と、
    前記電子メッセージの1つまたは複数の構成要素からパズル入力を再計算する動作であって、前記1つまたは複数の構成要素が、メッセージの本体、メッセージの添付物、およびメッセージのヘッダから選択され、パズル入力の生成が構成要素の部分を抽出すること、構成要素の部分をハッシュすること、および構成要素の部分を連結することのうち1つまたは複数を含む動作と、
    応答ドキュメントとパズル入力ハッシュ値との結合から計算される確認ハッシュ値が前記計算パズルの解決を表す応答値であるかどうかを判断する動作であって、前記確認ハッシュ値がパズルハッシュアルゴリズムを使って計算される動作と、
    メッセージ分類モジュールが前記受信電子メッセージを分類する場合にさらに信頼性の高い決定を行うことが可能なように、前記判断の結果を前記メッセージ分類モジュールに供給する動作と
    を実行することを特徴とする方法。
  17. 前記電子メッセージデータおよび応答ドキュメントを含む電子メッセージを受信する動作は、電子メールメッセージを受信する動作を含むことを特徴とする請求項16に記載の方法。
  18. 前記電子メッセージデータおよび応答ドキュメントを含む電子メッセージを受信する動作は、複数の応答ドキュメントを含む電子メッセージを受信する動作を含むことを特徴とする請求項16に記載の方法。
  19. 前記電子メッセージに含まれる状態情報の異なる部分から初期ドキュメントを再生する動作は、前記電子メッセージデータのフィールドからデータを抽出する動作であって、前記フィールドが、差出人フィールド、宛先フィールド、開始時刻フィールド、終了時刻フィールド、日付フィールド、本文フィールド、添付物フィールド、件名フィールド、およびメッセージIDフィールドから選択される動作を含むことを特徴とする請求項16に記載の方法。
  20. 前記電子メッセージに含まれる状態情報の異なる部分から初期ドキュメントを再生する動作は、前記電子メッセージデータからデータを抽出する動作であって、前記データがテキストデータ、グラフィカルデータ、ユニフォームリソース識別子(“URI”)、または実行可能データである動作を含むことを特徴とする請求項16に記載の方法。
  21. 前記電子メッセージの1つまたは複数の構成要素からパズル入力を再計算する動作は、変更済みハッシュアルゴリズムを適用する動作を含み、前記変更済みハッシュアルゴリズムが、特に、変更済みハッシュアルゴリズムの効率を向上させるために使用可能なようにハードウェアの加速の実装を一層困難にするように設計されている動作を含むことを特徴とする請求項16に記載の方法。
  22. 前記電子メッセージの1つまたは複数の構成要素からパズル入力を再計算する動作は、SHA−1副関数の標準的な適用を変更するハッシュアルゴリズムを適用する動作を含むことを特徴とする請求項16に記載の方法。
  23. 前記応答ドキュメントとパズル入力との結合から計算される確認ハッシュ値が前記計算パズルの解決を表す応答値であるかどうかを判断する動作は、前記確認ハッシュ値が該確認ハッシュの中に散在する複数の固定ビット位置に指定値を有するかどうかを判断する動作を含むことを特徴とする請求項16に記載の方法。
  24. 前記応答ドキュメントとパズル入力との結合から計算される確認ハッシュ値が前記計算パズルの解決を表す応答値であるかどうかを判断する動作は、前記確認ハッシュ値が、第1の複数のビット位置に指定値を有し、第2の複数のビット位置に他の応答ドキュメントから得られたその他の確認ハッシュ値に等しい値を有しているかどうかを判断する動作を含むことを特徴とする請求項16に記載の方法。
  25. 1つまたは複数の受信コンピュータシステムにネットワーク接続可能な送信コンピュータシステムで使用するためのコンピュータ可読媒体であって、前記送信コンピュータシステムは前記受信コンピュータシステムに電子メッセージを送信するように構成された送信メッセージサーバを含み、前記コンピュータ可読媒体は、前記メッセージサーバが電子メッセージを前記受信側コンピュータシステムに送信する前に計算リソースを消費して計算パズルを解決したことを、前記送信側コンピュータシステムに示すための方法を実施し、コンピュータ実行可能命令が記憶され、前記コンピュータ実行可能命令は、プロセッサによって実行されると、前記送信コンピュータシステムに、
    電子メッセージに含まれるべき電子メッセージデータを受信すること、
    状態情報の異なる部分から初期ドキュメントを生成すること、
    前記電子メッセージの1つまたは複数の構成要素からパズル入力を生成することであって、前記1つまたは複数の構成要素が、少なくともメッセージの本体、メッセージの添付物、およびメッセージのヘッダから選択され、パズル入力の生成が構成要素の部分を抽出すること、構成要素の部分をハッシュすること、構成要素の部分を連結することのうち1つまたは複数を含むこと、
    応答ドキュメントとパズル入力ハッシュ値との結合から計算される応答ハッシュ値が計算パズルの応答値になるように、前記応答ドキュメントを識別することであって、前記応答値がパズルハッシュアルゴリズムを使って計算されること、および 前記識別された応答ドキュメントおよび前記電子メッセージデータを含む電子メッセージを前記受信側コンピュータシステムに送信すること を実行させることを特徴とするコンピュータ可読媒体。
  26. 1つまたは複数の送信コンピュータシステムにネットワーク接続可能な受信コンピュータシステムで使用するためのコンピュータ可読媒体であって、前記受信コンピュータシステムは前記送信コンピュータシステムから電子メッセージを受信するように構成された1つまたは複数の受信メッセージサーバを含み、前記コンピュータ記憶媒体は、送信メッセージサーバが電子メッセージを送信する前に計算パズルを解決したかどうかを判断するための方法を実施し、コンピュータ実行可能命令が記憶され、前記コンピュータ実行可能命令は、プロセッサによって実行されると、前記受信コンピュータシステムに、
    電子メッセージデータおよび応答ドキュメントを含む電子メッセージを受信すること、
    前記メッセージに含まれる状態情報の異なる部分から初期ドキュメントを再生すること、
    前記電子メッセージの1つまたは複数の構成要素からパズル入力を再計算することであって、前記1つまたは複数の構成要素が、メッセージの本体、メッセージの添付物、およびメッセージのヘッダから選択され、パズル入力の生成が構成要素の部分を抽出すること、構成要素の部分をハッシュすること、および構成要素の部分を連結することのうち1つまたは複数を含むこと、
    応答ドキュメントとパズル入力ハッシュ値との結合から計算される確認ハッシュ値が前記計算パズルの解決を表す応答値であるかどうかを判断することであって、前記確認ハッシュ値がパズルハッシュアルゴリズムを使って計算されること、および メッセージ分類モジュールが前記受信電子メッセージを分類する場合にさらに信頼性の高い決定を行うことが可能なように、前記判断の結果を前記メッセージ分類モジュールに供給することを実行させる ことを特徴とするコンピュータ可読媒体。
  27. 1つまたは複数の受信コンピュータシステムにネットワーク接続可能な送信コンピュータシステムであって電子メッセージを前記受信コンピュータシステムに送信するように構成されている送信コンピュータシステムにおいて、前記受信コンピュータシステムに、前記送信コンピュータシステムが前記受信コンピュータシステムからの接続応答を受信していることを示すための方法であって、
    接続開始データを受信コンピュータシステムに送信する動作であって、前記接続開始データが送信アドレスとみなされるアドレスを含む動作と、
    アドレス検証データを含む変更済み接続確立データを受信する動作と、
    前記アドレス検証データに基づいて適切な接続応答を生成する動作と、
    前記適切な接続応答データを前記受信コンピュータシステムに送信する動作と
    を含むことを特徴とする方法。
  28. 前記接続開始データを受信コンピュータシステムに送信する動作は、送信制御プロトコル接続開始データを送信する動作を含むことを特徴とする請求項27に記載の方法。
  29. 前記接続開始データを受信コンピュータシステムに送信する動作は、SMTP HELOコマンドまたはSMTP EHLOコマンドを送信する動作を含むことを特徴とする請求項27に記載の方法。
  30. 前記アドレス検証データを含む変更済み接続確立データを受信する動作は、変更済み接続確立データを受信する動作であって、前記変更済み接続確立データが、接続開始データ再送信要求、および複数のネットワークパケットに分割された接続確立データから選択される動作を含むことを特徴とする請求項27に記載の方法。
  31. 前記アドレス検証データを含む変更済み接続確立データを受信する動作は、ランダムな文字列を含むHELO応答コマンドまたはEHLO応答コマンドを受信する動作を含むことを特徴とする請求項27に記載の方法。
  32. 前記アドレス検証データに基づいて適切な接続応答を生成する動作は、適切な接続応答を生成する動作であって、前記適切な接続応答が、前記接続開始データを再送信すること、および適切な確認連番と共にネットワークパケットを送信することから選択される動作を含むことを特徴とする請求項27に記載の方法。
  33. 前記アドレス検証データに基づいて適切な接続応答を生成する動作は、拡張NOOPコマンドにランダムな文字列を含める動作を含み、前記ランダムな文字列が、前記接続開始データに応答して前記受信コンピュータシステムから受信されることを特徴とする請求項27に記載の方法。
  34. 前記適切な接続応答データを前記受信コンピュータシステムに送信する動作は、ランダムな文字列を含む拡張NOOPコマンドを送信する動作を含み、前記ランダムな文字列が、前記接続開始データに応答して前記受信コンピュータシステムから受信されることを特徴とする請求項27に記載の方法。
  35. 1つまたは複数の送信コンピュータシステムにネットワーク接続可能な受信コンピュータシステムであって電子メッセージを前記送信コンピュータシステムから受信するように構成されている受信コンピュータシステムにおいて、前記受信コンピュータシステムが、接続確立応答を送信コンピュータシステムが受信しているかどうかを検出するための方法であって、前記受信コンピュータシステムは、
    接続開始データを送信コンピュータシステムから受信する動作であって、前記接続開始データが送信アドレスとみなされるアドレスを含む動作と、
    アドレス検証データを含むように標準接続確立データを変更する動作と、
    前記変更済み接続確立データを前記送信アドレスとみなされるアドレスに送信する動作と、
    前記送信アドレスとみなされるアドレスに対応するコンピュータシステムが前記アドレス検証データに適切に応答したかどうかを判断する動作と
    を実行することを特徴とする方法。
  36. 前記接続開始データを送信コンピュータシステムから受信する動作は、送信制御プロトコル接続開始データを受信する動作を含むことを特徴とする請求項35に記載の方法。
  37. 前記接続開始データを送信コンピュータシステムから受信する動作は、SMTP HELOコマンドまたはSMTP EHLOコマンドを受信する動作を含むことを特徴とする請求項35に記載の方法。
  38. 前記アドレス検証データを含むように標準接続確立データを変更する動作は、送信制御プロトコル接続開始データに対する標準応答を、前記送信制御プロトコル接続開始データの再送信を要求するように変更する動作を含むことを特徴とする請求項35に記載の方法。
  39. 前記アドレス検証データを含むように標準接続確立データを変更する動作は、送信制御プロトコル接続確立データを複数のネットワークパケットに分割する動作を含むことを特徴とする請求項35に記載の方法。
  40. 前記アドレス検証データを含むように標準接続確立データを変更する動作は、SMTP HELO応答コマンドまたはSMTP EHLO応答コマンドにランダムな文字列を含める動作を含むことを特徴とする請求項35に記載の方法。
  41. 前記変更済み接続確立データを前記送信アドレスとみなされるアドレスに送信する動作は、変更済み送信制御プロトコル接続確立データをインターネットプロトコルアドレスとみなされるアドレスに送信する動作を含むことを特徴とする請求項35に記載の方法。
  42. 前記変更済み接続確立データを前記送信アドレスとみなされるアドレスに送信する動作は、ランダムな文字列を含むSMTP HELO応答コマンドまたはSMTP EHLO応答コマンドを送信する動作を含むことを特徴とする請求項35に記載の方法。
  43. 前記送信アドレスとみなされるアドレスに対応するコンピュータシステムが前記アドレス検証データに適切に応答したかどうかを判断する動作は、前記送信アドレスとみなされるアドレスが変更済み送信制御プロトコル接続確立データに適切に応答したかどうかを判断する動作を含むことを特徴とする請求項35に記載の方法。
  44. 前記送信アドレスとみなされるアドレスに対応するコンピュータシステムが前記アドレス検証データに適切に応答したかどうかを判断する動作は、前記送信アドレスとみなされるアドレスが変更済み送信制御プロトコル接続確立データに適切に応答したかどうかを判断する動作を含むことを特徴とする請求項35に記載の方法。
  45. 前記送信アドレスとみなされるアドレスに対応するコンピュータシステムが前記アドレス検証データに適切に応答したかどうかを判断する動作は、前記送信アドレスとみなされるアドレスが、前記アドレス検証データ中に含まれていたランダムな文字列を含む拡張NOOPコマンドで応答したかどうかを判断する動作を含むことを特徴とする請求項35に記載の方法。
  46. 前記受信コンピュータシステムは、
    前記送信アドレスとみなされるアドレスが前記アドレス検証データに適切に応答しない場合に、前記送信アドレスとみなされるアドレスに対応するDNSレコードセットについてのDNSクエリを発行する動作と、
    前記送信アドレスとみなされるアドレスがアドレス検証データの使用をサポートしているか否かを示すXML命令を含む、1つまたは複数のTXTレコードを受信する動作と をさらに実行することを特徴とする請求項35に記載の方法。
  47. 1つまたは複数の送信コンピュータシステムにネットワーク接続可能な受信コンピュータシステムであって、電子メッセージを前記送信コンピュータシステムから受信するように構成されている1つまたは複数の受信メッセージサーバを含む受信コンピュータシステムにおいて、送信メッセージサーバが送信コンピュータシステムのために電子メッセージを送信することを許可されているかどうかを判断するための方法であって、前記受信コンピュータシステムは、
    前記送信コンピュータシステムから送信されたとみなされる電子メッセージを受信する動作と、
    前記電子メッセージの複数のパラメータ値を調べて送信コンピュータシステムに対応する実際の送信側ネットワークアドレスの識別を試みる動作と、
    前記送信コンピュータシステムのために電子メッセージを送信することを許可されているネットワークアドレスのリストについてネームサーバに問い合わせる動作と、
    前記実際の送信側ネットワークアドレスが前記送信コンピュータシステムのために電子メッセージを送信することを許可されているかどうかを判断する動作と、
    メッセージ分類モジュールが前記受信電子メッセージの分類に関してさらに信頼性の高い決定を行うことが可能なように、判断の結果を前記メッセージ分類モジュールに供給する動作と
    を実行することを特徴とする方法。
  48. 前記送信側コンピュータシステムから送信されたとみなされる電子メッセージを受信する動作は、電子メールメッセージを受信する動作を含むことを特徴とする請求項47に記載の方法。
  49. 前記送信コンピュータシステムから送信されたとみなされる電子メッセージを受信する動作は、逆パスパラメータ値を含まない電子メッセージを受信する動作を含むことを特徴とする請求項47に記載の方法。
  50. 前記電子メッセージの複数のパラメータ値を調べて実際の送信側ネットワークアドレスの識別を試みる動作は、前記送信コンピュータシステムに対応するインターネットプロトコルアドレスを識別する動作を含むことを特徴とする請求項47に記載の方法。
  51. 前記電子メッセージの複数のパラメータ値を調べて実際の送信側ネットワークアドレスの識別を試みる動作は、複数のパラメータ値を調べる動作であって、前記複数のパラメータ値の少なくとも1つが、第1の再送信差出人ヘッダの値、再送信差出人アドレスヘッダ中の第1メールボックスの値、差出人ヘッダの値、または差出人アドレスヘッダ中の第1メールボックスの値から選択される動作を含むことを特徴とする請求項47に記載の方法。
  52. 前記送信コンピュータシステムのために電子メッセージを送信することを許可されているネットワークアドレスのリストについてネームサーバに問い合わせる動作は、前記送信コンピュータシステムのために電子メッセージを送信することを許可されているネットワークアドレスのリストについてドメイン名サービスサーバに問い合わせる動作を含むことを特徴とする請求項47に記載の方法。
  53. 前記送信コンピュータシステムのために電子メッセージを送信することを許可されているネットワークアドレスのリストについてドメイン名サービスサーバに問い合わせる動作は、前記送信コンピュータシステムのために電子メールメッセージを送信することを許可されているインターネットプロトコルアドレスのリストについてドメイン名サービスサーバに問い合わせる動作を含むことを特徴とする請求項52に記載の方法。
  54. 前記受信コンピュータシステムは、前記送信コンピュータシステムのために電子メッセージを送信することを許可されているネットワークアドレスのリストを受信する動作をさらに実行することを特徴とする請求項47に記載の方法。
  55. 前記電子メッセージを送信することを許可されているネットワークアドレスのリストを受信する動作は、1つまたは複数のDNS TXTレコードを受信する動作を含むことを特徴とする請求項54に記載の方法。
  56. 前記電子メッセージを送信することを許可されているネットワークアドレスのリストを受信する動作は、前記ネットワークアドレスのリストをXML命令に符号化する1つまたは複数のDNS TXTレコードを受信する動作を含むことを特徴とする請求項55に記載の方法。
  57. 前記ネットワークアドレスのリストをXML命令に符号化している1つまたは複数のDNS TXTレコードを受信する動作は、連結されてXMLインスタンスになるように複数のDNS TXTレコードにわたっている電子メッセージ構成情報を受信する動作を含むことを特徴とする請求項56に記載の方法。
  58. 前記連結されてXMLインスタンスになるように複数のDNS TXTレコードにわたっている電子メッセージ構成情報を受信する動作は、複数のDNS TXTレコード中に含まれている前記XML命令をどのように順序付けるべきかを示す順序付けデータを含む、前記複数のDNS TXTレコードを受信する動作を含むことを特徴とする請求項57に記載の方法。
  59. 前記受信コンピュータシステムは、前記順序付けデータに従ってXML命令を連結することによりXMLインスタンスを生成する動作をさらに実行することを特徴とする請求項58に記載の方法。
  60. 前記実際の送信側ネットワークアドレスが前記送信コンピュータシステムのために電子メッセージを送信することを許可されているかどうかを判断する動作は、前記実際の送信側ネットワークアドレスが受信した許可ネットワークアドレスのリストに含まれていることを判断する動作を含むことを特徴とする請求項47に記載の方法。
  61. 前記実際の送信側ネットワークアドレスが前記送信コンピュータシステムのために電子メッセージを送信することを許可されているかどうかを判断する動作は、前記実際の送信側ネットワークアドレスが受信した許可ネットワークアドレスのリストに含まれていないことを判断する動作を含むことを特徴とする請求項47に記載の方法。
  62. 前記判断の結果をメッセージ分類モジュールに供給する動作は、前記実際の送信側ネットワークアドレスが前記送信コンピュータシステムのために電子メッセージを送信することを許可されていることを前記メッセージ分類モジュールに示す動作を含むことを特徴とする請求項47に記載の方法。
  63. 前記判断の結果をメッセージ分類モジュールに供給する動作は、前記実際の送信側ネットワークアドレスが前記送信コンピュータシステムのために電子メッセージを送信することを許可されていないことを前記メッセージ分類モジュールに示す動作を含むことを特徴とする請求項47に記載の方法。
  64. 1つまたは複数の受信コンピュータシステムにネットワーク接続可能な送信コンピュータシステムであって電子メッセージを前記受信コンピュータシステムに送信するように構成されている送信コンピュータシステムにおいて使用するためのコンピュータ可読媒体であって、受信コンピュータシステムに、前記送信コンピュータシステムが前記受信コンピュータシステムからの接続応答を受信していることを示すための方法を実施し、コンピュータ実行可能命令が記憶され、前記コンピュータ実行可能命令は、プロセッサによって実行されると、前記送信コンピュータシステムに、
    送信アドレスとみなされるアドレスを含む接続開始データを受信コンピュータシステムに送信すること、
    アドレス検証データを含む変更済み接続確立データを受信すること、
    前記アドレス検証データに基づいて、適切な接続応答を生成すること、および
    前記適切な接続応答データを前記受信コンピュータシステムに送信すること
    を実行させることを特徴とするコンピュータ可読媒体。
  65. プロセッサによって実行されるとアドレス検証データを含む変更済み接続確立データを前記送信コンピュータシステムに受信させるコンピュータ実行可能命令は、プロセッサによって実行されると、ランダムな文字列を含むSMTP HELOコマンドまたはSMTP EHLOコマンドを前記送信コンピュータシステムに受信させるコンピュータ実行可能命令を含むことを特徴とする請求項64に記載のコンピュータ可読媒体。
  66. プロセッサによって実行されると前記送信コンピュータシステムに、前記適切な接続応答データを前記受信コンピュータシステムへ送信させるコンピュータ実行可能命令は、プロセッサによって実行されると、前記送信コンピュータシステムに、前記受信アドレス検証データに含まれていたランダムな文字列を含む拡張SMTP NOOPコマンドを送信させるコンピュータ実行可能命令を含むことを特徴とする請求項64に記載のコンピュータ可読媒体。
  67. 1つまたは複数の送信コンピュータシステムにネットワーク接続可能な受信コンピュータシステムであって電子メッセージを前記送信コンピュータシステムから受信するように構成されている受信コンピュータシステムにおいて使用するためのコンピュータ可読媒体であって、前記受信コンピュータシステムが、接続確立応答を前記送信コンピュータシステムが受信しているかどうかを検出するための方法を実施し、コンピュータ実行可能命令が記憶され、前記コンピュータ実行可能命令は、プロセッサによって実行されると、前記受信コンピュータシステムに、
    送信アドレスとみなされるアドレスを含む接続開始データを送信コンピュータシステムから受信すること、
    アドレス検証データを含むように標準接続確立データを変更すること、
    前記変更済み接続確立データを前記送信アドレスとみなされるアドレスに送信すること、および 前記送信アドレスとみなされるアドレスに対応するコンピュータシステムが前記アドレス検証データに適切に応答したかどうかを判断すること
    を実行させることを特徴とするコンピュータ可読媒体。
  68. プロセッサによって実行されると、前記受信コンピュータシステムに、アドレス検証データを含むように標準接続確立データを変更させるコンピュータ実行可能命令は、プロセッサによって実行されると、前記受信コンピュータシステムに、ランダムな文字列をSMTP HELOコマンドまたはSMTP EHLOコマンドに含めさせるコンピュータ実行可能命令を含むことを特徴とする請求項67に記載のコンピュータ可読媒体。
  69. プロセッサによって実行されると、前記受信コンピュータシステムに、前記変更済み接続確立データを前記送信アドレスとみなされるアドレスに送信させるコンピュータ実行可能命令は、プロセッサによって実行されると、前記受信コンピュータシステムに、ランダムな文字列を含むSMTP HELOコマンドまたはSMTP EHLOコマンドを送信させるコンピュータ実行可能命令を含むことを特徴とする請求項67に記載のコンピュータ可読媒体。
  70. コンピュータ実行可能命令が記憶された1つまたは複数のコンピュータ可読媒体であって、該コンピュータ実行可能命令は、プロセッサによって実行されると、前記受信コンピュータシステムに、
    前記送信アドレスとみなされるアドレスが前記アドレス検証データに適切に応答しない場合に、前記送信アドレスとみなされるアドレスに対応するDNSレコードセットについてのDNSクエリを発行すること、および 前記送信アドレスとみなされるアドレスがアドレス検証データの使用をサポートしているか否かを表すXML命令を含む、1つまたは複数のTXTレコードを受信する ことを実行させることを特徴とする請求項67に記載のコンピュータ可読媒体。
  71. 1つまたは複数の送信コンピュータシステムにネットワーク接続可能な受信コンピュータシステムで使用するためのコンピュータ可読媒体であって、前記受信コンピュータシステムは前記送信コンピュータシステムから電子メッセージを受信するように構成された1つまたは複数の受信メッセージサーバを含み、前記コンピュータ記憶媒体は、送信メッセージサーバが送信コンピュータシステムのために電子メッセージを送信することを許可されているかどうかを判断するための方法を実施し、コンピュータ実行可能命令が記憶され、前記コンピュータ実行可能命令は、プロセッサによって実行されると、前記受信コンピュータシステムに、
    前記送信コンピュータシステムから送信されたとみなされる電子メッセージを受信すること、
    前記電子メッセージの複数のパラメータ値を調べて送信コンピュータシステムに対応する実際の送信側ネットワークアドレスの識別を試みること、
    前記送信コンピュータシステムのために電子メッセージを送信することを許可されているネットワークアドレスのリストについてネームサーバに問い合わせること、
    前記実際の送信側ネットワークアドレスが前記送信コンピュータシステムのために電子メッセージを送信することを許可されているかどうかを判断すること、および メッセージ分類モジュールが前記受信電子メッセージの分類に関してさらに信頼性の高い決定を行うことが可能なように、判断の結果を前記メッセージ分類モジュールに供給すること
    を実行させることを特徴とするコンピュータ可読媒体。
  72. プロセッサによって実行されると、前記受信コンピュータシステムに、前記電子メッセージの複数のパラメータ値を調べて実際の送信側ネットワークアドレスの識別を試みさせるコンピュータ実行命令は、プロセッサによって実行されると、前記受信コンピュータシステムに複数のパラメータ値を調べさせるコンピュータ実行可能命令を含み、前記複数のパラメータ値の少なくとも1つが、第1の再送信差出人ヘッダの値、再送信差出人アドレスヘッダ中の第1メールボックスの値、差出人ヘッダの値、または差出人アドレス中の第1メールボックスの値から選択されることを特徴とする請求項71に記載のコンピュータ可読媒体。
  73. コンピュータ実行可能命令が記憶されている1つまたは複数のコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、プロセッサによって実行されると、前記受信コンピュータシステムに、
    前記送信コンピュータシステムのために電子メッセージを送信することを許可されているネットワークアドレスのリストを受信することを実行させる可読媒体をさらに含むことを特徴とする請求項71に記載のコンピュータ可読媒体。
  74. プロセッサによって実行されると、電子メッセージを送信することを許可されているネットワークアドレスのリストを前記受信コンピュータシステムに受信させるコンピュータ可読命令は、プロセッサによって実行されると、前記受信コンピュータシステムに、XML命令を含む1つまたは複数のDNS TXTレコードを受信させるコンピュータ実行可能命令を含むことを特徴とする請求項71に記載のコンピュータプログラム可読媒体。
JP2010118664A 2003-03-12 2010-05-24 不要メッセージおよび受信者側が送信を要求していないメッセージの低減 Expired - Fee Related JP5079844B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US45451703P 2003-03-12 2003-03-12
US60/454,517 2003-03-12
US10/684,020 2003-10-10
US10/684,020 US7398315B2 (en) 2003-03-12 2003-10-10 Reducing unwanted and unsolicited electronic messages by preventing connection hijacking and domain spoofing
US10/683,624 2003-10-10
US10/683,624 US7552176B2 (en) 2003-03-12 2003-10-10 Reducing unwanted and unsolicited electronic messages by exchanging electronic message transmission policies and solving and verifying solutions to computational puzzles

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004071769A Division JP4537738B2 (ja) 2003-03-12 2004-03-12 不要メッセージおよび受信者側が送信を要求していないメッセージの低減のための方法及びコンピュータ可読媒体

Publications (2)

Publication Number Publication Date
JP2010198636A true JP2010198636A (ja) 2010-09-09
JP5079844B2 JP5079844B2 (ja) 2012-11-21

Family

ID=32777038

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004071769A Expired - Lifetime JP4537738B2 (ja) 2003-03-12 2004-03-12 不要メッセージおよび受信者側が送信を要求していないメッセージの低減のための方法及びコンピュータ可読媒体
JP2010118664A Expired - Fee Related JP5079844B2 (ja) 2003-03-12 2010-05-24 不要メッセージおよび受信者側が送信を要求していないメッセージの低減

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004071769A Expired - Lifetime JP4537738B2 (ja) 2003-03-12 2004-03-12 不要メッセージおよび受信者側が送信を要求していないメッセージの低減のための方法及びコンピュータ可読媒体

Country Status (6)

Country Link
EP (2) EP1986144A3 (ja)
JP (2) JP4537738B2 (ja)
KR (3) KR101043550B1 (ja)
CN (1) CN1532758B (ja)
AT (1) ATE402454T1 (ja)
DE (1) DE602004015178D1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552176B2 (en) 2003-03-12 2009-06-23 Microsoft Corporation Reducing unwanted and unsolicited electronic messages by exchanging electronic message transmission policies and solving and verifying solutions to computational puzzles
CN101273345B (zh) * 2005-08-09 2012-07-18 信息标准有限责任公司 通过密钥产生和比较来防止未请求及不需要的电子消息传送的系统和方法
DE102005046965B3 (de) * 2005-09-30 2007-02-15 Siemens Ag Verfahren und Anordnung zur Verifikation einer im Zuge einer Verbindungsanfrage zum Zweck des Aufbaus einer Sprach-Kommunikationsverbindung übermittelten Absenderadresse in einem IP-Kommunikationsnetzwerk
US8121624B2 (en) * 2006-07-25 2012-02-21 Alcatel Lucent Message spoofing detection via validation of originating switch
US8935766B2 (en) 2011-01-19 2015-01-13 Qualcomm Incorporated Record creation for resolution of application identifier to connectivity identifier
KR20170003112A (ko) 2015-06-30 2017-01-09 삼성전기주식회사 전력 반도체 모듈 및 그 제조 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009698A1 (en) * 2001-05-30 2003-01-09 Cascadezone, Inc. Spam avenger
JP2003036230A (ja) * 2001-07-23 2003-02-07 Kobo Itonaga 電子メール等適切通信方法及び装置
JP2003150513A (ja) * 2001-11-14 2003-05-23 Nippon Telegr & Teleph Corp <Ntt> 迷惑メール防止方法及びその実施装置並びにその処理プログラムと記録媒体

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1010283B1 (en) * 1997-07-24 2006-11-29 Tumbleweed Communications Corp. E-mail firewall with stored key encryption/decryption
US6199102B1 (en) * 1997-08-26 2001-03-06 Christopher Alan Cobb Method and system for filtering electronic messages
US6393465B2 (en) 1997-11-25 2002-05-21 Nixmail Corporation Junk electronic mail detector and eliminator
US6321267B1 (en) 1999-11-23 2001-11-20 Escom Corporation Method and apparatus for filtering junk email
KR100316812B1 (ko) * 2000-03-09 2001-12-22 박춘우 온라인 광고를 위한 전자 우표 제공 시스템 및 그 운영 방법
DE10115428A1 (de) * 2001-03-29 2002-10-17 Siemens Ag Verfahren zum Erkennen einer unerwünschten E-Mail
JP2002334162A (ja) * 2001-05-11 2002-11-22 Yoshitsugu Tsujita 本人及び事物情報管理システム
KR100434672B1 (ko) * 2001-08-24 2004-06-07 김성주 약정코드를 이용한 스팸메일 차단방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009698A1 (en) * 2001-05-30 2003-01-09 Cascadezone, Inc. Spam avenger
JP2003036230A (ja) * 2001-07-23 2003-02-07 Kobo Itonaga 電子メール等適切通信方法及び装置
JP2003150513A (ja) * 2001-11-14 2003-05-23 Nippon Telegr & Teleph Corp <Ntt> 迷惑メール防止方法及びその実施装置並びにその処理プログラムと記録媒体

Also Published As

Publication number Publication date
EP1457905A2 (en) 2004-09-15
ATE402454T1 (de) 2008-08-15
DE602004015178D1 (de) 2008-09-04
EP1986144A2 (en) 2008-10-29
CN1532758B (zh) 2011-02-23
EP1457905A3 (en) 2005-06-08
CN1532758A (zh) 2004-09-29
KR20040081345A (ko) 2004-09-21
KR20110009729A (ko) 2011-01-28
JP4537738B2 (ja) 2010-09-08
EP1986144A3 (en) 2009-02-04
KR20120049194A (ko) 2012-05-16
JP5079844B2 (ja) 2012-11-21
KR101043550B1 (ko) 2011-06-21
EP1457905B1 (en) 2008-07-23
KR101213935B1 (ko) 2012-12-20
KR101238527B1 (ko) 2013-02-28
JP2004280827A (ja) 2004-10-07

Similar Documents

Publication Publication Date Title
US7921173B2 (en) Reducing unwanted and unsolicited electronic messages by exchanging electronic message transmission policies and solving and verifying solutions to computational puzzles
US7398315B2 (en) Reducing unwanted and unsolicited electronic messages by preventing connection hijacking and domain spoofing
US7571319B2 (en) Validating inbound messages
US7650383B2 (en) Electronic message system with federation of trusted senders
KR101149958B1 (ko) 이메일을 사용하는 공개 정보의 인증된 교환
KR101150094B1 (ko) 사용자 프로필 정보를 공개하는 방법
US9894039B2 (en) Signed ephemeral email addresses
JP5079844B2 (ja) 不要メッセージおよび受信者側が送信を要求していないメッセージの低減
US20090044006A1 (en) System for blocking spam mail and method of the same
EP3921993A1 (en) Method and system for processing data packages
JP2008109380A (ja) 電子メール送受信システム
US9258125B2 (en) Generating evidence of web services transactions
Hildebrand et al. Entity Capabilities
JP2008198190A (ja) 電子メールメッセージを安全に交換する方法及びシステム
JP2006244477A (ja) 拡張ポイントによるメッセージへのアクセスを規制するためのシステムおよび方法
JP2009182749A (ja) 電子メール配信装置、電子メール配信方法および電子メール配信プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120406

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120706

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120824

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120829

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5079844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees