On this page, it says the first thing sent is the SSL settings, such as version, and cipher settings.
If the attacker, say, wanted to change the encryption method used, what makes this not possible?
On this page, it says the first thing sent is the SSL settings, such as version, and cipher settings.
If the attacker, say, wanted to change the encryption method used, what makes this not possible?
The cornerstone of the security against such tampering lies in the Finished
messages. At the end of the handshake, client and server send to each other these messages, whose contents are a hash of the contents of all previously exchanged handshake messages. If an attacker alters anything in one of these messages, then the handshake messages, as seen by the client, won't match what the server saw, and the Finished
message contents will differ. The attacker cannot reliably alter the contents of the Finished
messages on the fly because they are sent after the switch to the newly negotiated cryptographic algorithm -- so they are encrypted and protected against alterations.
The only way for the attacker to pull off such an attack would be to force the client and server to use a cipher suite that is so weak that the attacker can totally break it right away, and thus alter the Finished
messages to match his previous alterations. But decent SSL implementation don't support cipher suites which are that weak (there used to be "export cipher suites" limited to 40-bit keys, but they are no longer supported by existing libraries).
For more on SSL, read this.