Se, millainen salasana sinun pitäisi luoda, riippuu paljon siitä, miten salasana tallennetaan.

Vuosia sitten kahdeksanmerkkisiä satunnaisia ​​salasanoja, jotka koostuivat isoista ja pienistä kirjaimista, symboleista ja numeroista, oli todella vaikea murtaa. Joissakin tapauksissa tällaisen salasanan murtaminen kesti vuosia.

Nykypäivän muuttuvan tekniikan ja vuokrattavien koneiden ansiosta tämä aika on lyhentynyt tunteihin. Mutta miten nämä salasanat ylipäätään tallennetaan?

Kuinka salasanat tallennetaan verkossa

Järjestelmät eivät tallenna käyttäjien salasanoja suoraan tiedostoihin tai tietokantoihin, koska hyökkääjät voivat ottaa haltuunsa tietokannan, jossa järjestelmät säilyttävät salasanat. Sen sijaan järjestelmät salaavat käyttäjien salasanat, ja hyökkääjät kohtaavat jokaisesta salasanasta salatun version.

On olemassa joitakin algoritmeja, joita järjestelmät käyttävät salasanojen salaamiseen. Yksi näistä algoritmeista on symmetrinen algoritmi. Symmetrinen algoritmi on eräänlainen salaus

jossa voit käyttää samaa avainta sekä salaukseen että salauksen purkamiseen. Avain, jota käytät tietojen salaamiseen, on sama sekä salauksessa että salauksen purkamisessa. Symmetristen algoritmien turvallisuuteen liittyy joitain riskejä, koska salauksen purkamiseen on vain yksi avain. Tästä syystä järjestelmät eivät yleensä käytä symmetrisiä algoritmeja salasanan salaukseen.

Yleensä menetelmä, jota järjestelmät käyttävät salaukseen, ovat hash-algoritmit. Hash-algoritmit on tarkoitettu tietojen eheyden tarkistamiseen ja esittämiseen, ei tietojen salaamiseen. Hash-algoritmit muuntaa tiedot kiinteän kokoiseksi hashiksi. Nämä tiivisteet edustavat yleensä ainutlaatuista datan tiivistettä.

Hajautusalgoritmin ansiosta, jos hyökkääjä on ottanut haltuunsa salasanatietokannan, hyökkääjä ei pääse käsiksi salasanaan taaksepäin täältä. Tässä on erittäin tärkeä vivahde, johon sinun tulee kiinnittää huomiota. Teoriassa hyökkääjä, joka murtautuu järjestelmään, joka käyttää samaa hash-algoritmia kaikille salasanayhdistelmille, voi verrata saatuja tuloksia. Jos hyökkääjä tuottaa saman arvon näiden vertailujen tuloksena, hyökkääjä on saanut selville, mikä salasanan avoin versio on. Tämä menetelmä koskee yritystä ja erehdystä, ja tämä hyökkäysmuoto on sitä kutsutaan yleisesti raakavoimahyökkäykseksi.

2000-luvun alussa saattoi kestää satoja vuosia kokeilla kaikkia 8-merkkisten salasanojen yhdistelmiä, jotka oli salattu suosituilla hajautusalgoritmeilla. Tämä di ei tietenkään sisällä kovin yksinkertaisia ​​yhdistelmiä, kuten "123456" tai "mypassword". Nykypäivän ohjelmisto- ja laitteistoteknologioiden kehittyessä salasanojen murtomenetelmä on myös muuttunut paljon.

Uusien GPU: iden vaikutus

Grafiikkasuorittimien (GPU) rinnakkaistietojen käsittelyominaisuudet ovat parantuneet ajan myötä. GPU: t eivät pysty suorittamaan monipuolisia toimintoja, kuten yleiskäyttöiset suorittimet. Joten vaikka niitä onkin niin paljon ytimiä ja rinnakkaista prosessointitehoa, ei ole järkevää käyttää niitä lähes kaikkiin ongelmiin, kuten PROSESSORI.

Silti on mahdollista suorittaa joitakin salasanoihin käytettyjä hajautusalgoritmeja melko tehokkaasti GPU: lla. Perinteisillä prosessoreilla saavutettavat laskettavat tiivisteet sekunnissa ovat kasvaneet valtavasti uusien GPU-alustojen myötä.

Saadaksesi käsityksen tutkimalla hajautusalgoritmien, kuten NTLM, MD5 ja SHA1, hajautuslukuja sekunnissa alla olevasta taulukosta. Toistaiseksi riittää tietää, että nämä algoritmit ovat vain hash-algoritmeja. Tämän taulukon luomiseen käytin klusterijärjestelmää, joka koostui 25 AMD Radeon GPU: sta.

Algoritmi

Hashings sekunnissa

NTLM

350.000.000.000

MD5

180.000.000.000

SHA1

63.000.000.000

SHA512 krypta

364.000

Bcrypt

71.000

Scrypt

33.000

Kuten näet, tällaisella järjestelmällä voit luoda NTLM-tiivisteitä 350 miljardia kertaa sekunnissa. Tämä tarkoittaa, että voit kokeilla kaikkia 8-merkkisen salasanan yhdistelmiä alle kuudessa tunnissa. Lisäksi tämän esimerkin laitteistot ovat vuosien takaa. Kuvittele nykypäivän salasanojen murron voima.

Mitä ohjelmistokehittäjien tulisi tehdä?

Ohjelmoijien tulisi toimia melko yksinkertaisesti: heidän tulisi suosia algoritmeja, joiden tiivistearvojen laskeminen kestää kauemmin salasanoja salattaessa. Kehittäjien on opittava paitsi suorittimessa käyttämänsä algoritmin suorituskyvystä, myös siitä, kuinka joustava se on GPU-maailmaa vastaan.

Jos kehittäjät työskentelevät ohjelmistokehyksen kanssa, joka käsittelee myös salasanan salausprosesseja, kuten Django, Ruby on Rails ja Spring Security, heidän pitäisi tarkistaa, onko oikeita päätöksiä tehty puitteissa turvallisuus.

Esimerkiksi, Suunnittele, yksi Ruby on Railsin käyttäjien toimintojen eniten käytetyistä kirjastoista, käyttää Bcryptia oletushajautusalgoritmina. Sen avulla voit myös käyttää toista menetelmää hash-algoritmina. Bcrypt-algoritmi on luotettava, koska grafiikkasuorittimen rikkoutuminen kestää edelleen hyvin kauan.

Yhteenvetona voidaan todeta, että mitä kauemmin hash-arvon laskenta kestää, sitä turvallisempi olet.

Kuinka monta merkkiä salasanassasi tulisi olla?

Jokainen käyttämäsi ylimääräinen merkki lisää geometrisesti kokeiden ja virheiden määrää, joita tarvitaan salasanasi murtamiseen ja salasanan turvaamiseen.

Tarkastellaan tätä tilannetta kahden eri skenaarion kautta. Harkitse yllä olevan taulukon arvoja NTLM-hajautusalgoritmille ja kuvittele, että yrität murtaa salasanan. Kuvittele kohdistavasi salasanoihin, joissa on vähintään kahdeksan merkkiä.

Merkkien määrä

Isot/pienet kirjaimet ja numerot

Isot/pienet kirjaimet, numerot ja erikoissymbolit

8

alle 1 minuutti

2 minuuttia

9

2 minuuttia

2 tuntia

10

2 tuntia

1 viikko

11

6 päivää

2 vuotta

12

1 vuosi

200 vuotta

13

yli 100 vuotta

yli 1000 vuotta

Kun tarkastelet taulukkoa, huomaat, että vähintään 12-merkkisen salasanan käyttö on turvallista, kun käytät kaikkia isojen/pienien kirjainten, numeroiden ja erikoissymbolien yhdistelmiä. Jos et käytä erikoissymboleita, käy ilmi, että sinun on käytettävä 13 merkkiä suojatun salasanan pituutena. Jos käytit tässä järjestelmässä Bcrypt-hajautusmenetelmää NTLM-hajautusmenetelmän sijaan, 8 merkkiä riittäisi. Sinulla ei kuitenkaan ole mahdollisuutta tietää, millä hash-menetelmällä verkon kautta syöttämäsi järjestelmä säilyttää salasanasi. Siksi sinun tulee harkita kaikkia mahdollisuuksia.

Ohjelmistokehittäjien suurin ongelma on, että on lähes mahdotonta vakuuttaa käyttäjiä vähintään 12-merkkisestä salasanasta. Nykyään voidaan sanoa, että tämän pituisten salasanojen käyttöaste on alhainen. Siksi kehitetyn järjestelmän käyttöskenaarion mukaan on löydettävä keskitie, jonka käyttäjät hyväksyvät parantaakseen salasanansa turvallisuutta.

Viimeinen ehdotus kehittäjille on tarkistaa käyttäjälle esittämiesi lomakkeiden kautta tulevien syötteiden vähimmäispituuden lisäksi myös enimmäispituus. Varsinkin kun otat käyttöön hitaasti laskevan hash-algoritmin, kuten Bcryptin, käytön turvallisuuden vuoksi tarkoituksiin, saatat kohdata riskejä, jos et hallitse antamasi salasanan enimmäispituutta käyttäjä. Hyökkääjät voivat esimerkiksi suorittaa hyökkäyksiä kokeilemalla kymmeniä 100 000 merkin pituisia salasanoja samanaikaisesti joidenkin erityisesti valmisteltujen pyyntöjen kanssa. Tällaisessa tapauksessa on erittäin todennäköistä, että järjestelmäsi ei vastaa muille käyttäjille.

Neuvoja loppukäyttäjille

Varmista, että salasanasi pituus on vähintään 12 merkkiä ja varmista isojen ja pienten kirjainten yhdistelmät, numerot ja symbolit. Älä koskaan unohda, että salasanasi tallentaviin järjestelmiin voidaan murtautua ja tietojasi voidaan käyttää väärin. Et voi tietää, mitä algoritmeja järjestelmä käyttää salasanasi salaamiseen, joten on täysin sinun tehtäväsi ryhtyä varotoimiin ja luoda vahvoja salasanoja.