Labee Dev Toolbox
技術ノートガイド用語解説
無料で試す
  1. ホーム
  2. / 用語解説
  3. / DKIM アライメント(DKIM Alignment)
メール認証

DKIM アライメント(DKIM Alignment)

2025年12月2日 更新

概要

DKIM アライメント(DKIM Alignment) は、DKIM 署名の d= タグに記載されたドメインと、メールのヘッダー From(RFC5322.From)ドメインが一致するかを DMARC が検証するプロセスです。仕様は RFC 7489 の Section 3.1.1 で定義されています。

DKIM 単体の認証は「署名が有効かどうか」を確認しますが、署名ドメインがヘッダー From と一致するかは検証しません。攻撃者が自身のドメインで正規の DKIM 署名を付与しつつ、ヘッダー From に別組織のドメインを記載すれば、DKIM は pass します。DKIM アライメントはこの隙間を塞ぎます。DMARC レコードの adkim タグで strict(完全一致)または relaxed(組織ドメイン一致)を指定し、デフォルトは relaxed です。

メールに複数の DKIM 署名が付与されている場合、いずれか 1 つの署名がアライメント条件を満たせば DMARC の DKIM アライメントは pass と判定されます。SaaS のメール送信サービスを使う環境では、SPF アライメントが取りづらい構成が多いため、DKIM アライメントが DMARC pass の主要な経路になります。

仕組み

DKIM アライメントには relaxed(組織ドメイン一致)と strict(FQDN 完全一致)の 2 つのモードがあり、DMARC レコードの adkim タグで制御します。

relaxed モード(デフォルト)

adkim=r を指定するか、adkim タグを省略した場合に適用されます。DKIM 署名の d= ドメインとヘッダー From ドメインの組織ドメイン(Organizational Domain)が一致すれば pass です。

組織ドメインは Public Suffix List を基準に判定されます。d=mail.example.com でヘッダー From が @example.com の場合、どちらの組織ドメインも example.com なので pass します。d=example.com でヘッダー From が @news.example.com の場合も同様に pass します。

relaxed モードは、サブドメインごとに DKIM 署名を使い分ける運用に適しています。マーケティングメールを mail.example.com の DKIM 鍵で署名し、ヘッダー From を @example.com にする構成でもアライメントが成立します。

strict モード

adkim=s を指定した場合に適用されます。DKIM 署名の d= ドメインとヘッダー From ドメインの FQDN が完全に一致する必要があります。

d=example.com でヘッダー From が @example.com であれば pass です。d=mail.example.com でヘッダー From が @example.com であれば fail です。サブドメインと親ドメインの差異は許容されません。

strict モードは、送信インフラを自社で完全に管理しており、すべてのメールが同一ドメインの DKIM 鍵で署名される環境でのみ現実的です。

DKIM の正規化モードとの違い

DKIM 署名の c= タグで指定する正規化(canonicalization)にも simple と relaxed がありますが、DKIM アライメントの strict / relaxed とは無関係です。c=relaxed/relaxed はメール本文やヘッダーの空白処理に関する設定であり、ドメイン照合の挙動には影響しません。

複数の DKIM 署名がある場合

1 通のメールに複数の DKIM 署名が含まれることがあります。Amazon SES は独自の d=amazonses.com 署名を自動付与するため、カスタムドメインの署名と合わせて 2 つの DKIM-Signature ヘッダーが付きます。SendGrid も d=sendgrid.net の署名を追加します。

DMARC は全署名を評価し、1 つでもアライメント条件を満たして検証に pass すれば DKIM アライメント pass と判定します。サービス側の署名(d=amazonses.com など)はアライメントに失敗しますが、カスタムドメインの署名(d=example.com)が pass すれば問題ありません。

設定例

DMARC レコードで DKIM アライメントモードを指定します。

relaxed モード(デフォルト)の場合は adkim タグを省略できます。

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"

明示的に relaxed を指定する場合は次のようになります。

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=reject; adkim=r; rua=mailto:dmarc@example.com"

strict モードに変更する場合は adkim=s を指定します。

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=reject; adkim=s; rua=mailto:dmarc@example.com"

strict に変更する前に、rua レポートで現在の DKIM 署名ドメインがヘッダー From ドメインと完全一致しているか確認します。サブドメインで署名しているメールが 1 通でもあれば、strict 移行でそのメールは DKIM アライメント fail になります。

SaaS 送信サービスとの組み合わせ

SendGrid でカスタムドメインの DKIM 署名を設定すると、d=example.com で署名されます。ヘッダー From が @example.com であれば、relaxed でも strict でもアライメントが成立します。

Amazon SES の Easy DKIM を使う場合、カスタムドメインを設定すると d=example.com で署名されます。SES が自動付与する d=amazonses.com の署名はアライメントに失敗しますが、カスタムドメインの署名が pass すれば DMARC は通過します。

確認方法

DMARC レコードの adkim タグを dig で確認します。

dig TXT _dmarc.example.com
;; ANSWER SECTION:
_dmarc.example.com.	3600	IN	TXT	"v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s"

レスポンスに adkim=s が含まれていれば strict モード、adkim=r または adkim タグが存在しなければ relaxed モードです。

DKIM 署名の d= タグは、受信したメールのヘッダーで確認します。メールのソースを表示し、DKIM-Signature ヘッダーの d= の値を読み取ります。

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=selector1;
    c=relaxed/relaxed; q=dns/txt; h=from:to:subject:date;
    bh=abc123...; b=xyz789...

d=example.com がヘッダー From のドメインと一致するかを確認します。

外部の視点からも確認したい場合は、Labee Dev Toolbox の Mail Auth API を使うと、外部の視点から見た結果を取得できます。

curl "https://labee.dev/api/mail-auth?domain=example.com"
{
  "success": true,
  "data": {
    "spf": { "record": "v=spf1 include:_spf.google.com ~all", "exists": true },
    "dkim": {
      "record": "v=DKIM1; k=rsa; p=MIIBIjANBgkqh...",
      "exists": true,
      "selector": "default"
    },
    "dmarc": {
      "record": "v=DMARC1; p=reject; adkim=s; aspf=s; rua=mailto:dmarc@example.com",
      "exists": true
    },
    "bimi": { "record": null, "exists": false }
  },
  "error": null,
  "meta": { "responseTime": 123 }
}

data.dmarc.record フィールドで DMARC レコード全体を確認できます。レコード内の adkim= の有無と値で、現在のアライメントモードを把握できます。data.dkim.exists と data.dkim.record で DKIM レコードの存在と内容も同時に確認できます。

よくある問題

DKIM アライメントの失敗は SaaS 送信サービスの初期設定やモード変更時に集中して発生します。

SaaS サービスのデフォルト署名でアライメントが取れない

SaaS のメール送信サービスを導入した直後は、サービス側のドメイン(d=sendgrid.net、d=amazonses.com など)で DKIM 署名が行われます。この署名はヘッダー From のドメインとは異なるため、DKIM アライメントが fail します。

対処法は、各サービスのカスタムドメイン DKIM 設定を行うことです。SendGrid であれば Domain Authentication、Amazon SES であれば Easy DKIM のカスタムドメイン設定を有効にします。設定後、d=example.com で署名されるようになり、アライメントが成立します。

strict モードへの移行で正規メールが拒否される

relaxed モードで運用中にサブドメインの DKIM 署名(d=mail.example.com)を使っている送信経路がある場合、adkim=s に切り替えるとその経路の DKIM アライメントが fail します。SPF アライメントも同時に fail していると、DMARC 全体が fail になります。

移行前に rua レポートを最低 2 週間確認し、全送信経路の DKIM 署名ドメインがヘッダー From と完全一致しているかを検証します。一致しない経路がある場合は、署名ドメインをヘッダー From と揃えてから移行します。

転送メールで DKIM アライメントが崩れる

メーリングリストや転送サービスが本文にフッターを追加すると DKIM 署名が壊れ、DKIM 自体が fail します。アライメント以前に DKIM pass しないため、DKIM アライメントも成立しません。

この場合、SPF アライメントが通れば DMARC は pass します。ただし転送時にはエンベロープ From も書き換わることが多く、SPF アライメントも取れないケースがあります。転送メールの認証問題に対しては ARC(Authenticated Received Chain、RFC 8617)が策定されていますが、受信側のサポート状況に依存します。

adkim と aspf を混同する

adkim は DKIM アライメントモード、aspf は SPF アライメントモードです。片方だけ strict にして片方を relaxed のままにすることも可能です。意図しないアライメント fail を避けるため、変更時は rua レポートで SPF と DKIM の両方のアライメント状況を確認します。

p=none 運用中にアライメント fail を放置する

p=none ではアライメントが fail してもメール配信に影響しないため、問題が見えにくい状態です。アライメント fail を放置したまま p=quarantine や p=reject に移行すると、正規メールが迷惑メールフォルダ行きまたは拒否されます。p=none の段階で rua レポートを定期的に確認し、すべての正規送信経路で DKIM アライメントが pass しているかを把握しておきます。

実際のドメインで確認してみる

登録不要、無料です。ドメイン名を入れるだけで外部からの見え方を確認できます。

無料で試す

関連用語

メール認証

DKIM(DomainKeys Identified Mail)

メールに電子署名を付与し、送信後の改ざんを検知する仕組み。SPF と並んで DMARC の前提条件。

メール認証

DMARC(Domain-based Message Authentication, Reporting and Conformance)

SPF と DKIM の認証結果を統合し、なりすましメールの処理方針をドメイン所有者が宣言する仕組み。Google・Yahoo が大量送信者に義務化。

メール認証

識別子アライメント(Identifier Alignment)

DMARC が SPF・DKIM の認証ドメインとヘッダー From を照合して、なりすましを検出する仕組み。DMARC pass の必須条件。

メール認証

ヘッダー From(Header From)

メールクライアントに「送信者」として表示される From ヘッダーのアドレス。DMARC のアライメント検証の基準となる。

コンテンツ 技術ノート ガイド 用語解説
ツール ツール一覧 API Reference
Labee 日本語トップ Labee LLC
© 2026 Labee LLC . All rights reserved.
ホーム ブログ ガイド 用語集