Cómo pasar la lista de cifrado a OpenSSL s_client

5

¿Cómo podemos pasar una lista de cifrado al programa OpenSSL s_client ?

Podemos pasar un solo cifrado por esto:

openssl s_client -cipher 'ECDHE-RSA-AES256-SHA' -connect www.google.com:443

¿Pero cómo pasar una lista de múltiples cifrados?

    
pregunta Rahul_cs12 05.07.2015 - 13:30
fuente

3 respuestas

4

Si bien la documentación de OpenSSL carece de mucho, esta parte está realmente bien documentada. Desde la página de manual de s_client :

  

-cipherlist de cifrado

     

esto permite modificar la lista de cifrado enviada por el cliente. Aunque el servidor determina qué conjunto de cifrado se utiliza, debe tomar el primer cifrado admitido en la lista enviada por el cliente. Consulte el comando de cifrado para obtener más información.

Y en la mencionada documentación para cifrados en realidad encontrará muchos detalles sobre el formato del Lista de cifrado, las cadenas de cifrado y los nombres de la suite de cifrado. De hecho, la documentación es tan extensa que es mucho mejor leerla allí que incluirlo en esta respuesta.

    
respondido por el Steffen Ullrich 05.07.2015 - 14:24
fuente
3

Tiene exactamente la misma sintaxis, como por ejemplo. Configuración de configuración SSLCipherSuite en Apache, o muchos modificadores de configuración similares. Ejemplo de lista: EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:!SSLv2:!SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA

Note los caracteres importantes:

:
+
!
    
respondido por el Tomasz Klim 05.07.2015 - 13:49
fuente
3

Como Steffen Ullrich ha mencionado , puede pasar una lista de cifrados a la opción -cipher de s_client . Esto no es un elemento único, sino una especificación y también se puede usar para la opción nginx ssl_ciphers , o Apache SSLCipherSuite .

Puede pasar varias cifras utilizando un separador de espacio, coma o dos puntos. Ejemplo:

openssl s_client -cipher ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-GCM-SHA384 \
    -connect example.com:443

La lista anterior especifica dos cifras específicas. También se puede pasar un grupo de cifrados. Este es un ejemplo de una especificación de lista de cifrado que requiere un acuerdo de clave ECDH (ECDH) autenticado y autenticado, RSA para autenticación y solo conjuntos de cifrado que se consideran de "alto" cifrado:

openssl s_client -cipher ECDH+aRSA+HIGH -connect example.com:443

¿A qué se expande esto? El comando openssl ciphers se puede usar para este propósito:

$ openssl ciphers ECDH+aRSA+HIGH
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA

o más verbalmente:

$ openssl ciphers -v ECDH+aRSA+HIGH
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA256
ECDHE-RSA-AES128-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
ECDHE-RSA-DES-CBC3-SHA  SSLv3 Kx=ECDH     Au=RSA  Enc=3DES(168) Mac=SHA1

Para obtener más información, lea la página de manual de ciphers .

    
respondido por el Lekensteyn 05.07.2015 - 15:32
fuente

Lea otras preguntas en las etiquetas