Kako mreže pohranjuju vaše lozinke i druge podatke za prijavu?

Kako mreže pohranjuju vaše lozinke i druge podatke za prijavu?
Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Prije mnogo godina, nasumične lozinke od osam znakova koje su se sastojale od velikih i malih slova, simbola i brojeva bilo je jako teško razbiti. U nekim slučajevima, za probijanje takve lozinke bile su potrebne godine.





Zahvaljujući današnjoj tehnologiji koja se mijenja i strojevima koji se mogu iznajmiti, to je vrijeme smanjeno na sate. Ali kako se te lozinke uopće pohranjuju?





MAKEUSEOF VIDEO DANA POMICI SE ZA NASTAVAK SA SADRŽAJEM

Kako se lozinke pohranjuju na internetu

Sustavi ne pohranjuju korisničke lozinke izravno u datoteke ili baze podataka jer napadači mogu preuzeti bazu podataka u kojoj sustavi čuvaju lozinke. Umjesto toga, sustavi šifriraju korisničke lozinke, a napadači nailaze na šifriranu verziju svake lozinke.





Postoje neki algoritmi koje sustavi koriste za šifriranje lozinki. Jedan od tih algoritama je simetrični algoritam. Simetrični algoritam je vrsta šifriranja gdje možete koristiti isti ključ i za šifriranje i za dešifriranje. Ključ koji ćete koristiti za šifriranje podataka isti je i za šifriranje i za dešifriranje. Sigurnost simetričnih algoritama nosi određene rizike jer postoji samo jedan ključ za dešifriranje. Iz tog razloga sustavi općenito ne koriste simetrične algoritme za šifriranje lozinki.

Općenito, metoda koju sustavi koriste za šifriranje su hash algoritmi. Hash algoritmi služe za provjeru i predstavljanje integriteta podataka, a ne za šifriranje podataka. Hash algoritmi pretvaraju podatke u hash fiksne veličine. Ovi hashovi obično predstavljaju jedinstveni hash podataka.



Zahvaljujući hash algoritmu, ako je napadač preuzeo bazu podataka zaporki, napadač ne može pristupiti zaporci unatrag odavde. Postoji vrlo važna nijansa na koju biste trebali obratiti pozornost. Teoretski, napadač koji kompromitira sustav koji koristi isti hash algoritam za sve kombinacije lozinki može usporediti dobivene rezultate. Ako napadač proizvede istu vrijednost kao rezultat ovih usporedbi, napadač je saznao koja je otvorena verzija lozinke. Ova metoda temelji se na pokušajima i pogreškama, a ovaj oblik napada jest općenito se naziva napad grubom silom .

Početkom 2000-ih moglo je trebati stotine godina da se isprobaju sve kombinacije za lozinke od 8 znakova šifrirane popularnim algoritmima raspršivanja. Naravno, ovo di ne uključuje vrlo jednostavne kombinacije kao što su '123456' ili 'mypassword' u ovom skupu. Razvojem današnjih softverskih i hardverskih tehnologija, način probijanja lozinki također se dosta promijenio.





Utjecaj GPU-a u nastajanju

  dvije rtx2080 grafičke kartice

Mogućnosti paralelne obrade podataka grafičkih procesora (GPU-a) s vremenom su se poboljšale. GPU-i nisu sposobni izvoditi svestrane operacije poput CPU-a opće namjene. Dakle, iako postoji toliko mnogo jezgri i paralelne procesorske snage, nema smisla koristiti ih za gotovo svaki problem kao što je CPU.

Ipak, moguće je prilično učinkovito izvesti neke hash algoritme koji se koriste za lozinke na GPU-u. Izračunljivi hashovi u sekundi koje možete postići s tradicionalnim CPU-ima strahovito su porasli s novim GPU platformama.





Da biste dobili ideju, proučite brojeve raspršivanja u sekundi algoritama raspršivanja kao što su NTLM, MD5 i SHA1 u tablici u nastavku. Dovoljno je, za sada, znati da su ovi algoritmi samo hash algoritam. Za izradu ove tablice koristio sam sustav klastera koji se sastoji od 25 AMD Radeon GPU-a.

Algoritam

Raspršivanje po sekundi

NTLM

350.000.000.000

MD5

180.000.000.000

SHA1

63 000 000 000

kako promijeniti zaslon za prijavu na mac

SHA512Crypt

364.000

Bcrypt

71.000

Skripta

33.000

Kao što vidite, s takvim sustavom možete generirati NTLM hashove 350 milijardi puta u sekundi. To znači da možete isprobati sve kombinacije lozinke od 8 znakova u manje od 6 sati. Štoviše, hardver u ovom primjeru pripada godinama prije. Zamislite današnju moć probijanja lozinki.

Što bi trebali učiniti programeri softvera?

  Programer koji piše kod

Put kojim bi programeri trebali ići prilično je jednostavan: trebali bi preferirati algoritme kojima je potrebno više vremena za izračunavanje hash vrijednosti prilikom šifriranja zaporki. Programeri moraju naučiti ne samo o izvedbi algoritma koji koriste na CPU-u, već io tome koliko je otporan na GPU svijet.

Ako programeri rade sa softverskim okvirom koji se također bavi procesima enkripcije lozinki kao što su Django, Ruby on Rails i Spring Security, trebali bi provjeriti jesu li unutar okvira donesene ispravne odluke u smislu sigurnosti.

Na primjer, Smisliti , jedna od najčešće korištenih biblioteka za korisničke operacije u Ruby on Rails, koristi Bcrypt kao zadani hash algoritam. Također vam omogućuje korištenje druge metode kao hash algoritma. Bcrypt algoritam je pouzdan jer još uvijek treba jako puno vremena da se GPU pokvari.

Ukratko, što duže traje izračun hash vrijednosti, to ste sigurniji.

Koliko znakova treba imati vaša lozinka?

Svaki dodatni znak koji koristite geometrijski će povećati broj pokušaja i pogrešaka potrebnih za probijanje vaše lozinke i učiniti vašu lozinku sigurnijom.

Razmotrimo ovu situaciju kroz dva različita scenarija. Razmotrite vrijednosti u gornjoj tablici za NTLM hash algoritam i zamislite da ćete pokušati probiti lozinku. Zamislite da ciljate lozinke od osam ili više znakova.

Broj znakova

Velika/mala slova i brojevi

Velika/mala slova, brojevi i posebni simboli

8

manje od 1 minute

2 minute

9

prijenosno računalo ne spava kada je poklopac zatvoren windows 10

2 minute

2 sata

10

2 sata

1 Tjedan

jedanaest

6 dana

2 godine

12

1 godina

200 godina

13

više od 100 godina

kako vratiti niz snapova

više od 1000 godina

Kada pregledate tablicu, možete vidjeti da je upotreba lozinke od najmanje 12 znakova sigurna kada koristite sve kombinacije velikih/malih slova, brojeva i posebnih simbola. Ako ne koristite posebne simbole, ispada da morate koristiti 13 znakova kao sigurnu duljinu lozinke. Ako ste koristili Bcrypt hash metodu umjesto NTLM hash u ovom sustavu, 8 znakova bi bilo dovoljno. Međutim, nemate priliku znati kojom metodom raspršivanja sustav u koji ulazite preko weba čuva vašu lozinku. Zato treba razmotriti sve mogućnosti.

Glavni problem za programere softvera je to što je gotovo nemoguće uvjeriti korisnike da imaju minimalnu lozinku od 12 znakova. Danas se može reći da je stopa korištenja lozinki ove duljine niska. Stoga će, prema scenariju korištenja razvijenog sustava, biti potrebno pronaći sredinu koju će korisnici prihvatiti kako bi poboljšali sigurnost svoje lozinke .

posljednji prijedlog za programere je da provjere ne samo minimalnu duljinu, već i maksimalnu duljinu unosa koji dolaze kroz obrasce koje ste predstavili korisniku. Osobito kada omogućite korištenje hash algoritma koji se sporo izračunava kao što je Bcrypt iz sigurnosnih razloga, možete se susresti s određenim rizicima ako ne kontrolirate maksimalnu duljinu lozinke koju unese korisnik. Na primjer, napadači mogu izvoditi napade isprobavajući desetke lozinki od 100 tisuća znakova istovremeno uz neke posebno pripremljene zahtjeve. U tom slučaju vrlo je vjerojatno da će vaš sustav prestati reagirati na druge korisnike.

Savjeti krajnjim korisnicima

Zaporka neka ima najmanje 12 znakova i uključite kombinacije velikih i malih slova, brojeve i simbole. Nikad ne zaboravite da sustavi koji pohranjuju vašu lozinku mogu biti hakirani, a vaši podaci zloupotrijebljeni. Ne možete znati koje algoritme sustav koristi za šifriranje vaše lozinke, tako da je u potpunosti na vama da poduzmete mjere opreza i stvorite jake lozinke.