← RFC Reference

DANE — Xác thực dựa trên DNS cho SMTP TLS

Standards Track Transport Security Published March 2026
ELI5: Khi bạn truy cập một trang web, trình duyệt của bạn tin tưởng hàng trăm Cơ quan Cấp chứng chỉ để xác minh danh tính của trang web. DANE cho phép chủ sở hữu tên miền loại bỏ những kẻ trung gian: "Đây là chứng chỉ chính xác (hoặc CA) mà máy chủ thư của tôi sử dụng — tôi đã công bố nó trong DNS của mình, ký bằng DNSSEC, vì vậy bạn có thể tự xác minh nó." Không cần tin tưởng CA.

Tại Sao Tồn Tại Điều Này

SMTP với STARTTLS có hai vấn đề cơ bản:

  1. Không xác thực. Máy chủ gửi không có cách nào đáng tin cậy để xác minh rằng chứng chỉ TLS của máy chủ nhận là hợp pháp. SMTP không sử dụng mô hình tin tưởng CA của web — theo lịch sử, hầu hết các máy chủ thư sử dụng chứng chỉ tự ký, vì vậy những người gửi đã học cách chấp nhận bất cứ điều gì.
  2. Tấn công hạ cấp. Kẻ tấn công mạng hoạt động có thể loại bỏ quảng cáo STARTTLS khỏi phản hồi EHLO, buộc phải gửi ở dạng văn bản thuần túy.

MTA-STS (RFC 8461) giải quyết những vấn đề này bằng cách sử dụng HTTPS và Web PKI. DANE giải quyết chúng bằng cách sử dụng DNSSEC và bản ghi TLSA. Hai cách tiếp cận này bổ sung cho nhau: DANE mạnh hơn về mặt mã hóa (không cần tin tưởng CA), trong khi MTA-STS dễ triển khai hơn (không cần DNSSEC).

Cách Hoạt Động

DANE cho SMTP (được định nghĩa trong RFC 7672, dựa trên thông số kỹ thuật DANE cơ bản trong RFC 6698) hoạt động trong ba bước:

Bước 1: Vùng Được Ký DNSSEC

Vùng DNS của miền nhận — và vùng của mục tiêu MX — phải được ký bằng DNSSEC. Điều này không thể thương lượng. Nếu không có DNSSEC, kẻ tấn công có thể giả mạo bản ghi TLSA, khiến DANE trở nên tệ hơn là vô dụng.

Bước 2: Xuất Bản Bản Ghi TLSA

Miền xuất bản bản ghi TLSA cho từng cổng SMTP của máy chủ MX. Bản ghi TLSA liên kết chứng chỉ TLS (hoặc khóa công khai của nó, hoặc CA của nó) với một dịch vụ cụ thể.

; Định dạng bản ghi TLSA: _port._protocol.hostname TLSA usage selector matching-type data _25._tcp.mail.example.com. IN TLSA 3 1 1 a]b2c3d4e5f6...sha256hash...

Các Trường Bản Ghi TLSA

Trường Giá Trị Mô Tả
Usage 0 — CA constraint (PKIX-TA)
1 — Certificate constraint (PKIX-EE)
2 — Trust anchor assertion (DANE-TA)
3 — Domain-issued certificate (DANE-EE)
Cách sử dụng dữ liệu chứng chỉ để xác thực.
Selector 0 — Full certificate
1 — SubjectPublicKeyInfo
Phần nào của chứng chỉ để khớp.
Matching type 0 — Exact match
1 — SHA-256
2 — SHA-512
Cách biểu diễn dữ liệu.

Bước 3: Người Gửi Xác Thực

Khi máy chủ gửi hỗ trợ DANE gửi thư đến example.com:

  1. Phân giải bản ghi MX cho example.com bằng xác thực DNSSEC.
  2. Đối với từng máy chủ MX (ví dụ: mail.example.com), tìm kiếm _25._tcp.mail.example.com TLSA bằng xác thực DNSSEC.
  3. Nếu bản ghi TLSA được xác thực DNSSEC tồn tại: kết nối, thực hiện STARTTLS, và xác thực chứng chỉ máy chủ so với dữ liệu TLSA.
  4. Nếu xác thực không thành công: không gửi. Tin nhắn được xếp hàng để thử lại.
  5. Nếu không có bản ghi TLSA (hoặc DNSSEC không được triển khai): quay lại TLS cơ hội như trước.

Chi Tiết Kỹ Thuật Chính

Cấu Hình TLSA Được Khuyến Nghị

Đối với máy chủ SMTP, RFC 7672 khuyến nghị DANE-EE(3) SPKI(1) SHA-256(1):

_25._tcp.mail.example.com. IN TLSA 3 1 1 <sha256-of-public-key>

Đây là lựa chọn mạnh nhất vì:

Tạo Bản Ghi TLSA

# Trích xuất hàm băm SHA-256 của khóa công khai máy chủ
openssl x509 -in server.crt -noout -pubkey | \
  openssl pkey -pubin -outform DER | \
  openssl dgst -sha256 -hex
(stdin)= 2a9f8e3b1c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f

# Bản ghi TLSA kết quả:
_25._tcp.mail.example.com. IN TLSA 3 1 1 2a9f8e3b1c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f

DANE so với MTA-STS

DANE MTA-STS
Mô hình tin tưởng DNSSEC (không cần CAs) Web PKI (chứng chỉ do CA cấp)
Yêu cầu DNSSEC Có (yêu cầu khó khăn) Không
Chứng chỉ tự ký Được hỗ trợ (usage 3) Không được hỗ trợ
Bảo mật sử dụng đầu tiên Bảo mật từ lần sử dụng đầu tiên Tin tưởng khi sử dụng lần đầu (TOFU)
Rào cản triển khai DNSSEC (đáng kể) Hosting HTTPS (thấp)
Áp dụng Mạnh ở NL, DE, CZ; hạn chế ở nơi khác Được hỗ trợ rộng rãi

Những Lỗi Thường Gặp

Tác Động Khả Năng Gửi

Related RFCs