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!