Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
Prijevodi ove stranice:

Procjena sigurnosti lozinke pomoću neuronske mreže

Sažetak

Najčešći cyber napad je napad na korisničke podatke tj. na lozinku korisnika nekog internet servisa. Kvalitetno konstruirana lozinka omogućuje korisniku da se zaštiti od napada na njegovu lozinku, a kako bi korisnik znao koja je lozinka zapravo sigurna postoje password strength meteri koji korisniku daju povratnu informaciju koliko je potrebno napadaču da ju probije. Neki password strength meteri rade pomoću heurističke karakteristike lozinki kao što su: broj različitih klasa znakova, koliko lozinka ima specijalni znakova i koliko je dugačka lozinka. Naime postoje i password strength meteri koji koriste neuronske mreže za predviđanje koliko je napadaču potrebno da probije lozinke te su se pokazale kao vrlo učinkovite što se tiče brzine i točnosti predviđanja.

Ključne riječi: password strength meter; napad; neuronska mreža; strojno učenje; lozinka;

Uvod

Ljudi se u današnje vrijeme svaki dan susreću s lozinkama te su one postale dio „normalnog“ i digitalnog života. Kako bi kreirali računa na nekom od internet servisa potrebno je osmisliti lakopamtljivu i sigurnu lozinku. Što je zapravo kontradikcija, ako je lozinka lako pamtljiva tada je najčešće i vrlo jednostavna za probiti. Svakodnevno se dogodi oko 26 tisuća napada te najčešći napadi su upravo na korisničke račune tj. lozinke korisnika. Kvalitetna lozinka je jedina stvar koja štiti privatne podatke korisnika od napadača koji ih se žele domoći. Kako znamo što je kvalitetno konstruirana lozinka? Na mnogim stranicama postoje takozvani pokazivači jačine lozinke (engl. password strength meters) koji pokazuju koliko je lozinka korisnika sigurna tj. otporna na probijanje od strane napadača. Kako se točno računa ta sigurnost i je li to dobar način obrađeno je u ovom seminarskom radu.

Kvalitetna lozinka

Postoje razni napadi na lozinke koje je moguće pronaći u poglavlju Napadi na lozinke. Kako bi otežali provedbu tih napada potrebno je kvalitetno konstruirati lozinku tj. lozinka mora zadovoljavati sljedeće kriterije:

  • Minimalno 12 znamenki
  • Minimalno 4 klase znakova (velikih/malih slova, brojeva, specijalnih znakova)
  • Izbjegavati poznate obrasce lozinke (npr. 6 znakova na početku i 2 broja na kraju)
  • Izbjegavati lozinke koje su javno dostupne (već probijene lozinke)
  • Potrebno je mijenjati lozinku 30-45 dana ovisno o razini sigurnosti

Ako lozinka sadrži navedene kriterije tada je sigurna od apsolutno svih komercijalno poznatih napada na lozinke. Ako lozinka ima više od 12 znamenki tada je metoda napada grubom silom iscrpna te će trajati sigurno više od 2 mjeseca te samim time iako se provede napad na ovakvu lozinku, ako ju promijenimo nakon 30 dana tada je napad neuspješan. Ako lozinka sadrži 4 klase znakova samim time otporna je na napade rječnikom i kombiniranim napadom (napada s pravilima tj. napada s poznatim obrascima lozinki). Također je lozinka zaštićena i od napada duginim tablicama (engl. Rainbow table attack) jer se zapravo stvaraju iz rječnika koji se koristi za napad rječnikom. Zadnji kriterij je opcionalan jer je napadačima cilj da što brže i što lakše dođu do korisničkih podataka, ako je napadaču potrebno nekoliko mjeseci da dođe do njih odustat će i napasti drugog korisnika.

Napadi na lozinke

Postoje online i offline napadi na lozinke. Online napad na lozinke je kada se direktno napada servis (npr. ssh pristup serveru) tj. u stvarnom vremenu, a offline napad na lozinke je kada napadač poznaje sažetak lozinke te koristi razne metode da dobije lozinku koja se nalazi iza tog sažetka. U ovom seminarskom radu obrađeno je samo offline napad na lozinke jer su one ključni faktor za kasnije poglavlje Metode za pogađanje lozinki tj. kako rade password strength meters na internetskim stranicama kod stvaranja korisničkog profila.

Napad grubom silom

Napad grubom silom je napad koji kombinira sve moguće kombinacije klasa znamenki (mala/velika slova, brojeve, specijalne znakove) i sve moguće duljine lozinke inkrementalno počevši od 1. Napad grubom silom je također jedini napad koji je uvijek teoretski uspješan tj. moguće je probiti bilo koji sažetak, ali naravno ne u stvarnom vremenu. Postoje 4 poznate vrste napada grubom silom:

  • Bez poznatih informacija o lozinki (engl. plain brute force attack)
  • Poznata duljina lozinke
  • Poznata maska lozinke
  • Poznati dijelovi lozinke (npr. poznati su prva 2 znaka lozinke)

Najbolji od spomenutih napada je naravno napad s poznatim dijelovima lozinke jer samim time smanjujemo prostor za pogađanje koji je inicijalno velik. Npr. ako se napada lozinka s 12 znakova i poznata su prvih 8 znakova tada će probijanje biti trivijalno.


Najgori od spomenutih napada je napad bez poznatih informacija o lozinki jer je tada potrebno pretražiti cijeli prostor za pogađanje koji sadrži sve kombinacije svih 4 klasa znamenki, također s različitim duljinama kombinacija.

Napad rječnikom

Kako bi napadač mogao izvršiti napad rječnikom potreban mu je rječnik. Rječnik je skup lozinki zapisanih u obliku običnog teksta u datoteku. Osnovi koncept napada rječnikom je da napadač od svake riječi iz rječnika računa sažetak određenim algoritmom te uspoređuje je li pronađena kolizija između riječi iz rječnika i napadnutog sažetka. Postoje dvije vrste napada rječnikom:

  • Običan napada rječnikom (engl. Dictionary attack)
  • Kombinirani napad (engl. Dictionary attack + rules)

Kombinirani napada je napada kojim napadač može pogoditi lozinke koje imaju smisleno značenje npr. ako u rječniku imamo riječi: konj, mačka, pas, baterija. Lozinka koju napadamo glasi: pasbaterijakonj tada će kombinirani napada vrlo lako pogoditi tu lozinku jer radi na principu spajanje više rječnika u jedan veliki rječnik te tako ima veći prostor pretraživanja lozinke. Također napadač može dodati određena pravila npr. na svaki kraj riječi u rječniku postavi broj 1 ili a zamjeni s @. Moderni alati za razbijanje sažetka lozinki kao što su: Hashcat i John The Ripper već posjeduju svoja inicijalna pravila koja se mogu koristiti. Također napada rječnikom je znatno brži od napada grubom silom jer ima manji prostor pretraživanja, ali ako lozinka ne postoji u rječniku tada je nemoguće uspiješno provesti napad.

Napad duginim tablicama

Osnovni koncept napada duginim tablicama (engl. Rainbow table attack) je nešto drugačiji od prethodno navedenih napada. Za provedbu ovog napada napadač treba imati tablicu s parovima vrijednosti sažetak i lozinka iz koje se izračunao sažetak. Samim time kada napadač provodi ovaj napada usporedba se vrši samo na između vrijednosti sažetaka, a lozinka je kako bi napadač znao koja je zapravo lozinka kada pronađe koliziju između dva sažetka. Napad duginim tablicama je najbrži napada tj. vremenski je najefikasniji. Vremenska kompleksnost pretrage kolizije je O(1), ali zato je memorijski prostor za cijelu tablicu enormno velik (gigabajtna skala).

Metode za procjenu sigurnosti lozinke

Postoje mnogi alati koji korisniku daju povratnu informaciju o jačini njegove lozinke. Neki od tih alata su: Kaspersky password checker i Password monster. Ovi alati rade na principu efektivne heuristike koja se temelji na uobičajenim karakteristikama lozinke tj. ovisno koliko imamo različitih klasa znakova u lozinki to je jača lozinka. Također ovi alati funkcioniraju tako da računaju koliko bi trebalo napadaču da probije sa 100% sigurnošću probije lozinku tj. da napadač napadne lozinku s brute force metodom. Uz osnovne karakteristike lozinke alati također provjeravaju nalazi li se upisana lozinka u javnoj bazi podataka probijenih lozinki. Samim time alati zauzimaju mnogo memorije jer moraju pohraniti sve rječnike iz kojih čitaju pohranjene lozinke. Ako se u obzir uzme probabilistički pristup procjeni jačine lozinke postoje 3 pristupa:


Kako bi se prikazala efikasnost između modela za pogađanje lozinki napravljena je separacija u 5 klasa, a to su:

  1. 1class8 passwords
  2. 4class8 passwords
  3. 1class16 passwords
  4. 3class12 passwords
  5. 000webhost passwords

Prva znamenka prikazuje koliko klasa znakova postoji u lozinki, a druga znamenka prikazuje kolika je minimalna duljina lozinke. Zadnja klasa 000webhost su lozinke koje su javno poznate. Na Slici 1. prikazani su grafovi usporedbe probijanja lozinki pomoću: Neuronske mreže, Markovljevih lanaca, Probabilističko kontekstno slobodne gramatike, John The Rippera i Hashcata na različitim gore navedenim klasama lozinki.


Slika 1. Prikazuje grafove usporedbe različitih metoda probijanja lozinki izvor

John The Ripper i Hashcat probijaju lozinke na principu napadanja pomoću pravila, napada grubom silom i napad rječnikom. Samim time možemo uočiti da su oni prilično deterministički te da za jako velike pokušaje pogađanja neće imati dobar rezultat ili rezultat uopće neće biti mjerljiv. Stoga, moguće je uočiti da su probabilistički pristupi kao što su: Neuronska mreža, Markovljevi lanci i Probabilističko kontekstno slobodne gramatike vrlo učinkoviti za veće pokušaje pogađanja, a to im omogućuje Monte Carlo model biranja uzoraka. Također moguće je uočiti da je neuronska mreža za svaku od klasa lozinki bolja nego bilo koji drugi pristup te da u nekim slučajevima asimptotski graniči s granicom MinGuess koja označava koliko je teoretski najmanje mogućih pokušaja potrebno da se probije određeni broj lozinki. Neuronska mreža također radi na vrlo sličnom principu kao i Markovljevi lanci pa su zbog toga linije paralelne kroz cijeli graf.

Neuronska mreža

Neuronska mreža koja je korištena za napadanje na slici 1. nalazi se ovdje, a password strength meter konstruiran pomoću neuronske mreže moguće je pronaći ovdje.


Cilj korištenje neuronske mreže je efikasno predviđanje koliko je potrebno napadaču da probije upisanu lozinku. Također ušteda prostora koji je potreban za pohranu te neuronske mreže je izuzetno malen u usporedbi s ostalim alatima ovakva neuronska mreža zauzima oko 30 MB dok neki alati mogu zauzimati više od 1 GB. Ovo je postignuto raznim kompresijama i enkodiranjem kao što su: Fixed-point Encoding, ZigZag Encoding i Lossless Compression. Neuronska mreža je učena na javno poznatim lozinkama tj. preciznije 33 milijuna lozinki i 5.9 milijuna smislenih engleskih riječi koristeći proces učenja koji se zove Transference Learning. Kao što je prikazano na Slici 1. podatci za testiranje nisu prije bili vidljivi neuronskoj mreži te je moguće vidjeti njihov odličan rezultat. Postoje dvije verzije navedene neuronske mreže: velika mreža (15 700 675 parametara) i mala mreža (682 851 parametara). Također velika mreža ima 1000 slojeva i zauzima 60 MB dok mala mreža ima 200 slojeva i zauzima ne značajnih 2.7 MB. Na Slici 2. prikazana je razlika između velike i male mreže na određenim klasama lozinki koje su prije spomenute. Slika 2. Prikazuje razliku između male i velike neuronske mreže izvor


Ovako konstruirana mreža pokazuje da password strength meter na internetskim stranicama može biti vrlo pouzdana povratna informacija korisniku je li njegova lozinka doista sigurna. Također ne zauzima mnogo resursa tako da i programerima olakšavao posao po pitanju zauzimanja prostora na strani poslužitelja/klijenta. (Nema razlike u brzini ili boljem radu između klijentske i poslužiteljske strane pogledati sliku 3.) Neuronskoj mreži je potrebno nekoliko milisekundi kako bi predvidjela koliko je lozinka sigurna.

Slika 3. Prikazuje razliku između neuronske mreže na strani poslužitelja/klijenta izvor

Zaključak

Cilj ovog seminarskog rada je pokazati kako nam metode strojno učenja kao što su neuronske mreže mogu pomoći prilikom konstrukcije sigurne lozinke te kako zapravo predvidjeti koliko će napadaču trebati pokušaja da uspješno probije lozinku. Također pokazani su svi poznati napada na lozinke od kojih se potrebno obraniti pomoću dobro konstruirane lozinke. Potrebno je još mnogo istraživanja kako bih neuronske mreže uspjele generirati lozinke koje niti one same ne bi mogle probiti, ali do danas su neuronske mreže pokazale da mogu vrlo kvalitetno odrađivati ulogu password strength metera te tako pomoći klijentima prilikom osmišljavanja sigurne lozinke.

Literatura

racfor_wiki/strojno_ucenje/napadi_na_lozinke_pomocu_neuronskih_mreza.txt · Zadnja izmjena: 2023/06/19 18:17 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0