送信元ドメイン認証とは、送信元のメールアドレスのドメインと、そのメールを配送しているメールサーバのドメインが一致するかを検証する方法です。
送信元ドメインを認証する理由は、人では判別が難しいなりすましメールを識別し、被害を未然に防ぐためです。
DKIM
DKIMはDomainKays Identified Mailの略です。
ディジタル署名を使った送信元ドメイン認証を行います。
送信元メールサーバの秘密鍵でメールにディジタル署名をつけて、送信します。
受信したメールサーバは、送信元DNSサーバに公開鍵の情報を要求し、もらった公開鍵で検証します。
DKIMで送信ドメイン認証をするために、送信元ドメインの権威DNSサーバにDKIM用のレコードを登録する必要があります。
送信元DNSサーバに公開鍵情報を登録するんだね
SPF
SPFとは、Sender Policy Frameworkの略です。
メールを送信しているメールサーバのアドレスと、エンベロープFromで指定された送信アドレスの対応を受信側DNSサーバで検証します。
具体的には、それぞれのIPアドレスを比較し、一致すれば認証成功です。
受信側DNSサーバが送信元ドメイン認証できるように、あらかじめ送信元のDNSサーバには、SPFレコードを登録しておく必要があります。
受信者側は、送信元DNSサーバに問い合わせ、参照する設定をすれば、攻撃を防げるね
例えば、送信者DNSにSPFレコードの記載がある場合、
SPFレコードの記載方法
SPFレコードは、ゾーンファイルのTXTレコードに記載します。
「ドメイン名.」 IN TXT “v=spf1 「紐づけたいIPアドレス」”
IPアドレスの記述方法は次のとおりです。
記述例 | 対象(どのIPまでを送信元サーバとするか) |
+ipv4:192.168.0.1 -all | 192.168.0.1のみが対象。それ以外は拒否する |
+ipv4:192.168.0.1 -all +ipv4 :192.168.0.2 -all | 192.168.0.1と192.168.0.1 |
+ipv4:192.168.0.0 -all | 192.168.0.0のネットワークからのみ、それ以外は遮断 |
-all | すべて拒否 |
+mx -all | MXレコードで指定されるホスト。それ以外は拒否。 (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は、送信した時に別サーバにドメイン名をなりすまされるのを防ぐ仕組みです。