Tarkistussumma

Linux.fista
Versio hetkellä 19. kesäkuuta 2013 kello 22.32 – tehnyt Oselotti (keskustelu | muokkaukset) (→‎Heikkouksia)
Siirry navigaatioon Siirry hakuun

Tarkistussumma on tiedon tarkistukseen käytetty merkkijono. Se voidaan muodostaa halutusta tiedostosta tai käytännössä mistä tahansa muusta lähteestä. Kun tarkistussumma tehdään uudestaan pitäisi sen olla sama kuin aiempi tarkistussumma, mikäli lähdetiedosto ei ole muuttunut. Jos taas lähde on muuttunut tavunkaan verran, pitäisi tarkistussumman olla täysin toinen kuin alunperin. Tarkistussummien avulla voidaan siis helposti tarkistaa, onko lähde muuttunut.

Menetelmät

Yleisimpiä tarkistussummia ovat CRC, SHA, MD5 ja cksum. Keskeisin niitä erottava tekijä on tarkistussumman murtovarmuus.

Useat heikommista tarkistussummista on kyetty murtamaan, eli laskennan pohjalta tuottamaan useita toisistaan poikkeavia lähteitä, joiden tarkistussummat ovat samat. Murretut tarkistussummat eivät ole käyttökelposia korkeaa tietoturvaa vaativissa kohteissa, sillä lähteen muuttumattomuutta (vapautta haitallisesta koodista) ei voida täysin taata.

Käyttökohteet

Tarkistussummia voidaan käyttää hyvin monessa eri tarkoituksessa. Heikkoja tarkistussumia käytetään automaattisesti useimpien tietosiirtoprotokollien osana, jotta tekniset häiriöt eivät vaikuttaisi perilletulevan datan oikeellisuuteen.

Tyypillisin ei-automaattinen käyttökohde on tarkistaa, että kopioitu tiedosto vastaa alkuperäistä tiedostoa eikä ole korruptoitunut. Otetaan tarkistussumma halutusta tiedostosta, kopioidaan se, otetaan kopiosta tarkistussumma ja katsotaan että summat ovat samat. Alkuperäinen tarkistussumma on yleensä saatavilla levykuvien yhteydessä ja myös osana paketinhallintajärjestelmää.

Tarkistussummia voidaan käyttää myös salasanojen tarkistamiseen. Itse salasanaa ei tarvitse tallentaa sitä vaativaan ohjelmaan. Riittää, että ohjelma tallentaa salasanan tarkistussummat ja myöhemmin tarkistaa vastaako syötetyn salasanan tarkistussumma alkuperäisen vastaavaa.

Heikkouksia

Koska tarkistussumma ei sisällä itse alkuperäistä tietoa vaan vain erittäin pienen osan siitä, on olemassa useita erilaisia lähdetiedostoja, jotka antavat saman summan. Tämän ei kuitenkaan tule yleensä ongelmaksi, koska yleisimpien tarkistussummatekniikoiden vaihtoehtoisia tarkistussummia on erittäin paljon eikä sopivan tiedoston pitäisi löytyä kuin kokeilemalla.

Vaikka tarkistussumma ei sisälläkään alkuperäistä tietoa, voidaan summasta tämä kuitenkin joskus päätellä. Jos kyseessä on esimerkiksi salasanan tarkistussumma, voidaan kokeilla kaikkia mahdollisten salasanojen tarkistussummia ja katsoa tuottaako jokin yritys oikean summan. Tämä onnistuu usein, mikäli käytössä on alle 10-merkkinen lähdemerkkijono tai lähdemerkkijono on arvattavissa (biljoonalla arvauksella). Lyhyiden salasanojen kokeilua voidaan vaikeuttaa lisäämällä suola. Salasanan eteen tai perään lisätään ei-salaisia mutta vaihtelevia merkkijonoa. Näin kahden käyttäjän sama salasana antaa eri tarkistussumman ja kokeileminen on tehtävä käyttäjäkohtaisesti (tai jokaista mahdollista suolaa kohden). Kun ohjelma tarkistaa salasanaa, se lisää suolan merkkijonot ennen summan ottamista.

Aiheesta muualla