smart - la aplicacion sufrio un error interno al cargar las bibliotecas ssl
desactivar las cifras débiles en la conexión SSL (2)
Estoy usando la función SSL_CTX_set_cipher_list para configurar las cifras admitidas para la conexión SSL. Qué argumento pasar a SSL_CTX_set_cipher_list para deshabilitar las cifras débiles.
Intenté pasar ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
pero parece no funcionar
Mi herramienta para detectar informes de cifrado débil para lo siguiente como habilitado aún
** SSLv3:DES-CBC-SHA - ENABLED - WEAK 56 bits ** ** TLSv1:DES-CBC-SHA - ENABLED - WEAK 56 bits ** ** SSLv2:RC4-MD5 - ENABLED - WEAK 128 bits ** ** SSLv2:RC2-CBC-MD5 - ENABLED - WEAK 128 bits ** ** SSLv2:RC4-64-MD5 - ENABLED - WEAK 64 bits ** ** SSLv2:DES-CBC-MD5 - ENABLED - WEAK 56 bits ** ** SSLv2:EXP-RC4-MD5 - ENABLED - WEAK 40 bits ** ** SSLv2:EXP-RC2-CBC-MD5 - ENABLED - WEAK 40 bits ** ** SSLv2:DES-CBC3-MD5 - ENABLED - WEAK 168 bits **
¿Qué argumento pasar a SSL_CTX_set_cipher_list para deshabilitar las cifras anteriores?
Qué argumento pasar a SSL_CTX_set_cipher_list para deshabilitar las cifras débiles
Depende de la definición de débil que estés usando. En 2015, debe pasar de HIGH:!aNULL
porque los navegadores modernos rechazan algunas de las cifras incluidas con HIGH
. Si permite MD5 y / o RC4, obtiene la advertencia de criptografía obsoleta .
HIGH:!aNULL:!MD5:!RC4
La llamada se vería así:
rc = SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!MD5:!RC4");
ASSERT(rc >= 1);
También debe desactivar SSLv2, SSLv3 y probablemente la compresión. Lo haces así:
const long flags = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_COMPRESSION;
SSL_CTX_set_options(ctx, flags);
SSL_CTX_set_options
no devuelve un valor, por lo que no hay nada que probar para garantizar que la llamada tenga éxito.
ALTO:! DSS:! ANULL @ STRENGTH debería funcionar.
Cifras openssl -v ''ALTO:! DSS:! aNULL @ STRENGTH'' imprime la siguiente lista de cifras:
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1
DES-CBC3-MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
Para obtener una lista completa de cadenas de cifrado OpenSSL y su significado, consulte: http://www.openssl.org/docs/apps/ciphers.html