DKIMとは何か、そして2026年に重要な理由
DKIM(DomainKeys Identified Mail)は、RFC 6376で定義されたメール認証の標準で、送信ドメインが送信メッセージに暗号署名を行えるようにします。受信者はDNSから対応する公開鍵を取得し、署名を再計算して、メッセージがドメイン所有者によって認可されており、転送中に改ざんされていないことを確認します。DKIMがなければ、なりすまし送信者はあなたのFrom:アドレスを偽装し、送信者レピュテーションを傷つけ、返信を類似ドメインに密かにリダイレクトできてしまいます——ほとんどのチームは配信性が崩れた後にしか気づかない問題です。
2026年において、DKIMはもはや任意ではありません。2024年2月から施行され、2025年を通じて厳格化されたGmailとYahooの大量送信者ルールでは、1日5,000通を超えるメールを送信するすべてのドメインに対し、有効なSPF、DKIM、DMARCの公開を義務付けています。Microsoft 365も大量送信者に対する同等の施行を発表しました。DKIMの失敗はもはや受信トレイ到達率を下げるだけでなく、ハードリジェクト、dmarc=failレポート、そして多くの場合は受信者の許可リストからの削除を引き起こします。DKIMを毎週検証することは、あなたが買える最も安価な配信性の保険です。
DKIMの仕組み——公開鍵/秘密鍵暗号
DKIMは標準的な非対称暗号方式に基づいています。DKIMをセットアップすると、メールプラットフォームがRSA鍵ペアを生成します:送信サーバーで保持する秘密鍵と、DNSに公開する公開鍵です。すべての送信メッセージはハッシュ化され(本文+選択されたヘッダー)、ハッシュは秘密鍵で暗号化され、結果がDKIM-Signatureヘッダーとして添付されます。受信者はDNSから公開鍵を取得し、署名を復号し、受信したメッセージから再計算したハッシュと比較します。一致すればDKIMはパス、一致しなければ署名が壊れており、メッセージは疑わしいものとして扱われます。
DKIM-Signatureヘッダーには、受信者が検証に必要なメタデータが含まれます:v=(バージョン)、a=(アルゴリズム、通常はrsa-sha256)、d=(署名ドメイン)、s=(セレクタ)、c=(正規化、通常はrelaxed/relaxed)、h=(署名されたヘッダー)、bh=(本文ハッシュ)、b=(署名)。これらにより、受信者はどのDNSレコードを取得し、どのバイトが署名でカバーされているかを正確に知ることができます。
Example DKIM-Signature header:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=example.com; s=google;
h=from:to:subject:date:message-id;
bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;
b=KX5vRn3...truncated...DKIMセレクタとは?
DKIMセレクタは、単一のドメインが同時に複数のDKIM鍵を公開できるようにする短いラベルです。受信者は、セレクタと署名ドメインをselector._domainkey.domain.com形式のDNS名に組み合わせて公開鍵を見つけます。たとえば、Google Workspaceはgoogle._domainkey.example.comを使い、Mailgunで署名されたメッセージはk1._domainkey.example.comを探します。セレクタは重要です——鍵のローテーション、複数の送信プラットフォーム(トランザクション、マーケティング、セールス)の並行運用、古い鍵を引退させる前の新しい鍵のステージングを可能にし、しかも2つのレコードが衝突することがありません。_domainkey.domain.com自体にはワイルドカードやフォールバックは存在せず、セレクタは必須です。
Example DNS record format:
default._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."DKIMのよくある5つのエラーと修正方法
DNSルックアップで何も返ってこない
受信者がselector._domainkey.yourdomain.comに問い合わせ、NXDOMAINを受け取ったケースです。これが最も一般的なDKIM失敗です。原因:TXTレコードが公開されなかった、間違ったセレクタの下に公開された、またはセレクタのサブドメインの代わりにエイペックス(yourdomain.com)に追加された。プロバイダーから提供された正確な名前(例:google._domainkey)をTXTレコードとして再公開し、dig TXT selector._domainkey.yourdomain.comまたはこのチェッカーを再実行して伝播を確認してください。グローバル伝播には最大48時間かかる場合があります。
公開鍵が無効
DNSはレコードを返しますが、p=の値が不正、切り詰められている、または受信者に拒否されています。最も頻繁な原因は、複数のTXT文字列に分割された2048ビットの鍵が誤って再構築されたことです——多くのDNS UIは余分な引用符、スペース、改行を追加します。修正方法:メールプラットフォームがエクスポートした公開鍵を正確にコピーし、単一のTXT値として貼り付け(ほとんどのプロバイダーは255バイト境界で自動分割します)、レコードがv=DKIM1; k=rsa; p=BASE64KEYを含み、base64ブロック内に空白がないことを確認してください。
本文ハッシュの不一致
DKIMはbh=ABCで署名しましたが、受信者は受信した本文からbh=XYZを計算したため、検証が失敗します。これは、署名後にメッセージが何らかの形で変更されたことを意味します。よくある犯人:下流のゲートウェイ(アンチウイルス、DLP、メーリングリスト)がリンクを書き換えるかフッターを追加する、SMTPリレーが行末を再エンコードする、転送機能が添付ファイルを削除する。修正方法:relaxed/relaxed正規化で署名する(空白の変更を許容)、書き換えるミドルウェアを削除する、またはメーリングリストの場合はホップ間で元のDKIMを保持するARCを実装する。
署名検証の失敗
本文ハッシュは一致しましたが、暗号署名が公開鍵に対して検証できませんでした。原因:署名サーバーが、公開された公開鍵と一致しなくなった秘密鍵を使用した(鍵ローテーション後にDNSは更新されたが、メールサーバーのキャッシュが更新されなかったときによく発生)、DNS内の公開鍵が編集されて破損した、a=の署名アルゴリズムが鍵タイプと一致しない。修正方法:送信プラットフォームから公開鍵を再エクスポートし、そのまま再公開し、メールサービスを再起動して秘密鍵を再ロードさせてください。
セレクタが見つからない/間違っている
メールサーバーはセレクタs1で署名していますが、DNSはs2のみを公開しているか、プロバイダーを移行して古いセレクタが廃止されました。修正方法:実際の送信メールのDKIM-Signatureヘッダーのs=タグを確認し(ほとんどのクライアントで全ヘッダーを表示できます)、そのセレクタにTXTレコードが正確に存在することを確認し、対応する秘密鍵がない古いセレクタを削除してください——空のp=値を持つ古いセレクタはハードフェイルを引き起こします。
DKIM設定のステップバイステップ
- 1
鍵長を選ぶ(1024ビット vs 2048ビット)
2026年は常に2048ビットRSAを選んでください。1024ビットの鍵はほとんどの受信者に受け入れられますが、Gmail、Yahoo、MicrosoftはDMARCレポートでそれらを弱いものとして積極的にフラグ付けしており、セキュリティチームは本番環境で1024ビットDKIMが見つかると監査を不合格にすることが多くあります。1024に下げる唯一の理由は、255バイトを超えるTXTレコードを保存できないレガシーDNSプロバイダーを使っている場合です——しかし今日ではほぼすべてのプロバイダーが複数文字列のTXT分割をサポートしています。2048ビットの鍵は署名時間に約2ミリ秒を追加するだけで、本番のメールサーバーにとっては無視できるほどです。
- 2
鍵ペアを生成する
ほとんどのプラットフォームが鍵を生成してくれます——Google Workspace、Microsoft 365、Mailgun、SendGrid、Postmark、Amazon SESはすべて、両方の半分を生成し、公開する公開鍵を表示するワンクリックDKIMセットアップページを公開しています。自前のサーバー(Postfix + OpenDKIM、Exim、Haraka)を運用している場合は、opendkim-genkey -b 2048 -d yourdomain.com -s s1を使ってください——これがs1.private(秘密保持)とs1.txt(公開)を書き出します。ドメインやプラットフォーム間で鍵を再利用してはいけません。
- 3
公開鍵をTXTレコードとして追加する
selector._domainkey.yourdomain.com(例:s1._domainkey.example.com)にTXTレコードを作成し、生成元の.txtファイルから貼り付けたv=DKIM1; k=rsa; p=MIIBIjANBgkq...を値として設定します。多くのDNSプロバイダーは値を自動的に255バイトのチャンクに分割します——これで問題ありません。受信者は再構築します。テスト中はTTLを3600秒に設定し、レコードが安定したら86400に上げます。生成元の出力に含まれる引用符を値の一部として含めないでください。
- 4
メールサービスが秘密鍵で署名するよう設定する
ホスティングプラットフォームでは、DNSレコードを公開してVerifyをクリックすれば自動です。セルフホストサーバーでは、ミルター(OpenDKIM、Rspamd)を.privateファイルに向け、セレクタをDNSレコードと一致させ、メールプロセスを再起動してください。Gmailアドレスにテストメッセージを送信し、生のソースを表示します——Authentication-Results: dkim=pass header.d=yourdomain.comヘッダーが見えるはずです。dkim=noneが見える場合、サーバーはまだ署名していません。dkim=failの場合、鍵が一致していません。
- 5
無料のDKIMチェッカーでテストする
このDKIMチェッカーでDNS公開を確認し、その後mail-tester.comか自分が管理するGmailアカウントに本物のテストメッセージを送ってヘッダーを確認してください。期待される結果:Authentication-Resultsがdkim=passを示し、セレクタが公開されたレコードと一致していること。鍵ローテーション後、新しい送信プラットフォーム追加後、最低でも四半期に1回再テストしてください。サイレントなDKIM失敗が何週間も配信性を損なうことのないよう、監視ツールにチェックを追加してください。
プロバイダー別の一般的なDKIMセレクタ
メールプラットフォームごとに独自のセレクタ規約を採用しています。規約を知っていればトラブルシューティングがはるかに早くなります——Google Workspaceからのメッセージを受信してDKIMが壊れている場合、50の代替を調べる前にgoogle._domainkeyを調べればよいと既に分かります。以下は2026年の主要プロバイダーが使用するセレクタです:
Google Workspace — google._domainkey.yourdomain.comMailgun — k1._domainkey.yourdomain.com(時にmta._domainkey)SendGrid — s1._domainkey.yourdomain.com および s2._domainkey.yourdomain.com(CNAMEベース)Mailchimp — k1._domainkey.yourdomain.com および k2._domainkey.yourdomain.comMicrosoft 365 — selector1._domainkey.yourdomain.com および selector2._domainkey.yourdomain.comPostmark — pm._domainkey.yourdomain.com(または20XXXXXXX.pm._domainkey)Amazon SES — abc123._domainkey.yourdomain.comのようなカスタムランダムセレクタ(CNAMEベース)Mandrill(by Mailchimp)— mandrill._domainkey.yourdomain.comConstant Contact — ctct1._domainkey.yourdomain.com および ctct2._domainkey.yourdomain.comConvertKit — ck._domainkey.yourdomain.comMailjet — mailjet._domainkey.yourdomain.comBrevo(旧Sendinblue)— mail._domainkey.yourdomain.com
Nova UptimeのDKIMチェッカーは上記すべてのセレクタに加え、さらに38個を並列で自動スキャンするため、プロバイダーがどれを使うかを事前に知る必要はありません。
GmailとYahoo 2026年要件
2024年2月以降、GmailとYahooはユーザー宛に1日5,000通を超えるメールを送信するすべてのドメインに対して、より厳格な認証を施行しています。ルール:すべてのメッセージに有効なDKIMレコード(2048ビット推奨)で署名すること、SPFをFrom:ドメインとアライメントさせること、DMARCポリシーを公開すること——最低でもp=none——、到達可能なrua=レポートアドレスを設定すること。2025年から2026年にかけて、両プロバイダーはボリューム閾値を下げ、メッセージを迷惑メールに振り分ける代わりに直接拒否(5.7.26)し始めました。Microsoft 365は2025年5月に同等の施行を開始しました。実際的な影響:壊れたDKIMレコード1つで、受信トレイ配置の問題ではなくハードバウンスを引き起こし、DMARCレポートは24時間遅延するため復旧には数日かかります。継続的な監視はもはや任意ではありません。