DKIMとは?
- 2020年11月5日
- by SendGrid
- Category: ベストプラクティス
この記事は How to Use DKIM to Prevent Domain Spoofing の抄訳です。
1980年代に電子メールとSMTP(Simpe Mail Transfer Protocol)の枠組みが確立した当初、メールの正当性を検証する必要はありませんでした。当時電子メールを使っていたのは限られた大企業や教育機関だけだったからです。
ところが電子メールが広まると、悪意あるメールやスパムを送ったり、ドメインをなりすましたりする不届き者が現れます。ある者は有名なブランドや送信者を騙って個人情報を返信させようとしました。またある者は、あらゆる宛先に望まれないメールを送信するような、後に米国の迷惑メール防止法「CAN-SPAM Act」で禁止される送り方をしました。
Tip: なりすましメールとは、送信元メールアドレスを偽って送られるメールのことです。みなさんがメールを送る際は、自身の管理するドメインを用いるようにしてください。
SPF、DKIM、DMARCといったメールの認証は、このような悪意あるメールが受信箱に届くことを防ぐための仕組みです。
何をするもの?
DKIM(Domain Keys Identified Mail)は、CiscoとYahooが提唱した、送信者がメッセージに「署名」を付与できる暗号技術です。メールの受信者は、そのドメインを管理する送信者が責任を持って送信したかをチェックできます。メッセージがDKIM認証されていない場合、GmailやMicrosoftなどのメールプロバイダはメッセージをブロックして受信箱に届けないことがあります。
どういう仕組み?
DKIMは、ドメインの管理者がメールの送信者であることと、メールが改竄されていないことを確かめます。DKIMの認証は以下の2つのステップからなります。
- 送信者はメールサーバに秘密鍵を配置し、メッセージから電子署名を生成する。
- 受信サーバは[DKIMセレクタ]._domainkey.[ドメイン名]のTXTレコードに書かれた公開鍵を取得し、送られてきた電子署名を検証する。
どうしてなりすましメールを防げるの?
DKIMを設定するということはメールに署名を付与するということであり、あなたがドメインの責任者だと表明するということです。つまり、他の誰かが勝手にそのドメインを使ってメールを送ることを抑止できるのです。
設定した方がいい?
DKIMは受信側が送信者の身元を確認する手段の一つです。正しく設定されていないと多くのメールプロバイダがメールをブロックするため、送りたい宛先に届かない恐れがあります。ほんの少しメールが届かないだけでビジネスが打撃を受けることもありますから、DKIMの重要性は明白です。
SendGridではどうやって設定するの?
SendGridでは、Domain Authenticationという機能でSPFとDKIMの設定ができます。「automated security」というオプションを有効にすると、SPFとDKIM認証のために設定すべきDNSレコードをSendGridが自動で生成します。IPアドレスの追加など、認証設定の更新が必要な場面でも、SendGridが皆さんの代わりに更新を行います。
設定のテストはできる?
DKIMの設定を確認するオンラインツールはたくさんあります。SPFやDKIMの設定を変更した際は、メールを実際に送る前にこれらのツールで確認することを強くお勧めします。
Tip: SendGridでは、DKIMは固定/共有IPアドレスのいずれでも利用可能です。契約プランに関わらず、メール到達率向上の手助けになるでしょう。
DKIMが行わないことは?
DKIMの認証は強力ですが、DKIMが行わないことも知っておきましょう。
- DKIMは、メールボックスプロバイダに対し、受け取ったメールの処理方法を指示しません。DMARCと異なり、DKIM認証が失敗した場合にそのメールをどうするかは受信サーバ側の判断に委ねられます。
- DKIMは、送信者の正当性を保証しているわけではありません。例えDKIMが通っていたとしても、悪徳な業者がそのメールを送っている可能性は捨てきれません。
- DKIMはメールの再送を抑止しません。悪質なメールが受信者によって転送される可能性があり、転送された先で被害が発生することがあります。
SPFとの違いは?両方設定が必要?
SPFは、送信者がどのIPアドレスを用いてメールを送信するかISPに伝える機能です。一方DKIMは、送信者が送った元々のメッセージと送られてきた内容をISPが照合するための機能です。
SPFとDKIMにはそれぞれ足りない部分があり、それ単体では完全な認証にはなりません。SPFはメッセージの内容を認証するものではないですし、DKIMはメッセージの送信元を認証するわけではありません。メールをよりセキュアにするには、どちらの設定も行うことが必要です。SPF/DKIMを設定してメールを正しく配信する方法については、2020 Email Deliverability Guideもご覧ください。
そのほかに気をつけることは?
- DKIMはメールの中身を認証するものなので、電子署名はコンテンツを構築した後に作成する必要があります。署名を作成した後に結びの言葉や空白を足したり、ヘッダを付け加えたりすると、認証が失敗することがあります。
- メールヘッダ単独か、ヘッダと本文の両方を用いて電子署名を作成することができます。Gmailは両方を署名に用いることを推奨しています。
- 米国Yahoo.comのフィードバックループはDKIM署名に用いたドメインに基づきます。すなわち、Yahoo.comは寄せられた苦情から送信者を特定するのにDKIM署名の情報を用いています。DKIM(もしくはDomain Keys)がない場合、Yahooのフィードバックループは利用できません。
- SendGridでメールを送ると、SendGridが用意したDKIMヘッダが自動で挿入されます。
DKIMについて他に参考になる資料はある?
もちろんあります。以下のページなどをチェックしてみてください。
SendGridで送信ドメイン認証を設定する場合の詳細については、以下の日本語ドキュメントもご覧ください。
- チュートリアル:独自ドメインを利用する
- ブログ記事 『SendGridからメール送信する場合のSPFとDKIMの認証の仕組み』:前編・後編
さいごに
ユーザとコミュニケーションを続けていくために、ISPが不正なメールをブロックしやすくなるような施策は積極的に取り入れましょう。DKIM署名をつければ、ISPはブランドを騙るなりすましメールをブロックしてくれます。マーケティングやトランザクションといったメールの種類や、サブドメインの有無に関わらず、全てのメールに署名をつけるようにしましょう。
メールの正当性を示す「鍵」として、DKIMは2つの問いに答えます。メールに正当な署名があるかどうかと、どのドメインが署名を作成したかです。DKIMはメールの到達を保証するものではありませんが、到達率の改善に役立つことは確かです。ドメインが不正利用されることによる二次的な被害も抑止できます。ちょっとの手間で、送信者としての信頼性とブランドを守ることができるのです。
メールの認証技術と到達性向上のためのベストプラクティスについてもっと知りたい方は、SendGrid Email Infrastructure Guideをご覧ください。