← RFC Reference

ARC — Chuỗi Nhận Xác Thực

Email Authentication Published March 2026
ELI5: Hãy tưởng tượng một mẫu đơn theo dõi bằng chứng cho bằng chứng. Mỗi người xử lý bằng chứng ký vào mẫu đơn và ghi lại tình trạng của nó khi họ nhận được nó. Ngay cả khi bằng chứng thay đổi một chút trong quá trình xử lý, người nhận cuối cùng có thể truy ngược qua chuỗi để xem rằng nó bắt đầu ở trạng thái được xác minh và chỉ được các bên đáng tin cậy xử lý. ARC làm điều tương tự cho kết quả xác thực email khi tin nhắn đi qua các trung gian.

Tại Sao RFC Này Tồn Tại

Chuyển tiếp email là điểm yếu của SPFDKIM. Khi một thư được chuyển tiếp qua danh sách gửi thư, bí danh hoặc quy tắc .forward:

Khi cả SPF và DKIM đều thất bại ở đích cuối cùng, DMARC cũng thất bại, và thư có thể bị từ chối hoặc cách ly — mặc dù nó được gửi hợp pháp và chuyển tiếp qua cơ sở hạ tầng đáng tin cậy.

ARC (Authenticated Received Chain), được định nghĩa trong RFC 8617, giải quyết vấn đề này bằng cách để mỗi trung gian ghi lại ảnh chụp các kết quả xác thực mà nó quan sát, sau đó ký ảnh chụp đó. Người nhận cuối cùng có thể kiểm tra chuỗi để xác định rằng thư đã được xác thực tại điểm gốc, ngay cả khi các kiểm tra SPF và DKIM trực tiếp bây giờ thất bại.

Cách Nó Hoạt Động

Ba Bộ Tiêu Đề ARC

Mỗi trung gian xử lý thư sẽ thêm một bộ ba tiêu đề, được đánh số bằng bộ đếm instance (i=) tăng lên ở mỗi bước nhảy:

Tiêu Đề Mục Đích
ARC-Authentication-Results (AAR) Ghi lại các kết quả xác thực (SPF, DKIM, DMARC) như được quan sát bởi trung gian này. Tuân theo cùng định dạng với tiêu đề Authentication-Results tiêu chuẩn.
ARC-Message-Signature (AMS) Chữ ký giống DKIM trên tiêu đề và nội dung thư như trung gian nhìn thấy. Sử dụng cú pháp ký giống như DKIM.
ARC-Seal (AS) Chữ ký trên tất cả các bộ tiêu đề ARC trước đó cộng với AAR hiện tại. Điều này niêm phong chuỗi, ngăn chặn bất kỳ ai từ giả mạo hoặc sắp xếp lại các mục nhập trước đó.

Ví Dụ Chuỗi Quyền Hạn

# Thư ban đầu từ alice@example.com
# SPF: pass, DKIM: pass, DMARC: pass

# Bước nhảy 1: Danh sách gửi thư tại lists.org nhận thư
ARC-Authentication-Results: i=1; lists.org;
dkim=pass header.d=example.com;
spf=pass smtp.mailfrom=example.com;
dmarc=pass header.from=example.com
ARC-Message-Signature: i=1; a=rsa-sha256; d=lists.org; s=arc; ...
ARC-Seal: i=1; a=rsa-sha256; d=lists.org; s=arc; cv=none; ...

# lists.org thêm chân trang, sửa đổi Subject, gửi lại
# Chữ ký DKIM ban đầu bây giờ không hợp lệ (nội dung bị thay đổi)
# SPF bây giờ tham chiếu IP lists.org, không phải example.com

# Bước nhảy 2: Đích cuối cùng mx.receiver.com
Kiểm tra DKIM trực tiếp: FAIL (nội dung bị danh sách sửa đổi)
Kiểm tra SPF trực tiếp: FAIL (IP là lists.org, không phải example.com)
Kiểm tra DMARC trực tiếp: FAIL (không có sự liên kết)

Xác thực chuỗi ARC:
i=1 ARC-Seal: hợp lệ (được ký bởi lists.org)
i=1 AAR: dkim=pass, spf=pass, dmarc=pass tại lists.org
Phán quyết chuỗi: cv=pass
Người nhận tin tưởng lists.org => ghi đè thất bại DMARC

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

Xác Thực Chuỗi (cv) Tag

Tiêu đề ARC-Seal bao gồm thẻ cv= (xác thực chuỗi) có một trong ba giá trị:

ARC và Ghi Đè DMARC

ARC không thay thế DMARC. Thay vào đó, nó cung cấp thông tin bổ sung mà người nhận có thể sử dụng khi đưa ra quyết định ghi đè DMARC. Logic của người nhận có thể là:

  1. Kiểm tra DMARC trực tiếp. Nếu nó vượt qua, giao hàng bình thường.
  2. Nếu DMARC thất bại, kiểm tra chuỗi ARC. Nếu chuỗi hợp lệ (cv=pass) và người nhận tin tưởng các trung gian trong chuỗi, ghi đè thất bại DMARC.
  3. Nếu chuỗi ARC không hợp lệ hoặc các trung gian không đáng tin cậy, áp dụng chính sách DMARC như thường lệ.

Quyết định tin tưởng một trung gian là chính sách cục bộ. Gmail, chẳng hạn, duy trì danh sách các ký ký ARC đáng tin cậy (các nhà cung cấp danh sách gửi thư chính, hệ thống thư đại học, v.v.).

Yêu Cầu Ký

Chữ ký ARC sử dụng cùng định dạng mật mã với DKIM (RSA-SHA256 hoặc Ed25519). Miền ký phát hành khóa công khai ARC của nó trong DNS tại một bộ chọn dưới _domainkey, giống hệt với xuất bản khóa DKIM:

arc._domainkey.lists.org. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEB..."

Đánh Số Instance

Các bộ ARC được đánh số tuần tự bắt đầu từ i=1. Mỗi trung gian thêm một bộ với số tiếp theo. Người nhận cuối cùng xác thực chuỗi bằng cách kiểm tra tất cả các niêm phong theo thứ tự. Nếu bất kỳ niêm phong nào thất bại hoặc bất kỳ instance nào bị thiếu, toàn bộ chuỗi sẽ không hợp lệ.

Những Gì ARC Không Làm

Sai Lầm Phổ Biến

Tác Động Khả Năng Giao Hàng

Related RFCs