2020/09/22 メールなりすまし対策(SPF, DKIM, DMARC)
なりすまし対策
メールを利用する上で、なりすまし対策は必要不可欠。
メールは仕組み上送信元のアドレスを自由に変更できるため、送られてきたものか本当に正しいものなのか判断する必要もある。
メールにおける送信ドメインの認証方法について学ぶ。
SPF
Sender Policy Framework(SPF)とは、送信元ドメインのDNSサーバのTXTレコードに、
正しいSMTPサーバのIPアドレスを登録する。
メールを受信したSMTPサーバは送信元のDNSサーバに問い合わせて、正しいものか確認する。
https://gyazo.com/026349f1a16b210053c175f719c1b572
リレーする場合は注意が必要。
https://gyazo.com/2391cd4e5d34ddc6d1a99fb98e8dfc52
TXTレコード
TXTレコードはDNSに登録するレコードの一つ。
今回のSPFでは正しい構文で登録する必要がある。
AAAA.com. IN TXT "v=spf1 ip4:10.10.10.10 -all"
このように登録する。
この例は、~@AAAA.comのメールについて、10.10.10.10以外から届くメールは全て詐称されている。という意味。
まず、「v=spf1」についてはバージョンを指定。
現在spf1のみなので固定。
次に条件をかく。複数かくことも可能。
ipv4を表すip4以外にも、
・all
・include
・a
・mx
・ip6
・ptr
などが指定できる。
限定子(認証結果を決める)は
・+ //認証成功
・- //認証失敗
・~ //認証失敗の可能性がある
・? //判断不能
が指定可能。
DKIM
DomainKeys Identified Mail(DKIM)はメールのヘッダに署名を追加することで、認証する。
https://gyazo.com/d1a340dc1df16f941cf627ede1babcb1
DKIMの良いところの一つとして、メール全体のハッシュ値を比較することで改ざんされていないことを確認できる。
また、SPFではエンベロープFROMのみ確認できるが、DKIMではヘッダFROMも確認することが出来る。
第3者署名
DKIMには第三者署名と作成者署名が存在する。
DKIMではヘッダFROMと同じドメインで署名しなくても良いので、
ヘッダFROMと署名のdタグ内ドメインが異なる場合がある。
異なるものを第三者署名。同じものを作成者署名という。
DMARC
Domain-based Message Authentication, Reporting, and Conformance(DMARC)とは
認証技術であるSPF,DKIMにて検証されたメールに関して、認証に失敗した場合にどうするかを指定できる。
受信側が認証に失敗したメールをどのように扱うかは受信側に委ねられていたが、
送信側がポリシーを公開することで、受信側がそのポリシーに従って対応を決めることが出来る。
また、DMARCでは、認証に失敗したメールをレポートとして通知させる機能もある。
この機能で送信側は不正ななりすましメールが行われていないか検知することが出来る。
以上
簡単ななりすまし対策の話し。
正直いって、メールってかなり難しい。
これらは表面部分だけだが、しっかりとプロトコルの通信の話であったり、
メッセージ内のヘッダなど見るところがたくさんある。
当然これらを設定する手順も考えなければ。
そのうちやります。
https://gyazo.com/a26874e109bfe054350f4f876c25a2e0
ちなみに実際に設定してみたのがこれ。
学校の授業にてECサイトを作ってみた際に、メール配信が必要だったため、
AWS上でSMTPサーバを建てて設定した。
それについても書きます。