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.

1 kommentti:

  1. http://www.tivi.fi/Kaikki_uutiset/loyhaa-tietoturvaa-google-rankaisee-jattimaista-tietoturvayhtiota-miljoonat-sivustot-joutuvat-sertifikaattiostoksille-6635730

    Eipä se turvallisuus ole taattua edes turvafirmojen myöntämillä sertifikaateilla. Mitenköhän mahtaa olla muutoin symantecin tuotteiden (norton yms) turvallisuuden laita, jos firma varmenteidenkin kanssa toimii näin...

    VastaaPoista