# 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ä.

Huomio 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ä:

1. **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](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman "Wikipedia article on Elliptic Curve Diffie-Hellman") (ECDHE-arvo). Valinnaisesti voidaan jo lähettää ensimmäinen salattu datalohko.
2. **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.
3. **Avaimen laskeminen**: Molemmat osapuolet laskevat nyt itsenäisesti saman istuntoavaimen yhteisesti sovitun avaimen perusteella.
4. Palvelin viimeistelee kädenpuristuksen ja aloittaa salatun viestinnän. Asiakas tekee samoin; yhteys on nyt täysin suojattu.

Huomio 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](https://en.wikipedia.org/wiki/Comparison_of_TLS_implementations "Wikipedia: Comparison of TLS Implementations").

## 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).


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/palvelin/turvallisuus/tls-transport-layer-security/](https://www.ionos.com/fi-fi/digitalguide/palvelin/turvallisuus/tls-transport-layer-security/) for AI/LLM consumption.