Back to Course
Լight modeDark mode

DKIM認証失敗

DKIM失敗とは?

DKIMの失敗とは、DKIM署名ヘッダーとFromヘッダーで指定されたドメインの不一致、または鍵ペアの値の不一致が原因で、DKIM認証チェックが失敗した状態を指します。

DKIMが失敗するシナリオは以下の通りです

1. DKIM レコードの構文に誤りがあるとき

 

「信頼できる DKIM レコード生成ツールを使用せず、ドメインに手動で設定しようとすると、実装に誤りが生じる可能性があります。DNSレコードの構文エラーは認証失敗につながる可能性があり、この場合DKIMは失敗します。 

2. DKIM識別子のアライメントの失敗

「ドメインに DKIM に加えて DMARC を設定している場合、DKIM の検証中に、メールヘッダーの DKIM 署名にある d= fieldのドメイン値は、From アドレスに見つかるドメインと一致しなければなりません。これには、2つのドメインが完全に一致する必要がある厳格なアライメントと、組織的な一致でチェックを通過できる緩やかなアライメントがあります。

DKIM 署名ヘッダーのドメインが From ヘッダーのドメインと一致しない場合、DKIM の失敗が発生する可能性があります。これは、ドメインのなりすましや偽装攻撃の一般的なケースかもしれません。」

3. 第三者のメールベンダーに対して DKIM を設定していない

組織を代表してメールを送信するために複数の第三者メールベンダーを使用している場合、発信メールの DKIM を有効にする方法について、それらのベンダーと連絡を取る必要があります。第三者サービスに登録されている独自のドメインやサブドメインを使用して顧客にメールを送信する場合は、必ずベンダーにDKIMの処理を依頼するようにしてください。

 

理想的には、第三者ベンダーがメールのアウトソーシングを支援している場合、サードパーティベンダーはお客様独自のDKIMセレクタを使用してDNSにDKIMレコードを公開することで、お客様のドメインを設定します。これにより、あなたが直接介入する必要はありません。

または、

DKIM キーペアを生成し、プライベートキーをメールベンダーに渡し、公開キーを自身の DNS に公開することもできます。

このような設定ミスは DKIM の失敗につながる可能性があるため、DKIM の設定に関してサービスプロバイダーと率直にコミュニケーションを取ることが重要です。

注:一部の第三者交換サーバーは、メッセージ本文にフォーマットされたフッターを挿入することがあります。これらのサーバーがメール転送プロセスの中間サーバーである場合、結合されたフッターは DKIM の失敗の原因となることがあります。

4. サーバ通信の問題

特定の状況下では、メールが DKIM が無効になっているサーバから送信されることがあります。そのような場合、そのメールの DKIM は失敗します。通信する当事者間で DKIM が適切に有効化されていることを確認することが重要です。

5. メール転送エージェント(MTA)によるメッセージ本文の変更

SPF と異なり、DKIM はメッセージの真正性を検証する際に送信者の IP アドレスやリターンパスを検証しません。代わりに、メッセージの内容が転送中に改ざんされていないことを保証します。時には、参加している MTA やメール転送エージェントが、行の折り返しやコンテンツのフォーマット中にメッセージ本文を変更することがあり、これが DKIM の失敗につながることがあります。

メールの内容の書式を整えることは通常、各受信者にとってメッセージが容易に理解できるようにするための自動化されたプロセスです。

6. DNS の停止 / DNS のダウンタイム

これは、DKIM の失敗を含む認証失敗の一般的な原因です。DNS の停止は、サービス拒否攻撃を含む様々な理由で発生する可能性があります。ネームサーバーの定期的なメンテナンスも、DNS のダウンタイムの理由となることがあります。この(通常短い)期間中、受信サーバーは DNS クエリを実行できません。

皆さんがご存じの通り、DKIM は DNS に TXT/CNAME レコードとして存在し、クライアントサーバーは認証中に送信者の DNS に公開鍵を問い合わせるルックアップを実行します。停止中にはこれが不可能となり、その結果 DKIM が機能しなくなる可能性があります。

7. OpenDKIM の使用

OpenDKIMとして知られるオープンソースのDKIM実装は、Gmail、Outlook、Yahooなどのメールボックス・プロバイダで一般的に使用されています。

OpenDKIM は、検証中にポート 8891 を通じてサーバーに接続します。時々、間違った権限を有効にしているためサーバーがソケットにバインドできず、エラーが発生することがあります。

ディレクトリを確認して、正しく権限を有効にしているか、またはソケット用のディレクトリが設定されているかどうかを確認してください。

Course content
メール認証の基礎