it-swarm-vi.com

Những mật mã SSL / TLS nào có thể được coi là an toàn?

trang web OpenSSL cung cấp một danh sách dài các mật mã khác nhau có sẵn cho SSL và TLS. Câu hỏi của tôi là, những mật mã nào có thể được coi là an toàn hiện nay. Tôi đặc biệt quan tâm đến HTTPS, nếu điều này có vấn đề, mặc dù tôi đoán là không. Tôi biết về Khuyến nghị của Apache để sử dụng SSLCipherSuite HIGH:MEDIUM và đồng ý rằng đây là cách thực hành tốt nhất.

Những gì tôi đang tìm kiếm là một tiêu chuẩn chính thức hoặc một bài báo gần đây từ một nguồn được chấp nhận và công nhận như một tổ chức bảo mật nổi tiếng. Nếu một bài báo như vậy tồn tại bao gồm các ước tính về thời gian mật mã nhất định với độ dài khóa cụ thể sẽ được coi là an toàn, điều này sẽ còn tốt hơn nữa. Có một điều như vậy tồn tại?

33
Demento

Các bộ mật mã có "NULL" không cung cấp mã hóa dữ liệu, chỉ kiểm tra tính toàn vẹn. Điều này có nghĩa là "không an toàn" cho hầu hết các tập quán.

Các bộ mật mã có "EXPORT", theo thiết kế, yếu. Chúng được mã hóa , nhưng chỉ với các khóa đủ nhỏ để bị bẻ khóa ngay cả phần cứng nghiệp dư (giả sử, một PC gia đình cơ bản - mã hóa đối xứng dựa trên 40- phím bit). Các bộ này được xác định tuân thủ các quy tắc xuất khẩu của Hoa Kỳ trên các hệ thống mật mã, các quy tắc khá nghiêm ngặt trước năm 2000. Ngày nay, các hạn chế này đã được dỡ bỏ và có rất ít điểm trong việc hỗ trợ các bộ mật mã "EXPORT".

Các bộ mật mã có "DES" (không phải "3DES ") dựa vào mã hóa đối xứng trên DES , một mật mã khối cũ sử dụng khóa 56 bit ( về mặt kỹ thuật , nó sử dụng khóa 64 bit, nhưng nó bỏ qua 8 trong số các bit đó, vì vậy kích thước khóa hiệu quả là 56 bit). Khóa 56 bit có thể bị bẻ khóa, mặc dù không trong năm phút với một PC. Deep crack là một máy chuyên dùng được chế tạo vào năm 1998 với giá khoảng 250.000 đô la và có thể bẻ khóa 56-bit DES trong vòng 4,5 ngày. Công nghệ đã phát triển và điều này có thể được sao chép với một vài chục FPGA . Vẫn không phải là phần cứng ngoài kệ Walmart, nhưng giá cả phải chăng của nhiều cá nhân.

Tất cả các bộ mật mã khác được OpenSSL hỗ trợ đều không yếu; nếu bạn gặp vấn đề với họ, điều đó sẽ không phải do sự yếu kém về mật mã trong các thuật toán. Bạn có thể muốn tránh các bộ mật mã có tính năng "MD5 ", không phải vì một điểm yếu thực sự đã biết, mà là vì quan hệ công chúng. MD5 , với tư cách là hàm băm," bị hỏng "vì chúng ta có thể tìm thấy nhiều va chạm cho chức năng đó một cách hiệu quả. Đây không phải là một vấn đề đối với MD5 vì nó được sử dụng trong SSL, tuy nhiên, điều đó đủ để MD5 có tiếng xấu và tốt hơn hết là bạn nên tránh nó.

Lưu ý rằng bộ mật mã không thực thi bất kỳ thứ gì về kích thước của khóa máy chủ (khóa chung trong chứng chỉ máy chủ), phải đủ lớn để cung cấp đủ độ mạnh (đối với RSA hoặc DSS, ít nhất là 15 bit, 1536 bit trở nên tốt hơn - nhưng đừng đẩy nó quá nhiều, bởi vì chi phí tính toán tăng mạnh với kích thước khóa).


NIST , một tổ chức liên bang Hoa Kỳ được chấp nhận và nổi tiếng như bất kỳ tổ chức bảo mật nào có thể, đã xuất bản một số khuyến nghị (xem đặc biệt là các bảng ở trang 22 và 23); đây là từ năm 2005 nhưng vẫn còn hiệu lực cho đến ngày hôm nay. Lưu ý rằng NIST hoạt động trên cơ sở "được phê duyệt/không được phê duyệt": họ không yêu cầu bất kỳ cách nào mà thuật toán "không được phê duyệt" yếu theo bất kỳ cách nào; chỉ có điều họ, với tư cách là một tổ chức, không bảo đảm cho họ.

37
Thomas Pornin

Bạn đã đọc SSL và TLS: Thiết kế và xây dựng hệ thống bảo mật , bởi Eric Rescorla? Đây là tác phẩm kinh điển được chấp nhận trên SSL, được viết bởi một trong những người đóng góp hàng đầu cho nhóm làm việc theo tiêu chuẩn IETF về SSL. Tôi hy vọng rằng nó có thể chứa các tuyên bố phù hợp về sức mạnh của các loại mật mã SSL khác nhau.

Nếu điều đó không đáp ứng nhu cầu của bạn, bạn có thể đi lang thang xuống thư viện thân thiện của mình và kiểm tra tất cả các sách giáo khoa về mật mã và bảo mật mà họ có và đọc các phần được viết trên SSL/TLS.

Về cơ bản, nếu bạn đang tìm kiếm một tài liệu tham khảo cho các sự kiện tài liệu mà mọi chuyên gia bảo mật đã biết, thì bạn có thể cần phải tự mình thực hiện một số công việc để tìm ra trích dẫn tốt nhất.

4
D.W.

Một số bổ sung nhỏ cho câu trả lời của Thomas Pornin: trong khi NIST SP800-52 vẫn là chính thức (nếu hơi lỗi thời) đối với TLS nói chung, đối với các kích thước chính cụ thể, nó được thay thế bởi SP800-57: part1 bao gồm các kích thước chính và tuổi thọ nói chung, vừa được sửa đổi năm 2012; part3 bao gồm một số ứng dụng cụ thể bao gồm TLS đã ban hành năm 2010. Tóm lại, họ đã cố gắng yêu cầu RSA DSA và DH 2048 bit và ECC 224 bit vào năm 2011 nhưng đã có quá nhiều sự phản hồi nên bây giờ là năm 2014 - sắp ra mắt! (DSA ở 2048 hoặc 3072 bit được chỉ định bởi FIPS 186-3 trong năm 2009, nhưng tôi chưa thấy triển khai nhiều. Ngay cả openssl đã làm điều đó khá vụng về.) Www.CABforum.org đồng tình với RSA 2048 vào năm 2014, trong khi bạn không cần phải có chứng chỉ từ một CA "chính thức", thì việc thực hiện "tiêu chuẩn" rõ ràng có xu hướng khiến bạn bị đối xử với sự hoài nghi. FWIW NIST hiện nói rằng sức mạnh đó (Z_n 2048, ECC 224, đối xứng 112) là "chấp nhận được" cho đến năm 2030, sau đó yêu cầu 3072/256/128, ngay cả khi chúng biến thành sai, nếu bạn đi với họ, bạn có thể lấy cớ tốt như bạn có thể tìm thấy và bạn chắc chắn sẽ có rất nhiều công ty tốt. Cuối cùng, csrc.nist.gov là một URL khởi đầu tốt hơn cho an ninh mạng (nói chung là NIST thực hiện khá nhiều thứ khác).

3
Dave Thompson

Nắm bắt các khuyến nghị chính thức có thể là một nhiệm vụ khó khăn đối với hầu hết người dùng.

Cách nhanh nhất để có được danh sách cập nhật các mật mã hiện đại là kiểm tra định kỳ Trình tạo cấu hình SSL SSL .

Kể từ tháng 8 năm 2016, danh sách (đã đặt hàng) là:

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-RSA-CHACHA20-POLY1305
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256

Ngoài việc đơn giản là áp dụng các mật mã này, đảm bảo:

  • đặt phiên bản TLS thành 1.2 (hoặc cao hơn)
  • sử dụng đường cong safe (như được xác định trên safecurves.cr.yp.to ).

Lưu ý: Tất cả các mật mã này tương thích với TLS1.3 (sắp tới).

2
ATo