今更聞けないSPF・DKIM・DMARC
こんにちは。技術部2年目のT.Nです。
今年2月にGmailのガイドライン変更に伴い、特定の条件を満たしたドメインからGmailアドレス宛に
メールを送信する際、SPF、DKIM及びDMARCレコードの登録が義務付けられるようになりました。https://support.google.com/a/answer/81126
その影響もあり、お客様から多くのご質問や設定のご依頼をいただいております。
いずれも、メール送信における送信元ドメインの認証技術ですが、
それぞれ異なる認証を実施していますので一つずつ解説していきます!
SPFレコード
SPFは、ドメインに対してメール送信を許可するIPアドレス(サーバ)を設けることができます。
これはメール送信元サーバでの設定等の必要性はなく、送信元ドメインにSPFレコードを追加することで認証できます。
例えば、メール送信元ドメインに下記のようなSPFレコードが登録されていた場合で解説します。
"v=spf1 ip4:192.168.0.1 include:netassist.ne.jp -all"
先頭の「v=spf1」は、SPFのバージョンを示していますが、原則この表記で問題ありません。
次の「ip4:192.168.0.1」は、認証するIPアドレスを示しており、この場合は、192.168.0.1からのメール送信が許可されている状態です。
「include:netassist.ne.jp」は、netassist.ne.jpドメインのSPFレコードも参照することを意味しており、他ドメインのSPFレコードをまとめて認証できます。
最後に「-all」を記載することで、認証を通過しなかったIPアドレスは認証を失敗するように明示しております。
他にも細かい設定はありますが、基本的には「ip4」と「include」を用いて送信許可するIPアドレスを追加します。
DKIMレコード
DKIMは、メール送信する際、メールに対して電子署名を行い、 受信者がそれを検証することで、 送信者のなりすましやメールの改ざんを検知できるシステムです。
これはメール送信元サーバにDKIM署名を発行するサービスを導入する必要があります。
その上、発行された公開鍵を送信元ドメインにDKIMレコードとして追加することで認証が可能になります。
レコード自体は、公開鍵情報が記載されているのみですが、SPFレコードとは違い、特殊なサブドメインで名前を登録する必要があります。フォーマットは下記のとおりです。
[セレクタ名]._domainkey.[送信元ドメイン名]
このセレクタは、DKIM署名を発行するサービス毎で任意の値に設定が出来ます。
その為、1つのドメインで複数のメールサービスを利用している場合でも、メールサービス毎に異なるセレクタ名の設定を行うことで複数のDKIMレコードの管理が可能になります。
DMARCレコード
DMARCは、SPF及びDKIM認証に失敗したメールに対して処理方法を指示することができます。
これは、メール送信元サーバでの設定等の必要性はなく、SPF及びDKIMの設定が完了した状態で送信元ドメインにDMARCレコードを追加することで認証できます。
こちらも一例から、確認いたします。
v=DMARC1; p=quarantine; rua=mailto:example@netassist.ne.jp;
「v=DMARC1」は、DMARCのバージョンを指していますが、原則この表記から変更することはありません。
「p=quarantine」は、SPF及びDKIM認証に失敗したメールに対して、処理方法を示しています。
処理方法は、quarantine(スパム判定)、none(認証の通過)、reject(ブロック)の3種類があります。
「rua=mailto:example@netassist.ne.jp」は、集約レポートの宛先を示しています。「ruf」で同じように設定を行うと失敗レポートも受け取ることができます。
レポートについては下記ブログもご参照ください。
おわりに
今後もメール配信の規則は厳しくなるばかりで、突然メールが届かなくなることや迷惑メール判定をくだされる可能がございます。
そういった事態に備えて、事前にこういった認証システムの導入を推奨しております。
もし、ご利用中のメールサービスでSPF・DKIM・DMARCが未導入の方は
是非ネットアシストにご相談くださいませ。