¿Cuál podría ser el orden de estos cifrados que siguen como primer criterio la seguridad y luego el rendimiento?

6

Necesito alguna guía para decidir en qué orden debo colocar los siguientes cifrados si quiero priorizar la seguridad y, en caso de empate, considere el rendimiento para decidir.

ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
ECDH-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
ECDH-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
ECDH-RSA-AES256-SHA384  TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA384
ECDH-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA384

¿Y qué hay de esta lista?

DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
DHE-DSS-AES256-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA256

lista diferente, no quiero mezclarlos;)

    
pregunta gsi-frank 04.10.2013 - 17:22
fuente

2 respuestas

14

Seguridad: si no haces estupideces como usar una clave RSA de 512 bits, estas suites de cifrado son igualmente seguras: todas están muy lejos en la zona "no se puede romper" . Así que eso es un meh . No puedes decir que uno sea más seguro que otro.

Sin embargo, con una excepción: las suites "ECDHE" usan un par de claves efímeras para el cifrado real; ya que la clave privada correspondiente nunca se almacena en un archivo, esto otorga una propiedad ingeniosa conocida como Perfect Forward Secrecy . Básicamente, hace que las comunicaciones sean inmunes a los atacantes que roban una copia de la clave privada del servidor después del hecho. PFS se ve bien en las auditorías técnicas.

Los problemas de rendimiento existen solo después de haberlos medido debidamente. Como dijo Knuth: La optimización prematura es la raíz de todo mal . Así que no debes hacer tales preguntas; deberías probarlo y medir . En cualquier caso, la respuesta dependerá mucho del contexto: máquinas involucradas, ancho de banda, patrones de uso ...

Respuesta corta: no importará.

Respuesta larga:

Las suites de cifrado "GCM" utilizan GCM ; los conjuntos de cifrado que no son GCM usan AES en modo CBC y un HMAC adicional (aquí, con SHA-384). Los problemas de rendimiento dependen de los sistemas involucrados:

  • En sistemas pequeños de 32 bits (ARM incrustado ...), la parte MAC de GCM será costosa, pero también lo será SHA-384 (debido a los cálculos de 64 bits ...); Supongo que una corbata.
  • En la PC, el costo de AES dominará;
  • ... excepto en una PC muy reciente con AES-NI , donde AES es muy rápido, y también lo es GCM .

Por lo tanto, la suite de cifrado GCM debería ser, por lo general, una mejor oferta. Sin embargo, se necesita una gran cantidad de ancho de banda, o una CPU muy pequeña, para notar la diferencia. Incluso sin AES-NI, un servidor normal tiene suficiente capacidad para hacer SSL a un ancho de banda de gigabit completo, con CPU de sobra.

Para la parte de criptografía asimétrica:

  • Las suites ECDHE implican en el servidor una (curva elíptica) Diffie-Hellman y una firma para cada saludo completo, mientras que las suites de cifrado ECDH requieren solo la curva elíptica Diffie-Hellman, y la mitad de eso ya está hecho.
  • ... Pero una PC normal procesará miles de esos por segundo y por código, por lo que esto rara vez importa.
  • ... Especialmente porque los clientes SSL normales reutilizan las sesiones SSL, lo que significa que la criptografía asimétrica se produce solo para la primera conexión del día desde un cliente determinado.
  • Las firmas ECDSA son más rápidas que las firmas RSA.
  • ... Dependiendo de los tamaños de las llaves, por supuesto.
  • ... Pero para verificación , esto es al revés.
  • ... Y, nuevamente, se necesita una gran cantidad de nuevos clientes por segundo para que esto realmente importe. Una PC normal hará cientos de firmas RSA de 2048 bits por segundo, miles de firmas ECDSA de 256 bits por segundo.
  • Las firmas ECDSA son más cortas que las firmas RSA, por lo que esto ahorra un poco de red (pero, nuevamente, solo unas pocas docenas de bytes por apretón de manos completo).
  • Las suites de cifrado DHE y ECDHE también implican unas pocas docenas de bytes adicionales por apretón de manos completo.
  • DHE es como ECDHE pero sin las curvas elípticas. Se necesita usar matemáticas más grandes para lograr los mismos niveles de seguridad (módulo de 2048 bits en lugar de un punto de curva de 256 bits), por lo que es como RSA vs ECDSA: un poco más grande, un poco más lento, no importará en la práctica .

Entonces, realmente, no harás una distinción útil basada en seguridad o incluso en rendimiento . De hecho, ya está haciendo una declaración de moda , insistiendo en AES-256 (en lugar de AES-128) y SHA-384 (en lugar de SHA-256). También puede mantenerlo encendido y llevarlo a su conclusión lógica: ¡use la mayor cantidad posible de GCM y curvas elípticas! Esto otorgará puntos brownie de auditores impresionables.

    
respondido por el Thomas Pornin 04.10.2013 - 17:53
fuente
0

Debería elegir un conjunto de aplicaciones dependiendo de la aplicación: para datos persistentes, como correos electrónicos, no puede usar claves efímeras porque necesita las claves que se almacenarán en el servidor para descifrar los correos electrónicos.

También sugiero utilizar RSA sobre ECDSA para la compatibilidad de certificados de su navegador.

(Para información pura: las claves efímeras no se autentican. Si desea evitar los ataques MITM, debe obtener la autenticidad en algún lugar. Puede usar una clave pública estática (por ejemplo, de confianza en un certificado), y luego frustrar mitm.

Para romper una de esas suites, un intruso debe resolver el problema del algoritmo discreto para DH (curva elíptica para ECDH) y el problema de factorización de enteros para RSA. Los mejores algoritmos conocidos para hacerlo pueden generalizarse para ambos problemas, por lo que comparten la misma complejidad asintótica.)

    
respondido por el Stefano Beltrame 22.01.2017 - 03:29
fuente

Lea otras preguntas en las etiquetas