Mikä on SSL/TLS-kättely?
S SSL/TLS-kättely on kahden verkon osapuolen – kuten selaimen ja verkkopalvelimen – välinen neuvottelu yhteyden yksityiskohtien määrittämiseksi. Siinä määritetään, mitä SSL/TLS-versiota istunnossa käytetään, mikä salakirjoitussarja salaa viestinnän, varmennetaan palvelin (ja joskus myös asiakas) ja vahvistetaan, että suojattu yhteys on olemassa, ennen kuin tietoja siirretään.
Tämä kaikki tapahtuu onneksi taustalla – joka kerta, kun ohjaat selaimesi suojatulle sivustolle, tapahtuu monimutkainen vuorovaikutus, jolla varmistetaan, että tietosi ovat turvassa.
Tässä on yksinkertainen versio. Saatat huomata, että mikä tahansa tusina kuvauksia noudattaa enemmän tai vähemmän tätä muotoa, mutta eroaa yksityiskohdiltaan tusinoittain eri tavoin – joskus hämmentävästi. Heitetäänpä taulukko, joka näyttää laajan mallin siitä, miten TLS-kättely toimii, sopiiko?
TILAA NYT
Pakollinen SSL/TLS-kättelykaavio
Kaikilla SSL:ään/TLS:ään liittyvillä sivustoilla on oma versionsa kättelykaaviosta – tässä on meidän! (Click to enbiggen.)
Koska selvitetään hieman sekaannusta, jos pystymme
Joitakin sekaannuksia SSL/TLS-kättelyjen toiminnasta aiheutuu siitä, että kättely on vain alkusoittoa varsinaiselle suojatulle istunnolle. Yritetään käsitellä joitakin yleisiä kohtia:
Asymmetrinen vs. symmetrinen salaus
Käsittelyssä itsessään käytetään epäsymmetristä salausta – käytetään kahta erillistä avainta, yhtä julkista ja yhtä yksityistä. Koska epäsymmetrisillä salausjärjestelmillä on paljon suurempi yleiskustannus, niitä ei voida käyttää tarjoamaan täysipäiväistä, todellista turvallisuutta. Näin ollen julkista avainta käytetään salaukseen ja yksityistä avainta salauksen purkamiseen vain kättelyn aikana, jolloin osapuolet voivat luottamuksellisesti luoda ja vaihtaa vasta luodun ”jaetun avaimen”. Itse istunto käyttää tätä yhtä jaettua avainta symmetrisen salauksen suorittamiseen, ja tämä tekee suojatusta yhteydestä käytännössä toteutettavissa olevan (yleiskustannukset ovat huomattavasti pienemmät). Täydellinen ja oikea vastaus kysymykseen ”Onko SSL/TLS-salaus epäsymmetrinen vai symmetrinen?” on siis: ”Ensin toinen, sitten toinen.”
Mikä on ”salakirjoitussarja”?
Itse kättelyssä on useita vaiheita, joita kutakin hallitaan eri sääntöjen mukaan. Yksityiskohdat löytyvät täältä, mutta ydin on se, että erillisten edestakaisten neuvottelujen sijaan (siitä, mitä avaimia käytetään, miten itse kädenpurku salataan, miten kädenpurku todennetaan ja niin edelleen) osapuolet voivat sopia käyttävänsä ”salakirjoitussarjaa” – valmiiksi olemassa olevaa valikoimaa tai pakettia sovituista komponenteista. (Muista, että epäsymmetrinen salaus on aikaa ja resursseja vievää – salauspaketin käyttäminen oikotienä nopeuttaa itse kättelyä). TLS-määrittelyt sallivat melkoisen määrän salakirjoitussarjoja, ja asiakkaalla ja palvelimella on lähes aina käytössään sellainen, jota molemmat voivat käyttää.
Basic vs. mutual-authenticated handshake
Toinen hämmentävä seikka on se, että edellä kuvaamassamme perusmallissa asiakas voi varmentaa palvelimen, ja suurin osa TLS:llä suojatuista istunnoista vaatii vain tätä. Jotkin salakirjoitussarjat edellyttävät kuitenkin, että asiakas lähettää myös varmenteen ja julkisen avaimen molempien osapuolten keskinäistä todentamista varten. Tämä molemminpuolinen todennus lisää tietysti kättelyyn ylimääräistä työmäärää – joissakin tapauksissa (esimerkiksi kun kaksi pankkia neuvottelee suojatusta yhteydestä varainsiirtoja varten) salakirjoitussarja kuitenkin vaatii sitä, ja lisäsuojaus katsotaan sen arvoiseksi.
Erilaisilla istunnoilla on erilaiset suojausparametrit
Jokainen uusi kättely luo uuden istunnon, ja asetukset, joita käytetään yhdessä istunnossa, voivat poiketa toisesta istunnosta rajusti valitusta salakirjoitussarjasta riippuen. Tämä on yksi syy siihen, miksi tuosta pirun kättelykaaviosta on olemassa niin monta erilaista iteraatiota, ja miksi annamme tässä melko laajan yleiskatsauksen. Tiedä myös, että istunnot voivat asettaa parametreja, jotka eivät ehkä ole aivan sitä, mitä odotat. Salauspaketin mukaan joitakin vaiheita voidaan lisätä (kuten vaatimus kaksisuuntaisesta todennuksesta) tai jättää pois. Itse asiassa on salakirjoitussarjoja, jotka neuvottelevat istunnon niin, ettei siinä käytetä lainkaan salausta. (Tiedämme, että HTTPS-yhteys portin 443 kautta, joka päättää lähettää tiedot salassa, ei myöskään ole mielestämme järkevää. SSL.com suosittelee painokkaasti, ettet tee näin – ole vain tietoinen siitä, että se on mahdollista.)