subota, 20 aprila, 2024
Internet, mreže i komunikacije

Adobe i lekcija iz sigurnosti

Autor: Romeo Mlinar

Oktobra 2013. na internet je procurila baza podataka kompanije Adobe sa preko 38 miliona korisničkih imena i lozinki. Iako su podaci djelimično zaštićeni enkripcijom, kompanija je oštro kritikovana zbog sigurnosnih propusta. Šta je to Adobe uradio pogrešno, i kako se uopšte čuvaju korisnički podaci i provjeravaju u toku prijave? I da li smo nešto naučili iz ovog događaja?

Lozinka i korisničko ime danas su najčešći oblik autentifikacije, odnosno dokaza identiteta, prilikom prijave na sajtove i servise. To znači da se radi o povjerljivim podacima, i da ih obe strane moraju čuvati – i korisnik i sajt. Korisnici će se potruditi da lozinke ne dijele sa drugima, da ih ne zapisuju i da budu jedinstvene.

Uloga sajtova u čuvanju lozinki je složena, ali za taj postupak postoje sigurnosni savjeti kojih se treba pridržavati.

Prije svega, sajtovi ne treba da čuvaju lozinke, već njihove izlazne vrijednosti nakon primjene heš-funkcije. Na primjer, ako na niz (engl. string) „LiBRE!” primjenimo SHA-256 algoritam, dobićemo heš-vrijednost: d0803cb63777a6b8935a0d69208756ff517a51056d82852ce3b87abd1f51e069. Ovaj heš-niz ima 64 karaktera. Praktična specifičnost jeste što je izračunati „heš” uvijek isti za ulaznu vrijednost, ali na osnovu njega ne možemo znati da je ulazna vrijednost „LiBRE!”. Odnosno, heš-funkcije su jednosmjerne.

Upravo jednosmjernost heš-funkcija i kriptičnost heš-vrijednosti omogućavaju čuvanje privatnosti. Prilikom registracije korisnika, sajt izračunava heš-vrijednost lozinke, pa se ta vrijednost (kao što smo vidjeli, povelika nova „riječ”) sačuva zajedno sa korisničkim imenom. Prilikom prijave, korisnik unosi lozinku, sajt opet izračunava heš-vrijednost i poredi je sa sačuvanom u bazi podataka. Ako se poklapaju, lozinka je ispravna. Dakle, sajtovi nikad ne „vide” lozinku korisnika.

Šta je Adobe uradio pogrešno? Prije svega, Adobe nije koristio heš-funkcije! Naime, kompanija je odlučila da lozinke enkriptuje, a enkripcija je dvosmjeran proces – ukoliko imate ključ. Pogledajmo primjer koristeći našu lozinku „LiBRE!”. Ako na nju primjenimo DES algoritam i ključ »123456« dobićemo vrijednost „8gmTp3qiMSY=”. Istina, lozinka nije vidljiva, ali samo privremeno, jer je proces moguće obrnuti istim algoritmom. Kod heš-funcija to nije izvodljivo.

Otkrivanje najčešće korisničke šifre bila je igrarija: trebalo je pronaći DES enkriptovanu vrijednost i vidjeti koje napomene za prisjećanje lozinke stoje uz njih. Odgonetnuti šta se krije iza „brojevi od 1-6”, nije bilo teško, pa tako danas znamo da je najčešća lozinka u bazi podataka bila „123456” – dobra za primjer, ali veoma loša za primjenu u praksi.

Kakve smo pouke izvukli iz Adobe-ovog sigurnosnog skandala? Opet smo vidjeli da veliko ime kompanije ne znači veliku sigurnost podataka. Očito je da Adobe nije slijedio sigurnosne preporuke. Potom, vidjeli smo da su korisnici veoma lenji da smisle sigurnu loziku, kao ni da ih Adobe na to nije ohrabrivao. Da li je ipak u čitavoj ovoj priči kritika na račun kompanija i korisnika kada je autentifikacija u pitanju, najbitnije ono što je Google jasno stavio do znanja: lozinka više nije dovoljna za čuvanje našeg onlajn identiteta?