Cách bật TLS 1.1 và 1.2 với OpenSSL và Apache


33

Trước một số vấn đề bảo mật đang gia tăng, chẳng hạn như Khai thác trình duyệt mới được công bố chống lại SSL / TLS (BEAST), tôi tò mò làm thế nào chúng ta có thể kích hoạt TLS 1.1 và 1.2 với OpenSSL và Apache để đảm bảo rằng chúng ta sẽ không bị tổn thương để các vectơ đe dọa như vậy.

Câu trả lời:


25

TLS1.2 hiện có sẵn cho apache, để thêm TLSs1.2, bạn chỉ cần thêm vào cấu hình máy chủ ảo https của mình:

SSLProtocol -all +TLSv1.2

-all đang xóa giao thức ssl khác (SSL 1,2,3 TLS1)

+TLSv1.2 đang thêm TLS 1.2

để tương thích với nhiều trình duyệt hơn, bạn có thể sử dụng

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

bằng cách này, bạn cũng có thể tăng bộ Mật mã bằng cách sử dụng:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GC$

Bạn có thể kiểm tra bảo mật trang web https của mình bằng một máy quét trực tuyến như: https://www.ssllabs.com/ssltest/index.html


2
Tôi không chắc tại sao bài đăng này được đánh dấu là "lỗi thời". Tôi đã sử dụng giải pháp được đề xuất và trang web của khách hàng của tôi đã chuyển từ xếp hạng "C" trên Qualsys SSL Labs sang "A".
Michael Sobczak

Xin chào, tôi đã xóa cảnh báo lỗi thời để tránh hiểu lầm, đó là liên kết đến câu trả lời đúng cũ. Tôi rất vui vì bảo mật của bạn đã tăng lên;)
Froggiz

Trong các trang web có sẵn / 000-default.conf tôi đã thêm vào máy chủ ảo 'SSLProtocol -all + TLSv1.2' và đã nhận: AH00526: Lỗi cú pháp trên dòng 31 của /etc/apache2/sites-enables/000-default.conf : Lệnh không hợp lệ 'SSLProtocol', có thể sai chính tả hoặc được xác định bởi một mô-đun không được đưa vào cấu hình máy chủ Hành động 'configtest' không thành công.
Elia Weiss

Bạn đã kích hoạt mod_ssl? (lệnh: a2enmod ssl)
Froggiz

"SSLProtocol: Giao thức bất hợp pháp 'TLSv1.2'" (OS X 10.10.5)
Michael


10

Theo thay đổi OpenSSL , hỗ trợ cho TLS 1.2 đã được thêm vào nhánh phát triển của OpenSSL 1.0.1, nhưng phiên bản này chưa được phát hành. Có lẽ một số thay đổi cũng sẽ cần trong mã mod_ssl để thực sự kích hoạt TLS 1.2 cho Apache.

Một thư viện SSL / TLS thường được sử dụng là NSS ; nó được sử dụng bởi một mô-đun Apache ít được biết đến mod_nss ; thật không may, các bản phát hành NSS hiện tại cũng không hỗ trợ TLS 1.2.

Một thư viện SSL / TLS khác là GnuTLS và nó giả vờ hỗ trợ TLS 1.2 đã có trong bản phát hành hiện tại. Có một mô-đun Apache sử dụng GnuTLS: mod_gnutls , cũng tuyên bố hỗ trợ TLS 1.2. Tuy nhiên, mô-đun này có vẻ khá mới và có thể không ổn định lắm; Tôi chưa bao giờ thử sử dụng nó.


1
@ Sergey, cảm ơn các liên kết và thông tin. Tôi vẫn còn buồn vì chúng ta không thể sử dụng các tiêu chuẩn này khi xem xét tuổi của họ. Đối với tôi có vẻ kỳ lạ là chúng ta cần phải là người bảo vệ hệ thống và mạng của mình nhưng chúng ta không thể sử dụng các công cụ giúp cải thiện các tư thế bảo mật của mình. Ngoài ra, có vẻ như mọi người trong trình duyệt web có cách để giúp hỗ trợ cho các tiêu chuẩn này ngoài các máy chủ như Apache và có thể cả IIS.
Giăng

2
Câu trả lời này có còn chính xác không, một năm sau?
Ben Walther

2
@BenWalther OpenSSL 1.0.1 đã được phát hành vào tháng 3 năm 2012 với sự hỗ trợ của TLS 1.2. Phiên bản mới nhất tính đến thời điểm hiện tại là 1.0.1c. Tôi không chắc bao nhiêu phần còn lại của bài viết vẫn còn hiệu lực.
Burhan Ali

6

Bạn không thể, OpenSSL chưa cung cấp bản phát hành cho TLS 1.1.

Một bình luận thích hợp về /. Cho vấn đề này:

Bạn có vui lòng giải thích cho đại chúng không biết cách bạn sẽ triển khai hỗ trợ TLS 1.1 và 1.2 trong một thế giới nơi thư viện thống trị OpenSSL chưa hỗ trợ một trong hai giao thức trong các bản phát hành ổn định của nó không? Chắc chắn, bạn có thể sử dụng GnuTLS và mod_gnutls, và tôi đã thử nó, nhưng không có lý do gì, vì không có trình duyệt nào ngoài Opera hỗ trợ nó và có một số trục trặc kỳ lạ trong mô-đun. IE 8/9 được cho là hỗ trợ chúng trong Vista và 7, nhưng không thể truy cập trang được phục vụ bởi mod_gnutls khi 1.1 và 1.2 được bật ở phía máy khách. Tôi đã thử nó một lần nữa vào ngày hôm qua vì tò mò, và thậm chí cả Opera 11,51 bị sặc trên TLS 1.1 và 1.2. Vì vậy, có. Không có gì thực sự hỗ trợ các giao thức. Phải chờ OpenSSL 1.0.1 cho TLS 1.1 và không ai biết khi nào nó sẽ đạt được repos.

http://it.slashdot.org/comments.pl?sid=2439924&cid=37477890


1
@ Steve-o, cảm ơn vì thông tin. Điều này thật đáng thất vọng khi TLS 1.1 đã ra mắt từ tháng 4 năm 2006 và TLS 1.2 đã ra mắt kể từ tháng 8 năm 2008 với các bản cập nhật vào tháng 3 năm 2011 và chúng tôi vẫn không có khả năng sử dụng chúng.
Giăng

4

Adam Langley, một kỹ sư Google Chrome, chỉ ra rằng TLS 1.1 sẽ không giải quyết được vấn đề này do vấn đề triển khai với SSLv3 mà mọi người phải giải quyết: các trình duyệt phải hạ cấp xuống SSLv3 để hỗ trợ các máy chủ bị lỗi và kẻ tấn công có thể khởi tạo điều này hạ cấp.

http://www.imperialviolet.org/2011/09/23/chromeandbeast.html


3

Gnu_tls hoạt động như một bùa mê và nó cũng thực hiện SNI (Nhận dạng tên máy chủ), rất hữu dụng trong lưu trữ ảo ....

Không có vấn đề gì khi tìm gói bin cho mod_gnutls trong distro linux, tôi sử dụng nó từ 2 năm và không có vấn đề gì, nó cũng hiệu quả hơn so với openssl imho.

Nhưng vấn đề cũng là hầu hết các trình duyệt không hỗ trợ tls 1.1 hoặc 1.2, vì vậy hãy bắt đầu phổ biến ý tưởng nâng cấp trình duyệt theo quy định cho mọi người.


@ Rastrano - bạn có bất kỳ đề xuất hoặc liên kết về cách thực hiện điều này? Cảm ơn thông tin và thật tệ khi các trình duyệt "hiện đại" chưa hỗ trợ.
Giăng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.