He estado trabajando en conseguir que el soporte HTTP2 se ejecute en un servidor Nginx desde hace algún tiempo. En este punto estoy atascado en la selección de cifrados para apoyar. Espero que me puedas ayudar a entender esto.
Antes de comenzar a hacer que HTTP2 funcionara, me convertí en un hobby para obtener las mejores calificaciones posibles en SSLlabs mientras mantenía el soporte para La mayoría de los navegadores. Por lo tanto, solo admití cifrados de 256 bits y no enumeré ningún cifrado de 128 bits.
Desde que habilité HTTP2, perdí la compatibilidad con Firefox en Windows (y probablemente también en otros navegadores / plataformas). Tenga en cuenta que estoy bien al haber perdido el soporte para Java, XP y Android 2.3 de acuerdo con las simulaciones del navegador SSLlabs, ya que este es un servidor privado.
Según SSLlabs, Firefox versión 45 y 46 en Windows no se pueden conectar al servidor. El mensaje que se muestra es: Servidor negociado HTTP / 2 con paquete en lista negra. De acuerdo con los resultados, estas versiones de Firefox habrán seleccionado el cifrado TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
.
Una búsqueda rápida me llevó a este tema en ServerFault que explica que el RFC especifica una lista negra de cifrados.
Esta es la lista de cifrado que tenía configurada:
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:kEDH+AESGCM:CAMELLIA256:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK:!CAMELLIA+RSA:!AES128:@STRENGTH;
Estoy convencido de que TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
es más fuerte que TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
(que usa Firefox en mi configuración actual), ya que tiene una mayor preferencia por Nginx si agrego @STRENGTH
a la directiva ssl_ciphers. Aún así, el primero aparece en la lista negra y el segundo no.
Soy consciente de que ya hay algunos temas aquí sobre qué cifrados deben elegirse para obtener el mejor soporte. Sin embargo, con esta publicación estoy tratando de entender mejor por qué algunas de las suites de cifrado enumeradas anteriormente están en la lista negra y varias cifras de 128 bits no lo están.