Keamanan Lapisan Transportasi
Algoritma > Pertukaran kunci atau perjanjian kunci

Sebelum klien dan server dapat mulai bertukar informasi yang dilindungi oleh TLS, mereka harus secara aman bertukar atau menyetujui kunci enkripsi dan cipher untuk digunakan saat mengenkripsi data. Di antara metode yang digunakan untuk pertukaran kunci / perjanjian adalah: kunci publik dan pribadi yang dihasilkan dengan RSA (dilambangkan TLS_RSA dalam protokol jabat tangan TLS), Diffie-Hellman (TLS_DH), ephemeral Diffie–Hellman (TLS_DHE), kurva elips Diffie-Hellman ( TLS_ECDH), kurva-elips epiferal Diffie-Hellman (TLS_ECDHE), Diffie-Hellman anonim (TLS_DH_anon), pre-shared key (TLS_PSK) dan Secure Remote Password (TLS_SRP).
Metode perjanjian kunci TLS_DH_anon dan TLS_ECDH_anon tidak mengotentikasi server atau pengguna dan karenanya jarang digunakan karena mereka rentan terhadap serangan man-in-the-middle. Hanya TLS_DHE dan TLS_ECDHE yang memberikan kerahasiaan ke depan.
Sertifikat kunci publik yang digunakan selama pertukaran / perjanjian juga bervariasi dalam ukuran kunci enkripsi publik / swasta yang digunakan selama pertukaran dan karenanya ketahanan keamanan yang diberikan. Pada Juli 2013, Google mengumumkan bahwa mereka tidak akan lagi menggunakan kunci publik 1024-bit dan akan beralih ke kunci 2048-bit untuk meningkatkan keamanan enkripsi TLS yang diberikannya kepada penggunanya karena kekuatan enkripsi terkait langsung dengan ukuran kunci.
| Algoritma | SSL 2> 0 | SSL 3> 0 | TLS 1> 0 | TLS 1> 1 | TLS 1> 2 | TLS 1> 3 | Status |
| --- | --- | --- | --- | --- | --- | --- | --- |
| RSA | Ya | Ya | Ya | Ya | Ya | No | Didefinisikan untuk TLS 1.2 dalam RFC |
| DH-RSA | Tidak | Ya | Ya | Ya | Ya | No | Didefinisikan untuk TLS 1.2 dalam RFC |
| DHE-RSA (forward secrecy) | Tidak | Ya | Ya | Ya | Ya | Ya | Didefinisikan untuk TLS 1.2 dalam RFC |
| ECDH-RSA | Tidak | Tidak | Ya | Ya | Ya | No | Didefinisikan untuk TLS 1.2 dalam RFC |
| ECDHE-RSA (forward secrecy) | Tidak | Tidak | Ya | Ya | Ya | Ya | Didefinisikan untuk TLS 1.2 dalam RFC |
| DH-DSS | Tidak | Ya | Ya | Ya | Ya | No | Didefinisikan untuk TLS 1.2 dalam RFC |
| DHE-DSS (forward secrecy) | Tidak | Ya | Ya | Ya | Ya | No | Didefinisikan untuk TLS 1.2 dalam RFC |
| ECDH-ECDSA | Tidak | Tidak | Ya | Ya | Ya | No | Didefinisikan untuk TLS 1.2 dalam RFC |
| ECDHE-ECDSA (forward secrecy) | Tidak | Tidak | Ya | Ya | Ya | Ya | Didefinisikan untuk TLS 1.2 dalam RFC |
| PSK | Tidak | Tidak | Ya | Ya | Ya |  | Didefinisikan untuk TLS 1.2 dalam RFC |
| PSK-RSA | Tidak | Tidak | Ya | Ya | Ya |  | Didefinisikan untuk TLS 1.2 dalam RFC |
| DHE-PSK (forward secrecy) | Tidak | Tidak | Ya | Ya | Ya | Ya | Didefinisikan untuk TLS 1.2 dalam RFC |
| ECDHE-PSK (forward secrecy) | Tidak | Tidak | Ya | Ya | Ya | Ya | Didefinisikan untuk TLS 1.2 dalam RFC |
| SRP | Tidak | Tidak | Ya | Ya | Ya |  | Didefinisikan untuk TLS 1.2 dalam RFC |
| SRP-DSS | Tidak | Tidak | Ya | Ya | Ya |  | Didefinisikan untuk TLS 1.2 dalam RFC |
| SRP-RSA | Tidak | Tidak | Ya | Ya | Ya |  | Didefinisikan untuk TLS 1.2 dalam RFC |
| Kerberos | Tidak | Tidak | Ya | Ya | Ya |  | Didefinisikan untuk TLS 1.2 dalam RFC |
| DH-ANON (tidak aman) | No | Yes | Yes | Yes | Yes |  | Didefinisikan untuk TLS 1.2 dalam RFC |
| ECDH-ANON (tidak aman) | No | No | Yes | Yes | Yes |  | Didefinisikan untuk TLS 1.2 dalam RFC |
| GOST R 34.10-94 / 34.10-2001 | Tidak | Tidak | Ya | Ya | Ya |  | Diusulkan dalam konsep RFC |