¿Qué hace que una sesión SSL elija un cifrado sobre otro?

1

Tengo curiosidad por saber qué hace que la sesión SSL elija un cifrado sobre otro. Soy un principiante total con esto, por lo que la mayoría de las respuestas ya están muy por encima de mi cabeza.

Ejemplo: Necesito conectarme a dos servidores diferentes: A y B. Ambos parecen tener certificados con el mismo algoritmo de firma: SHA256 con RSA y ambos son propiedad de la misma compañía.

Ambos devuelven la misma lista de cifrados disponibles en las suites de cifrado:

SSL_RSA_WITH_RC4_128_MD5
SSL_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
SSL_RSA_WITH_DES_CBC_SHA
SSL_DHE_RSA_WITH_DES_CBC_SHA
SSL_DHE_DSS_WITH_DES_CBC_SHA
SSL_RSA_EXPORT_WITH_RC4_40_MD5
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
TLS_EMPTY_RENEGOTIATION_INFO_SCSV

Sin embargo, la conexión al servidor A selecciona la primera opción: SSL_RSA_WITH_RC4_128_MD5.

Mientras que la conexión con el servidor B selecciona la cuarta: TLS_DHE_RSA_WITH_AES_128_CBC_SHA.

Mi pregunta es ¿qué hace que la conexión al servidor B seleccione la cuarta opción que incluye DHE? ¿Es algo diferente en los certificados, o hay algo más que lo afecta?

    
pregunta Ian 03.11.2017 - 13:08
fuente

2 respuestas

3

En el primer paso, el servidor alinea los cifrados ofrecidos por el cliente con los cifrados configurados para que el cifrado obtenga un conjunto de cifrados comunes. A partir de este conjunto, el servidor selecciona un único cifrado. Existen varias estrategias posibles para esta selección, pero generalmente se reduce a una selección ya sea en el orden de cifrado dado por el cliente o en el orden configurado en el servidor.

Lo que ve aquí es probablemente un valor diferente de la opción SSLHonorCipherOrder en Apache (y opciones similares en otros servidores). Con SSLHonorCipherOrder on elegirá el cifrado dependiendo de la preferencia del servidor y, por lo tanto, elegirá de la parte superior de la lista de servidores, es decir, SSL_RSA_WITH_RC4_128_MD5 en este caso. Con SSLHonorCipherOrder on , en cambio, elegirá el cifrado según la preferencia de los clientes y elegirá el mejor cifrado TLS_DHE_RSA_WITH_AES_128_CBC_SHA .

  

Ambos parecen tener certificados con el mismo algoritmo de firma: SHA256 con RSA y ambos son propiedad de la misma compañía.

El certificado no tiene mucha relevancia para elegir el cifrado. Solo puede usar cifrados con autenticación RSA con certificados RSA y cifrados con autenticación ECDSA con certificados ECDSA, pero, aparte de eso, no hay dependencia.

    
respondido por el Steffen Ullrich 03.11.2017 - 14:08
fuente
2

Esto depende del servidor. Para Apache (mod_ssl) y NGinx, puede anular las preferencias de orden predeterminadas y las suites aceptables.

Por ejemplo, enlace

Los valores predeterminados variarán entre las versiones según lo que los desarrolladores vean como seguro / eficiente.

* Para expandir hay dos métricas principales para elegir qué cifrado usar. Seguridad y rendimiento. En un servidor de bajos recursos que proporciona servicios de bajo riesgo, puede optar por un cifrado menos seguro pero con un uso más intensivo de la CPU, aunque en el hardware moderno el impacto en el rendimiento es casi insignificante.

    
respondido por el Hector 03.11.2017 - 13:54
fuente

Lea otras preguntas en las etiquetas