2
$\begingroup$

I'm reading the SSL specs, and it seems that the initial handshake has no authenticity protection at all. What is to prevent, say, an attacker from overwriting the "available ciphers" list with one that is full of broken, or even null, ciphers? Is there some sort of defense for this, or is this fundamentally unsolvable because the handshake part by definition cannot itself be authenticated (which leads to infinite regress)? Is there a way to anonymously authenticate the initial, non-authenticated part of an SSL connection?

$\endgroup$
  • $\begingroup$ SSL, as in SSL 3.0? That is severely deprecated due to security concerns (like the kind you are mentioning. Do you mean TLS? $\endgroup$ – Richie Frame Oct 27 '13 at 20:31
  • $\begingroup$ Yes, I mean TLS. SSL 3.0 isn't severely deprecated, though. I think it is still widely used. SSL 2.0 is the badly insecure one. $\endgroup$ – ithisa Oct 27 '13 at 20:49
6
$\begingroup$

The cornerstone of the handshake security is that the Finished messages, sent under the protection of the newly exchanged key (for encryption and MAC), contain hash values computed over all the handshake messages exchanged so far, including the list of cipher suites and all other parameters. As long as client and server don't negotiate the use of a cipher suite which can be broken instantaneously, these Finished messages reliably detect foul play.

| improve this answer | |
$\endgroup$
  • $\begingroup$ What if the attacker forces the client and server to negotiate the NULL cipher? $\endgroup$ – ithisa Oct 27 '13 at 21:06
  • $\begingroup$ @user54609: Almost all real-world servers are configured to disallow insecure ciphersuites, including any that include the NULL cipher. $\endgroup$ – Reid Oct 27 '13 at 22:33
  • $\begingroup$ So in the real world, as long as the servers are configured not to support weak ciphers, the Finished messages don't really matter? $\endgroup$ – ithisa Oct 27 '13 at 23:39
  • $\begingroup$ The Finished message always matter. One of their jobs (but not the only one) is to prevent "version rollback attacks". $\endgroup$ – Thomas Pornin Oct 28 '13 at 10:45

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.