Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

SPF / DKIM / DMARC メールの送信ドメイン認証について学習する

0
Posted at

はじめに

SPF / DKIM / DMARC など、メールの送信ドメイン認証についての備忘録です。

改訂履歴

  • 2026/08/01 : BIMI の追記。
  • 2026/07/29 : 初版公開。

本文

1. SPF / DKIM / DMARC とは

SPF (Sender Policy Framework)、DKIM (DomainKeys Identified Mail)、DMARC (Domain-based Message Authentication, Reporting, and Conformance) とは、メールの送信元ドメインの正当性や、メールの改ざん有無を検証するための仕組みです。

それぞれの役割は以下の通りです。

仕組み 役割
SPF メールの送信元 IP アドレスが正当かを確認する
DKIM メールの内容や署名対象のヘッダーが改ざんされていないかを確認する
DMARC SPF / DKIM の検証結果をもとに受信側の処理を決定する

これらを組み合わせることで、送信者のなりすましやメールの改ざんを検知できます。

補足
メールの送信者認証は主体が分かりにくいのですが、送信側が証明材料を用意し、受信側が検証する仕組みになっています。

2. SMTP AUTH / POP3S との違い

SMTP AUTHPOP3S は、メールの利用者を認証するための仕組みです。一方、SPF / DKIM / DMARC は、メールの配送時に送信元ドメインの正当性や改ざん有無を確認するための仕組みです。

仕組み 確認内容
SMTP AUTH このユーザーはメールを送信してよい人か?
POP3S このユーザーはメールを受信してよい人か?(+ 通信暗号化)
SPF / DKIM / DMARC このメールは正当な送信元ドメインから送られたものか?

3. SPF とは

SPF (Sender Policy Framework) とは、SMTP のエンベロープ From (MAIL FROM) で指定されたドメインが、その送信元 IP アドレスからメール送信を許可しているかを検証する仕組みです。送信側は DNS に SPF レコードを登録します。

例えば example.com が、以下のような SPF レコードを DNS で公開しているとします。

example.com. TXT "v=spf1 ip4:203.0.113.10 -all"

補足
実際の運用では、Microsoft 365 や Google Workspace などのメールサービスを利用する場合、include:_spf.example.com のようにサービス側が公開している SPF 情報を参照する形式がよく利用されるようです。今回は SPF の仕組みを理解しやすくするため、送信元 IP アドレスを直接指定する例としています。

受信側のメールサーバーは、メールを受信した際に送信元 IP アドレスを確認し、DNS 上の SPF レコードと照合します。

ただし SPF は SMTP の MAIL FROM に設定されたエンベロープ From を検証する仕組みであり、メールの本文に表示される From アドレスとは異なります。そのため、SPF の認証に成功していても、メールソフトに表示される From アドレスが正当であることを保証するものではありません。

補足
SPF を拡張した規格として Sender ID Framework という仕組みも提案されました。Sender ID はメール本文の From に相当する情報も検証対象にする点が SPF と異なります。しかし、複雑さや互換性の問題から現在は広く利用されておらず、現在のメール認証では SPF / DKIM / DMARC が主流です。

4. DKIM とは

DKIM (DomainKeys Identified Mail / ディーキム) とは、メールに電子署名を付与することで、署名したドメインから送信されたこと、およびメールの内容が改ざんされていないことを検証する仕組みです。送信側では秘密鍵を利用してメールヘッダーや本文のハッシュ値に署名します。

例えば example.com が、以下のようなレコードを DNS で公開しているとします。

selector1._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."
部分 意味
selector1._domainkey.example.com DKIM の公開鍵を公開する DNS 名
TXT DNS レコードの種類
v=DKIM1 DKIM のバージョン
k=rsa 使用する鍵の種類 (RSA)
p=... 公開鍵

受信側はメールヘッダーに書かれている selector を見て問合せ先 DNS を決定し、公開されている公開鍵を利用して署名を検証します。

DKIM は SPF と異なり、メールの転送が行われても、メールの本文や署名対象のヘッダーが変更されなければ検証することができます。

5. DMARC とは

DMARC (Domain-based Message Authentication, Reporting, and Conformance / ディーマーク) とは、SPF と DKIM の検証結果を利用して、受信側がメールをどのように扱うかを指定する仕組みです。

送信側は DNS に DMARC レコードを登録します。

_dmarc.example.com. TXT "v=DMARC1; p=quarantine"

DMARC では、検証失敗時の処理を以下のように指定できます。

ポリシー 動作
none 何もしない(監視のみ)
quarantine 迷惑メールフォルダに隔離する
reject 受信拒否

DMARC の特徴は、SPF または DKIM の認証結果に加え、それらで認証されたドメインがメールの From ヘッダーに表示されるドメインと一致 (Alignment) しているかを確認する点です。これにより、SPF や DKIM の認証に成功していても、別のドメインを名乗るなりすましメールを検知できます。

6. BIMI とは

BIMI (Brand Indicators for Message Identification / ビミ) とは、DMARC の認証に成功したメールについて、受信トレイに送信元企業の公式ロゴを表示できるようにする仕組みです。

BIMI 自体はメールを認証する仕組みではなく、SPF / DKIM / DMARC によって送信ドメインが適切に保護されていることを前提として、ブランドロゴを表示するための仕組みです。

BIMI を利用するには、まず DMARC を導入し、ポリシーを quarantine または reject に設定する必要があります。また多くのメールサービスでは、ブランドロゴが商標登録されており、その所有者であることを証明する VMC (Verified Mark Certificate) が必要です。

送信側は HTTPS サーバー上にロゴ画像を配置し、その場所を示す BIMI レコードを DNS に公開します。受信側は DMARC の認証に成功すると BIMI レコードを参照し、対応しているメールサービスでは送信者のロゴを受信トレイに表示します。

おわりに

随時更新します。

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?