Mikä on TLS?
TLS (Transport Layer Security) mahdollistaa salatun kommunikaation Internetissä. Se suojaa miljardien ihmisten päivittäisiä toimia verkossa, kuten verkkopankkitoimintaa, sähköpostien lähetystä ja sosiaalisen median käyttöä.
TLS on siis protokolla, jonka tarkoitus on mahdollistaa tiedon turvallinen lähettäminen verkon yli. Protokollan tarkkaan määrittelyyn voi halutessaan tutustua tästä.
Mikä ero on SSL ja TLS välillä?
SSL (Secure Sockets Layer) ja TLS (Transport Layer Security) ovat sinänsä sama asia. Alunperin Netscapen kehittämä SSL muutti jossain vaiheessa nimensä TLS:ksi, jonka jälkeen uusia SSL versioita alettiin kutsua TLS:ksi. SSLv3 jälkeen ei tullut SSLv3.1 eikä SSLv4 vaan TLSv1. SSLv3 oli viimeinen prokollan versio jota kutsuttiin SSL:ksi.
Tarkempi historiallinen syy oli, että kun SSL:n kolmannen version turvallisuuspuutteet tulivat ilmi, IETF otti ohjat ja julkaisi TLS 1.0:n vuonna 1999, joka oli käytännössä SSL 3.1. Siitä lähtien TLS on kehittynyt, ja nykyään käytössä on TLS 1.3, joka tarjoaa parannettua turvallisuutta ja tehokkuutta.
TLS:n toimintaperiaate
Protokollan toiminta voidaan jakaa neljään keskeiseen vaiheeseen:
Alkukättely (Handshake): Tässä vaiheessa esimerkiksi selain ja palvelin vaihtavat tervehdykset ja sopivat käytettävästä salausalgoritmista, avaimista ja muista turvallisuusparametreista.
Sertifikaattien vaihto ja varmennus: Palvelin lähettää TLS-sertifikaattinsa, joka sisältää palvelimen julkisen avaimen ja on allekirjoitettu luotettavan sertifikaattiautoriteetin (CA) toimesta. Selain tarkistaa sertifikaatin aitouden.
Salauksen neuvottelu: Osapuolet sopivat symmetrisestä salausavaimesta, jota käytetään session aikana.
Datan siirto: Kaikki lähetettävä ja vastaanotettava data salataan sovitulla avaimella ja siirretään turvallisesti.
Protokollassa yhdistellään aika paljon asioita, joita ollaan opittu aiemmin tällä kurssilla, kuten asymmetrinen salaus, symmetrinen salaus, kryptografiset tiivisteet ja digitaaliset allekirjoitukset.
Pureudutaan nähin syvemmin pian, mutta ensin meidän pitää käydä läpi tärkeä asia eli varmenteet.
TLS-kättely
TLS-yhteys alkaa kättelyllä. Tässä on kättelyn flow tiivistetysti.
- ClientHello: Asiakas lähettää viestin, joka sisältää tuetut salausprotokollat, salausmenetelmät ja satunnaisen luvun.
- ServerHello: Palvelin valitsee protokollan ja salausmenetelmän asiakkaan ehdotuksista ja lähettää omat valintansa takaisin asiakkaalle yhdessä satunnaisen luvun kanssa.
- Server Certificate: Palvelin lähettää asiakkaalle digitaalisen sertifikaatin, joka sisältää palvelimen julkisen avaimen ja autentikoi palvelimen.
- ServerKeyExchange (valinnainen): Tätä viestiä käytetään, jos valittu salausmenetelmä vaatii lisätietoja avaimenvaihtoon.
- ServerHelloDone: Ilmoittaa, että palvelin on lopettanut "Hello"-vaiheen viestit ja odottaa asiakkaan vastausta.
- ClientKeyExchange: Asiakas luo "pre-master secret" ja salaa sen palvelimen julkisella avaimella, lähettäen tiedon palvelimelle.
- CertificateVerify (valinnainen): Jos asiakas lähetti oman sertifikaattinsa, se lähettää nyt allekirjoituksen, joka varmentaa sertifikaatin.
- [ChangeCipherSpec]: Sekä asiakas että palvelin lähettävät tämän viestin toisilleen ilmoittaakseen, että seuraavat viestit on salattu sovitulla salausmenetelmällä.
- Finished: Molemmat osapuolet lähettävät toisilleen viestin, joka varmistaa kättelyvaiheen onnistumisen ja että salaus on nyt käytössä.
TLS-kättely varmistaa, että asiakas ja palvelin ovat sopineet yhteisistä salausparametreista turvallisesti, ilman että ulkopuoliset voivat urkkia tai muokata vaihdettua tietoa. Kättelyn lopuksi muodostettu salattu yhteys takaa datan eheyden, luottamuksellisuuden ja autentikoinnin koko kommunikaation ajan.
Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.
Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.