SSL:n - selainsalauksen - riskit

Tämä sivu käsittelee selainpohjaisen salauksen (SSL/TLS/https) riskejä - tätä tekniikkaa käytetään salattaessa yhteys web palvelimeen (tyypillisesti selain näyttää lukon osoitekentässä yrittäen näin vakuuttaa käyttäjän yhteyden turvallisuudesta). Tämän sivun tulisi kiinnostaa tahoja, joille markkinoidaan sähköpostin salausratkaisuja, jotka perustuvat selaimiin ja jotka eivät siten tarvitse mitään ohjelmien asennusta käyttäjän koneeseen.

Maaliskuussa 2017 Wikileaks julkaisi vuotoja koskien CIA:n hakkerointiaineistoa. Eräissä näistä dokumenteista on ohjeita CIA:n omille viruskirjoittajille: 'DO NOT solely rely on SSL/TLS to secure data in transit. Numerous man-in-middle attack vectors ... ' eli 'Älä luota yksinomaan SSL/TLS 'ään turvataksesi liikkuvaa tietoa. Lukuisia man-in-middle hyökkäystekniikoita ja julkistettuja vikoja protokollassa.' ja 'Koska tämä uloin kerros voidaan avata hyökkääjän toimesta (esim. man-in-the-middle tekniikalla), jokainen tällainen salaus tulee tehdä vain tiedon sulauttamiseksi eikä sen turvaamiseksi' - CIA:n mukaan SSL/TLS/https kelpaa siis vain siihen, että se saa tiedon näyttämään tavanomaiselta internet liikenteeltä.

Aikaisemmin marraskuussa 2011 Wall Street Journal julkaisi ‘Surveillance Catalog’ -luettelon ja Wikileaks julkaisi listan kansainvälisistä tiedustelurityksistä ja heidän laitteistaan ‘WikiLeaks Spy Files’ -julkaisussa. Ohessa joitakin esimerkkejä esitteistä, joissa kuvataan laitteiden ominaisuuksia: "Laite voi myös purkaa SSL salauksen, jos se on asennettu 'man-in-the-middle' konfiguraatioon ...'; "Tarkkaile epäillyn salattua viestintää Gmailiin, Hush mailiin jne., tarkkaile epäillyn pankkisiirtoja jne." "Sieppaa mikä tahansa liikenne, joka käyttää SSL'ää tai TLS'ää. Kun asennettu, laitteet voivat mennä liikenteen väliin mihin tahansa SSL tai TLS yhteyteen ... käyttäjät ovat tuudittautuneet väärään turvallisuuden tunteeseen, jota tarjoavat selaimen. sähköpostin tai VoIP salaukset";. "Mutta 'man-in-the-middle' tekniikalla voidaan siepata liikenne ja aito varmenne ja korvata se väärällä varmenteella ja saada tietokone luulemaan, että liikenne sujuu normaalisti".

Kuinka tämä on mahdollista?

Kun selain ottaa yhteyden HTTPS - SSL tai TLS palvelimeen, lähettää palvelin selaimelle varmenteen, joka todistaa käyttäjälle, että hän todella on yhteydessä haluttuun palvelimeen. Miten varmenne voi tehdä tämän? Palvelimen omistaja on - ennenkuin on aloittanut toimintansa - ottanyt yhteyttä Varmentajaan (Certificate Authority), ja todistanut tälle, että hän omistaa ja hallitsee palvelinta. Palvelimen omistaja on lähettänyt Varmentajalle palvelimen julkisen avaimen ja Varmentaja on allekirjoittanut tämän omalla avaimellaan.

Kaikissa tietokoneissa, jotka käyttävät SSL/TLS'ää, on varasto, jossa on eri julkisten Varmentajien julkiset avaimet. Nämä julkiset avaimet ovat varmenteissa, joita kutsutaan juurivarmenteiksi. Kun palvelimelta tuleva varmenne tarkastetaan, sen aitous rippuu viime kädessä tästä juurivarmenteesta - tulee olla oikea digitaalinen allekirjoitusketju juurivarmenteesta palvelimelta tulevaan varmenteeseen.

Nyt jokainen, joka tietää juurivarmenteen julkisen avaimen yksityisen avaimen, voi esiintyä minä tahansa web palvelimena, purkaa niiden salauksen ja muuttaa liikenteen sisältöä käyttäen 'man-in-the-middle' tekniikkaa - tämä selitetään myöhemmin. Siis, varmenteiden infastruktuurista johtuen jokainen julkisesti hyväksytty Varmentaja voi - jos se kääntyy 'ilkeäksi' - tehdä tämän jokaiselle SSL/TLS'ää käyttävälle tietokoneelle. Varmentaja yksinkertaisesti myöntää varmenteen palvelimelle ja antaa käytetyn julkisen avaimen yksityisen avaimen hyökkääjälle - joka voi nyt voi avata ja muuttaa tähän yksittäiseen palvelimeen kohdistuvan liikenteen. Ilkeäksi muuttunut Varmentaja voi myös antaa juurivarmenteen yksityisen avaimen hyökkääjälle - joka voi nyt hyökätä jokaista SSL/TLS palvelinta vastaan myöntämällä itse tarvittaessa varmenteen uhriksi valitulle palvelimelle.

Voidaan argumentoida, että jos suojattava tieto on riittävän sensitiivistä, on liian iso riski siihen, että jokin noin 600 julkisesta Varmentajasta kääntyy 'ilkeäksi' tai pakotetaan jonkin hallituksen toimesta siihen tai sillä on lahjottu työntekijä tai se joutuu hakkeroiduksi. On huomattava, että viime vuosina on kehitetty ns. 'Certificate Transparency' projekti, joka koittaa minimoida tämän kaltaisia mahdollisuuksia - tästä myöhemmin.

Varmentaja Trustwave myönsi helmikuun 4 päivä 2012, että he olivat antaneet yhdelle yksityiselle asiakkaalle juurivarmenteen yksityisine avaimineen erillisen laitteen sisällä ('man-in-the-middle' laite), joka generoi tarvittaessa varmenteen halutulle palvelimelle. Tämä tehtiin, jotta voitaisiin avata ja tarkkailla kaikkea yrityksen SSL/TLS liikennettä, katso https://www.theregister.co.uk/2012/02/14/trustwave_analysis/ .

Nyt siis jokainen tietokoneen varmennevarastossa oleva varmenne tekee tyhjäksi tälle tietokoneelle tapahtuvan SSL/TLS liikenteen, jos varmenteen yksityinen avain joutuu vääriin käsiin.

Hyökkääjä voi asettaa oman varmenteensa tähän varastoon esim. pakottamalla käyttäjän asentamaan sen, tai 'ilkeä' kotiapulainen (ns. evil maid hyökkäys), ilkeä tullivirkailija tai tietokonevirus voi tehdä sen. Jotkut antivirus tai lasten tietokoneen käyttöä valvovat ohjelmat asentavat omat juurivarmenteensa tähän varastoon voidakseen avata ja tarkastaa SSL/TLS liikenteen. On ollut tilanteita, joissa tällaisen juurivarmenteen yksityinen avain on ollut kaikille ko. ohjelman käyttäjille sama - tällöin käyttäjä etsii omasta tietokoneestaan tuon yksityisen avaimen ja voi sen avulla avata kaikkien muiden ko. ohjelman käyttäjien liikenteen.

Tutkijat julkaisivat artikkelin varmennevarastoon sijoitettujen ei-julkisten Varmentajien myöntämien varmenteiden aiheuttamista ongelmista artikkelissa "Rusted Anchors: A National Client-Side View of Hidden Root CAs in the Web PKI Ecosystem. In CCS ’21, November 15–19, 2021, Virtual Event, Republic of Korea". He löysivät 5 kk aikana yli 1.7 miljoonaa tällaista varmennta ja noin 5000 organisaatiota, jotka myöntävät näitä. Joukossa on organisatioita, jotka julkaisevat varmenteita, joilla yritetään omia tunnetutun julkisen varmentajan identiteetti.

Tekniikka, jossa virus asentaa varmenteen varmennevarastoon mainitaan Hacking Team yritykseltä vuodetuissa materiaaleissa. Tuo yritys myy vakoiluohjelmia hallituksille ja lain täytäntööpanoviranomaisille. Tällaiset tahot pystyvät helposti määräämään internet palvelujen tarjoajat asentamaan vaadittavat laitteet liikenteen avaamiseksi. On huomattava, että myös erilaiset wifi pisteet ja internet kahvilat voivat avata käyttäjän liikenteen, jos niillä on tarvittava yksityinen avain (tai niillä on laite, jossa vaadittava yksityinen avain on).

Heinäkuussa 2019 Kazakhstan alkoi toteuttaa politiikkaa, jossa osaa internetin käyttäjistä pakotettiin asentamaan hallituksen toimittama varmenne tietokoneisiinsa, kun he selaimen avulla menivät tietyille salatun yhteyden vaativille websivuille. Asiasta julkaistun raportin (https://censoredplanet.org/kazakhstan) mukaan salaus purettiin mm. seuraavilta kohteilta: Gmail, Google, Facebook, Messenger, mail.ru, translate.google.com, Instagram ja Youtube.

Voi olla myös hyvin vaarallista käyttää tuntemattoman tietokoneen selainta ottamaan yhteyttä web palvelimeen - tuossa koneessa voi olla hyökkääjän asentama juurivarmenne ja kone voi helposti ohjata liikenteen man-in-the-middle laitteeseen.

On olemassa hyökkäys, joka käyttää internetin DNS järjestelmää: hyökkääjä onnistuu muuttamaan joidenkin internetin DNS palvelinten tietueita. Tämän jälkeen hyökkääjä pyytää joltain Varmentajalta uusia varmenteita hyökkäyksen kohteena olevalle palvelimelle. Tämän jälkeen se voi matkia tätä palvelinta käyttäjälle. Tällainen hyökkäys paljastui marraskuussa 2018, se kohdistui 50 Lähi-idässä olevaan yritykseen ja hallitusten virastoihin. Lisätietoa saa haulla 'DNSpionage' ja Brian Krebsin selonteosta osoitteesta https://krebsonsecurity.com/2019/02/a-deep-dive-on-the-recent-widespread-dns-hijacking-attacks/

Mielenkiintoinen on myös tilanne, jossa palvelimen yksityinen avain on paljastunut. Yksityinen avain voidaan hakkeroida, vuotaa ilkeän työntekijän toimesta tai se voidaan vaatia luovuttamaan viranomaisille. Jos palvelimen SSL/TLS liikennettä ei ole määritelty käyttämään ns. 'Perfect Forward Secrecy (PFS)' asetuksia voidaan yksityisen avaimen avulla avata aikaisemmat nauhoitetut yhteydet. Jos PSF on määritelty, vaaditaan man-in-the-middle tekniikka yhteyden aikana, jotta salaus saadaan avattua - se onnistuu, koska palvelimen yksityinen avain on tiedossa. Tämä ei vaadi mitään ylimääräisiä varmenteita uhrin koneessa.

U.S.A 'n hallitus vaati salatun sähköpostin tarjoaja Lavabit -yritystä luovuttamaan palvelimen SSL/TLS varmenteen yksityisen avaimen todennäköisesti kerätäkseen todisteita Edward Snowdenia vastaan, katso https://www.wired.com/2013/10/lavabit_unsealed/ .

Suositussa OpenSSL ohjelmassa havaittiin Heartbleed haavoittuvuus huhtikuussa 2014, se paljasti palvelimen muistin hyökkääjälle. Virhe oli koodissa 2 vuotta, mutta myös vanhemmat nauhoitetut SSL yhteydet (ilman PSF'ää) saadaan avattua muistista haetun yksityisen avaimen avulla. "Hyökkäsimme itseämme vastaan ulkopuolelta jättämättä jälkiä. Käyttämättä mitään ylimääräisiä oikeuksia pystyimme varastamaan itsellemme salatut avaimet, joita käytettiin X.509 varmenteissamme, käyttäjien nimiä ja salasanoja, pikaviestejä, sähköposteja ja liiketoiminalle kriitisiä dokumentteja ja viestintää."

Tammikuun 14, 2020 Microsoft ilmoitti, että kriittinen haavoittuvuus on havaittu varmenteiden tarkastusohjelmassa. Havainnosta Microsoftille ilmoitti NSA, katso https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/CSA-WINDOWS-10-CRYPT-LIB-20190114.PDF. NSA:n mukaan "esimerkkejä missä vaikutukset voivat ilmetä: HTTPS yhteydet, allekirjoitetut tiedostot ja sähköpostit ja allekirjoitettu käyttäjän koodi. NSA arvio haavoittuvuuden olevan vakavan ja että kehittyneet kybertoimijat ymmärtävät allaolevan vian hyvin nopeasti ja että jos haavoittuvuutta hyväksikäytetään, tulevat edellämainitut osa-alueet olemaan perustavanlaatuisesti haavoittuvia.". Tämä tarkoittaa, että hyökkääjä, joka käyttää tätä vikaa, voi aloittaa 'man-in-the-middle' hyökkäyksen ilman tietoa yksityisistä avaimista. USA:n Cert koordinaattori (https://kb.cert.org/vuls/id/849224/) sanoo "Hyväksikäyttämällä tätä haavoittuvuutta hyökkääjä saattaa voida onnistua huijaamalla luomaan oikealta näyttävän allekirjoitusketjun haavoittuvassa Windows järjestelmässä. Tämä saattaa mahdollistaa erilaisia jatkotoimia sisältäen, muttei rajoittuen TLS-salatun liikenteen sieppaamiseen (avaamiseen, suom. huom.) ja muuttamiseen ja huijattujen Authenticode allekirjoitusten luomiseen.". Haavoittuvien versioiden joukossa on Windows 10, joka julkaistiin heinäkuun 29 päivä 2015.

Muistatko vielä mitä vuodetuissa CIA'n papereissa sanottiin: 'Älä luota yksinomaan SSL/TLS'ään turvataksesi liikkuvaa tietoa. Lukuisia man-in-middle hyökkäystekniikoita ja julkistettuja vikoja protokollassa.'

Kuinka 'man-in-the-middle' (MITM) tekniikka toimii? Tämä hyökkäys voidaan tehdä käyttäjän tietokoneen ja palvelimen välillä sellaisen hyökkääjän toimesta, joka tietää sopivan yksityisen avaimen (joko juurivarmenteen tai palvelimen). Kun käyttäjä aloittaa yhteyden palvelimeen hyökkääjä esiintyy palvelimena. Palvelimelle taas hyökkääjä esiintyy käyttäjänä.

MITM hyökkäys: Käyttäjä  ↔  Hyökkääjä ↔  Palvelin.

Useat yritykset käyttävät erityisiä laitteita avaamaan oman SSL/TLS liikenteensä. Tämän mahdollistamiseksi yritys asentaa käyttäjien tietokoneiden varmennevarastoihin oman juurivarmenteensa. Nyt esim. tietynlaiset palomuurilaitteet voivat avata ja taas uudestaan salata käyttäjille menevän liikenteen. Tarkoituksena on esim. etsiä viruksia tietovirrasta. Citizen Lab'in raportissa "Planet Blue Coat: Mapping Global Censorship and Surveillance Tools, January 2013" (from https://citizenlab.ca/publications/) kuvataan kuinka tällaisia laitteita käyttävät myös valtiot, joilla on historiaa ihmisoikeuksien loukkaamisessa.

MITM hyökkäystä voidaan käyttää SSL/TLS pohjaisiin sähköposti ja webmail -ratkaisuihin. On myös olemassa VPN ratkaisuja, jotka käyttävät selainta. Selainpohjaiset salausratkaisut yleensä käyttävät markkinointiargumentteina sitä, ettei käyttäjän tarvitse asentaa mitään muita ohjelmia tietokoneeseensa - vain selain riittää.

Joskus selainpohjaiset sähköpostin salausratkaisut tekevät selaimessa javascriptillä viestin salauksen (esim. PGP). Tämä ei tuo suojaa MITM hyökkäystä vastaan - hyökkääjä muuttaa javascript koodia ennenkuin lähettää sen uhrille esim. niin, että käytetyn salausmenetelmän salausavain välitetään hyökkääjälle (esim. PGP:n yksityinen avain).

EndCryptor käyttää TLS'ää ottaessaan yhteyttä käyttäjän sähköpostipalvelimeen, sähköpostipalvelimet edellyttävät sitä. EndCryptor salaa viestin ennenkuin palvelimeen muodostetaan yhteys - onnistunutkaan MITM hyökkäys ei voi paljastaa viestin sisältöä. EndCryptorin kyseessä ollen hyökkääjä voi saada vain sähköpostin käyttäjätunnuksen ja salasanan haltuunsa. EndCryptor myös tallettaa kaikki saamansa varmenteet, ne voidaan myöhemmin analysoida, jos epäillään hyökkäystä. EndCryptor voidaan konfiguroida niin, että se hyväksyy palvelimelta vain tietyn varmenteen, tämä estää väärien varmenteiden käytön. Tämä on tunnettu tekniikka ja siitä käytetään nimitystä 'certificate pinning'.

Googlen kehittämä Certificate Transparency project (https://www.certificate-transparency.org/) yrittää parantaa varmenteiden infrastruktuuria. Tässä projektissa yritetään tallettaa kaikki maailmassa julkisten Varmentajien toimesta myönnetyt varmenteet, jotta havaittaisiin tietylle palvelimelle myönnetyt vihamieliset varmenteet. Suurimmat julkiset Varmentajat ovat siinä mukana ja myös hakukoneet voivat lähettää havaitsemiaan varmenteita projektille. Huhtikuun 30, 2018 jälkeen myönnettyjä varmenteita ei enää hyväksytä Chrome selaimessa ellei niiden mukana ole projektin vaatimaa lisäosaa (Signed Certificate Timestamp eli SCT), joka todistaa, että varmenne on toimitettu projektille. Google: "Erityisesti Certificate Transparency mahdollistaa SSL sellaisten varmenteiden havaitsemisen, joita on virheellisesti myönnetty Varmentajien toimesta tai pahantahtoisesti saatu moitteettomilta Varmentajilta. Se myös mahdollistaa sellaisten Varmentajien tunnistamisen, jotka ovat alkaneet toimia vilpillisesti ja myöntävät pahantoisia varmenteita.".

Jos julkisesti hyväksytty Varmentaja myöntää varmenteen palvelimelle, se tulee tallettaa läpinäkyviin logeihin. Domainin (palvelimen) omistaja voi tehdä kyselyjä logeihin ja tarkastaa, että palvelimelle on myönnetty vain hänen haluamansa varmenteet. Väärää varmennetta voidaan käyttää MITM hyökkäyksissä kunnes se havaitaan ja kumotaan ja käyttäjät saavat tiedon kumoamisesta. Tällaisesta järjestelmästä voidaan tehdä johtopäätös, että on täytynyt tapahtua vakavia väärinkäytöksiä, koska tarvitaan näin iso systeemi.

Projekti sanoo https://www.certificate-transparency.org/benefits: "Todella, välikohtauksia, joita aikaisemmin on peitelty ja vähätelty ja jotka itse asiassa aiheuttivat kokonaisen Varmentajan sulkemisen, voidaan paljastaa paljon aikaisemmin ja korjata yksinkertaisesti kumoamalla yksittäinen varmenne.".

Certificate Transparency järjestelmään lisäämistä ei tehdä paikallisille ei-julkisen Varmentajan myöntämille varmenteille ja jotka on lisätty käyttäjän varmennevarastoon käyttäjän tai jonkin ohjelman kuten antivirus, palomuuri, virus jne. toimesta. Selain, joka ei hyväksy julkisen Varmentajan varmennetta puuttuvan SCT osan vuoksi, hyväksyy varmenteen, jos se ei ole julkisen Varmentajan myöntämä. Selain olettaa tällöin, että varmennetta käytetään paikallisesti tai esim. SSL/TLS liikenteen avaamisen virustarkastuksen vuoksi.

Salausratkaisut, jotka käyttävät SSL/TLS'ää ilman selainta, eivät välttämättä noudata selainten käytäntöä ja vaadi CT lisäosaa.