·WhiteMail 資安團隊#explainer#glossary#email-authentication
資安術語解析——SPF、DKIM、DMARC,以及為什麼「通過」不等於「安全」
這系列報告中反覆出現一個主題:「通過認證」不代表「安全」。本文將用平實的語言,解析三種電子郵件認證標準各自實際檢查了什麼,以及缺口究竟在哪裡。
三種檢查
- SPF(寄件者政策框架, Sender Policy Framework) 回答的問題是:這封郵件是否從網域擁有者所授權的伺服器發出?網域會公開允許的發送 IP 清單,收件方則檢查連線而來的伺服器是否在該清單之中。SPF 驗證的是路徑,而不是人。
- DKIM(網域金鑰識別郵件, DomainKeys Identified Mail) 回答的問題是:訊息是否由該網域簽署,且在傳輸過程中未遭竄改?發信者使用私鑰簽署標頭與本文,收件方則以公開的公鑰驗證。DKIM 證明的是簽章的完整性與來源,而非意圖。
- DMARC 將前兩者結合並加入政策。它會確認你實際看到的 From 網域,是否與通過 SPF 或 DKIM 的網域一致(align),並指示收件方在驗證失敗時該如何處理(none / quarantine / reject)。DMARC 補上了「可見 From 遭偽造」的缺口。
能抓到什麼,又抓不到什麼
這三者合在一起,能阻擋相當多的網域偽造(Domain Spoofing)。外部人士無法輕易偽造出一封看似來自受保護網域的郵件。
但以下情況它們無法處理。
- 真實卻遭盜用的帳號(VEC) — 因為是真正的網域,所有檢查都會通過。
- 相似網域 — 一個只是外觀相似的不同網域,能完美通過屬於它自己的認證。
- 意圖 — 這些標準沒有一個會讀取郵件實際要求了什麼。
對任何閱讀郵件標頭的人來說,這正是關鍵所在。認證只能告訴你信封是真的,卻無法告訴你信封裡的要求是否正當。WhiteHat 的 SA-02 會檢查這三項標準,但它刻意只是四個代理人中的其中一個——因為通過這些檢查是必要條件,而非充分條件。
一句話總結
SPF:是被授權的伺服器嗎?DKIM:已簽署且未遭竄改嗎?DMARC:可見的發信者是否一致,或該如何處理?三者合起來:信封是真的。仍未回答的問題:你該不該照這封信要求的去做?
想同時看到認證結果、身分、連結與意圖的分析嗎?把郵件貼到分析主控台試試看。