Kako bi puknuće zbog grube sile moglo otkriti vašu lozinku

Čekić pokušava silom otvoriti katanac.

U kriptografiji napad brutalnim silama pokušava dešifrirati šifrirani sadržaj nagađanjem ključa za šifriranje. Ovaj je napad izvediv kad je ključ za šifriranje kratak ili ako napadač ima dovoljno informacija za pokušaj i pogodak ključa.

Kada su u pitanju web obrasci, napadači nemaju puno vremena za pogoditi ključ. Google ili Facebook samo će dopustiti da netko toliko puta pokuša prijaviti na vaš račun prije nego što ga “zaključa.”

Međutim, kada hakeri dobivaju internu bazu podataka tvrtke, cijelo vrijeme imaju na svijetu pogoditi vašu lozinku – čak i ako je šifrirana.

Web stranice trebaju slati i zaporke zaporke kako bi zaštitili korisnike

Kada web stranice pohranjuju vaše lozinke, oni bi trebali (ali ne uvijek) soliti i rušiti korisničke lozinke, tako da ih netko koji posjeduje korisničku bazu podataka ne može koristiti.

Hash funkcije, poput SHA-256, kriptografske su funkcije u jednom smjeru. Bilo koji podatak, tekst, slika ili broj može se “hashed”, i bez obzira koliko je unos dugačak, rezultat će uvijek biti 256 bita. Kada se kodira u heksadecimalnoj fazi (kao dolje), to rezultira nizom od 64 znaka.

Slani reznici pružaju dodatnu zaštituPrimjeri “slanih” hashe-ova, ponovo su promiješali.

Kako napadači probijaju vašu lozinku

Kako bi potencijalnim hakerima bilo teško, web stranice će izmjenjivati ​​lozinke sa “soli”, što je slučajni podatak (pogledajte kako djeluje salting i hashing).

Izračunavanje hash-a iz teksta, slike ili datoteke je trivijalno i neće oduzeti računalu znatnu količinu vremena ili resursa. Ali ako sve što znate je hash, jedini način da saznate izvornu vrijednost je napad brutalnim silama. Zbog toga se funkcija raspršivanja naziva i jednosmjerna enkripcija. Lako je preći iz teksta u hash, ali vrlo je teško ići drugim putem.

Brokeri zaporki koji posjeduju ukradenu korisničku bazu podataka mogu vidjeti popis korisničkih imena, vrijednost soli za svakog korisnika i hash.

Pomoću ovih detalja mogu pokušati pogoditi lozinke svakog korisnika, soliti ih i usitniti te provjeriti njihov rezultat u odnosu na hash pohranjen u bazi podataka. Ako se hash podudara, oni znaju da su pronašli lozinku.

Napadač mora točno unijeti korisničko ime i lozinku, jer će izmjena hash-a čak i samo mali dio (kao što je gore prikazano) rezultirati u potpuno drugom hashu.

Koliko kombinacija zaporki postoji?

Pod pretpostavkom da se lozinka sastoji samo od malih slova, za svaki znak postoji 26 mogućnosti. Stoga biste mogli očekivati ​​da ćete u roku od 13 pokušaja pogoditi jednoznačnu lozinku.

Zaporka s dva znaka ima 26 × 26 opcija i trebala bi (26 × 26) / 2 pokušaja dešifriranja.

Formula c = (m ^ n) / 2 opisuje odnos između mogućnosti za svaki lik (M), duljina lozinke (N) i očekivani broj nagađanja (C).

Odnos između duljine lozinke i broja nagađanja da se probije

Grafikon koji prikazuje koliko nagađanja je potrebno da biste provalili lozinke različitih duljina.

  • Male lozinke (m = 26)
  • Velika i mala slova (m = 52)
  • Velika i mala slova i posebni znakovi (m = 67)

Iako i složenost i dužina doprinose snazi ​​lozinke, puno je vrijednije dodati znak nego povećati njegovu složenost.

Dodavanje dodatnog znaka u četveroznakovnu lozinku, upotrebom samo malih slova, otežava pucanje 26 puta, dok udvostručenje mogućih znakova na 52 (tj. Dodavanje velikih slova) samo čini 16 puta teže.

Logaritamska ljestvica čini vezu između duljine lozinke i potrebnih nagađanja da se ispuca

Grafikon koji prikazuje razmjeru duljine lozinke u odnosu na potrebne pokušaje nagađanja.

  • Male lozinke (m = 26)
  • Velika i mala slova (m = 52)
  • Velika i mala slova i posebni znakovi (m = 67)

Koliko vremena treba probiti lozinku?

Koliko brzo napadač može razbiti vašu lozinku ovisi o tome koliko je brz računalni hardver napadača.

Obično računalo vjerojatno bi napravilo oko 100.000 nagađanja u sekundi. Namjenski GPU mogao bi biti 100 puta brži od ovoga, a moguće je stvoriti farmu za kretanje lozinke sa stotinama GPU-a.

Ako pretpostavimo da napadač ima obično računalo, sposobno 100 000 nagađanja u sekundi, bilo koja mala slova sa manje od šest znakova potrajati će manje od jedne minute.

Ali vrijeme rješavanja eksponencijalno raste, a zaporku od osam znakova trebalo bi 12 dana da probije. Zaporka s 12 znakova trajala bi više od 12.000 godina.

Da li je dovoljna lozinka s 12 znakova ovisi o vrijednosti onoga što štiti i opsegu napada. Ako su napadači samo nakon jednog cilja, unutar njih će možda biti zaporka od 12 znakova.

Važno je, dakle, zaštititi vrijedne podatke (poput osobnih podataka ili Bitcoin privatnih ključeva) s daleko dužim zaporkama. Na primjer, kodiranje vašeg Bitcoin novčanika, dobra ideja može biti ključ od preko 32 znaka.

Što više informacija ima napadač, brže će se dogoditi pukotina

Gornji izračuni pretpostavljaju da napadač ne zna ništa o zaporki, osim uključuje li velika i mala slova.

U stvarnosti, napadač možda ima nekih nagađanja. Iz prethodnih dešifriranih popisa zaporki znamo koje su najčešće lozinke. Ako nema određenog cilja, napadač bi mogao relativno brzo provjeriti uobičajene lozinke s popisom e-pošte.

Ljudi također imaju tendenciju da odaberu zaporke sa samo brojevima na kraju (kao što je hello111) i negdje sadrže ime usluge ili URL. Lozinka koja se koristi za Gmail koja sadrži riječi google ili gmail i na kraju ima četiri znamenke (poput gmailpanther1234), lako se probiti, čak i ako je dugačka.

Ljudi također često koriste imena svojih ljubimaca ili djece kao lozinke, ponekad u kombinaciji s datumima i godinama rođenja, što olakšava pogoditi njihovu lozinku nego što ljudi možda misle.

Upotrijebite snažne lozinke s upraviteljima lozinki

Najvažnije pravilo je: Uvijek koristite jaku lozinku.

Da biste izbjegli gomilu sastavljanja i pamćenja toliko robusnih lozinki, koristite slučajni generator lozinki da biste povoljno stvorili duge, jedinstvene i uistinu neiskorisive lozinke..

Ako te lozinke pohranjujete u upravitelj lozinki, trebat ćete upamtiti samo jednu lozinku (koju možete generirati pomoću Dicewarea, kako biste je učinili dodatnom sigurnošću). Uz to, dvofaktorska provjera autentičnosti pomaže u zaštiti računa od još sofisticiranijih napada, poput lozinki dobivenih phishing napadima.