目次
・送信ドメイン認証とは
・種類
1. SPF
2. DKIM
3. DMARC
・必要な理由
・普及率
・余談
送信ドメイン認証とは
送信元メールサーバのIPアドレス認証や電子署名の仕組みを利用して、
メールがなりすまされているかを判断する仕組み。
種類
1. SPF
2. DKIM
3. DMARC
1. SPF
「Sender Policy Framework」の略称。
メール認証プロトコル。
送信者のドメインの詐称を防ぎ、送信ドメインの正当性を検証することができる。
→ 送信元を偽ったヘッダーによるなりすましメールへの対策が可能
動き
①DNSサーバにSPFレコードを登録(送信メールサーバ→DNSサーバ)
②メールを送信(送信メールサーバ→受信メールサーバ)
③正しいSPFレコードをDNSサーバに問い合わせ
(受信メールサーバ→DNSサーバ)
④送信元IPアドレスとSPFレコードが一致するかを確認(DNSサーバ→受信メールサーバ)
【一致(pass)】認証成功
【不一致(Fail)】メールが届かない →対策をする必要がある
★SPFレコードとは
「v=spf1 ip4:送信メールサーバのIPアドレス include:spf.example.com ~all」
2.DKIM
「Domain-based Message Authentication Reporting and Conformance」の略称。
メールを送信する際に送信元が電子署名を行い、受信者がそれを検証する。
→ 送信者のなりすましやメールの改ざんを検知が可能に
動き
①送信メールサーバに秘密鍵を登録(送信元でデバイス→送信メールサーバ)
②DNSサーバに公開鍵を登録(送信メールサーバ→DNSサーバ)
③秘密鍵で電子署名を付与し、メール送信(送信メールサーバ→受信メールサーバ)
④電子署名を照合して認証(受信メールサーバ)
【一致(pass)】認証成功→改ざんされていない
【不一致(Fail)】認証失敗→改ざんの可能性がある
3.DMARC
「Domain-based Message Authentication, Reporting and Conformance」の略称
SPFとDKIMの検証結果に基づいて、メール受信者が不正なメールをどのように処理すべきかをドメイン所有者が指示できる技術。(ポリシーチェック)
→ 組織からの送信メールがSPFまたはDKIMの検証に合格しなかった場合に、DMARCポリシーを介してそのメールの処理方法を受信サーバーに指示する
3つのポリシー
・None(無し):メッセージは受信者に配信され、DMARCレポートはドメイン所有者に送信される。
・Quarantine(隔離):検証不合格のメッセージが隔離フォルダに移動される。
・Reject(拒否):検証不合格のメッセージが配信されない。
動き
①送信メールサーバー自身のなりすましメールの取り扱いを宣言(送信メールサーバ→DNSサーバ)
②メール送信(送信メールサーバ→受信メールサーバ)
③SPF・DKIMによる認証
④【SPF・DKIMが成功しなかった場合】
最初に宣言した取り扱いに沿って3つのポリシーの中のどれかを実行する
④/⑤【SPF・DKIMにて認証が成功した場合/DMARCの結果がNoneの場合】
メールが配信される
DKIM→SPFとDKIMの弱点をカバーする
必要な理由
ヘッダーfromとエンベロープfromが異なることを見抜き、対策するため。
ヘッダーfromとエンベロープfromが異なること=差出人のなりすまし/改ざんがされている可能性があるということ。
手紙で例えると....
ヘッダーfrom:封筒や便せんに記載してある「〇〇より」
エンベロープfrom:実際にその手紙を書いている人
差出人だけでなく宛名(To)も、実際に書かれていた文章と途中で変えられたものなどが違う場合がわかる。
普及率
SPF:7~8割
DKIM:5割には満たない
DMARC:やっと6割
全体として、世界的には低いほうである。
とくにDKIMの普及率が低い理由としては、
SPFに比べ、専門知識を要することが大きな要因である。
余談
私が、これらを知ったきっかけとしては、前の研修先でGmailのガイドライン変更に伴うDNSレコード変更作業に携わったことです。
現在の研修先も変更作業に携わっていたことを思い出したため、
変更作業に携わった際に学習したことをここで書いてみようと思いました。
前の研修先にいたころの目標が「送信ドメイン認証(特にDKIM)を先輩に説明できるくらいになる」でした。
まだまだ学習中の身であるため、正しい認識で書けているか少し不安です^^;
この記事を書くにあたって、引き続きその目標に向かっていこうと再起しましたので、
頑張っていこうと思います。