Overview#ClientHello describes a Step within the TLS Handshake process.
The TLS ClientHello
Note that "client" is a symbolic role; it means "the party which speaks first". It so happens that in the HTTPS context, which is HTTP-within-SSL-within-TCP, all three layers have a notion of "client" and "server", and they all agree (the TCP client is also the SSL client and the HTTP client), but that's kind of a coincidence.
The ClientHello message contains:
- the maximum protocol version that the client wishes to support;
- the ClientHello.random (32 bytes, out of which 28 are suppose to be generated with a cryptographically strong number generator);
- the "session ID" (in case the client wants to resume a session in an abbreviated handshake, see below);
- the list of "Cipher Suites" that the client knows of, ordered by client preference;
- the list of compression algorithms that the client knows of, ordered by client preference;
- some optional extensions.
More Information#There might be more information for this subject on one of the following:
- 0-RTT Handshakes
- Cipher Suite
- Derive the Master Secret
- Diffie-Hellman Ephemeral
- How SSL-TLS Works
- Master Secret
- Premaster Secret
- TLS 1.3
- TLS Full Handshake
- TLS Session Resumption
- TLS User Mapping Extension
- Transport Layer Security (TLS) Renegotiation Indication Extension