Vui lòng gửi mọi câu hỏi về Chính sách này đến diễn đàn Chính sách về CT: ct-policy@chromium.org
Khi chứng chỉ Bảo mật tầng truyền tải (TLS) của một kết nối được xác thực trong một ứng dụng chọn sử dụng tính minh bạch của chứng chỉ, chứng chỉ đó sẽ được đánh giá để tuân thủ Chính sách minh bạch của chứng chỉ (CT) trên Android. Những chứng chỉ đi kèm với Dấu thời gian của chứng chỉ đã ký (SCT) đáp ứng Chính sách này được coi là tuân thủ CT.
Việc tuân thủ CT được thực hiện bằng một chứng chỉ và một nhóm SCT đi kèm đáp ứng một nhóm yêu cầu kỹ thuật do các thư viện TLS phổ biến (bao gồm cả Conscrypt tích hợp sẵn) thực thi trong quá trình xác thực chứng chỉ, được xác định trong Chính sách này.
Trạng thái nhật ký CT
Việc tuân thủ CT trong Android được xác định bằng cách đánh giá SCT từ nhật ký CT và đảm bảo rằng các nhật ký này ở(các) trạng thái chính xác tại thời điểm kiểm tra. Một nhật ký CT có thể ở trong các trạng thái sau:
Pending
Qualified
Usable
ReadOnly
Retired
Rejected
Để giúp bạn hiểu rõ các yêu cầu về việc tuân thủ CT trong Android, định nghĩa về các trạng thái này, các yêu cầu về Nhật ký trong từng trạng thái, cũng như cách các trạng thái này ảnh hưởng đến hành vi của Android, hãy xem phần CT Log Lifecycle Explainer (Giải thích vòng đời của nhật ký CT) trong tài liệu của Chrome.
Chứng chỉ tuân thủ CT
Chứng chỉ TLS là Tuân thủ CT nếu đi kèm với một bộ SCT đáp ứng ít nhất một trong các tiêu chí được xác định sau, tuỳ thuộc vào cách SCT được gửi đến Android. Trong các ứng dụng thực thi CT của Android, tất cả các chứng chỉ TLS được tin cậy công khai đều phải tuân thủ CT để xác thực thành công; tuy nhiên, những chứng chỉ không được ghi nhật ký vào CT hoặc có không đủ SCT sẽ không được coi là chứng chỉ được cấp sai.
Khi đánh giá một chứng chỉ để tuân thủ CT, Android sẽ xem xét một số yếu tố, bao gồm cả số lượng SCT hiện có, bên nào vận hành Nhật ký CT đã phát hành SCT và trạng thái của Nhật ký CT đã phát hành SCT, cả tại thời điểm chứng chỉ đang được xác thực và tại thời điểm Nhật ký CT tạo SCT.
Tuỳ thuộc vào cách SCT được trình bày cho Android, bạn có thể đạt được sự tuân thủ CT bằng cách đáp ứng một trong các tiêu chí sau:
SCT được nhúng:
- Ít nhất một SCT được nhúng từ một Nhật ký CT là
Qualified
,Usable
hoặcReadOnly
tại thời điểm kiểm tra; và - Có SCT được nhúng từ ít nhất N Nhật ký CT riêng biệt là
Qualified
,Usable
,ReadOnly
hoặcRetired
tại thời điểm kiểm tra, trong đó N được xác định trong bảng sau; và - Trong số các SCT đáp ứng yêu cầu 2, ít nhất 2 SCT phải được phát hành từ các Nhà điều hành nhật ký CT riêng biệt theo quy định của Android; và
- Trong số các SCT đáp ứng yêu cầu 2, ít nhất một SCT phải được phát hành từ một nhật ký được Android công nhận là tuân thủ RFC 6962.
Thời hạn của chứng chỉ | Số lượng SCT từ các Nhật ký chứng chỉ minh bạch riêng biệt |
---|---|
<= 180 ngày | 2 |
> 180 ngày | 3 |
SCT được phân phối qua OCSP hoặc TLS:
- Ít nhất 2 SCT từ một Nhật ký CT là
Qualified
,Usable
hoặcReadOnly
tại thời điểm kiểm tra; và - Trong số các SCT đáp ứng yêu cầu 1, ít nhất 2 SCT phải được phát hành từ các CT Log Operator riêng biệt theo cách Android nhận dạng; và
- Trong số các SCT đáp ứng yêu cầu 1, ít nhất một SCT phải được phát hành từ một nhật ký CT mà Android nhận dạng là tuân thủ RFC6962.
Đối với cả SCT được nhúng và SCT được phân phối bằng OCSP hoặc TLS, tính duy nhất của Log Operator được xác định là có các mục riêng biệt trong phần operators của danh sách nhật ký.
Trong trường hợp hiếm gặp là Nhật ký CT thay đổi nhà điều hành trong suốt thời gian tồn tại, nhật ký CT có thể chứa một danh sách previous_operators
(không bắt buộc), kèm theo dấu thời gian cuối cùng mà nhà điều hành trước đó đã vận hành nhật ký này.
Để ngăn các thay đổi của toán tử nhật ký làm hỏng các chứng chỉ hiện có, toán tử nhật ký của mỗi SCT được xác định là toán tử tại thời điểm phát hành SCT, bằng cách so sánh dấu thời gian SCT với dấu thời gian previous_operators
(nếu có).
Lưu ý quan trọng
Miễn là một trong các tiêu chí Tuân thủ CT nêu trên được đáp ứng bằng một số tổ hợp SCT được trình bày trong quá trình bắt tay, các SCT bổ sung (bất kể trạng thái của SCT) sẽ không ảnh hưởng tích cực hoặc tiêu cực đến trạng thái Tuân thủ CT của chứng chỉ.
Để đóng góp vào việc tuân thủ CT của một chứng chỉ, SCT phải được phát hành trước dấu thời gian Retired
của Nhật ký (nếu có).
Android sử dụng SCT sớm nhất trong số tất cả các SCT được trình bày để đánh giá việc tuân thủ CT dựa trên dấu thời gian CT Log Retired
.
Điều này giải thích cho các trường hợp đặc biệt trong đó Nhật ký minh bạch về chứng chỉ (CT Log) trở thành Nhật ký không còn được dùng trong quá trình gửi yêu cầu ghi nhật ký chứng chỉ.
"SCT được nhúng" có nghĩa là SCT được phân phối bằng tiện ích SignedCertificateTimestampList
X.509v3 trong chính chứng chỉ. Nhiều máy chủ TLS không hỗ trợ OCSP Stapling hoặc tiện ích TLS, vì vậy, các CA phải chuẩn bị sẵn sàng để nhúng SCT vào các chứng chỉ đã phát hành nhằm đảm bảo xác thực thành công hoặc xử lý EV trong Android.
Cách thêm Nhật ký minh bạch vào Android
Bạn có thể xem các tiêu chí để Nhật ký CT trở thành Qualified
, cũng như những trường hợp có thể khiến Nhật ký CT trở thành Retired
trong Chính sách về nhật ký CT của Chrome.
Hết thời gian chờ thực thi CT
Mỗi ngày, Google xuất bản một danh sách CT Log mới chứa một log_list_timestamp
mới. Mỗi ngày một lần, các thiết bị Android sẽ tìm cách tải phiên bản mới nhất của danh sách này xuống để xác minh. Tại một thời điểm bất kỳ, nếu không có danh sách nhật ký nào trên thiết bị hoặc nếu dấu thời gian của danh sách nhật ký cũ hơn 70 ngày, thì hoạt động thực thi CT sẽ bị tắt.
Thời gian chờ này mang đến sự đảm bảo quan trọng cho hệ sinh thái CT rằng các Nhật ký CT mới có thể chuyển đổi an toàn sang trạng thái Có thể sử dụng trong một khoảng thời gian cố định sau khi trở thành Qualified
.
Danh sách nhật ký Android
Danh sách nhật ký Android được xuất bản trong log_list.json và được cập nhật hằng ngày. Danh sách nhật ký này được cung cấp mà không có API ổn định, SLA hoặc đảm bảo về tính sẵn có.
Android cung cấp danh sách nhật ký CT cho mục đích của người gửi chứng chỉ (chẳng hạn như tổ chức phát hành chứng chỉ) và các trình giám sát cũng như kiểm toán viên CT muốn duy trì khả năng tương thích hoặc điều tra nội dung của hệ sinh thái CT và WebPKI.
Việc phụ thuộc trái phép vào danh sách nhật ký CT của Android không chỉ gây nguy hiểm cho người dùng của bạn mà còn cho người dùng Android và toàn bộ hệ sinh thái CT. Nếu bạn đang tìm hiểu cách thêm quy trình thực thi CT vào ứng dụng, hãy sử dụng cơ chế được nền tảng Android hỗ trợ.
Việc sử dụng danh sách nhật ký CT của Android không tuân thủ chính sách này là do bạn tự chịu rủi ro và có thể dẫn đến việc ứng dụng hoặc thư viện của bạn bị lỗi. Android phải có khả năng thay đổi danh sách nhật ký CT để ứng phó với các sự cố trong hệ sinh thái CT nhằm duy trì sự an toàn và bảo mật cho người dùng Android. Android có thể thực hiện các bước để đảm bảo rằng các phần phụ thuộc của bên thứ ba trong danh sách nhật ký CT không gây rủi ro cho khả năng phản hồi của Android đối với những sự cố như vậy, bao gồm cả những thay đổi không được thông báo đối với danh sách nhật ký để ngăn chặn việc sử dụng trái phép.