우리 보안팀은 Apache를 실행하는 일부 서버에서 SSLv3를 완전히 비활성화할 것을 요청하고 있습니다. ssl.conf 파일의 SSLProtocol 항목(예: SSLProtocol ALL -SSLv2 -SSLv3)과 다양한 SSLCipherSuite 항목을 사용하여 이를 완전히 비활성화하려고 시도했지만 소용이 없었습니다. 나는 여전히 nmap의 예제 출력으로 다음을 얻습니다.
Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-01 16:49 Mountain Standard Time
Nmap scan report for ...
Host is up (0.0045s latency).
PORT STATE SERVICE
443/tcp open https
| ssl-enum-ciphers:
| SSLv3: No supported ciphers found <----
| TLSv1.0:
| ciphers:
| TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA - strong
| TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_RSA_WITH_AES_256_CBC_SHA - strong
| TLS_RSA_WITH_RC4_128_SHA - strong
| compressors:
| NULL
|_ least strength: strong
예를 들어 Tomcat을 실행하는 서버에서는 이 예와 같이 SSLv3에 대한 추적을 얻을 수 없습니다.
Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-01 16:54 Mountain Standard Time
Nmap scan report for...
Host is up (0.0022s latency).
PORT STATE SERVICE
443/tcp open https
| ssl-enum-ciphers:
| TLSv1.0:
| ciphers:
| TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
| TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_RSA_WITH_RC4_128_MD5 - strong
| TLS_RSA_WITH_RC4_128_SHA - strong
| compressors:
| NULL
| TLSv1.1:
| ciphers:
| TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
| TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_RSA_WITH_RC4_128_MD5 - strong
| TLS_RSA_WITH_RC4_128_SHA - strong
| compressors:
| NULL
| TLSv1.2:
| ciphers:
| TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 - strong
| TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 - strong
| TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
| TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
| TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
| TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
| TLS_RSA_WITH_AES_128_CBC_SHA - strong
| TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
| TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
| TLS_RSA_WITH_RC4_128_MD5 - strong
| TLS_RSA_WITH_RC4_128_SHA - strong
| compressors:
| NULL
|_ least strength: strong
Apache에서 SSLv3를 완전히 비활성화할 수 있는 사람이 있습니까? Apache에서 SSLv3를 완전히 비활성화하는 방법이 있습니까? 시간 내주셔서 감사합니다
답변1
SSLv3을 비활성화했지만 nmap의 보고 기능이 약간 엉성합니다. 방금 무슨 일이 일어나고 있는지 확인하기 위해 내 서버를 테스트했습니다.
nmap을 사용하면 SSLv3이 있지만 암호가 없다는 동일한 메시지를 받았습니다. 그러나 다음 명령줄을 시도하여 "SSL 경고 번호 40"(오른쪽으로 스크롤!)이 표시되면 SSLv3이 완전히 비활성화된 것입니다.
$ openssl s_client -connect www.example.com:443 -ssl3
CONNECTED(00000003)
140159193097888:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1262:SSL alert number 40
140159193097888:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:598:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : SSLv3
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1425297962
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
"New (NONE), Cipher is (NONE)"라는 동일한 모호한 표시가 표시되더라도 SSL 핸드셰이크는 7바이트였습니다. 패킷 캡처를 실행하면 연결이 다음과 같은 것을 볼 수 있습니다.
고객:클라이언트 안녕하세요(SSLv3)
섬기는 사람:경고(수준: 치명적, 설명: 핸드셰이크 실패)
그것은 당신이 얻을 수있는 한 장애인입니다.
나는 Tomcat이 더 풍부한 프로토콜 세트를 가지고 돌아왔기 때문에 nmap이 Tomcat을 다르게 보고했다고 의심합니다. 아마도 Tomcat은 SSL3을 거부하는 대신 SSL3이 제안되었을 때 TLS1을 제안했을 것입니다. 나는 Tomcat 기반 호스트를 모아서 내부적으로 무슨 일이 일어나고 있는지 테스트하려고 합니다.