- DNS-PERSIST-01 của Let's Encrypt là một mô hình thử thách ACME mới sử dụng bản ghi xác thực duy trì liên tục, thay thế cho việc xác minh lặp lại của phương thức DNS-01 hiện có
- Cách làm này chứng minh quyền kiểm soát tên miền trong dài hạn thông qua bản ghi TXT được ràng buộc với một tài khoản ACME và CA cụ thể
- Giảm gánh nặng thay đổi DNS và triển khai thông tin xác thực API, từ đó đồng thời tăng cường hiệu quả vận hành và bảo mật
- Hỗ trợ các tính năng kiểm soát chi tiết như tùy chọn chính sách (
policy=wildcard), thời điểm hết hạn (persistUntil) và cho phép nhiều CA
- Dự kiến triển khai staging vào cuối quý 1 năm 2026 và rollout chính thức trong quý 2, hứa hẹn đơn giản hóa việc quản lý chứng chỉ trong các môi trường quy mô lớn và tự động hóa cao
Giới hạn của phương thức DNS-01
- Thử thách DNS-01 hiện tại yêu cầu tạo token mới mỗi lần phát hành chứng chỉ và thêm bản ghi TXT vào
_acme-challenge.
- Mỗi lần xác minh đều cần cập nhật DNS, gây ra độ trễ lan truyền và làm tăng độ phức tạp của tự động hóa
- Trong các triển khai quy mô lớn, thông tin xác thực DNS API bị phân tán trên nhiều hệ thống, làm tăng rủi ro bảo mật
- Một số người dùng muốn tránh các thay đổi DNS lặp đi lặp lại này
Cấu trúc và cách hoạt động của DNS-PERSIST-01
Điểm cân bằng giữa bảo mật và vận hành
- Với DNS-01, quyền ghi DNS là tài sản quan trọng nhất, còn với DNS-PERSIST-01, trọng tâm là bảo vệ khóa tài khoản ACME
- Sau khi cấu hình ban đầu, có thể hạn chế quyền ghi DNS để giảm bề mặt tấn công
- Tuy nhiên, do cấu trúc xác thực duy trì liên tục, rủi ro sẽ lớn hơn nếu khóa tài khoản bị lộ, nên cần tăng cường quản lý bảo mật tài khoản
Tính năng kiểm soát phạm vi và thời hạn
Lộ trình triển khai và tình trạng hiện thực
- Cuộc bỏ phiếu CA/Browser Forum SC-088v3 đã được thông qua nhất trí vào tháng 10 năm 2025, và Nhóm công tác IETF ACME đã chấp nhận bản nháp
- Đã được hỗ trợ trong Pebble (phiên bản rút gọn của Boulder), đồng thời phần hiện thực cho client lego-cli cũng đang được tiến hành
- Dự kiến staging vào cuối quý 1 năm 2026 và triển khai chính thức trong quý 2
- Mô hình này phù hợp với các lĩnh vực mà cách làm cũ kém hiệu quả, như IoT, môi trường đa tenant và môi trường phát hành chứng chỉ số lượng lớn
Bối cảnh về Let's Encrypt và ISRG
- Let's Encrypt là tổ chức chứng thực (CA) miễn phí, tự động hóa và mở do tổ chức phi lợi nhuận ISRG vận hành
- Báo cáo thường niên năm 2025 của ISRG đã công bố các hoạt động liên quan đến bảo mật Internet
1 bình luận
Ý kiến trên Hacker News
Tôi thật sự rất vui khi thấy tin này
Khi dùng bind làm nameserver có thẩm quyền, tôi cấu hình để giới hạn hmac-secret sao cho mỗi web server chỉ có thể cập nhật các bản ghi TXT thuộc về chính nó
Như vậy, ngay cả khi server “bob” bị xâm nhập, nó cũng chỉ có thể lấy chứng chỉ cho miền “bob”
Ví dụ cấu hình dùng
update-policyđể giới hạn mỗi key chỉ được sửa các subdomain dưới_acme-challengeKhi tạo tài khoản mới, bạn sẽ được cấp một subdomain riêng, rồi chỉ cần trỏ CNAME của miền challenge sang subdomain đó thì chỉ tài khoản ấy mới có thể cập nhật vùng đó
Tôi nghĩ tính năng này giải quyết một bất tiện lớn trong vận hành thực tế
Tuy vậy, tôi lo ngại về việc lộ định danh của tài khoản quản trị
Tên người dùng không được bảo vệ nghiêm ngặt như thông tin xác thực, nhưng vẫn có thể giúp kẻ tấn công xác định mục tiêu
Khả năng cao là các dịch vụ như Shodan sẽ lập chỉ mục những ID này và cung cấp tra cứu ngược
accounturitrong bản ghi CAA cũng đã làm lộ định danh tài khoản rồi, nên ở mức nào đó thì chuyện này vốn đã công khaiTôi còn nghĩ sẽ tốt hơn nếu định dạng của CAA và bản ghi persist thống nhất với nhau
accounturiTôi ngạc nhiên khi điểm này không yêu cầu DNSSEC
Trước đây tôi từng nghĩ DNSSEC khá phiền phức, nhưng giờ có quá nhiều bản ghi ảnh hưởng đến chuỗi tin cậy gốc như CAA, CERT, SSHFP, TXT nên DNS rất dễ bị tấn công MITM
Đặc biệt là ngay cả nhiều tập đoàn lớn cũng chưa triển khai DNSSEC đúng cách, nên ít nhất điều này cũng nên được nêu như một khuyến nghị
Nếu kẻ tấn công chiếm được DNS, chúng có thể giả mạo chứng chỉ bằng HTTP-01, TLS-ALPN-01 hay DNS-01 đều được
Nhờ tính năng này, việc cấp chứng chỉ cho server LAN không lộ ra Internet có lẽ sẽ dễ hơn rất nhiều
Trong tương lai, có lẽ hầu hết giao diện quản trị sẽ tự tạo sẵn chuỗi để dán vào bản ghi DNS và nhận chứng chỉ Let's Encrypt ngay lập tức
Nếu bạn dùng certbot, có thể theo dõi tình trạng hỗ trợ tính năng này trong GitHub issue
Trước đây tôi từng hoài nghi về việc phát hành chứng chỉ ngắn hạn, nhưng sau khi thấy chứng chỉ địa chỉ IP và xác minh HTTP-01 thì đã đổi ý
Giờ tôi không lưu chứng chỉ lên đĩa nữa, mà để một background thread kiểm tra chứng chỉ mới mỗi 24 giờ
Cách này cho phép tạo ra giải pháp self-host mà người dùng chỉ cần triển khai phần mềm lên VM là có thể đưa vào vận hành trong vòng 5 phút
Kết hợp với dịch vụ như checkip.amazonaws.com thì có thể tự động hóa hoàn toàn việc triển khai
Cuối cùng thì việc tự động hóa chứng chỉ cho web service chỉ dùng nội bộ có vẻ đã trở nên dễ dàng hơn
Cảm giác như vấn đề vận hành lớn nhất từ trước đến nay cuối cùng đã được giải quyết, nên tôi rất vui
Phần còn thiếu ở đây là xác minh quyền sở hữu tài khoản ACME
Hầu hết công cụ tự động đều tự tạo tài khoản nên người dùng không trực tiếp xử lý, nhưng giờ sẽ cần chuyển thông tin xác thực để chứng minh quyền sở hữu tài khoản cho nhà cung cấp ACME
Nếu Let's Encrypt không thể tạo token bị giới hạn theo từng miền, có thể sẽ phải tạo tài khoản riêng cho mỗi miền
nếu những thông tin xác thực hoặc endpoint đó bị chiếm đoạt thì thực ra đã là một sự cố lớn hơn nhiều rồi
Đây thật sự là tin vui với người dùng Dynamic DNS
Ví dụ với các dịch vụ như Namecheap, nơi yêu cầu thay đổi chỉ được gửi từ IP cố định, giờ chỉ cần thiết lập một lần là có thể tự động gia hạn
Tôi chắc chắn sẽ thử khi hiện đại hóa homelab của mình
Nếu tôi không hiểu nhầm, thì có phải bất kỳ ai kiểm soát DNS server của miền tôi, hoặc
chặn được lưu lượng giữa Let's Encrypt và DNS server, đều có thể lấy chứng chỉ TLS cho miền của tôi hay không?
DNS-01 cũng vậy, nhưng với cách này thì có vẻ còn dễ hơn vì kẻ tấn công chỉ cần đưa tài khoản LE của họ vào phản hồi DNS
Tôi tự hỏi liệu thay vào đó đưa trực tiếp chứng chỉ công khai của tôi vào DNS có tốt hơn không
Nếu ai đó có thể MITM lưu lượng giữa LE và DNS server, thì bạn đã ở trong một tình huống nghiêm trọng hơn nhiều
Nếu họ có thể thay đổi DNS, thì không có cách nào ngăn việc cấp chứng chỉ cả
Let's Encrypt đã vận hành như vậy từ nhiều năm nay, và từ 2024 đây là yêu cầu bắt buộc với mọi CA
Liên kết quy định CAB Forum
Tài liệu liên quan