DKIM対応についていくつか使っているサービスから注意喚起が来たので、DKIMって何?ということをご報告です。
ドメイン認証技術?あまりちゃんと理解できていない(ので薄い)けど、調べたことをメモ。
DKIM対応
ちょっと前(先月くらい)の話になるのですが、使っているSendGridやMicrosoft 365(旧Office 365)から同じタイミングで「DKIM」について(内容自体はちょっと異なる内容ですが)お知らせメールを受け取りました。
DKIM、実は初耳だったもので、調べて見ることにしました。
ドメイン認証技術?
SendGridのDKIMに関する解説
https://sendgrid.kke.co.jp/blog/?p=2044
DKIMはDomainKeys Identified Mailの略で、電子メールを送信ドメイン認証技術で認証することでなりすましやメールの改ざんを検知できるようにする技術。
メールを送信する時に送信元となるコンピュータが電子署名を行って、受信側のメールサーバがそのメールを受け取るに当たってその署名情報を検証して、送信されたドメインの正当性を保証してもらう、という保護技術のよう。
電子署名によって送信元のドメインを検証するからなりすましメールを排除可能になるということですね。
しかし、これってSPFレコードと同じような気が…
SPFレコードとはちょっと違う。
独自ドメインを保有している管理者がメールサーバをドメイン内に設置するときに、MXレコードをDNSサーバに設定することになります。
これ以外に最近ではSPFレコードを設定することが推奨されています。(SPF=Sender Policy Framework)
メールを受信するサーバが電子メールを受け取る処理を実行する前に、そのメールの発信元を検証する、というところはDKIMと同じなのですが、実際に確認する情報がDKIMとSPFでは違っているようです。
DKIMは電子署名を検証するのに対して、SPFはDNSにリクエストを出してSPFレコードを検証することで、IPアドレスを検証し送信ドメインとIPアドレスの組み合わせが合致するかどうかで、メール送信元が正しい送信元であることを確認します。
発信元が正規のメールサーバから発送されたことをSPFレコードで確認することで「正しい送信元のメールサーバから送信された」ことが保証され、なりすましを防止する、と言う効果を得ていると言えそうです。
これがDKIMだと?
DKIMの認証
DKIMではSPFのような送信元のIPアドレスを認証に使うわけではないようです。
送信元がDKIMによって実際に送信する電子メールを電子署名技術を使って出自を明らかにすることによって、受信側のコンピュータで送信されてきたメールが改ざんされていないことを確認して上で受信する、という認証技術のよう。
うーん、難しいな。
簡単に言えば送信する側が鍵認証で署名し、受信側が鍵認証でその電子メール(のヘッダ)が「正しい」ということを確認する、という技術のようです。
SPFは受信する側がDNSサーバにリクエストを出してメール発信元の正当性を確認するのに対して、DKIMはメールデータそのものを(電子署名技術を利用して)確認する、というような認識をしました。
SPFはDNSサーバのレコード情報で送信してきた対象を検証するのに対して、DKIMは送信されてきたメールデータそのものから正しい送信元が送信してきたデータだということを確認する、という技術のようです。
メール中継サービスを利用しているケース
SendGridのようなメール中継サービスを利用している場合には、送信元が実施しているわけではなく、SendGridのような中継サービスを提供するMTAで実施していることもあるようです。
Microsoft 365では「Office365を介して電子メールを中継または転送するための構成を強化」施策としてDKIMがExchange Onlineに導入された、と言ったところでしょうか。
さらに、DKIMとSPFを組み合わせたようなDMARC(Domain-based Message Authentication, Reporting, and Conformance)という認証技術もあるようです。うーん、なかなかに頭の中がこんがらがってきます。
置いてかれないようにするには、新しい技術の情報は随時チェックしておかないといけないですね。
■追記:(2021-07-20)
SendGrid経由でメールを送信する場合、『独自ドメイン利用(Sender Authentication)』という機能を利用すると、DKIM(SPFも)に対応できるらしい。
独自ドメイン利用(Sender Authentication)および設定時のDNSレコードについて、詳しく教えてください – サポート
ただし、DNSレコードがSendGridのサービスが想定しているように設定できるかどうかは、DNSサーバを提供してくれているレジストラやレンタルサーバのサービス提供者によって変わってくる。