SPFによって検証するIPアドレスの取得元について

さん  
(No.1)
SPFでは、送信側ドメインのDNSのTXTレコードもしくはSPFレコードにメールサーバのIPアドレスを登録しますよね。
メールを受け取った側では、送信してきたサーバのIPアドレスが、DNSに登録されているTXTレコードもしくはSPFレコードに存在するかを検証する…という流れかと思います。
①しかし、メールを送信してきたサーバのIPアドレスはどうやって取得するのでしょうか?
メールのエンベロープFROMにあるドメインを正引きして得られたIPアドレスを引用するのですか?
それとも、ヘッダfromにあるドメインを正引きして得られたIPアドレスを使用するのでしょうか?
はたまた、そのどちらでもない別の方法を用いるのでしょうか?

②エンベロープFROMの値はSMTPの「MAIL FROM」コマンドによって設定されるのではないのでしょうか?ヘッダのRecievedフィールド内fromは「MAIL FROM」コマンドによって設定され、容易に偽装ができますよね。

③ヘッダにはfromが2つあるのでしょうか?ヘッダfromと、ヘッダrecievedフィールド内のfromの2つ…。
2022.09.06 16:31
昭和62年さん 
(No.2)
①どちらでもないです。
  IPパケットのIPヘッダにある、ソースIPアドレスです。
  IPヘッダのアドレスを偽装してしまうとTCP通信が成立しないので、偽装できません。
②エンベロープFROMは「MAIL FROM」コマンドによって設定されますが、
  Recieved: ヘッダの from は「EHLO」(「HELO」)コマンドで指定されたものです。
  Recieved: ヘッダでは、大抵、IPヘッダから得たソースIPアドレスと
  逆引きしたホスト名も記録されています。
③メールヘッダにはfromがたくさんあります。
  ・エンベロープFROM  ←メールヘッダの先頭に1個(ヘッダ名は Return-Path)
  ・ヘッダFROM ←メールヘッダの下の方にに1個(ヘッダ名は From)
  ・Recieved ヘッダの from フィールド
    ←smtpサーバを経由するたびに、追加されるので複数
2022.09.06 18:39
さん  
(No.3)
回答ありがとうございます!ヘッダFROMやエンベロープFROMはHELOやMAIL FROMコマンドで偽装可能ということですね?
エンベロープFROMというのは、メールクライアントからは確認できないものかと思っていました。
しかし、メールヘッダの中に、エンベロープFROM(Return-Path)が含まれているということでしょうか。
2022.09.07 10:35
昭和62年さん 
(No.4)
まず、ヘッダFROM はSMTPコマンドで設定するものではないです。
メールの偽装についてですが、偽装されている可能性があるかと問われたらYESなのですが、
偽装可能かという問には、法律で明確に禁止されている行為なので、YESと答える勇気はありません。
Return-Path は、(可能なら)ご自分でメールヘッダを見てください。
メールヘッダには、SPF、DKIM、dmarcの判定結果も記録されてますよ。
2022.09.08 15:22
GinSanaさん 
SC ブロンズマイスター
(No.5)
実際にsendmailコマンド(Postfix)で
sendmail -f Envelope-From-Address RCPT-To-Address
From: Header-From-Address
To: Mail-To-Address
とかやってみればヘッダFROMとかをどこで指定したんだかを理解できると思います
※sendmailはググってください
2022.09.08 16:32
さん  
(No.6)
>昭和62年さん
ヘッダFROMはメール本文と同様に、データとして入力するだけのもののようですね。
ご指摘をありがとうございます。
Gmailを使用しているのですが、適当に受信したメールを詳細確認したところ、SPF、DKIM、DMACをPASSしていることがわかりました。

エンベロープFROMというのは、メールヘッダの外にあるものかと思っていたのですが、Return-PathがエンベロープFROMと同義なのであれば、メールヘッダの中の一要素ということになりますよね。
Return-Pathはメールヘッダから確認できるので。
つまり、そういうことですか?
2022.09.09 15:21
昭和62年さん 
(No.7)
はい。私も「そういうこと」と理解しています。
2022.09.09 16:39
さん  
(No.8)
メールヘッダ内のReturn-Path = メールのエンベロープFrom
として理解しました。ありがとうございました。
2022.09.09 20:09
hisashiさん 
SC ブロンズマイスター
(No.9)
一つだけ誤解がないように補足させてください。

エンベロープFROMは、メールヘッダ内ではありません。
ただし、メールが受信ボックスに入るタイミングでエンベロープFROMの値が
Return-Pathの値として書き込まれるので結果的に両者は同じ値になります。
Return-Pathはメールヘッダから確認できます。
2022.09.09 23:27
さん  
(No.10)
補足をありがとうございます。
メールを受け取るタイミングでエンベロープFROMがReturn-Pathに変換されるのですね。
そして、メールヘッダの中にエンベロープFROMが含まれるわけではないこともあわせて理解しました。
自分でネットでも調べてみたところ、たしかにそう書かれていました。
親切心に感謝いたします。
2022.09.10 21:42

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop