SPF/DKIM/DMARCでなりすましメールを防ぐ
取引先や自社を名乗る偽メールが届く被害の多くは、送信元のメールアドレスを詐称する「なりすまし」によって成立しています。この詐称を技術的に防ぐ・見抜く仕組みが、SPF・DKIM・DMARCという3つのDNS設定です。それぞれ役割が異なり、3つを組み合わせて初めて効果を発揮します。
SPF:送信元サーバーを認可する
SPF(Sender Policy Framework)は、「自社ドメインからのメールは、このサーバーからしか送信されません」という情報をDNSに公開する仕組みです。受信側のメールサーバーは、届いたメールの送信元サーバーが、SPFレコードに登録されたサーバーと一致するかを確認します。
DNSのTXTレコードとして、次のような形式で設定します。
example.co.jp. IN TXT "v=spf1 include:_spf.google.com ip4:203.0.113.10 -all"include:_spf.google.com:Google Workspaceなど、外部の送信サービスを利用している場合にそのサービスを認可ip4:203.0.113.10:自社で運用する送信サーバーのIPアドレスを直接指定-all:ここに列挙されていない送信元からのメールは「認可されていない」と明示(~allはソフトフェイル=疑わしいが受信は許容、-allはハードフェイル=拒否を推奨、という強度の違いがある)
注意点:SPFはメールの「差出人表示(Fromヘッダ)」ではなく、実際の送信元サーバーを検証する仕組みです。また、メールが転送されると転送元のサーバーがSPFの検証に失敗することがあるという弱点もあります。
DKIM:メールの改ざんを検知する
DKIM(DomainKeys Identified Mail)は、送信するメールに電子署名を付与し、受信側でその署名を検証することで、「本当にこのドメインから送られたか」「途中で内容が改ざんされていないか」を確認する仕組みです。
送信側でDKIM用の公開鍵をDNSに公開します。
selector1._domainkey.example.co.jp. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSq..."selector1の部分は送信サービスごとに指定される名前(セレクタ)で、Google WorkspaceやMicrosoft 365などのサービスを使っている場合、多くは管理画面から「このレコードをDNSに追加してください」という形で自動生成された値が提示されます。送信側の設定画面の指示に従ってDNSに追加するのが実務上の進め方です。
DMARC:SPF・DKIMの結果を受けてどう扱うかを指示する
DMARC(Domain-based Message Authentication, Reporting and Conformance)は、SPFとDKIMの検証結果を踏まえて、「認証に失敗したメールをどう扱うか」を受信側に指示する仕組みです。SPF・DKIMは検証の手段、DMARCはその検証結果への対応方針、という位置づけになります。
_dmarc.example.co.jp. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.co.jp; pct=100"p=:ポリシー。none(何もしない、監視のみ)/quarantine(迷惑メール扱いにする)/reject(受信拒否)の3段階rua=:認証結果のレポートを送ってもらう宛先メールアドレスpct=:ポリシーを適用する割合(段階的に適用を広げたい場合に使う)
段階的に導入する
DMARCは、いきなりp=reject(拒否)に設定すると、SPF・DKIMの設定に見落としがあった場合に、正規の自社メールまで届かなくなるリスクがあります。次のように段階を踏んで導入するのが実務上の定石です。
p=noneで開始:まずは監視のみのモードで運用し、ruaで指定したアドレスにレポートを集める- レポートを確認する:正規の送信元(自社サーバー、外部の送信サービス、営業ツールなど)からのメールが、SPF・DKIMの認証に正しく通っているかを確認する。見落としていた送信元があれば、SPFレコードに追加する
p=quarantineに引き上げる:認証に失敗したメールを迷惑メール扱いにする。この段階で、正規メールが誤って隔離されていないかを再確認するp=rejectに引き上げる:認証に失敗したメールを完全に拒否する、最終的な防御レベル
この一連のレポートを人間が生データのまま読むのは現実的ではないため、MXToolbox、dmarcian、Postmark DMARC Monitorといった、レポートを可視化してくれる無料・有料のツールを併用するのが一般的です。
自社が発見される側の対策でもある
SPF/DKIM/DMARCは、自社が偽メールを受信する被害を防ぐだけでなく、自社のドメインを騙って第三者(取引先など)に偽メールが送られる被害を防ぐ、つまり「加害者にされない」ための対策でもあります。DMARCレポートには、自社ドメインを詐称して送信された不正なメールの情報も含まれるため、なりすまし被害の早期発見にもつながります。
まとめ
SPFは送信元サーバーの認可、DKIMは署名による改ざん検知、DMARCはその結果を踏まえた扱い方の指示、と役割が異なる3つの仕組みを組み合わせることで、なりすましメールへの実効性ある対策になります。p=noneから始めてレポートを確認しながら段階的にquarantine・rejectへ引き上げる進め方が、正規メールを止めずに導入するための現実的な手順です。