SSL och TLS har under lång tid säkrat upp en betydande del av den krypterade kommunikationen på Internet. Sedan SSL version 1.0 släpptes internt hos Netscape Communications år 1994 så har det hänt en hel del.
Den nya versionen som just nu håller på att utvecklas inom en arbetsgrupp hos IETF har versionsnumret 1.3 där målsättningen är högre prestanda samt tillhandahålla en ännu högre säkerhet. Man kan säga att designkriteriet för denna nya version är ”less is more” och det innebär att en hel del föråldrade krypton har fått stryka på foten:
- RSA är borttaget – RSA tillhandahåller inte Forward Secrecy
- Svaga Diffie-Hellman grupper kan inte användas (SSL_OP_SINGLE_DH_USE)
- CBC är borta – Är orsaken till attacker såsom Lucky13 och BEAST
- RC4 samt SHA1 får inte längre användas
- Export-algoritmer (ansvarig för attacker såsom FREAK, LogJam etc)
- Nytt är ChaCha-Poly1305 samt stöd för OCB-modes (tipstack till Joachim Strömbergson)
- Algoritmen för RSA-padding är Probablilistic Signature Scheme (PSS)
- Nytt meddelande av typen EncryptedExtension. Som nu är krypterat, tidigare skickades många okrypterat
När det gäller prestanda så har ett antal åtgärder införts:
Genom att få ner antalet TCP-paket som måste skickas fram och tillbaka vid varje anslutning så kan snabbare TLS (och webbsidor etc) uppnås.
Här följer en bild hur 1-RTT ser ut där klienten skickar ett ClientHello direkt, samt så gissar klienten vilka krypton som kommer att användas:
När du sedan har en session etablerad så kan sedan 0-RTT användas vid senare tillfälle (Session Resumption) men detta möjliggör dock återuppspelningsattacker.
Vill du redan nu testa TLS 1.3 i Google Chrome så kan du göra följande:
- Skriv in ”chrome://flags/” i adressbaren och trycker enter
- Gå till ”Maximum TLS version enabled.” och välj ”TLS 1.3”
- Starta om Chrome
Och vill du testa med Firefox så behöver du ladda hem senaste nightly-build där TLS 1.3 är påslaget som standard.
Och nu när vi besöker kryptera.se och tar upp Developer Tools (DevTools) så synes följande:
Viktigt att tillägga är att TLS 1.3 inte är färdigt ännu och ändras löpande. Detta gör att mjukvara såsom OpenSSL är försiktiga med att göra förändringar. Den senaste uppdateringen till TLS 1.3 heter draft-19 och släpptes för cirka 2 veckor sedan.
För att exempelvis Nginx ska stödja TLS 1.3 så måste även OpenSSL stödja detta. Och OpenSSL kommer med stöd inom några veckor i version 1.1.1.
Uppdaterad 2017-12-27: Enligt Cloudflare är det bara %0.06 av webbläsarna som använder TLS 1.3 och detta beror främst på att många mellanlådor inte stödjer TLS 1.3.
Uppdaterad: 2017-06-06, användes internt hos Netscape. Inte Mozilla som grundades först många år senare.