Mikä on TLS (Transport Layer Security)? Protokollan selitys
TLS (Transport Layer Security) on salausprotokolla, joka varmistaa tietojen turvallisen siirron internetissä. Se on vanhentuneen SSL-protokollan seuraaja, ja nykyään sitä käytetään lähes yksinomaan versiossa TLS 1.3.
Mikä on TLS?
Internetin alkuaikoina tietoturva ei ollut yhtä tärkeää kuin nykyään. Kaikki viestit lähetettiin avoimesti ja salaamattomina tietokoneelta toiselle. Voidaan ajatella sitä kuin postikorttia: jokainen postinkantaja saattoi lukea sen.
TLS-protokolla – joka tunnetaan myös nimellä SSL/TLS – toi mukanaan lähetettävän sisällön salauksen. Vertauksen jatkaakseni tämä salaus on kuin sinetöity kirjekuori, jonka vain oikea vastaanottaja voi avata.
Lyhenne TLS tarkoittaa Transport Layer Security. Termi viittaa TCP/IP-mallin siirtokerrokseen. TLS on menetelmä, joka salaa internetin datavirrat, jolloin vain valtuutetut vastaanottajat voivat lukea niitä.
Salausprotokollan aiempi nimi oli SSL (Secure Socket Layer). Koska tämä lyhenne on edelleen tunnetumpi kuin TLS, TLS:ää kutsutaan usein kaksoisnimenä ”SSL/TLS”.
Miten TLS toimii?
TLS salaa internetin kautta lähetetyt tiedot, ja se toteutetaan yleensä TCP-protokollan päälle symmetrisen salauksen avulla.
Se, mikä kuulostaa yksinkertaiselta teoriassa, on käytännössä monimutkaisempaa. Perusongelmana on se, että palvelimen on välitettävä avain asiakkaalle –ennen kuin yhteys on suojattu TLS:llä. Jokainen, joka lähettää salattuja sähköpostiliitteitä, tuntee tämän ongelman: salaat tiedoston ja joudut kertomaan salaisen salasanan vastaanottajalle, esimerkiksi puhelimitse.
TLS-protokolla, jonka nykyinen standardi on ollut versio 1.3 vuodesta 2018 lähtien, ratkaisee tämän ongelman seuraavalla menettelyllä:
- ClientHello: Asiakas (esim. selain) lähettää palvelimelle aloitusviestin, joka sisältää tietoja tuetuista salausmenetelmistä. Tähän sisältyvät salausmenetelmäjoukot, protokollaversiot, satunnaisluku sekä asiakkaan oma elliptisen käyrän Diffie-Hellman-avaimenvaihtaarvo (ECDHE-arvo). Valinnaisesti voidaan jo lähettää ensimmäinen salattu datalohko.
- ServerHello: Palvelin valitsee sopivat parametrit ja lähettää vastauksensa, joka sisältää sen ECDHE-arvon ja digitaalisen varmenteen. Tämä SSL-varmenne todistaa, että palvelin on aito eikä esiinny jonkun muun nimissä. Samalla istunnon avaimen laskeminen alkaa.
- Avaimen laskeminen: Molemmat osapuolet laskevat nyt itsenäisesti saman istuntoavaimen yhteisesti sovitun avaimen perusteella.
- Palvelin viimeistelee kädenpuristuksen ja aloittaa salatun viestinnän. Asiakas tekee samoin; yhteys on nyt täysin suojattu.
Aikaisempiin versioihin verrattuna TLS 1.3:n TLS-kättely on huomattavasti kevyempi ja turvallisempi. Tässä kuvattu koko prosessi vaatii nyt vain yhden edestakaisen viestinvaihdon (1 RTT), mikä nopeuttaa yhteyden muodostamista huomattavasti.
Syy siihen, miksi Diffie-Hellman-menetelmään perustuvaa epäsymmetristä salausta käytetään vain istunnon avaimen siirtämiseen (eikä itse datavirtojen salaamiseen), on nopeusetu; epäsymmetrinen salaus on suhteellisen hidasta ja hidastaisi tiedonsiirtoa.
TLS:n edut ja haitat
TLS on tyylikäs ratkaisu verkkoliikenteen turvallisuuden parantamiseen. Sen avulla osapuolten ei tarvitse itse salata sisältöä, kuten lomaketietoja. Sen sijaan riittää, että liikenne reititetään TLS-protokollan kautta, riippumatta osapuolten käyttöjärjestelmistä ja ohjelmistosovelluksista. Tällöin kaikki datavirrat salataan automaattisesti siirron aikana.
Turvallisuuden hinta on hieman hitaampi yhteyden muodostus, koska edellä mainitut vaiheet – varmenne, satunnaisluku ja avainten vaihto – vaativat paljon laskentatehoa.
TLS:n käyttötarkoitukset
Kuten mainittiin, TLS:ää voidaan käyttää yleisesti, koska se on sovelluksista ja käyttöjärjestelmistä riippumaton. Näin ollen useille sovellusprotokollille on olemassa TLS-suojattu versio. Nimeämiskäytäntö on useimmissa tapauksissa varsin yksinkertainen: protokollan nimeen lisätään kirjain ”S”, kun protokolla käyttää TLS:ää tiedonsiirrossa.
TLS:n tärkein käyttöalue on Internet, tarkemmin sanottuna HTTP-protokolla. Sen salattu versio tunnetaan nimellä HTTPS.
Näiden lisäksi on syytä mainita seuraavat yleiset käyttötapaukset:
- POP3S: Hae sähköpostit palvelimelta POP3-protokollan avulla
- IMAPS: Synkronoi postilaatikko palvelimen kanssa IMAP-protokollan avulla
- SMTPS: Lähetä sähköpostiviestejä
- FTPS: Tiedostojen siirto FTP-protokollan kautta
- SIPS: Voice-over-IP-puhelinliikenne SIP-protokollan kautta
- IRCS: Salatut chat-keskustelut
- QUIC: Googlen siirtoprotokolla, joka integroi suoraan TLS 1.3:n; vaihtoehto TCP:lle nopeampia ja turvallisempia verkkoyhteyksiä varten (esim. HTTP/3:n kanssa)
OpenVPN, ilmainen ohjelmisto virtuaalisen yksityisverkon (VPN) muodostamiseen, käyttää myös TLS-protokollaa.
Tärkeimmät TLS-toteutukset
TLS:n yleisimpiä toteutuksia ovat muun muassa:
- OpenSSL – ylivoimaisesti yleisin toteutus, jota suurin osa HTTPS-verkkosivustoista käyttää
- GnuTLS (Free Software Foundation)
- LibreSSL (OpenBSD)
- NSS (Network Security Services)
- BoringSSL (Google)
- Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas ja avoimen lähdekoodin yhteisö)
- Botan (BSD-lisenssi, Jack Lloyd)
- JSSE (Java Secure Socket Extension, Oracle)
- S2n (Amazon)
Tämä luettelo ei ole tyhjentävä. Yksityiskohtaista tietoa TLS-toteutuksista löytyy Wikipediasta.
Tunnettuja TLS-hyökkäyksiä
Vaikka TLS on suunniteltu turvallista viestintää varten, siinä on silti tunnettuja heikkouksia. Näitä ovat muun muassa:
- Ohjelmointivirheet: Heartbleed-bugista tuli tunnettu vakava ohjelmointivirhe OpenSSL:n aikaisemmissa versioissa. Se korjattiin vuonna 2014.
- Heikot salaukset: Yhdysvaltojen salaustekniikan vientirajoitusten seurauksena kehitettiin ”vientiluokan” versioita, jotka olivat helpompia murtaa kuin alkuperäiset.
- Paketointihyökkäykset: Kun TLS-paketointia käytetään HTTP-paketointia sijaan, hakkerit voivat arvata TLS-salatun sisällön tietyillä menetelmillä.
- BEAST-hyökkäys koski TLS-versiota 1.0, ja siitä kerrottiin jo vuonna 2014. Nykyiset TLS-versiot ovat suojattuja sitä vastaan.
- Padding Oracle -hyökkäys löydettiin vuonna 2002, ja se oli mahdollinen SSL-versioon 3.0 asti. Nykyinen TLS-versio 1.3 ei ole alttiina sille.
- Vuoden 2021 ALPACA-hyökkäys osoittaa, kuinka väärin konfiguroitujen palvelimien TLS-varmenteita voidaan hyödyntää käyttäjien ohjaamiseksi muihin palveluihin sekä tietojen sieppaamiseksi tai manipuloimiseksi.
On myös pyritty estämään täysin turvallinen TLS-salaus, jotta viranomaiset voisivat päästä käsiksi salattuun viestintään – esimerkiksi rahoitustapahtumien ja rikollisen toiminnan yhteydessä. Yksi organisaatioista, joka kannatti tällaista TLS:n ”tarkoituksellista haavoittuvuutta”, oli ETSI (Euroopan televiestintästandardointilaitos).