DMARCの概要
DMARC(Domain-based Message Authentication, Reporting & Conformance)とは、2012年1月30日に、電子メール関係の企業、組織によって設立された、SPF(Sender Policy Framework)とDKIM(DomainKeys identified mail)を利用してメール送信元の信頼性を判断するプロトコルです。
DMARCの流れ
DMARCによるメールの認証フローをいかに記載します。
DMARCでは、SPFまたはDKIMで認証されなかったメールを迷惑メールフォルダに振り分けるか、まとめてブロックするかを送信元のドメイン所有者自身がコントロールできます。
DMARCにより、送信者は自身が送っているメールの送信状況が把握でき、自ドメインを騙ったメールが送られることを阻止することが可能となります。
DMARCの導入について
DMARCはSPFレコードと同じくDNS上にTXTレコードとして公開します。
例:example.comの場合
_dmarc.example.com IN TXT "v=DMARC1; p=none; rua=dmarc-ra@dmarc25.jp; ruf=dmarc-ra@dmarc25.jp”
書式としては「_dmarc.ヘッダFromドメイン」の形式となります。
その他、v=DMARC1 は DMARC レコードのバージョン番号です。
p=noneは、認証失敗したメールに対して受信側に実行し欲しいアクションを宣言します。noneの場合は認証失敗しても何もしない、という意味になります。
ruaとruf はレポートメールを受信するメールアドレスです。
Windowsのnslookupでは以下のようにして確認することができます。
> set type=txt
> _dmarc.example.com
DKIMの仕組み
DKIM(Domain Keys Identified Mail)は公開鍵暗号方式で送信元の認証を行う技術です。
送信元のメールサーバ上に秘密鍵、送信元ドメインのDNSサーバのTXTレコードに公開鍵を設定します。
DKIMではメール送信時、メールサーバ上でメール本文を秘密鍵でハッシュ化し、それをメールに加えて宛先へ送ります。
受信側では送信元ドメインのDNSサーバ上の公開鍵を使うことで、正当な送信元から送られていること、またメールが改ざんされていない事が確認できます。
なお、nslookupコマンドでDKIMで使用する公開鍵を確認することができます
nslookup -type=txt セレクタ._domainkey.Envelope Fromのドメイン
※セレクタはメールヘッダのDKIMの箇所に、「s=XXXX」のような書式で記載されています。XXXの部分がセレクタです。
※Envelope FromのドメインはメールヘッダのDKIMの箇所に、「d=XXXX」のような書式で記載されています。XXXの部分がドメインです。
Envelop From等について詳細を確認したい方はこちらの記事もご参照いただければと存じます。
SPFの仕組み
SPF(Sender Policy Framework)はSMTPのTCPコネクションの送信元IPアドレスと送信元メールアドレスのドメインのDNSサーバのTXTレコードに含まれるIPアドレスが合致するかどうかを確認します。
TXTレコードに登録されている情報はnslookupで参照可能です。
nslookup -type=txt _spf.mail.yahoo.com
SPFでは、外部のメール送信業者を利用している場合は、TXTレコードに「include:」を追記して対象の送信業者のSPFレコードを参照して認証させることも可能です。
参考にさせていただいたサイト
貴重な情報をありがとうございます。