Tarkistussummista

Tarkistussumma on keino varmistua datan muuttumattomuudesta. Yhdenkin bitin tahaton muutos voi olla merkittävä, minkä vuoksi suuristakin datamääristä on pystyttävä havaitsemaan minimaalisetkin muutokset.

Data altistuu tahattomille muutoksille eli korruptiolle esimerkiksi dataa siirrettäessä ja laitteiden toimintahäiriöiden vuoksi. Muuttumattomuuden todentamisen ja muutosten havaitsemisen keinona voidaan käyttää tarkistussummien vertailua.

Tarkistussumma voidaan laskea datalle, aineistolle tai muulle tiedolle – usein tiedostossa olevalle datalle. Tarkistussummien avulla voidaan päätellä onko data muuttunut, jos on olemassa vertailukelpoiset eli samalla laskukaavalla muodostetut tarkistussummat eri ajoilta. Tarkistussumma ei kerro miten tai miltä osin data on muuttunut, mutta jos muutos havaitaan, korruptoitunut data (tiedosto) pitää korvata eheällä varmuuskopiolla.

Datan muuttumattomuus eli eheys voidaan varmistaa vain vertailtavien tarkistussummien laskuajankohtien väliltä. Tästä syystä tarkistussumma tulisi laskea mahdollisimman pian sen jälkeen, kun data on luotu. Varmistaminen tehdään vertaamalla alkuperäistä tarkistussummaa samasta datasta myöhemmin laskettavaan uuteen tarkistussummaan.

Ilman alkuperäistä tarkistussummaa ja siihen verrattavaa uutta tarkistussummaa ei ole mahdollista päätellä, onko data säilynyt muuttumattomana. PAS-palveluun siirrettävillä tiedostoille pitää laskea tarkistussummat. Niiden avulla aineistojen eheys tarkistetaan ennen hyväksymistä säilytykseen siirron aikaisten häiriöiden varalta. Hyväksymisen jälkeen aineiston PAS-palvelussa olevien kopioiden eheys varmistetaan säännöllisesti koko säilytyksen ajan laskemalla tarkistussumma uudelleen. Mutta jos data on muuttunut tahattomasti jo ennen PAS-palveluun siirtämistä, siirron yhteydessä laskettava tarkistussumma tuotetaan jo korruptoituneesta datasta, eikä PAS-palvelu tätä pysty havaitsemaan vaan säilyttää korruptoituneen datan.

Dataa käsitellään useimmiten tiedostoina, jolloin data on tiedoston sisältö eikä esimerkiksi tiedoston uudelleennimeäminen tai aikaleima vaikuta datan eheyteen. Tarkistussummaa ei tallenneta dataan, josta se on laskettu, vaan sitä kuvaavaan metatietoon tai johonkin muuhun järjestelmään.

Tarkistussummien käyttämisen etu eheyden varmistamisessa on niiden tuottamisen ja säilyttämisen keveys. Datan määrästä riippumatta tarkistussumma on aina vain suurin piirtein lauseen mittainen merkkijono, joka voidaan laskea samalla tavoin miljoonien tai jopa miljardien tavujen kokoisista tiedostoista. On periaatteessa mahdollista, että eri aineistoista lasketaan sama tarkistussumma, eli tapahtuu törmäys. Datan tahaton muuttuminen voi siksi jäädä havaitsematta, mutta tämä on erittäin epätodennäköistä.

PAS-palvelussa tarkistussummien tuottamiseen sopivia tiivistealgoritmeja ovat MD5, SHA-1, SHA-224, SHA-256, SHA-384 ja SHA-512. Tarkistussumman, eli tiivisteen, esitysmuoto on heksadesimaaleista muodostettu merkkijono, jonka pituus riippuu käytettävästä algoritmista. Tarkistussumman laskevia sovelluksia voi jokainen tietokoneen käyttäjä ajaa helposti itse. Esimerkiksi tiedoston SHA-256 -tarkistussumman laskeminen ja tuloksen esittäminen tapahtuu Windows-, Linux- ja Mac-ympäristöissä seuraavasti:

Windows:

> Certutil -hashfile  SHA256
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb

Linux:

$ sha256sum 
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb 

Mac:

$ shasum --algorithm 256 
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb