技術解説 · 出典付きの回答

メールのなりすましを防ぐ方法:SPF・DKIM・DMARCガイド

メールのなりすましを防ぐには、SPF、DKIM、DMARCのDNSレコードを組み合わせて導入する必要があります。これらのプロトコルは、送信サーバーがドメインに代わってメールを送信する権限を持っていることを検証し、配送中にメッセージの内容が改変されていないことを保証します。

SPFレコードを設定する

Sender Policy Framework(SPF)は、ドメインのメール送信を許可されたすべてのIPアドレスとドメインを列挙するDNSレコードです。受信サーバーはメールを受け取ると、Fromアドレスのドメインに設定されたSPFレコードを確認します。送信元IPが記載されていない場合、そのメールは迷惑メールと判定されるか拒否されることがあります。SendHQの無料ツール(https://sendhq.cc/tools)を使ってSPFの構文を検証し、許可していないIPが含まれていないことを確認してください。

DKIM署名を設定する

DomainKeys Identified Mail(DKIM)は、メールヘッダーに暗号署名を追加します。送信サーバーは秘密鍵でメッセージに署名し、受信サーバーはDNSレコードに公開された公開鍵を使ってその署名を検証します。これにより、攻撃者が配送中にメールの内容を改変することを防ぎ、メールが実際に自社のインフラから送信されたことを証明できます。

DMARCポリシーを適用する

Domain-based Message Authentication, Reporting, and Conformance(DMARC)は、SPFとDKIMを結び付けるものです。メールがSPFやDKIMのチェックに失敗した場合にどう処理すべきかを受信サーバーに指示します。ポリシーはnone(監視)、quarantine(迷惑メールフォルダへ)、reject(完全にブロック)のいずれかに設定できます。DMARCはドメイン所有者にレポートも送るため、なりすましの試みや設定ミスを特定できます。

DNSを適切に保守する

なりすましを防ぐには、DNSレコードを継続的に保守する必要があります。SPFレコードを定期的に見直して使わなくなった外部の送信者を削除し、セキュリティを維持するためにDKIMキーを定期的にローテーションしてください。なりすましメールがユーザーの受信トレイに届くのを完全に止めるため、DMARCポリシーは最終的にnoneからrejectへ移行させましょう。

安全なSMTP拡張を使う

DNSレコードに加えて、STARTTLSを使ってメールサーバー間の接続を暗号化してください。これにより、中間者攻撃による認証情報の傍受や配送中のメールの改変を防げます。SMTP認証を導入すれば、許可されたユーザーだけがサーバー経由でメールをリレーできるようになり、内部からのなりすましのリスクを減らせます。

よく寄せられる質問

SPFとDKIMの違いは何ですか?

SPFはDNS上のリストによって特定のサーバーにメール送信を許可するもので、DKIMは暗号署名を使って送信者を検証し、メッセージの完全性を保証するものです。

DMARCはSPFやDKIMの代わりになりますか?

いいえ、DMARCはSPFとDKIMに依存しています。DMARCは、これら2つの認証チェックに失敗したメールをどう扱うかというポリシーの指示を提供するものです。

最初からp=rejectポリシーを使えますか?

まずはp=noneから始めてトラフィックを監視し、正当なメールがブロックされないことを確認してから、p=quarantine、最終的にp=rejectへ移行することをおすすめします。

SPFレコードが複数あるとどうなりますか?

SPFレコードが複数あると構文エラーとなり、SPFは失敗します。許可するすべての送信者を1つのTXTレコードにまとめる必要があります。

一次情報源