Oikeellisuuden tarkistaminen

Internetistä tiedostoja ladattaessa on hyvä tiedostaa, että ne saattavat sisältää haitallista ohjelmakoodia.  Siksi onkin suositeltavaa tarkistaa epäilyttävät tiedostot aina virustorjuntaohjelmalla. Virukset voidaan tarkistaa myös lähettämällä tiedosto verkossa toimivalle torjuntasivustolle, kuten Virustotal tai Jotti.

Tämän lisäksi osa ohjelmistokehittäjistä tarjoaa tiedostoilleen tarkistussummia (engl. checksum), joiden avulla niiden oikeellisuus eli eheys (engl. integrity) voidaan varmistaa. Tarkistussummat luodaan kryptograafisilla tiivistefunktioilla, jolloin niiden muuttumattomuus matkan varrella voidaan taata. Tämä on erityisen tärkeää käytettäessä tietoturvaa lisääviä ohjelmia, käyttöjärjestelmiä ja muita kriittisiä sovelluksia, koska tahattomat tai tahalliset muutokset saattavat aiheuttaa vakavia ongelmia.

Ulkopuolisten tekemät ohjelmakoodin muutokset saattavat sisältää torjuntaohjelmien havaitsemattomissa olevia tietoturva-aukkoja ja näitä tietoturva-aukkoja hyödyntämällä haitallisen ohjelmakoodin levittäjä voi esimerkiksi murtautua järjestelmään, varastaa salasanoja tai vaarantaa salausten toiminnan. Jos hyökkääjä on samassa lähiverkossa uhrinsa kanssa, voi hän onnistua huomaamatta tarjoamaan uhrilleen haitallisen ohjelmaversion oikean version sijaan. Tämän lisäksi tiedostot saattavat myös muuttua niitä siirrettäessä. Esimerkiksi yhteys palvelimeen saattaa häiriintyä latauksen aikana, mikä voi aiheuttaa tietojen muuttumisen. Myös kiintolevyn vaurioituneet sektorit saattavat aiheuttaa datamuutoksen. Tämän vuoksi verkkosivun käyttäjä voi ladata ohjelman lisäksi (mieluummin eri palvelimelta) jaetun tarkistussumman ja verrata sitä ohjelmasta itse generoimaansa tiivistearvoon (engl. hash). Jos arvot täsmäävät, on tiedoston eheys varmistettu. Jos arvot sen sijaan eivät täsmää, tiedoston voidaan olettaa muuttuneen ja se kannattaa ladata uudelleen (mahdollisesti eri lähteestä) tai ilmoittaa ohjelmiston ylläpitäjälle asiasta.

Ohjelmiston latauksen mahdollistava palvelin voi myös joutua verkkohyökkäyksen kohteeksi ja murtautuja voi vaihtaa jaetun ohjelmiston haitalliseen versioon. Näin ollen tiedon muuttumista ei välttämättä havaita saman tien, jolloin osa palvelimen käyttäjistä lataa tietämättään haitallisen ohjelmaversion. Tarkistussummat eivät välttämättä kuitenkaan estä tällaista, jos hyökkääjä on tarpeeksi pätevä ja tarkistussumman algoritmi on murrettavissa. Ne eivät auta myöskään tapauksessa, jossa hyökkääjä onnistuu murtamaan palvelimen ja vaihtamaan tarjotut tarkistussummat. Näitä skenaarioita vastaan toimivat digitaaliset allekirjoitukset ja sertifikaatit, joiden avulla voidaan varmentaa ohjelmiston julkaisija. Mainittujen asioiden vuoksi sekä tarkistussumman tarkistaminen että digitaalisen allekirjoituksen varmentaminen on suositeltavaa aina, kun siihen on mahdollisuus.

 

Tarkistussummat

Yleisimmin käytössä olevat tarkistussummat ovat MD5 (Message-digest) ja SHA (Secure Hash Algorithm). MD5 (128-bittinen) on heikompi tapa ja erittäin haavoittuvainen hyökkäyksille. SHA-tiivistefunktiosta on käytössä useampia versioita SHA-0, SHA-1 (160-bittinen), SHA-2 (sisältää SHA-224, SHA-256, SHA-384 ja SHA-512) ja SHA-3. Toistaiseksi MD5, SHA-0 ja SHA-1 on onnistuttu murtamaan, joten suositeltavampaa olisikin käyttää esimerkiksi SHA-2:ta. Tarkistussummien ideana on se, että jokainen tiiviste on erilainen eikä samaa tiivistearvoa ole tarkoitus onnistua saamaan toiselle kohteelle. Tämän lisäksi tarkistussummasta ei pitäisi onnistua päättelemään alkuperäistä lähdettä.

Windows:

Lataa CHK (Checksum Utility) ja pura zip-pakattu tiedosto haluamaasi sijaintiin. Ohjelma toimii yksinkertaisella graafisella käyttöliittymällä, jossa tarkastus tehdään valitsemalla File-valikosta hakemisto ja tiedosto(t) sekä Options-valikosta haluttu tiivistealgoritmi. Tarkistettavat tiedostot voidaan myös suoraan raahata (esim. työpöydältä) ohjelman listaukseen. Tietojen lisäyksen jälkeen ohjelma luo tiedosto(je)n tarkistussummat. Vaihtoehtoisesti voit tarkastaa yksittäiset (alle 4Gt) tiedostot Tarkistussummarilla.

macOS:

Avaa pääte/terminal Launchpadista (tai Finderista Ohjelmat/Lisäohjelmat tai /Applications/Utilities). Tarkistus suoritetaan komennolla openssl dgst, johon lisätään lisätiedoksi haluttu tiivistealgoritmi ja tarkistettavan tiedoston nimi. Jos et ole samassa hakemistopolussa kuin tarkistamasi tiedosto, lisää myös hakemiston polku komentoon.

openssl dgst -md5 /Käyttäjät/omatunnus/Dokumentit/tiedosto.dmg
openssl dgst -sha1 tiedosto.dmg
openssl dgst -sha256 tiedosto.dmg

Linux:

Useimmissa Linuxeissa on mukana GNU:n coreutils-paketti, johon kuuluvilla ohjelmilla voidaan suorittaa yleisimmät tarkistusoperaatiot. Useimmiten myös openssl-paketti on asennettuna, jolloin macOS-ohjeetkin toimivat. Avaa pääte ja kirjoita alla olevat komennot. Vaihda tiedoston nimi haluamaksesi ja lisää hakemistopolku tarvittaessa.

md5sum tiedosto.zip
sha1sum tiedosto.zip
sha256sum tiedosto.zip

 

Digitaalinen allekirjoitus

Tiedostot voidaan lisäksi allekirjoittaa OpenPGP-avaimella, jolloin niiden turvallisuus voidaan paremmin taata. Tällöin tarkistamisessa tarvitaan tiedoston allekirjoittajan julkinen avain sekä allekirjoitustiedosto (.sig, .sign, .asc, .p7s, .pem). Kun allekirjoittajan julkinen avain on lisätty tallennettujen avainten joukkoon, voidaan tiedoston allekirjoitus varmistaa. Windows-käyttäjät voivat ladata Gpg4win-ohjelmiston, ja macOS-käyttäjät vastaavan GPGTools-ohjelmiston. Lisätietoa näiden asennuksesta ja käyttämisestä löytyy Sähköposti-kohdasta.

Windows:

1. Lataa ja asenna Gpg4win (GpgEX-laajennus on ehdoton seuraaville ohjeille).
2. Lataa tiedosto ja allekirjoitus esim. tiedosto.sig.
3. Lisää tiedoston allekirjoittajan julkinen avain avainlistaasi.
4. Valitse lataamasi tiedosto ja klikkaa sitä hiiren oikealla näppäimellä. Valitse avautuneesta valikosta More GpgEX options -> Verify Checksums.
Vaihtoehtoisesti voit käyttää Linux-ohjeita 2. ja 3. komentokehotteessa (GPG-työkalujen asentamisen jälkeen).

macOS:

1. Lataa ja asenna GPGTools (sisältäen services-valikon) HUOM! Ei tue vielä macOS Sierraa!
2. Lataa tiedosto sekä allekirjoitus eli tiedosto.sig.
3. Lisää tiedoston allekirjoittajan julkinen avain avainlistaasi.
4. Valitse lataamasi tiedosto ja klikkaa sitä hiiren oikealla napilla. Valitse avautuneesta valikosta Services -> OpenPGP: Verify signature of file.
Vaihtoehtoisesti voit käyttää Linux-ohjeita 2. ja 3. päätteessä (GPG-työkalujen asentamisen jälkeen).

Linux:

1. Asenna tarvittaessa GnuPG ja graafinen käyttöliittymä KGPG tai Seahorse.
2. Lisää allekirjoittajan julkinen avain: gpg --import julkinen_avain.key
tai lataa se palvelimelta: gpg --recv-keys <avaimen ID>
3. Varmista tiedosto: gpg --verify tiedosto.tar.gz.sig tiedosto.tar.gz

 

Digitaalinen sertifikaatti

Windows- ja macOS-käyttöjärjestelmät tukevat lisäksi digitaalisia sertifikaatteja, joita ohjelmistokehittäjät voivat hyödyntää luotettavuuden mahdollistamiseksi. Idea on se, että ohjelman julkaisija varmentaa asennuspaketin omalla avaimellaan, joka on hyväksytty käyttöjärjestelmien luottaman CA:n (Certificate Authority) puolelta. Sekä Apple että Microsoft varmentavat ohjelmien sertifikaattitiedot, jos ne asennetaan heidän sovelluskaupoistaan. Digitaalinen sertifikaatti on kuitenkin hyvä tarkistaa itse, jos ohjelman on ladannut muualta. On myös syytä huomioida, että kaikki kehittäjät eivät tarjoa tätä mahdollisuutta eikä sertifikaatin puuttuminen ole tae epäluotettavasta ohjelmasta.

Windows:

Windowsissa klikkaa hiiren oikealla napilla haluttua asennustiedostoa (.exe), valitse Ominaisuudet (Properties) ja sieltä Digitaaliset allekirjoitukset-välilehti (Digital Signatures) ja lopuksi avautuneesta listauksesta tuplaklikkaa sertifikaattia. Näkyviin ilmestyneestä ikkunasta näet lauseen, joka ilmoittaa onko sertifikaatti kunnossa vai ei. Valitsemalla Näytä sertifikaatti (View Certificate), löydät tarkemmat tiedot, voimassaoloajan ja varmentaneen CA:n tiedot.

macOS:

Sovelluksen digitaalinen sertifikaatti näkyy asennusvaiheessa, kun tuplaklikkaat haluttua asennuspakettia (.pkg). Tämän jälkeen oikeassa ylänurkassa näkyy lukon kuvake, jota klikkaamalla avautuu tarkemmat tiedot sertifikaatista. MacOS-sovelluskehittäjät voivat allekirjoituttaa sertifikaattinsa liittymällä Applen kehittäjäohjelman jäseneksi.