Menu

BLOG ベアメールブログ

DKIMとは? 認証や署名の仕組み、導入方法を基礎から解説

DKIMとは? 認証や署名の仕組み、導入方法を基礎から解説

DKIM(DomainKeys Identified Mail)は、メールに電子署名を付与し、署名ドメインの確認や改ざん有無の検証を行う送信ドメイン認証技術です。

近年は、なりすましメール対策の観点から、GmailやiCloud Mail、Outlook.comなどの主要なメールサービスで送信者に対する認証要件が強化されており、メールを安定して届けるためにも、DKIMへの対応が重要になっています。

本記事では、DKIMの基本的な仕組みから、認証の流れ、作成者署名と第三者署名の違いまで、わかりやすく解説します。自社のメール送信環境でDKIMの導入を検討している方は、ぜひ参考にしてください。

お役立ち資料のダウンロードページへ移動(『DKIMのすべて』:DKIMの基礎知識・導入方法・認証結果・改善するポイント)

DKIMとは

DKIMは、送信ドメイン認証技術の一つです。送信側は、自身で管理する秘密鍵を使ってメールに電子署名を付与します。受信側は、DKIM署名に記載されたドメインのDNSから公開鍵を取得し、電子署名を検証します。検証に成功すれば、署名対象となったメールの内容が署名後に改ざんされていないことや、対応する秘密鍵を持つ署名者によって署名されたことを確認できます。

ただし、DKIMだけでメールの差出人が正規の送信者であることを保証できるわけではありません。DKIMでは、メールの差出人欄に表示されるヘッダFromのドメインと、DKIM署名に使用するドメインが異なる場合もあります。そのため、なりすましメール対策では、SPFやDMARCと組み合わせて利用することが重要です。

SPF・DMARCの仕組みや設定方法については、以下の記事で詳しく解説しています。

DKIMの仕組み

DKIMでは、秘密鍵と公開鍵のペアを使用して、メールへの電子署名の付与と検証を行います。ここでは、DKIM認証の流れを4つのステップに分けて解説します。

DKIM認証の仕組みを説明した図

①秘密鍵を送信メールサーバーに登録する  

まず、DKIMで使用する秘密鍵と公開鍵のペアを用意し、秘密鍵をDKIM署名を行う送信メールサーバーに登録します。

秘密鍵は、送信メールに電子署名を付与するために使用します。外部に公開されると第三者に不正な署名を作成されるおそれがあるため、送信側で適切に管理する必要があります。

②公開鍵を署名ドメインのDNSに登録する  

秘密鍵と対になる公開鍵は、DKIM署名に使用するドメインのDNSに登録します。公開鍵は、メールを受信したサーバーが署名を検証する際に使用するため、外部から取得できる状態にしておきます。

DKIMの公開鍵は、セレクタと呼ばれる識別子を含むホスト名に、DNSのTXTレコードとして登録します。

DKIMセレクタの意味や役割については、以下の記事で詳しく解説しています。

③秘密鍵を使ってメールに電子署名を付与する

メールを送信する際、送信側はまずメール本文をもとにハッシュ値を生成します。次に、署名対象となるヘッダと本文のハッシュ値などをもとに、秘密鍵を使って電子署名を生成します。生成された電子署名や本文のハッシュ値、署名に使用したドメイン、公開鍵を特定するためのセレクタなどの情報は、「DKIM-Signature」ヘッダとしてメールに付与されます。

④受信側が公開鍵を取得して署名を検証する

メールを受信したサーバーは、DKIM-Signatureヘッダに記載された署名ドメインとセレクタをもとにDNSへ問い合わせを行い、公開鍵を取得します。

取得した公開鍵を使って電子署名を検証し、署名対象となったメールの内容が署名後に改ざんされていないか、対応する秘密鍵によって署名されているかを確認します。検証に成功すると、DKIMの認証結果は「pass」となります。

DKIM認証結果の確認方法については、以下の記事で詳しく解説しています。

DKIMの作成者署名と第三者署名の違い

DKIM署名は、ヘッダFromとの関係から「作成者署名」と「第三者署名」と呼び分けられることがあります。この違いは、DMARCにおけるDKIMアライメントの結果にも関係するため、それぞれの特徴を理解しておくことが重要です。

アライメントの仕組みについては、以下の記事で詳しく解説しています。

作成者署名とは

作成者署名とは、メールのヘッダFromのドメインと同じドメインを使用してDKIM署名を行う方式です。例えば、ヘッダFromが「user@example.com」の場合、DKIM-Signatureヘッダの「d=」にも「example.com」が指定されます。

作成者署名では、受信者に表示されるヘッダFromのドメインと、DKIMで認証されたドメインが一致します。そのため、DKIM認証に成功すればDMARCのDKIMアライメントを満たし、DMARC認証にも利用できます。

なお、メール配信サービスを利用している場合、作成者署名に対応できるかどうかはサービスの仕様によって異なります。ヘッダFromと同じドメインをDKIMの署名ドメインとして設定できるかを確認しましょう。

第三者署名とは

第三者署名とは、メールのヘッダFromのドメインとは異なるドメインを使用してDKIM署名を行う方式です。例えば、ヘッダFromが「user@example.com」で、DKIM-Signatureヘッダの「d=」に「mailservice.example」が指定されている場合は、第三者署名となります。

メール配信サービスでは、サービス提供事業者のドメインを使用してDKIM署名を行うケースがあります。この場合、自社でDKIM用の鍵を管理したり、署名ドメインのDNS設定を行ったりする必要がなく、導入・運用の負担を抑えられることがあります。

一方、ヘッダFromとは異なる組織のドメインで署名している場合、DKIM認証に成功してもDMARCのアライメントは満たしません。ただし、SPF側で認証とアライメントの両方に成功すれば、DMARC認証はPassとなります。DMARCへの対応を進める場合は、DKIMに使用される署名ドメインを確認しましょう。

DKIMを導入する方法

DKIMを導入する際は、まずDKIMを設定するメールの送信環境を確認します。そのうえで、公開鍵と秘密鍵のペアやセレクタを用意し、公開鍵をDNSに登録します。登録が完了したら、送信側でDKIM署名を有効にし、DKIMレコードが正しく設定されているかを確認します。あわせて、実際にメールを送信し、DKIM認証に成功するかも確認しましょう。

具体的な設定方法は、利用しているメールサービスやメール配信システムによって異なります。DKIMの詳しい設定手順やDKIMレコードの書き方については、以下の記事で解説しています。

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

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

お客さまシステムからベアメールへメールをSMTPリレーすると、ベアメール上でお客さまのドメインを使用してDKIM署名を付与します。DKIM署名機能をお客さまシステムに実装することなく、公開鍵をDNSサーバーに登録するだけで手軽にDKIM対応が可能です。

自社システムへのDKIM導入が難しい場合や、対応にかかる負担を抑えたい場合は、ぜひお気軽にご相談ください。

「SMTP DKIMオプション」をはじめとした機能詳細や料金については、以下の資料で詳しくご紹介しています。

ベアメール サービス資料セットのダウンロードページへ移動

ベアメール | メールを確実に届けることを支援するサービス

まとめ

本記事では、DKIMの基本的な仕組みや認証の流れ、作成者署名と第三者署名の違いについて解説しました。

なりすましメール対策の観点から、送信ドメイン認証の重要性は高まっており、主要なメールサービスでは認証要件が強化されています。安定したメール配信を行うためにも、DKIM未対応の場合は自社のメール送信環境を確認し、早めに対応を進めることが重要です。

DKIMの仕組みや導入方法、認証結果の見方については、以下の資料にまとめています。DKIMの導入を検討される際に、ぜひご活用ください。

お役立ち資料のダウンロードページへ移動(『DKIMのすべて』:DKIMの基礎知識・導入方法・認証結果・改善するポイント)