Estoy usando RSA para cifrar la comunicación entre un servidor y un cliente. Digamos que tenemos 2 llaves asimétricas, clave 1 y clave2.¿Es seguro este escenario?
El servidor tiene key1 (Privado) desde el principio y el cliente tiene la key1 (público)
Así que aquí está el panorama:
- el cliente genera clave2
- cliente se conecta al servidor
- enviar clave2 (público) cifrada con key1 (público)
- a partir de ahora en el servidor enviará todos los datos cifrados con la clave2 (público)
- el cliente envía algunos datos aleatorios al servidor
- el servidor devuelve los mismos datos hash
- el cliente verifica que los datos es correcta
Por lo que yo puedo ver esto debe prevenir un hombre -en el medio ataque, o me estoy perdiendo algo? En el punto 7, el cliente debe saber si alguien está tratando de darle al servidor la clave incorrecta para encriptar, ya que nadie más que el servidor puede descifrar key2 (público).
Si hay algo que se pueda hacer para mejorar la seguridad, por favor dígame.
En la medida en que tenga razón, su MITM putativo podría hacer eso en cualquier caso, sin el cliente. – MarkusQ
bien seguro que podría pero luego perdería el cliente y bueno, entonces no tiene sentido hacer un MITM ya que no hay nada que ver .. – Peter