Koliko je sigurno cuvanje md5 passworda u cookie ako se zna da se cookie mogu presresti (ukrasti), a na internetu postoje baze sa puno razbijenih md5 hash lozinki?
Recimo da je:
korisnicko ime - proba
lozinka - proba
Ako neko uspe da presretne cookie dobice informacije:
korisnicko ime - proba
lozinka - c0a8e1e5e307cc5b33819b387b5f01fd
ideja je sledeca:
- korisnik se loguje sa user i pass
- ako se uspesno loguje, u bazi kreiras neki random string, tzv. session_id, koji izgleda recimo ovako: d8f3384h2df1fa1736f282747d3bbad1
- taj string mu ubacis u cookie, i naravno, sacuvas ga u bazi
- kad korisnik sledeci put dodje na sajt, poveris da li se UserID i sesija iz cookies-a poklapa sa UserID i sesijom iz baze...
Tako se user i pass samo jednom koriste, prilikom prvog logovanja. Svaki drugi put ga prepoznajes po sesiji...
Taj sistem recimo koristi phpBB, kao i Mycity forum.
Ok Peco, to je sistem sa sesijama i on je bezbedniji od cookies pošto se informacije čuvaju na serveru sve dok se ne omogući korisniku pamćenje logina, a tu se opet pojavljuju cookie koji čuvaju session_id i postoji mogućnost da se njihov sadržaj presretne...
To mi čak deluje kao veća rupa od md5 hash'ovanog passworda pošto dobijaš sadržaj cookia crno na belo...
Većina rešenja koja sam našao na netu su slična tome što si ti meni objasnio, ali očito ne kontam najjasnije neke stvari u svemu tome pošto ne vidim zbog čega je session kada se dozvoli pamćenje logina sigurniji od cookie ?
Izgleda da to presretanje cookie na relaciji server klijent i obrnuto nije uopste toliko jednostavno koliko sam ja mislio i da je md5 password sasvim dovoljna zaštita uz dodatak još nekih stvarčica koji bi zbunili eventualnog napadača.
Da li je moguće odraditi nešto kao ovo , a da ima efekta:
md5 prva dva karaktera passworda + neki br + md5 sledeća dva karaktera + moja registracija kola(lupam) + md5 ostatka pasworda + trenutno vreme u sekundama i tako neke gluposti pa sve to strpati u cookie i bazu kao password i to proveravati kada korisnik ponovo dođe na sajt ?
Ovo zadnje sto si spomenuo je upravo salt. Tako Unix/Linux cuva passworde usera.
Generisi na serveru MD5 passworda i generisi jedan random broj duzine recimo 6.
Tih 6 cifara nakaci na kraj MD5 hasha, ili ih rasporedi onako kako si ti malopre napisao.
Rezultat zapamti u bazi i u cookiju.
Kada user treba ponovo da se uloguje na sajt, ti moras iz cookija da procitas MD5+salt, da bi imao salt koji ces uporediti sa onim u bazi (ukombinovanog u MD5 koji ces da izracunas iz logina).
Zar nemas mogucnos ubacivanja SHA1? Za njega ne verujem da je neko pravio Ranibow tabele.
Pa moguce je napraviti i to sto ti pricas, ali je totalno nepotrebno.
Te baze sa md5 siframa su napravljene na osnovu nekog recnika, ali ako spojis dve reci, tesko da ce se naci razbijen md5 za to.
Recimo, ja znam sigurno da rec "taksistaZRmojalozinka" ne postoji, i 99% sam siguran da je nema ni u jednoj wordlisti, dictionary-ju itd itb.
Te baze (Rainbow Tables) su generisane od svih mogucih kombinacija slova i brojeva, pitanje je samo do koje su duzine reci stigli sa proracunima.
Ja ne znam ni za jednu javnu ili privatnu RT da ide do preko 12 slova, jer su to vec nekih desetak GB podataka.
Ok Peco, to je sistem sa sesijama i on je bezbedniji od cookies pošto se informacije čuvaju na serveru sve dok se ne omogući korisniku pamćenje logina, a tu se opet pojavljuju cookie koji čuvaju session_id i postoji mogućnost da se njihov sadržaj presretne...
Pa ideja je da ne cuvas ni plain pass u cookies, niti md5 pass.
Cookie je jedini 'medijum' za obelezavanje korisnika, ako se to presretne - sve pada u vodu, bilo kakav algoritam, pa cak i tvoj, razlika ne postoji.
Jedino da session_id vezes za IP, i da samo za IP, koji je korisnik imao pri logovanju, vazi taj session_id.
Tako i ako session_id procuri - on je neupotrebljiv ako nemas isti IP kao korisnik.
Ali onda ce korisnici morati da se loguju cim im se promeni IP, a dinamicku IP adresu imaju skoro svi.
Eventualno da se vezes samo za prva tri dela IP adrese [XXX.XXX.XXX.xxx], i +/- 5 broja treceg dela, pa da ne resetiras sesiju ako je isti provajder...
A da se stavi kratak zivot cookija (max. 5 minuta), i da se salje novi coockie sa svakim klikom na neki link na sajtu?
Mislim na to saituaciju kada je session_id u cookiju.
Ukupno su 327 korisnika na forumu :: 23 Registrovanih, 5 Sakriven i 299 Gosta :: [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije Najviše korisnika na forumu ikad bilo je 972 - dana 26 Okt 2008 13:06 Korisnici trenutno na forumu: acikabig, arksi, bancho, blue boy, Bogdan-Tc, Brano, Da vam Bata nešto kaže..., DJBl3nd, drummer, FAMAS, goran9888, grbe, klodovik, lanmi:), magna86, MILANKW, NIx Car, Ričard, Sallke, Srki_82, tradicija, Wraith, Žan Klod vam dam
Stranica generisana za 0.051 sec [0.048003 sec (user time) + 0 sec (system time)] Skripta zauzela u memoriji: 2.316.680 bajta
Svaki korisnik ovog sajta je odgovoran za sadržaj svoje poruke koju objavi na sajtu. Sajt se odriče svake odgovornosti za sadržaj tih poruka.
Postavljanjem vaše poruke ili vašeg autorskog dela na ovaj sajt, saglasni ste da ovaj sajt postaje distributer vašeg dela, i odričete se mogućnosti njegovog povlačenja ili brisanja, bez saglasnosti uprave sajta.
Distribucija sadržaja sa ovog sajta je dozvoljena samo u nekomercijalne svrhe, uz obaveznu napomenu da je sadržaj preuzet sa ovog sajta, i uz obavezno navođenje adrese MyCity sajta. Za sve ostale vidove distribucije obavezni ste da prethodno zatražite odobrenje od vlasnika MyCity sajta.
MyCity pokrenuo, administrira i razvija Predrag Damnjanović, a o uređenju sajta se brine MyCity Tim.
Ukoliko želite da nas kontaktirate kliknite ovde.