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?


This is roughly the same mechanism as SSL, with the exception that it lacks a verification step for the RSA public key he sends you. SSL has a whole PKI involving certificate authorities and signing in order to ensure that the public key you get actually belongs to the party you're communicating with. If his cipher doesn't include it, then you're definitely susceptible to man-in-the-middle attacks.

And if it does include it, then you're more-or-less using a primitive SSL, in which case you should be using real TLS (version 1.2 if you can swing it) which includes defenses against additional more difficult attacks which a custom-built protocol probably won't have.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.