ドメインキー

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ドメインキー(DomainKeys)はメール発信者のドメインと通信内容の完全性を検証するために設計されたインターネット・メールの認証システムである。DomainKeysの仕様は、ドメインキー・アイデンティファイド・メール(DKIM: DomainKeys Identified Mail)と呼ばれる拡張プロトコルを作るためにアイデンティファイド・インターネット・メール(IIM: Identified Internet Mail)の側面を取り入れた。DomainKeysとIIMを併せた仕様は、IETF標準化提案(Proposed Standard)へ規格を導いたIETFワーキング・グループのための土台である。

DKIM標準は2007年5月に発行された。DomainKeys草案も同時に"歴史的"(historical)状態として発行された。

目次

概説 [編集]

DomainKeysとは、電子メールの認証技術である。その他の方法と異なり、DomainKeysは署名するメール転送エージェント(MTA: Mail Transfer Agent)から検証するMTAまで、ほぼエンド・ツー・エンドの完全性を提供する。多くの場合、署名するMTAが発信者に代わり、また検証するMTAが受信者に代わり機能する。DomainKeysは、Historic(歴史的) RFC 4870に定められている。RFC 4870はStandards Track(標準化過程) RFC 4871「DomainKeys Identified Mail (DKIM) Signatures」によって廃止された。

DomainKeysは、RFC 5321で定められたSMTPのエンベロープ部ではなく、RFC 5322で定められた通信内容(つまり送信されたメールデータ、メールヘッダ、メール本文)に対して機能するため、Simple Mail Transfer Protocol(SMTP)による配送経路には依存しない。

DomainKeysは迷惑メールの発信は防止しない、むしろ、より容易に悪用の追跡と発見を可能にするという事に注意する事。偽造も防止する能力は、メールの発信者と同様に受信者にも利益が有り、いくつかの電子メールクライアントはDomainKeysに対応している。

2004年以降、Yahooは外部へ送り出す全てのメールにDomainKeysの署名をしており、また外部から届く全てのメールを検証している。2005年現在、Yahooが受信する3億通以上/日のメールがDomainKeysにより検証されている、とYahooは報告している。

実際にはYahooが実施する1ヶ月には、Gmailサービスの利用者から送信されるメールに署名するために、GoogleもDomainKeysを採用している。[1]

動作方法 [編集]

DomainKeysは、メールの内容に対するデジタル署名データを含む「DomainKey-Signature」というメールヘッダを追加する。標準の認証機構は、メッセージ・ダイジェストとしてSHA-1公開鍵暗号方式としてRSAを用い、Base64を用いて暗号化されたハッシュデータをエンコードする。

その次に受信側のSMTPサーバは、メールの発信元ドメイン名、文字列「_domainkey」、そしてセレクタをメールヘッダから取り出し、DNSを検索するために用いる。DNSから返されたデータには、そのドメインの公開鍵が含まれる。次に受信者は、「DomainKey-Signature:」ヘッダの直後から、ヘッダ中のメッセージ・ダイジェストを復号し、また同時に受信メール本文のメッセージ・ダイジェストを再計算する事ができる。もしその2つの値が一致したら、対象のメールが、そのメールの発信元と言われているドメインで作られた物である事、また配送中に改竄されていないという事が、暗号的に立証される。

開発 [編集]

DomainKeysはYahooのMark Delanyによって設計された。その他多数の人々が意見を寄せ、プログラムを試作した。その中には、qmailコミュニティーのRuss NelsonsendmailEric Allman、そしてASRGJohn R. Levineが含まれる。

DomainKeysは米国特許アメリカ合衆国特許第6,986,049号として保護され、Yahooに割り当てられた。Yahooは二種類のライセンス(1. 従来から有りオープンソースフリーソフトウェアのプログラムに適するように設計された、無料、非独占的、再許諾可能な企業指向の特許ライセンス、2. DKIM IETFワーキング・グループの目的のためのGPL 2.0)の下でDomainKeysを発表した。

長所 [編集]

DomainKeysにはメール受信者にとって主に三つの長所が有る。

  • メールの発信元ドメインを明確に特定し、ドメインを基にしたブラックリストとホワイトリストをより効果的にする事を可能にする。これはフィッシング攻撃をより容易に発見する事も期待できる。
  • エンド・ユーザの電子メールクライアント(MUA: Mail User Agent)かISPのメール転送エージェントにより、詐称されたメールをその場で破棄する事を可能にする。
  • 不正なドメインの所有者をより容易に追跡する事を可能にする。

メール送信者にとって外部へ送り出すメールを認証する動機が有る。

  • 送信元ドメインを詐称するメールを自動的に捨てるために、メール受信者がDomainKeysシステムを使えば、DomainKeys対応のドメインを騙ったメールの激減を可能にする。
  • その結果、ドメイン所有者は、実際にそのドメインを悪用している者が持つ利用者アカウントに、悪用集団の労力を集中させる事ができる。

迷惑メールフィルタとの併用 [編集]

DomainKeysは認証技術のため、DomainKeys自身が迷惑メールを取り除く訳ではない。しかしながら、DomainKeysが普及する事により、迷惑メールの常套手段である発信者アドレスを詐称する事を妨げる可能性が有る。もし強制的に迷惑メールに正しい発信元ドメインを表示させる事ができれば、ひいてはその他のフィルタ技術はより効果を上げる事ができる。特に発信元ドメインは、迷惑メールをより上手く識別するため連携するレピュテーション(評判、格付け)のデータに使える。DomainKeysは迷惑メールを識別するのではなく、フィルタを通す必要が無いメールを識別し易くする事ができる。もしメールの受信システムに信頼できるホワイトリストが有れば、ホワイトリストに記載された既知の優良ドメインから発信された署名メールはフィルタを通さずに受け取る事ができる。また残りのメールに対してはより積極的にフィルタをかける事ができる。

DomainKeysはフィッシング詐欺に対抗する技術として有効となり得る。何度もフィッシングの標的にされるドメインでは、そのドメインから送信するメールが真正な物である事を表明するために署名を使える。メール受信者は、それらのドメインから届いたメールに署名が無ければ、それは詐称された可能性が高い物であるという目安として扱える。ホワイトリストに載せるドメインをDomainKeysとの連携に値する精度で決定する最良の方法は未解決のままである。DomainKeysの後継であるDKIMでは、送信者に全ての送信メールに自己識別のための署名をさせるセンダー・サイニング・ポリシー(SSP: Sender Signing Policy)と呼ばれる選択機能を持つと考えられるが、SSPの有効性についてはまだ試されていないままである。

互換性 [編集]

DomainKeysは、RFC 5322のメールヘッダとDNSレコードの、任意で設定できる箇所を使い実装されているため、既存の電子メール基盤に下位互換性が有る。具体的には、Domainkeysに対応していない既存の電子メールシステムに対して、DomainKeysは影響を与えない。

DomainKeysは電子メールシステムへのその他の拡張提案、特にSPFS/MIMEメール標準、およびDNSSECと両立できるように設計されていた。DomainKeysはOpenPGP標準とも互換性が有る。

欠点 [編集]

DomainKeysまたはDKIM は発信者と受信者の情報を持つエンベロープ部を署名の対象に含まない。どの暗号ソリューションでも、メッセージの不正な反復(Message Replay Abuse)は懸念事項である。これは大きなドメインからの不正の度合いについて現在の制限を迂回する技術である。メッセージ毎の公開鍵の使用、DNSに対する公開鍵の検索要求の追跡、そして大規模なメーリングリストへの投稿に起因する過大な検索要求や悪人による悪質な問い合わせを取り除く事で、反復は推測する事ができる。またこの問題に関する別の対策との比較は、e-mail authenticationを参照する事。

配送途中の内容改変 [編集]

DomainKeysの問題の1 つは、もし配送途中でメーリングリストサーバなどの転送機能が通信内容を大幅に改変すると署名が無効になり、そのドメインが全メールが署名されているものと指定されていれば、そのメールは拒否されるという事である(その解決策は、既知の転送サーバから届くメールをホワイトリストに載せるか、または転送サーバにおいて署名を検証し、メールを改変し、そしてメールにSender:ヘッダを付加した上で再署名する事である)。しかしながら、多くのドメインは、そこから発信するメールの一部だけが署名されると言う。そのため署名が無い事や検証に失敗する事は、メールを拒否するために必ずしも利用できるとは限らない(その解決策は発信するメール全てに署名する事である)。もし配送中の改変がDomainKey-Signature:ヘッダより前のメールヘッダの追加や修正に伴うだけならば、その署名は依然として有効なものとする。またDomainKeysの仕組みは、署名を無効にせず、メールヘッダとメール本文へ特に限られた改変ができるという特徴を含む。

この制限はDomainKeysとSPFを組み合わせる事で対処できると提案されている。なぜならば、SPFはメールデータの改変に影響されず、また通常はメーリングリストはメーリングリスト自身のSMTPエラーアドレス「Return-Path」を使用するためである。要するにSPFはDomainKeysが苦手とする場所で役立ち、またその逆の場合も同じである。

メールの内容に加筆あるいは改変を施すメーリングリストは、事実上DomainKeysの署名も無効にする。そのような状況ならば、メーリングリストはメーリングリスト自身で通信内容に署名し直す事で、事実上通信文に責任を負うべきである、とYahoo!は提案した。

プロトコルの負荷 [編集]

DomainKeysは、メールサーバを経由し送られる通信内容ごとにデジタル署名を施す事を必要とし、それは結果的にメール配送のためには不要な計算負荷をもたらす。

関連項目 [編集]

外部リンク [編集]