pen2 の日記

Twitterには長くて書けないことを書きます^^

hatena は今すぐSPF宣言しましょう。

どうやら hatena は SPF宣言してないみたい・・・!!

「え?SPF?なにそれ?何のこと?」ってな方が多いとおもいます。
紫外線から守ってくれる奴ではありません。

SPFとは電子メールの送信ドメイン認証のひとつで、「このドメインからはこのIPアドレスでメール送るよ!」とDNSに書いておく方法です。yahooメールやgmailなどのSPF認証に対応した受信サーバではメールを受信すると、"Envelope From"のドメインでDNS TXTレコードを引きます。ここに送信サーバのIPが列挙してあるので、そことセッションIPを比較すれば、なりすましたメールかどうかを簡単に見分けられると言う技術です。

http://ja.wikipedia.org/wiki/Sender_Policy_Framework

これを宣言していないと「なりすましメール」かどうかの判定ができません。今はまだそれほど問題にはなりませんが、携帯各社はすでにSPFを利用したなりすましメールの判定機能を提供しています。最悪、「なりすましているかどうか分からないメールは捨てる」というロジックを組み込んできてもおかしくありません。

DNSにTXTレコード書くだけなので、送信ドメイン認証のなかでは一番簡単です。今どき、メール送る事業者はSPF設定は必須だといえます。

hatena.com ドメインの gmailでの認証結果ですが、これは「受信ヘッダ」をみるとわかるようになってます。(これをラベリングといいます)

Received-SPF: neutral (google.com: 59.106.108.66 is neither permitted nor denied by best guess record for domain of [email protected]) client-ip=59.106.108.66;

こんな感じに "neutral" になってしまいます。TXTレコード無いから認証できなかったよ・・・と言う意味です。
TXTレコードがあるかないかは、hostコマンドでも簡単に確認できます。

[kazuya@ariel ~] $ host -t txt hatena.com
hatena.com has no TXT record
[kazuya@ariel ~] $ host -t txt hatena.ne.jp
hatena.ne.jp has no TXT record

ちなみに、当たり前ですが Yahoo!メールとかgmailなんかは ちゃんと宣言してます。

[kazuya@ariel ~]$ host -t txt yahoo.co.jp
yahoo.co.jp descriptive text "v=spf1 include:spf.yahoo.co.jp ~all"
[kazuya@ariel ~]$ host -t txt spf.yahoo.co.jp
spf.yahoo.co.jp descriptive text "v=spf1 include:spf01.yahoo.co.jp include:spf02.yahoo.co.jp include:spf03.yahoo.co.jp include:bulk-spf.yahoo.co.jp ~all"

ただ、ここでちょっとマジックがあります。
実は、先ほどレコードがなかった hatena.ne.jp をgmailで受信すると、なぜか認証が成功(pass)します。

Received-SPF: pass (google.com: best guess record for domain of [email protected] designates 59.106.108.66 as permitted sender) client-ip=59.106.108.66;

ぁえ?

これは best guess というSPFのオプション機能で、接続してきたSMTPサーバのセッションIP(59.106.108.66)で逆引きした結果のPTRレコードに、送信元のドメインが含まれていれば 「便宜的に認証成功として取り扱おう」という仕組みです。逆引きIPを設定できるということはそのドメインの所有者の可能性が高いということを利用してるんですね。

この仕組み、gmail ではONになっていますが、Yahoo!メールではOFFになっているようです。SPFを拡大解釈するか否かなので、どっちでも良いと思いますが。

しかし、これだと はてなから来るメールが「認証成功」したり「認証対象外」だったりすると言うことになります。これでは、受信ルールをつくるユーザーは混乱してしまいますよね。

とにかく、SPFさえ設定してくれればはっきりするわけです。
ホッテントリに入ったら対応してくれるんだろうか?どうなんだろ・・・。
うーん。早く設定してください、はてなさ〜ん。