I'm reading the specification for a commercial product which provides a webservice.The spec goes like this:
- The client (a webbrowser) may use https
- Client asks server for info --> gives modulus and exponent of his public RSA key
- Client asks server for a session --> client creates a random cipher, encrypts with server public key
- Client performs a login with username and password which is encrypted with server public key
This looks to me like being prone to a Man-In-The-Middle attack if no https is used, since no verification of the server or client takes place. Additionally only some data from the client is encrypted, nothing from the server.
What do you think about it?