php - texto - La operación SSL falló con el código 1: la clave dh es demasiado pequeña
string strip_tags (1)
... error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small
El número de error que le interesa es el error de OpenSSL 0x14082174.
El
SSL3_CHECK_CERT_AND_ALGORITHM
generalmente se ve al habilitar los cifrados de grado de exportación.
Puede aparecer nuevamente en negociaciones de grado no exportador debido a Logjam (ver más abajo).
Supongo que la clave DH es demasiado pequeña es el problema principal, pero no tengo idea de lo que eso significa. Busqué en Google el intercambio de claves Diffie-Hellman, junto con el mensaje "clave demasiado pequeña", pero no he tenido mucha suerte.
Eso se debe al reciente ataque de Logjam del periódico Imperfect Forward Secrecy: How Diffie-Hellman Fail in Practice .
Debe usar grupos Diffie-Hellman de 2048 bits o más grandes. No debe utilizar grupos Diffie-Hellman de 512 bits o 1024 bits.
Lo primero que debe verificar es la cadena de la lista de cifrado. Debería ser similar a:
"HIGH:!aNULL:!MD5:!RC4"
Evitará los cifrados de grado de exportación y utilizará cifrados modernos. Pero también deberá asegurarse de que su devolución de llamada DH no esté utilizando un tamaño de campo débil / pequeño. Para eso, debe verificar la configuración del servidor.
Algunas personas están "resolviendo" el problema con
kRSA
.
kRSA
es un esquema de
transporte
clave, no un esquema de
acuerdo
clave.
El esquema de transporte de claves RSA no proporciona confidencialidad directa y, por lo general, se desaconseja su uso.
De hecho, se eliminará de TLS 1.3.
Solo puedo decir "generalmente desanimado" porque depende de los datos que se protegen. Si tiene SSL / TLS para proteger las descargas de un archivo disponible públicamente, entonces probablemente esté bien usarlo. Si su sitio web tiene un inicio de sesión, probablemente sea un poco arriesgado usarlo porque la contraseña es información secreta (a diferencia del archivo descargable públicamente).
Para evitar el transporte de claves y pasar esas pruebas de Qualsys SSL Labs para configuraciones de servidor web y confidencialidad, utilice:
"HIGH:!aNULL:!kRSA:!MD5:!RC4"
En su archivo de configuración de Apache, se vería así:
# cat /etc/httpd/conf.d/ssl.conf | grep SSLCipherSuite
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4
Me parece recordar que
wget
rechazó grupos pequeños bastante tiempo antes de que se publicara el periódico.
Podría ser un buen caso de prueba para su sitio.
También hay un sslscan mejorado, que prueba muchas cosas. Eso también podría ser una buena herramienta de control de calidad.
Me estoy conectando a mi base de datos Google Cloud SQL a través de SSL. Utilizo codeigniter 3.0 para hacerlo, aunque el controlador mysqli está un poco modificado para permitir esta funcionalidad.
Ha estado funcionando bien durante meses. Sin embargo, solo comenzó a devolver esta advertencia:
Message: mysqli::real_connect(): SSL operation failed with code 1. OpenSSL Error messages: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small
Supongo que la
DH Key is too small
es el problema principal, pero no tengo idea de lo que eso significa.
Busqué en Google el intercambio de claves Diffie-Hellman, junto con el mensaje "clave demasiado pequeña", pero no he tenido mucha suerte.
¿Es esta una señal de que las claves del servidor han sido manipuladas? He comprobado las fechas de última modificación en ellos, sin acceso reciente anormal.
Podría ser que mi servidor se haya actualizado a PHP o la configuración de su servidor, lo que puede provocar esta interrupción, pero quería verificar y asegurarme de que no fuera otra cosa.
Gracias por cualquier información / material legible sobre el tema.