SSLv2를 활성화하지 않으면 TLSv1이 작동하지 않습니다.

SSLv2를 활성화하지 않으면 TLSv1이 작동하지 않습니다.

저는 Apache 2.2.4 버전을 사용하고 있습니다. 나는 이 버전이 SSLv2, SSLv3 및 TLSv1.0만 지원한다는 것을 이미 알고 있지만, 이 버전을 사용할 때 이상한 일이 발생합니다.

SSLv2가 비활성화되면 웹 브라우저(저의 경우 인터넷 익스플로러)는 SSLv3를 사용합니다.

SSL 3.0, 168비트 암호화가 포함된 3DES(높음); 2048비트 교환이 가능한 RSA.

SSLv2를 활성화하면 웹 브라우저는 TLSv1.0을 사용합니다.

TLS 1.0, 256비트 암호화 AES(높음); 2048비트 교환이 가능한 RSA

그리고 마지막으로 두 프로토콜(SSLv2 및 v3)을 모두 비활성화하면 웹 페이지가 전혀 로드되지 않습니다!

저는 Apache에 이 구성을 사용했습니다.

SSLProtocol all
SSLCipherSuite all

이것 좀 설명해 주시겠어요? SSLv2를 활성화하지 않고 TLSv1.0을 어떻게 사용할 수 있습니까?

답변1

이 동작은 TLS v1 RFC(RFC 2246, 섹션 "E. SSL과의 역호환성").

기본적으로 이 RFC에서는 대부분의 서버가 SSL/TLS의 서로 다른 버전에 대해 서로 다른 수신 포트를 사용하지 않을 것이라고 명시합니다. 따라서 이전 버전과의 호환성을 보장하기 위해 소프트웨어는 먼저 "이전" SSL 안녕하세요 메시지를 사용하여 연결을 시작한 다음 양쪽에서 지원되는 경우 TLS로 연결을 업그레이드하고 TLS("TLS 1.0)를 사용하여 직접 연결을 설정하지 않는 것이 좋습니다. SSL 버전 2.0 서버를 지원하는 클라이언트는 SSL 버전 2.0 클라이언트 안녕하세요 메시지를 보내야 합니다.")

이전 버전의 Java(JRE5)에는 이 동작이 있었지만 이제는 TLS 핸드셰이크를 직접 처리하는 최신 버전에서 개선되었습니다. 브라우저 버전과 패치 수준을 확인하고 브라우저 측에서 SSLv2를 비활성화한 후에도 이 동작이 지속되는지 확인해야 할 수도 있습니다.

관련 정보