treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

DKIMってなんだろう(をざっくりと)

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サーバを提供してくれているレジストラやレンタルサーバのサービス提供者によって変わってくる。