コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

なりすましメールに関連する仕組み、SPF・DKIM・DMARCをざっくりまとめる

フレーズは聞くがどういうことかはわかっていないのでざっくりまとめる

前提としてメールがなりすませる仕組み

Emailは実際のプロトコル上で取り扱われる宛先情報とメール本文に書かれる宛先情報があり、前者のプロトコル上で取り扱われる宛先を封筒に記載される宛先に見立ててenvelope-from (エンベロープFrom) と呼ばれ、校舎のメール本文に添えられるアドレスを header-from (ヘッダFrom)と呼ばれる。

ヘッダFROMに関してはメール送信自体では使うものではないので、エンベロープFROMと異なるアドレスをつかっても問題がない。そのためこのヘッダFROMをエンベロープFROMと全く関係ないものに変更してなりすますということが可能になる。

SPF(Sender Policy Framework)

SPFは”heder-fromに指定したメールアドレスのドメイン”を持つDNSサーバに対して、"メールの送信元サーバの情報"を記述することで、受信側がDNSを通して適切なメール送信サーバから配信されたメールかを確認できるようにする取り組みです。

具体的にはDNSサーバのTXTレコードあるいはSPFレコードに規定のフォーマットに沿ってIPを記述する。

DKIM(Domainkeys Identified Mail)

DKIMは公開鍵/秘密鍵のペアを用意し、秘密鍵でメールに電子署名化した内容を含め、DNSサーバに公開鍵を設置することで、受信した側は暗号化されたメールの情報が公開鍵を使って復号した情報が適切なものかを検証することで確かめる方式です。

具体的には送信メールにヘッダや本文を秘密鍵で暗号化舌情報として DKIM-Signature を含め、受信側はその送信メールアドレスのDNSにある公開鍵を使って DKIM-Signature の情報を復号化して内容検討を行うというものになる、

DMARC(Domain-based Message Authentication, Reporting and Conformance)

SPFDKIMは「なりすましメールかを検証する仕組み」だったが、DMARCは「DNSへ問い合わせた情報を使って照らし合わせた結果、検証が失敗したときの振る舞いをどうするか?」というものになっている。そのためこの情報はDNSサーバに設定され、DNS上で「認証に失敗したらメールを隔離して欲しい」という意思表明をすることができる。

この仕組みは受信側のさじ加減で行われている迷惑メール分担処理などを明示的に送信側が意思表明するための仕様として存在している。

参考リンク