「No DKIM Record Found」エラーの原因と解決方法
著者: Maitham Al Lawati
翻訳: 古川 綾乃
この記事はPowerDMARCのブログ記事 How to fix “No DKIM record found”? の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。
このページをご覧になっている方は、以下のいずれかのメッセージを目にしたことがあるかもしれません。
- No DKIM record found
- DKIM record is missing
- No DKIM record
- DKIM record not found
- No DKIM record published
- Unable to find DKIM record
DKIM は、送信メールに電子署名を付与し、受信側のMTAが送信元を検証できるようにする、広く利用されているメール認証規格です。
「No DKIM record found」というメッセージが表示された場合、お使いのドメインにDKIMが設定されていないことを意味します。
ドメインにDKIMを設定することで、セキュリティを向上させることができます。
当社のDKIMレコードチェッカーを使用して、ドメインがなりすまし攻撃に対して適切に保護されているか確認してください。
主なポイント
- DKIMは、送信メールの真正性を検証し、メールのなりすましを防ぐために重要な仕組みです。
- DKIMを設定することで、ドメインのセキュリティを強化し、メール配信率の向上が期待できます。
- DKIM署名付きメールはスパムと判定されにくくなり、受信トレイに届く可能性が高まります。
- DKIMレコードを公開するには、公開鍵と秘密鍵のペアを生成し、公開鍵をDNSのTXTレコードとして公開する必要があります。
- なりすましやフィッシング対策を強化するため、DKIMはSPFやDMARCと併せて運用することが推奨されます。
DomainKeys Identified Mail(DKIM)とは
DomainKeys Identified Mail(DKIM)は、第三者が正規の送信者になりすましてメールを送信することを防ぐためのメール認証規格です。
これは、受信者やメールサーバーが検証できる電子署名によって実現されます。
送信者はDKIM用の公開鍵と秘密鍵のペアを生成し、公開鍵をDNSのTXTレコードとして公開します。
送信メールには秘密鍵を用いて署名が行われ、受信側はDNSに公開された公開鍵を使ってその署名を検証します。
DKIMでは、送信者がメールの一部に電子署名を付与することで、そのメールが送信途中で改竄されていないことや、正当な送信元から送信されたことを検証できるようになります。
その主な目的は、メールアドレスのなりすましを防ぐことです。
なぜDKIMを設定する必要があるのか
おそらく、DKIMメール認証を導入するよう勧められたことがあるでしょう。
では、なぜ企業はDKIMを導入する必要があるのでしょうか。
また、このプロトコルを実装することでどのようなメリットが得られるのでしょうか。
企業は通常、組織内で大量のメールをやり取りし、日々のメール送信やメールマーケティングキャンペーンを実施しています。
DomainKeys Identified Mail(DKIM)は、組織が送信するあらゆるメールの信頼性を高める効果的なメール認証技術です。
これは、メールの検証、認証、および配信のためにRFC6376で規定されている仕組みの一つです。
DKIMは公開鍵と秘密鍵のペアを使用し、メール送信処理の最後にドメインがメールへ電子署名を付与できるようにします。
これにより、転送サービスやフィルタリングサービスを含む第三者によってメッセージが改竄されたかどうかを検証できます。
DKIMはメール配信率の向上に役立つだけでなく、ドメインのなりすまし対策にも有効です。
- DKIM署名付きメールは、追加のセキュリティと真正性を提供するため、スパムフォルダではなく受信トレイに届く可能性が高くなります。
- DKIMはGmail、SendGrid、Mailchimpなどの主要なメールサービスで簡単に設定できます。これらのサービスでDKIMを設定する方法についても確認しておきましょう。
- ドメインにDKIMを設定することで、ISPは時間の経過とともにそのドメインに対する信頼性を評価しやすくなり、正当なメールが配信に失敗する可能性を低減できます。
- また、メール転送時にはSPF認証が失敗する場合がありますが、DKIMはそのような状況でも認証を維持できるため、正当なメールが受信者の受信トレイに届く可能性を高めます。
DKIMレコードの構文
検証プロセスの前提として、ドメインにDKIMを設定すると、送信サーバは各メールの送信時にDKIM署名を付与します。
メール送信時には、メッセージヘッダの内容からハッシュ値が生成され、そのハッシュ値に対して秘密鍵で署名が行われます。
生成されたDKIM署名は次のようになります。
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=s1; d=yourdomain.com;
h=From:Date:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:To:Message-ID;
i=support@yourdomain.com; bh=wAsbKJhhfgqwOy8qkdk1MjM0NTY3ODkwMTI=;
b=aBecQ+7rHDjakhQs3DPjNJKSAAHHsgasZSv4i/Kp+sipUAHDJhaxhBGf+SxcmckhbsbHObMQsCNAMNBSHmnljHAGjaxk2V+baNSHKJBjhdjajdHHXASHSjlhcskOtc+sSHKASJKsbakbsjhhHJAJAHlsjdljka4I=+
DKIM-Signatureタグの説明
| タグ | 説明 |
|---|---|
| v | DKIMのバージョン |
| c | ヘッダおよび本文の正規化(Canonicalization)方式 |
| s | DKIMセレクタ |
| d | 署名ドメイン |
| h | メッセージヘッダ |
| i | 署名ドメインの識別子 |
| bh | 本文のハッシュ値 |
| b | ヘッダおよび本文に対するDKIM署名 |
この署名は送信サーバによってメールヘッダに追加されます。
これにより、受信サーバはメールを認証できる状態になり、メッセージが改竄されていないことを確認できます。
受信メールサーバは、まず以下の項目を確認することでメールの検証を開始します。
- DKIMバージョンが仕様を満たしていること
- 送信ドメインとDKIM署名ドメインが一致していること
- hタグにFromヘッダフィールドが含まれていること
送信メールを認証する際、受信サーバはドメイン名とDKIMセレクタを使用してDNS参照を実行し、送信ドメインのDNSから公開鍵を取得します。
検索対象となるTXTレコードは次のようになります。
s1._domainkey.yourdomain.com
上記の例では、s1 = DKIMセレクタを意味します。
DKIMレコードの例
ドメイン用に生成されたDKIMレコードは次のようになります。
(このDNS TXTレコードはドメインのDNSに公開され、DKIM検証時に受信MTAが公開鍵を取得するために使用されます。)
v=DKIM1; p=QUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQWdRRE1zN1pVUVVTbnFnU3hSRWVxMnM4cm4zZDhRV1JDd0VncDlQQ0NMUXIzQWsraWs3WWp6QzhSVDN4R29NeXdFWGQ3emxXaWRGS2pBWU93Q3l1Sy9va1FiZVBqcnVHMkQyRWdmYU9hQ1c0N3F1U2dlOCtxNTRYQVMyMEhFc1c0TVVXN1dKanhHTGlNRjN6WnkxNjJoZFc2RmRhaFFralpFTWtsY2J3enZENngxdz09IA==
DKIM DNS TXTレコードのタグ説明
| タグ | 説明 |
|---|---|
| v | 使用するDKIMバージョンを指定します |
| p | 受信サーバがDKIM検証時に取得する公開鍵を指定します |
「No DKIM Record Found」メッセージを解決する方法
「No DKIM record found」というメッセージを解消するには、DNSにDKIMレコードを公開して、ドメインにDKIMを設定する必要があります。
当社の無料DKIMレコード生成ツールを使用すると、DNSへ公開するための正しい形式のDKIMレコードを簡単に生成できます。
必要な手順は次のとおりです。
手順内容
- DKIMセレクタを入力します。ドメインのDKIMセレクタの確認方法を参照してください。
- ドメイン名(例:yourdomain.com)を入力します。
- 「Generate DKIM Record」をクリックします。
- 秘密鍵が生成されます。
この鍵はDKIM署名ツールに設定する必要があります。
秘密鍵は厳重に管理してください。
第三者が入手すると、あなたのドメインになりすましてメールへ署名できる可能性があります。 - 公開鍵を含むDKIMレコードが生成されます。
このレコードをドメインのDNSへ公開します。
「No DKIM Record Found」を解決した後は?
DKIMだけでは、ブランドやドメインのなりすましを完全に防ぐことはできません。
ドメインのなりすまし、フィッシング攻撃、およびBEC(Business Email Compromise)からより高い保護効果を得るには、SPFとDMARCも併せて設定する必要があります。
これらの認証プロトコルを組み合わせることで、ドメインアラインメントを確認し、メールが正当な送信元から送信されていることを検証できます。
さらに、認証に失敗したメールを受信サーバがどのように処理するかを指定することもできます。
この仕組みにより、ドメインの偽装やなりすまし攻撃から組織を保護できます。
この記事が問題解決の助けとなり、「No DKIM record found」というメッセージに悩まされることがなくなれば幸いです。
無料トライアルに登録して、メール配信率の向上とメールセキュリティの強化をぜひご体験ください。