Slaptažodžio rūšis, kurią turėtumėte sukurti, labai priklauso nuo slaptažodžio saugojimo.

Prieš daugelį metų aštuonių simbolių atsitiktinius slaptažodžius, sudarytus iš didžiųjų ir mažųjų raidžių, simbolių ir skaičių, buvo tikrai sunku nulaužti. Kai kuriais atvejais tokiam slaptažodžiui įlaužti prireikė metų.

Dėl šiandien besikeičiančių technologijų ir nuomojamų mašinų šis laikas sutrumpėjo iki valandų. Bet kaip šie slaptažodžiai iš pradžių saugomi?

Kaip slaptažodžiai saugomi internete

Sistemos nesaugo vartotojų slaptažodžių tiesiogiai failuose ar duomenų bazėse, nes užpuolikai gali perimti duomenų bazę, kurioje sistemos saugo slaptažodžius. Vietoj to, sistemos užšifruoja vartotojų slaptažodžius, o užpuolikai susiduria su užšifruota kiekvieno slaptažodžio versija.

Yra keletas algoritmų, kuriuos sistemos naudoja slaptažodžiams užšifruoti. Vienas iš šių algoritmų yra simetrinis algoritmas. Simetrinis algoritmas yra šifravimo rūšis kur galite naudoti tą patį raktą šifravimui ir iššifravimui. Raktas, kurį naudosite duomenims užšifruoti, yra tas pats šifruojant ir iššifruojant. Simetrinių algoritmų saugumas kelia tam tikrą pavojų, nes yra tik vienas iššifravimo raktas. Dėl šios priežasties sistemos paprastai nenaudoja simetriškų slaptažodžių šifravimo algoritmų.

instagram viewer

Paprastai metodas, kurį sistemos naudoja šifravimui, yra maišos algoritmai. Maišos algoritmai skirti duomenų vientisumui patikrinti ir reprezentuoti, o ne duomenims šifruoti. Maišos algoritmai konvertuoja duomenis į fiksuoto dydžio maišą. Šios maišos paprastai reiškia unikalią duomenų maišą.

Dėl maišos algoritmo, jei užpuolikas perėmė slaptažodžių duomenų bazę, užpuolikas negali pasiekti slaptažodžio atgal iš čia. Čia yra labai svarbus niuansas, į kurį turėtumėte atkreipti dėmesį. Teoriškai užpuolikas, kuris pažeidžia sistemą, kuri naudoja tą patį maišos algoritmą visoms slaptažodžių kombinacijoms, gali palyginti gautus rezultatus. Jei atlikęs šiuos palyginimus užpuolikas pateikia tą pačią reikšmę, užpuolikas išsiaiškino, kokia yra atviroji slaptažodžio versija. Šis metodas yra susijęs su bandymais ir klaidomis, o ši atakos forma yra tokia paprastai vadinamas brutalios jėgos ataka.

2000-ųjų pradžioje gali prireikti šimtų metų, kol bus išbandytos visos 8 simbolių slaptažodžių, užšifruotų populiariais maišos algoritmais, kombinacijos. Žinoma, šiame rinkinyje nėra labai paprastų derinių, tokių kaip „123456“ arba „mano slaptažodis“. Tobulėjant šiuolaikinėms programinės ir techninės įrangos technologijoms, labai pasikeitė ir slaptažodžių nulaužimo būdas.

Naujų GPU poveikis

Laikui bėgant tobulėjo lygiagretaus grafikos procesorių (GPU) duomenų apdorojimo galimybės. GPU negali atlikti universalių operacijų, tokių kaip bendrosios paskirties procesoriai. Taigi, nors yra tiek daug branduolių ir lygiagretaus apdorojimo galios, nėra prasmės juos naudoti beveik visoms problemoms spręsti CPU.

Tačiau kai kuriuos slaptažodžiams naudojamus maišos algoritmus galima gana efektyviai atlikti GPU. Apskaičiuojamos maišos per sekundę skaičius, kurį galite pasiekti naudodami tradicinius procesorius, nepaprastai išaugo naudojant naujas GPU platformas.

Norėdami suprasti, toliau pateiktoje lentelėje išnagrinėkite maišos algoritmų, tokių kaip NTLM, MD5 ir SHA1, maišos skaičius per sekundę. Kol kas pakanka žinoti, kad šie algoritmai yra tik maišos algoritmas. Norėdami sukurti šią lentelę, naudojau klasterių sistemą, kurią sudaro 25 AMD Radeon GPU.

Algoritmas

Maišos per sekundę

NTLM

350.000.000.000

MD5

180.000.000.000

SHA1

63.000.000.000

SHA512 kripta

364.000

Bcrypt

71.000

Scrypt

33.000

Kaip matote, su tokia sistema galite generuoti NTLM maišą 350 milijardų kartų per sekundę. Tai reiškia, kad galite išbandyti visus 8 simbolių slaptažodžio derinius greičiau nei per 6 valandas. Be to, aparatinė įranga šiame pavyzdyje priklauso metų senumo. Įsivaizduokite šiandienos slaptažodžių nulaužimo galią.

Ką turėtų daryti programinės įrangos kūrėjai?

Programuotojai turėtų eiti gana paprastai: jie turėtų teikti pirmenybę algoritmams, kurių maišos reikšmių skaičiavimas užtrunka ilgiau, kai šifruojami slaptažodžiai. Kūrėjai turi sužinoti ne tik apie procesoriaus naudojamo algoritmo našumą, bet ir apie jo atsparumą GPU pasauliui.

Jei kūrėjai dirba su programinės įrangos sistema, kuri taip pat skirta slaptažodžių šifravimo procesams, pvz., Django, Ruby on Rails ir Spring Security, jie turėtų patikrinti, ar buvo priimti teisingi sprendimai saugumo.

Pavyzdžiui, Sugalvoti, viena iš dažniausiai Ruby on Rails naudotojo operacijoms naudojamų bibliotekų, naudoja Bcrypt kaip numatytąjį maišos algoritmą. Tai taip pat leidžia naudoti kitą metodą kaip maišos algoritmą. „Bcrypt“ algoritmas yra patikimas, nes vis tiek reikia labai ilgai, kol GPU sugenda.

Apibendrinant galima pasakyti, kad kuo ilgiau trunka maišos vertės apskaičiavimas, tuo esate saugesnis.

Kiek simbolių turėtų būti jūsų slaptažodis?

Kiekvienas papildomas simbolis, kurį naudosite, geometriškai padidins bandymų ir klaidų skaičių, reikalingą slaptažodžiui nulaužti ir padaryti slaptažodį saugesnį.

Panagrinėkime šią situaciją dviem skirtingais scenarijais. Apsvarstykite NTLM maišos algoritmo reikšmes aukščiau esančioje lentelėje ir įsivaizduokite, kad bandysite nulaužti slaptažodį. Įsivaizduokite, kad taikote pagal aštuonių ar daugiau simbolių slaptažodžius.

Simbolių skaičius

Didžiosios / mažosios raidės ir skaičiai

Didžiosios / mažosios raidės, skaičiai ir specialieji simboliai

8

mažiau nei 1 minutę

2 minutės

9

2 minutės

2 valandos

10

2 valandos

1 savaitė

11

6 dienos

2 metai

12

1 metai

200 metų

13

daugiau nei 100 metų

daugiau nei 1000 metų

Išnagrinėję lentelę matote, kad naudoti mažiausiai 12 simbolių slaptažodį yra saugu, kai naudojate visas didžiųjų ir mažųjų raidžių, skaičių ir specialiųjų simbolių kombinacijas. Jei nenaudojate specialių simbolių, kaip saugaus slaptažodžio ilgio reikia naudoti 13 simbolių. Jei šioje sistemoje naudotumėte Bcrypt maišos metodą, o ne NTLM maišą, pakaktų 8 simbolių. Tačiau jūs neturite galimybės žinoti, kokiu maišos metodu sistema, kurią įvedėte per žiniatinklį, išsaugo jūsų slaptažodį. Štai kodėl turėtumėte apsvarstyti visas galimybes.

Pagrindinė programinės įrangos kūrėjų problema yra ta, kad beveik neįmanoma įtikinti vartotojų turėti mažiausiai 12 simbolių slaptažodį. Šiandien galima teigti, kad tokio ilgio slaptažodžių naudojimo dažnis yra mažas. Todėl pagal kuriamos sistemos naudojimo scenarijų reikės rasti aukso vidurį, kurį priimtų vartotojai pagerinti slaptažodžių apsaugą.

paskutinis pasiūlymas kūrėjams yra patikrinti ne tik minimalų, bet ir didžiausią įvesties, gaunamos per formas, kurias pateikėte vartotojui, ilgį. Ypač kai įgalinate naudoti lėtai skaičiuojamą maišos algoritmą, pvz., „Bcrypt“ dėl saugumo tikslais, galite susidurti su tam tikra rizika, jei nekontroliuosite maksimalaus įvesto slaptažodžio ilgio Vartotojas. Pavyzdžiui, užpuolikai gali vykdyti atakas bandydami dešimtis slaptažodžių iš 100 tūkstančių simbolių vienu metu su tam tikromis specialiai paruoštomis užklausomis. Tokiu atveju labai tikėtina, kad jūsų sistema nereaguos į kitus vartotojus.

Patarimai galutiniams vartotojams

Slaptažodį sudarykite bent 12 simbolių ir būtinai įtraukite didžiųjų ir mažųjų raidžių derinius, skaičius ir simbolius. Niekada nepamirškite, kad sistemos, kuriose saugomas jūsų slaptažodis, gali būti įsilaužtos ir jūsų informacija gali būti piktnaudžiaujama. Negalite žinoti, kokius algoritmus sistema naudoja slaptažodžiui užšifruoti, todėl jūs turite imtis atsargumo priemonių ir sukurti stiprius slaptažodžius.