Назад | Перейти на главную страницу

SSL / TLS через Tomcat - хранилище ключей заменено, DH все еще слабый

В настоящее время я веду борьбу с упрямой реализацией SSL. Я заменил старое хранилище ключей хранилищем ключей, в которое входило:

Несмотря на это, я все еще получаю ошибку "weak diffie-hellman key" для моих клиентов Chrome (Firefox копает ее сейчас, я думаю, по крайней мере: D). Я провел несколько тестов через nmap, чтобы увидеть, что сервер готов говорить, и он предположительно проверяет ОК:

root@ubuntu14-en:~# nmap --script ssl-enum-ciphers -p 443  artifactory.mydomain.com  

Starting Nmap 6.40 ( http://nmap.org ) at 2015-09-10 08:41 CDT  
Nmap scan report for artifactory.mydomain.com (xxx.xx.x.xx)  
Host is up (0.00026s 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_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_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_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_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_256_CBC_SHA - strong  
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 - 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_256_CBC_SHA - strong  
|       TLS_RSA_WITH_AES_256_CBC_SHA256 - strong  
|       TLS_RSA_WITH_RC4_128_MD5 - strong  
|       TLS_RSA_WITH_RC4_128_SHA - strong  
|     compressors:
|       NULL
|_  least strength: strong

Nmap done: 1 IP address (1 host up) scanned in 1.42 seconds

Может ли кто-нибудь еще поделиться своими знаниями о том, как я могу повысить безопасность до общепринятых стандартов, которых ожидает Chrome? Я подозреваю, что это что-то глупое, будто мне нужно больше блокировать эти шифры, но я думал, что шифры "DHE_EXPORT" - это те, на которые нужно обратить внимание.

Заранее большое спасибо.

Помимо отключения экспортных комплектов шифров DHE, вам необходимо использовать 2048-битную группу Диффи-Хелмана, а не 1024-битную, которую, вероятно, использует Tomcat. Считается, что кто-то с ресурсами АНБ может взломать 1024-битное. Для этого добавьте -Djdk.tls.ephemeralDHKeySize=2048 к вашим вариантам Java или Catalina. Обратите внимание, что это работает только в Java 8 или новее - если вы используете 7 (или более раннюю версию), то пора обновить.

И пока вы это делаете, отключите комплекты шифров RC4 - RC4 больше не безопасен.

Ни один из них специально не касается «слабого ключа diffie-hellman», но они помогут.

Хеши MD5 не работают; Избавься от них.

Шифры RC4 слабые / сломанные; Избавься от них.

Хеши SHA1 ("SHA") также считаются слабыми. Если ваш сертификат SSL (не разрешенное шифрование в конфигурации ssl) использует SHA1, хром будет жаловаться. Однако я думаю, что вы не можете избавиться от конфигураций шифров SHA и по-прежнему поддерживать TLS 1.0, так что вы застряли на этом.

Я бы также предложил отключить 3DES; он очень медленный по сравнению с AES и не имеет преимуществ в плане безопасности.