Q.送信ドメイン認証に対応していない相手にメールを送るとどうなりますか?

相手が送信ドメイン認証に対応していない場合、送られたメールは通常のメールと全く同じように処理されます。検証はされないものの、ヘッダーに付与されたDKIMやDomainKeysの電子署名はそのまま相手側から目で確認することができます。

Q.送信ドメイン認証はスパムフィルターの代わりになりますか?

送信ドメイン認証は送信側、受信側双方が対応していない限り検証もできないわけですから、現状の普及率ではスパムフィルターの代わりにはなりません。自分でスパムメールを受け取らないためには別途専用のスパムフィルターが必要です。それについてはお勧めのスパムフィルターもありますので、導入支援のページでご紹介します。

Q.送信ドメイン認証を導入したいのですが、どうしたらいいですか?

自社サーバーで独自ドメインを運用している場合

方法は基本的に二つあります。一つは直接MTAに変更を加えて対応する方法。技術情報ページでSendmailを例にとって説明していますが、MTAによって対応方法は違います。Postfixでもsid-milterdk-milterdkim-milterが使えるようですが、qmailはかなりツギハギだらけになる模様。調べたところ、qmail-dkパッチやqmail-spfパッチはあるものの、DKIM用はどうやらKyle Wheelerという人のDKIM-Wrapperがあるようなのですが、現物はまだ未確認です。この他、もし商用のMTAソフトを使っている場合は、その開発元に対応してもらう以外ありません。



ということで、なかなかMTAに変更を加えて対応するのが難しい場合にお勧めなのが、既存のMTAをそのままに、そこからのSMTPルート上に送信ドメイン認証用のサーバーを構築する方法です。これなら対応が難しいMTAを運用していたとしてもとりあえずそれとは別に構築できますので、その部分だけ外部に委託することも可能です。

レンタルサーバーで独自ドメインを運用している場合

この場合の問題は、(1)どこのサーバーから発信し(SPF、Sender IDの場合)、(2)どこのサーバーで署名し(DKIM、DomainKeysの場合)、そして(3)どのサーバーで受信(受信側認証)するかです。もしレンタルサーバー業者が送信ドメイン認証に対応していればこれらは業者側のサーバーで処理されますが、そうでない場合は何か対応を考えなくてはなりません。



とりあえずレンタルサーバー業者を変えずに、自前で対応するのでもない方法として、上記の全てを処理する送信ドメイン認証用のサーバーを外部に提供して貰うことは技術的に可能ですので、もし詳細をお知りになりたければ導入支援のページからお問い合わせ下さい。

独自ドメインを運用していない場合

この場合は送信ドメイン認証に対応したメールサービスを提供しているISPを探すしかありません。確かBiglobeがDKIMなどにも対応していたと思いますが、その他にもあると思いますので調べてみてください。

Q.送信ドメイン認証の認証結果はどこにどのように表示されるのでしょう?

Authentication-Results:というヘッダーに記述されます。それぞれの認証方法の結果は以下のように表示されます。

【SPF】
Authentication Results認証認証結果意味
spf=pass正しく認証された
spf=neutral詐称されているかどうか判断出来ない
spf=softfail詐称の可能性がある
spf=fail×詐称されている
spf=temperror×なし認証処理エラーのため認証出来ず
spf=permerror×なし認証登録情報に誤りがある



【Sender ID】
Authentication Results認証認証結果意味
sender-id=pass正しく認証された
sender-id=neutral詐称されているかどうか判断出来ない
sender-id=softfail詐称の可能性がある
sender-id=fail×詐称されている
sender-id=temperror×なし認証処理エラーのため認証出来ず
sender-id=permerror×なし認証登録情報に誤りがある


【DKIM】
Authentication Results認証認証結果意味
dkim=pass正しく認証された
dkim=neutral×なし公開鍵が存在しない等の理由で認証出来ず
dkim=softfai詐称の可能性がある
dkim=hardfail×詐称されている
dkim=temperror×なし認証処理エラーのため認証出来ず
dkim=permerror×なしメールに From:, Sender: 等のフィールドが無い


【DomainKeys】
Authentication Results認証認証結果意味
domainkeys=pass正しく認証された
domainkeys=neutral×なし公開鍵が存在しない等の理由で認証出来ず
domainkeys=softfail詐称の可能性がある
domainkeys=hardfail×詐称されている
domainkeys=temperror×なし認証処理エラーのため認証出来ず
domainkeys=permerror×なしメールに From:, Sender: 等のフィールドが無い




Q.送信ドメイン認証は転送やメーリングリストに弱いと聞きましたが?

はい、結論から先に言うと、送信ドメイン技術にもそれぞれ得手不得手があり、これを理解することによって複数を上手く組み合わせるヒントになります。(Sender IDはPRAによる認証を前提に書いています。MFROMの場合はSPFと変わらないのでSPFを読み替えて下さい。)

メール転送の処理※

(※これはあくまでもサーバーレベルのSMTP転送、例えば一つのアドレスから別のアドレスへ転送設定がされているような場合の話です。一旦ユーザーが受け取ったメールを転送ボタンを押して転送するのは技術的には普通の送信なのでこれに含みません。)

SPFの場合、転送により最終的に接続してくるサーバーのIPアドレスが変わるので、基本的には認証に失敗します。ただし、転送サーバーが何らかの理由でSPFレコードに書かれている場合は別ですが、可能性は低いでしょう。

Sender IDの場合、転送サーバーがResent-Fromヘッダーをつけ、そのサーバーのドメインがSender IDに対応していれば認証は成功します。ただし、認証する相手が元々の送信者ではなく、転送者になる点で、主旨が違って来ますが。

DKIMの場合、電子署名はオリジナルの送信者のもので、基本的にはIPアドレスは関係ないので認証に成功します。ただし、署名にReceivedヘッダーを入れた場合は、Receivedヘッダーが変化するので失敗します。RFC4871には電子署名にReceivedヘッダーは含めるべきではない(SHOULD NOT)と書いてあるので通常入れることはありませんが、入れてはならない(MUST NOT)ではないので運用者によっては可能性はゼロではありません。

メーリングリストの処理

SPFの場合、メーリングリストがリストのアドレスをEnvelope-Fromにしていて、そのドメインのSPFレコードにリストのサーバーがあれば認証に成功します。ただし、リストによっては投稿者のアドレスをそのままEnvelope-Fromに通すことも可能なので、その場合はメール転送の場合と同じ理由で失敗します。

Sender IDの場合、ヘッダー上のFromは元々の投稿者のものなので、直接接続してくるリストのサーバーIPアドレスと不整合を起こし、認証に失敗します。ただし、リストのサーバーがSenderやResent-Fromにリストのアドレスを書き込んでくれれば認証できます。

DKIMの場合、電子署名に含めたヘッダーに変更があれば即座に認証失敗となります。多くのメーリングリストがSubjectに通し番号などの変更を加えるため、認証に失敗するケースが多いです。ただし、電子署名にSubjectを入れない、またはリスト自体がSubjectをそのまま通せばこれを回避することも可能です。しかし、本文を変更するようなリストの場合、その回避は難しいです。

Q.送信ドメイン認証に対応したメールソフトはありますか?

今のところはないようです。しかし、仕組みから考えてメールソフト上で電子署名を検証することは可能ですし、それがあれば普及の大きな助けになるかもしれません。誰かが作ってくれるといいのですが。(例えばMソフトさんとか。笑)

Q.Sender IDはマイクロソフトとのライセンス問題で揉めているそうですが。

はい、確かに以前その問題は話題になりました。マイクロソフト社がSender IDの受信側認証を行う場合は同社とのライセンス契約が必要と主張していた問題です。しかし、最終的にこの問題はマイクロソフト社がSender IDに関わる技術をOpen Specification Promiseの下で提供すると発表し、一応の収束を見ています。

マイクロソフト社のOSPページ→http://www.microsoft.com/interop/osp/default.mspx