Pages

Thursday, November 24, 2011

Passwordi

Nedavno sam guglajuči jedan pojam, naletio na drugi koji mi je odvukao pažnju, znate kako to biva. U jednom trenutku sam naletio na članak na Coding Horroru u kojem autor tvrdi da je sigurnost u internetu jako slaba tj. da passwordi koje većina ljudi ima su "preslabi".

Ono što mnogi članci koji se bave tom temom iznose (i s čime i ja slažem) je činjenica da su korisnici web usluga tako reći trenirani da smišljaju komplicirane šifre (kombinacija brojeva, velikih i malih slova i specijalnih znakova). Zbog naglaska na složenost, kako bi ih lakše pamtili, ljudi obično smišljaju kratke passworde. Tipa 6 do 8 znakova. Na siteu InfoWorld.com sam čitao članak u kojem čovjek koji se navodno bavi probijanjem passworda (u svrhu ispitivanja sigurnosti, ne zato da krade podatke) tvrdi da se šifre kraće od 10 znakova probijaju bez problema. E sad, da li to znači da ih se probije u roku deset sekundi ili u roku sat vremena, ne znam al sam uvjeren da je u pitanju manje od 24 sata.

Nazad na problem. Postoji problem s "algoritmom" po kojem obični smrtnici smišljaju šifre. Kuharica ide ovako:
1. uzmi nasumičnu riječ, npr. klokan
2. zamjeni slova s brojkama (klokan -> k10k4n)
3. pretvori nekoliko malih slova u velika (k10k4n -> k10K4n)
4. ako šifra nije dovoljno dugačka, dodaj nešto jednostavno na kraj (k10K4n -> k10K4n5)

Problem je u tome što je recept dobro poznat. Svako ko na ovaj način smišlja šifre misli da je pametan i da mu je šifra neprobojna dok napadači s druge strane znaju da puno ljudi ima upravo takav tok misli. Mane kod smišljanja kompleksnih šifri postaju izraženije kada isti korisnik mora pamtiti više takvih šifri. Čovjek prirodno želi sebi olakšati posao a to znači pamtiti čim manje kompliciranih stvari. S toga ljudi ili smišljaju više lako pamtljivih šifri ili manji broj (obično jedan) master passworda.

OK, ljudi smo, imamo ograničeno pamćenje i strpljenje no kako da si pomognemo? Moderne tehnologije zaštite podataka se nažalost temelje passwordima. Koliko je "jaka" šifra, toliko su dobro zaštićeni podaci. Možemo si pomoći na dva načina, korištenjem tzv. passphrasea i zapisivanjem šifri koje ne možemo zapamtiti.

Passphrasei su zapravo šifre sastavljene od više nasumičnih riječi. Na primjer "AutoBakaCiklaDvoranaEtanol". Fora kod passphrasea je da su dugački kada se raspišu a lagani su za zapamtiti. No koliko je siguran ovakav pristup? Gore sam spomenuo navod iz članka koji tvrdi da password mora imat barem 10 znakova da bi se mogao smatrati sigurnim no brojanje slova u passphraseu ne daje pravu mjeru sigurnosti. Daleko od toga. Ako napadač pretpostavi da žrtva koristi passphrasse onda se može ograničiti na određen skup riječi a ne pogađat nasumce sve znakove.

Uzmimo s jedne strane passworde koji se sastoje isključivo od engleskih slova i brojki (ukupno 62 različita znaka) i s druge strane passphrasove načinjenih od nasumično odabranih riječi iz rječnika s 5000 riječi (vidi linkani člank s Coding Horrora). Ne toliko kompliciranom matematikom (log 5000 / log 62 = 2.0637) dobivamo da svaka riječ passphrasea vrijedi oko dva znaka passworda. Znači da bi postigli sigurnost passworda duljine 10 znakova, passphrase treba bit načinjen od 5 riječi. Ne zvuči baš puno bolji omjer sigurnosti i praktičnosti od klasičnih šifri. Ubacivanje nasumičnog znaka na nasumično mjesto može malo poboljšati sigurnost passphrase. Za passphrase AutoBakaCiklaDvoranaEtanol svako dodavanje nasumičnog znaka (slovo engleske abecede ili broj) podiže sigurnost za 1.78 znaka prethodno opisanog oblika passworda. No ako se u passphrase ubaci puno takvih znakova, izgubi poanta passphrasea. Passphrase zapravo postane dugački password sa svim manama passworda.

Druga metoda je korisnik za sve ima drugačiji i siguran password (dovoljno dugačak i nasumičan) i da ih sve ima zapisane na jednom mjestu. Znači, da korisnik ne pamti sve šifre nego da ih drži na sigurnom mjestu i kopira od tamo kada mu koja zatreba. Mane ovakvog pristupa su sigurnost i pristupačnost repozitorija šifri. Ako napadač probije zaštitu repozitorija, dobiva na raspolaganje sve šifre koje su pohranjene u njemu. Ako korisnik izgubi repozitorij (npr. krepa disk), gubi pristup šiframa i svime što te šifre otključavaju. E sad, ako je netko optimističan i misli da neće pobrati keyloggera ili neki sličan spyware, može probati Keepass 2 u kombinaciji s DropBoxom.

U svakom slučaju, za stvari koje su vam bitne imajte šifru duljine barem 10 znakova.

Friday, November 18, 2011

Zvjezdojedac, progress report

Napravih računalnog igrača koji nasumično gradi brodove i pripremih teren za pravi UI (umjetnu inteligenciju) koju će igra kasnije imati. Uz to dio te podloge bi se mogao iskoristiti i za multiplayer, za remote igrače.

Prošli feature na kraju nisam zapakirao i stavio na download jer nije bilo skoro ništa vidljivih promjena. Uvođenje jednostavne UI isto nije neki vidljivi napredak ali količna popravljenih stvari bi opravdala podizanje verzije za 0.0.1. Tako da ću ovih dana staviti za download novu verziju.

Edit:
Prema indikatoru na Google Codu, projekt je nazad na "high activity". Jupi!