SPF、DKIM の設定

SPF レコードを作成し、DNS に公開して、SPF を始める

SPF レコードを作成します。一番簡単な方法は、前ページの2. で集めたメールサーバーの IPアドレスのリストをそのままレコードに記述することです。たとえば、メールサーバーの IPアドレス

  • x.x.x.x
  • y.y.y.y
  • z.z.z.z

であれば、

example.com IN TXT “v=spf1 ip4:x.x.x.x ip4:y.y.y.y ip4:z.z.z.z -all“

となります。

DNS には、ドメイン名に対して TXT レコードで設定します。

DNS 公開した時点でで SPF による認証が受信側で始まります。公開するまえに十分確認してから公開しましょう。

DKIM を設定する

DKIM は公開鍵暗号化技術を利用した認証方式です。DKIM では、送信側のドメインの DNS サーバーに署名に利用する公開鍵を公開します。そして送信サーバーでメールに電子署名できように設定します。

公開鍵は、次に示す FQDN(Fully Qualified Domain Name:完全修飾ドメイン名)に対する TXT レコードとして公開します。

鍵の長さは、512ビットから2048ビットをサポートしている。RFC では2048ビットより大きな鍵を利用する場合もあるとされています、実際には DNS プロトコルの512バイトにうまく収まる最も長い鍵として2048ビットまでが現実的であると説明されています。

また、1024ビットより短い鍵では、オフラインでの解読行為に対して脆弱である場合があります。

より多くのサイトにて利用できるように考えて、DKIM での電子署名では、第三者認証局が発行した電子証明書を利用するのではなく、OpenSSL などのツールを使って自分で作成する自己証明書を使います。また、たとえば OpenDKIM では、opendkim-genkey というツールが提供されており、DKIM の署名に必要な秘密鍵と公開鍵を作成できます。

作成した公開鍵を登録するドメイン名はつぎのようになります。

<セレクタ>._domainkey.<ドメイン名>

ここで<セレクタ>とは、DKIM-Signature ヘッダの s タグに指定したラベルになる。また、<ドメイン名>は、同じく d タグに指定されたドメイン名である。異なるセレクタを用意することで、同じドメインに対して複数の公開鍵を運用できます。

sls.dkim._domainkey.example.com. 300 IN TXT "v=DKIM1; k=rsa; t=y; p=MIGfMA0GCSqGSIb3...<省略>"

送信サーバー上では、open-dkim や ENMA などのフィルターアプリケーションを利用して、送信するメールに署名を行います。

イラスト/SPFとDKIM設定しよう!

OpenDKIM:http://opendkim.org

ENMA:http://enma.sourceforge.net