SPF — Keframework Chính sách Người gửi
Tại Sao RFC Này Tồn Tại
SMTP được thiết kế vào đầu những năm 1980 mà không có xác minh người gửi tích hợp. Bất kỳ máy chủ nào cũng có thể tuyên bố gửi thư từ bất kỳ miền nào — không có gì trong giao thức cơ sở để ngăn chặn điều đó. Điều này khiến giả mạo email trở nên tầm thường: những kẻ gửi thư rác và lừa đảo có thể giả mạo địa chỉ người gửi phong bì để mạo danh các ngân hàng, đồng nghiệp hoặc bất kỳ thương hiệu được tin cậy nào.
SPF (Sender Policy Framework), được chuẩn hóa trong RFC 7208, giải quyết vấn đề này bằng cách cho phép chủ sở hữu miền xuất bản một bản ghi DNS TXT mà rõ ràng liệt kê những địa chỉ IP và máy chủ nào được phép gửi email cho miền của họ. Các máy chủ thư nhận truy vấn bản ghi này trong quá trình giao dịch SMTP và có thể từ chối hoặc gắn cờ các thư từ các nguồn không được phép.
RFC 7208 đã thay thế RFC 4408 thử nghiệm trước đó, nâng SPF lên trạng thái Tiêu chuẩn Internet đầy đủ với các quy tắc xử lý làm rõ và yêu cầu nghiêm ngặt hơn đối với giới hạn tra cứu DNS.
Cách Hoạt Động
SPF hoạt động ở cấp phong bì, không phải cấp tiêu đề thư. Miền được kiểm tra là miền trong lệnh MAIL FROM (còn gọi là Return-Path hoặc người gửi phong bì), không phải tiêu đề From: mà người dùng thấy.
Quy Trình Kiểm Tra SPF
- Máy chủ gửi kết nối với máy nhận và phát hành
MAIL FROM:<user@example.com>. - Máy nhận trích xuất miền
example.comtừ người gửi phong bì. - Máy nhận truy vấn DNS cho bản ghi TXT tại
example.combắt đầu bằngv=spf1. - Máy nhận đánh giá các cơ chế của bản ghi SPF so với địa chỉ IP kết nối.
- Kết quả là một trong những:
pass,fail,softfail,neutral,none,temperror, hoặcpermerror.
Ví Dụ Giao Dịch SMTP
S: 220 mx.receiver.com ESMTP ready
C: EHLO mail.example.com
S: 250-mx.receiver.com Hello
S: 250 OK
C: MAIL FROM:<alice@example.com>
# Máy nhận kiểm tra: bản ghi SPF của example.com có cho phép 198.51.100.25 không?
# Tra cứu DNS: example.com TXT "v=spf1 ip4:198.51.100.0/24 -all"
# 198.51.100.25 khớp ip4:198.51.100.0/24 => kết quả: pass
S: 250 OK
C: RCPT TO:<bob@receiver.com>
S: 250 OK
Chi Tiết Kỹ Thuật Quan Trọng
Cú Pháp Bản Ghi SPF
Bản ghi SPF là bản ghi DNS TXT bắt đầu bằng thẻ phiên bản v=spf1 theo sau là một loạt cơ chế và một bộ định danh tùy chọn cho mỗi cơ chế. Bản ghi được đánh giá từ trái sang phải; cơ chế đầu tiên khớp sẽ xác định kết quả.
Cơ Chế
| Cơ Chế | Mô Tả |
|---|---|
ip4:<range> |
Khớp nếu IP của người gửi nằm trong phạm vi CIDR IPv4 đã cho. |
ip6:<range> |
Khớp nếu IP của người gửi nằm trong phạm vi CIDR IPv6 đã cho. |
a |
Khớp nếu IP của người gửi bằng bản ghi A/AAAA của miền. |
mx |
Khớp nếu IP của người gửi bằng bản ghi A/AAAA của một trong các máy chủ MX của miền. |
include:<domain> |
Đánh giá đệ quy bản ghi SPF của miền khác. Một pass từ miền được bao gồm được tính là một khớp. |
exists:<domain> |
Khớp nếu bản ghi DNS A tồn tại cho miền đã cho (được sử dụng cho macro nâng cao). |
redirect=<domain> |
Bộ định danh: thay thế toàn bộ kiểm tra SPF hiện tại bằng bản ghi của miền khác. |
all |
Khớp với mọi thứ. Thường được sử dụng ở cuối bản ghi là -all hoặc ~all. |
Bộ Định Danh
| Bộ Định Danh | Kết Quả | Ý Nghĩa |
|---|---|---|
+ (mặc định) |
pass | Người gửi được phép |
- |
fail | Không được phép — từ chối thư |
~ |
softfail | Có thể không được phép — chấp nhận nhưng gắn cờ |
? |
neutral | Không có khẳng định |
Giới Hạn 10 Tra Cứu
Để ngăn chặn lạm dụng DNS, RFC 7208 bắt buộc rằng đánh giá SPF không được yêu cầu quá 10 tra cứu DNS dẫn đến độ phân giải cơ chế. Các cơ chế kích hoạt tra cứu là: include, a, mx, exists, redirect, và ptr (lỗi thời). Các cơ chế ip4 và ip6 thô không được tính. Vượt quá 10 tra cứu tạo ra kết quả permerror, thường có nghĩa là không có bảo vệ SPF nào cả.
Giới Hạn Tra Cứu MX
Ngoài ra, cơ chế mx không được dẫn đến quá 10 tên MX để truy vấn, và mỗi tên đó không được phân giải thành quá 10 địa chỉ A/AAAA. Cơ chế ptr bị chính thức không khuyến cáo.
Mở Rộng Macro
SPF hỗ trợ macro mở rộng thành các giá trị cụ thể theo ngữ cảnh trong quá trình đánh giá. Các macro phổ biến bao gồm %{s} (người gửi), %{l} (phần cục bộ), %{d} (miền), và %{i} (địa chỉ IP). Những cái này chủ yếu được sử dụng trong các cơ chế exists: cho chính sách phức tạp theo người dùng hoặc theo IP.
Ví Dụ Bản Ghi DNS
Cơ Bản: Phạm Vi IP Duy Nhất
Điển Hình: ESP Bên Thứ Ba + Google Workspace
Miền Không Gửi Email
Sử Dụng redirect
Những Sai Lầm Phổ Biến
-
Nhiều bản ghi SPF: Một miền phải có chính xác một bản ghi TXT SPF. Xuất bản hai bản ghi gây ra
permerror. Nếu bạn cần kết hợp các nguồn, hợp nhất chúng thành một bản ghi duy nhất. -
Vượt quá giới hạn 10 tra cứu: Mỗi
include:được tính là một tra cứu, và các cơ chế của chính bản ghi được bao gồm được tính vào tổng số. Chuỗi bao gồm từ nhiều ESP sẽ nhanh chóng cạn kiệt giới hạn. Làm phẳng bản ghi của bạn hoặc sử dụng các miền phụ. -
Sử dụng
~allthay vì-all: Softfail (~all) cho máy nhận biết thư là nghi ngờ nhưng không nên từ chối nó. Để bảo vệ mạnh mẽ (và cho phép thực thi DMARC), hãy sử dụng-all. -
Quên miền Return-Path: SPF kiểm tra người gửi phong bì, không phải tiêu đề
From:. Nếu ESP của bạn sử dụng miền Return-Path của riêng nó, bản ghi SPF của miền bạn không liên quan đến kiểm tra SPF. Bạn cần căn chỉnh Return-Path tùy chỉnh hoặc DKIM + DMARC. -
Sử dụng cơ chế
ptrlỗi thời: RFC 7208 chính thức không khuyến cáoptrvì nó chậm, không đáng tin cậy và tạo tải trên cơ sở hạ tầng DNS ngược. - Sử dụng bản ghi loại SPF (99): Loại bản ghi DNS SPF chuyên dụng được định nghĩa trong RFC 4408 nhưng đã bị khôn lỗi thời trong RFC 7208. Luôn sử dụng bản ghi TXT.
Tác Động Đến Khả Năng Gửi Email
SPF là một trong ba trụ cột xác thực email (cùng với DKIM và DMARC). Tác động của nó đến khả năng gửi email là đáng kể:
- Yêu cầu bởi các nhà cung cấp lớn: Gmail, Yahoo, Microsoft và Apple đều đánh giá SPF. Kể từ tháng 2 năm 2024, Gmail và Yahoo yêu cầu SPF hoặc DKIM vượt qua đối với tất cả người gửi, và cả hai phải vượt qua đối với những người gửi lớn.
-
Căn chỉnh DMARC: SPF trở nên mạnh hơn nhiều khi được kết hợp với DMARC, kiểm tra rằng miền xác thực SPF được căn chỉnh với miền tiêu đề
From:. Không có DMARC, SPF một mình không thể ngăn chặn giả mạo header-from. - Chuyển tiếp phá vỡ SPF: Khi thư được chuyển tiếp qua danh sách gửi thư hoặc quy tắc .forward, IP gửi thay đổi nhưng người gửi phong bì thường vẫn giữ nguyên. Điều này gây ra SPF thất bại cho thư hợp pháp. Đây là lý do DKIM và ARC tồn tại.
-
Tín hiệu danh tiếng: Bản ghi SPF được cấu hình đúng (với
-all) báo hiệu cho máy nhận biết rằng bạn coi trọng bảo mật email và khiến những kẻ xấu khó lạm dụng miền của bạn.