- TLS (Transport Layer Security):
- Intro
- is a cryptographic protocol that is layered above TCP to provide a secure channel
- Confidentiality and integrity protection for application data while in transit.
- Client can authenticate server’s identity
- Focus on TLS 1.3(RFC 8446)
- TLS Handshake
- Negotiate Crypto Algorithms:
- client provide supported algos, server choose the best
- including key exchange algo, signature algo, symmetric crypt algo
- Establish Shared Secret
- Mutually compute a shared secret.
- Diffie-Hellman for forward secrecy.
- Derive symmetric keys from shared secret and encrypt and integrity check all further data
- Authenticate the Server
- Server signs, and client verifies, a hash of the entire handshake transcript to this point.
- To minimize latency, TLS 1.3 handshake works in one round trip
- Clever design: Client guesses which key exchange algorithm the server will pick.
- Negotiate Crypto Algorithms:
- Intro
- X.509 Certificates:
- certificate: a message asserting the server’s identity and its public key, signed by a certificate authority (CA)
- Browser includes a set of public keys for the root CAs
- HTTPS Certificate Ecosystem: public key infrastructure (PKI)