Paroles veids, kas jums jāizveido, lielā mērā ir saistīts ar paroles saglabāšanu.

Pirms gadiem astoņu rakstzīmju nejaušas paroles, kas sastāvēja no lielajiem un mazajiem burtiem, simboliem un cipariem, bija patiešām grūti uzlauzt. Dažos gadījumos šādas paroles uzlaušana prasīja vairākus gadus.

Pateicoties mūsdienu mainīgajām tehnoloģijām un iznomājamām mašīnām, šis laiks ir samazināts līdz stundām. Bet kā šīs paroles vispār tiek glabātas?

Kā paroles tiek saglabātas tiešsaistē

Sistēmas neuzglabā lietotāju paroles tieši failos vai datu bāzēs, jo uzbrucēji var pārņemt datu bāzi, kurā sistēmas glabā paroles. Tā vietā sistēmas šifrē lietotāju paroles, un uzbrucēji saskaras ar katras paroles šifrētu versiju.

Ir daži algoritmi, ko sistēmas izmanto paroļu šifrēšanai. Viens no šiem algoritmiem ir simetriskais algoritms. Simetriskais algoritms ir šifrēšanas veids kur var izmantot vienu un to pašu atslēgu gan šifrēšanai, gan atšifrēšanai. Atslēga, ko izmantosit datu šifrēšanai, ir viena un tā pati gan šifrēšanai, gan atšifrēšanai. Simetrisko algoritmu drošība ir saistīta ar zināmiem riskiem, jo ​​atšifrēšanai ir tikai viena atslēga. Šī iemesla dēļ sistēmas parasti neizmanto simetriskus algoritmus paroles šifrēšanai.

instagram viewer

Parasti metode, ko sistēmas izmanto šifrēšanai, ir jaukšanas algoritmi. Hash algoritmi ir paredzēti datu integritātes pārbaudei un attēlošanai, nevis datu šifrēšanai. Jaukšanas algoritmi pārvērš datus fiksēta izmēra jaucējkodā. Šīs jaucējzīmes parasti ir unikāla datu jaukšana.

Pateicoties hash algoritmam, ja uzbrucējs ir pārņēmis paroļu datu bāzi, uzbrucējs nevar piekļūt parolei atpakaļ no šejienes. Šeit ir ļoti svarīga nianse, kurai vajadzētu pievērst uzmanību. Teorētiski uzbrucējs, kurš kompromitē sistēmu, kas visām paroļu kombinācijām izmanto vienu jaukšanas algoritmu, var salīdzināt iegūtos rezultātus. Ja uzbrucējs šo salīdzinājumu rezultātā rada tādu pašu vērtību, uzbrucējs ir noskaidrojis, kāda ir paroles atvērtā versija. Šī metode ir saistīta ar izmēģinājumiem un kļūdām, un šis uzbrukuma veids ir tāds parasti sauc par brutālā spēka uzbrukumu.

2000. gadu sākumā varēja paiet simtiem gadu, lai izmēģinātu visas 8 rakstzīmju paroļu kombinācijas, kas šifrētas ar populāriem jaukšanas algoritmiem. Protams, šajā komplektā nav iekļautas ļoti vienkāršas kombinācijas, piemēram, "123456" vai "mana parole". Attīstoties mūsdienu programmatūras un aparatūras tehnoloģijām, arī paroļu uzlaušanas metode ir ļoti mainījusies.

Jauno GPU ietekme

Laika gaitā ir uzlabojušās grafikas procesoru (GPU) paralēlās datu apstrādes iespējas. GPU nespēj veikt daudzpusīgas darbības, piemēram, vispārējas nozīmes CPU. Tātad, lai gan tādi ir tik daudz kodolu un paralēlas apstrādes jaudas, nav jēgas tos izmantot gandrīz visām problēmām, piemēram PROCESORS.

Tomēr ir iespējams diezgan efektīvi veikt dažus jaukšanas algoritmus, kas tiek izmantoti parolēm, izmantojot GPU. Aprēķināmās jaucējvērtības sekundē, ko varat sasniegt ar tradicionālajiem CPU, ir ārkārtīgi pieaudzis ar jaunām GPU platformām.

Lai iegūtu priekšstatu, tālāk esošajā tabulā pārbaudiet jaukšanas skaitļus sekundē tādiem jaukšanas algoritmiem kā NTLM, MD5 un SHA1. Pagaidām pietiek zināt, ka šie algoritmi ir tikai jaukšanas algoritms. Lai izveidotu šo tabulu, es izmantoju klasteru sistēmu, kas sastāv no 25 AMD Radeon GPU.

Algoritms

Jaukšana sekundē

NTLM

350.000.000.000

MD5

180.000.000.000

SHA1

63.000.000.000

SHA512Kripta

364.000

Bcrypt

71.000

Scrypt

33.000

Kā redzat, ar šādu sistēmu jūs varat ģenerēt NTLM jaucējus 350 miljardus reižu sekundē. Tas nozīmē, ka varat izmēģināt visas 8 rakstzīmju paroles kombinācijas mazāk nekā 6 stundu laikā. Turklāt aparatūra šajā piemērā pieder pirms gadiem. Iedomājieties mūsdienu paroļu uzlaušanas spēku.

Kas būtu jādara programmatūras izstrādātājiem?

Programmētājiem ir jādodas pavisam vienkārši: viņiem vajadzētu dot priekšroku algoritmiem, kuru jaucējvērtību aprēķināšana prasa ilgāku laiku, šifrējot paroles. Izstrādātājiem ir jāapgūst ne tikai CPU izmantotā algoritma veiktspēja, bet arī tas, cik tas ir izturīgs pret GPU pasauli.

Ja izstrādātāji strādā ar programmatūras ietvaru, kas attiecas arī uz paroļu šifrēšanas procesiem, piemēram, Django, Ruby on Rails, un Spring Security, viņiem vajadzētu pārbaudīt, vai ir pieņemti pareizi lēmumi ietvaros attiecībā uz drošību.

Piemēram, Izstrādāt, kas ir viena no visvairāk izmantotajām bibliotēkām lietotāju darbībām Ruby on Rails, izmanto Bcrypt kā noklusējuma jaukšanas algoritmu. Tas arī ļauj izmantot citu metodi kā jaukšanas algoritmu. Bcrypt algoritms ir uzticams, jo joprojām ir nepieciešams ļoti ilgs laiks, līdz GPU sabojājas.

Rezumējot, jo ilgāk notiek jaucējvērtības aprēķināšana, jo drošāks esat.

Cik rakstzīmēm jābūt jūsu parolei?

Katra izmantotā papildu rakstzīme ģeometriski palielinās izmēģinājumu un kļūdu skaitu, kas nepieciešams, lai uzlauztu paroli un padarītu paroli drošāku.

Apskatīsim šo situāciju, izmantojot divus dažādus scenārijus. Apsveriet NTLM jaukšanas algoritma vērtības iepriekš tabulā un iedomājieties, ka mēģināsit uzlauzt paroli. Iedomājieties, ka atlasāt paroles, kuru garums ir astoņas vai vairāk rakstzīmes.

Rakstzīmju skaits

Lielie/mazie burti un cipari

Lielie/mazie burti, cipari un īpašie simboli

8

mazāk par 1 minūti

2 minūtes

9

2 minūtes

2 stundas

10

2 stundas

1 nedēļa

11

6 dienas

2 gadi

12

1 gads

200 gadi

13

vairāk nekā 100 gadus

vairāk nekā 1000 gadus

Pārbaudot tabulu, varat redzēt, ka vismaz 12 rakstzīmju paroles izmantošana ir droša, ja izmantojat visas lielo/mazo burtu, ciparu un īpašo simbolu kombinācijas. Ja neizmantojat īpašos simbolus, izrādās, ka jums ir jāizmanto 13 rakstzīmes kā drošas paroles garums. Ja šajā sistēmā izmantotu Bcrypt hash metodi, nevis NTLM hash, pietiktu ar 8 rakstzīmēm. Tomēr jums nav iespējas zināt, ar kādu jaucējmetodi tīmeklī ievadītā sistēma saglabā jūsu paroli. Tāpēc jums vajadzētu apsvērt visas iespējas.

Programmatūras izstrādātāju galvenā problēma ir tā, ka ir gandrīz neiespējami pārliecināt lietotājus par vismaz 12 rakstzīmju paroli. Šodien var teikt, ka šāda garuma paroles izmantošanas līmenis ir zems. Līdz ar to atbilstoši izstrādātās sistēmas lietošanas scenārijam būs jāatrod vidusceļš, ko akceptēs lietotāji lai uzlabotu viņu paroles drošību.

pēdējais ieteikums izstrādātājiem ir pārbaudīt ne tikai minimālo garumu, bet arī maksimālo garumu ievadei, kas nāk caur veidlapām, kuras esat iesniedzis lietotājam. It īpaši, ja drošības nolūkos iespējojat lēni aprēķināmu jaukšanas algoritmu, piemēram, Bcrypt nolūkos, jūs varat saskarties ar dažiem riskiem, ja nekontrolēsit ievadītās paroles maksimālo garumu lietotājs. Piemēram, uzbrucēji var veikt uzbrukumus, vienlaikus izmēģinot desmitiem paroļu ar 100 tūkstošiem rakstzīmju ar dažiem īpaši sagatavotiem pieprasījumiem. Šādā gadījumā ir ļoti iespējams, ka jūsu sistēma nereaģēs uz citiem lietotājiem.

Padomi galalietotājiem

Padariet paroles garumu vismaz 12 rakstzīmes un noteikti iekļaujiet lielo un mazo burtu kombinācijas, ciparus un simbolus. Nekad neaizmirstiet, ka sistēmas, kurās tiek glabāta jūsu parole, var tikt uzlauztas un jūsu informācija var tikt ļaunprātīgi izmantota. Jūs nevarat zināt, kādus algoritmus sistēma izmanto jūsu paroles šifrēšanai, tāpēc jums ir jāveic piesardzības pasākumi un jāizveido spēcīgas paroles.