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:
- Algoritmo Diffie-Hellman (con cifrado asimétrico debido al proxy) seguido de cifrado simétrico de la consulta y la respuesta
- 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!