Cách DNSCrypt giải quyết vấn đề chứng chỉ hết hạn bằng cách giới thiệu thời hạn hiệu lực 24 giờ

Cách DNSCrypt giải quyết vấn đề chứng chỉ hết hạn bằng cách giới thiệu thời hạn hiệu lực 24 giờ

Trước đây, chứng chỉ thường hết hạn vì phải gia hạn thủ công. Mọi người chỉ đơn giản là quên làm điều đó. Với sự ra đời của Let's Encrypt và quy trình cập nhật tự động, có vẻ như vấn đề đã được giải quyết. Nhưng gần đây Câu chuyện Firefox cho thấy trên thực tế nó vẫn còn phù hợp. Thật không may, chứng chỉ tiếp tục hết hạn.

Trong trường hợp bạn bỏ lỡ câu chuyện, vào nửa đêm ngày 4 tháng 2019 năm XNUMX, hầu như tất cả các tiện ích mở rộng của Firefox đều đột ngột ngừng hoạt động.

Hóa ra, thất bại lớn xảy ra do Mozilla chứng chỉ đã hết hạn, được sử dụng để ký các phần mở rộng. Do đó, chúng được đánh dấu là “không hợp lệ” và chưa được xác minh (chi tiết kỹ thuật). Trên các diễn đàn, như một giải pháp thay thế, nên tắt xác minh chữ ký tiện ích mở rộng trong about: config hoặc thay đổi đồng hồ hệ thống.

Mozilla đã nhanh chóng phát hành bản vá Firefox 66.0.4, giải quyết vấn đề chứng chỉ không hợp lệ và tất cả các tiện ích mở rộng đều trở lại bình thường. Các nhà phát triển khuyên bạn nên cài đặt nó và không được dùng không có cách giải quyết nào để bỏ qua xác minh chữ ký vì chúng có thể xung đột với bản vá.

Tuy nhiên, câu chuyện này một lần nữa cho thấy việc hết hạn chứng chỉ vẫn là vấn đề cấp bách hiện nay.

Về vấn đề này, thật thú vị khi xem xét cách các nhà phát triển giao thức xử lý nhiệm vụ này theo một cách khá độc đáo. DNSCrypt. Giải pháp của họ có thể được chia thành hai phần. Thứ nhất, đây là những chứng chỉ ngắn hạn. Thứ hai, cảnh báo người dùng về thời hạn sử dụng dài hạn.

DNSCrypt

Cách DNSCrypt giải quyết vấn đề chứng chỉ hết hạn bằng cách giới thiệu thời hạn hiệu lực 24 giờDNSCrypt là một giao thức mã hóa lưu lượng DNS. Nó bảo vệ thông tin liên lạc DNS khỏi bị chặn và MiTM, đồng thời cho phép bạn bỏ qua việc chặn ở cấp truy vấn DNS.

Giao thức bao bọc lưu lượng DNS giữa máy khách và máy chủ trong cấu trúc mật mã, hoạt động trên các giao thức truyền tải UDP và TCP. Để sử dụng nó, cả máy khách và trình phân giải DNS đều phải hỗ trợ DNSCrypt. Ví dụ: kể từ tháng 2016 năm 152, nó đã được kích hoạt trên các máy chủ DNS và trong trình duyệt Yandex. Một số nhà cung cấp khác cũng đã công bố hỗ trợ, bao gồm Google và Cloudflare. Thật không may, số lượng chúng không nhiều (XNUMX máy chủ DNS công cộng được liệt kê trên trang web chính thức). Nhưng chương trình proxy dnscrypt có thể được cài đặt thủ công trên máy khách Linux, Windows và MacOS. Cũng có triển khai máy chủ.

Cách DNSCrypt giải quyết vấn đề chứng chỉ hết hạn bằng cách giới thiệu thời hạn hiệu lực 24 giờ

DNSCrypt hoạt động như thế nào? Nói tóm lại, khách hàng lấy khóa chung của nhà cung cấp đã chọn và sử dụng nó để xác minh chứng chỉ của họ. Các khóa công khai ngắn hạn cho phiên và mã định danh bộ mật mã đã có sẵn. Khách hàng được khuyến khích tạo khóa mới cho mỗi yêu cầu và máy chủ được khuyến khích thay đổi khóa 24 giờ một lần. Khi trao đổi khóa, thuật toán X25519 được sử dụng để ký - EdDSA, để mã hóa khối - XSalsa20-Poly1305 hoặc XChaCha20-Poly1305.

Một trong những nhà phát triển giao thức Frank Denis пишетviệc thay thế tự động cứ sau 24 giờ đã giải quyết được vấn đề chứng chỉ hết hạn. Về nguyên tắc, máy khách tham chiếu dnscrypt-proxy chấp nhận các chứng chỉ có bất kỳ thời hạn hiệu lực nào nhưng đưa ra cảnh báo "Thời gian khóa dnscrypt-proxy cho máy chủ này quá dài" nếu nó hợp lệ trong hơn 24 giờ. Đồng thời, một hình ảnh Docker đã được phát hành, trong đó việc thay đổi nhanh chóng các khóa (và chứng chỉ) đã được thực hiện.

Đầu tiên, nó cực kỳ hữu ích cho vấn đề bảo mật: nếu máy chủ bị xâm nhập hoặc khóa bị rò rỉ thì lưu lượng truy cập của ngày hôm qua sẽ không thể được giải mã. Chìa khóa đã thay đổi rồi. Điều này có thể sẽ gây ra vấn đề cho việc thực thi Luật Yarovaya, vốn buộc các nhà cung cấp phải lưu trữ tất cả lưu lượng truy cập, bao gồm cả lưu lượng được mã hóa. Ý nghĩa là sau này nó có thể được giải mã nếu cần bằng cách yêu cầu khóa từ trang web. Nhưng trong trường hợp này, trang web đơn giản là không thể cung cấp nó vì nó sử dụng các khóa ngắn hạn, xóa các khóa cũ.

Nhưng quan trọng nhất, Denis viết, các khóa ngắn hạn buộc các máy chủ phải thiết lập tự động hóa ngay từ ngày đầu. Nếu máy chủ kết nối với mạng và tập lệnh thay đổi khóa không được định cấu hình hoặc không hoạt động, điều này sẽ được phát hiện ngay lập tức.

Khi tự động hóa thay đổi khóa vài năm một lần, không thể tin cậy được và mọi người có thể quên việc hết hạn chứng chỉ. Nếu bạn thay chìa khóa hàng ngày, điều này sẽ được phát hiện ngay lập tức.

Đồng thời, nếu tự động hóa được cấu hình bình thường, thì việc thay đổi phím thường xuyên như thế nào không quan trọng: hàng năm, hàng quý hoặc ba lần một ngày. Frank Denis viết: Nếu mọi thứ hoạt động trong hơn 24 giờ, nó sẽ hoạt động mãi mãi. Theo ông, khuyến nghị xoay vòng khóa hàng ngày trong phiên bản thứ hai của giao thức, cùng với hình ảnh Docker được tạo sẵn để triển khai nó, đã giảm hiệu quả số lượng máy chủ có chứng chỉ hết hạn, đồng thời cải thiện tính bảo mật.

Tuy nhiên, vì một số lý do kỹ thuật, một số nhà cung cấp vẫn quyết định đặt thời hạn hiệu lực của chứng chỉ thành hơn 24 giờ. Vấn đề này phần lớn đã được giải quyết bằng một vài dòng mã trong dnscrypt-proxy: người dùng nhận được cảnh báo thông tin 30 ngày trước khi chứng chỉ hết hạn, một thông báo khác có mức độ nghiêm trọng cao hơn 7 ngày trước khi hết hạn và một thông báo quan trọng nếu chứng chỉ còn lại. hiệu lực. ít hơn 24 giờ. Điều này chỉ áp dụng cho các chứng chỉ ban đầu có thời hạn hiệu lực dài.

Những thông báo này mang đến cho người dùng cơ hội thông báo cho nhà điều hành DNS về việc chứng chỉ sắp hết hạn trước khi quá muộn.

Có lẽ nếu tất cả người dùng Firefox nhận được một thông báo như vậy, thì có thể ai đó sẽ thông báo cho các nhà phát triển và họ sẽ không cho phép chứng chỉ hết hạn. Frank Denis viết: “Tôi không nhớ có một máy chủ DNSCrypt nào trong danh sách các máy chủ DNS công cộng đã hết hạn chứng chỉ trong hai hoặc ba năm qua”. Trong mọi trường hợp, tốt hơn hết bạn nên cảnh báo người dùng trước thay vì vô hiệu hóa các tiện ích mở rộng mà không cảnh báo.

Cách DNSCrypt giải quyết vấn đề chứng chỉ hết hạn bằng cách giới thiệu thời hạn hiệu lực 24 giờ


Nguồn: www.habr.com

Thêm một lời nhận xét