apache2 2.2.22-1ubuntu1.7이 설치된 웹 서버(Ubuntu 12.04)가 있습니다.
클라이언트에서 openssl 사용:
$ echo QUIT | openssl s_client -connect OURSERVER:8080 2>/dev/null | egrep "Cipher is|Protocol"
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
Protocol : TLSv1.2
$
정상적으로 연결할 수 있지만 Ubuntu 14.04의 Firefox 33은 최대 연결만 가능합니다.
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
하지만 동일한 Firefox 33을 사용하여 다른 웹사이트를 방문하면 GCM을 사용할 수 있다는 것을 알 수 있습니다!
질문:GCM을 사용하여 웹 서버에 연결할 수 없는 이유는 무엇입니까? Firefox가 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 등을 사용하지 않는 이유는 무엇입니까?
우리의 아파치 구성은 다음과 같습니다:
SSLCipherSuite "HIGH"
SSLProtocol -ALL +TLSv1
SSLHonorCipherOrder on
답변1
"암호 모음"은 HIGH
암호 모음 세트입니다. 분명히 이러한 암호 모음의 순서에 대한 기대는 기본값과 다릅니다.
다음 명령 출력에서 볼 수 있듯이 openssl ciphers
이 DHE-RSA-AES256-SHA256
암호화 제품군은 기대하는 GCM 암호화 제품군보다 우수합니다.
$ openssl 비밀번호 -V 높음 \ > grep -nC1 'DHE-RSA-AES256-SHA256\|ECDHE-RSA-AES128-GCM-SHA256' |열-t 11- 0x00,0x9F - DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD 12: 0x00,0x6B - DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256 13- 0x00,0x6A - DHE-DSS-AES256-SHA256 TLSv1.2 Kx=DH Au=DSS Enc=AES(256) Mac=SHA256 -- 33- 0x00,0x8D - PSK-AES256-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=AES(256) Mac=SHA1 34: 0xC0,0x2F - ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD 35- 0xC0,0x2B - ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD
특정 순서를 강제로 적용하려면 다음과 같이 제품군을 명시적으로 지정하세요.
SSLCipherSuite "EECDH+AESGCM+AES128 EECDH+AESGCM DH+AESGCM+AES128 DH+AESGCM+AES EECDH+AES128 EECDH+AES DH+AES128 DH+AES RSA+AESGCM+AES128 RSA+AESGCM+AES RSA+AES128 RSA+AES RSA+3DES !MD5:!aNULL"
Apache 버전은 다음과 같습니다.너무 오래된ECDH 암호 제품군을 지원합니다. 또한 을 사용하면 SSLProtocol -ALL +TLSv1
최신 버전의 Apache에서 TLSv1.1 및 TLSv1.2의 사용이 제외됩니다. 대신 이것을 사용하고 웹 서버를 업그레이드하는 것이 좋습니다 SSLProtocol ALL -SSLv2 -SSLv3
.
참고로 여기는SSL 서버 테스트SSLCipherSuite HIGH
Ubuntu 12.04에서 실행되는 Apache 2.22를 사용하여 얻은 출력은 다음과 같습니다 SSLProtocol ALL -SSLv2 -SSLv3
.
Supported versions: TLSv1.0 TLSv1.1 TLSv1.2
Deflate compression: no
Supported cipher suites (ORDER IS NOT SIGNIFICANT):
TLSv1.0
RSA_WITH_3DES_EDE_CBC_SHA
DHE_RSA_WITH_3DES_EDE_CBC_SHA
DH_anon_WITH_3DES_EDE_CBC_SHA
RSA_WITH_AES_128_CBC_SHA
DHE_RSA_WITH_AES_128_CBC_SHA
DH_anon_WITH_AES_128_CBC_SHA
RSA_WITH_AES_256_CBC_SHA
DHE_RSA_WITH_AES_256_CBC_SHA
DH_anon_WITH_AES_256_CBC_SHA
RSA_WITH_CAMELLIA_128_CBC_SHA
DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
DH_anon_WITH_CAMELLIA_128_CBC_SHA
RSA_WITH_CAMELLIA_256_CBC_SHA
DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
DH_anon_WITH_CAMELLIA_256_CBC_SHA
(TLSv1.1: idem)
TLSv1.2
RSA_WITH_3DES_EDE_CBC_SHA
DHE_RSA_WITH_3DES_EDE_CBC_SHA
DH_anon_WITH_3DES_EDE_CBC_SHA
RSA_WITH_AES_128_CBC_SHA
DHE_RSA_WITH_AES_128_CBC_SHA
DH_anon_WITH_AES_128_CBC_SHA
RSA_WITH_AES_256_CBC_SHA
DHE_RSA_WITH_AES_256_CBC_SHA
DH_anon_WITH_AES_256_CBC_SHA
RSA_WITH_AES_128_CBC_SHA256
RSA_WITH_AES_256_CBC_SHA256
RSA_WITH_CAMELLIA_128_CBC_SHA
DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
DH_anon_WITH_CAMELLIA_128_CBC_SHA
DHE_RSA_WITH_AES_128_CBC_SHA256
DHE_RSA_WITH_AES_256_CBC_SHA256
DH_anon_WITH_AES_128_CBC_SHA256
DH_anon_WITH_AES_256_CBC_SHA256
RSA_WITH_CAMELLIA_256_CBC_SHA
DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
DH_anon_WITH_CAMELLIA_256_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DH_anon_WITH_AES_128_GCM_SHA256
TLS_DH_anon_WITH_AES_256_GCM_SHA384
----------------------
Server certificate(s):
d975495633785b152215100eb449c57bee391e98: CN=ubuntu
----------------------
Minimal encryption strength: strong encryption (96-bit or more)
Achievable encryption strength: strong encryption (96-bit or more)
BEAST status: vulnerable
CRIME status: protected