Vô hiệu hóa SSLv3 nhưng vẫn hỗ trợ SSLv2Hello trong Apache


12

Nhiều máy khách SSL, đặc biệt là JDK 6, sử dụng giao thức SSLv2Hello để bắt tay với máy chủ. Sử dụng giao thức này không có nghĩa là bạn đang sử dụng SSL 2.0 hoặc 3.0 cho vấn đề đó; nó chỉ là một cái bắt tay để xác định giao thức để sử dụng. [ http://tools.ietf.org/html/rfc5246#appcill-E.2]

Tuy nhiên, trong Apache, nếu bạn tắt hỗ trợ SSLv3, điều này rõ ràng sẽ loại bỏ hỗ trợ cho giao thức SSLv2Hello. Apache Tomcat có hỗ trợ rõ ràng cho SSLv2Hello; nghĩa là, bạn có thể kích hoạt tính năng đó, nhưng không kích hoạt SSLv3.

Có cách nào để làm điều này trong Apache không?

[Cập nhật]

Đây là cấu hình giao thức của tôi:

  SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv3

However, in Apache, if you disable SSLv3 support, this apparently removes support for the SSLv2Hello protocol. Tôi đang chạy Apache 2.2 SSLProtocol all -SSLv2 -SSLv3và bắt tay SSL 2 hoạt động. Cấu hình nào bạn đang chạy chính xác là bạn đang gặp vấn đề. Cách duy nhất tôi biết để vô hiệu hóa Bắt tay SSL 2 là bật chế độ Trin.
Chris S

1
Thật là một nỗi đau để xử lý sự hỗ trợ di sản đó vào năm 2014 :(. Đã đến lúc mọi người nên nuke SSLv2 & SSLv3 và thực hiện hỗ trợ tiện ích mở rộng toàn cầu (ví dụ SNI).
Xavier Lucas

2
@XavierLucas Thay vì thực hiện tất cả -SSLv2, -SSLv3, tôi chỉ định các giao thức TLS tôi hỗ trợ. Tôi không thấy lý do tại sao điều đó sẽ khác, nhưng tôi sẽ kiểm tra.
Matt Hughes

@ChrisS Tôi đã thử cả hai: SSLProtocol + TLSv1 + TLSv1.1 + TLSv1.2 -SSLv3 và tất cả -SSLv3 -SSLv2. Điều này đang chạy với Apache 2.4.10. Không có cấu hình nào xuất hiện để cho phép bắt tay SSL 2. Và tôi chưa chạm vào chế độ Trin; mặc định là nó bị vô hiệu hóa
Matt Hughes

Câu trả lời:


7

Rõ ràng mod_ssl đã thay đổi trong năm ngoái hoặc lâu hơn (tôi không tìm thấy cam kết chính xác với nguồn, nhưng đã tìm thấy "vấn đề"). Nguồn hiện thực hiện điều này:

If SSLProtocol only includes only one Protocol:
    Handshake = That Protocol's Handshake Only
Else
    Handshake = SSLv2 Handshake

Không có ghi đè cho cài đặt này. Điều duy nhất bạn có thể làm là chỉnh sửa nguồn, biên dịch lại phiên bản của riêng bạn. Tôi đã tạo một khác biệt để buộc khả năng tương thích Bắt tay SSLv2 nếu bạn muốn biên dịch riêng.


1
Tôi có thể xác nhận rằng bản vá của Chris giúp - curl (và các chương trình sử dụng libcurl như git) giờ đây có thể nói chuyện lại với máy chủ của chúng tôi, mặc dù SSLv3 đã bị vô hiệu hóa - mà không sslscangắn cờ bất kỳ lỗ hổng nào. Nhưng bản vá có vẻ hơi xâm lấn và tôi muốn yêu cầu Chris gửi nó cho dự án Apache để xem xét càng sớm càng tốt. Tôi sẽ tự mình đặt vé, nếu Chris không :-) Cảm ơn rất nhiều, Chris!
Mikhail T.

1
Sẽ là một ý tưởng tốt hơn để thêm một lệnh riêng để buộc chế độ tương thích. Nếu tôi có thời gian rảnh tôi sẽ viết nó lên, nhưng tôi không nghĩ rằng "bản vá" này là một ý tưởng tốt về lâu dài.
Chris S

Vâng, dường như là, những gì các nhà phát triển Apache đang xem xét. Xem [chủ đề] [1] Tôi đã bắt đầu ở đó ... [1] mail-archives.apache.org/mod_mbox/httpd-dev/201410.mbox/ Lỗi
Mikhail T.

1

Vì vậy, hóa ra đây không phải là vấn đề. Apache sẽ chấp nhận bắt tay SSLv2 với một trong các cấu hình tôi đã đăng ở trên. Tôi đã bị nhầm lẫn bởi một lỗi bắt tay khi nghĩ rằng đây là vấn đề; nó thực sự chỉ là một vấn đề cấu hình trong đó máy chủ không tin tưởng CA của khách hà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.