Menu

BLOG ベアメールブログ

DKIMとは? 仕組みから導入方法までわかる入門ガイド

DKIM

Last Updated on 2025.05.20

「DKIM」は、電子署名を用いてメール送信者のドメインを認証する技術です。2024年2月以降、Googleアカウント宛に1日5000通以上送信するユーザはSPFとDKIMによる認証、そしてDMARCの導入が義務化されました。ここでは、DKIMが必要とされる背景から、DKIMの仕組み、導入方法などについて解説します。

※本記事は最新の情報をもとに、2025/5/20に内容を更新いたしました。

おすすめのホワイトペーパーのご案内。「DKIMのすべて」のダウンロードはこちらから

送信ドメイン認証「DKIM」とは

DKIMとは

DKIMは、「DomainKeys Identified Mail」の略称であり、「ディーキム」と読みます。送信者がメールに電子署名を付与し、受信者が署名の検証を行うことで、メールの内容がメール作成時点(オリジナル)から改竄されていないことを検証する仕組みです。

DKIMの歴史

2005年頃、検索エンジン大手の米Yahoo!社とネットワーク関連機器大手の米Cisco社の2社は、偽装メールに対する技術開発で協力しはじめます。Yahoo!が持つ「DomainKeys」と、Ciscoが持つ「Identified Internet Mail(IIM)」という2つの署名ベースの認証技術が統合され、標準化が進められました。その結果、2007年5月に「RFC4871」として公開され、現在のDKIMの原型が出来上がりました。その後はいくつかの変遷をへて、2011年9月にRFC6376へ、2013年6月にSTD76(Standard)として規定され、インターネット標準の送信認証技術として認知されています。

「RFC 6376 – DomainKeys Identified Mail (DKIM) Signatures」https://datatracker.ietf.org/doc/html/rfc6376

DKIMの必要性

オンラインでの消費者行動が増えている今、メールは商取引の正当性を担保する重要な「証跡」です。そのため、送信元のみならず「内容の改竄」を防ぐ仕組みとしてDKIMが重要視されています。

巧妙化する迷惑メールへの対策としても、メール送信者は SPF に加え DKIM への対応がより一層求められるようになっています。現在ではDKIM に対応していないメールは迷惑メールとして扱われてしまい、宛先に届かなくなってしまう可能性が高まっています。

実際に、2024年2月から適用された新しいGmailの送信者ガイドラインでは、1日5000通以上のメールをGmail宛に送信する場合はSPFとDKIM両方の認証が義務付けられることになりました。

加えてDMARCの認証に合格する必要もあるため、該当する企業はDKIMも作成者署名(ヘッダFromのドメインで署名を行う)での対応を併せて検討すべきでしょう。

Gmailのガイドラインについて詳しくはこちらのブログで解説しています。
2024年2月以降Gmailに送信するための新要件とは? 新しい送信者ガイドラインへの対応策 | ベアメールブログ

DKIMとDMARCの関係性について詳しくはこちら。
DMARCのアライメントとは? SPF・DKIMアライメントをPassするためのポイント | ベアメールブログ

DKIMの仕組み

DKIMとは具体的にどのような仕組みなのでしょうか。ここではDKIM認証の流れから、DKIMの署名の種類、DKIMセレクタなど、DKIMの技術的なポイントについて解説します。

DKIM認証の流れ

DKIM認証は、送信者側がメールに付与した署名を、受信者側が検証することで成り立ちます。具体的には以下のような流れで認証が行われます。

ステップ1:
DKIMに利用する秘密鍵を送信メールサーバーに登録する。

ステップ2:
DKIMに利用する公開鍵は、送信ドメインの DNSサーバー(TXT レコード)に登録する。

ステップ3 :
メール送信時に、メールのヘッダ・本文から作成したハッシュと送信メールサーバーの秘密鍵を使って電子署名を付与する。

ステップ4 :
受信者はメールのヘッダ・本文からハッシュを作成する。また、公開鍵を利用して電子署名からハッシュを復号し、受信者が作成したハッシュと比較することで偽装および改竄がされていないことを確認。

DKIM署名の種類

DKIMの電子署名には「作成者署名」と「第三者署名」の2種類があります。

作成者署名

メール送信者(作成者)のドメインで署名を付与する方式です。
自社のメールサーバで署名を行い、自社ドメインのDNSサーバにDKIMの公開鍵を設定します。

導入の手間はかかりますが、ヘッダFrom(メールソフト上で表示される差出人)のドメインとDKIM認証ドメインを一致させられるため、DMARCの認証にも合格することができます。

DKIMの作成者署名の説明図

第三者署名

メール送信者(作成者)のドメインではなく、第三者のドメインで電子署名を付与する方式です。
例えばメール配信サービスを利用している場合、そのメールサービスのドメインを署名に使用し、メールへの署名の付与や公開鍵の設定などもサービス事業者が行うというパターンです。

利用者は特に対応することがないため導入のハードルは低いですが、ヘッダFromとDKIM認証ドメインが一致しないためDMARCの認証が失敗してしまいます。

DKIM第三者署名の説明図

メール作成・配信に外部サービスを利用する場合や、自社でDKIMを利用する仕組みを構築するリソースが無い場合は、第三者署名を利用するという選択肢もあるでしょう。ただしDMARCを導入したい場合は、第三者署名では認証が失敗してしまうため、作成者署名に対応する必要があります。
外部メールサービスを利用している場合でも、自社のドメインをDKIM署名に使用するカスタマイズを行うことでDMARC認証に合格することは可能です。具体的な対応方法については、利用中のサービスの仕様によって異なるためサービスの指示に従ってください。

DMARC認証とDKIMの関係について詳しく知りたい方はこちらの記事をご参照ください。
DMARCのアライメントとは? DMARC認証をクリアするためのポイント | ベアメールブログ

DKIMのセレクタとは

DKIMは、送信メールサーバーごとに署名を行うことになるため、1つのドメインで複数のDKIM設定が必要となるケースが多くあります。そこで、DKIMではDNSに複数の公開鍵を設定できるように「セレクタ」というラベルが設けられています。

DKIMで電子署名を行うと、メールヘッダに以下のようなDKIM署名(DKIM-Signature)が付与されます。

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mail2025; ...

この「s=mail2025」の部分がセレクタです。

そしてDNSに登録するDKIMレコードは、以下のような形式となります。

<セレクタ>._domainkey.example.com. IN TXT “v=DKIM1; k=rsa; p= MIIBIjANBgkqh..."

今回の例で言えば、以下のようになります。

mail2025._domainkey.example.com. IN TXT “v=DKIM1; k=rsa; p= MIIBIjANBgkqh..."

セレクタは、公開鍵・秘密鍵のペアを作成するときに指定するため、クラウドサービスでDKIMを利用する場合は、サービス側で指定されたセレクタを利用するケースも多いです。もしドメイン内でセレクタが重複してしまうと、DKIM認証にエラーが生じる恐れがあるため、必ず一意となるように注意が必要です。

セレクタに使用できる文字は、英数字とハイフン、アンダースコアのみです。セレクタの命名パターンとしては、以下のようなものが考えられます。

  • 日付ベース
    • 例:s202505,2025-0520
    • 鍵の発行時期がわかりやすく、鍵をローテーション管理したい場合などに便利
  • 用途ベース
    • 例:marketing, transaction, サービス名など
    • メールの種類や送信元システムなどを判別しやすい
  • システム識別子+日付
    • 例:app01_2025, marketing-202505, 2025_webapp
    • セレクタの重複リスクを低減できる

DKIMに対応するには?

DKIMに対応するためには、送信メールサーバーで署名の仕組みを整え、DNSに公開鍵(DKIMレコード)を登録する必要があります。 対応方法は、「どのようにメールを送信しているか」によって異なります。ここでは大きく2つのケースに分けて、対応の流れを簡単に紹介します。

メール配信サービスを利用している場合

メール配信サービス(例:SendGrid、Amazon SES、その他メール配信システムなど)を使っている場合、DKIMへの対応は比較的簡単です。
多くのサービスでは、管理画面上でDKIMを有効にすると、必要なDNSレコード情報が提示され、それを自社のDNSに追加するだけで設定が完了します。

対応の流れ

  1. 管理画面でDKIM(またはドメイン認証)機能を有効にする
  2. 提示されたDNSレコード(TXTまたはCNAME)を自社ドメインに追加
  3. レコードの反映を待ち、認証ステータスが「成功」になったことを確認

ポイント

  • 通常メールサービス側が署名処理を行います。
  • デフォルトでは第三者署名になっているケースも多いです。作成者署名が必要な場合はカスタムが可能か確認しましょう。
  • 必要に応じてセレクタ名のカスタマイズや、鍵のローテーション方法も確認しておきましょう。

自社でメールサーバーを運用している場合

自社でメールサーバー(Postfixなど)を構築・運用している場合、DKIMの対応には電子署名を行うための追加のソフトウェア導入と、秘密鍵・公開鍵の作成、DNS設定などが必要になります。手間はかかりますが、柔軟な運用が可能です。

対応の流れ

  1. DKIM署名用のソフトウェア(OpenDKIMなど)をインストール
  2. 秘密鍵と公開鍵を生成し、秘密鍵はサーバー側で保管
  3. 公開鍵に対応するDNSレコードを自社ドメインに追加
  4. メールサーバーと署名ソフトを連携させて、送信時に署名が付与されるよう設定

ポイント

  • セレクタ名は自由に決められるため、用途や時期で整理しておくと運用しやすくなります。
  • テスト送信や外部の検証ツールを使って、正しく署名・検証ができているかを確認しましょう。
  • 鍵の更新(ローテーション)は手動で行う必要があります。

PostfixとOpenDKIMを使用したDKIMの設定方法については、こちらのブログで詳しく解説しています。OpenDKIM×Postfixを使ってDKIMを設定する | ベアメールブログ

自社システムでDKIM対応が難しいなら

ベアメール メールリレーサービスでは、お客さまシステムにDKIM認証の仕組みを導入せずとも、DKIMに対応できる「SMTP DKIMオプション」を提供しています。

ベアメール メールリレーサービスは、携帯キャリアやメールプロバイダからのブロックを避けて、高い到達率でメールを配信するサービスです。お客さまシステム/メールサーバがどこにあっても、メールのリレー設定をするだけで利用可能です。

お客さまシステムよりベアメールへSMTPでメールをリレーいただくことで、ベアメール上でお客さまのドメインを使用してDKIMの電子署名を付与します。お客さまシステムに手を加えることなく、DKIMの公開鍵をDNSサーバーに登録するだけで手軽にDKIM対応が可能となります。ご興味をお持ちの方は、ぜひお気軽にお問い合わせください。

SMTP DKIMオプションの説明図

まとめ

本記事では、DKIMの歴史や仕組み、導入方法などについて解説してきました。DKIMは導入に一定の手間がかかります。しかし、スパム対策が強化されている昨今では、DKIMに対応できていないメールは迷惑メールとして扱われるリスクが高まっています。迷惑メールと判定されず、メールをより確実に相手に届けるためにも、DKIMの導入を検討してみてはいかがでしょうか。