Algoritmos de intercambio de claves VS ¿Generación de claves locales?

0

Me preguntaba la diferencia en términos de seguridad, costo computacional y gastos generales de red entre el uso de:

  • Un algoritmo de intercambio de claves (por ejemplo, Diffie-Hellman) para configurar una clave simétrica.
  • La generación por parte del Cliente de una clave simétrica y la envía cifrada (por ejemplo, RSA) al Servidor.

De hecho, estoy diseñando un protocolo que solo necesita una solicitud a un servidor y una respuesta del servidor (a través de un proxy). Por lo tanto, tengo que elegir entre estos 2 protocolos:

  1. Algoritmo Diffie-Hellman (con cifrado asimétrico debido al proxy) seguido de cifrado simétrico de la consulta y la respuesta
  2. Una clave generada por el cliente envía cifrado (cifrado asimétrico) junto con la consulta y una respuesta del servidor cifrado (cifrado simétrico) por la clave recibida previamente del cliente.

Si uso el protocolo 1., tengo la situación actual:

  • Cifrado asimétrico: 1 operación (establecimiento de clave)
  • Descifrado asimétrico: 1 operación (establecimiento de clave)
  • Cifrado simétrico: 2 operaciones (solicitud + respuesta)
  • Descifrado simétrico: 2 operaciones (solicitud + respuesta)
  • intercambio de paquetes: 4

Si uso el protocolo 2., tengo la situación actual:

  • Cifrado asimétrico: 1 operación (establecimiento de clave)
  • Descifrado asimétrico: 1 operación (establecimiento de clave)
  • Cifrado simétrico: 1 operación (solicitud + respuesta)
  • Descifrado simétrico: 1 operación (solicitud + respuesta)
  • intercambio de paquetes: 2

El protocolo 2. parece ser más poderoso que el protocolo 1. pero cuando miro en Internet, la gente suele hablar sobre el primer protocolo (1). Me pregunto por qué. ¿El segundo no es seguro?

Gracias por tu respuesta!

    
pregunta aztitep 10.02.2014 - 11:03
fuente

1 respuesta

1

El intercambio de claves basado en Diffie-Hellman y RSA tiene la misma dinámica y costos similares. En ambos casos:

  • El sistema A debe enviar (posiblemente publicar de manera anticipada) un elemento público (clave pública RSA con RSA, ga para DH) .
  • El sistema B genera algunos valores que culminan en una clave simétrica K y un elemento para enviar a A (con RSA, B genera K al azar y lo cifra con la clave pública de A ; con DH B genera g b y calcula K = g ab ).
  • Si B tiene un mensaje confidencial para enviar a A , entonces él puede cifrarlo con K y enviarlo de inmediato, junto con el elemento del paso anterior.

De hecho, uno puede ver DH como un tipo de cifrado asimétrico donde el remitente no puede elegir los datos que cifra; en cambio, aprende el "secreto compartido" durante el procesamiento, y eso es lo suficientemente bueno para el intercambio de claves.

(A partir de su descripción, parece imaginarse que obtener el secreto compartido de DH de alguna manera implicaría otro viaje de ida y vuelta a la red; eso no es cierto).

DH es popular en los protocolos por una variedad de razones. Históricamente, el gobierno de EE. UU. Lo promovió para usos federales de EE. UU., Porque RSA estaba patentada y el gobierno de EE. UU. No tenía ningún deseo de pagar. Hoy en día, la variante curva elíptica de DH es apreciada por su buen desempeño (más rápido que RSA y usando mensajes más pequeños, aunque hay detalles).

    
respondido por el Tom Leek 10.02.2014 - 13:33
fuente

Lea otras preguntas en las etiquetas