TLS

**TLS** (lyhenne sanoista Transport Layer Security, ) on salausprotokolla, joka on suunniteltu tarjoamaan suojattu Internet-sovellusten tietoliikenne IP-verkkojen yli. Sitä käytetään laajasti kaikenlaisissa sovelluksissa, kuten sähköpostissa ja pikaviestimissä. Kuitenkin TLS:n tunnetuin käyttötapa on suojata verkkosivujen  HTTPS-protokollalla. TLS kehitettiin aiemmin käytössä olleen SSL-salausprotokollan seuraajaksi. Vuoden 2024 helmikuussa TLS 1.2:ta tuki 99.9% verkkosivuista ja TLS 1.3:a 67.8% verkkosivuista.

## Historia ja versiot

### SSL 1.0, 2.0 ja 3.0
Netscape kehitti vuonna 1995 selaimeensa salausprotokollan, SSL:n (Secure Sockets Layer). Se kehitettiin HTTP-yhteyksien eli WWW-sivujen suojaamiseen. Salausprotokollaa ei kuitenkaan rajoitettu vain HTTP-protokollaan, vaan sillä voidaan suojata mitä tahansa TCP-yhteyksiä. Vuosina 1995-1998 Netscapen päätutkijana toiminutta Taher Elgamalia on kutsuttu "SSL:n isäksi". Nykyisin sitä käytetään myös esimerkiksi SMTP-, POP-, IMAP-, LDAP ja IRC-yhteyksien salaamiseen. Protokollan ongelmina olivat useat tietoturva-aukot, joiden takia SSL:n ensimmäistä versiota ei ikinä julkaistu. SSL 2.0 poistettiin käytöstä vuonna 2011 dokumentilla  ja SSL:n uusin versio, SSL 3.0, poistettiin käytöstä vuonna kesäkuussa 2015 dokumentilla .

### TLS 1.0
Netscape luovutti kehityksen IETF-standardointiorganisaatiolle, joka sitten kehitti SSL-protokollasta oman versionsa ja antoi sille nimeksi TLS (Transport Layer Security). TLS 1.0 on SSL 3.0:n seuraaja. Standardissa kerrotaan "tämän protokollan ja SSL 3.0:n erot eivät ole suuria, mutta ne ovat tarpeeksi merkittäviä estämään yhteensopivuuden TLS 1.0:n ja SSL 3.0:n välillä.". Myöhemmin työryhmän jäsen Tim Dierks on kertonut että protokollan muutokset ja uudelleennimeäminen olivat "kasvojen säilyttämisele Microsoftille, jottei se näyttäisi siltä että IETF vain hyväksyisi Netscapen luoman protokollan".

Suurimmista maksukorttitarjoajista koostunut PCI Council suositteli, että organisaatiot siirtyisivät TLS 1.0:sta versioon 1.1 tai uudempaan viimeistään kesäkuun 2018 lopussa. Lokakuussa 2018 Apple, Microsoft, Google ja Mozilla Foundation yhdessä ilmoittivat poistavansa TLS 1.0:n ja TLS 1.1:n käytöstä selaimistaan maaliskuussa 2020. 

### TLS 1.1
TLS 1.1 määriteltiin huhtikuussa 2006 dokumentissa . Eroja aiempaan versioon olivat muun muassa:

* Lisätty suojausta salauslohkojen ketjutushyökkäyksiä (CBC) vastaan.
* Lisätty tuki IANAn lisäämille parametreille

Tuki versioille 1.0 ja 1.1 poistui laajasti verkkosivuilta vuoden 2020 aikana, poistaen pääsyn Mozilla Firefox-selaimista joiden versio vanhempi kuin 24 ja Chromium-pohjaisista selaimista joiden versio on alle 29. TLS 1.0 ja TLS 1.1 on julistettu vanhentuneeksi maaliskuussa 2021.

### TLS 1.2
TLS 1.2:n määritelmä  julkaistiin elokuussa 2008. Maaliskuussa 2011 versiota laajennettiin dokumentissa  poistaen tuen SSL:lle, jolloin TLS-yhteydet eivät koskaan neuvottele SSL 2.0:n käytöstä. TLS 1.2:n käytöstä poistolle ei ole vielä päätetty ajankohtaa.

### TLS 1.3
TLS 1.3 -versiossa oleviin muutoksiin kuuluvat nopeampi kättely, uudet salausmenetelmät (Authenticated Encryption with Associated Data, AEAD), kättelyn salaaminen ja useiden vanhentuneiden mekanismien poistaminen. TLS 1.3 hyväksyttiin standardiksi maaliskuussa 2018 ().
TLS 1.3 poisti eräitä vanhentuneita salausmenetelmiä ja algoritmeja, sekä sisälsi parannuksia latenssiin.
Ennen version 1.3 kehitystä talous- ja pankkiala oli huolissaan seurannan menettämisestä ja halusivat protokollaan takaoven, jota ei protokollaan lopulta tullut. Takaovi olisi tehnyt tyhjiksi uuden version edut.

## Varmenteet
SSL koostuu kahdesta protokollasta: kättelyprotokollasta ja tallenneprotokollasta. Tallenneprotokolla ohjaa tiedon kulkua SSL-istunnon päätepisteiden välillä. Kättelyprotokolla todentaa yhden tai molemmat päätepisteet SSL-istunnossa ja asettaa yksilöllisen symmetrisen avaimen, jota käytetään tiedon salaamiseen ja purkamiseen tuon istunnon aikana. SSL käyttää epäsymmetristä salausta, digitaalista allekirjoitusta ja SSL-kättelyä todentaakseen yhden tai molemmat päätepisteet. Tyypillisesti SSL todentaa palvelimen ja valinnaisesti SSL todentaa asiakkaan.

SSL perustuu varmenteisiin, joilla sivustot todistavat olevansa hyvämaineisia. Varmenteita myöntävät yritykset (, CA), jotka takaavat varmenteen hakijan identiteetin. Selainvalmistajat puolestaan pitävät listaa luotetuista varmenteiden myöntäjistä. Nämä voivat myös delegoida myöntämisoikeuksia edelleen.
Esimerkiksi Mozillan listalla on yli 50 luotettua varmenteen myöntäjää.

Myöhemmin on esitetty epäilyjä, ettei järjestelmä ole enää luotettava. Maaliskuussa 2011 Comodo Groupin luottaman kumppanin palvelimelle murtauduttiin ja iranilaiset krakkerit saivat varmenteita haltuunsa. Yksittäisiä varmenteita voi perua, mutta vuoden 2011 selaimissa krakkeri voi estää toiminnon toiminnan selainten juuri siitä välittämättä.
Toisaalta kokonaisen varmenteen myöntäjän varmennetta ei voi käytännössä perua, koska tällöin rikottaisiin kaikkien sen asiakkaiden sivustot.

Marraskuussa 2014 joukko yrityksiä ja järjestöjä perusti ei-kaupallisen Let's Encrypt -CA:n tarjoamaan sertifikaatteja ilmaiseksi. Taustalla olivat Mozilla Corporation, Cisco Systems, Akamai Technologies, Electronic Frontier Foundation, IdenTrust, Inc. ja Michiganin yliopiston tutkijat. Sertikaattien jaosta huolehtii voittoa tuottamaton Internet Security Research Group (ISRG).
Taustalla olivat Maailmanlaajuista joukkovalvontaa koskevat paljastukset Yhdysvaltain suorittamasta vakoilusta, jonka seurauksena suhtautuminen salattujen yhteyksien tarpeellisuuteen muuttui.

Euroopan unioni aikoo eIDAS 2.0 -säännöksissä vaatia selaimia luottamaan valtioiden myöntämiin sertifikaatteihin. Tällaista varmennetta ei olisi edes sallittua perua, vaikka osoittautuisi, että sitä väärinkäytetään esim. liikenteen vakoiluun. Täten valtiollinen toimija voisi EU:ssa ottaa haltuunsa varmenteet ja seurata salattua liikennettä verkkosivulle huomaamatta.

## Standardeja

TLS-protokollaa koskevia standardeja:
*  *The TLS Protocol Version 1.0*
*  (heikkojen salausmenetelmien käyttö)
*  (TLS:n käyttö HTTP:n kanssa, sama portti)
*  (TLS:n käyttö HTTP:n kanssa, eri portti)
*  (AES-salausmenetelmä)
*  *Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)* (TLS:n käyttö symmetrisen avaimen kanssa)
*  *The Transport Layer Security (TLS) Protocol Version 1.1*
*  *Transport Layer Security (TLS) Extensions*
*  *The Transport Layer Security (TLS) Protocol Version 1.2*
*  *The Transport Layer Security (TLS) Protocol Version 1.3*

## Toteutuksia

* OpenSSL
* LibreSSL
* GnuTLS
* WolfSSL
* stunnel

## Muut käyttökohteet

TLS-kättelyä käytetään myös muissa käyttötarkoituksissa, kuten esimerkiksi EAP-protokollassa.

## Laajennukset
ALPN () on TLS-kättelyyn julkaistu laajennus.

## Katso myös
* HTTPS
* IPsec
* VPN
* DNS over TLS
* ElGamal

## Lähteet

## Aiheesta muualla