RFC 8460: Báo Cáo TLS SMTP (TLSRPT)
Tại Sao Tồn Tại Điều Này
Hai tiêu chuẩn thực thi TLS cho email máy chủ-máy chủ: MTA-STS (RFC 8461) và DANE (RFC 7672). Cả hai đều cho máy chủ gửi biết "bạn phải thiết lập kết nối TLS hợp lệ trước khi gửi thư đến miền này." Nhưng khi thương lượng TLS thất bại, máy chủ gửi có thể quay lại văn bản rõ (xấu) hoặc từ chối gửi (thư bị mất). Dù bằng cách nào, miền nhận không biết có vấn đề gì.
TLSRPT đóng lỗ hổng khả năng hiển thị này. Chủ sở hữu miền công bố bản ghi DNS yêu cầu báo cáo TLS, và các MTA gửi tổng hợp kết quả kết nối TLS của chúng thành báo cáo JSON hàng ngày được gửi qua email hoặc HTTPS.
Nếu không có TLSRPT, bạn có thể triển khai MTA-STS với lỗi chứng chỉ và không nhận ra rằng một phần đáng kể thư đến bị từ chối hoặc được gửi không an toàn.
Cách Hoạt Động
Bước 1: Công Bố Bản Ghi DNS TLSRPT
Thêm bản ghi TXT tại _smtp._tls.yourdomain.com chỉ định nơi báo cáo nên được gửi:
Bước 2: Máy Chủ Gửi Thu Thập Dữ Liệu
Khi một MTA gửi gửi thư đến miền của bạn, nó ghi lại kết quả thương lượng TLS: phiên thành công với chứng chỉ hợp lệ, bắt tay thất bại, chứng chỉ không khớp, lỗi chính sách MTA-STS, lỗi xác thực DANE, v.v.
Bước 3: Gửi Báo Cáo Hàng Ngày
Mỗi ngày một lần, MTA gửi tổng hợp kết quả và gửi báo cáo JSON. Khi được gửi qua email, nó đến dưới dạng tin nhắn multipart/report với report-type=tlsrpt:
Content-Type: multipart/report; report-type=tlsrpt; boundary="TLSRPT-001" --TLSRPT-001 Content-Type: text/plain SMTP TLS report for example.com Report period: 2026-03-10T00:00:00Z to 2026-03-11T00:00:00Z --TLSRPT-001 Content-Type: application/tlsrpt+json { "organization-name": "Sender Corp", "date-range": { "start-datetime": "2026-03-10T00:00:00Z", "end-datetime": "2026-03-11T00:00:00Z" }, "contact-info": "postmaster@sendercorp.com", "report-id": "2026-03-10-example.com", "policies": [{ "policy": { "policy-type": "sts", "policy-string": ["version: STSv1", "mode: enforce", "mx: mail.example.com", "max_age: 604800"], "policy-domain": "example.com" }, "summary": { "total-successful-session-count": 9450, "total-failure-session-count": 12 }, "failure-details": [{ "result-type": "certificate-expired", "sending-mta-ip": "198.51.100.1", "receiving-mx-hostname": "mail.example.com", "failed-session-count": 12 }] }] } --TLSRPT-001--
Chi Tiết Kỹ Thuật Chính
Định Dạng Bản Ghi DNS
| Thẻ | Bắt Buộc | Mô Tả |
|---|---|---|
v |
Có | Phiên bản; phải là TLSRPTv1
|
rua |
Có | URI báo cáo. mailto: để gửi email, https: để HTTPS POST. Ngăn cách bằng dấu phẩy cho nhiều đích. |
Loại Kết Quả Lỗi
| result-type | Ý Nghĩa |
|---|---|
starttls-not-supported |
Máy chủ nhận không công bố STARTTLS |
certificate-host-mismatch |
Tên máy chủ chứng chỉ không khớp với tên máy chủ MX |
certificate-expired |
Chứng chỉ TLS của máy chủ đã hết hạn |
certificate-not-trusted |
Chứng chỉ không được ký bởi CA đáng tin cậy |
validation-failure |
Lỗi xác thực TLS chung |
sts-policy-invalid |
Không thể tìm nạp hoặc phân tích cú pháp chính sách MTA-STS |
sts-webpki-invalid |
Chứng chỉ máy chủ chính sách MTA-STS không hợp lệ |
tlsa-invalid |
Bản ghi DANE TLSA bị lỗi định dạng |
dnssec-invalid |
Xác thực DNSSEC thất bại cho tra cứu TLSA |
dane-required |
DANE được yêu cầu nhưng bản ghi TLSA vắng mặt |
Loại Chính Sách
| policy-type | Ý Nghĩa |
|---|---|
sts |
Chính sách MTA-STS (RFC 8461) |
tlsa |
Bản ghi DANE TLSA (RFC 7672) |
no-policy-found |
Không tìm thấy chính sách MTA-STS hoặc DANE cho miền |
Lỗi Phổ Biến
-
Công bố MTA-STS mà không có TLSRPT. MTA-STS ở chế độ
enforcesẽ khiến máy chủ gửi từ chối thư khi TLS thất bại. Nếu không có TLSRPT, bạn không thấy những lỗi đó. Luôn triển khai cả hai cùng nhau. - Bỏ qua báo cáo. Nhận báo cáo TLSRPT chỉ hữu ích nếu bạn thực sự phân tích cú pháp và giám sát chúng. Thiết lập xử lý tự động hoặc sử dụng dịch vụ tổng hợp và cảnh báo về lỗi.
-
Chỉ sử dụng giao trình HTTPS. Mặc dù HTTPS POST sạch hơn cho xử lý tự động, một số MTA gửi chỉ hỗ trợ giao trình email. Cung cấp cả URI
mailto:vàhttps:nếu có thể. -
Vị trí bản ghi DNS sai. Bản ghi phải nằm tại
_smtp._tls.yourdomain.com, không phải_tls.yourdomain.comhoặc_tlsrpt.yourdomain.com. Tiền tố cụ thể là_smtp._tls. -
Để chứng chỉ hết hạn. Lỗi phổ biến nhất được báo cáo qua TLSRPT là
certificate-expired. Tự động hóa gia hạn chứng chỉ (ví dụ: với Let's Encrypt) và giám sát ngày hết hạn. -
Không kiểm tra tên máy chủ MX so với chứng chỉ. Chứng chỉ TLS của bạn phải bao gồm tên máy chủ được liệt kê trong chính sách MTA-STS và bản ghi MX của bạn. Nếu MX của bạn là
mail.example.comnhưng chứng chỉ của bạn làexample.com, người gửi sẽ báo cáocertificate-host-mismatch.
Tác Động Khả Năng Gửi
- Khả năng hiển thị vào lỗi TLS. Nếu không có TLSRPT, lỗi thương lượng TLS là vô hình. Bạn không biết rằng thư từ một người gửi lớn bị từ chối vì chứng chỉ của bạn hết hạn tuần trước.
-
Điều kiện tiên quyết cho thực thi MTA-STS an toàn. Đường dẫn triển khai được khuyến nghị là: công bố MTA-STS ở chế độ
testing, bật TLSRPT, giám sát báo cáo để tìm lỗi, sửa các vấn đề, rồi chuyển sangenforce. Bỏ qua bước giám sát có nguy hiểm mất thư. -
Phát hiện tấn công man-in-the-middle. Một spiking đột ngột
certificate-not-trustedhoặcstarttls-not-supportedtừ một mạng cụ thể có thể chỉ ra một cuộc tấn công tước STARTTLS. TLSRPT làm cho điều này trở nên rõ ràng. - Bằng chứng tuân thủ. Đối với các miền xử lý giao tiếp nhạy cảm, báo cáo TLSRPT cung cấp bằng chứng rằng TLS đang được thương lượng thành công cho phần lớn kết nối vào.