Salatut sivut

SSL/TLS

Eräs yleisimmistä tavoista suojata verkkoliikennettä on SSL-protokolla (Secure Sockets Layer) ja erityisesti sen seuraaja TLS-protokolla (Transport Layer Security). Nykyisin SSL-protokollaa voidaan kuitenkin pitää heikkona ja hyökkäyksille alttiina, minkä vuoksi on suositeltavaa käyttää ainoastaan TLS-protokollaa. Protokollien käytön voi määritellä selaimesta käsin, ja uudemmat selaimet tarjoavatkin käyttäjille ensisijaisesti TLS-protokollaa. Tämä verkkosivu ei tue SSL-protokollaa lainkaan, joten käytössäsi on selain, joka tukee TLS:ää.

Verkkosivujen salauksessa myös salausalgoritmeilla on merkitystä. Toiset salaustavat ovat alttiimpia hyökkäyksille tai nykyisin jo liian heikkoja tarjoamaan luotettavaa salausta. Tähän verkkosivujen käyttäjä ei kuitenkaan pysty yksin vaikuttamaan, vaan www-palvelimien tulee tukea turvallisia salausmenetelmiä. Käytettäessä salattua yhteyttä tukevaa verkkosivua palvelin antaa haluamassaan järjestyksessä salausmenetelmät, joista selain normaalissa tapauksessa valitsee ensimmäisen sopivan.

Qualys SSL Labs tarjoaa erittäin hyvät työkalut sekä oman palvelimen että käyttäjän oman selaimen testaamiseen. Palvelimen tiedot voidaan tarkistaa palvelintestillä ja käytettävän selaimen tuen selaintestillä.

 

HTTP/HTTPS

HTTP-protokolla (Hypertext Transfer Protocol) eli hypertekstin siirtoprotokolla toimii perustana www-palvelinten ja selainten väliselle tietoliikenteelle. Protokolla käyttää salaamatonta TCP-protokollaa yhteyden muodostamiseen palvelimen ja selaimen välillä ja on siksi altis tiedon sieppaukselle ja salakuuntelemiselle. HTTPS on muutoin sama sovellusprotokolla kuin HTTP, mutta se tunneloidaan turvallisen SSL/TLS-salausprotokollan läpi. Tämä suojaa viestiliikennettä ja takaa tietojen eheyden verkossa, mikä vähentää salakuuntelun mahdollisuuksia. HTTP-pyynnöt ja -vastaukset toimivat kuitenkin täsmälleen samalla tavalla riippumatta siitä, käytetäänkö SSL-salausta vai ei.

Sekä TLS- että SSL-protokollan käyttämistä HTTP-protokollan yli kutsutaan nimellä HTTPS (Hypertext Transfer Protocol Secure). HTTPS-ominaisuus on sisäänrakennettuna kaikissa moderneissa selaimissa ja sen käyttö riippuu verkkopalvelimen tuesta. Sivuston käyttämän protokollan huomaa sen verkko-osoitteesta eli URL:stä (Uniform Resource Locator). Yleisesti käytettävä ja Internetissä vakiintunut URL-osoitteen muoto on protokolla://tietokoneen_nimi:portti/dokumentin_nimi%parametrit.

Protokollalla tarkoitetaan menetelmää, jolla päästään dokumenttiin käsiksi. Tietokoneen nimellä tarkoitetaan IP-osoitetta eli Internet-protokollan osoitetta tai verkkotunnusta eli domain-nimeä, joka osoittaa dokumentin sisältävään tietokoneeseen. Protokollan käyttämä porttinumero (:portti) on valinnainen lisätieto, joka kertoo palvelimen käyttämän portin. Dokumentin_nimi viittaa palvelimella olevaan asiakirjaan ja %parametrit antavat valinnaisia lisäparametreja verkkosivulle. Siksi verkko-osoitteet https://www.yksityisyydensuoja.fi:443/index.php ja yksityisyydensuoja.fi viittaavat samaan osoitteeseen. Jälkimmäisessä verkkoselain käyttää automaattisesti oletusarvoisia tai palvelimen määräämiä protokollia ja portteja (HTTPS ja portti 443) sekä etsii palvelimelta oletukseksi asetetun tiedoston. Jos käytetään pelkästään domain-nimeä, niin yleensä oletusarvoisena haettu tiedosto on index.htm, index.html tai index.php. Tämän sivuston käyttämä palvelin ohjaa suoraan HTTPS-salattuun versioon, eikä anna käyttäjälle vaihtoehtoa salaamattomaan HTTP-mahdollisuuteen.

Salaamaton yhteys alkaa URL-osoitteella http:// ja salattu yhteys https://. Normaali HTTP-yhteys käyttää porttia 80 ja HTTPS-yhteys porttia 443. HTTPS-yhteyttä käytettäessä URL, dokumentin sisältö, selaimella täytetyt lomakkeet sekä palvelimelle lähetettävät evästeet salataan. Yksinkertaisemmin sanottuna: jos selaimen osoiterivin alussa ei lue HTTPS://, on yhteys tällöin salaamaton eikä sitä voida pitää salakuuntelusta turvallisena.

HTTPS-tunnus verkkoselaimen osoitepalkissa, www-sivun osoitteen alussa on siis merkkinä salatusta yhteydestä. Tämä tarkoittaa sitä, että esimerkiksi lomaketiedot tai sivuston kirjautumistiedot lähetetään palvelimelle salatun yhteyden läpi. Jos tieto ei ole salattu, se liikkuu selväkielisenä, jolloin ulkopuolinen hyökkääjä voi päästä siihen käsiksi. Tästä syystä asioidessa verkkopankkien ja -kauppojen kanssa on olennaista tarkistaa, että salaus on päällä. Selaimen osoiterivillä näkyy HTTPS-tunnuksen lisäksi suljetun lukon kuva, kun salattu yhteys on muodostettu palvelimeen. Useissa selaimissa lukon kuvaketta klikkaamalla nähdään tarkempia tietoja salauksen mahdollistamasta varmenteesta ja sen varmentajasta.

 

Digitaaliset varmenteet (SSL-sertifikaatit)

Digitaaliset varmenteet eli sertifikaatit mahdollistavat salauksen käytön ja tarjoavat käyttäjälle mahdollisuuden siihen luottamiseen. Kaikki HTTPS-tunnuksella alkavat verkkosivut käyttävät jonkinlaista sertifikaattia, jonka julkiset tiedot ovat mahdollista katsoa. Verkkosivuston ylläpitäjä voi luoda itse sertifikaatin ja lisäksi hankkia siihen todennuksen. Todennuksia tarjoavat CA:t (Certificate/Certification Authority), jotka varmentavat sertifikaatin aitouden. Näitä ovat mm. Comodo, Let's Encrypt, GlobalSign, VeriSign, Thawte, GeoTrust ja GoDaddy. Kun sertifikaatti on todennettu hyväksytyn CA:n kautta, selain ymmärtää sen ja tarjoaa käyttäjälle ehjän lukon kuvan. Tällöin käyttäjän ei tarvitse tehdä erityisiä toimenpiteitä luottaakseen sivustoon. Tämän lisäksi verkkosivuston ylläpitäjä voi ostaa kalliimman, laajennetun tunnistamisen (EV, Extended Validation) sertifikaatin, jolloin useimmat selaimet värjäävät lukon kuvan, osoiterivin taustan tai organisaation nimen vihreäksi. Esimerkiksi verkkopankit käyttävät EV-sertifikaatteja, mikä helpottaa asiakkaan kannalta turvallisuuden tarkistamista.

Sertifikaatin todentaminen CA:lla useimmiten maksaa, ja tästä syystä osa verkkosivustoista tarjoaa salausta, mutta ei todennettua sertifikaattia. Tällöin on täysin käyttäjän vastuulla, luottaako hän sivustoon vai ei. Useimmiten salauksen käyttäminen on silti järkevämpää, varsinkin jos sivustolle ei tarvitse laittaa mitään kirjautumistietoja tai muuta henkilökohtaista tietoa. Sertifikaattiin voi myös itse luottaa lisäämällä sen selaimen listaukseen, jolloin sertifikaatin muuttumisen voi havaita. Mutta on myös mahdollista, että joku ulkopuolinen seuraa kyseistä liikennettä ja on pahimmassa tapauksessa ohjannut pahaa aavistamattoman kävijän omalle, haittaohjelmia sisältävälle sivulleen. Tällainen vaara on erityisesti silloin, jos verkkosivulla on ollut aiemmin CA-todennettu sertifikaatti, joka on yhtäkkiä muuttunut itse varmennetuksi. Varmentamattomat sertifikaatit antavat jonkinnäköisen merkin selaimeen, esimerkiksi punaisella ruksatut viivat HTTPS-tunnuksen päälle tai Firefoxin tapauksessa käyttäjälle näytetään alla olevan kuvan kaltainen viesti.

Todentamatonta sertifikaattia käyttävä sivusto antaa virhekoodin: sec_error_untrusted_issuer. Virhekoodeilla on merkitystä, koska ne viittaavat aina johonkin ongelmaan, joka käyttäjän tulisi itse tiedostaa. Seuraavat virhekoodit ovat myös jokseenkin yleisiä:

Virhekoodi: sec_error_expired_issuer_certificate
Virhekoodi: sec_error_expired_certificate

Nämä tarkoittavat, että sertifikaatti tai sen todennussertifikaatti on vanhentunut. Useimmiten verkkosivustojen ylläpitäjät pitävät huolen, etteivät sertifikaatit vanhene, ja siksi sivustolle ei kannata tällöin mennä. Näissä tapauksissa on kaikesta huolimatta mahdollista, että tilanne johtuu käyttäjän omasta laitteesta. Tämän vuoksi kannattaa tarkistaa, että käytettävän laitteen kellonaika, päivämäärä ja aikavyöhyke on asetettu oikein. Tämän jälkeen on hyvä tarkistaa, että selaimesta löytyvät ajantasaiset varmentajien tiedot. Jos voidaan epäillä, että varmentajien lista on vanhentunut, helpointa on päivittää selain tai asentaa se uudestaan. Jos nämä asiat kuitenkin ovat kunnossa, ei sivustoon kannata luottaa eikä hyväksyä poikkeusta. Muihin virhekoodeihin törmätessä ei kyseiseen sivustoon todennäköisesti kannata luottaa. Virhekoodien merkitystä ja tilanteen arvioimista varten voi koodin etsiä Mozillan SSL/SEC-virhekoodilistasta.

Toisinaan törmää kehnosti tehtyihin HTTPS-toteutuksiin, jolloin kaikki sivuilla oleva materiaali ei liiku salattuna. Tilanne on kiusallinen, koska todennäköisesti sivustoon voi luottaa eikä ongelmaa ole, mutta toisaalta ei voi nähdä suoraan, mitkä tiedot liikkuvat salaamattomana. Tilannetta voidaan kuitenkin tarkastella paremmin Why No Padlock? -palvelulla. Palveluun annetaan varoituksen antava www-osoite, jonka jälkeen nähdään salaamattomat elementit. Järkevintä olisi ilmoittaa tilanteesta verkkosivuston ylläpitäjälle ja pyytää korjausta. Erityisesti näin kannattaa menetellä, jos kyseessä on verkkokauppa tai jokin muu taho, jolle joutuu antamaan henkilökohtaisia tietojaan.

Digitaaliset varmenteet sisältävät myös ns. sormenjäljen eli sertifikaatin todentamisen tarkistussummilla. Sertifikaatin sormenjäljen näkee klikkaamalla selaimesta https-tunnusta ennen olevaa lukon kuvaketta. Firefoxissa lukon kuvakkeen klikkaamisen jälkeen valitaan oikealle osoittava nuolenpää ja sieltä Lisätietoja... (More Information...) ja lopuksi Näytä varmenne (View Certificate). Sormenjäljestä on hyötyä esimerkiksi, jos on syytä epäillä Mies välissä eli MITM (Man-in-the-middle) -hyökkäystä. Kyseisessä tietoturvahyökkäyksessä ulkopuolinen hyökkääjä on verkkosivuston ja sivujen käyttäjän välissä. Samalla hyökkääjä voi väärentää sivuston käyttämän sertifikaatin ja varastaa kaiken käyttäjän syöttämän tiedon. Epäiltäessä väärennöstä sertifikaatin sormenjälki voidaan tarkistaa toisella Internetissä oleavalla laitteella tai ulkopuolisen tahon toimesta esimerkiksi Gibson Research Corporationin (GRC) -työkalulla. GRC:n sivuilla kenttään kirjoitetaan tarkistettava osoite ja valitaan Fingerprint Site, minkä jälkeen palvelu hakee kyseisen sivuston SHA1-sormenjäljen. Tällöin saatua sormenjälkeä voidaan verrata selaimessa näkyvään ja eroja havaittaessa voidaan olettaa yhteyden saastuneen.