-1

I tried to set the client and server with different protocols, and send some bytes between them.

It seems like they work just fine. Can anybody give me some links about what happen inside when they realize the difference? Something like a protocol negotiation? Self-downgrade?

2 Answers2

1

They can't interoperate once the protocol version has been decided, but there is a mechanism to negotiate the version at the beginning of the handshake. Essentially, the client advertises the highest version it supports when it starts the handshake and the server returns the highest version it supports that is less or equal to the version supported by the client. Of course, the server can also disable so of these lower versions if it wishes (in which case the connection won't be established).

The TLS specification has this to say about the server_version in the Server Hello message:

   server_version
      This field will contain the lower of that suggested by the client
      in the client hello and the highest supported by the server.  For
      this version of the specification, the version is 3.3.  (See
      Appendix E for details about backward compatibility.)

Appendix E.1 should also give you further explanations.

Community
  • 1
  • 1
Bruno
  • 119,590
  • 31
  • 270
  • 376
-1

It appears they aren't exactly interoperable, but according to this MDSN article TLS will drop back to SSLv3 if it needs to. hth

mezmo
  • 2,441
  • 19
  • 22