Skip to main content
New SPF lookups must resolve in milliseconds — why a DMARC tool's add-on isn't enough Learn Why → →

DKIM

DKIM(DomainKeys Identified Mail)は、受信サーバーがメッセージを本当にあなたのドメインから送信されたものであり、転送中に改ざんされていないことを確認できるようにするメール認証の標準規格です。あなたの送信メールサーバーは各メッセージを秘密鍵で署名し、受信者はその署名を、公開された対応する公開鍵と照合して検証します

DKIM(DomainKeys Identified Mail)は、受信サーバーがメッセージを本当にあなたのドメインから送信されたものであり、転送中に改ざんされていないことを確認できるようにするメール認証の標準規格です。 あなたの送信メールサーバーは各メッセージを秘密鍵で署名し、受信者はその署名を、ドメインのDNSに公開された対応する公開鍵と照合して検証します。

DKIMは、SPFおよびDMARCと並ぶ、現代のメール認証を支える3つの柱の1つです。これらが連携することで、あなたのメールが受信トレイに届くのか、それとも迷惑メールに振り分けられるのか、そして攻撃者があなたのドメインをなりすませるのかどうかが決まります。このページでは、DKIMとは何か、どのように機能するのか、そして各要素がどのように組み合わさるのかを説明します。

DKIMの仕組み

DKIMは、公開鍵暗号方式に基づく「送信時に署名し、受信時に検証する」ハンドシェイクとして機能します。あなたのメールサーバーがメッセージを送信するとき、選択したヘッダー(および通常は本文)の暗号学的ハッシュを生成し、そのハッシュをあなたのサーバーだけが保持する秘密鍵で暗号化して、その結果をDKIM-Signatureヘッダーとしてメールに付加します。

対応する公開鍵は、ドメインのDNSにTXTレコードとして保管されています。受信サーバーがメッセージを受け取ると、DKIM-Signatureヘッダーを読み取り、DNSで公開鍵を検索し、それを使って署名を検証します。署名が正しく検証されれば、受信者は2つのことを確認できます。すなわち、そのメッセージが確かにあなたのドメインで署名する権限を持つサーバーから送られたものであること、そして署名された内容が途中で改ざんされていないことです。もし何かが変更されていたり、鍵が一致しなかったりすれば、DKIMの検証は失敗します。

秘密鍵はあなたのインフラから決して外に出ないため、なりすまし犯があなたのドメインに対して有効なDKIM署名を偽造することはできません。

DKIMを構成する要素

DKIMは、それぞれに専用の詳細ガイドを持つ、いくつかの連携する要素で構成されています。

  • DKIMレコード — 公開鍵とDKIM設定を公開するDNS TXTレコードで、受信者が署名を見つけて検証できるようにします。
  • DKIMセレクターどの鍵を検索すべきかを受信者に伝える短いラベルで、1つのドメインで複数の鍵(異なるプロバイダー用や鍵のローテーション用)を運用できるようにします。
  • DKIM署名 — 送信するすべてのメッセージに刻印されるDKIM-Signatureヘッダーで、署名ドメイン、セレクター、そして暗号学的ハッシュそのものが含まれます。

これら3つがどのように結びついているかを理解すると、残りのDKIM設定やトラブルシューティングがはるかに容易になります。

DKIMの設定方法

DKIMの設定は、短く反復可能なプロセスです。

  1. メールプロバイダーのコンソールで鍵ペアを生成します — 秘密鍵はプロバイダーに保持され、公開する公開鍵が渡されます。
  2. 公開鍵を公開しますselector._domainkey.yourdomain.comにTXTレコードとしてDNSに追加します。正確な手順はDKIMレコードの生成方法を参照してください。
  3. プロバイダーで署名を有効化します。これにより、送信メールにDKIM署名が刻印されます。
  4. それに頼る前に、メッセージが署名され、検証を通過していることを確認します

実際には、DKIM鍵は手作業ではなく、メールプロバイダーのコンソール(Google Workspace、Microsoft 365、またはお使いのESP)の内部で生成されるため、作業の大部分は提供されたレコードをDNSにコピーすることになります。

公開されたDKIMレコードは次のようになります。

selector1._domainkey.example.com  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqF...GfMA0=; t=s"

ここでselector1はセレクター、v=DKIM1はこれがDKIMレコードであることを示し、k=rsaは鍵の種類を示し、p=はbase64エンコードされた公開鍵を運びます。

DKIM、SPF、DMARCの連携

DKIMは単独では機能しません。DKIMはSPFを補完します。SPFはどのサーバーがあなたのドメインのメールを送信できるかを認可します。SPFは接続してきたサーバーのIPを公開済みのリストと照合し、DKIMはメッセージ自体の暗号学的署名を検証します。この2つは異なるもの、つまり送信元とメッセージの完全性を保護しており、どちらか一方が独立して通過したり失敗したりすることがあります。

DMARCは、これらを受信者が実際に目にするアドレスに結びつけるポリシー層です。DMARCは、通過したSPFまたはDKIMの結果が、可視のFrom:ドメインと**アラインメント(整合)**していることを要求し、そのうえで、どちらもアラインしていない場合に受信者がどうすべきか(配信、隔離、拒否)を伝えます。このアラインメントこそが、攻撃者が自分の管理するドメインで認証を通過させながら、Fromの行ではあなたのドメインになりすますことを阻止するものです。

標準規格検証する内容
SPFどのサーバーがあなたのドメインで送信できるか
DKIMメッセージがあなたのドメインで署名され、改ざんされていないこと
DMARCSPF/DKIMが可視のFromアドレスとアラインしていること、および失敗時のポリシー

DMARCのアラインメントはSPFに依存する場合があるため、SPF側を有効に保つことが重要です。AutoSPFはあなたのSPFレコードを自動的にフラット化して維持するため、10回のルックアップ制限内に収まり、通過し続けます。これは、DKIMとDMARCのアラインメントを全体として健全に保つのに役立ちます。

よくあるDKIMの問題

DKIMは、DNSレコードの欠落や切り捨て、セレクターの不一致、または転送機能やメーリングリストによる転送中のメッセージの改変が原因で失敗することが最も多いです。署名が検証されない場合は、DKIMが失敗する理由で、よくある原因と修正方法を順を追って解説しています。ドメインが今まさに何を公開しているかを確認するには、無料のDKIMルックアップツールを実行してください。指定したセレクターのレコードを取得し、鍵が存在し正しい形式かどうかを表示します。

よくある質問

DKIMとは何ですか?

DKIM(DomainKeys Identified Mail)は、送信するメッセージに暗号学的な署名を追加するメール認証方式です。あなたのメールサーバーは各メールを秘密鍵で署名し、受信サーバーはその署名を、あなたのDNSに公開された公開鍵を使って検証します。有効な署名は、メッセージがあなたのドメインから送られ、転送中に改ざんされていないことを証明します。

DKIMは必須ですか?

DKIMはメールを送信するために厳密に必須というわけではありませんが、事実上求められるものです。GoogleやYahooといった主要プロバイダーは、現在では一括送信者に対して認証を要求しており、DMARCがあなたのドメインを保護するには、通過してアラインしたDKIM(またはSPF)の結果が必要です。DKIMがなければ、あなたのメールは迷惑メールとしてフィルタリングされたり、攻撃者になりすまされたりする可能性がはるかに高くなります。

DKIM、SPF、DMARCの違いは何ですか?

SPFはどのサーバーがあなたのドメインのメールを送信できるかを認可し、DKIMは各メッセージを暗号学的に署名して改ざんされずにあなたから送られたことを証明し、DMARCはその両方を可視のFromアドレスに結びつけて失敗時のポリシーを定めます。SPFは送信元を確認し、DKIMはメッセージの完全性を確認し、DMARCはその間のアラインメントを強制します。

DKIMが正しく設定されているかを確認するにはどうすればよいですか?

自分が管理するアドレス宛てにテストメッセージを送信し、ヘッダーにdkim=passがあるか調べるか、DKIMルックアップツールを使ってセレクター別に公開済みの鍵を照会します。ツールは、レコードが存在し、正しい形式であり、有効な公開鍵を返すことを確認します。無料のDKIMルックアップツールは、任意のドメインとセレクターを数秒でチェックします。

Rated 5/5 on G2 · Trusted since 2018

Trusted by 50,000+ domains

"AutoSPF Flattens SPF Records Seamlessly & Keeps Changes Logged - I am quite pleased with the product"

It does what it promises to do, and does it very well. I appreciate that it keeps a log of changes made, which prevents many mistakes. A client's SPF record would have way too many lookups, but AutoSPF makes that problem go away. The length of the SPF record is typically not the issue; it's the amount of lookups in the record that are. AutoSPF "flattens" the record, automatically expanding the defined lookups to IP addresses or ranges. And it auto-updates the record when the un-flattened lookups change.
PJ

Peter J.

President · Small-Business (50 or fewer emp.)

"Helped us go beyond capacity"

AutoSPF did exactly as described, it helped us get past our 10 lookup limit. Afterwards, we hit another limit regarding overall capacity and when contacted, they quickly provided us with a new solution to eliminate capacity issues entirely going forward, so now we can add as many SPF records as needed. They also provided us with a personalized support video explaining their new method in its entirety using our instance as the example.
VU

Verified User

Financial Services · Mid-Market (51-1000 emp.)

"Great service and great support"

AutoSPF was easy to initially set up on our own and a great cost effective entry into spf flattening. Needed our first support assistance today and got great response including a video demonstrating the issue I was trying to solve, a quick fix, and more detailed followup.
GF

Greg F.

Mid-Market (51-1000 emp.)