ARC — Chuỗi Nhận Xác Thực
Tại Sao RFC Này Tồn Tại
Chuyển tiếp email là điểm yếu của SPF và DKIM. Khi một thư được chuyển tiếp qua danh sách gửi thư, bí danh hoặc quy tắc .forward:
- SPF bị phá vỡ vì IP của máy chủ chuyển tiếp không được phép bởi bản ghi SPF của người gửi ban đầu.
- DKIM bị phá vỡ nếu trung gian sửa đổi thư (thêm chân trang danh sách, viết lại tiêu đề, thay đổi mã hóa).
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
# 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ị:
-
cv=none— Đây là bộ ARC đầu tiên trong chuỗi (i=1). Không có chuỗi trước đó để xác thực. -
cv=pass— Tất cả các bộ ARC trước đó trong chuỗi đã được xác thực và niêm phong của chúng còn nguyên vẹn. -
cv=fail— Chuỗi bị ngắt. Một bộ ARC trước đó không xác thực được. Một khi chuỗi được đánh dấufail, nó không thể được sửa chữa.
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à:
- Kiểm tra DMARC trực tiếp. Nếu nó vượt qua, giao hàng bình thường.
- 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. - 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:
Đá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
- ARC không xác thực người gửi ban đầu trực tiếp — nó ghi lại và truyền đạt các kết quả xác thực từ các bước nhảy trước đó.
- ARC không tạo ra sự tin tưởng trong các trung gian — người nhận phải tự quyết định ký ký ARC nào đáng tin cậy.
- ARC không ngăn chặn sửa đổi thư — nó ghi lại trạng thái xác thực trước khi sửa đổi xảy ra.
Sai Lầm Phổ Biến
- Giả định ARC được tôn trọng phổ biến: ARC vẫn là Thử nghiệm (không phải Standards Track). Trong khi Gmail, Microsoft và các nhà cung cấp chính khác hỗ trợ nó, không phải tất cả người nhận đều hỗ trợ. Bạn không nên dựa vào ARC một mình để có khả năng giao hàng.
- Phá vỡ chuỗi: Nếu một trung gian không hỗ trợ ARC nằm giữa hai trung gian hỗ trợ, chuỗi sẽ bị mất. Bước nhảy hỗ trợ ARC tiếp theo sẽ thấy các số instance bị thiếu và đánh dấu chuỗi là thất bại.
- Không xuất bản khóa ARC DNS: Nếu bạn vận hành một danh sách gửi thư hoặc dịch vụ chuyển tiếp và thêm tiêu đề ARC nhưng không xuất bản khóa công khai tương ứng trong DNS, người xác minh không thể xác thực ARC-Seal của bạn, phá vỡ chuỗi.
- Nhầm lẫn ARC với DKIM: Mặc dù ARC sử dụng lại định dạng chữ ký DKIM, chúng có mục đích khác nhau. DKIM xác thực miền ký như chịu trách nhiệm cho thư. ARC ghi lại một chuỗi quyền hạn ghi lại trạng thái xác thực ở mỗi bước nhảy.
- Bỏ qua ARC như là chủ sở hữu miền: Mặc dù chủ sở hữu miền không tạo tiêu đề ARC, hiểu ARC giúp chẩn đoán các vấn đề khả năng giao hàng khi thư đi qua danh sách gửi thư hoặc dịch vụ chuyển tiếp.
Tác Động Khả Năng Giao Hàng
- Cứu thư được chuyển tiếp: Giá trị chính của ARC là ngăn chặn thư hợp pháp bị từ chối sau chuyển tiếp. Danh sách gửi thư, bí danh đại học và quy tắc chuyển tiếp công ty đều được hưởng lợi từ ARC.
- Tin tưởng ARC của Gmail: Gmail sử dụng ARC để đưa ra các quyết định ghi đè DMARC. Nếu một thư thất bại DMARC nhưng có một chuỗi ARC hợp lệ từ một trung gian đáng tin cậy, Gmail có thể giao thư đến hộp thư đến thay vì từ chối nó.
- Hỗ trợ Microsoft: Microsoft 365 cũng đánh giá các chuỗi ARC và sử dụng chúng trong logic ghi đè DMARC của nó, đặc biệt là đối với các thư từ danh sách gửi thư đáng tin cậy.
-
Kích hoạt chính sách DMARC nghiêm ngặt hơn: Không có ARC, chuyển từ
p=nonesangp=rejectcó nguy cơ chặn thư được chuyển tiếp hợp pháp. ARC giảm thiểu rủi ro này, giúp chủ sở hữu miền có thể áp dụng các chính sách DMARC mạnh mẽ một cách an toàn hơn. - Chuẩn bị cho tương lai: Khi càng nhiều trung gian áp dụng ARC, hệ thống email trở nên phục hồi hơn. Hỗ trợ ARC định vị cơ sở hạ tầng của bạn để được hưởng lợi từ một chuỗi chuyển tiếp ngày càng được tin tưởng.