ODREĐIVANJE KVALITETE ZAPORKI

SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
ZAVRŠNI RAD br. 3486
ODREĐIVANJE KVALITETE ZAPORKI
Matea Pejčinović
Zagreb, lipanj 2014.
Zahvaljujem se mentoru prof.dr.sc. Marinu Golubu na svim sugestijama, vodstvu i
pomoći prilikom izrade ovog rada.
Zahvaljujem se i svojoj majci i sestri koje su me tijekom čitavog školovanja
podupirale i poticale moju težnju k ostvarivanju svih ciljeva.
SADRŽAJ
1.
Uvod .............................................................................................................................. 1
2.
Uporaba zaporki .......................................................................................................... 2
3.
Entropija kao mjera jačine zaporki ........................................................................... 4
4.
Jačina zaporki.............................................................................................................. 7
4.1. Slabe zaporke ....................................................................................................... 7
4.1.1. Primjeri slabih zaporki .................................................................................. 8
4.2. Jake zaporke ......................................................................................................... 9
4.3. Pravila i upute za stvaranje jakih zaporki ....................................................... 10
4.3.1. Primjeri jakih zaporki .................................................................................. 12
5.
Napadi na zaporke ................................................................................................... 14
5.1. Pogađanje zaporki ............................................................................................. 14
5.1.1. Napadi grubom silom ................................................................................. 14
5.1.2. Napadi rječnikom ........................................................................................ 15
5.1.3. Hibridni pokušaji pogađanja zaporki ........................................................ 16
5.2. Resetiranje zaporki ............................................................................................ 16
5.3. Probijanje zaporki ............................................................................................... 16
5.3.1. Vrijeme potrebno za probijanje ................................................................. 17
5.4. Zabilježeni incidenti............................................................................................ 18
6.
Alati za probijanje zaporki........................................................................................ 20
6.1. Cain and Abel ..................................................................................................... 20
6.2. Hashcat ................................................................................................................ 21
6.3. John the Ripper .................................................................................................. 22
6.3.1. Mogućnosti alata ......................................................................................... 23
6.3.2. Načini rada ................................................................................................... 26
6.3.3. Pravila korištenja naredbi i znakova ........................................................ 28
6.3.4. Rezultati pokušaja probijanja zaporki korištenjem alata John the
Ripper ........................................................................................................................30
7.
Programsko rješenje ................................................................................................ 33
7.1. Program za određivanje jačine zaporke ......................................................... 33
7.1.1. Tehničke značajke ...................................................................................... 33
7.1.2. Upute za korištenje ..................................................................................... 35
7.2. Simulacija rada alata za probijanje zaporki.................................................... 37
7.2.1. Tehničke značajke ...................................................................................... 38
7.2.2. Upute za korištenje ..................................................................................... 39
8.
Zaključak .................................................................................................................... 41
Literatura ............................................................................................................................ 42
Sažetak ............................................................................................................................... 44
Summary ............................................................................................................................ 45
1. Uvod
Većini današnjih računalnih i mrežnih operacijskih sustava omogućeno je
ograničavanje pristupa aplikacijama, podacima, ali i samim operacijskim
sustavima korištenjem zaporki. One predstavljaju tajni niz znakova koji se odabire
proizvoljno i najčešći su način autentikacije korisnika. No, pitanje je jesu li one
zaista sigurne i može li netko doći do podataka kojima inicijalno nema dozvolu
pristupa?
Danas postoje mnogi već gotovi alati koji omogućuju „probijanje“ zaporki i dolazak
do podataka koje bi one trebale štititi pa su one u vrhu liste kritičnih računalnih
slabosti. Kompromitirana zaporka omogućuje onome koji ju je priskrbio
pretraživanje datoteka i osobnih računa bez prevelike mogućnosti otkrivanja
pregledavanja podataka. Stoga je kreiranje zaporke koja se teško može „probiti“
jedan od preduvjeta zaštite korisničkih računa od hakera. No, jačina zaporki ne
igra veliku ulogu jednom kad je se napadač domogne stoga je potrebno voditi
računa o više aspekata zaštite zaporki.
Iako se pokušalo smanjiti ljudsku ovisnost o zaporkama korištenjem biometrije,
pametnih kartica, otisaka prstiju i slično, svi su ti pokušaji i dalje u manjoj upotrebi
zbog cijene, ali i pouzdanosti pa su zaporke i dalje primarni način zaštite podataka
i kontrole pristupa.
1
2. Uporaba zaporki
Kad se stvori korisnički račun, potrebno je za korisničko ime odrediti zaporku koja
služi kao autentikacija korisnika. U tu svrhu se pohranjuju kombinacije korisničkih
imena i zaporki u bazu podataka ili datoteku. Kad se korisnik želi prijaviti, po
unosu korisničkog imena i lozinke radi se provjera s podacima u bazi ili datoteci s
vrijednostima lozinki. Ukoliko se dogodi podudarnost, pristup je omogućen.
Bitno je naglasiti da se za pohranjivanje zaporki u datoteku koriste kriptografski
algoritmi, uobičajeno hashing. Hash vrijednosti zaporki se koriste najviše jer ih je
praktički nemoguće dekriptirati. Nova zaporka će nastati na način da se
korisničkom unosu doda salt vrijednost što je proizvoljno, no ukoliko se koristi,
napadač jako teško može izračunati sažetak. To vrijedi čak i za slabe i učestale
zaporke(npr. password). Zatim se izračuna sažetak nekim od uobičajenih
kriptografskih postupaka kao što su MD5 i SHA1. Bitno svojstvo funkcija za
izračunavanje sažetka je otpornost na koliziju što znači da je nemoguće pronaći
dvije ulazne poruke istog sažetka.
Slika 1. Zaporke i pripadni sažeci[2]
Slika 1. predstavlja prikaz zaporki u jednoj datoteci u kojoj su pohranjene zajedno
s izračunatim sažecima. Uočljivo je da su prve dvije zaporke poprilično slične, no
drugoj je dodan broj 9 i samim time se izračunati sažetak bitno promijenio što je
bilo za očekivati jer je to svojstvo funkcije za izračun sažetka poruke [2].
2
Podaci u bazi se nikad ne kriptiraju za razliku od gore navedenih zaporki
pohranjenih u datoteci i upravo u tome leži razlog zašto su oni izloženiji
potencijalnim hakerima.
Uglavnom je moguće i odabrati opciju da se unosi sačuvaju pa nije potrebno
konstantno unositi kombinaciju korisničkog imena i pripadajuće zaporke. Ovakvo
rješenje je u redu ukoliko se vodi računa od zaključavanju računala prilikom
odsustva korisnika, inače omogućujemo pristup svojim podacima svima koji
koriste računalo s pohranjenim podacima.
Postoje mnogi načini koji služe za zaštitu zaporki na razini samog sustava i oni se
uvelike primjenjuju. Jedan od njih je i zastarijevanje zaporki što je dostupno na
većini operacijskih sustava i različitih programa koji su izrađeni za točno određenu
poslovnu namjenu. Ovakva metoda traži izmjenu zaporki nakon određenog
vremenskog roka što katkad nailazi na velik otpor korisnika tih sustava i programa.
Učestalo mijenjanje zaporki traži memoriranje izmjena što onda vodi tome da
mnogi korisnici tek neznatno izmijene zaporku pa svrha ove metode obično nije
postignuta, tj. male promjene i dalje predstavljaju sigurnosnu prijetnju, pogotovo za
administratorske zaporke.
Slika 2. Postavljanje parametara za aktiviranje zaporke[17]
Slika 2. prikazuje kako se mogu postaviti određeni parametri za zastarijevanje
zaporki kao što su prikazivanje upozorenja, zahtijevanje promjene zaporke i drugi
[17].
3
3. Entropija kao mjera jačine zaporki
Uobičajeno je koristiti entropiju kao mjeru jačine zaporki u računalnoj industriji.
Ona se izražava u bitima što je ustaljena praksa u teoriji informacije, no mogu se
koristiti i druge mjerne jedinice. Sama entropija određuje broj potrebnih bita za
predstavljanje svih zaporki duljine L u skupu od N znakova pa je i definirana na
sljedeći način:
H  L * log
2
(2.1)
N
gdje je H standardna oznaka za entropiju. Uočljivo je da entropija zapravo
predstavlja složenost same zaporke kao broj bita, a služi kao mjera za predviđanje
koliko je zaporka otporna na brute-force napade. Što je entropija veća, to je veća
jačina zaporki i nije ih lako probiti jer je potrebno jako puno vremena.
Ukoliko napadač ne zna ništa o zaporki, a odluči izvesti brute-force napad, broj
kombinacija koje bi trebao uzeti u obzir bio bi povezan s entropijom zaporke,
odnosno s informacijskom entropijom:
n
H ( X )    p x * log
i
2
px
i
(2.2)
i 1
Informacijska entropija određuje koliko je nasumično izabrani skup znakova blizak
stvarnoj zaporci pa X predstavlja skup mogućih vrijednosti (0 – 255) dok
vrijednosti
px
i
su vjerojatnosti pojavljivanja znakova iz skupa X.
Pretpostavka je da napadač samo zna koje vrsta znakova je korištena u zaporki,
tj. ne zna kako zaporka točno izgleda, ali zna da je čini neka kombinacija npr.
velikih i malih slova te brojeva. Pri tome on ne zna koliko se puta ti znakovi koriste,
ima li možda u zaporci od 8 znakova samo jedan broj ili više njih što znači da mora
ispitati sve moguće kombinacije jer su sve jednako vjerojatne iz njegove
perspektive. Svaka vrijednost u skupu X bit će vjerojatnosti
⁄ , gdje N
predstavlja broj znakova koji su sadržani u zaporci.
n
H ( X )    p x * log
i
i 1
px 
i
1
N
2
px
i
(2.3)
(2.4)
4
Koristeći gore navedeno, dobiva se:
n
H (X )  
i 1
H (X )  N *
1
* log
2
* log
2
N
1
N
H ( X )  log
2
 1 


 N 
(2.5)
 1 


 N 
(2.6)
N
(2.7)
Ovako je izraz za entropiju sveden na puno jednostavniji oblik. Ukoliko se uzme da
zaporku čine velika i mala slova engleske abecede te brojevi, vrijednost N će
iznositi 53 (26 malih slova + 26 velikih slova + 10 znamenaka). Entropija će tada
iznositi H
( X )  log
53  5 . 728 bit / simbol
2
.
Za dobivanje procjene jačine zaporke, trebamo koristiti formulu
H  L * log
2
N
, tj.
nužno je pomnožiti H(X) vrijednost duljinom zaporke pa bi za duljinu od 8 znakova
uz H(X) = 5.728 bit/simbol, procjena jačine zaporke, odnosno entropija bila H =
45.824 bit. Uz ovakvu vrijednost entropije, očito je da zaporke ne mogu kvalitetno
zaštititi podatke ukoliko se na njih ne primjenjuju kriptografski algoritmi koji uvelike
povećavaju zaštitu, a bez kojih zaporke predstavljaju jednu od najslabijih karika u
računalnoj sigurnosti.
Ukoliko se želi odrediti entropiju za točno određenu zaporku, potrebno je koristiti
kalkulator za entropiju. On funkcionira na način da je nužno odrediti broj
pojavljivanja određenog znaka u zaporki i podijeliti ga duljinom zaporke čime se
dobije vrijednost p x . Time se dobije dosta manja entropija što znači da napadač
i
ima manje kombinacija za ispitivanje. U prvom slučaju je entropija iznosila 45.824
bita što znači da napadač mora ispitati 245.824 kombinacija, ali u velikom broju
slučajeva zaporka se nađe u prvoj polovici ukupnog broja kombinacija[15].
Zanimljivo je da zaporke koje su inače izuzetno jake poput a$H)*Tkl89 imaju
manju entropiju nego kad se za zaporku koristi više riječi odvojenih prazninom kao
što je to substitution logon carrot, a ova činjenica je prikazana i na sljedećoj slici
Randalla Munroea:
5
Slika 3. Odnos entropije i jačine zaporke[18]
NIST Special Publication 800-63 donosi preporuke za zaporke koje stvara čovjek,
a tiču se entropije:

entropija prvog znaka treba biti 4 bita,

entropija sljedećih sedam znakova treba biti 2 bit/znak,

znakovi od devetog do dvadesetog mjesta trebaju imati entropiju 1.5
bit/znak,

svi znakovi iznad 21., uključujući i njega, imaju entropiju vrijednosti 1
bit/znak,

dodatnih šest bitova se dodaju ako se koriste i velika slova i znakovi koji
nisu iz abecede,

dodatnih šest bitova dodaje se zaporkama duljine 1 do 19 znakova dok se
zaporkama duljine 20 znakova i više ne dodaje ništa.
6
4. Jačina zaporki
Cilj je stvoriti zaporku koja se jednostavno pamti, ali ju je jako teško pogoditi.
Zaporke omogućuju pristup web stranicama na kojima su obično povjerljivi podaci
poput financijskih informacija koje omogućuju provođenje brojnih transakcija. U
slučaju da neovlašteni korisnik dođe do takvih podataka, može doći do različitih
prijevara, ilegalnih aktivnosti ili sličnih zloporaba osobnih podataka.
U svrhu sprječavanja takvih nezakonitih aktivnosti potrebno je biti oprezan pri
izboru zaporki. Izbor jake zaporke nije jamstvo potpunog izbjegavanja rizika po
pitanju sigurnosti pristupa podacima, no ona u svakom slučaju smanjuje šanse
hakerima da je probiju i tako zlorabe osobne podatke. Nije moguće stvoriti zaporku
koja se ne može probiti, no što je ona jača, to je potrebno više vremena i snažniji
računalni sustavi za probijanje.
Dva se faktora obično razmatraju kad se određuje jačina zaporke, a to su
prosječan broj pokušaja pogađanja zaporke koje mora načiniti napadač kako bi
uspio naći ispravnu zaporku za određeni korisnički račun te lakoća s kojom
napadač može provjeriti ispravnost zaporke pri testiranju. Prvi faktor je određen
duljinom zaporke te koliko je komplicirana kombinacija znakova koja se koristi za
zaporku pri čemu je nebitno je li zaporka kreirana korištenjem za to predviđenih
generatora ili pomoću nekih predvidljivijih procesa. Drugi je pak faktor određen
načinom spremanja i korištenja zaporke, odnosno načinom organizacije sustava
za zaporke i nije nešto na što korisnik može utjecati[1].
4.1.
Slabe zaporke
Mnoge organizacije vjeruju da sigurnosne računalne mjere adekvatno štite njihove
informacije i podatke, no sve je više primjera u kojima se pokazuje upravo
suprotno. Vrlo je jednostavno preko interneta doći do računalnih programa koji
dekodiraju zaporke, a koji su inače vrlo učinkoviti. Ta njihova osobina pogotovo
dolazi do izražaja kod slabih zaporki.
7
Najveći faktor koji vodi slabosti zaporke jest sam čovjek. Budući da je zaporke
potrebno zapamtiti,a i preporučeno je njihovo učestalo mijenjanje, one se ne bi
trebale zapisivati na nekim mjestima koja su dostupna mnogim osobama. Ovakvo
što se često događa u mnogim tvrtkama gdje je poprilično jednostavno doći do
zaporke samo pregledavanjem radnog stola.
Mnogi korisnici računalnih usluga kao svoje zaporke stavljaju imena članova
obitelji,
datume
rođenja,
obljetnice
važnih
događaja
pa
čak
i
osobne
identifikacijske brojeve vjerujući da je jako teško pogoditi takvu zaporku. No, stvar
je u tome da se takvi podaci skupljaju od strane mnogih organizacija i do njih je
relativno jednostavno doći korištenjem upita na bazu podataka ili ako napadač
poznaje korisnika. Neke od zaporki se spremaju u datoteke u kriptiranom ili
nekriptiranom obliku, no ukoliko netko uspije doći do tih datoteka, lako je ući u bilo
čiji korisnički račun i pregledati podatke bez da osoba koja je vlasnik korisničkog
računa ikad sazna za takvo što, osim ako se ne dogode neke nedozvoljene radnje.
Slaba jačina lozinki se također odnosi i na duljinu zaporke. Ukoliko je ona jako
kratka, hakeri nemaju problema s probijanjem jer je malo kombinacija znakova.
Sve ove značajke slabih zaporki su potencijalne sigurnosne prijetnje.
4.1.1. Primjeri slabih zaporki
Neke zaporke su slabije od drugih zbog niza razloga. Iako bi nam se neke od njih
mogle učiniti jako dobrim izborom, bilo bi ih bolje izbjegavati jer zapravo ne
obavljaju svoju funkciju, tj. ne mogu zaštiti podatke od osoba kojima nisu
namijenjeni. Koliko samo mala promjena zaporke može utjecati na njezinu jačinu
pokazuje činjenica da ukoliko riječ iz rječnika neznatno promijenimo ubacivanjem
neke zamjene (npr. umjesto goldfish stavimo g0ldfish), vrijeme potrebno za
probijanje zaporke bit će duže što povećava jačinu zaporke.
Slaba jačina zaporki uglavnom proizlazi iz njihove jako male entropije pa stoga
one mogu biti ispitane velikom brzinom. Neke od takvih zaporki su:

riječi iz rječnika bilo kojeg jezika (prikladne za napade rječnikom),
8

unaprijed postavljene (default) zaporke koje se postave na početku rada
sa sustavima i pretpostavlja se da će ih korisnik promijeniti (password,
admin, default, guest... i njihove izvedenice),

riječi koje se spajaju s brojevima, a koje se mogu testirati u jako kratkom
vremenu (deer2000, john1234...)

nizovi slova u istom redu na tipkovnici (12345, asdfgh...),

imena poznatih ljudi, pojmova ili gradova (npr. KatyPerry),

stare zaporke,

zaporka i korisničko ime su isti,

duplicirane riječi (stopstop, passpass...)

riječi s malim izmjenama (p@ssw0rd, Pr0d@dm1n),

sljedovi brojeva bazirani na poznatim vrijednostima (911, 314159 (π
vrijednost)...),

bilo što to je povezano s osobom (OIB, JMBAG, broj telefona, imena
članova obitelji...).
Zanimljivo je da je Microsoft Hotmail 18. srpnja 2011. zabranio korištenje
zaporke 123456.
4.2.
Jake zaporke
Jačina zaporki se uglavnom odnosi na njihovu duljinu. Želimo li povećati jačinu,
ponekad je dovoljno povećati njezinu duljinu za samo jedan znak jer se time
hakerima poveća vrijeme koje im je potrebno za probijanje budući da je
dodavanjem samo jednog znaka povećan i broj kombinacija znakova koje se
moraju razmotriti.
Jačina nije određena isključivo duljinom. Pokazalo se da su bolje i jače one
zaporke koje su kombinacija velikih i malih slova te interpunkcijskih znakova
udruženih s brojevima. Graf prikazuje kako entropija, kao mjera jačine zaporki,
raste s povećanjem broja znakova, ali i da je puno brži porast entropije ako se
koristi kombinacija više znakova.
9
Slika 4. Odnos entropije i duljine zaporki
Ključ uspjeha u oblikovanju jakih zaporki leži u dužini i složenosti zaporki. Naime,
što je zaporka duža i složenija, to će napadač imati više poteškoća pri probijanju
pa se često događa da je ne može probiti ili može, ali uz veliki napor i dug
vremenski period. Složenost zaporke je pojam koji se odnosi na tehnike koje se
koriste da bi se stvorila zaporka.
Pitanje je li kompleksnost same zaporke dovoljna za zaštitu od hakera. S jedne se
strane može reći da jest zbog utrošenog vremena i kombinacija koje se moraju
proći kako bi se saznala zaporka. U velikom broju slučaja doći će do blokiranja
korisničkog računa u situacijama kad se pređe dozvoljeni broj pokušaja pa se
obavještava administrator sustava da se nešto čudno događa. Tada je moguće
poduzeti neke dodatne akcije zaštite pa i obavijestiti korisnike da bi bilo dobro
promijeniti zaporke. S druge strane, ako je napadač uspio doći do zaporke koja
pripada administratoru, tada može saznati i zaporke svih korisnika i doći do svih
podataka koji ga zanimaju pa tada jačina zaporki ne igra veliku ulogu u
zaštiti.[4][14]
4.3.
Pravila i upute za stvaranje jakih zaporki
Pravila za stvaranje jakih zaporki je jako mnogo. Ona se uglavnom odnose na
način stvaranja zaporki koje su dovoljno jake da uspiju izdržati mnoge vrste
10
napada. Osim što je moguće veće duljine i složenosti, pravila se odnose i na
potrebu učestalog mijenjanja zaporki. Neka od najpoznatijih pravila su navedena u
nastavku.
Preporučuje se korištenje barem osam znakova za zaporku, a idealno bi bilo 8 –
14 znakova za korisničke računa. Za administratorske potrebe bilo bi poželjno
stvoriti i duže zaporke. Svaki znak koji se doda povećava zaštitu zbog većeg broja
kombinacija koje se moraju razmotriti prilikom pokušaja probijanja. Pri tome treba
imati na umu da bi to trebala biti zaporka koja se može zapamtiti.
Za stvaranje jakih zaporki u upotrebi su različite kombinacije brojeva, velikih i
malih slova abecede zajedno s interpunkcijskim znakovima. Pri tome se ne misli
na kombinacije koje su se već mnogo puta pokazale kao vrlo jednostavne za
probijanje, poput '12345678', 'password', 'admin' ... Čak nije dobro koristiti ni broj
telefona kao ni osobni identifikacijski broj jer je do takvih informacija poprilično lako
doći pa ni zaporke temeljene na njima ne predstavljaju zaštitu pristupa podacima.
Korištenje kombinacije slova iz istog redu na tipkovnici također nije dobro rješenje.
Iako se ne koristi često, metoda zamjene nekih znakova drugim znakovima
dodatno povećava razinu sigurnosti zaporke. To se odnosi na zamjenu, primjerice
slova E brojem 3, slova O brojem 0 ili pak slova I brojem 1. Ovakva metoda donosi
korist isključivo kad je kombinirana s drugim načinima zaštite kao što je velika
duljina zaporke. Ukoliko se primjenjuje sam, ovaj način ne smanjuje mogućnost
probijanja zaporki jer zaporka poput 'p@ssw0rd' umjesto 'password' ne može
zavarati napadače.
Jedna od često upotrebljavanih metoda koje se koriste pri smišljanju zaporke jest
da se smisli neka rečenica ili fraza koju samo ta osoba zna i koju je jednostavno
zapamtiti. Potom se uzmu prva slova riječi i brojevi kao zamjene za neke riječi
(npr. once se zamijeni s 1) i dobije se zaporka koja je poprilično jaka.
Poprilično dobro rješenje za kreiranje jake zaporke je sricanje slova fonetski, npr.
inicijali ABO postaju AyBeeOh. Također bi se trebalo izbjegavati korištenje brojeva
na početku i kraju zaporke.
Ne bi trebalo koristiti riječi iz rječnika bilo kojeg jezika budući da takve zaporke ne
pružaju nikakvu zaštitu prilikom napada rječnikom. Naime, napadači rabe
sofisticirane alate koji vrlo brzo i učinkovito uspijevaju pogoditi zaporke nastale na
11
ovaj način. Pri tome se ne radi samo o ispravno napisanim riječima već i riječima
napisanim u obrnutom redoslijedu, učestale pogreške u pisanju riječi kao i neke
zamjene za riječi.
Zaporke koje se višestruko koriste nisu nikako dobra opcija. Ukoliko jedan račun
bude kompromitiran, svi računi koji koriste istu zaporku bit će isto kompromitirani.
Zaporke koje se koriste za neke igrice ili Internet forume nikako ne bi smjele biti
iste kao zaporke za elektroničko poštu ili prijavu na računalo.
Možda i najbolji način stvaranja jake zaporke je korištenje alata koji se i razvijaju u
tu svrhu (različiti password generators i password checkers).
4.3.1. Primjeri jakih zaporki
U današnjem svijetu je nužno zaštiti svoje podatke od raznih zloporaba pa je stoga
potrebno imati i zaporku odgovarajuće jačine. Korištenje nekih znakova pri
kreiranju zaporki može značajno pridonijeti povećanju jačine zaporke i smanjenju
rizika od probijanja. Neki od znakova koji se preporučuju pri stvaranju zaporki i
način njihova korištenja su:

( - slovo c,

) - bilo što povezano s mjesecom; ludo,

% - dio nečega,

$ - novac, slovo S,

< - manje od, mlađe od,

> - veće od, starije od,

! - uzbuđenost, jaka emocija,

@ - slovo a, riječ 'at ',

^ - okrenuto slovo V,

# - broj,

& - riječ 'and ', blizanci,

+ - dodavanje jedne riječi drugoj,

* - sunce, zvijezda,

= - jednakost, ravnoteža,

~ - voda, vjetar,

? - nepoznato, upitno, varijabilno
12
Primjer korištenja ovih znakova pri kreiranju zaporke može biti sljedeći:
1. Osoba ima blizanca brata.
2. Njihovi inicijali su IGK i ABK.
3. Zadnja dva broja u OIB-u te osobe su 43.
Zaporka koja se može kreirati na temelju gore navedenih činjenica je Igk43&ABk.
U ovom slučaju se koriste inicijali u kombinaciji velikih i malih slova, brojevi iz OIBa i znak & čija se značenja mogu naći u gore navedenom popisu.
Sljedeći primjer bi mogao biti:
1. Najstarije dijete korisnika nekog računa koji treba smisliti zaporku ima
inicijale IBM.
2. Drugo dijete je s inicijalima IM.
3. Oni su rođeni 1991. i 1992. godine.
Sad je moguće kreirati zaporku izgleda: IbM91>92iM.
Slijedeći i gore navedena pravila, jednostavno je kreirati zaporke koje se teško
probijaju, a moguće ih je zapamtiti. Zaporka RDkFh0982 je jaka zaporka nastala
kombinacijom slova iz „Rain Drops Keep Falling on my Head“ i osobi važnog
datuma iz rujna 1982. Moguće je iskoristiti i športove ili hobije pa bi rečenica „I
love to play badminton“ mogla postati ILuv2PlayB@dmint()n.
13
5. Napadi na zaporke
Potrebno je shvatiti način na koji funkcioniraju napadi na zaporke kako bi se znalo
stvoriti zaporku koja će biti efikasna za odgovarajuću upotrebu.
5.1.
Pogađanje zaporki
Pogađanje zaporki je najčešća vrsta napada. Mnoge mreže nisu konfigurirane
tako da zahtijevaju jako duge i složene zaporke pa je očito da napadač samo treba
naći vrlo slabe zaporke kako bi dobio pristup mreži ili resursu kojeg želi. Slaba
karika u mrežnoj sigurnosti su i mnogi protokoli. Primjerice, LAN Manager
autentikacija ne razlikuje velika i mala slova pa napadač ne mora uložiti dodatan
napor za probijanje zaporki jer je poznato da razlikovanje veličine slova poprilično
uvišestručuje broj kombinacija za pogađanje.
Mnogi se alati koriste za automatizaciju postupka pogađanja zaporki na način da
probava jednu za drugom dok ne nađe onu koja odgovara (npr. Hydra za
pogađanje svih vrsta zaporki kao što su i one za prijavljivanju u sustave bazirane
na HTTP-u, Telnetu..., TSGrinder i SQLRecon za brute-force napade...). Ovakvi
alati koriste različite pristupe, ali najčešće se izvode brute-force napadi.
5.1.1. Napadi grubom silom
Napadi grubom silom (eng. brute-force) su poznati i pod nazivom iscrpno
pretraživanje
zbog
potpunog
pretraživanja
i
isprobavanja
svih
mogućih
kombinacija znakova uzimajući u obzir i maksimalnu duljinu zaporke. Problem za
napadače kod ovakvih napada predstavlja nužnost postojanja velike količine
resursa, ali i vremena potrebnog za isprobavanje tih brojnih kombinacija pa je
nerijetko slučaj da su resursi potrebni za probijanje zaporki zapravo vrjedniji nego
informacije do kojih se može doći nakon što se napadač domogne odgovarajuće
zaporke.
14
Ovom metodom se moraju isprobati sve moguće opcije neovisno jesu li logične ili
ne, za razliku od backtracking metode koja predstavlja derivaciju brute-force
metode i koristi se ako su neke kombinacije povezane pa se smanji vrijeme
ispitivanja i broj kombinacija.
Ukoliko želi provesti napad ove vrste, napadač će najčešće ručno unositi
kombinacije korisničkog imena i zaporke dok se ne pogodi tražena zaporka. Mogu
se koristiti već spomenuti automatizirani programi, ali i slučajno generirani
korisnički računi pomoću kojih se pokušava pristupiti sustavu.
Pregledom dnevničkih zapisa računala moguće je uočiti ove napade jer ako su
zabilježeni mnogi neuspješni pokušaji prijavljivanja u sustav, vrlo se vjerojatno radi
o pokušaju izvođenja brute-force napada. Kako bi se zaštitili od njega, možemo
ograničiti broj neuspjelih pokušaja pristupa sustavu, zabraniti pristup s IP adrese s
koje dolaze neuspjeli pokušaji, kreirati samo jedan korisnički račun s najvišim
ovlastima...
5.1.2. Napadi rječnikom
Napad rječnikom (eng. dictionary attack) varijacija je brute-force napada u kojima
je izbor mogućih kombinacija sveden na riječi koje su sastavni dio rječnika nekog
jezika. Veća je vjerojatnost da će netko izabrati riječ koja ima neko značenje za
zaporku u usporedbi s nasumično izabranim znakovima. Za ovakav napad je
potreban popis riječi iz rječnika što ne predstavlja neki poseban problem za
napadače budući da je velik dio rječnika (čak i onih koji uključuju samo športsku
terminologiju, ali i rječnici riječi koje predstavljaju žargon) dostupan na internetu
besplatno.
Ovakvi napadi se koriste u kriptoanalizi kako bi se otkrio ključ za dekriptiranje, ali i
kako bi se mogla saznati zaporka i ostvariti neovlašteni pristup. Zanimljivo je da se
napadi rječnikom često koriste kad se želi poslati neželjene poruke (eng. e-mail
address harvesting) pa se koriste rječnici da bi se izgenerirale adrese elektroničke
pošte (npr. [email protected]). U slučaju da se uspije dostaviti poruka na
15
generiranu adresu elektroničke pošte, ta će se adresa zabilježiti kao važeća i
koristit će se za kontinuirano slanje tih neželjenih poruka.
5.1.3. Hibridni pokušaji pogađanja zaporki
Ovi pokušaji se temelje na tome da mrežni administrator traži od korisnika da
načini zaporku tako da bude neznatno izmijenjena u odnosu na riječ koja se
pojavljuje u rječniku. Pravila za hibridne pokušaje pogađanja zaporki variraju
ovisno o alatu koji se koristi, ali većina razlikuje velika i mala slova, dodaju brojeve
na kraj zaporke, mogu sricati zaporke obrnutim redoslijedom i uključuju pri provjeri
neke učestale pogreške u pisanju riječi koje se koriste kao zaporke.
5.2.
Resetiranje zaporki
Mnogi programi koji služe za probijanje zaporki zapravo ih resetiraju jer je
napadačima jednostavnije resetirati nego pogoditi zaporku. U tu svrhu se koriste
besplatni i često korišteni Peter Nordahl-Hagen program, ali i Winternals ERD
Commander 2005.
Ovaj se napad najčešće izvodi tako da napadač koristi podizanje s diska radi
zaobilaženja uobičajenih zaštita za Windows operacijski sustav. Većina programa
za resetiranje sadrže i verziju Linux operacijskog sustava koja prilikom podizanja
može pomoći napadaču pri lociranju i resetiranju administratorskih zaporki.
5.3.
Probijanje zaporki
Probijanje zaporki je proces korištenja uočene hash vrijednosti zaporke i njezina
pretvaranja u riječ kakva je bila prije kriptiranja. Za probijanje zaporki napadaču su
potrebne mnoge metode, no najčešća se svodi na pogađanje hash vrijednosti.
16
Većina današnjih računalnih uređaja, ali i online poslužitelja za autentikaciju
koriste već navedene kriptografske postupke kako bi se zaporka zaštitila i dobio se
zapis niza znakova nepromjenjive duljine koji je poznat kao digitalni potpis i upravo
se on sprema u uređaju ili poslužitelju. Svaki put kad se korisnik prijavljuje u
sustav, pokreće se hash funkcija i dobiveni izlaz se usporedi sa spremljenim
digitalnim potpisom.
Ovakav postupak je doveo do toga da stvaraju liste izračunatih hash vrijednosti
nekih učestalih zaporki. Tako se uvelike olakšava pokušaj probijanja zaporki jer je
dovoljno samo pronaći podudaranje između unaprijed izračunatih vrijednosti
zaporki koje se često koriste i pohranjenih vrijednosti zaporki iz određenog
sustava. Za sprječavanje ovakvih napada koriste se već navedene salt vrijednosti,
ali ipak je najbolje kreirati zaporku točno određene jačine.
Moguće je koristiti mnoge alate koje mogu skupiti hash vrijednosti Windows
zaporki, kao što su Pwdump programi različitih verzija. Najčešći programi koji
koriste zapise hash vrijednosti za probijanje zaporki su John the Ripper i Cain &
Abel. Prvi se može koristiti i na Windowsima i na Unixu dok drugi program može
probiti više od 20 vrsta zaporki, uključujući i Cisco te RDP.
5.3.1. Vrijeme potrebno za probijanje
U kriptoanalizi i računalnoj sigurnosti probijanje zaporki se koristi kako bi se došlo
do zaporki pohranjenih u vidu podataka ili se prenose računalnim sustavom. Osim
što se može koristiti za napade, može i pomoći korisnicima da dođu do zaporki
koje su zaboravili, no i kao preventivna mjera za administratore sustava kako bi
provjerili koriste li se u sustavu možda neke zaporke koje se lako mogu probiti.
Vrijeme koje je potrebno da se zaporka probije povezano je s jačinom zaporke
koja je pak u vezi s entropijom zaporke. Današnja računala mogu testirati preko
sto milijuna zaporki u sekundi koristeći mnoge alate za probijanje zaporki. Zaporke
koje kreiraju korisnici u duljini od 8 znakova kombinacijom brojeva, velikih i malih
slova te različitih simbola obično dosegnu 30 bita entropije pa je broj kombinacija
koje napadači trebaju ispitati veličine 230. To znači da je prosječno vrijeme
17
potrebno računalima za probijanje takvih zaporki 16 minuta. 2002. godine
distributed.net je pronašao 64-bitni RC5 ključ nakon četiri godine pokušaja
probijanja u kojima se, u različitim vremenskim razmacima, koristilo i do 300 000
različitih računala što je dovelo do generiranja preko 12 milijardi ključeva u sekundi
u prosjeku. Grafički procesori mogu ubrzati proces probijanja zaporki čak 50 do
100 puta što se pokazalo 2011. godine kad su komercijalni proizvodi dosegnuli
sposobnost testiranja do 2.8 milijardi zaporki u sekundi na standardnim računalima
koji su koristili grafičke procesore. Takvi uređaji mogu probiti zaporku od deset
znakova u jednom danu, prvenstveno zbog toga što se rad podijeli na više
računala kako bi se postiglo ubrzanje postupka probijanja.
5.4.
Zabilježeni incidenti
CERT je 16. srpnja 1998. godine prijavio slučaj probijanja zaporki. Napadači su
uspjeli doći do 186 126 kriptiranih zaporki, a dok ih nisu otkrili, uspjeli su probiti
čak 47 624 zaporki.
Sljedeći veliki incident zabilježen je u prosincu 2009.godine, a bio je vezan s
Rockyou.com web stranicom. Tada je u javnost „procurilo“ 32 milijuna zaporki time
što ih je napadač stavio na internet. Zaporke su bile spremljene u čitljivom obliku i
do njih se došlo korištenjem napada pomoću SQL-a.
Koliko su zaporke slaba karika u sigurnosti, pokazuje napad u okviru „Operation
AntiSec“ koji je bio usmjeren na NATO, a izveden je u suradnji Anonymousa,
LulzSec i drugih hakerskih grupa i pojedinaca. U javnost su dospjela imena,
prezimena, korisnička imena te zaporke više od 11 000 registriranih korisnika
njihove web knjižare.
Hakeri najčešće napadaju velike organizacije i one koje su u sklopu vlada različitih
država. To potvrđuje i napad na Booz Allen Hamilton, veliku američku
konzultantsku tvrtku koja obavlja velik dio posla za Pentagon. Napad je izveden
11.srpnja 2011. od strane Anonymousa, a njime se došlo do 90 000 zaporki i
korisničkih imena vojnog osoblja USCENTCOM-a, SOCOM-a, Air Forcea, State
Departmenta i Homeland Securityja. Zanimljivo je da su te zaporke bile zaštićene
tako što su bile kriptirane sažetkom koji je izračunat korištenjem SHA-1 algoritma
koji se do tada smatrao jako sigurnim.
18
5. lipnja 2012. ruski hakeri su napali društvenu mrežu LinkedIn čime su došli do
zaporki cca 6.5 milijuna korisnika. Nakon tog incidenta korisnici neko vrijeme nisu
mogli pristupiti svojim računima, a web stranica ih je upozoravala da promijene
svoje zaporke. Ukradene zaporke su bile kriptirane pa su ih hakeri dekriptirali i
stavili ih u tom obliku na ruski forum dekripiranih zaporki. LinkedIn je obavijestio
javnost da korisnici kojima su ukradene zaporke neće moći pristupiti svojim
računima koristeći stare zaporke, ali i da ne mogu utvrditi jesu li hakeri uspjeli doći
i do adresa elektroničke pošte tih istih korisnika. Istraga je utvrdila da se ovaj
incident dogodio jer se nije koristio protokol HTTPS, a pozornost istrage je privukla
iOS aplikacija koja je prikupljala imena, adrese elektroničke pošte i bilješke iz
mobilnog kalendara bez odobrenja korisnika.
Koliko opasni napadi mogu biti, pokazuje onaj izveden na Adobe za kojeg se
saznalo 3. listopada 2013. Napadači su uspjeli otkriti, po prvim procjenama, 3
milijuna kriptiranih zapisa o kreditnim karticama korisnika kao i podatke potrebne
za prijavljivanje na korisničke račune. Bilo je jako teško u potpunosti ispitati koliko
je zapisa bilo hakirano jer je većina direktorija bila zaštićena zaporkama. U istom
se mjesecu na AnonNews.org pojavila ogromna datoteka pod nazivom
„users.tar.gz“ koja sadrži više od 150 milijuna korisničkih imena i hashiranih
zaporki preuzetih s Adobea iako je Adobe do tada uspio utvrditi hakiranje tek 38
milijuna računa. Nešto kasnije se na istoj web stranici pojavila datoteka koja sadrži
source code za Adobe Photoshop do kojeg su očito napadači uspjeli doći.
19
6. Alati za probijanje zaporki
Danas su na internetu dostupni mnogi alati za probijanje zaporki, od kojih je velik
dio čak i besplatan. Neki od najčešće korištenih su: Cain and Abel, John the
Ripper, Hashcat, Hydra, DaveGrohl i ElcomSoft. Mnogi od njih pri pokušaju
probijanja
zaporki
koriste
mnoge
strategije
i
napade
od
kojih
su
se
najproduktivnijim pokazali brute-force napadi i napadi rječnikom.
6.1.
Cain and Abel
Cain and Abel je alat koji se koristi za zaporke za Microsft Windows. Omogućuje
saznavanje mnogih vrsta zaporki korištenjem različitih metoda za probijanje
zaporki u obliku sažetka. Neki od najčešćih su brute-force napadi, napadi
rječnikom te napadi korištenjem kriptoanalize. Posljednja vrsta napada se izvodi
korištenjem unaprijed pripremljenih tablica za inverzne operacije koje koriste
funkcije za izračunavanje sažetka poruke, a koje se mogu izgenerirati korištenjem
programa winrtgen.exe u sklopu Caina & Abela.
Neki antivirusni programi detektiraju ovaj alat za probijanje zaporki kao
potencijalno opasnog ili onog koji se može ponašati na korisniku neželjen način.
To je primjerice slučaj s Avast!om koji je čak neko vrijeme blokirao Caina & Abela,
no novije inačice to ne rade.
Neke funkcionalnosti koje ovaj alat omogućuje su:

izračunavanje sažetka,

sposobnost snimanja VoIP razgovora,

izvođenje tracerouta,

ARP spoofing,

Sposobnost probijanja:
o LM i NTLM sažetaka,
o NTLMv2 sažetaka,
o Microsoft Windows PWL datoteka,
o MySQL sažetaka,
20
o MSSQL sažetaka,
o Oracle i SIP sažetaka,
o MD2 sažetaka,
o MD4 sažetaka,
o MD5 sažetaka,
o SHA-1 sažetaka,
o SHA-2 sažetaka itd.
Sažetke zaporki je vrlo jednostavno izvući nakon što se instalira ovaj alat na
Windows operacijskom sustavu. Potrebno ga je pokrenuti kao administrator i
kliknuti na opciju „Cracker“, a zatim dodati NT sažetke kojima Microsoft ne dodaje
„salt“ dodatak kako bi dodatno zaštitio zaporke pa ih je dosta jednostavno probiti
jednostavnim pretraživanjem interneta, čak nije potrebno za učestale zaporke
koristiti ovakve alate. Te je izvučene sažetke potom moguće spremiti u tekstualnu
datoteku[16].
6.2.
Hashcat
Hashcat je jedan od najbržih alata za otkrivanje zaporki razvijen za Linux, OSX, ali
i Windows, a trenutno podržava velik skup različitih algoritama za računanje
sažetka uključujući LM Hashes, MD4, MD5, skup SHA algoritama, formate Unix
Crypt, MySQL, Cisco PIX i mnoge druge.
Dolazi u dvije glavne varijante:

Hashcat – temelji se na CPU,

oclHashcat – GPU-ubrzani alat.
Zaporke koje su zaštićene algoritmima poput MD5, SHA-1 i sl. mogu biti jako brzo
probijene ukoliko se koristi oclHashcat, ali ne može se na sve algoritme primijeniti
ova verzija (npr. Bcrypt). Hashcat je dostupan za Linux, OSX i Windows, dok se
oclHashcat može koristiti na Linuxu i Windowsu.
Kako bi otkrio što više zaporki, Hashcat koristi mnoge vrste napada:

napadi grubom silom (eng. brute-force),
21

napadi rječnikom,

hibridni napadi,

napadi otiskom prsta,

napadi temeljeni na pravilima,

napad maskiranjem,

napad permutacijama itd.
Napad grubom silom se smatra zastarjelim pa se novije verzije Hashcata baziraju
ma napadima maskiranjem kao potpunom zamjenom za brute-force napade[3].
6.3.
John the Ripper
John the Ripper je besplatno programsko ostvarenje Solar Designera koji služi za
dobivanje zaporki iz njihovih sažetaka, a glavna mu je funkcija otkriti slabe
zaporke. Inicijalno je bio razvijen za operacijski sustav Unix, a danas ga je moguće
pokrenuti na čak petnaest platformi. Jedanaest njih predstavljaju tek specifična
ostvarenja Unixa, DOS-a, Win32, BeOS-a i OpenVMS-a. Jedan je od
najpopularnijih programa za testiranje i razbijanje zaporki, ponajviše zbog
kombiniranja različitih načina za probijanje zaporki, ali i autodetekcije tipova
sažetaka zaporki. Učinkovit je pri probijanju zaporki koje se štite različitim
kriptografskim postupcima pa i različitim funkcijama za izračunavanje sažetka koje
se uglavnom nalaze u primjeni na različitim Unix verzijama (MD5, Blowfish...),
Kerberos AFS i Windows NT/2000/XP/2003 LM sažetku. Nedavno su dodane i
mogućnosti za probijanje sažetaka zaporki izračunatih korištenjem MD4, kao i
zaporki spremljenih u LDAP-u, MySQL-u ...
Ovo programsko ostvarenje podržava izvođenje mnogih vrsta napada. Jedan od
najčešće korištenih je ipak napad rječnikom koji se izvodi korištenjem uzoraka
riječi. Oni su najčešće u datoteci koja se zove wordlist, a sastoji se od riječi iz
rječnika ili zaporki koje se stvarno koriste, a do njih se došlo nekim prethodnim
napadima. Te se riječi potom kriptira korištenjem istog kriptografskog algoritma i
ključa koji su korišteni pri kriptiranju zaporki koje se pokušavaju probiti da bi nakon
kriptiranja sljiedila usporedba izlaza. John the Ripper je poznat po tome što može
22
izvesti ovaj postupak i na varijacijama riječi iz rječnika tako što modificira
nekriptirani tekst (obično korisničko ime s kriptiranom zaporkom) i ponavlja
postupak kriptiranja i usporedbe s već izračunatim sažecima.
Kao i većina alata za probijanje zaporki, tako i John the Ripper izvodi brute-force
napad.
Program
isprobava
sve
moguće
varijacije
nekriptiranog
teksta
izračunavajući sažetak za svaku od varijacija i uspoređuje te sažetke s ulaznim
sažetkom koji pripada nekoj zaporci koju se nastoji saznati. Za takvu upotrebu su
mu potrebne tablice učestalosti pojave različitih znakova kako bi prvo isprobavao
varijacije koje sadrže češće korištene znakove zbog veće mogućnosti otkrivanja
zaporki. Ovaj pristup je poprilično koristan za proces probijanja zaporki koje se ne
nalaze u rječniku, ali kao što je već navedeno, oduzima jako puno vremena[11].
6.3.1. Mogućnosti alata
John the Ripper se pokreće iz komandne linije i moguće je koristiti mnoge
argumente koji se odnose na specifičnost postupka probijanja zaporke. Ukoliko se
upiše samo john, ispiše se sažetak korištenja ovog besplatnog alata. Prvi
argument koji se treba spomenuti je naziv datoteke koja sadrži zaporke, a koja
služi za testiranje.
Sve opcije razlikuju velika i mala slova pa je time broj kombinacija za testiranje
jako velik. Umjesto punog imena moguće je koristiti kratice iz kojih program može
prepoznati o kojoj se opciji radi. One se obično kombiniraju s dvije crtice ili jednom
crticom, mogu koristiti znak jednakosti ili dvotočku kako bi se dodao još jedan
argument. Neke od opcija uključuju i uglate zagrade kao još jedan način za unos
dodatnih argumenata.
Opcije koje podržava John the Ripper su:

--single, single način probijanja zaporki koji koristi već zadana pravila,

--wordlist=FILE, način probijanja zaporki koji koristi listu riječi, a one se
čitaju iz datoteke navedene u dijelu FILE,

--stdin, riječi se čitaju sa standardnog ulaza,
23

--rules, određivanje pravila koja se koriste kad se zaporke koje se
koriste za probijanje učitavaju korištenjem liste riječi,

--incremental[=MODE], inkrementalni način rada; ukoliko MODE nije
naveden, za većinu tipova sažetaka koristi se ASCII, dok se za LM
sažetke koristi LM_ASCII,

--external=MODE, eksterni način rada ili filter riječi,

--stdout[=LENGTH], ispis mogućih zaporki; u svim načinima rada, osim
u single načinu, ova opcija omogućuje ispis kandidata za zaporku
umjesto uobičajenog načina usporedbe generiranih sažetaka i sažetaka
korištenih zaporki; ako se koristi ova opcija, nije potrebno navesti
datoteku sa zaporkama; zada li se duljina u području LENGTH, John the
Ripper će generirati kandidate za zaporku samo te duljine čime se
smanjuje broj kombinacija,

--restore[=NAME], omogućuje nastavak prekinute sjednice, a potrebne
informacije o stanju prekinutog procesa probijanja dobivaju se iz
posebne datoteke ili iz $JOHN/john.rec,

--session=NAME, pokrenutoj sjednici se dodjeljuje ime što je pogodno
kad se pokrene više njih paralelno ili kad želimo nastaviti baš određenu
sjednicu različitu od one koju smo posljednju prekinuli,

--status[=NAME], ispisuje status prekinute ili trenutno pokrenute
sjednice koja može imati i ime navedeno u dijelu NAME; na Unix-u je
moguće osvježiti status pokrenute sjednice slanjem SIGHUP
odgovarajućem procesu,

--make-charset=FILE, generiranje skupa znakova na temelju učestalosti
pojave znakova iz $JOHN/john.pot kad se koristi inkrementalni način
rada; moguće je uvesti restrikcije na skup zaporki koje se pojavljuju
specificiranjem datoteka zaporki, korištenjem opcija –format i –external,

--show, za zadanu datoteku zaporki se prikazuje zaporke do kojih je
John the Ripper uspio doći; moguće je ovu opciju koristiti i dok se
analizira datoteka kako bi se saznalo dokle je program uspio doći; želi li
se doći do najnovijih informacija, potrebno je najprije poslati
odgovarajućem procesu SIGHUP,
24

--test[=TIME], pokreće testiranje, a –format opcija se zajedno s –test
koristi da bi se testiranje ograničilo testiranje na točno određenu funkciju
za računanje sažetka,

--users=[-]LOGIN|UID[,..], služi za izbor korisničkih računa koje se želi
probiti; crtica u uglatim zagradama se može koristiti za invertiranje
provjere,

--groups=[-]GID[,..], učitava korisnike određene grupe; crtica služi za
invertiranje, tj. za učitavanje korisnika koji nisu iz određene grupe,

--shells=[-]SHELL[,..], učitava korisnike iste ljuske,

--salts=[-]N, učitava dodatke na zaporke gdje se učitani dodatak koristi
kod barem N zaporki; služi za bolje performanse jer je katkad brže
probiti neke zaporke korištenjem npr. --salts=2, a zatim ostale s –salts=2 (ukupno vrijeme potrebno za probijanje bit će jednako kao i da se ne
koristi ova opcija, ali neke zaporke će se probiti brže),

--save-memory=LEVEL, omogućuje spremanje memorije na 1., 2. i 3.
razini; ova se opcija koristi ako korisnik nema dovoljno memorije ili ne
želi da ovaj program utječe na druge procese; razina 1 znači da John
the Ripper ne smije trošiti memoriju na nazive logina, a koristi se samo
kad je način hakiranja single; više razine memorije utječu na izvedbu
programa i trebale bi se izbjegavati osim ako John the Ripper ne radi,

--node=MIN[-MAX]/TOTAL, ova opcija se koristi za konfiguriranje
paralelnog i distribuiranog procesiranja; čvorovi su obično iste brzine, a
učinkovitost ovog pristupa varira ovisno o tome koji se način rada
izabere i njegovim postavkama, vrsti sažetka, dodatku za izračun
sažetka (eng. salt) te broju čvorova; budući da nema komunikacije
između čvorova, sažeci koji se uspješno hakiraju na jednom čvoru, i
dalje se pokušavaju probiti na drugim čvorovima što ne smeta ukoliko se
koristi samo jedan dodatak za izračun sažetka, no ozbiljno usporava rad
kad se koristi više različitih dodataka,

--fork=N, ova je opcija dostupna samo na Unix-u, a omogućuje dijeljenje
rada na N procesa,

--format=NAME, omogućuje izbor funkcije za računanje sažetka; u
verziji 1.8.0 dopušteni formati su: descrypt, bsdicrypt, md5crypt, bcrypt,
LM, AFS, tripcode, dummy i crypt; ova se opcija može kombinirati s
25
opcijama: --test, --show i --make-charset; ako se koristi datoteka sa
zaporkama kojima su sažeci izračunati korištenjem različitih funkcija,
potrebno je koristiti ovu opciju kako bi John the Ripper mogao pokušati
probiti svaku zaporku,

--format=crypt, određivanje hakiranja crypt (3) sažetaka.
Neke dodatne mogućnosti su uključene u direktorij za pokretanje ovog programa:

unshadow PASSWORD-FILE SHADOW-FILE, kombinira datoteku sa
zaporkama i „shadow“ datoteku,

unafs DATABASE-FILE CELL-NAME, iz AFS baze dohvaća sažetke i
zapisuje izlaz u datoteku,

unique OUTPUT-FILE, uklanja duplikate iz liste riječi pročitane sa
standardnog ulaza bez mijenjanja poretka.
John the Ripper nudi mogućnost korištenja i nekih skripti:

relbench BENCHMARK-FILE-1 BENCHMARK-FILE-2, Perl skripta koja
omogućuje usporedbu dva C kompajlera, optimizacijskih opcija ili verzija
ovog programa,

mailer PASSWORD-FILE, skripta za slanje poruke elektroničke pošte svim
korisnicima čije su zaporke probijene što nije baš uvijek dobra ideja budući
da mnogo korisnika uopće ne provjerava elektroničku poštu ili ignorira
ovakve poruke,

makechr, skripta za generiranje .chr datoteke korištenjem zaporki iz
john.pot datoteke[13].
6.3.2. Načini rada
Način rada „Wordlist“ je najjednostavniji način koji je koristi kako bi se probile
zaporke. Samo se treba specificirati lista riječi što je obično tekstualna datoteka
koja sadrži jednu riječ po retku pri čemu se ne smiju pojavljivati duplikati, a zatim
se izabere datoteka koja sadrži zaporke. Riječi u listi se nikad ne sortiraju jer bi to
oduzelo još dodatno vremena, a i onemogućilo bi programu da prvo ispita one
zaporke koje se češće pojavljuju. Katkad je dobro posložiti riječi abecednim redom
26
jer za neke sažetke John the Ripper radi brže ako se sljedeći kandidat neznatno
razlikuje od prethodnog. S druge strane, ako je lista riječi posložena abecedno ,
nije potrebno voditi računa o riječima koje su dulje od maksimalno dozvoljene
duljine zaporke. Primjerice, za crypt (3) sažetke bazirane na DES-u značajnih je
samo prvih osam znakova što znači da, ako postoji više riječi s istih osam prvih
znakova, one predstavljaju istog kandidata za zaporku koji se probava samo
jedanput. Svejedno se ne preporučuje skratiti lozinke na odgovarajuću duljinu jer
ostatak znakova bi se ipak mogao koristiti ukoliko se počne raditi probijanje
zaporki korištenjem nekih od pravila. Preporučeni način sortiranja liste riječi je:
tr A – Z a – z < SOURCE |
sort -u > TARGET
Način rada „Single“ je prvi način s kojim treba početi raditi na probijanju zaporki.
Koristi login, polja „GECOS“ / „Full Name“, korisnički direktorij za kandidate
zaporki te skup pravila. Ovaj način rada je puno brži od prethodno navedenog, a i
dopušta korištenje većeg skupa pravila. Zaporke koje se uspješno pogode prolaze
postupak hakiranja za sve moguće funkcije za izračunavanje sažetka za slučaj da
neki korisnici imaju istu zaporku, ali sažetak je različit. Ukoliko se koristi single
način rada istodobno za više datoteka sa zaporkama, katkad se probije više
zaporki nego da se pokuša svaka zasebno.
Inkrementalni način rada je najobuhvatniji od svih jer pokušava sve moguće
kombinacije znakova kao zaporke. Međutim, ovaj način rada traje jako dugo i
moguće je da ne završi u razumnom vremenu (desetak i više dana) pa većina
korisnika mora prekinuti proces probijanja zaporki prije kraja. Jedino u slučaju da
se koristi jako mala duljina zaporke ili mali skup znakova, John the Ripper će
završiti s radom u inkrementalnom načinu. Da bi se koristio ovaj način rada,
trebaju se zadati dodatni parametri rada: duljina i skup znakova koji se koristi, a
koji su definirani u konfiguracijskoj datoteci za inkrementalni način. Skup znakova
koji se koristi varira, a neki od najčešće korištenih su: ASCII (95 ASCII znakova),
LM_ASCII (za uporabu na LM sažecima), Alpha (svih 52 slova engleske abecede),
LowerNum (mala slova engleske abecede i brojevi), UpperNum (velika slova
engleske abecede i brojevi), LowerSpace (27 znakova), Lower (26 malih slova
engleske abecede), Upper (26 velikih slova engleske abecede) i Digits
(znamenke).
27
Eksterni način probijanja zaporki može se zadati korištenjem programskog
ostvarenja nekih funkcija koje koristi program kako bi generirao kandidate za
zaporke. Funkcije su ostvarene u C-u i kompajlirane kad se zatraži eksterni način
rada od strane korisnika.
Funkcije koje John the Ripper koristi su:

init(),
za inicijalizaciju globalnih varijabli,

filter(),
za svaku riječ koja se probava, može filtrirati neke riječi,

generate(),
za generiranje riječi,

restore(),
za ponovno pokretanje prekinute sjednice.
Sve funkcije su tipa void(), nemaju argumenata i koriste globalnu varijablu word
(prethodno definiranu s int word[ ]), a init() se poziva prije njezine definicije.
Varijabla word sadrži trenutnog kandidata za zaporku pri čemu je u svakom
elementu polja po jedan znak, a završni je 0.
Funkcije
mogu
definirati
globalne
i
lokalne
varijable,
uključujući
i
jednodimenzionalna polja, koristiti operacije s cijelim brojevima i komentare.
Dozvoljeno je koristiti while petlje, int i void tipove podataka, ali ne i pokazivače i
višedimenzionalna polja, kao ni pozive funkcija iz neke funkcije eksternog načina
rada.
6.3.3. Pravila korištenja naredbi i znakova
U sklopu pravila koriste se brojne zastavice koje zapravo služe da se odbaci
određeno pravilo koje se koristi u nekim posebnim slučajevima:

-,
zastavica koja sprječava odbacivanje pravila,

-c,
zastavica za odbacivanje pravila osim ako se u tipu sažetka koji se
trenutno koristi razlikuju velika i mala slova abecede,

-8,
zastavica za odbacivanje pravila osim ako se u tipu sažetka koriste
8-bitni znakovi,

-s,
zastavica za odbacivanje pravila osim kada su hash vrijednosti nekih
zaporki razdvojene pri učitavanju,
28
Numeričke konstante se mogu tvoriti, a varijable referencirati korištenjem sljedećih
znakova:

0...9 za vrijednosti 0...9,

A...Z za 10...35,

* za max_length,

- za (max_length - 1),

+ za (max_length + 1),

A...k za numeričke varijable koje definira korisnik,

l za inicijalnu ili osvježenu duljinu riječi,

m za inicijalnu ili posljednju zapamćenu poziciju znaka unutar riječi itd.
max_length se ovdje odnosi na najveću dopuštenu duljinu nekodiranog teksta koja
je određena tipom funkcije za izračun sažetka. Gornji znakovi se mogu koristiti za
određivanje pozicije znakova, duljine dijelova riječi i sl. Inicijalna pozicija za
određivanje položaja znakova je 0 pa je početna vrijednost za m uvijek za jedan
manja od l.
Ukoliko se želi odrediti je li znak simbol, veliko ili malo slovo i sl., koriste se
sljedeće mogućnosti koje pruža John the Ripper:

??,
ispitivanje podudarnosti sa znakom ?,

?v,
provjera je li znak samoglasnik,

?c,
provjera je li znak suglasnik,

?w,
provjera praznine,

?p,
ispitivanje je li znak interpunkcijski,

?s,
provjera podudarnosti s nekim od sljedećih znakova: " $ % ^ & * ( ) -
_ + = | \ < > [ ] { } # @ / ~ ",

?l,
ispitivanje je li znak malo slovo,

?u,
ispitivanje je li znak veliko slovo abecede,

?d,
provjera podudarnosti s brojevima,

?a,
provjera podudarnosti sa slovima,

?x,
ispitivanje podudara li se znak sa slovima ili znamenkama,

?z,
provjera podudarnosti sa svim vrstama znakova.
Ukoliko se želi ispitati komplementarna opcija, npr. je li znak bilo što osim broja,
dovoljno je opciju napisati velikim slovom (u ovom slučaju bi bilo „?D“).
29
Moguće je zadati jednostavne naredbe koje je po želji mogu kombinirati s drugim
opcijama:

:,
ne raditi ništa s riječi koja se provjerava,

l,
pretvoriti u mala slova,

u,
pretvoriti u velika slova,

C,
prvi znak pretvoriti u malo slovo, ostale znakove u velika slova,

r,
obrnuti riječ (npr. Kate  etaK),

d,
duplicirati riječ (npr. Kate  KateKate),

f,
reflektirati riječ (npr. Kate  KateetaK),

$X,
dodati X analiziranoj riječi,

sXY, zamijeniti sve znakove X zna0kom Y,

!X,
odbaciti riječ ukoliko sadrži znak X,

(X,
odbaciti riječ osim ako joj nije prvo slovo X,

%NX, odbaciti riječ osim ako ne sadrži slovo X barem N puta itd.
Mogu se koristiti i specijalne naredbe kao što su one za kontrolu duljine ( <N (za
odbacivanje riječi osim ako joj duljina nije manja od N), >N (za odbacivanje riječi
osim ako joj duljina nije veća od N), 'N (za skraćivanje riječi na duljinu N)), pravila
vezana uz gramatiku engleskog jezika (p za množinu riječi, P za prošlo vrijeme
(crack  cracked)...)[6].
6.3.4. Rezultati pokušaja probijanja zaporki korištenjem alata John the
Ripper
Kao što je već i navedeno, ovaj alat se najjednostavnije pokreće upisivanjem john
pass.txt u terminal nakon pozicioniranja u odgovarajući direktorij. Pri tome se
podrazumijeva da je pass.txt datoteka sa zaporkama koje se pokušava probiti.
Prvo se pokušava single način probijanja, zatim wordlist način s popisom pravila i
na kraju inkrementalni način rada.
John the Ripper je korišten za pokušaj probijanja zaporki koje su koristili korisnici
društvene mreže LinkedIn. Nakon 600 sati probijanja, uspješno je probijeno 30
zaporki od njih 6419. Pokušano je probijanje s većinom navedenih opcija pri čemu
30
se probijanje korištenjem wordlist načina pokazalo najuspješnijim budući da se
njime uspjelo probiti 10 zaporki.
Slika 5. Probijene zaporke korisnika s LinkedIna
Korišteni su različiti rječnici, a dosta uspjeha je postignuto pokušavanjem s
riječima koje su korištene na Wikipediji jer se radi o riječima koje se svakodnevno
koriste i veća je vjerojatnost da se neka od njih koristi kao zaporka. Slika 6.
pokazuje jednu od probijenih zaporki dobivenih korištenjem napada rječnikom.
Slika 6. Probijena zaporka korištenjem riječi s Wikipedije
Single način korištenja je dosta dugotrajan jer sustavno pretražuje pa je stoga
većina vremena probijanja i provedena korištenjem ovog načina. Zanimljivo je da
su neke zaporke pronađene odmah pri pokretanju alata, a radi se o najčešće
31
korištenim zaporkama. Tako su probijene zaporke: password, admin, 12345678,
1234... To što se password pojavljuje dva puta nije greška jer se radi o različitim
algoritmima računanja sažetaka pa se zapravo radi o različitim zaporkama jer se
probijanje temelji na usporedbi hash vrijednosti.
Kako bi se ubrzao single način probijanja, korištene su mnoge varijante kao što je
probijanje zaporki koje su sastavljene samo od znamenki (naredba koja je
korištena je john –i=digits passwords.txt), a prvu zaporku probijenu na taj način
prikazuje i slika 7.
Slika 7. Probijena zaporka korištenjem opcije idigits
John the Ripper se nije pokazao uspješnim na vlastitoj ispitnoj datoteci gdje su
primjerima zaporki izračunati sažeci korištenjem MD5 algoritma. Naime, u 300
sati, koliko je trajalo probijanje zaporki, ovaj alat nije uspio otkriti ni jednu.
32
7. Programsko rješenje
U okviru završnog rada razvijena su dva programa.
7.1.
Program za određivanje jačine zaporke
Program za određivanje jačine zaporki je napravljena u C# programskom jeziku
kao Windows Form aplikacija. Služi za analizu jačine unesene zaporke
korištenjem četiri klase:

entropija.cs,

Rjecnik.cs,

Program.cs,

Form1.cs.
7.1.1. Tehničke značajke
Program se temelji na izračunu entropije kao mjeri za određivanje jačine zaporke.
No najprije se provjeri je li zaporka jedna od najčešće korištenih jer tada entropija
ne igra veliku ulogu budući da je zaporku moguće probiti u jako kratkom vremenu.
Ukoliko zaporka nije jedna od najčešće korištenih, provjerava se je li možda
korisnik kao zaporku odredio neku riječ iz rječnika jer je u tom slučaju zaporka
podložna napadu rječnikom. Tada se također ne gleda entropija kao mjera jačine
zaporke jer takve zaporke ne predstavljaju zaštitu za informacije i podatke. U
slučaju da riječ nije ni u rječniku, potrebno je pokrenuti izračun entropije radi
određivanja jačine zaporki.
7.1.1.1.
Razred Rjecnik.cs
Razred Rjecnik.cs služi za provjeru je li unesena riječ jedna od najčešće
korištenih. Pri tome se pretražuje baza od 500 riječi koje su najčešće korištene
prošlih godina za zaporke. Ukoliko se pronađe podudaranje, potrebno je završiti
33
pretragu i vratiti informaciju o podudaranju u obliku povratne vrijednosti 1 u razred
Form1.cs.
U slučaju da podudaranja nema, kreće se na pretraživanje rječnika engleskog
jezika koji sadrži 58 110 riječi. Opet se traži podudaranje s nekom od riječi u
rječniku radi provjere je li zaporka podložna napadu rječnikom te tako ne
predstavlja zadovoljavajuću razinu zaštite podataka. U slučaju da je podudaranje
pronađeno, pretraga se prekida i vraća se povratna vrijednost
2 u razred
Form1.cs. Nula se kao povratna vrijednost koristi kada unesena zaporka ne postoji
kao jedna od najčešće korištenih ni kao riječ iz rječnika.
7.1.1.2.
Razred entropija.cs
Ovaj se razred koristi za izračun entropije unesene zaporke. Njega se pokreće
samo u slučaju da riječ nije u rječniku niti je jedna od najčešće korištenih.
Unesena zaporka se iz razreda Form1.cs šalje u metodu Ulaz koja prima niz
znakova, a vraća polje realnih brojeva koji će predstavljati izračunatu vrijednost
entropije.
Najprije se rječnik zapiše broj pojavljivanja za svaki korišteni znak. Pri tome se
određuje o kojoj se vrsti znaka radi da bi se moglo znati koliko kombinacija zaporki
ima. Ukoliko je riječ o malom ili velikom slovu, broj mogućih znakova je 26, za
brojeve je 10, dok se u zaporkama može kombinirati 33 specijalna znaka.
Kad je dobiven broj pojavljivanja svih znakova, računa se vjerojatnost njihova
pojavljivanja. Izračun se radi tako da se broj pojavljivanja znaka dijeli s duljinom
unesene zaporke, a zatim se ta izračunata vjerojatnost koristi za izračun entropije
korištenjem izraza navedenih u poglavlju 3. ovog rada. Vjerojatnost pojavljivanja
se množi s logaritmom vjerojatnosti i potom se dijeli s logaritmom po bazi 2. To se
napravi za svaki znak i dobije se iznos entropije u bit/simbol jedinicama. To je
dosta bitan podatak jer ako se dobije da je entropija npr. 3 bit/simbol, to znači da
za svaki znak prosječno treba 8 pokušaja da bi se pogodio. Ta se vrijednost može
pomnožiti s mogućim brojem kombinacija znakova da se dobije entropija u bitima.
Za jake zaporke obično se dobije vrijednost cca 200 bita što znači da je broj
mogućih kombinacija, tj. broj mogućih zaporki koje dolaze u obzir 2 200. Vrijednost
entropije u bit/simbol i bit jedinicama se spremi u polje realnih brojeva i vrati u
razred Form1.cs.
34
7.1.1.3.
Razred Form1.cs
U ovom razredu se definira ponašanje aplikacije za unesene zaporke. On poziva
razrede Rjecnik.cs i entropija.cs šaljući unesenu riječ te poduzima daljnje korake
ovisno o povratnoj vrijednosti.Ukoliko je riječ pronađena u rječniku ili je jako često
korištena kao zaporka, u ovom razredu će se postaviti ispisivanje odgovarajuće
poruke upozorenja te će vrijednost entropije biti 0 bita. U suprotnom se ispisuje
procjena jačine zaporki te grafički indikator pokaže postotak jačine zaporke.
7.1.2. Upute za korištenje
U pokrenutom programu je predviđeno mjesto za unos zaporke kako bi se
pokrenula analiza. Po završetku upisivanja, a klikom na gumb Izračunaj, pokreće
se analiza. Ukoliko se riječ pojavi kao jedna od najčešće korištenih, ispiše se
poruka: „Zaporka koju ste unijeli je jedna od najčešće korištenih. Radi sigurnosti
vaših podataka, najbolje je promijeniti je.“ Također se ispiše vrijednost entropije 0
bit/simbola i 0 bita, a i grafički indikator pokaže vrijednost 0% što je vidljivo na slici
8.
Slika 8. Jedna od najčešće korištenih zaporki je unesena
U slučaju da je riječ u rječniku, također se ispiše poruka upozorenja: „Vašu
zaporku je moguće probiti napadom rječnikom. Radi sigurnosti vaših podataka,
35
najbolje je promijeniti je“, a entropija i grafički indikator su postavljeni na iste
vrijednosti kao i u prošlom slučaju.
Slika 9. Unesena je riječ iz rječnika
Ako riječ nije ni u rječniku ni među najčešće korištenim, izračunava se entropija i
grafički indikator pokazuje koliko je jaka zaporka izračunato u postotcima s
obzirom na vrijednost entropije zaporke.
Slika 10. Slaba zaporka
36
Slika 11. Zaporka srednje jačine
Slika 12. Jaka zaporka
Želi li se ponovno pokrenuti analiza, dovoljno je kliknuti na gumb Ponovni unos, a
za kraj rada, klikne se na gumb Kraj.
7.2.
Simulacija rada alata za probijanje zaporki
Program je napravljen u C# programskom jeziku kao Windows Form aplikacija.
Razvijen je radi simulacije rada alata za probijanje zaporki i sastoji se od sedam
klasa:
37

Check.cs,

Form1.cs,

Generator.cs,

Hash.cs,

Program.cs,

Unos.cs,

Zapis.cs.
7.2.1. Tehničke značajke
Program simulira rad alata za probijanje zaporki korištenjem napada rječnikom.
Kao i u pravim alatima, i o ovom simulatoru se traži podudaranje sažetaka zaporki
koji su dobiveni korištenjem MD5 algoritma za sažimanje. U tu svrhu je potrebno
za cijeli rječnik izračunati sažetke te potom tražiti podudaranje za unesene
zaporke. Ukoliko se ono i dogodi, program će pokazati za koju zaporku se
dogodilo uz ispisivanje izračunatog sažetka.
7.2.1.1.
Razred Check.cs
Razred Zapis.cs poziva metodu provjeri razreda Check.cs predajući kao
parametar unesene zaporke za analizu. Svaka unesena zaporka se potom
pretvara u polje okteta i analizira joj se duljina. Ukoliko ona odgovara parametrima
za MD5 algoritam, potrebno je dodati salt te pozvati metodu izracun razreda
Hash.cs radi izračuna sažetka da bi se potom pokrenula provjera podudaranja sa
sažecima riječi iz rječnika. U slučaju da se ono dogodi, vraćaju se pripadajući
sažetak i zaporka.
7.2.1.2.
Razred Generator.cs
Ovaj se razred poziva iz Form1.cs razreda samo u slučaju da se odabere
generiranje zaporki za analizu umjesto unošenja. U metodi generiraj koja prima
broj zaporki za generiranje, generira se zadani broj zaporki nasumične duljine (1 –
14 znakova) te se one zapišu u datoteku.
38
7.2.1.3.
Razred Hash.cs
Ovaj razred služi za generiranje sažetka za predani niz znakova. Ukoliko salt nije
zadan, izabere se neki nasumični duljine između 4 i 8 okteta da bi nakon toga
uslijedilo generiranje MD5 sažetka za uneseni niz s dodatkom. Prije izlaska iz
funkcije potrebno je provesti pretvorbu dobivene vrijednosti iz polja okteta u
podatkovni tip string.
7.2.1.4.
Razred Unos.cs
U metodi unesi ovog razreda se unose zaporke za analizu te se potom pohrane u
datoteku da bi se kasnije mogle analizirati.
7.2.1.5.
Razred Zapis.cs
U ovom se razredu provodi glavni dio usporedbe sažetaka zaporke i vrijednosti iz
rječnika. Za svaku unesenu zaporku potrebno je proći kroz čitav rječnik i tražiti
podudaranje svih vrijednosti u sažetku što se radi pozivom metode provjeri
razreda Check.cs. Ako se ono dogodi, zapišu se vrijednosti u datoteku i nastavlja
se s usporedbom za ostale zaporke ako one postoje.
7.2.2. Upute za korištenje
Program je oblikovan tako da se zaporke ili generiraju ili da ih korisnik unese sam.
Ukoliko ih odluči unijeti sam, može upisati proizvoljan broj zaporki u prvo crveno
polje. Po završetku unosa, potrebno je kliknuti na gumb Unesi zaporke za početak
analize. Kad ona završi, u drugom crvenom polju se prikažu rezultati analize.
39
Slika 13. Korisnik je sam unio zaporke
Želi li se analizirati nasumično generirane zaporke, potrebno je zadati broj zaporki
za generiranje i kliknuti na gumb Generiraj zaporke. Ako se nađe podudaranje,
rezultati će se prikazati u drugom crvenom polju dok će u prvom biti prikaz
generiranih zaporki. Želi li se ponovno pokrenuti analiza, dovoljno je kliknuti na
gumb Ponovni unos, dok se za kraj rada odabire Kraj.
Slika 14. Korisnik je zadao da se izgenerira 100 zaporki i jedna od njih je bila u rječniku
40
8. Zaključak
U današnjem svijetu sve više do izražaja dolazi problem zaštite informacija.
Potrebno je koristiti raznolike metode zaštite kako povjerljivi podaci ne bi postali
dostupni onima koji za njihovo pregledavanje i korištenje nemaju dozvolu. U tu
svrhu se najčešće koriste zaporke čija je kvaliteta i obrađivana u ovom radu.
Pokazalo se kako je potrebno imati što dulju zaporku te kombinirati različite
znakove kako bi zaporke ostvarile svoju svrhu. Navedene su bitne razlike između
slabih i jakih zaporki te obrasci za njihovo stvaranje koje je potrebno slijediti radi
postizanja zadovoljavajuće jačine. Time se informacijski sustav čini što manje
ranjivim na hakerske napade.
Ukoliko se ne slijede obrasci za stvaranje zaporki već se koriste riječi iz rječnika ili
neke ustaljene riječi, vrlo je jednostavno probiti zaporku različitim vrstama napada
od kojih je dosta rasprostranjen napad rječnikom, pogotovo u mnogobrojnim
alatima za probijanje, kao što su John the Ripper, Cain and Abel, Hashcat i drugi.
Kao mjera za ispitivanje jačine zaporki koristi se entropija. Njezin iznos treba biti
što veći jer veća entropija znači i veći broj mogućih kombinacija, ali i dulje vrijeme
probijanja što opterećuje računalne resurse te čini zaporku jakom i praktički
nemogućom za probijanje u realnom vremenu.
Budući da je danas sve veći naglasak na nepovredivost privatnosti informacija
korisnika u globalnim mrežnim sustavima, ključno je da i sami korisnici doprinesu
zaštiti podataka u što većoj mjeri. Krajnje jednostavan način na koji oni to mogu
učiniti jest kreirati dovoljno jaku zaporku koja će u svakoj situaciji dodatno otežati
pristup njihovim korisničkim računima i podacima. Ukoliko se slijede dani naputci,
korisnik će u velikom broju slučajeva i imati zajamčenu sigurnost i privatnost
tijekom rada.
41
Literatura
[1] „Kako napraviti kvalitetnu lozinku“, dostupno na Internet adresi:
http://www.bug.hr/forum/topic/sigurnosni-softver/tut-kako-napraviti-kvalitetnulozinku/112889.aspx, 13.3.2014.
[2] Danijel Starman, „Testiranje i sigurnost“, dostupno na Internet adresi:
http://whitehatsec.blogspot.com/2012/07/nvidia-lagala-korisnicima-nvidia-forum.html,
16.3.2014.
[3] „Probijanje zaporki korištenjem Hashcata“, dostupno na Internet adresi:
http://samsclass.info/123/proj10/px16-hashcat-win.htm, 10.3.2014.
[4] „Ispitivanje slabih zaporki“, dostupno na Internet adresi:
https://www.felixrr.pro/archives/338/how-do-i-test-weak-password-hashes, 25.3.2014.
[5] „Zaporke za Linux sustav“, dostupno na Intenet adresi:
http://www.tldp.org/LDP/lame/LAME/linux-admin-made-easy/shadow-file-formats.html
2.4.2014.
[6] Primjeri korištenja alata John the Ripper, dostupno na Intenet stranici:
http://www.openwall.com/john/doc/EXAMPLES.shtml, 29.3.2014.
[7] Dan Wheeler, „Realistic Password Strength Estimation“, dostupni na Internet adresi:
https://tech.dropbox.com/2012/04/zxcvbn-realistic-password-strength-estimation/,
15.4.2014.
[8] Deb Shinder, „Passwords: the Weak Link in Network Security“, dostupno na Internet
adresi:
http://www.windowsecurity.com/articles-tutorials/authentication_and_encryption
/Passwords_Network_Security.html, 4.4.2014.
[9] Ziff Davis, „A Closer Look At the Current State of Password Security“, dostupno na
Intenet adresi:
http://www.itproportal.com/2014/01/22/a-closer-look-at-the-current-state-of-passwordsecurity/, 5.4.2014.
42
[10] „John the Ripper“, dostupno na Internet adresi:
http://www.win.tue.nl/~aeb/linux/john/john.html, 30.3.2014.
[11] „1Password is Ready for John the Ripper“, dostupno na Internet adresi:
http://blog.agilebits.com/2012/07/31/1password-is-ready-for-john-the-ripper/, 1.4.2014.
[12] „Better Master Passwords: The geek edition“, dostupno na Internet adresi:
http://blog.agilebits.com/2011/08/10/better-master-passwords-the-geek-edition/, 16.3.2014.
[13] „What does the John the Ripper do?“, dostupno na Internet adresi:
http://juggernaut.wikidot.com/jtr, 18.3.2014.
[14] „Savjeti za kreiranje jakih zaporki“, dostupno na Internet adresi:
http://windows.microsoft.com/sr-latn-rs/windows-vista/tips-for-creating-a-strongpassword, 16.3.2014.
[15] Margaret Rouse, Matthew Haughn, „Password Entropy“, dostupno na Internet adresi:
http://whatis.techtarget.com/definition/password-entropy, 17.3.2014.
[16] „Cain and Abel“, dostupno na Internet adresi:
http://www.oxid.it/cain.html, 15.4.2014.
[17] „Security Solutions“, dostupno na Internet adresi:
http://www.security-solutions.co.za/cisco-asa-firewall-hardening-cisco-asa-bestpractices.html, 20.3.2014.
[18] Steve Ford, „Password Strength“, dostupno na Internet adresi:
http://blog.geeky-boy.com/, 3.4.2014.
43
Određivanje kvalitete zaporki
Sažetak
Svaki korisnik prilikom rada na računalu želi imati zajamčenu sigurnost i
povjerljivost njegovih transakcija kao i korisničkih podataka. Budući da je s daljnjim
razvojem tehnologije naglasak na tome još veći, pitanje je na koji se sve način
mogu podaci zaštititi te tako smanjiti vjerojatnost gubitka povjerljivih podataka. To
moraju zajamčiti različiti sustavi, ali je briga o tome povjerena i samom korisniku i
to na vrlo jednostavan način; kreiranjem zaporke čija će jačina u dovoljnoj mjeri
jamčiti sigurnost pristupa. U cilju simulacije odabira dobre korisničke zaporke,
tijekom rada dan je prijedlog različitih mogućnosti kreiranja. Pri tome je prikazano
kako jedan loš odabir lozinke može nepovoljno utjecati na sigurnost te olakšati
pristup neovlaštenim korisnicima. Potom su dani načini poboljšavanja kvalitete
zaporke, a rezultati su kvalitativno izraženi izračunom entropije koja će korisniku
dati dovoljnu razinu informacije o jačini zaporke. Radi prikupljanja podataka za
kvalitativnu analizu zaporki, korišten je alat John the Ripper čija je temeljna
namjena bila ispitati jačinu zaporki koje su koristili stvarni korisnici. To je bilo
polazište za izgradnju aplikacije koja će i sama vršiti ocjenu jačine zaporke na
temu izračuna entropije. Time se korisnicima daje uvid u trenutnu kvalitetu
zaporke te omogućiti poboljšanje iste u slučaju nedovoljne jačine.
Ključne riječi
Zaporka, jačina zaporke, entropija, funkcija za izračunavanje sažetka, napadi na
zaporke, napadi grubom silom, napadi rječnikom, alati za probijanje, zaštita
informacija, kriptografija
44
Password strength detection
Summary
Every user wants to preserve his privacy while working on network. This does not
consider his files only, but also confidaciality of his transactions and usually used
data. Considering that technology's improval is emphasizing the issue of data
security and user protection, one of the biggest concerns in nowadays bussiness
world is how to protect the user and therefore, lead to reducing the loss of
confidential data. Different systems are to guarantee certain security to users but
users are also obliged to take care of their data which pricipally refers to
passwords used as main protection method. Their are to create satisfactory
strength passwords which would make users sure their data are safe. In order to
show how to detect good password and create one of their own, this work deals
with many possibilities and options for creating passwords that would do their job;
protect data. John the Ripper, well-known password cracker, is used to examine
how strong are passwords that real users use. That information is a base for
building a program that would anaylize input passwords and therefore, lead to their
emproval in case of their weakness.
Keywords
Password, password strength, entropy, hash function, salt, password attacks,
brute-force attacks, dictionary attacks, password crackers, information protection,
cyptography
45