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?