[tut] Kako napraviti kvalitetnu lozinku?

poruka: 16
|
čitano: 12.145
|
moderatori: pirat, Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
offline
[tut] Kako napraviti kvalitetnu lozinku?

Staviti ću temu ovdje, iako nema baš veze sa sigurnosnim softverom. Anyway...

 

Zamolio bih da se u ovoj temi držite samo teme, a sve moje pravopisne, gramatičke i sekusalne pogreške slobodno komentirajte u temi - link

________________________________________________________________________________________________________________

 

Tamo prije kojih tjedan-dva dosta je bure podigao xkcd (inače tko ima i kap geekovske krvi u sebi, jednostavno mora pratiti ovu stranicu) o lozinkama i... Passphrase (kako god to oni naš preveli). Koliko god se ova tema činila - "lololol noobish", lozinke su i dalje ahilova tetiva gotovo svih sustava.

 

Prvo da se malo pozabavimo samim stripom. U njemu se kao mjera za jakoću lozinke spominje entropija. Entropija je stanje nereda, kaosa u sustavu. Entropiju možemo definirati i kao mjeru vjerojatnosti da će se nešto dogoditi ili da se neće nešto dogoditi. Otac entropije u informatičkoj znanosti je Shannon i zbog toga se ova entropija (koliko ja znam postoji i i entropija u fizici) zove i Shannonova entropija, a mjeri se u bitovima. 

Eh kako sad to funkcionira? Ako se odmaknemo od matematike, ukoliko kažemo da entropija iznosi 10 bitova, to znači da nama nedostaje 10 bitova informacije da bi mogli sa stopostotnom sigurnošću tvrditi da slijedeća informacija koja nedostaje je upravo ta. Primjerice, ako ovo poistovjetimo sa bacanjem novčića i ishod tog bacanje prezentiramo kao 0 (pismo) i 1 (glava) prilikom samog bacanja entropija je 1, jer nama točno nedostaje jedan bit informacije (0 ili 1) da bi sa sigurnošću mogli tvrditi da će novčić pasti na pismo ili glavu.

Iako ovo možda izgleda trivijalno, Shannon je dao jedan veliki doprinos informacijskoj znanosti i ako nekoga zanima ova tema, može naći i te kakvih materjala na webu.

 

Ono što ovdje valja naglasiti da se svi ključevi kod kriptografije temelje na entropiji (odnosno da budem precizniji, entropija se krije iza svake slučajnosti (slučajan broj)). Ovdje se odmah javlja i jedan problem. Što ako napadač kontrolira tu entropiju? U prošlom tutorijalu je bilo donekle riječi o radu I/O jedinica (kako CPU priča sa ostatkom računala). Svaki uređaj u računalu imam svoj IRQ (interrupt) signal kojim on kaže procesoru "Hej, meni trebaš!" Taj IRQ se aktivira tako da se na tom portu promjeni voltaža. Kada neki uređaj aktivira svoj IRQ, PIC (programmable interrupt controller), obavještava sam CPU da ga netko treba (zamislite PIC kao tajnicu koja prima stranke (I/O uređaje), a CPU kao šefa koji će onda primiti te stranke koje mu tajnica pošalje). Nakon što CPU prihvati prekid, on pokreće kod za njegovu obradu, obradi ga i izalzi iz prekida. I kakve sad to veze ima s entropijom? Pa recimo za entropiju se može uzeti brzina kojom pristižu tu IRQovi. Svi se možemo složiti da to nije nešto što možemo predvidjeti, jel? I kroz tu entropiju se recimo mogu generirati random brojevi koje treba, recimo SSH, za generiranje svojih ključeva. No problem je što ako, recimo, taj buffer u kojem se skuplja entropija nastane prazan tik prije nego SSH zatraži stanje etropije? Ovdje mi je cilj malo dočarati koliko je sama entropija izuzetno važna u svakodnevnim informacijskim sustavima. O enkripciji  i/ili prekidima neki drugi puta.

 

No vratimo se mi na naše lozinke... Kako napadač dolazi do naše gmail lozinke? Tako da napadne Google? Mmmm, ne. Tako da instalira neki logger na naše računalo? Moguće, sumnjam. Socijalnim inženjeringom? Teško. Ono čime se bore sigurnosni stručnjaci zadnjih XY godina je to što prosječan korisnik na internetu na svim mjestima koristi iste podatke za logiranje. Što to znači? Recimo vaš prijatelj se uči web programiranju. I napravi super forum i zamoli vas biste li se registrirali na njegov forum koji je još uvijek u razvoju. Vi to napravite. Uvidite da je forum fora i tako dalje. Eh, sad, pošto je vaš prijatelj tek puki početnik, njemu su bilo kakvi obrambeni mehanizmi nad bazom i stranicom još uvijek nepoznati koncepti (što je sasvim normlano). Vi ste se na njegovu stranicu registrirali sa mailom i lozinkom koju koristite svugdje - facebook, bugov forum, pornhub.com, gmail... Napadač nemora čak niti ciljati forum vašega prijatelja (heh, ma tko će to Ivanov forum napasti, zna za njega nas petero), već čisto raditi scan random stranica ili tražiti određene slabosti preko Googleove tražilice (da, i Google je jedno od jačih oružja prilikom traženja mete). I hop! Nađe stranicu, skine bazu, pogleda lozinke i mailove i pokušava na - hotmailu, yahoou, gmailu... Bingo! Vaš Gmail account je "hakovan"!

Ovo je recimo jedan od scenarija koji se jako lako može dogoditi (i dešava se). Danas, da bi se tako nešto izbjeglo, pribjegava se OpenIDovima  (*cough* Bug *cough*). Drugim riječima, vaše podatke za logiranje hostaju provideri poput Googlea, Yahooa, Facebooka (da, to je ono kad piše - logiraje se preko FB accounta).

Znači što smo iz ovoga naučili? Koristite OpenID gdje god možete. Također, za račune koji su vam od važnosti (pr. email) koristite jedinstvene login podatke.

 

Ok, jedinstvene lozinke, ali kakve? Duge, kratke, čoškaste? Za početak uzmite neku riječ od 42 znaka, sve samoglasnike zamjenite brojevima, dodajte bar 10 specijalnih znakova, nakon toga... Malo karikiran, ali poznato, jel? Pa zapravo, prvo i osnovno pravilo kod lozinke je - da ju možete zapamtiti. Nema veće gluposti od toga da smislite super uber mega 1337 lozinku i onda ju napišete na komad papira.

Nakon toga, idemo malo na samu lozinku. Sjećate se one entropije s početka? Eh, trebalo bi nju povećati koliko je to god moguće. Najlakše je tako da sama lozinka bude što je duže moguće. To se može ostvariti sa kombiniranjem riječi u rečenicu ili neki lako pamtljiv izraz (xkcd strip), tipa - betmenimausketajice, mirkoimamalogpišu, stevovolimaledječake. Jel se lako pamte? Da. Jel su to jake lozinke? I te kako. Ali... Ali... Ali... One nemaju nikakve brojeve i posebne znakove. Na isti način kako mi zamjenjujemo slova nekim znakom, na isti način će to napraviti i program za kreiranje dictionaryja (popisa lozinki koje će upotrebljavati u brute-force (fancy naziv za pogađanje) napadu). Naravno da brojevi i posebni znakovi povećavaju entropiju - primjerice b3tm3n1m4usk3taj1c3. No opet, se vraćamo na ono prvo - da li možete to zapamtiti? Ako, da, onda super. Ima isto jedan trik pri ovome, a to je da se izbaci jedna riječ i ubaci ime, recimo nogometaša - b3tm3n1imasamm1rtaj1c3. Entropija je ostala, više-manje na istoj razini (malo se povečala zbog broja znakova), međutim izraz betmenimasammirtajice nema apsolutno nikakvog smisla, i sada je već jako teško tako nešto pogoditi.

 

Oke, duge lozinke, probaj imati jedinstvene koliko je god to moguće... Majko mila, ja to ne mogu zapamtiti sve...  Kad bi barem netko pamtio to sve za mene... Pa zapravo tako nešto i postoji (ne, nije rent-a-papiga_koja_priča), a zove se KeePass . KeePass je jedan mali FOSS (free open source software) programičić u kojem možete spremiti sve svoje lozinke i tada sa jednom master (to je ona za sam KeePass) možete pristupati svim svojim lozinkama. Doduđe sad se mogu naći čisti paranoičari i reći da je ovo ima single-point of failure (zakaže na jednom mjestu, sve pada). Da, istina, ali bolje i sve utrpati u KeePass (koji btw, ima AES enkripciju), nego koristiti za sve i svašta jednu te istu lozinku ili imati svezak papira sa svim lozinkama.

Ja koristim, ono "Zapamti me" u browseru. To ok? Pa... Jest... Donekle. Prvo KeePass koristi, da se tako izrazim, state-of-art način spremanja lozinki. Nadalje, KeePass ima master lozinku (morate se ulogirati u njega), dok browser to nema. Ukoliko netko dobije fizički pristup računalu ili kontrolu nad računalom, zapravo ti key-chainove će tada raditi za njega.

 

Ma sve je to super, al ja koristim neke cool lozinke tipa 123456789 ili qwertz. To je isto ok, jel? Ma, da, kako da ne. A ja osobno dajem ruku u vatru da čak ni na ovom forumu nisu stvari nešto pretjeralo bolje (doduše, s malom izmjenom da se izbace engleska imena i ubace naša). Nikako nemojte koristiti neke lozinke koje su ipak malo prelako zapamtljive. Isto tako, greška je postaviti takvu lozinku koja se lako može povezati sa vama (ime, prezime, ima psa, djevojke / dečka, datum rođenja, godina, mjesec i slično). Kako to mogu "zločesti dečki" pogoditi? Ne, neće oni pogađati, to će napraviti softver za njih.

 

Što je smisao ovoga tutorijala? Da malo ozbiljnije pristupite svojim lozinkama i da shvatite opasnost od korištenja iste lozinke svugdje i svagdje. Znam da bi bila noćna mora pamtiti sve lozinke za svaku pojedinu stranicu, login i slično. Međutim, barem za ono "osjetljivo" imajte jedinstveno lozinku koju nije lagano za pogoditi (i čovjeku, ali i računalu).

 

I zato, puno sreće, veselja i entropije u štićenju vaših vrijednih podataka!

You can patch technical vulnerabilities as they evolve, but there is no patch for stupidity, or rather gullibility. - Kevin Mitnick
Poruka je uređivana zadnji put sub 20.8.2011 10:15 (Bukva).
13 godina
protjeran
offline
[tut] Kako napraviti kvalitetnu lozinku?

Dobar text, ali kao što znaš i dalje će biti isto, jer to ljudima govore već 15 godina. Ali šta'š.

 

Moj recept koji koristim za lozinke jest:

 

keyphrase=nekalozinkaslovaibrojke

 

hash= 28cssd828742huhdwi7474372ndswn ....

 

pa onda

 

password = hashlib.sha256(keyphrase.hash)

 

Voila.

 

 

 

 

16 godina
neaktivan
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
Bypass kaže...

Moj recept koji koristim za lozinke jest:

 

keyphrase=nekalozinkaslovaibrojke

 

hash= 28cssd828742huhdwi7474372ndswn ....

 

pa onda

 

password = hashlib.sha256(keyphrase.hash)

 

Voila.

 

 

 

 

Čekaj, ti za password koristiš sha256 sumu!? Dodavanje soli u passworde se koristi na drugim mjestima, a ne za korisničke lozinke, koje trebaju biti komplicirane, ali istovremeno lako pamtljive.

13 godina
neaktivan
offline
[tut] Kako napraviti kvalitetnu lozinku?
Ja opalim desetak potpuno random znakova, i zapamtim ih nakon par puta upisivanja. Kad bi netko ''normalan'' vidio oliko samo takvih passworda imam/znam, pitao bi se jesam lud.
Mes que un Club! FCBarcelona!
13 godina
protjeran
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
svakak kaže...

Čekaj, ti za password koristiš sha256 sumu!? Dodavanje soli u passworde se koristi na drugim mjestima, a ne za korisničke lozinke, koje trebaju biti komplicirane, ali istovremeno lako pamtljive.

Upravo tako. Moji podaci moraju ostati sigurni. Slično kriptiram i diskove.

15 godina
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
Bypass kaže...

 

Moj recept koji koristim za lozinke jest:

 

keyphrase=nekalozinkaslovaibrojke

 

hash= 28cssd828742huhdwi7474372ndswn ....

 

pa onda

 

password = hashlib.sha256(keyphrase.hash)

 

Ti ovo govoriš sa stajališta korisnika ili developera?

 

Ovo nema smisla sa korisničke strane. Na kraju dobiješ string znakova koji, ako zapamtiš, svaka ti čast.

 

Ovo jest inače ispravan način spremanja lozinki u bazu

lozinka - neka lozinka

salt - neki random niz

=

hashirana lozinka tipa

a34gbtz5678fdsdjigs8

 

S time se spriječava da ako napadač dobije dump baze da on automatski nema i lozinke za pristup servisu ili čemu već. Doduše, on može probati provest reverzibilni, ići sa rainbowtableima i sličnome, ali u globalu, sam hash mu je beskorisan.

Tako recimo, znak a nakon što se provede SHA256 hashiranje će izgledati u bazi - ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb.

Ovo inače, pored toga da napadač ne dobije plaintext, služi i tome da su sve lozinke jednake duljine - tako da:

  • nije potrebno ograničenje s maksimalnim brojem znakova (doduše ono može postojati, ali na recimo 1024 bajtova i to kao preventiva DDoS napadu)
  • anulira se XSS / buffer-overflow napad (bar mislim da to spada pod XSS kada se na taj način napada baza preko web forme...)

 

Link - SHA256 kalkulator ako se netko hoće igrati

 

You can patch technical vulnerabilities as they evolve, but there is no patch for stupidity, or rather gullibility. - Kevin Mitnick
Poruka je uređivana zadnji put sub 20.8.2011 11:34 (Bukva).
16 godina
neaktivan
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
Bypass kaže...
svakak kaže...

Čekaj, ti za password koristiš sha256 sumu!? Dodavanje soli u passworde se koristi na drugim mjestima, a ne za korisničke lozinke, koje trebaju biti komplicirane, ali istovremeno lako pamtljive.

Upravo tako. Moji podaci moraju ostati sigurni. Slično kriptiram i diskove.

 

Mislim da ti nije baš jasno kako napraviti opasno dobru zaporku. Ti uzmeš random string (tvojašifra+randomniz = randomniz) i od njega napraviš 64 znaka dugačak password koji sadrži samo mala slova i brojeve. Sa strane sigurnosti puno bi bolje bilo uzeti password generator koji će kreirati password dugačak 64 znaka koji će sadržavati velika i mala slova, brojeve i specijalne znakove.

 

Soljenje lozinki se koristi prilikom spremanja korisničkih lozinki u bazu. Kao što je netko već objasnio.

15 godina
neaktivan
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
Bypass kaže...

Upravo tako. Moji podaci moraju ostati sigurni. Slično kriptiram i diskove.

I onda si zapišeš taj niz znakova na više papirića ili u mobi? Ili možda u txt datoteku na kompu?

 

13 godina
protjeran
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
bed kaže...
Bypass kaže...

Upravo tako. Moji podaci moraju ostati sigurni. Slično kriptiram i diskove.

I onda si zapišeš taj niz znakova na više papirića ili u mobi? Ili možda u txt datoteku na kompu?

 

Napišem si mali gui program u python-u. Imam nekih 10 lozinka koje pamtim, hash je neki keyword meni znan i onda samo iskoristim programčić koji mi ispiše password.

 

Programčić je u root folderu, tako da ga nitko ne može pokupiti bez root password-a. A i da ga pokupi opet treba znati moje ne tako jednostavne passworde i keyword.

 

 

13 godina
protjeran
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
Bukva kaže...

 

Ti ovo govoriš sa stajališta korisnika ili developera?

 

Ovo nema smisla sa korisničke strane. Na kraju dobiješ string znakova koji, ako zapamtiš, svaka ti čast.

 

Ovo jest inače ispravan način spremanja lozinki u bazu

lozinka - neka lozinka

salt - neki random niz

=

hashirana lozinka tipa

a34gbtz5678fdsdjigs8

 

S time se spriječava da ako napadač dobije dump baze da on automatski nema i lozinke za pristup servisu ili čemu već. Doduše, on može probati provest reverzibilni, ići sa rainbowtableima i sličnome, ali u globalu, sam hash mu je beskorisan.

Tako recimo, znak a nakon što se provede SHA256 hashiranje će izgledati u bazi - ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb.

Ovo inače, pored toga da napadač ne dobije plaintext, služi i tome da su sve lozinke jednake duljine - tako da:

  • nije potrebno ograničenje s maksimalnim brojem znakova (doduše ono može postojati, ali na recimo 1024 bajtova i to kao preventiva DDoS napadu)
  • anulira se XSS / buffer-overflow napad (bar mislim da to spada pod XSS kada se na taj način napada baza preko web forme...)

 

Link - SHA256 kalkulator ako se netko hoće igrati

 

hash=salt. Krivo sam napisao. Znaš što mislim.

 

Ovo je sa stajališta developera i korisnika. Možeš me nazvati paranoičnim, ali tako to ja radim iz razloga.

 

p.s. Razumijem kako funkcionira to u web aplikacijama. Razvijam ih i sam.

14 godina
protjeran
offline
[tut] Kako napraviti kvalitetnu lozinku?

lol

ja imam jednu rijeć

 

ima 9 slova lako je pamtim

nema brojki ni ništa tako

15 godina
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
Bypass kaže...

Ovo je sa stajališta developera i korisnika. Možeš me nazvati paranoičnim, ali tako to ja radim iz razloga.

Mislim da paranoičniju osobu nisam vidio u životu... {#}

 

Čisto ovako iz puke znatiželje, što napraviš ako ti je limitirana gornja granica znakova na recimo 40?

You can patch technical vulnerabilities as they evolve, but there is no patch for stupidity, or rather gullibility. - Kevin Mitnick
16 godina
neaktivan
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
Bypass kaže...
Bukva kaže...

 

Ti ovo govoriš sa stajališta korisnika ili developera?

 

Ovo nema smisla sa korisničke strane. Na kraju dobiješ string znakova koji, ako zapamtiš, svaka ti čast.

 

Ovo jest inače ispravan način spremanja lozinki u bazu

lozinka - neka lozinka

salt - neki random niz

=

hashirana lozinka tipa

a34gbtz5678fdsdjigs8

 

S time se spriječava da ako napadač dobije dump baze da on automatski nema i lozinke za pristup servisu ili čemu već. Doduše, on može probati provest reverzibilni, ići sa rainbowtableima i sličnome, ali u globalu, sam hash mu je beskorisan.

Tako recimo, znak a nakon što se provede SHA256 hashiranje će izgledati u bazi - ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb.

Ovo inače, pored toga da napadač ne dobije plaintext, služi i tome da su sve lozinke jednake duljine - tako da:

  • nije potrebno ograničenje s maksimalnim brojem znakova (doduše ono može postojati, ali na recimo 1024 bajtova i to kao preventiva DDoS napadu)
  • anulira se XSS / buffer-overflow napad (bar mislim da to spada pod XSS kada se na taj način napada baza preko web forme...)

 

Link - SHA256 kalkulator ako se netko hoće igrati

 

hash=salt. Krivo sam napisao. Znaš što mislim.

 

Ovo je sa stajališta developera i korisnika. Možeš me nazvati paranoičnim, ali tako to ja radim iz razloga.

 

p.s. Razumijem kako funkcionira to u web aplikacijama. Razvijam ih i sam.

 

Nisi paraničan, nego previše kompliciraš i imaš slabije lozinke nego da si izgeneriraš jaku lozinku dugačku 64 znaka. Takve lozinke uvijek možeš spremiti u KeePass ili neki sličan program. Ako si baš paranoičan možeš KeePass bazu zakriptirati pomoću ključa koji držiš na pametnoj kartici i koji je opet zaštićen lozinkom. Tako imaš 2-stage zaštitu, moraš nešto znati i nešto imati da bi došao do tvojih lozinki. Iako, čisto sumnjam da imaš tako bitne podatke da je tolika razina zaštite potrebna.

13 godina
protjeran
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
Bukva kaže...

Mislim da paranoičniju osobu nisam vidio u životu... {#}

 

Čisto ovako iz puke znatiželje, što napraviš ako ti je limitirana gornja granica znakova na recimo 40?

Onda šaljem u pm developere koji su idiotski ograničili broj znakova. To se ne smije raditi.

 

Onda koristim sha1.

13 godina
protjeran
offline
Re: [tut] Kako napraviti kvalitetnu lozinku?
svakak kaže...

Nisi paraničan, nego previše kompliciraš i imaš slabije lozinke nego da si izgeneriraš jaku lozinku dugačku 64 znaka. Takve lozinke uvijek možeš spremiti u KeePass ili neki sličan program. Ako si baš paranoičan možeš KeePass bazu zakriptirati pomoću ključa koji držiš na pametnoj kartici i koji je opet zaštićen lozinkom. Tako imaš 2-stage zaštitu, moraš nešto znati i nešto imati da bi došao do tvojih lozinki. Iako, čisto sumnjam da imaš tako bitne podatke da je tolika razina zaštite potrebna.

Ne kompliciram. Savršeno funkcionira i nemam problema.

 

Sumnjaj ti koliko želiš, ali imam i previše bitnih podataka kojima treba hard zaštita.

16 godina
neaktivan
offline
[tut] Kako napraviti kvalitetnu lozinku?

koristim roboform, i ne zamaram se previše pasevima, u biti pamtim jedan jaki pass kojim su enkriptirani svi drugi passevi generirani u roboformovom generatoru, s aplikacijom sam super zadovoljan jer još nisam našao mjesto na webu na koje se ne mogu ulogirati jednim klikom, naravno captcha, dvostruke autentifikacije, bankovne račune, token etc. ne računam, enkriptirani pasevi su na disku i sticku, dakle restriktirani dobro konfigurirani sandboxie i roboform i to je to, ne može jednostavnije a učinkovitije i sigurnije... IMO naravno {#}

roboform password generator roboform password generator
ne drzim ga. Sa izdajicama se ne rukujem... by Lazarus long aka. lazo
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice