TLS 1.3 Handshake Protocol (1-RTT Round Trip):
- Goal: Establish mutual identity authentication, negotiate cryptographic algorithms, and derive shared symmetric encryption keys securely.
1. ClientHello (0.5 RTT):
- The client initiates the connection by sending supported TLS versions (1.3), a list of supported cipher suites, a random nonce, and its Diffie-Hellman key share (ephemeral public key parameters).
2. ServerHello & Key Derivation (1.0 RTT):
- Server selects the cipher suite, sends its own Diffie-Hellman key share, and sends its X.509 digital certificate signed by a trusted Certificate Authority (CA).
- Both parties independently compute the shared pre-master secret using Ephemeral Diffie-Hellman (ECDHE), achieving Perfect Forward Secrecy.
- Server sends an encrypted CertificateVerify (proving possession of the certificate's private key) and a Finished message.
3. Client Finished & Encrypted Application Data (1.0+ RTT):
- Client validates the server certificate chain against local root CAs and verifies the digital signature.
- Client sends its Finished message.
- Encrypted HTTP communication begins immediately using symmetric AES-GCM or ChaCha20-Poly1305 ciphers.