Giao thức mã hóa Delegated Credentials for TLS là gì?

Mozilla, hợp tác với Facebook, Cloudflare và các thành viên khác trong cộng đồng IETF, đã công bố thông số kỹ thuật cho một giao thức mã hóa mới có tên là ” Thông tin được ủy quyền cho TLS ” (Delegated Credentials for TLS).

Thông tin xác thực được ủy quyền cho TLS (Delegated Credentials for TLS) là một cách đơn giản hóa mới để triển khai các chứng chỉ “ngắn hạn” mà không làm giảm độ tin cậy của các kết nối an toàn.

Nói tóm lại, phần mở rộng giao thức TLS mới nhằm mục đích ngăn chặn hiệu quả việc lạm dụng chứng chỉ bị đánh cắp bằng cách giảm thời gian hiệu lực tối đa của chúng xuống một khoảng thời gian rất ngắn, chẳng hạn như vài ngày hoặc thậm chí vài giờ.

Trước khi tìm hiểu về cách thức Thông tin ủy quyền cho TLS hoạt động, bạn cần hiểu cơ sở hạ tầng TLS hiện tại và tất nhiên, về vấn đề cốt lõi trong đó vì chúng tôi cần Thông tin xác thực được ủy quyền cho TLS.

Cơ sở hạ tầng TLS hiện tại

Hơn 70% tất cả các trang web trên Internet ngày nay sử dụng chứng chỉ TLS để thiết lập đường truyền liên lạc HTTPS an toàn giữa máy chủ và khách truy cập của họ, đảm bảo tính bảo mật và toàn vẹn của mỗi bit và byte dữ liệu được trao đổi.

Các trang web có được chứng chỉ TLS từ Tổ chức phát hành chứng chỉ (CA) phải được tất cả các trình duyệt web chính tin cậy. Tổ chức CA ký điện tử một chứng chỉ chỉ còn hiệu lực trong một khoảng thời gian cụ thể, thường là trong một hoặc hai năm.

Khi bạn kết nối với trang web được bảo vệ bằng HTTPS, máy chủ sẽ cung cấp chứng chỉ TLS cho trình duyệt web của bạn để xác nhận danh tính trước khi trao đổi bất kỳ thông tin nào có thể bao gồm mật khẩu và dữ liệu nhạy cảm khác.

Lý tưởng nhất là các chứng chỉ dự kiến ​​sẽ được sử dụng cho toàn bộ thời gian hiệu lực của chúng, nhưng thật không may, một chứng chỉ có thể bị hỏng trước ngày hết hạn vì nhiều lý do.

Ví dụ, khóa riêng bí mật tương ứng với chứng chỉ có thể bị đánh cắp hoặc chứng chỉ có thể được cấp một cách gian lận , cho phép kẻ tấn công mạo danh máy chủ mục tiêu hoặc theo dõi các kết nối được mã hóa thông qua một cuộc tấn công trung gian.

Hơn nữa, các công ty công nghệ lớn như Facebook, Google và Cloudflare cung cấp dịch vụ của họ từ hàng ngàn máy chủ được triển khai trên toàn thế giới. Họ phân phối khóa chứng chỉ riêng cho từng người trong số họ, một quá trình mà nguy cơ gian lận cao hơn bình thường.

Tại sao chúng tôi cần Thông tin xác thực được ủy quyền cho TLS?

Nếu chứng chỉ bị xâm phạm trước ngày hết hạn, tùy chọn duy nhất mà nhà điều hành trang web hiện có là yêu cầu cơ quan chứng nhận thu hồi chứng chỉ bị đánh cắp và cấp lại chứng chỉ mới với khóa riêng khác.

Tuy nhiên, thật không may, các cơ chế thu hồi hiện tại cũng bị phá vỡ trong thực tế.

Lý tưởng nhất là các trình duyệt có thể phát hiện kịp thời các chứng chỉ không còn tin cậy để chủ động ngăn người dùng của họ kết nối với máy chủ bị xâm nhập cho đến khi nó trở lại trực tuyến với chứng chỉ hợp lệ mới.

Nhưng vì thường xuyên truy vấn máy chủ CA sẽ bị gây tốn hiệu năng lớn đối với lưu lượng truy cập web, các trình duyệt hiện đại sẽ sử dụng trạng thái xác thực được lưu trong bộ nhớ cache của chứng chỉ trong một thời gian hoặc cho rằng nó vẫn hợp lệ trong trường hợp trình duyệt không nhận được phản hồi từ CA đúng giờ hoặc gặp bất kỳ lỗi kết nối.

Điều đó có nghĩa là kẻ tấn công có thể khởi động các cuộc tấn công mạng vào một trang web được nhắm mục tiêu chỉ trong khung thời gian giữa việc thu hồi chứng chỉ bị đánh cắp và khi các trình duyệt tìm hiểu về nó và chặn nó.

Trong nỗ lực giảm hơn nữa khung thời gian nhạy cảm này, một số công ty đã bắt đầu thử nghiệm các chứng chỉ với thời gian xác nhận ngắn hơn, sau đó các trình duyệt tự từ chối chúng thay vì chờ tín hiệu thu hồi.

Facebook cũng nằm trong số những công ty sử dụng phương pháp này, như công ty giải thích :

“Thời gian chứng nhận càng ngắn, chứng chỉ sẽ càng ít bị thu hồi trước khi hết hạn. Chúng tôi đã rút ngắn thời hạn hiệu lực của chứng chỉ từ tiêu chuẩn ngành hiện tại là một năm xuống chỉ còn vài tháng.”

“Điều này giúp tăng cường bảo mật của chúng tôi bằng cách giảm thời gian kẻ tấn công tiềm năng có thể sử dụng chứng chỉ bị xâm nhập.”

Tuy nhiên, vì CA là một tổ chức riêng biệt và một máy chủ trang web sẽ cần lấy các chứng chỉ mới từ họ thường xuyên hơn, nên không có cách nào đáng tin cậy để các công ty liên tục xoay chứng chỉ sau mỗi vài giờ hoặc vài ngày.

“Tuy nhiên, việc liên lạc liên tục với một CA bên ngoài để có được các chứng chỉ có thời gian sử dụng ngắn có thể dẫn đến hiệu suất kém hoặc thậm chí tệ hơn, thiếu quyền truy cập hoàn toàn vào một dịch vụ”, Firefox cảnh báo .

“Để giảm thiểu rủi ro này, các dịch vụ như [Facebook] của chúng tôi thường chọn thời gian hết hạn lâu hơn, vì vậy cần có thời gian để phục hồi sau mọi thất bại”, Facebook cho biết.

Làm thế nào ‘Thông tin được ủy quyền cho TLS’ hoạt động?

Cuối cùng, hãy nói về giải pháp.

Để giải quyết các vấn đề được đề cập ở trên, các thành viên cộng đồng IETF hiện đã đề xuất Thông tin xác thực được ủy quyền cho TLS, một giao thức mã hóa mới cân bằng giữa sự đánh đổi giữa tuổi thọ và độ tin cậy.

Thông tin được ủy quyền cho TLS cho phép các công ty kiểm soát một phần quá trình ký chứng chỉ mới cho chính họ với thời gian hiệu lực không quá 7 ngày và hoàn toàn không phụ thuộc vào cơ quan cấp chứng chỉ.

“Các ủy nhiệm được ủy quyền cho phép chủ sở hữu các chứng chỉ được đăng ký đặc biệt sử dụng các chứng chỉ đó như một loại tiểu CA để xây dựng các chứng chỉ phụ có thẩm quyền được ủy quyền bởi chứng chỉ thực thể cuối thực tế”, JC Jones , lãnh đạo kỹ thuật mật mã tại Mozilla cho biết .

“Các chứng chỉ được ủy nhiệm này đặc biệt hữu ích khi cần hành động thay mặt cho thực thể cuối trong các môi trường có độ tin cậy thấp hơn, giống như các chứng chỉ đôi khi được tìm thấy trong các mạng CDN.”

Theo các điều khoản, một công ty có thể có được một “leaf certificate” đã ký từ cơ quan cấp chứng chỉ của mình, bằng cách sử dụng nó sau đó có thể tạo và ký một chứng chỉ được ủy nhiệm với thời gian hết hạn chỉ trong vài giờ.

Về phía khách hàng, các trình duyệt và phần mềm hỗ trợ giao thức mới sẽ sử dụng khóa chung của thông tin ủy quyền tồn tại trong thời gian ngắn của trang web để thiết lập kết nối TLS an toàn với máy chủ của nó.

Vì vậy, thay vì triển khai khóa riêng thực tế được liên kết với chứng chỉ cho tất cả các máy chủ, giờ đây các công ty có thể tạo, triển khai và cấp thông tin ủy nhiệm nội bộ.

“Dịch vụ tạo chứng chỉ ủy nhiệm sẽ dễ dàng hơn nhiều so với chứng chỉ được ký bởi CA”, dự thảo của IETF cho biết.

“Các nhà khai thác có thể cấp cho mỗi máy chủ của họ một thông tin ủy nhiệm riêng với thời gian hiệu lực ngắn, thay vì khóa riêng của chứng chỉ thực, để thêm phần bảo vệ chuyên sâu”, Facebook cho biết.

Hãy gói lại:

Khi bạn kết nối với một trang web có trình duyệt hỗ trợ thông tin ủy nhiệm, sau đó thay vì sử dụng chứng chỉ TLS thông thường, máy chủ sẽ cung cấp mã thông báo ngắn hạn cho trình duyệt của bạn để xác thực, đáp ứng chuỗi tin cậy vì thông tin được ủy quyền vẫn được ký bởi giấy chứng nhận thu được từ CA.

“Vì chứng chỉ được ủy quyền có khóa chung của riêng nó, nên một máy chủ cũng có thể thử nghiệm các thuật toán khóa chung mới cho TLS (bao gồm cả khóa công khai Ed25519) ngay cả trước khi CA hỗ trợ”, Facebook cho biết.

“Một thông tin ủy nhiệm mới có thể được tạo và đẩy ra các máy chủ TLS từ lâu trước khi thông tin xác thực trước đó hết hạn. Những cú đánh tạm thời có sẵn sẽ không dẫn đến những cái bắt tay bị hỏng đối với các máy khách hỗ trợ thông tin ủy nhiệm”, Cloudflare nói.

 

Hỗ trợ cho các Thông tin được ủy quyền

Facebook đã bổ sung hỗ trợ cho Thông tin xác thực được ủy quyền trong thư viện Fizz , triển khai TLS 1.3 nguồn mở được thiết kế cho hiệu suất và bảo mật.

Các mã nguồn mở của Google là OpenSSL, BoringSSL , cũng hỗ trợ Thông tin xác thực được ủy quyền cho giao thức TLS.

Là một trong những đối tác trong việc chuẩn hóa giao thức, Mozilla hiện hỗ trợ Thông tin xác thực được ủy quyền trong phiên bản trình duyệt web Firefox mới nhất.

Mặc dù tính năng này không được bật theo mặc định tại thời điểm này, người dùng có thể bật tính năng này bằng cách điều hướng đến about: config → tìm kiếm tùy chọn ” security.tls.enable_delegated_credentials ” → nhấp đúp vào nó để đặt giá trị của nó thành đúng.

bình luận

Leave a Comment