Suolaaminen on tekniikka, jota käytetään suojaamaan salasanoja lisäämällä satunnaisia merkkijonoja salasanaan ennen sen tiivistämistä. Tämä satunnainen merkkijono, joka tunnetaan nimellä "suola", tallennetaan sitten tiivistetyn salasanan kanssa tietokantaan. Suolaamisen tarkoituksena on lisätä salasanojen turvallisuutta ja tehdä niistä haastavampia murtaa raakavoiman tai esilaskettujen taulukoiden, kuten rainbow-taulukoiden, avulla.
Suolaaminen on olennainen vaihe salasanojen tiivistämisessä, koska se lisää ennakoimattomuutta ja ainutlaatuisuutta jokaiseen salasanaan. Lisäämällä suolan, vaikka kahdella käyttäjällä olisi sama salasana, saadaan erilaisia tiivisteitä eri suolojen ansiosta.
Kun käyttäjä luo salasanan, satunnainen arvo (suola) luodaan. Tämä suola yhdistetään sitten salasanaan ennen sen tiivistämistä. Tiivistetty arvo tallennetaan yhdessä suolan kanssa tietokantaan tulevaa varmistusta varten.
Esimerkiksi, jos käyttäjän salasana on "password123" ja järjestelmä luo suolan "a8#3B". Järjestelmä tallentaa sitten "password123a8#3B" -tiivisteen ja suolan "a8#3B" tietokantaan.
Kun käyttäjä yrittää kirjautua sisään, järjestelmä hakee käyttäjän tilille liitetyn suolan ja yhdistää sen annettuun salasanaan. Tuloksena olevaa arvoa verrataan tallennettuun tiivisteeseen. Jos ne täsmäävät, salasana katsotaan oikeaksi.
Käyttämällä satunnaisia suoloja järjestelmä varmistaa, että jokainen salasana tiivistetään eri tavalla, vaikka alkuperäiset salasanat olisivat samat. Tämä tekee merkittävästi vaikeammaksi hyökkääjien murtaa salasanoja käyttämällä esilaskettuja taulukoita tai muita raakavoimahyökkäyksiä.
Suolaaminen tarjoaa useita etuja salasanojen turvallisuudelle:
Lisääntynyt monimutkaisuus: Lisäämällä satunnainen suola jokaiseen salasanaan, tiivistetyjen arvojen monimutkaisuus kasvaa merkittävästi. Tämä monimutkaisuus tekee vaikeammaksi hyökkääjien arvata tai murtaa salasanoja käyttämällä yleisiä tekniikoita.
Yksilölliset tiivisteet: Vaikka kahdella käyttäjällä olisi sama salasana, suola varmistaa, että heidän tiivisteet ovat erilaisia. Tämä suojaa rainbow-taulu hyökkäyksiltä, jotka tukeutuvat esilaskettuihin salasanojen tiivistetaulukoihin.
Suojaus sanakirjahyökkäyksiä vastaan: Sanakirjahyökkäykset sisältävät yleisesti käytettyjen salasanojen esilaskettujen tiivisteiden listan käyttämisen ja niiden vertaamisen tiivistettyihin arvoihin. Suoloja käyttämällä, jopa yleiset salasanat saavat ainutlaatuisia tiivisteitä, tehden sanakirjahyökkäyksistä vähemmän tehokkaita.
Vastustuskyky rainbow-taulukkojen hyökkäyksille: Rainbow-taulut ovat suuria tietokantoja, jotka sisältävät esilaskettuja tiivisteitä laajalle mahdollisten salasanojen joukolle. Suolaaminen tekee rainbow-taulujen käytön tehottomaksi, koska jokainen suolattu salasana saa ainutlaatuisen tiivisteen, varmistaen ettei alkuperäisiä salasanoja voida helposti palauttaa.
Kun toteutat suolaamista salasanojen tiivistämiseen, on tärkeää noudattaa parhaita käytäntöjä maksimaalisen turvallisuuden varmistamiseksi:
Käytä vahvaa tiivistysalgoritmia: Valitse turvallinen tiivistysalgoritmi, kuten bcrypt tai SHA-256. Nämä algoritmit on suunniteltu erityisesti laskennallisesti raskaiksi, mikä tekee vaikeaksi hyökkääjille murtaa tiivistetyt salasanat, vaikka heillä olisi pääsy suolaan.
Luo satunnaisia suoloja: Jokaisen suolan pitäisi olla ainutlaatuinen ja satunnaisesti luotu jokaiselle salasanalle. Tämä estää hyökkääjiä käyttämästä esilaskettuja taulukoita tai rainbow-taulukoita murtaakseen useita salasanoja samanaikaisesti.
Säilytä suolat turvallisesti: Suolat tulisi säilyttää tiivistettyjen salasanojen yhteydessä. Ne tulisi kuitenkin säilyttää erillään tietokannasta tai tunnistusjärjestelmästä luvattoman pääsyn estämiseksi.
Päivitä tiivistysalgoritmeja säännöllisesti: Seuraa salasanojen tiivistysalgoritmien viimeisimpiä kehityksiä ja päivitä järjestelmäsi niiden mukaisesti. Uusissa algoritmiversioissa on usein parannettuja turvallisuusominaisuuksia, jotka kykenevät kestämään kehittyneempiä hyökkäyksiä.
Harkitse pepperin käyttöä: Pepper on salainen avain, joka lisätään salasanaan ja suolaan ennen tiivistämistä. Toisin kuin suolat, pepperit säilytetään erillään tiivistetyistä salasanoista, tarjoten lisäturvakerroksen. On kuitenkin tärkeää varmistaa, että pepper on pidetty luottamuksellisena ja asianmukaisesti suojattuna.
Noudattamalla näitä parhaita käytäntöjä voit varmistaa, että suolaamistekniikkasi pysyvät tehokkaina ja kestävät kehittyviä kyberturvallisuusuhkia vastaan.
Aiheeseen liittyvät termit
Hashing: Prosessi, jossa selkokieliset salasanat muunnetaan sekavaksi, kiinteän pituiseksi merkkijonoksi käyttämällä tiivistysalgoritmia.
Rainbow Tables: Esilaskettuja taulukoita, joita käytetään tiivistettyjen salasanojen murtamiseen, joita suolaaminen usein estää.