Estoy tratando de entender el flujo completo de intercambios de claves para comunicaciones seguras.
Como una premisa potencialmente incorrecta, tengo la impresión de que RSA es una buena técnica asimétrica para establecer una conexión segura a través de la cual puede ocurrir un intercambio de clave simétrico posterior y que el bloque de cifrado AES es un mejor método para intercambiar mensajes de gran volumen. Porque es más rápido que el cifrado RSA. Es decir, RSA asimétrico es bueno para un intercambio de un pequeño mensaje, como una clave secreta compartida [sesión].
Dicho esto, entiendo el flujo entre Alice y Bob de la siguiente manera:
- Alicia envía ClientHello a Bob (servidor)
- Bob responde con Reconocimiento
- Alice responde con una clave pública (la mitad pública de RSA)
- Y (¿potencialmente?) un resumen del mensaje que consiste en un hash de una sola vía (como sha ()) de la clave pública de Alice que fue encriptada por Alice's Clave privada
- Bob recibe la clave pública de Alice, la usa para descifrar de una manera hash, usa la misma función de hashing (sha ()) para hash la clave pública y luego compara el hash unidireccional descifrado de Alicia y el hash unidireccional que generó
- Si coincide, cree en la conexión y envía su propio público. clave para Alicia
- Junto con esa clave pública, envía un hash unidireccional de su clave (¿quizás concatenado con la clave pública de Alice?) con la que Alice puede repita el proceso de descifrado utilizando la clave pública de Bob y luego comparando el hash unidireccional de su clave (o tal vez de su clave combinada con la clave pública de Alice?)
- Una vez que las dos partes puedan ver que hay una conexión segura (debido a que cada una tiene un hash match), pueden a) almacenar su respectivas claves públicas yb) realizar un intercambio de una simetría secreta clave de sesión que luego seguiría AES para un mensaje de mayor volumen intercambios
¿Esto es correcto? ¿Es más común simplemente realizar el intercambio de claves RSA? ¿Es este el método correcto para el intercambio de claves? ¿Es esta una representación precisa de TLS1.2? ¿He inventado algunos pasos?
Sé que esto es un montón de preguntas con potencialmente más de un área que he malinterpretado los procesos. ¡Aprecio la aclaración y ayuda!