Giải thích: Làm thế nào mà việc ‘Ủy quyền thông tin xác thực’ tăng cường bảo mật giao thức TLS

https://1.bp.blogspot.com/-HUrEdMGALvo/XcKL5_zs2pI/AAAAAAAA1ng/VX2wMH0K_EEzB5GcoXB33K_zQeaHqmkuACLcBGAsYHQ/s728-e100/delegated-credentials-for-tls-website-security.jpg

Mozilla hiện đang là đối tác với Facebook, Cloudflare và các thành viên khác trong cộng đồng IETF, đã công bố các thông số kỹ thuật cho một giao thức mã hóa mới có tên là “Ủy quyền thông tin xác thực cho TLS”.

Thông tin xác thực được ủy quyền cho TLS là một cách đơn giản hóa mới để triển khai 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 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 ủy quyền thông tin xác thực 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ề các vấn đề cốt lõi trong đó và vì sao 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 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 secret private tương ứng với một giấy chứng nhận có thể bị đánh cắp, hoặc giấy chứng nhận có thể được ban hành giả, cho phép kẻ tấn công để mạo danh một máy chủ mục tiêu hoặc gián điệp trên các kết nối được mã hóa thông qua một cuộc tấn công man-in-the-middle.

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ơ bị xâm phạm cao hơn bình thường.

Vấn đề: Tại sao chúng ta 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ẽ tăng công suất làm việc với việc lưu lượng truy cập web tăng, 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 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 biết 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 khả năng 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 bất kì thất bại nào”, Facebook cho biết.

Giải pháp: Làm thế nào để ‘Thông tin được ủy quyền cho TLS’ hoạt động?

Cuối cùng, chúng ta sẽ 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ọ của chứng chỉ và độ tin cậy.

https://1.bp.blogspot.com/-s5MzFTr3pMg/XcKBGLZsCXI/AAAAAAAA1nU/R-wpd_g26WsZKiOvEFnDwWCy-uV2Y7q2gCLcBGAsYHQ/s728-e100/delegated-credentials-for-tls-explained.jpg

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ỉ.

“Ủy quyền thông tin cho phép chủ sở hữu chứng chỉ được đăng ký sử dụng các chứng chỉ đó như một loại tiểu CA để xây dựng chứng chỉ phụ có thẩm quyền được ủy quyền bởi chứng chỉ thực end-entity cert,” J.C. 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 cạnh CDN.”

Theo các điều khoản, một công ty có thể có được một “chứng chỉ lá” đã 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 đượ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.

Khi bạn kết nối với một trang web có trình duyệt hỗ trợ ủy nhiệm thông tin, 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ợ nó”, Facebook cho biết.

Hỗ trợ cho việc Ủy quyền thông tin xác thực

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.

Ngã ba 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.

https://1.bp.blogspot.com/-vodcqlTsXiE/XcKAeIe3uDI/AAAAAAAA1nM/lTo2N92ld80KYwzSSOjJ0Rf9cqMrLPP1QCLcBGAsYHQ/s728-e100/firefox-delegated-credentials-for-tls.jpg

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

Để kiểm tra xem trình duyệt của bạn có hỗ trợ thông tin xác thực được ủy quyền cho TLS hay không, bạn có thể truy cập các trang web sau:

  • fbdelegatedcredentials.com ← bởi Facebook
  • kc2kdm.com/delegated.html ← bởi Mozilla

Nguồn thehackernews.com