送信元ドメイン認証(DKIM・SMTP-AUTH・SPF)

送信元ドメイン認証とは、送信元のメールアドレスのドメインと、そのメールを配送しているメールサーバのドメインが一致するかを検証する方法です。

送信元ドメインを認証する理由は、人では判別が難しいなりすましメールを識別し、被害を未然に防ぐためです。



DKIM

DKIMはDomainKays Identified Mailの略です。


ディジタル署名を使った送信元ドメイン認証を行います。

送信元メールサーバの秘密鍵でメールにディジタル署名をつけて、送信します。

受信したメールサーバは、送信元DNSサーバに公開鍵の情報を要求し、もらった公開鍵で検証します。


DKIMで送信ドメイン認証をするために、送信元ドメインの権威DNSサーバにDKIM用のレコードを登録する必要があります。

送信元DNSサーバに公開鍵情報を登録するんだね





SPF

SPFとは、Sender Policy Frameworkの略です。

メールを送信しているメールサーバのアドレスと、エンベロープFromで指定された送信アドレスの対応を受信側DNSサーバで検証します。


具体的には、それぞれのIPアドレスを比較し、一致すれば認証成功です。

受信側DNSサーバが送信元ドメイン認証できるように、あらかじめ送信元のDNSサーバには、SPFレコードを登録しておく必要があります。

受信者側は、送信元DNSサーバに問い合わせ、参照する設定をすれば、攻撃を防げるね


引用:SPF(Sender Policy Framework)|セキュリティ用語解説|NRIセキュア


例えば、送信者DNSにSPFレコードの記載がある場合、

SPFレコードの記載方法

SPFレコードは、ゾーンファイルのTXTレコードに記載します。


「ドメイン名.」 IN TXT “v=spf1 「紐づけたいIPアドレス」”



IPアドレスの記述方法は次のとおりです。

記述例対象(どのIPまでを送信元サーバとするか)
+ipv4:192.168.0.1 -all192.168.0.1のみが対象。それ以外は拒否する
+ipv4:192.168.0.1 -all +ipv4 :192.168.0.2 -all192.168.0.1と192.168.0.1
+ipv4:192.168.0.0 -all192.168.0.0のネットワークからのみ、それ以外は遮断
-allすべて拒否
+mx -allMXレコードで指定されるホスト。それ以外は拒否。
(MXレコードとは、ドメイン宛のメールはどこのメールサーバに送るか指定するレコード)


+は省略することもある。
-allは+以外のものをfailとする。
~allは+に該当しないものをsoft failとする。

判定結果意味対応
pass正規のメールサーバからメールが送られている
fail正規のメールサーバではないメールサーバが送っているため、送信元メールアドレスが偽装されている-all
soft fail正規のメールサーバ以外からメールが送られている可能性がある。(断定はできない場合)~all
none送信ドメインのDNSサーバにSPFレコードの登録がない


SPFの注意点

送信元と受信先の間に中継サーバを介していた場合、受信先サーバからすると送信元ドメイン=中継サーバのドメインになってしまうため、送信元DNSサーバにSPFレコードを確認しようとすると、IPアドレスが不一致になり、検証が失敗してしまいます。


SMTP-AUTH

送信元ドメイン認証ではないですが、SMTP-AUTHも認証系の一つとして学習しましょう。

SMTP-AUTHとは、クライアントがメールサーバにアクセスした時に、利用者認証を行い、成功したらメールを受け付ける仕組みのことです。

なんの制約も受けずにメール受信を受け付ける状態をオープンリレーといいます。



利用者認証を行うことで、外部から送信側メールサーバを不用意に使われることを防いだり、PCの情報をメールにして、外部にメールを使って情報を送るマルウェアに感染した場合にメール送信を防げたりします。



SMTP-AUTHは、メール送信した時に、外部から不正利用されるのを防ぐ仕組みです。
DKIMやSPFは、送信した時に別サーバにドメイン名をなりすまされるのを防ぐ仕組みです。