SSL and man-in-the-middle misunderstanding

Man-in-the-middle attacks on SSL are really only possible if one of SSL’s preconditions is broken, here are some examples;

  • The server key has been stolen – means the attacker can appear to be the server, and there is no way for the client to know.

  • The client trusts an untrustworthy CA (or one that has had it’s root key stolen) – whoever holds a trusted CA key can generate a certificate pretending to be the server and the client will trust it. With the number of CAs pre-existing in browsers today, this may be a real problem. This means that the server certificate would appear to change to another valid one, which is something most clients will hide from you.

  • The client doesn’t bother to validate the certificate correctly against its list of trusted CA’s – anyone can create a CA. With no validation, “Ben’s Cars and Certificates” will appear to be just as valid as Verisign.

  • The client has been attacked and a fake CA has been injected in his trusted root authorities – allows the attacker to generate any cert he likes, and the client will trust it. Malware tends to do this to for example redirect you to fake banking sites.

Especially #2 is rather nasty, even if you pay for a highly trusted certificate, your site will not be in any way locked to that certificate, you have to trust all CAs in the client’s browser since any of them can generate a fake cert for your site that is just as valid. It also does not require access to either the server or the client.

Leave a Comment