DKIMとは
公開鍵暗号方式を用いたメールの送信者の正当性と送信内容の完全性保証
DKIMとは、DomainKeys Identified Mailの略で、公開鍵暗号方式を利用し、 公開鍵をDNSに記載し、秘密鍵を使ってMTAが署名する事で、受信側MTAがメールの送信者の正当性と送信内容の完全性を確認する仕様です。
動作の例
動作の例として、下の図で説明します。
example.comの正当なメールシステムは、Gmailです。
Gmailで、DKIMとはの鍵の発行手続きを行い、公開鍵をDNSにTXTレコードでgoogle._domainkeyとして登録をしておきます。
googleが、セレクタとなります。
もしも、support@example.comのアドレスで、なりすましメールを送ろうとする悪意ある人が、Gmailのアカウントでメールを使って送ろうとします。
受信側のメールサーバが、そのメールを受信する際に、example.comのDNSにDKIMとはの記載があるTXTレコードを問い合わせて公開鍵を入手して、受信したメールの秘密鍵を開錠を試みます。
しかし鍵が違うため開錠できず、そこでsupport@example.comからメールではない事が分かります。
たとえ、メールシステムにGmailを使っていても、ドメインが異なれば、異なる公開鍵・秘密鍵が発行されるために、他のドメインの公開鍵で誤って開錠されるという事はありません。
DKIMとはの設定だけだと、処理をどうするかは受信側メールサーバに委ねられる
DKIMとはレコードを設定すれば、受信側のメールサーバは、メールを受信した際に、正当な送信者から送られたかどうかの判断ができます。
正当ではない送信者から送られたメールをどうするかは、受信側のメールサーバにその処理が委ねられます。
多くのメールサーバで、迷惑メールフォルダに入れる設定にしています。
SPFを設定しているにも関わらず、なりすましメールが送られている場合には、共用のメールシステムを使っていないか、またDKIMとはの設定がされているかを確認することをお勧めします。
送信元が、処理をコントロールしたい場合はDMARCの設定が必要
送信元が、正当ではないメールサーバから自社のドメイン名でのメールを送信された場合の処理をコントロールしたい場合には、DMARCの設定が必須です。
DMARCで、受信するか、隔離するか、排除するか、受信側メールサーバに処理を明示的に指示することが可能となります。
S/MIMEでは駄目なの?
公開鍵方式による暗号化とデジタル署名で、メールの送信者と送信内容の完全性の正当性を確認する標準規格としては、S/MIMEが担ってきました。
SPF & DKIMとはとS/MIMEは何が違うのでしょうか?
S/MIMEの設定・運用は、組織の設定・運用に依らず使えますが、組織単位で見ると、全体への適用で大きな困難があります。
SPF & DKIMとはは、ユーザに意識させることなく、組織全体のメールについて適用が可能な点が大きく異なります。
規格 | SPF | DKIMとは | S/MIME電子署名 |
---|---|---|---|
なりすましドメイン検知 | 〇 | ||
メール改竄検知 | × | 〇 | |
fromアドレス詐称検知 | × | 〇 | |
メール暗号化 | × | 〇 | |
メールシステム構成 | MTAがSPFに対応している必要がある | 送信側MTA、受信側MDAがDKIMとはに対応している必要がある | 送信側MUA、受信側MUA、双方が対応している必要がある |
DNSへの登録 | SPFをTXTレコードとして登録が必要 | 公開鍵をTXTレコードとして登録が必要 | 不要 |
誰が設定・運用するのか | 組織がシステム単位で設定・運用し、透過的に処理されるので、ユーザは意識する必要はない | 個人単位で設定・運用し、組織が関与しなくてもいい |
S/MIMEで可能なメール暗号化については、メール送信時はSMTPS、MTA間はMTA-STS、メール受信時はPOPSやIMAPSを使う事で、メール通信経路の暗号化を行います。