2010-09-23 34 views
13

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.deshabilitar las cifras débiles en la conexión SSL

he intentado pasar ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH

pero no parece funcionar.

Mi herramienta para detectar los informes de cifrado débiles para los siguientes como sigue habilitado

 
** 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 para pasar a SSL_CTX_set_cipher_list desactivar las cifras anteriores?

Respuesta

12

HIGH:! DSS:! ANULL @ STRENGTH debería funcionar.

sistemas de cifrado de OpenSSL -v 'ALTA: DSS: aNULL @ FUERZA' impresiones de la siguiente lista de cifrados:

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 las cadenas de cifrado de OpenSSL y su significado echar un vistazo a : http://www.openssl.org/docs/apps/ciphers.html

+0

Sin embargo, no estoy seguro de por qué su herramienta detecta todas esas cifras débiles. OpenSSL enumera solo uno de los cifrados débiles informados cuando se utiliza su lista de cifrado y no creo que DES-CBC3-MD5 sea débil. ¿Inhabilitó SSLv2 en caso de que no esté deshabilitado de manera predeterminada? Puede intentar anexar! SSLv2 a la lista de cifrados si desea eliminar todos los cifradores SSLv2. –

+0

Como eliminar el cifrado débil DES-CBC3-SHA? – Natim

+3

Simplemente agrega ':! DES-CBC3-SHA' a la lista de cifrado para eliminarlo. –

1

¿Qué argumento para pasar a SSL_CTX_set_cipher_list desactivar cifrados débiles

Depende de la definición de persona débil que estés usando. En 2015, debe superar efectivamente el HIGH:!aNULL porque los navegadores modernos rechazan algunos de los cifrados incluidos con HIGH. Si permite MD5 y/o RC4, obtiene el obsolete cryptography warning.

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 compresión. Usted lo hace 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 para poner a prueba para asegurar la llamada se realiza correctamente.

+0

el autor no solicitó un determinado año :) – jitter

+0

No estoy seguro de qué quiere decir jitter. Es lo que es. 'ALTO' es alto, pero es la definición de otra persona. En 2014 y 2015, los navegadores se movieron contra MD5, RC4, SHA1 y 1024 bits FF-crypto e IF-crypto. FF es *** F *** inite *** F *** ield (como Diffie-Hellman), y IF es *** I *** nteger *** F *** actorización (como RSA). – jww

+0

@jitter - No culpo a los demás por nada. No afirmo que haya nada seguro o inseguro.No creo que podamos hacer esa determinación en términos como "débil" y "fuerte" o "alto"; en su lugar, necesitaríamos un modelo de amenaza o requisitos. Nuevamente, no me importa tu respuesta, y no me importa cómo se compara. Eres libre de hacer lo que quieras. Tampoco pretendo ser un experto, aunque tengo cierta experiencia en la materia. ¿Cuál es el objetivo de todo esto divagar? – jww

Cuestiones relacionadas