See, millise parooli peaksite looma, sõltub suuresti parooli salvestamise viisist.

Aastaid tagasi oli kaheksakohalisi juhuslikke paroole, mis koosnesid suur- ja väiketähtedest, sümbolitest ja numbritest, väga raske lahti murda. Mõnel juhul kulus sellise parooli lahtimurdmiseks aastaid.

Tänu tänapäeval muutuvale tehnoloogiale ja renditavatele masinatele on see aeg lühenenud tundideks. Aga kuidas neid paroole üldse salvestatakse?

Kuidas paroole võrgus salvestatakse

Süsteemid ei salvesta kasutajate paroole otse failidesse või andmebaasidesse, sest ründajad võivad võtta üle andmebaasi, kus süsteemid paroole hoiavad. Selle asemel krüpteerivad süsteemid kasutajate paroolid ja ründajad puutuvad kokku iga parooli krüptitud versiooniga.

Süsteemid kasutavad paroolide krüptimiseks mõningaid algoritme. Üks neist algoritmidest on sümmeetriline algoritm. Sümmeetriline algoritm on krüptimise tüüp kus saate kasutada sama võtit nii krüptimiseks kui ka dekrüpteerimiseks. Andmete krüptimiseks kasutatav võti on nii krüptimisel kui ka dekrüpteerimisel sama. Sümmeetriliste algoritmide turvalisusega kaasnevad teatud riskid, kuna dekrüpteerimiseks on ainult üks võti. Sel põhjusel ei kasuta süsteemid paroolide krüptimiseks tavaliselt sümmeetrilisi algoritme.

instagram viewer

Üldiselt kasutavad süsteemid krüpteerimiseks räsialgoritme. Räsialgoritmid on mõeldud andmete terviklikkuse kontrollimiseks ja esitamiseks, mitte andmete krüptimiseks. Räsilgoritmid teisendavad andmed fikseeritud suurusega räsiks. Need räsid esindavad tavaliselt ainulaadset andmete räsi.

Tänu räsialgoritmile, kui ründaja on paroolide andmebaasi üle võtnud, ei pääse ründaja siit paroolile tagasi. Siin on väga oluline nüanss, millele peaksite siin tähelepanu pöörama. Teoreetiliselt saab ründaja, kes kompromiteerib süsteemi, mis kasutab kõigi paroolikombinatsioonide jaoks sama räsialgoritmi, saadud tulemusi võrrelda. Kui ründaja annab nende võrdluste tulemusel sama väärtuse, on ründaja välja selgitanud, milline on parooli avatud versioon. See meetod põhineb katse-eksitusmeetodil ja see ründevorm on seda mida üldiselt nimetatakse toore jõu rünnakuks.

2000. aastate alguses võis populaarsete räsimisalgoritmidega krüpteeritud 8-kohaliste paroolide kõigi kombinatsioonide proovimiseks kuluda sadu aastaid. Muidugi ei sisalda see komplekt väga lihtsaid kombinatsioone, nagu "123456" või "minu parool". Tänapäeva tarkvara- ja riistvaratehnoloogiate arenguga on palju muutunud ka paroolide murdmise meetod.

Arenevate GPU-de mõju

Graafikaprotsessorite (GPU) paralleelse andmetöötluse võimalused on aja jooksul paranenud. GPU-d ei ole võimelised täitma mitmekülgseid toiminguid nagu üldotstarbelised CPU-d. Nii et kuigi neid on nii palju südamikke ja paralleelset töötlemisvõimsust, pole mõtet neid peaaegu iga probleemi jaoks kasutada PROTSESSOR.

Siiski on GPU-s võimalik mõnda paroolide jaoks kasutatavat räsialgoritmi üsna tõhusalt täita. Arvutatavad räsid sekundis, mida saate traditsiooniliste protsessoritega saavutada, on uute GPU-platvormidega tohutult kasvanud.

Aimu saamiseks uurige allolevast tabelist räsialgoritmide (nt NTLM, MD5 ja SHA1) räsimisarve sekundis. Praegu piisab teadmisest, et need algoritmid on vaid räsialgoritmid. Selle tabeli koostamiseks kasutasin 25 AMD Radeoni GPU-st koosnevat klastrisüsteemi.

Algoritm

Räsimised sekundis

NTLM

350.000.000.000

MD5

180.000.000.000

SHA1

63.000.000.000

SHA512Krüpt

364.000

Bcrypt

71.000

Scrypt

33.000

Nagu näete, saate sellise süsteemiga genereerida NTLM-i räsi 350 miljardit korda sekundis. See tähendab, et saate proovida kõiki 8-kohalise parooli kombinatsioone vähem kui 6 tunniga. Veelgi enam, selle näite riistvara pärineb aastate tagusest ajast. Kujutage ette tänapäeva paroolimurdmise võimet.

Mida peaksid tarkvaraarendajad tegema?

Programmeerijate tee on üsna lihtne: nad peaksid paroolide krüptimisel eelistama algoritme, mille räsiväärtuste arvutamine võtab kauem aega. Arendajad peavad õppima mitte ainult protsessoris kasutatava algoritmi jõudluse kohta, vaid ka selle kohta, kui vastupidav see on GPU maailma suhtes.

Kui arendajad töötavad tarkvararaamistikuga, mis käsitleb ka paroolide krüpteerimisprotsesse, nagu Django, Ruby on Rails ja Spring Security peaksid nad kontrollima, kas raamistikus on tehtud õiged otsused turvalisus.

Näiteks, Mõelge välja, mis on Ruby on Railsis üks enimkasutatud teeke kasutajatoimingute jaoks, kasutab vaikimisi räsialgoritmina Bcrypti. Samuti võimaldab see räsialgoritmina kasutada teist meetodit. Bcrypt-algoritm on usaldusväärne, kuna GPU purunemiseks kulub ikka väga kaua aega.

Kokkuvõttes võib öelda, et mida kauem räsiväärtuse arvutamine aega võtab, seda turvalisem olete.

Mitu tähemärki peaks teie paroolis olema?

Iga kasutatav lisamärk suurendab geomeetriliselt parooli murdmiseks ja parooli turvalisemaks muutmiseks vajalike katsete ja vigade arvu.

Vaatleme seda olukorda kahe erineva stsenaariumi kaudu. Mõelge ülaltoodud tabelis olevatele NTLM-i räsialgoritmi väärtustele ja kujutage ette, et proovite parooli murda. Kujutage ette, et sihite kaheksa või enama tähemärgi pikkust parooli.

Tähemärkide arv

Suured/väikesed tähed ja numbrid

Suured/väikesed tähed, numbrid ja erisümbolid

8

vähem kui 1 minut

2 minutit

9

2 minutit

2 tundi

10

2 tundi

1 nädal

11

6 päeva

2 aastat

12

1 aasta

200 aastat

13

rohkem kui 100 aastat

rohkem kui 1000 aastat

Tabelit uurides näete, et minimaalselt 12-kohalise parooli kasutamine on ohutu, kui kasutate kõiki suur- ja väiketähtede, numbrite ja erisümbolite kombinatsioone. Kui te ei kasuta erisümboleid, siis selgub, et peate turvalise parooli pikkusena kasutama 13 tähemärki. Kui kasutaksite selles süsteemis NTLM-räsi asemel Bcrypt hash meetodit, piisaks 8 märgist. Teil pole aga võimalust teada, millise räsimeetodiga veebi kaudu sisestatud süsteem teie parooli hoiab. Sellepärast peaksite kaaluma kõiki võimalusi.

Tarkvaraarendajate peamine probleem on see, et kasutajaid on peaaegu võimatu veenda omama minimaalselt 12-kohalist parooli. Tänapäeval võib öelda, et sellise pikkusega parooli kasutusmäär on madal. Seetõttu on arendatud süsteemi kasutusstsenaariumi kohaselt vaja leida kesktee, mille kasutajad aktsepteerivad parooli turvalisuse parandamiseks.

Viimane soovitus arendajatele on kontrollida mitte ainult minimaalset pikkust, vaid ka kasutajale esitatud vormide kaudu tulevate sisendite maksimaalset pikkust. Eriti kui lubate turvalisuse tagamiseks kasutada aeglaselt arvutatavat räsialgoritmi, näiteks Bcrypt Kui te ei kontrolli sisestatud parooli maksimaalset pikkust, võite kokku puutuda teatud riskidega kasutaja. Näiteks võivad ründajad sooritada rünnakuid, proovides mõne spetsiaalselt ettevalmistatud päringuga samaaegselt kümneid 100 tuhande tähemärgi pikkusi paroole. Sellisel juhul on väga tõenäoline, et teie süsteem ei reageeri teistele kasutajatele.

Nõuanded lõppkasutajatele

Parooli pikkus peab olema vähemalt 12 tähemärki ning kindlasti sisaldama suur- ja väiketähtede kombinatsioone, numbreid ja sümboleid. Ärge kunagi unustage, et teie parooli salvestavaid süsteeme saab häkkida ja teie teavet võidakse kuritarvitada. Te ei saa teada, milliseid algoritme süsteem teie parooli krüpteerimiseks kasutab, seega on ettevaatusabinõude rakendamine ja tugevate paroolide loomine täielikult teie enda teha.