Tehnologija
nezadrživo napreduje, međutim jedna stvar je nezaobilazno još uvijek u upotrebi:
lozinka.
Lozinka (koriste
se i izrazi: šifra, kôd) je kombinacija znakova (slova, brojeva, simbola i sl.)
koje zaštićeni dokument, uređaj, sistem ili servis istom pamti, te svaki put
kada korisnik želi pristup, od njega se traži unos te lozinke, čime se utvrđuje
njegovo pravo da pristupa. Da, lozinke su nužno zlo. Danas imate nalog na internetu
za: elektronsku poštu, banku, za skladištenje u oblaku, kupovinu, rezervacije
putovanja, posao, društvene mreže, igre, itd. Korisnik želi da pristupi
potrebnom resursu i da ga upotrijebi, međutim svaki resurs traži lozinku i
preporučuje da se ta lozinka ne koristi na drugom mjestu.
Uopšte nije teško
zamisliti da ignorišemo upozorenja, pa koristimo dvije ili tri lozinke na svim
nalozima koje imamo. Da stvari budu još zanimljivije, te iste lozinke ispišemo
na papiru i to zalijepimo na kućište računara ili prepustimo pretraživaču interneta
da ih zapamti umjesto nas, uporno ignorišući sigurnosne preporuke, pa je gotovo
nemoguće da u jednom trenutku danas ne budete hakovani. Korisnički nalozi
vrijede čitavo bogatstvo napadačima (hakerima) – koristiće ih za ucjenu, slanje
neženje pošte drugim korisnicima, instalaciju zlonamjernog softvera itd. To se
može vidjeti na primjeru velikih kompanija koje ulažu ogromne sume novca na
sigurnost, a napadnute su i podaci su ukradeni kompanijama: TalkTalk, Yahoo!, Dropbox, Google, Facebook
i drugim. Ukratko rečeno, treba da se pobrinuti da hakovanjem jednog od naloga
ne omogući hakerima pristup svim ostalim nalozima koje korisnik posjeduje.
Kada čujemo za da
je izvršen veliki hakerski napad, to uvijek zvuči kao da je bio nevjerovatno
zahtjevan i komplikovan. Međutim, vrlo često, istina je da su napadači koristili
riječi iz rječnik kao osnovu za napad preko lozinki, oslanjajući se na slabe
korisničke lozinke i uspjeli. Ako pogledamo neke od „najpopularnijih“ lozinki koje
su bile ponuđene za prodaju na Internetu u poslednje vrijeme istina nije daleko:
Svako bi trebao da
koristi duge i teške za pogoditi lozinke, koje su jedinstvene za svaki nalog.
Na taj način, gubitak jednog naloga, neće uticati na druge.
Prije nego što shvatimo
da trebamo promjenu pristupa korištenja lozinki, potrebno je u potpunosti
razumjeti kako lozinke funkcionišu i kako jedna loša navika u njihovom
korištenju može biti sigurnosni propust za čitav vaš život. Najjednostavnije
rečeno, lozinke se skladište zajedno sa korisničkim imenom u bazu podataka.
Kada popunite obrazac za prijavu sa svojim korisničkim imenom i lozinkom, vrši
se provjera da li podaci odgovaraju unosu u bazi podataka, ako da - vi možete
koristi zahtijevani resurs. Naravno, baza podataka nije običan tekst. Malo je
komplikovanije od toga, u protivnom svaki napadač bi bio u mogućnosti dođe to
tih informacija. Ni jedan ozbiljan servis neće korisničke informacije čuvati
kao običan tekst. U praksi korisnička informacija za prijavu i korištenje
servisa trebalo bi da da se skladišti kao „haš“ (eng. hash) algoritam – što je u ovom slučaju naziv za jedinstvenu
kombinaciju slova i brojeva koja predstavlja korisnički podatak. Uzmimo za
primjer riječ „lozinka“, MD5 haš algoritam za ovu riječ je 8aa87050051efe26091a13dbfdf901c6.
Kada popunite polje za prijavu na nekom od servisa i potvrdite prijavu, taj servis
bi trebao da uporedi haš lozinke koju ste upisali sa onim koji je sačuvan u
bazi pored vašeg korisničkog imena. Ako je vrijednost identična, prijava je uspješna,
u suprotnom morate pokušati ponovo.
Ove vrijednosti ne
mogu obrnutim inžinjeringom biti vraćene u tekst, ali ove vrijednosti za
najčešće korištene lozinke su dobro poznate, tako da nije teško napisati
program koji će uporediti sve ukradene lozinke sa poznatim haš vrijednostima.
Sa druge strane, kompanije koje brinu o sigurnosti svojih korisnika koriste
dodatnu zaštitu koristeći nešto što nosi termin
„salt“, odnosno dodatak. U ovom
slučaju, samoj lozinci se dodaje korisničko ime, adresa elektronske pošte i sl.
Tako da u našem primjeru iznad smo koristili pojam „lozinka“ , ako sada njemu
dodamo korisničko ime „korisnik“ (korisniklozinka) dobijamo novu haš vrijednost
76d77b52462fb753658e4e72f9e3136b. U slučaju krađe, napadač će vjerovatno znati
korisničko ime, ali neće moći da u navedenoj vrijednosti odredi šta je
korisničko ime, a šta lozinka. Uz to, u posljednje vrijeme servisi su počeli da
pored korištenja navedenih načina zaštite baze podataka sa lozinkama, vrše
enkripciju iste kao način dodatne zaštite. Ipak, na kraju ne možemo sa sigurnošću reći
koji servis koristi sigurnije čuvanje lozinki, a koji ne. Ako se koristi jedna
lozinka na više servisa, dovoljno je da samo jedan ima sigurnosni propust i svi
vaši servisi će biti dostupni napadaču ili napadačima, bez obzira koliko ta
lozinka bila „jaka“. Zato je veoma važno imati jedinstvenu lozinku za svaki
servis i čuvati je na siguran način.
Svim je poznata
osnova kreiranja lozinki, pa tako i na većini ozbiljnijih servisa prilikom
prijave biti će prikazana obojena traka koja će pokazivati koliko je lozinka
jaka. Naravno, traži se da koristite velika i mala slova, brojeve i simbole; da
lozinka bude što duža – minimalno osam znakova, a da ne koristite svoje ime,
prezime ili korisničko ime i sl. To su sve korisni savjeti, ali takvu lozinku
je teško zapamtiti. Zbog toga su se počeli koristiti „tajni izrazi“ (passphrases) kao lakši način za upotrebu
i pamćenje. Treba napomenuti da ovi tajni izrazi koriste riječi koje se nalaze
u rječniku, tako da je dobra praksa koristiti riječi za koje ne bi imalo smisla
da budu jedna pored druge. Ipak, skorašnja istraživanja su pokazala da ovi
tajni izrazi, iako su duži nisu sigurniji od kraćih kompleksnijih lozinki.
Razlog se krije u tome što korisnici nisu u stanju da odaberu nasumične riječi,
već koriste rečenice koje se koriste u svakodnevnom razgovoru. Zaključak
sprovedenih istraživanja pokazuje da je koncept tajnog izraza dobar, međutim
korisnik je taj koji bira da koristi tajni izraz koji kao rečenica ima smisla,
a sa tim postaje mnogo manje siguran za upotrebu.
Sa druge strane tajni
izraz je dobar način za pravljenje osnovne lozinke na sljedeći način:
1.
Smisliti
dobar tajni izraz. Npr. Računar koristim za pristup Internetu kada sam kući.
2. Iskoristiti prvo slovo svake riječi: RkzpIksk
3. Ako se lozinka namjerava koristiti za plaćanje
preko Interneta, pronaći riječ koja asocira na to (npr. kupovina) i ubaciti je
prije zadnja dva slova u izrazu iznad, sa tim da drugo i zadnje slovo budu
velika slova.
4. Nakon drugog slova u izrazu RkzpIksk dodati broj
(npr. 7)
5. Prilikom ubacivanja u izraz RkzpIksk riječi
kupovina, prije prvog slova staviti zvjezdicu, a posle zadnjeg navodnik.
6. Koristeći iznad sve navedeno, lozinka izgleda
ovako: Rk7zpIk*kUpovinA“sk
7.
Svaka
buduća lozinka bi trebalo da koristi ovaj obrazac, sa tim da dodatna riječ bude
svaki put drugačija.
Na ovaj način
svaki korisnik je u mogućnosti da napravi širok spektar lozinki za korištenje,
a da te lozinke budu jedinstvene i teške za pogoditi. Sa druge strane, nakon
nekoliko pokušaja svi će se složiti da je teško zapamtiti ovih nekoliko koraka,
a vrlo vjerovatno da će asocijacija na dodatnu riječ, naravno, biti
zaboravljena. Na sve ovo ako se dodaju i greške u unosu, ova opcija će biti
brzo odbačena u potrazi za nečim jednostavnijim.
U situaciji kada
korisnik ima čitav arsenal sigurnih lozinki, javlja se problem pamćenja. Pretraživači
interneta omogućavaju i nude da sačuvaju lozinke kada prepoznaju formu za
prijavu. Nažalost, postoji nekoliko vrlo jednostavnih i besplatnih alata koji
mogu da izvuku i prikažu lozinke koje su sačuvane u Internet pretraživačima. Ovdje
u pomoć dolaze menadžeri za lozinke, a najbolji su oni koji omogućavaju čuvanje
lozinki u oblaku, dajući mogućnost pristupa sa bilo koje lokacije koristeći samo
jednu kompleksnu glavnu lozinku. Nedostatak ovog sistema je to što korisnik
nema više kontrolu, pa hakovanje davaoca usluge može da ugrozi korisničke
lozinke. Za paranoične korisnike ostaje opcija sa menadžerima lozinki koji
čuvaju lozinke samo lokalno na uređaju, uz nedostatak stalnog pristupa
lozinkama sa svake lokacije.
Sa druge strane, uz
sve navedeno i još malo dodatnog korisničkog truda, korisnik može koristiti i
verifikacija u dva koraka (two-factor
authentication – 2FA). Ova opcija omogućava korisniku dodatnu zaštitu u
slučaju hakovanja korisničkog naloga. Ovo podrazumijeva povezivanje korisničkog
broja telefona ili drugog naloga elektronske pošte sa korisničkim nalogom koji
se želi dodatno zaštiti. Kada se korisnik prijavi na ovako zaštićen nalog,
korisniku će biti poslat sigurnosni kod koji mora dodatno unijeti da bi konačno
mogao koristiti željeni servis. Napadači su uspjeli pronaći i nedostatak u ovom
sistemu zaštite, pa su uspjeli napraviti mehanizam za presretanje verifikacije
u dva koraka (2FA) preko SMS poruka koristeći podatke o brojevima
telefona i adresama elektronske pošte iz prethodno hakovanih servisa.
Postoji mnogo
načina na koje hakeri dolaze do vaših lozinki, ovdje ćemo navesti neke koji se
najčešće koriste:
Nasilno probijanje (Brute force) –
je jednostavan način po kojem napadač pokušava razene kombinacije lozinki po
sistemu greške i uspjeha. Ovaj način napada se usavršio tokom vremena i sada
napadači prvo generišu ogromnu listu potencijalnih lozinki, a uz to koriste
ogromne baze ukradenih lozinki koje razmjenjuju ili otkupljuju međusobno i tako
povećavaju šanse za uspjeh napada.
Popunjavanje kredencijala (Credential Stuffing) – je vrsta napada gdje je napadač došao u posjed
ukradenih kredencijala (korisničkog imena, lozinke, elektronske pošte i sl.) na
jednom mjestu i sada pokušava automatizovanim napadom da unese te podatke u
servise koji bi mogli imati veze sa ukradenim korisničkim kredencijalima. Ovaj napad
se oslanja na naviku korisnika da recikliraju lozinke (ponovno korištenje
starih lozinki) ili naviku da se jedna lozinka koristi na više korisničkih
naloga.
Servisne baze podataka – Ovdje se ne radi samo o tome kako vi čuvate
svoje podatke, već kako se drugi brinu o vašoj sigurnosti. Bilo da se radi o davaocu
internet usluge (ISP), društvenoj
mreži, hotelu, doktoru i slično, svi imaju podatke o vama. Ako neko ima lošu
praksu implementacije sigurnosnih zakrpa, ne koristi enkripciju podataka, ne
omogućava verifikaciju u dva koraka (2FA),
rezultat za vas može biti isti – napadačima je olakšan pristup vašim podacima i
vrlo vjerovatno da će doći do njih.
Pecanje (Phishing) – ova vrsta napada podrazumijeva korištenje
lažne elektorske pošte ili internet stranica, napravljenih tako da izgledaju
kao prava stvar – korištenje pravog teksta, dizajna, loga i ostalih elemenata
kako bi vas uspješno prevarili. Ovdje je potrebno da kliknete na link ili
unesete svoju lozinku i na taj način svoje podatke predate napadačima.
Javni Wi-Fi – sam naziv kaže da javni Wi-Fi nije privatan. Ova
činjenica je poznata i opšte prihvaćena, međutim manje je poznato da napadači
mogu da izvrše nadzor javne mreže i da presretnu i analiziraju vašu
komunikaciju i tako dođu do vaših kredencijala.
Zlonamjeran softver – napadači u današnje vrijeme koriste razne
vrste zlonamjernog softvera. Kada su korisnički kredencijali u pitanju napadači
koriste zlonamjerni softver za „iščitavanje“ lozinki iz programskih skladišta na vašem
uređaju ili tzv. keylogger zlonamjerni softver koji prati vašu aktivnost unosa na tastaturi, snima i šalje napadaču na
analizu.
Slučajnost – List papira sa nazivima servisa koje koristite
uz korisnička imena i lozinke, ostavljen kraj računara, zalijepljen na monitor,
sakriven ispod tastature, ubačen u rokovnik i sl. – može biti izgubljen ili
uzet. Ako ste meta napada, neko će sigurno iskoristiti ovu priliku.
Tehnološka
budućnost verifikacije korisnika je neizvjesna. Postoje biometrijska autentifikacija,
autentifikacija oka, autentifikacija lica, različite verzije autentifikacije
koristeći različite stvari (satove, nakit, tetovaže i sl). Kako god, alternativni
pristup povećava cijenu korištenja usluge, jer je potreban dodatni hardver,
javlja se problem integracije sa postojećim sistemima i često je komplikovan za
upotrebu, dok se lozinke lako kreiraju i potpuno su besplatne. Na vama je da se
zaštitite najbolje što možete...