claves de sesión de cifrado simétricas en SSL / TLS

64

Esta pregunta se refiere a las claves de envío y recepción de sesión utilizadas en el protocolo SSL / TLS. Mi entendimiento es que esta clave utiliza cifrado simétrico (DES, AES, BlowFish, etc.). Me pregunto si los pares de claves públicas y privadas son superiores a las claves simétricas con respecto a la seguridad del intercambio de claves. ¿Por qué no usar cifrado asimétrico para la sesión? llaves tambien?

esta es una extensión de una pregunta existente: seguridad de PKI, certificados, autoridades de certificación, secreto de envío

    
pregunta lurscher 08.05.2011 - 01:59
fuente

3 respuestas

74

3 razones (ahora):

  1. El cifrado asimétrico es más lento, mucho más lento que el cifrado simétrico. Órdenes de magnitud más lentas.
  2. Dada la misma longitud de clave, la asimetría es mucho más débil que la simétrica, bit por bit. Por lo tanto, necesita una clave mucho más grande para proporcionar una protección equivalente. Esto también contribuye a la lentitud mencionada en 1.
  3. (Según el comentario de @ ThomasPornin :) El cifrado asimétrico conlleva un aumento en el tamaño de la salida. Por ejemplo, si utiliza RSA, los datos cifrados son al menos un 10% más grandes que el texto sin cifrar. El cifrado simétrico, por otro lado, tiene una sobrecarga de tamaño fijo, incluso cuando se cifran gigabytes de datos.
respondido por el AviD 08.05.2011 - 02:49
fuente
33

Los algoritmos de encriptación asimétrica son mucho menos eficientes que los algoritmos simétricos. Básicamente, todo uso de cifrado mediante claves asimétricas implica el cifrado de una clave de sesión simétrica, con la que se cifra el mensaje real.

Además de las útiles notas de AviD sobre la longitud de la clave, tenga en cuenta que si los ataques de computación cuántica se vuelven factibles, harán que todos los algoritmos de clave pública (y por lo tanto SSL / TLS) sean ineficaces. Pero el AES-256 directo seguiría siendo fuerte incluso si se produjera un ataque informático cuántico. Ver Tamaño de clave - Efecto de los ataques de computación cuántica - Wikipedia . La pregunta volvería entonces a cómo intercambiar esas claves y establecer confianza en ellas.

    
respondido por el nealmcb 08.05.2011 - 02:45
fuente
13

Este es un enfoque estándar, denominado cryptosystem híbrido . La criptografía simétrica y la criptografía asimétrica tienen sus puntos fuertes y débiles. En particular:

  • La criptografía asimétrica permite que cualquiera pueda cifrar mensajes que solo un participante podrá descifrar, y permite que cualquier persona verifique los mensajes que solo un participante puede haber firmado.
  • La criptografía simétrica es mucho más rápida que la criptografía asimétrica. Realmente, mucho.

La seguridad no es realmente una preocupación en la elección entre la criptografía simétrica y la asimétrica. La criptografía asimétrica resuelve problemas que la criptografía simétrica no puede resolver; para todo lo demás, se utiliza la criptografía simétrica, porque es mucho más rápida.

(Como consecuencia de ser más rápido, la criptografía simétrica tiende a tener un margen de seguridad más alto: los tamaños de clave comunes (AES de 128 bits) son lo suficientemente grandes como para impedir un avance matemático completamente nuevo, todas las computadoras que existen actualmente en la Tierra funcionan ya que el universo ha existido solo tendría una pequeña posibilidad de romper el cifrado. La criptografía asimétrica se ejecuta en márgenes más pequeños debido a su bajo rendimiento y hay mejoras matemáticas ocasionales en los métodos de craqueo que hacen que los tamaños de las claves de uso común estén bien durante algunos años. pero no necesariamente por algunas décadas. Pero esta es una preocupación secundaria en comparación con las capacidades / rendimiento alternativo.)

Los criptosistemas híbridos resuelven el dilema utilizando la criptografía asimétrica solo cuando sea necesario:

  • Para verificar la firma de un mensaje, el mensaje es hashed , y la criptografía asimétrica se usa solo en el hash, no directamente en el mensaje de longitud variable.
  • Para cifrar algunos datos, se genera una clave de sesión simétrica. La criptografía asimétrica se utiliza para compartir esta clave simétrica entre los participantes (el cliente y el servidor). Los datos "reales" están cifrados y autenticado utilizando esta clave simétrica.

En HTTPS, como se usa comúnmente en la web, el servidor tiene una clave pública, pero el cliente no lo hace. Cualquier navegador puede contactar al servidor, al servidor no le importa quién es el cliente. ( Los certificados del lado del cliente son utilizado donde tiene sentido .) Una vista incompleta y de muy alto nivel del establecimiento de una sesión HTTPS es:

  1. El servidor envía su certificado al cliente. El certificado contiene la clave pública del servidor y una firma de esa clave pública por una autoridad de certificación . El cliente verifica que la autoridad de certificación sea conocida (los navegadores se envían con una lista de las claves públicas de las autoridades de certificación).
  2. El cliente y el servidor organizan la elección de una clave simétrica, de tal manera que un atacante no podrá reconstruir la clave simplemente inspeccionando el tráfico o incluso modificándolo (o al menos se detectará un atacante activo y el cliente o el servidor abortarán la sesión). Un intercambio de claves Diffie-Hellman más una firma por parte del servidor (para que el cliente verifique que el intercambio se realizó con el servidor, y no con un atacante de hombre en el medio) es una posibilidad para generar la clave simétrica. También es posible confiar únicamente en la clave privada del servidor (a costa de no garantizar secreto de envío ).
  3. Todas las comunicaciones posteriores usan esa clave simétrica.

Note que hice muchas simplificaciones arriba. Para más detalles, lea:

respondido por el Gilles 04.01.2015 - 00:35
fuente

Lea otras preguntas en las etiquetas