nav_dugme codeBlog codeBlog
  • početna Početna stranica
  • Sačuvani članci Sačuvani članci
  • Članci
     (spisak)
  • Kontakt
Povratak na vrh stranice

Info & povezani članci Info o članku - dugme

Info

trejler_sat Datum objave: 20.10.2020.

trejler_dokument Jezici: ----

trejler_teg_narandzasti Težina: 5/10

lozinka
sigurnost
internet
login
prijava
autorizacija
optimizacija
saveti
zanimljivosti

Povezani članci

Uvod u web dizajn - 1. deo - Početni koraciUpotreba specijalnih znakova u HTML datotekamaNapredni parametri internet pretrageStruktura web adresa i pristup internet stranicamaUvod u JavaScript i DOM (Document Object Model)JSON - tekstualni format za razmenu podatakaRegularni izrazi - napredna pretraga tekstaUvod u PythonIzbor prvog programskog jezikaASCII, UNICODE i UTF - Predstavljanje znakova na računarimaGNU/Linux - 1. deo - Uvod
Svi članci
Programs must be written for people to read, and only incidentally for machines to execute.
Harold Abelson

Kako napraviti dobru lozinku

Facebook LinkedIn Twitter Viber WhatsApp E-mail
zoom_plus zoom_minus bookmark
početna > Članci > Saveti

Uvod

Ako iole ozbiljnije razmislimo o efikasnosti i upotrebnoj vrednosti lozinki koje koristimo, neće biti teško da dođemo do sledećeg zaključka: dobre lozinke nisu jednostavne i kratke, a kratke i jednostavne lozinke nisu dobre.

U praktičnom smislu, najbolja lozinka je 'poduža' nasumična niska znakova, nalik na nisku xA#!dFRx17121M@VxDaS/%, sa kojom će se pomučiti svako ko želi da neovlašćeno pristupi tuđim podacima, ali, ako koristimo takvu lozinku - pomučićemo se i mi sami.

Potpuno nasumične lozinke teško se pamte (i lako zaboravljaju (ako se neko uopšte i potrudi da ih upamti)), a ako se pridržavamo pravila koje navodi da za svaki nalog (email, Instagram, Facebook, desktop računar, laptop ....), treba koristiti različite lozinke, koje pri tom ne treba zapisivati (pogotovo ne u elektronskom obliku), lako je uvideti da korišćenje dugačkih i nasumičnih lozinki "podosta napreže vijuge".

Međutim, pošto su dobre lozinke neophodne u svakodnevnim situacijama, pokušaćemo da iznađemo kreativan pristup za kreiranje i pamćenje dobrih lozinki jer u suprotnom preostaje: ili korišćenje slabih lozinki (naravno, to nikako ne preporučujemo!), ili pamćenje komplikovanih lozinki (to već ostavljamo vama, ukoliko ste raspoloženi).

Opšte odlike neadekvatnih lozinki

Pre nego što ponudimo (relativno) jednostavna rešenja za kreiranje (prilično) dobrih lozinki, objasnićemo zašto su dobre lozinke zapravo bitne i šta su odlike dobrih lozinki - tako što ćemo se prvo pozabaviti neadekvatnim obrascima za formiranje lozinki (pri čemu ćemo predočiti zašto takve obrasce treba izbegavati).

Ukoliko neko pokušava da neovlašćeno dođe do tuđe lozinke, najverovatnije će koristiti jednu od sledeće tri metode: pokušaj poklapanja sa uobičajenim lozinkama (i obrascima za formiranje lozinki), korišćenje informacija o ličnosti čiju lozinku pokušava da preuzme, ili (kao najmanje efikasan i najmanje popularan način), metodu grube sile.

Za početak, razmotrićemo zašto lozinka treba da ima što više znakova (naravno, 'u granicama razuma').

Premali broj znakova

U različitim računarskim sistemima (e-mail nalozi, društvene mreže i sl), često se pojavljuju formulari za registraciju koji od korisnika zahtevaju da izaberu lozinku sa najmanje osam znakova, od kojih je bar jedan cifra (a ponegde se zahteva i upotreba bar jednog velikog slova, pa čak i specijalnih znakova), i nije preterano reći da mnogi korisnici smatraju da je ispunjavanje navedenih zahteva blagi vid uznemiravanja koji naizgled nema poentu. :)

Međutim, poenta (naravno) postoji.

Najteži način za obijanje lozinki, metoda 'grube sile' (eng. brute force), podrazumeva isprobavanje svih mogućih kombinacija znakova, a u sledećem primeru (preko koga ćemo prikazati "kombinatoriku koja stoji iza lozinki"), smatraćemo da se za isprobavanje jedne kombinacije troši 10-7 sekundi (odnosno, 0.1 mikrosekunda), što praktično znači da se u jednoj sekundi može isprobati 10 miliona kombinacija.

Pitanje je: koliko je vremena potrebno za isprobavanje tipične lozinke, pri čemu može delovati - shodno "brzini" koja je navedena u prethodnom pasusu - da će sve biti izvedeno za tili čas.

Možda (?!), ali, hajde da razmotrimo "brojke" ....

Ukoliko je dužina lozinke 4 (znaka) i pri tom se koriste samo cifre (10 cifara), dolazi se do sledeće računice:

		
Broj mogućih lozinki: 10 * 10 * 10 * 10 = 10000
Vreme za pretragu (u sekundama): 10000 / 10000000 = 1/1000s (1 milisekunda)
		
	
Slika 1. - Broj mogućih kombinacija za četiri mesta i deset mogućih znakova.

Ukoliko se neko (od mlađih čitalaca) dvoumi oko računice, recimo da se svako mesto može kombinovati sa bilo kojim drugim mestom, tako da u obzir dođe - bilo koji od znakova (kojih u ovom slučaju ima 10) - na bilo kom od mesta.

Za raspon mesta od dva do četiri, važe sledeća pravila:

		
Za 2 mesta: 10 (prvo mesto)    * 10 (drugo mesto) - ukupno 100 kombinacija
Za 3 mesta: 10 (treće mesto)   * 100 (prva dva)   - ukupno 1000 kombinacija
Za 4 mesta: 10 (četvrto mesto) * 1000 (prva tri)  - ukupno 10000 kombinacija
		
	
Slika 2. - Četiri mesta i deset znakova - dodatno objašnjenje za mlađe čitaoce.

U svakom slučaju, odmah je jasno da mali broj mesta u šifri i mali broj mogućih znakova za svako mesto, nikako nije "dobitna kombinacija" (nije pošalica).

Ukoliko se broj mesta poveća na osam, sledi:

		
Broj mogućih lozinki:
10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 = 100000000

Vreme za pretragu (u sekundama):
100000000 / 10000000 = 10s
		
	
Slika 3. - Broj mogućih kombinacija za osam mesta i deset znakova.

Ako se cifre zamene slovima, stvari postaju mnogo .... 'bolje' ili 'gore', u zavisnosti od toga da li neko pokušava da 'obije' lozinku, ili da je zaštiti.

Ukoliko se umesto cifara koriste slova engleskog alfabeta (26 znakova, umesto 10), vreme potrebno za isprobavanje lozinki raste (veoma primetno):

		
Broj mogućih lozinki:
26 * 26 * 26 * 26 * 26 * 26 * 26 * 26 = 208827064576

Vreme za pretragu (u sekundama):
208827064576 / 10000000 = ~20882s (nepunih 6 sati)
		
	
Slika 4. - Broj mogućih kombinacija za 8 mesta i 26 znakova.

Ako se na kraju dodaju: velika slova (+ 26 znakova), specijalni znakovi (neka bude + 10 znakova, mada ih svakako može biti i više od 10), i ukoliko 'vratimo' cifre (+ 10 znakova), broj mogućih znakova za svako mesto raste na 72, a "računica" po pitanju vremena za isprobavanje lozinki - još je "očiglednija":

		
Broj mogućih lozinki:
72 * 72 * 72 * 72 * 72 * 72 * 72 * 72 = 722204136308736

Vreme za pretragu (u sekundama):
722204136308736 / 10000000 = ~72220413s
Praktično: ~2 godine i 3.5 meseca
		
	
Slika 5. - Broj mogućih kombinacija za 8 mesta i 72 znaka.

Dakle, 'obijanje' metodom grube sile, nije nimalo efikasan metod ukoliko lozinka ima iole 'pristojnu' dužinu.

Međutim, koliko god to neverovatno deluje, u većini slučajeva, korisnici računarskih sistema praktično sami "poklanjaju" svoje lozinke ....

Lični podaci i suviše jednostavni obrasci

Poslednje što smo naveli, na prvi pogled deluje neverovatno, jer gotovo niko neće nekom nepoznatom doslovno "pokloniti" lozinku, ali (nažalost), situacija u praksi često nije daleko od 'doslovnog poklanjanja'.

Kada se nedovoljno upućeni korisnici upoznaju sa prethodno navedenim pravilima o dužini lozinki (i zapravo ih uvaže), pri kreiranju lozinki obično će izabrati obrazac koji podrazumeva korišćenje lako dosupnih ličnih podataka.

"To ne radimo mi i naši poznanici, to radi neko drugi!" Možda?! I nadamo se da je tako. Međutim, iskustvo ipak pokazuje da je "na terenu" situacija sasvim drugačija (i zato i pišemo ovakav tekst). :)

Ako vaša lozinka nije više "223", već "jecarex90", to jeste malo bolje, ali, druga navedena lozinka jedino zadovoljava kriterijum minimalne dužine (dok, sve ostalo, 'pada u vodu'): ako se Vaša supruga/devojka/sestra zove Jelena, Rex je Vaš pas, a 1990. je godina Vašeg rođenja, onda je "tajna" šifra (umesto 'baš odmah'), "pala" već na drugom koraku.

Naivno je poverovati da neko, ko pokušava da dođe do šifre neovlašćeno, neće uzeti u obzir šifru koja je formirana po gornjem obrascu, jer - da vas razočaramo - hoće, a pre svega, iza takvih pokušaja neće biti neko ko to radi ručno, već (kao što smo ranije nagovestili), automatizovani sistem koji lozinke isprobava izrazito velikom brzinom.

Prilično poražavajuće statistike (u koje autor ovih redova na nekom nivou i dalje odbija da poveruje), navode da ogroman procenat ljudi (pa čak i administratora mrežnih sistema i sličnih pojedinaca koji bi trebalo da "znaju bolje"), koristi krajnje jednostavne i lako "provaljive" lozinke, kao što su "123", "pass", "lozinka", zatim, lozinke koje se poklapaju sa korisničkim imenom (doduše, sistemi za registraciju obično odbijaju da kreiraju nalog u ovakvoj situaciji), kao i druge slične (najjednostavnije) obrasce.

		
123    - ako vam određeni sistem za registraciju
admin    uopšte i dozvoli korišćenje neke od 
pass     navedenih lozinki, efekat je kao da ste
abc      na stanu ostavili otključana vrata

joca1988  -  čak i ako ovo nisu Vaši podaci (ili podaci
             nekoga Vama bliskog), ovakav obrazac je
             suviše jednostavan

superman1978  -  Možda Superman nije vaš omiljeni film, ali,
                 programi za automatsko 'obijanje' lozinki
                 su (odavno) 'istrenirani' za prepoznavanje
                 ovakvih jednostavnih obrazaca

4kv4m3n  -  malo bolje od prethodnog, ali -
            i dalje 'ne vredi'

12345678  -  da se vratimo na "otključana vrata" ....
             možda ste ovakvu lozinku izabrali namerno,
             u želji da "zbunite protivnika" i, ako bi se
             desilo da neko pokuša da obije lozinku ručno,
             moglo bi mu pasti na pamet da ni ne pokuša da
             isproba ovakav obrazac ("haha, ko je lud da
             stavi lozinku 123?!"), međutim, mnogo je
             verovatnije da će se "pokušajima" baviti
             automatizovani računarski sistem, i onda će
             ovakva lozinka biti isprobana među prvima i
             'pašće' za manje od nekoliko ms
		
	
Slika 6. - Primeri neadekvatnih lozinki.

Tipična situacija podrazumeva da određeni korisnik (ipak) ne upotrebljava niske "123", "lozinka" i sl. kao lozinku, ali - moguće je da se nevoljno "odaje" na drugi način (vratićemo se na primer koji smo prethodno izneli) ....

  • na Fejsbuku stoji status koji ukazuje na to s kim je korisnik u braku
  • na Instagramu stoji zajednička slika sa kućnim ljubimcem (koji je uredno potpisan imenom)
  • na profilima sa društvenih mreža stoji i datum rođenja korisnika (sa godištem koje je korišćeno kao deo lozinke)

Summa summarum (pretpostavljamo da je sada sasvim jasno na šta ciljamo): iako mnogi korisnici različitih računarskih sistema ne poklanjaju lozinke doslovno - skoro da je tako.

Pravila za definisanje dobrih lozinki

.... ili, bar - "mnogo boljih" :)

Sada kada smo vas (nadamo se) ubedili u to da se sa lozinkama ipak 'ne treba šaliti', vraćamo se na početak (i postavljamo pitanja): kako kreirati dobru lozinku? Šta je (uopšte) dobra lozinka? Koje su osnovne odlike dobrih lozinki?

Postoji li možda jedna osobina koja određuje dobre lozinke?

U praktičnom smislu, zapravo postoji.

Kao što smo videli, lozinke koje nisu adekvatne, imaju (bar) jednu od sledeće dve osobine: ili su suviše jednostavne u osnovnom tehničkom smislu (premali broj znakova), ili su formulisane po jednostavnim obrascima koji se lako prepoznaju, i stoga se može reći da je njihova zajednička osobina - predvidljivost.

Nije onda teško zaključiti da je glavna osobina dobrih lozinki (nasuprot navedenom) - nasumičnost.

Nasumičnost se najbolje postiže (to smo videli na početku), generisanjem i korišćenjem doslovno nasumičnih niski znakova, ali, takve lozinke se onda moraju čuvati na adekvatan način (preko posebnog softvera za sigurno skladištenje lozinki, ili, u sefovima i sl), jer, u slučaju neadekvatnog čuvanja, praktično se poništava svrha kvalitetnih lozinki.

Međutim, moramo biti praktični i ne možemo ipak očekivati da će se većina korisnika ("baš") toliko truditi oko svojih lozinki za naloge koji se koriste svakodnevno, i stoga je potrebno iznaći metod koji (po mogućnosti) pruža okvirno 90% sigurnosti koju nude doslovno nasumične šifre - uz cca. 10% uloženog truda.

Rešenje koje predlažemo podrazumeva da "smislite priču" po jednom od sledeća dva obrasca:

  • kraća priča od nekoliko nepovezanih reči (koje ćete koristiti u celosti)
  • duža priča - iz koje ćete 'izvući' samo početna slova upotrebljenih reči

Za varijantu sa nekoliko nepovezanih reči, savetujemo da upotrebite bar četiri reči, tako da ukupna dužina bude bar 15 znakova (još bolje i preporučljivije je 6/20, ako ste iole raspoloženi da pamtite).

Naravno, nivo očigledne povezanosti među rečima treba da bude što manji, ali, obrazac istovremeno treba da bude dovoljno "čudan i zanimljiv" - da biste vi sami mogli da upamtite nisku.

Recimo, nešto nalik na ....

		
rumenijunskikarburatorgledabalet
		
	
Slika 7. - Primer lozinke koja se dobija vezivanjem naizgled nepovezanih pojmova.

Jeste, čudno je i nepovezano, ali (istovremeno): vrlo nasumično i (ako se iole potrudimo) - lako pamtljivo - i upravo u svemu tome je poenta. *

Uz malo truda, osmislili smo 'neobičnu konstrukciju' koja zapravo prestavlja (sasvim dobru) lozinku od preko 30 znakova. **

* Mnoga naučna istraživanja govore u prilog tome da ljudski mozak lakše pamti neuobičajene stvari i, na nivou intuicije, nije nimalo teško poverovati u takvu tvrdnju (slučajnog prolaznika koga smo na ulici videli u "drečavom" gornjem delu trenerke u tri boje i "dva broja većim" pantalonama, gotovo sigurno ćemo upamtiti mnogo lakše nego osobu koja je pored nas prošla u svetlo plavim farmerkama i crnoj majici).

** Napomenimo (za svaki slučaj): lozinka koju ste videli iznad je samo primer i - zarad sigurnosti vas, naših cenjenih čitalaca - nemojte koristiti navedenu lozinku, niti druge lozinke koje ste pročitali u ovom članku (ili na drugim javnim mestima).

Veliki broj znakova u lozinki koju smo prethodno "konstruisali", skoro da garantuje da pokušaj pronalaženja metodom znak-po-znak neće uspeti, ali, ni u kom slučaju ne smemo tvrditi da se prikazana lozinka ne može probiti pokušajima poklapanja metodom reč-po-reč (naravno da se neko i toga dosetio).

Međutim, pojedinačnih reči ima "prilično mnogo" (a valja uzeti u obzir i različite padežne oblike imenica, glagolska vremena i sl), i stoga je broj kombinacija i u ovom slučaju izuzetno velik, a može se sve "začiniti" i namernim "greškama" (kao i kombinacijama velikih i malih slova i dodavanjem specijalnih znakova):

		
~|=rumen#junskikarbuRatorglEdabALet!
		
	
Slika 8. - Lozinka sa prethodne slike - donekle izmenjena i dopunjena specijalnim znakovima.

Lozinka sa slike #8 je već prilično dobra, ali, budući da je u pitanju rečenica koja je ipak gramatički ispravna (u velikoj meri :)), moglo bi se reći da nije dovoljno nasumična. *

* Moglo bi, ali - lozinka koju smo videli je veoma nasumična, i u praksi se (gotovo sigurno) može 'probiti' samo softverskim putem.

(Osim ako se niste "zamerili" nekome koga odlikuje koeficijent inteligencije sličan prosečnoj visini člana muške odbojkaške reprezentacije i izuzetna intuicija, ali - i tada bi bilo veoma, veoma teško.)

Ako je (ipak) potrebno kreirati bolju lozinku - a pri tom želimo da koristimo obrazac sličan prethodnom - preostaje jedino da "nabacamo" nekoliko nasumičnih, međusobno nepovezanih reči, koje ne formiraju gramatički prepoznatljiv obrazac (na primer: "pasteleskopbilismouradiookretan"), međutim, takvi obrasci nisu jednostavni za pamćenje (ni iz daleka).

Za kraj predlažemo metod koji tipično proizvodi kraće, ali zapravo nasumičnije lozinke, i podrazumeva "smišljanje nasumične priče" - iz koje se potom za lozinku biraju (samo) prva slova svih reči (uz koju izmenu i dopunu).

Na primer:

		
# Prošle godine u ovo vreme, prvi put smo uživo i izbliza
# videli dva glumca u viteškim kostimima

pgu0wpPSu1~v2guv%k
		
	
Slika 9. - Lozinka koja nastaje kreiranjem kraće priče i korišćenjem samo prvih slova u rečima (uz poneku izmenu i poneku dopunu).

Iako su ovakve lozinke kraće u odnos na prvi metod, i u ovom slučaju preporučujemo bar 10-12 znakova.

Lozinka je sigurnija, zahteva malo veće angažovanje u odnosu na pamtljive kombinacije nasumičnih reči (ali zato znatno manje angažovanja u odnosu na potpuno nasumične kombinacije reči, a pogotovo u odnosu na doslovno nasumične niske), i stoga je potrebno 'odmeriti' kada treba koristiti prvi, a kada drugi pristup.

Mogli bismo reći da je prva kategorija lozinki ("rumeni karburatori"), krajnje primerena za obične korisničke naloge na mrežnim računarima, web mail, društvene mreže i sl, dok bismo za kritičnije namene kao što su administratorski nalozi na mrežnim računarima, platni servisi i sl, svakako radije koristili metodu sa dužom pričom i početnim slovima (a možda i neku potpuno nasumičnu lozinku).

Na kraju, mali rezime osobina koje odlikuju dobre lozinke:

  • minimum 8 znakova (ali, to je "baš minimum" - preporučujemo bar 10 ili 12 znakova)
  • što veći nivo nasumičnosti
  • birajte nasumične kombinacije reči koje se lako pamte, ali nemaju veze jedna sa drugom i pogotovo ne sa vama lično (ili smislite kraću priču, pa upotrebite samo početna slova)
  • dodajte bar poneki specijalni znak ponegde (i zamenite poneko malo slovo velikim)

Za kraj ....

Pre nego što završimo, još jednom molba za sve čitaoce (nadamo se da se podrazumeva, a ako se ne podrazumeva, spomenućemo "naglas" za svaki slučaj :)): nemojte koristiti nijednu od lozinki koje smo navodili u članku, niti druge lozinke koje ste negde videli (jer, ako ste ih videli Vi, video ih je i "neko drugi").

Uz prethodnu napomenu, ostavljamo vas da smislite svoje lozinke koje neće biti teške za pamćenje, ali će doneti znatno više sigurnosti u odnosu na lozinke kakve većina korisnika (nažalost), i dalje obično upotrebljava.

Autor članka Nikola Vukićević Za web portal codeblog.rs
Napomena: Tekstovi, slike, web aplikacije i svi ostali sadržaji na sajtu codeblog.rs (osim u slučajevima gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta codeblog.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo drugo korišćenje u komercijalne svrhe, bez eksplicitnog pismenog odobrenja autora.
© 2020-2025. Sva prava zadržana.
Facebook LinkedIn Twitter Viber WhatsApp E-mail
početna > Članci > Kako napraviti dobru lozinku
codeBlog codeBlog
Sajt posvećen popularizaciji kulture i veštine programiranja.
Napomena: Tekstovi i slike na sajtu codeblog.rs (osim u slučajevima, gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta codeblog.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo drugo korišćenje u komercijalne svrhe, bez eksplicitnog odobrenja autora.
© 2020-2025. Sva prava zadržana.
Facebook - logo
Instagram - logo
LinkedIn - logo
Twitter - logo
E-mail
Naslovna
   •
Uslovi korišćenja
   •
Obaveštenja
   •
FAQ
   •
Kontakt