Estoy leyendo la especificación de un producto comercial que proporciona un servicio web. La especificación es la siguiente:
- El cliente (un navegador web) puede usar https
- El cliente solicita información al servidor - > Da módulo y exponente de su clave pública RSA
- El cliente solicita una sesión al servidor - > el cliente crea un cifrado aleatorio, se cifra con la clave pública del servidor
- El cliente realiza un inicio de sesión con el nombre de usuario y la contraseña, que se cifra con la clave pública del servidor
Esto me parece que es propenso a un ataque Man-In-The-Middle si no se usa https, ya que no se realiza la verificación del servidor o cliente. Además, solo algunos datos del cliente están encriptados, nada del servidor.
¿Qué piensas al respecto?