Del artículo que vinculó , hay tres pasos recomendados para protegerse contra esta vulnerabilidad. En principio, estos pasos se aplican a cualquier software que pueda usar con SSL / TLS, pero aquí trataremos los pasos específicos para aplicarlos a Apache (httpd) ya que ese es el software en cuestión.
- Desactivar Exportar conjuntos de cifrado
Tratemos los cambios de configuración que haremos en 2. a continuación ( !EXPORTcerca del final de la SSLCipherSuitelínea es cómo deshabilitaremos los conjuntos de cifrado de exportación)
- Implementar (efímero) Curva elíptica Diffie-Hellman (ECDHE)
Para ello, es necesario editar algunos ajustes en los archivos de configuración de Apache - a saber SSLProtocol, SSLCipherSuite, SSLHonorCipherOrderpara tener una configuración de "mejores prácticas". Algo como lo siguiente será suficiente:
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
Nota: en cuanto a qué SSLCipherSuiteconfiguración usar, esto siempre está cambiando, y es una buena idea consultar recursos como este para verificar la última configuración recomendada.
3. Genere un grupo fuerte y único de Diffie Hellman
Para hacerlo, puedes correr
openssl dhparam -out dhparams.pem 2048.
Tenga en cuenta que esto generará una carga significativa en el servidor mientras se generan los parámetros: siempre puede solucionar este problema potencial generando los parámetros en otra máquina y utilizando scpo similares para transferirlos al servidor en cuestión para su uso.
Para usar estos recientemente generados dhparamsen Apache, desde la Documentación de Apache :
Para generar parámetros DH personalizados, use el comando openssl dhparam. Alternativamente, puede agregar los siguientes parámetros DH estándar de 1024 bits desde RFC 2409, sección 6.2 al archivo SSLCertificateFile respectivo :
(énfasis mío)
que luego es seguido por un parámetro DH estándar de 1024 bits. A partir de esto, podemos inferir que los parámetros DH generados a medida pueden simplemente agregarse a los relevantes SSLCertificateFileen cuestión.
Para hacerlo, ejecute algo similar a lo siguiente:
cat /path/to/custom/dhparam >> /path/to/sslcertfile
Alternativamente, según la subsección de Apache del artículo que vinculó originalmente, también puede especificar el archivo dhparams personalizado que ha creado si prefiere no alterar el archivo de certificado en sí mismo, por lo tanto:
SSLOpenSSLConfCmd DHParameters "/path/to/dhparams.pem"
en cualquier configuración de Apache que sea relevante para su implementación particular de SSL / TLS, generalmente en conf.d/ssl.confo conf.d/vhosts.confpero esto diferirá dependiendo de cómo haya configurado Apache.
Vale la pena señalar que, según este enlace ,
Antes de Apache 2.4.7, el parámetro DH siempre se establece en 1024 bits y no es configurable por el usuario. Esto se ha solucionado en mod_ssl 2.4.7 que Red Hat ha incorporado en su distribución RHEL 6 Apache 2.2 con httpd-2.2.15-32.el6
En Debian Wheezy, actualice apache2 a 2.2.22-13 + deb7u4 o posterior y openssl a 1.0.1e-2 + deb7u17. El SSLCipherSuite anterior no funciona perfectamente, en su lugar use lo siguiente según este blog :
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA
Debe verificar si su versión de Apache es posterior a estos números de versión dependiendo de su distribución, y si no, actualícela si es posible.
Una vez que haya realizado los pasos anteriores para actualizar su configuración y reiniciado el servicio Apache para aplicar los cambios, debe verificar que la configuración sea la deseada al ejecutar las pruebas en SSLLabs y en el artículo relacionado con esta vulnerabilidad en particular.