Excluyendo los conjuntos de cifrado que contienen SHA o AES128

3

Soy consciente de que esto podría no ser visto como una pregunta, pero aquí va:

Una gran organización con la que trabajo ha publicado recientemente un nuevo conjunto de estándares para conjuntos de cifrado aceptables en todos sus sitios web públicos. Los estándares se reducen a esto:

  • Si la suite de cifrado contiene SHA1, no es aceptable (por ejemplo, ECDHE-RSA-AES256-SHA)
  • Si la suite de cifrado usa cifrado de 128 bits - no es aceptable (por ejemplo, ECDHE-RSA-AES128-GCM-SHA256)

Por lo que puedo decir, incluso con cualquier descubrimiento reciente de vulnerabilidad, esto no parece ser una premisa sólida para un conjunto de estándares TLS. HMAC con SHA todavía se considera aceptable, y AES128-GCM se considera bastante robusto (que yo sepa).

Tengo una oportunidad para defender una excepción a esta regla (lo que me gustaría hacer, ya que el cumplimiento implica la eliminación de un proveedor de CDN importante del sitio). ¿Alguien tiene alguna idea sobre por qué la eliminación de las suites de cifrado que cumplen con estos criterios sería perjudicial para el usuario final del sitio (compatibilidad del cliente, rendimiento, etc.)?

    
pregunta Mark Kelly 11.08.2016 - 22:23
fuente

3 respuestas

3

Primero, es innecesario desde el punto de vista de la seguridad. HMAC-SHA1 y AES-128 están más o menos bien. Esto es tonto No escriba políticas de seguridad tontas.

En segundo lugar, te equivocarías con Firefox. Firefox 46 es compatible con AES-128 con HMAC-SHA1 o GCM, y AES-256 con HMAC-SHA1. AES-256-GCM no es una opción.

Firefox 47 también agregó ChaCha20-Poly1305, que es un excelente cifrado de 256 bits, pero es bastante nuevo, no es ampliamente compatible con los servidores, y no lo mencionaste.

Firefox 49, actualmente programado para su lanzamiento el 13 de septiembre, debería obtener AES-256-GCM, pero eso es en el futuro, y querrás continuar soportando versiones anteriores para que los dioses sepan cuánto tiempo.

En tercer lugar, hay una buena razón para preferir conjuntos de cifrado que no sean HMAC: HTTP / 2 lo alienta . La implementación de la lista negra de la suite de cifrado es opcional, pero Chrome y Firefox lo hacen. Si habilita HTTP / 2, absolutamente necesitará conjuntos de cifrado aceptables (que incluyen AES-GCM con intercambio de claves DHE o ECDHE, pero no HMAC, independientemente del tamaño de la clave). Usted es libre de mantener habilitadas las suites de cifrado obsoletas, pero debe dar preferencia a las mejores cuando negocie con HTTP / 2 clientes.

ETA: puede señalarlos a la Guía del lado del servidor TLS de Mozilla y Generador de configuración SSL y diga" Es una buena idea copiar esta recomendación de expertos sólida y bien investigada ". Sería cierto y mantendría el soporte AES-128. (Algunas variantes realmente eliminan HMAC-SHA1, pero todas conservan HMAC-SHA256 y HMAC-SHA384).

    
respondido por el Matt Nordhoff 11.08.2016 - 23:34
fuente
3

La actualización a AES-256 está ocurriendo y los nuevos servidores lo ofrecen como la primera opción. Para ilustrar cómo se hace esto aquí está la lista de los nuevos cifrados de SSL httpd (prueba con nmap), vea más abajo.

Ahora, el problema es que si el navegador no pudiera usar una variante fuerte, entonces podría usar cualquier otro cifrado compatible más débil. Los cifrados se prueban desde el protocolo TLS más alto admitido y luego las variantes desde la primera hasta la última y la última.

La siguiente configuración hace buenos clientes con sistemas de cifrado sólidos, pero mantiene la compatibilidad con los más antiguos para que nadie se vea afectado.

Después de cambiar eso, uno puede analizar los registros de SSL para ver qué variantes se pueden eliminar y cuántos usuarios se verán afectados, pero si es una gran empresa, la lista a continuación debería funcionar para todos para el inicio.

Con respecto a los CDN, cambiar de AES-128 a 256 es un gran cambio que cuesta $$$. Sin embargo, dicho cambio tendrá que ocurrir una vez que actualicen el software al más reciente, lo que seguramente ocurrirá en los próximos años.

Entonces, con este servidor, Firefox usa TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA , OpenSSL usa la mejor opción TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 , Google Chrome dice TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA , todo con TLS 1.2.

Hacerlo de manera diferente molestará a muchos usuarios.

nmap --script ssl-enum-ciphers -p 443 127.0.0.1

443/tcp open  https
| ssl-enum-ciphers: 
|   TLSv1.0: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (secp256r1) - C
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 2048) - C
|     compressors: 
|       NULL
|     cipher preference: server
|   TLSv1.1: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (secp256r1) - C
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 2048) - C
|     compressors: 
|       NULL
|     cipher preference: server
|   TLSv1.2: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (secp256r1) - C
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 2048) - C
|     compressors: 
|       NULL
|     cipher preference: server
|_  least strength: C
    
respondido por el Aria 11.08.2016 - 23:29
fuente
0

Podría argumentar que eliminar SHA1 y el cifrado de 128 bits causará problemas de compatibilidad, incluso aunque SHA1 se esté eliminando. Recomiéndeles que confíen en NIST para las opciones de algoritmo.

    
respondido por el ztk 11.08.2016 - 23:15
fuente

Lea otras preguntas en las etiquetas