發件人策略框架
此條目可參照英語維基百科相應條目來擴充。 |
發件人策略框架(英語:Sender Policy Framework;簡稱SPF; RFC 4408)是一套電子郵件認證機制,可以確認電子郵件確實是由網域授權的郵件伺服器寄出,防止有人偽冒身分網路釣魚或寄出垃圾電子郵件。SPF允許管理員設定一個DNS TXT記錄或SPF記錄設定傳送郵件伺服器的IP範圍,如有任何郵件並非從上述指明授權的IP位址寄出,則很可能該郵件並非確實由真正的寄件者寄出(郵件上聲稱的「寄件者」為假冒)。[1]
用途
編輯SPF 記錄的用途是阻止垃圾郵件發件人傳送假冒您的域中的「發件人」位址的電子郵件。收件人可以參考 SPF 記錄來確定號稱來自您的域的郵件是否來自授權郵件伺服器。對於大多主流的郵件服務商,鑑別傳送者的SPF記錄有助於抵禦垃圾郵件給接收者帶來的騷擾。[2]
原理
編輯SMTP協定本身沒有機制鑑別寄件人的真正身分,電子郵件的「寄件者」一欄可以填上任何名字,於是偽冒他人身分來網路釣魚或寄出垃圾郵件便相當容易,而真正來源卻不易追查。
SPF 記錄允許域名管理員公佈所授權的郵件伺服器IP位址,接收伺服器會在收到郵件時驗證發件人在 SMTP 對談中執行 MAIL FROM 命令時的郵件位址是否與域名 SPF 記錄中所指定的源 IP 匹配,以判斷是否為發件人域名偽造。
郵件接收方的收件伺服器在接受到郵件後,首先檢查域名的SPF記錄,來確定發件人的IP位址是否被包含在SPF記錄裡面,如果在,就認為是一封來自於被授權伺服器的郵件,否則會認為是一封偽造的郵件並根據相關政策退回或放進收件人的雜件箱。[3]
簡單來說,SPF 記錄其實就是一條有特殊語法的 TXT 記錄,它由「匹配機制」和「修飾詞」2 部分組成。「修飾詞」通常只作為可選項,一般情況下 Exchange 管理員只會用到並處理包含「匹配機制」的 SPF 記錄。[4]
SPF 記錄的匹配機制主要用於定義和指定可由該域名傳送郵件的主機,其定義方式包括:
- all 匹配任何主機,它寫在 SPF 記錄最後以匹配在其前面所列出的主機。
- ip4 匹配 IPv4 位址或網路範圍。
- ip6 匹配 IPv6 位址或網路範圍。
- a 匹配主機名或域名。
- mx 匹配域名的 MX 記錄,當出站與入站郵件為同一伺服器時通常採用此種機制。
- ptr 通過 DNS 反向記錄來匹配發件人 IP 和域名,由於會增加 DNS 負載,一般不採用此種機制。
- exists 只檢查域是否在 DNS 中存在。
- include 將發件人 IP 和 SPF 記錄指向另一個域,這種匹配機制通常用於雲服務,如 Exchange Online Protection。
SPF 記錄的匹配機制會結合一些限定詞來使用,以告訴伺服器找到一條匹配記錄時該怎麼辦。常見的限定詞有:
- + 放行,如果沒有明確指定限定詞,則為預設值。
- - 硬拒絕,直接拒絕來自未經授權主機的郵件。
- ~ 軟拒絕,郵件可被接受,也可被標記為垃圾郵件。
- ? 中性,不考慮郵件是否被接受。
SPF 記錄會結合「匹配機制」和「限定詞」使用,例如:在 SPF 記錄的末尾處寫有 -all 則表明在不匹配前面所列主機時,接收伺服器需要將郵件全部拒絕。