Puhuttaessa salasanan murtamisesta viitataan usein kahteen erilaiseen murtamiskeinoon: sanakirjahyökkäys ja ns. brute-force -hyökkäys. Ohessa on kuvattuna molemmat hyökkäystyypit.
Sanakirjahyökkäys
Kun ihminen on unohtanut salasanansa johonkin järjestelmään, niin hän luonnollisesti testaa eri salasanoja eri järjestyksessä. Jossain vaiheessa hän saattaa muistaa oikean salasanan ja saa pääsyn järjestelmään.
Tietokone voidaan valjastaa tekemään tämä sama operaatio huomattavasti nopeammassa ajassa. Termi sanakirjahyökkäys saa nimensä siitä, että murto-ohjelmalle annetaan lista sanoista, joita hyökkäyksessä testataan. Ohjelma käy läpi koko listan (esim sanakirjan) ja testaa olisiko joku niistä sanoista oikea salasana.
Brute force -hyökkäys
Sanakirjahyökkäyksessä salasanoja arvattiin tietyn listan perusteella, mutta tässä hyökkäyksessä ei ole mitään listoja. Tämän hyökkäyksen ideana on yksinkertaisesti kokeilla kaikki mahdolliset merkkijonot läpi, kunnes oikea salasana löytyy. Siitä syystä hyökkäys on saanut nimen brute force = raaka voima.
Kun salasanoja tallennetaan esim web-palveluiden tietokantoihin, niin tallennusta ei saisi tehdä selkokielisenä. Jos tietokanta saadaan varastettua, niin kaikki selkokieliset salasanat paljastuu heti siitä vain lukemalla. Salasanat voidaan tallentaa tietokantaan myös salattuna. Yleensä salausvaiheessa salasanasta lasketaan ns. tiiviste, joka sitten tallennetaan palvelun tietokantaan. Tiivistealgoritmejä ovat esimerkiksi MD5 ja SHA-1
Kun web-palveluun kirjaudutaan, niin järjestelmä laskee annetusta salasanasta tiivisteen ja vertaa sitä tietokannassa olevaan. Mikäli tiivisteet täsmäävät annetaan käyttäjän kirjautua sisään.
Salasanan isoilla ja pienillä kirjaimilla on tiivistettä laskiessa olennainen merkitys. Isot kirjaimet tuottavat eri tiivisteitä kuin pienet. Esimerkkinä vaikkapa sanat ”peura” ja ”PEURA”:
peura MD5 tiiviste on: 058348972c0277e4f1c33811f7b59e61
PEURA MD5 tiiviste on eri: d98a9053fee787ba347b84c70101b2b5
Kuvitellaan että palvelusta Y olisi varastettu MD5-salattu salasanatietokanta. Hyökkääjä näkee vain erilaisia MD5 tiivisteitä. Hän haluaa tietää mitä tiivisteet tarkoittavat, joten ne tarvitsee murtaa. Hyökkääjä päättää laskea brute force tekniikalla eri merkkijonojen MD5-tiivisteitä, kunnes oikea merkkijono löytyy. Käytetään siis ”raakaa voimaa” asian ratkaisemiseksi! Jos tietokannasta löytyy tiiviste 058348972c0277e4f1c33811f7b59e61 niin hyökkääjä tietää, että kyseinen salasana = peura. Tehokkaat tietokoneet mahdollistavat sen, että hyökkääjä voi laskea erittäin lyhyessä ajassa paljon MD5-tiivisteitä.
Huom! Mitä pidempi ja monimutkaisempi salasana on kyseessä, sitä kauemmin sen murtaminen kestää, koska hyökkääjä joutuu laskemaan niin monia eri tiivisteitä salasanasta.
Vastaa