Công ty Mozilla về việc bắt đầu thử nghiệm trong các bản dựng hàng đêm của Firefox một cơ chế mới để phát hiện các chứng chỉ bị thu hồi - . CRLite cho phép bạn tổ chức việc kiểm tra thu hồi chứng chỉ hiệu quả dựa trên cơ sở dữ liệu được lưu trữ trên hệ thống của người dùng. Triển khai CRLite của Mozilla theo giấy phép MPL 2.0 miễn phí. Mã để tạo cơ sở dữ liệu và các thành phần máy chủ được viết bằng và Đi. Các phần máy khách được thêm vào Firefox để đọc dữ liệu từ cơ sở dữ liệu bằng ngôn ngữ Rust.
Xác minh chứng chỉ bằng các dịch vụ bên ngoài dựa trên giao thức vẫn được sử dụng (Giao thức trạng thái chứng chỉ trực tuyến) yêu cầu quyền truy cập mạng được đảm bảo, dẫn đến độ trễ đáng kể trong quá trình xử lý yêu cầu (trung bình 350 mili giây) và gặp vấn đề trong việc đảm bảo tính bảo mật (máy chủ OCSP phản hồi yêu cầu nhận thông tin về các chứng chỉ cụ thể, có thể được sử dụng để đánh giá xem điều gì các trang web người dùng mở). Ngoài ra còn có khả năng kiểm tra địa phương đối với danh sách (Danh sách thu hồi chứng chỉ), nhưng nhược điểm của phương pháp này là kích thước dữ liệu được tải xuống rất lớn - hiện cơ sở dữ liệu về các chứng chỉ bị thu hồi chiếm khoảng 300 MB và nó vẫn tiếp tục tăng trưởng.
Để chặn các chứng chỉ đã bị cơ quan chứng nhận xâm phạm và thu hồi, Firefox đã sử dụng danh sách đen tập trung từ năm 2015 kết hợp với cuộc gọi dịch vụ để xác định hoạt động độc hại có thể xảy ra. OneCRL, như trong Chrome, hoạt động như một liên kết trung gian tổng hợp danh sách CRL từ các cơ quan chứng nhận và cung cấp một dịch vụ OCSP tập trung duy nhất để kiểm tra các chứng chỉ bị thu hồi, giúp không thể gửi yêu cầu trực tiếp đến các cơ quan chứng nhận. Mặc dù có nhiều nỗ lực để cải thiện độ tin cậy của dịch vụ xác minh chứng chỉ trực tuyến, dữ liệu đo từ xa cho thấy hơn 7% yêu cầu OCSP hết thời gian chờ (vài năm trước con số này là 15%).
Theo mặc định, nếu không thể xác minh qua OCSP, trình duyệt sẽ coi chứng chỉ là hợp lệ. Dịch vụ có thể không khả dụng do sự cố mạng và hạn chế trên mạng nội bộ hoặc bị chặn bởi kẻ tấn công - để vượt qua kiểm tra OCSP trong cuộc tấn công MITM, chỉ cần chặn quyền truy cập vào dịch vụ kiểm tra. Một phần để ngăn chặn các cuộc tấn công như vậy, một kỹ thuật đã được triển khai , cho phép bạn coi lỗi truy cập OCSP hoặc tình trạng không có sẵn OCSP là sự cố với chứng chỉ, nhưng tính năng này là tùy chọn và yêu cầu đăng ký đặc biệt đối với chứng chỉ.
CRLite cho phép bạn hợp nhất thông tin đầy đủ về tất cả các chứng chỉ bị thu hồi thành một cấu trúc dễ dàng cập nhật, kích thước chỉ 1 MB, giúp lưu trữ cơ sở dữ liệu CRL hoàn chỉnh ở phía máy khách.
Trình duyệt sẽ có thể đồng bộ hóa bản sao dữ liệu về các chứng chỉ bị thu hồi hàng ngày và cơ sở dữ liệu này sẽ có sẵn trong mọi điều kiện.
CRLite kết hợp thông tin từ , nhật ký công khai về tất cả các chứng chỉ đã cấp và bị thu hồi cũng như kết quả quét chứng chỉ trên Internet (các danh sách CRL khác nhau của cơ quan chứng nhận được thu thập và thông tin về tất cả các chứng chỉ đã biết được tổng hợp). Dữ liệu được đóng gói bằng cách sử dụng tầng , một cấu trúc xác suất cho phép phát hiện sai phần tử bị thiếu, nhưng loại trừ việc thiếu sót phần tử hiện có (nghĩa là, với một xác suất nhất định, có thể xảy ra kết quả dương tính giả đối với chứng chỉ chính xác, nhưng chứng chỉ bị thu hồi được đảm bảo sẽ được xác định).
Để loại bỏ các kết quả dương tính giả, CRLite đã giới thiệu các cấp độ lọc hiệu chỉnh bổ sung. Sau khi tạo cấu trúc, tất cả các bản ghi nguồn sẽ được tìm kiếm và mọi kết quả dương tính giả đều được xác định. Dựa trên kết quả của lần kiểm tra này, một cấu trúc bổ sung sẽ được tạo ra, được xếp chồng lên cấu trúc đầu tiên và sửa các kết quả dương tính giả. Thao tác được lặp lại cho đến khi loại bỏ hoàn toàn các kết quả dương tính giả trong quá trình kiểm tra kiểm soát. Thông thường, việc tạo 7-10 lớp là đủ để bao phủ hoàn toàn tất cả dữ liệu. Do trạng thái của cơ sở dữ liệu, do đồng bộ hóa định kỳ, hơi chậm so với trạng thái hiện tại của CRL nên việc kiểm tra các chứng chỉ mới được cấp sau lần cập nhật cuối cùng của cơ sở dữ liệu CRLite được thực hiện bằng giao thức OCSP, bao gồm cả việc sử dụng (phản hồi OCSP được cơ quan chứng nhận chứng nhận sẽ được truyền bởi máy chủ phục vụ trang web khi đàm phán kết nối TLS).
Bằng cách sử dụng bộ lọc Bloom, phần thông tin tháng 100 từ WebPKI, bao gồm 750 triệu chứng chỉ đang hoạt động và 1.3 nghìn chứng chỉ bị thu hồi, có thể được đóng gói thành cấu trúc có kích thước 16 MB. Quá trình tạo cấu trúc khá tốn nhiều tài nguyên, nhưng nó được thực hiện trên máy chủ Mozilla và người dùng được cung cấp bản cập nhật sẵn sàng. Ví dụ: ở dạng nhị phân, dữ liệu nguồn được sử dụng trong quá trình tạo cần khoảng 6.7 GB bộ nhớ khi được lưu trữ trong Redis DBMS và ở dạng thập lục phân, kết xuất tất cả các số sê-ri chứng chỉ sẽ mất khoảng 40 GB. Quá trình tổng hợp tất cả các chứng chỉ bị thu hồi và đang hoạt động mất khoảng 20 phút và quá trình tạo cấu trúc đóng gói dựa trên bộ lọc Bloom mất thêm XNUMX phút.
Mozilla hiện đảm bảo rằng cơ sở dữ liệu CRLite được cập nhật bốn lần một ngày (không phải tất cả các bản cập nhật đều được gửi tới khách hàng). Việc tạo các bản cập nhật delta vẫn chưa được triển khai - việc sử dụng bsdiff4, được sử dụng để tạo các bản cập nhật delta cho các bản phát hành, không mang lại hiệu quả phù hợp cho CRLite và các bản cập nhật có kích thước lớn một cách bất hợp lý. Để loại bỏ nhược điểm này, người ta dự định làm lại định dạng của cấu trúc lưu trữ để loại bỏ việc xây dựng lại và xóa các lớp không cần thiết.
CRLite hiện hoạt động trên Firefox ở chế độ thụ động và được sử dụng song song với OCSP để tích lũy số liệu thống kê về hoạt động chính xác. CRLite có thể được chuyển sang chế độ quét chính; để thực hiện việc này, bạn cần đặt tham số security.pki.crlite_mode = 2 trong about:config.
Nguồn: opennet.ru
