¿Por qué no se usa la clave pública del sujeto para el cifrado en SSL? [duplicar]

10

Según entiendo el funcionamiento de SSL, el cliente genera el secreto maestro previo y lo envía al servidor encriptado utilizando la clave pública del servidor. Ahora, ambas partes realizan algunos pasos para generar el secreto maestro y la clave de sesión. Esta clave de sesión se usa para el cifrado simétrico de ahora en adelante (por ejemplo, la comunicación en HTTPS).

Mi pregunta es que, dado que estamos enviando la clave pública del servidor al cliente, y también se está autenticando y verificando mediante el uso de firmas digitales de las Autoridades de Certificación - ¿por qué no solo usamos ¿Esta clave pública para el cifrado?

¿Es porque el cifrado asimétrico es menos eficiente? ¿Se trata de una compensación entre una operación menos eficiente una vez (el envío de un secreto pre-maestro y la generación de un secreto maestro) durante el apretón de manos en lugar del cifrado asimétrico de tiempo múltiple? ¿Alguna idea?

Aclaración: Mi pregunta no sugiere el uso de cifrado asimétrico para las claves de sesión, sino que preguntaba por ninguna clave de sesión, es decir, solo se usa la clave pública enviada al cliente para el cifrado. Vea mi respuesta para saber cuál fue mi pregunta.

    
pregunta tapananand 09.11.2015 - 11:31
fuente

3 respuestas

5

Simplemente no podemos hacer esto. Déjame explicarte:

Si utilizamos la clave pública para el cifrado, se producirán los siguientes problemas:

  1. Todo funcionará bien de cliente a servidor: el cliente enviará el mensaje cifrado, el servidor se descifra con su clave privada.
  2. El problema se producirá cuando el servidor tenga que enviar algo, qué clave utilizará para el cifrado, no puede usar su clave privada ya que su clave pública está abierta.

Una solución podría ser que el cliente también puede enviar su clave pública y el servidor se cifrará utilizando la clave pública del cliente. Bueno, entonces es mejor usar el método actual en lugar de agregar más pasos para autenticar la clave pública del cliente. Además, es vulnerable como se explica aquí

    
respondido por el tapananand 09.11.2015 - 11:56
fuente
17

Hay varias razones para esto. El principal es el rendimiento: el cifrado asimétrico es LENTO.

Además, muchos de estos algoritmos tienen un tamaño máximo fijo para los datos que pueden cifrar (RSA, como se define en PKCS # 1, tiene un máximo de 245 bytes para el tamaño de clave de uso común).

Además, no puede implementar la seguridad de reenvío de esta manera: cualquier persona que obtenga una copia de la clave privada podrá descifrar cualquier mensaje pasado.

Finalmente, simplemente existe el hecho de que es más flexible negociar el esquema de encriptación que obligarlo a usar el que se usó para firmar el certificado.

    
respondido por el Stephane 09.11.2015 - 11:46
fuente
1

Según esta respuesta , el punto no es que el cifrado asimétrico sea " menos eficiente ", es solo que tiene propiedades diferentes y, por lo tanto, usos diferentes al cifrado simétrico.

SSL requiere propiedades de ambos mundos, por lo que, naturalmente, combina cifrados simétricos y asimétricos.

    
respondido por el WhiteWinterWolf 09.11.2015 - 11:42
fuente

Lea otras preguntas en las etiquetas