Conjuntos de cifrado SSL / TLS [cerrado]

1

Hay una gran lista de conjuntos de cifrado dentro de SSL / TLS. Parece que estos conjuntos de claves se pueden clasificar en términos de su mecanismo subyacente con las siguientes categorías:

  1. Intercambio de claves RSA (por ejemplo, TLS-RSA-WITH-AES-128-CBC-SHA256 )
  2. RSA con intercambio de claves de Ephermal Diffie Hellman (DHE-RSA) (por ejemplo, TLS-DHE-RSA-WITH-AES-128-CCM )
  3. Intercambio de claves RSA con curva elíptica Diffie Hellman (ECDHE-RSA) (por ejemplo, TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA )
  4. RSA con intercambio de claves de Diffie Hellman (ECDH-RSA) con curva elíptica (por ejemplo, TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256 )
  5. Intercambio de claves ECDSA con curva elíptica Diffie Hellman (ECDHE-ECDSA) (por ejemplo, TLS-ECDHE-ECDSA-WITH-NULL-SHA )
  6. Intercambio de claves previamente compartidas (PSK) (por ejemplo, TLS-PSK-WITH-RC4-128-SHA )
  7. Intercambio de claves previamente compartidas con Diffie Hellman (DHE-PSK) ( TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 )
  8. Clave precompartida con intercambio de claves (ECDHE-PSK) efímera difusa efímera de curva elíptica (por ejemplo, TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 )
  9. clave precompartida con intercambio de claves RSA (RSA-PSK) (por ejemplo, TLS-RSA-PSK-WITH-AES-128-CBC-SHA256 )

Estoy buscando una respuesta que ofrezca un breve resumen de la categoría, qué tipo de claves públicas / privadas se usan para el intercambio de claves y firmas y dónde "encontrar" estas claves (por ejemplo, dentro del certificado del servidor), qué tipo El cifrado se utiliza para la confidencialidad y, finalmente, cómo se autentican los datos. Sería bueno si la respuesta pudiera usar el ejemplo de conjunto de cifrado dado para esa categoría.

    
pregunta TrinityTonic 22.06.2017 - 13:31
fuente

2 respuestas

2

No voy a responder a todas sus preguntas, especialmente al sumergirse en el formato x509 probablemente esté fuera de el alcance de una respuesta aquí, pero echemos un vistazo a los ciphersuite que proporcionaste e interpretamos:

TLS-RSA-WITH-AES-128-CBC-SHA256

Esto utiliza RSA para el intercambio de claves. En otras palabras, el cliente elige una clave, la cifra con la clave pública del servidor y la envía. La carga útil real se cifra con AES-128 en modo CBC y se autentica con HMAC-SHA256.

TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA

Esto utiliza claves efímeras de un acuerdo de clave DH de curva elíptica. El host se autentica mediante una firma RSA. La carga útil se encripta utilizando 3DES (EDE = encrypt-decrypt-encrypt) en modo CBC y HMAC-SHA1 para la autenticación.

Aquí está la lista de conjuntos de cifrado con sus especificaciones .

Todas las suites que mencionas usan RSA o PSK para la autenticación. Por lo tanto, la única clave que encontrará en un certificado es la clave RSA. Un PSK no puede tener un certificado ya que es una clave simétrica y certificarlo significaría entregar y poner la clave secreta en el público certificado. Por lo tanto, la única clave que debe buscar en los certificados es una clave RSA.

Los acuerdos DH crean nuevas claves y tampoco se encuentran en los certificados.

Editar: Por favor, no intentes analizar x509 tú mismo. Es muy difícil y ha dado lugar a muchos errores explotables en el pasado.

    
respondido por el Elias 22.06.2017 - 13:47
fuente
2

No creo que las categorías propuestas sean la mejor manera de categorizar los cifrados. Una clasificación más apropiada es usar las diferentes partes del cifrado de manera independiente y luego derivar de esto las características de un cifrado específico. Estas partes del cifrado son el tipo de autenticación del servidor (RSA, ECDSA, ...), el tipo de intercambio de claves (RSA, DH, PSK, ...), y el tipo de cifrado simétrico y Mac utilizado para el cifrado con el clave del intercambio de claves.

No hay cifrados definidos para cada combinación de estas diferentes partes de cifrado, pero para muchos. openssl ciphers -V muestra en qué partes consisten los cifrados implementados, por ejemplo:

 0xC0,0x30 - ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA  Enc=AESGCM(256) Mac=AEAD
 0x00,0x35 - AES256-SHA                    SSLv3 Kx=RSA  Au=RSA  Enc=AES(256)    Mac=SHA1
  

Estoy buscando una respuesta que ofrezca un breve resumen de la categoría, ...

Dados los muchos valores posibles para cada tipo y todas las combinaciones, esto sería demasiado amplio y, por lo tanto, no responderé esta parte. Pero, los diferentes tipos se pueden ver fácilmente en la salida de openssl -V ciphers y si necesita tipos de detalles, solicítelos en una pregunta diferente.

Pero para los casos más comunes:

  • La autenticación del servidor (Au) generalmente se basa en certificados, que en su mayoría contienen claves públicas RSA o ECDSA.
  • El intercambio de claves (Kx) suele ser ECDH o DH o RSA.
  • El cifrado (Enc) se realiza con una variedad de algoritmos como AES-128, AES-256, RC4, 3DES, etc.
  • Mac (Mac) suele ser AEAD, SHA-1, SHA-256 o similar o incluso MD5.
respondido por el Steffen Ullrich 22.06.2017 - 14:24
fuente

Lea otras preguntas en las etiquetas