Näytetään tekstit, joissa on tunniste varmenne. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste varmenne. Näytä kaikki tekstit

lauantai 10. huhtikuuta 2021

Miksi selaimet sallivat varmenteilla hämäämisen?

Viime viikolla tuli huijaus osoitteella Nordeatarkistaa.com, jossa oli aidon näköinen sivusto. 

Aidon näköinen huijaussivusto.

Sivu on SSL-suojattu, joten osoitteen edessä näkyy lukon kuva. Aiemmin se kertoi, että osoite on tarkistettu ja oikeaksi havaittu, mutta nykyään SSL-varmenteita (sellaisia, joiden juurivarmenne on selaimessa sisäänrakennettuna) saa helposti ja mille nimelle tahansa (varsinkin Let's encryptiltä). Lukko ei siis enää kerro mitään turvallisuudesta.

Selain pahentaa asioita väittämällä, että sivu on turvallinen. Varmenteen tiedot katsomalla käyttäjä voisi nähdä, ettei osoite varsinaisesti tarkoita mitään, mutta se edellyttää lukon kuvan napsauttamista. Helppokäyttöisyyden nimissä varmenteen tarkistamista on suorastaan vaikeutettu (joskin nykyisissä selaimissa on taas tultu vähän parempaan suuntaan verrattuna tähän vanhaan kirjoitukseeni).

Let's Encrypt - tietenkin.

Aidolla Nordean sivulla varmenne näyttää tältä:

Aito Nordean varmenne.

Varmenteen kentistä näkee, kenelle varmenne on myönnetty (kohde): suomalainen, Helsingissä sijaitseva Nordea -niminen yritys.

Parempia varmenteita, joissa hakijan identiteetti oli varmistettu, kutsuttiin aikoinaan Extended Validation -varmenteiksi. Tällaisella sivulla selaimen osoiterivi muuttui vihreäksi. EV-varmenteet olivat kalliimpia hankkia, mutta luottamukseen perustuvalla toimialalla ne olivat välttämätön investointi.

En ymmärrä, miksi selaimet luopuivat EV-varmenteiden erottelusta, mutta nykyinen käytäntö tuntuu hullulta. Kohtelemalla kaikkia varmenteita samanarvoisesti selaimet suorastaan auttavat huijareita. 

Vaikka varmenteessa ei olisikaan EV-merkintää, selain voisi ainakin varoittaa, ettei tässä varmenteessa ole mitään tietoja kohteesta. Silloin pankkien huijaus- ja kalastelusivut olisi helppo erottaa aidoista sivuista.

Vähintäänkin pitäisi kehittää selaimeen plug-in, joka tarkistaisi varmenteen myöntäjän automaattisesti ja ilmoittaisi, jos se on Let's encrypt. 

Ja juuri osui silmään Ylen uutinen huijaavasta polkupyöräkaupasta. Varmenteen myöntäjä tässäkin tapauksessa Let's encrypt.

perjantai 22. syyskuuta 2017

SSL-varmenteita ilmaiseksi

Keväällä 2016 toimintansa aloittanut Let's encrypt tarjoaa palvelinvarmenteita ilmaiseksi. Tavoite on hyvä: saada yhä suurempi osa nettiliikenteestä salatuksi, jolloin sen urkkiminen ja palvelinten väärentäminen vaikeutuisivat.

Ilmaisuus on mahdollista, koska varmenteet myönnetään täysin automaattisesti. Tässä on myös järjestelmän heikkous: mitään tarkistuksia ei tehdä, joten kuka tahansa web-palvelimen ylläpitäjä voi hankkia itselleen varmenteen.

Tämä on ongelma siksi, että aiemmin käyttäjiä on opetettu etsimään sivulta lukon kuvaa, ja pitämään sitä luotettavuuden merkkinä. Chrome-selain kehuu mitä tahansa SSL-salattua sivua turvalliseksi:

SSL-varmenne EI TAKAA turvallisuutta.
Varmenne takaa vain salauksen (liikennettä ei voi urkkia), ei yleistä turvallisuutta. Eikä edes salauksesta ole takeita, sillä jos urkkija onnistuu väärentämään oman palvelimensa ja saamaan uhrin ottamaan yhteyttä siihen (Man-in-the-Middle), hän näkee myös SSL-"suojatun" liikenteen.

Ilmaiset varmenteet sopivat esimerkiksi testi- ja kehityskäyttöön, ja ne ovat voimassa vain 90 päivää kerrallaan. Varmenteita on aina voinut luoda itsekin, mutta juurivarmenteen puuttuessa ne aiheuttavat selaimessa varoituksen. Let's encryptin varmenteet menevät nykyisin läpi kaikista selaimista ilman varoitusta.

Ihan kenelle tahansa varmennetta ei myönnetä, vaan automatiikka tarkistaa että hakijalla on pääsy joko web-sivun sisältöön tai palvelimen dns-tietueisiin (ns. DV, Domain Validation). Mitään tarkistusta sivun omistajasta (OV, Organization Validation) ei kuitenkaan tehdä, saati sitten lisätyn turvallisuuden EV-tarkistuksia (Extended Validation).

Turvallisuuden kannalta DV-OV-EV-erot ovat merkittäviä, joten mistä tietää, että varmenne on vain DV-tasoa? Ennen selaimet näyttivät helposti varmenteen tekniset tiedot, mutta nykyisin tiedot avataan vain kehittäjille. Tämä on ihan väärä kehityssuunta.

Mistä näkee varmenteen tason? Sitä varten pitää avata varmenteen sisältö; esimerkiksi Chromessa varmennetiedot näkyvät kehittäjätilassa (Ctrl+Shift+I):

Lyhyt voimassaoloaika kertoo jotain.
Vasemmalla Let's encryptin myöntämä varmenne, oikealla Facebookin käyttämä varmenne. Ensimmäiseltä sivulta näkyy varmenteen lyhyt voimassaoloaika.

Ratkaiseva ero on toisella välilehdellä.
Toiselta välilehdeltä käy ilmi kohde, jolle varmenne on myönnetty ("Hakija"): Let's encryptin tapauksessa se on vain domain-nimi, Facebookin varmenteessa näkyy myös organisaation nimi ja kotipaikka.

Esimerkiksi kalastelusivusto voi hyvinkin hankkia Let's encryptiltä varmenteen. Siksi Turvallinen -teksti kertoo vain salauksesta, ei todellisesta turvallisuudesta.