Így aki hozzáfér az adatbázishoz, az se tudja megmondani a jelszót, mivel csak a hash kódot látja.
Ha már hozzáfér az adatbázishoz, minek próbálkozna behatolni ?
Szerintem ez az MD5±só olyan megoldás mint a PHP safe_mode: nem megoldás, csak az első lépés. A tárolás önmagában keveset ér, ha az átvitel nem biztonságos.
Egy kis mese így szombat délelőttre. Az internet kávézók fénykorában volt egy elterjedt szívás a maflák között akik
ugyanazt a jelszavat használták több szolgáltatáshoz
elfelejtettek kilépni a Yahoo fiókjukból
Az utánuk jövő ugyan nyitva találta a levelesládájukat, de a garázdálkodás csak pünkösdi királyság lett volna, mert a jelszó ismerete nélkül később már nem térhet vissza. De volt egy megoldás
megkeresni más szolgáltatások feliratkozását igazoló leveleket
az illető szolgáltatásoktól újrakérni a jelszavakat elfelejtés ürügyén
a kapott jelszavakat sorra próbálni a Yahoo fiókon
Ez egy másik ok a régi jelszavak el nem küldésére: a felhasználó védelme a saját hülyeségének ellene fordításától. Sajnos webmesterkedés közben erre is gondolnunk kell.
Tudom, hogy most nagyon antiszociális leszek, sőt, azt is tudom, hogy ilyet nem illik mondani, de én nem hash-elten tárolom a jelszavakat, és ezen nem is akarok változtatni. Azért nehezítsem a saját dolgomat, hogy a megrendelőm felhasználóját megvédjem önnön baromságától?!
Homályosítson már fel valaki, legyen szíves, mint türelmes anya hülye gyermekét!
Mond el légyszíves miben nehezebb hash-eket összehasonlítani mint sima jelszavakat?
Egyetlenegy dolog jut eszembe amiben "nehezebb" a hashes megoldás, mégpedig hogy nem tudsz nyers jelszavakat kiküldeni emlékeztető emailbe, ehelyett egy link-et generálni az usernek.
Ha valami támadás éri az oldaladat, legyen az XSS, SQL Injection, vagy bármi más, előfordulhat, hogy hozzáfér a támadó az adatbázishoz, vagy annak egy részéhez. Ezáltal hozzáférhet a jelszavakhoz, de amennyiben azok nincsenek hash-elve, akkor nagyon egyszerűen használhatja őket, sőt kipróbálhatja más szolgáltatások esetén is, hogy működnek-e. Amennyiben azonban hash-elve van, akkor az hash algoritmus ismerete nélkül nem tudja visszafejteni, és az algoritmus ismeretében is lehet, hogy nagyon hosszú időbe telne.
Azon felül, amit a többiek leírtak, van egy tippem: csinálj egy olyan táblát, amire a PHP-s felhasználódnak csak INSERT joga van. Ha valaki jelszót változtat, inserttel írd bele. Így egy potenciális security hole kapcsán nem fogják tudni kiolvasni a letárolt jelszavakat, Te viszont a megrendelődnek még mindig meg tudod mondani. A felhasználóknak autentikáció céljából meg tárold le simán hashelve, sózva.
solkprog:
Valóban nem ügy hash-elt jelszavakat kezelni. Azt hiszem, végül is meggyőztetek. 2 terület van igazából, amiben most segít a nem titkosított tárolás: egyrészt a jelszó-emlékeztető, másrészt, hogy valamely felhasználó (általában az admin) nevében így be tudok én is jelentkezni, és szoktam így javításokat utótesztelni vagy hibabejelentéseket ellenőrizni. Ez utóbbi esetet Ti tudjátok diszkrétebben intézni?
Poetro:
Tök igazad van, ezzel a kockázattal én is tisztában voltam, csak azt gondoltam, hogy ha valaki olyan buggyant, hogy 1 jelszót használ mindenhol, az vessen magára, ha pórul jár.
Örülök hogy meggyőztünk.
Nemsok esetet tudok elképzelni mikor az embernek szüksége volna arra hogy másik nevével bejelentkezzen. Ha olyan jogosultság kell ami csak a másiknak van, akkor magadnak is meg kell adni azt a jogot, és kész. De ha mindenképpen úgyérzed hogy neked szükséged van arra hogy valaki másik neve alatt garázdálkodj, akkor le lehet programozni hogy az admin felületen ki lehessen választani ki "legyél" az oldalon.
Köztes alternatív (gány) megoldás:
Azt is lehet hogy letárolod a jelszavakat de nem hash-elt hanem kódolt formában. Ezzel egy baj van hogy ha feltörik az oldalt akkor a titkosítási algoritum ismeretében simán visszafejthető. De ha írsz egy saját titkosítási algoritmust aminek a kimenete úgy néz ki mint egy sha1 hash, akkor a hacker pistike azt fogja hinni hogy az simán egy sha1 hash, és azt meg ugyse tudja visszakódolni alapon, hagyni fogja az egészet a fenébe. (ha már hozzáfért a db-hez akkor utána már nem szokták a forráskódod böngészni)
Két gond még van ezzel mégpedig hogy be kell határold a jelszó hosszát, és karakterkészletét, és nem szabad kiküldeni emlékeztető emailbe a jelszót. (mert akkor evidens a rosszfiúnak hogy nem hash-elve van a jelszó)
De ezt csak felvettettem, lehetőleg tárold le normálisan hash-elve a jelszavakat.
ui: Ha egy oldalon az emlékeztető emailbe kiküldik a jelszavakat, akkor azt az oldalt jó eséllyel fogják megtámadni.
Nem csak antiszociális vagy, de sajnos inkorrekt is...Remélem nem egy nagy szolgáltatónál dolgozol, ahol esetleg nekem is lehet regisztrációm, mert én ugyanis nem szeretném ha a jelszavamat el tudnák olvasni annak a cégnek az alkalmazottai akik hozzáférnek egy adatbázishoz...ezért KELL kódoltan tárolni elsősorban, a többi szempontot meg már leírták mások is.
Számítottam ilyen reakcióra, sőt, ez a Részedről jogosnak is tűnhet. Azonban inkorrekt mégsem vagyok, mert nem csak programozzuk az alkalmazást, hanem üzemeltetjük is, ebben a minőségemben van betekintésem az adatbázisba, melyben sokkal személyesebb adatok is vannak a jelszavaknál. Az adatok kezelésére vonatkozóan pedig természetesen minket is kötnek az üzemeltetői szerződésben megfogalmazott adatvédelmi elvek. Ezeket - büntetőjogi felelősségem tudatában - természetesen én is kötelező érvénnyel betartom.
Van pár eszmefuttatás a jelszó átvitel biztonságáról Paul Johnston cikkeiben: Protecting Passwords és Advanced Authentication. Nem feltétlenül házi feladat, kiegészítő olvasmánynak sem utolsó.
teljesen jó a tartalom, de
Így aki hozzáfér az
Szerintem ez az MD5±só olyan megoldás mint a PHP safe_mode: nem megoldás, csak az első lépés. A tárolás önmagában keveset ér, ha az átvitel nem biztonságos.
Egy kis mese így szombat délelőttre. Az internet kávézók fénykorában volt egy elterjedt szívás a maflák között akik
Az utánuk jövő ugyan nyitva találta a levelesládájukat, de a garázdálkodás csak pünkösdi királyság lett volna, mert a jelszó ismerete nélkül később már nem térhet vissza. De volt egy megoldás
Ez egy másik ok a régi jelszavak el nem küldésére: a felhasználó védelme a saját hülyeségének ellene fordításától. Sajnos webmesterkedés közben erre is gondolnunk kell.
Épp ezért
Tudom, hogy ... de mégis ...
Homályosítson már fel valaki, legyen szíves, mint türelmes anya hülye gyermekét!
Köszi! Üdv:
Dávid
miért lenne nehezebb?
Egyetlenegy dolog jut eszembe amiben "nehezebb" a hashes megoldás, mégpedig hogy nem tudsz nyers jelszavakat kiküldeni emlékeztető emailbe, ehelyett egy link-et generálni az usernek.
Támadás
Jogok
Köszönöm a válaszokat!
Valóban nem ügy hash-elt jelszavakat kezelni. Azt hiszem, végül is meggyőztetek. 2 terület van igazából, amiben most segít a nem titkosított tárolás: egyrészt a jelszó-emlékeztető, másrészt, hogy valamely felhasználó (általában az admin) nevében így be tudok én is jelentkezni, és szoktam így javításokat utótesztelni vagy hibabejelentéseket ellenőrizni. Ez utóbbi esetet Ti tudjátok diszkrétebben intézni?
Poetro:
Tök igazad van, ezzel a kockázattal én is tisztában voltam, csak azt gondoltam, hogy ha valaki olyan buggyant, hogy 1 jelszót használ mindenhol, az vessen magára, ha pórul jár.
proclub:
Ez jópofa. Megfontolom.
Köszi mégegyszer! Üdv:
Dávid
Örülök hogy
Nemsok esetet tudok elképzelni mikor az embernek szüksége volna arra hogy másik nevével bejelentkezzen. Ha olyan jogosultság kell ami csak a másiknak van, akkor magadnak is meg kell adni azt a jogot, és kész. De ha mindenképpen úgyérzed hogy neked szükséged van arra hogy valaki másik neve alatt garázdálkodj, akkor le lehet programozni hogy az admin felületen ki lehessen választani ki "legyél" az oldalon.
Köztes alternatív (gány) megoldás:
Azt is lehet hogy letárolod a jelszavakat de nem hash-elt hanem kódolt formában. Ezzel egy baj van hogy ha feltörik az oldalt akkor a titkosítási algoritum ismeretében simán visszafejthető. De ha írsz egy saját titkosítási algoritmust aminek a kimenete úgy néz ki mint egy sha1 hash, akkor a hacker pistike azt fogja hinni hogy az simán egy sha1 hash, és azt meg ugyse tudja visszakódolni alapon, hagyni fogja az egészet a fenébe. (ha már hozzáfért a db-hez akkor utána már nem szokták a forráskódod böngészni)
Két gond még van ezzel mégpedig hogy be kell határold a jelszó hosszát, és karakterkészletét, és nem szabad kiküldeni emlékeztető emailbe a jelszót. (mert akkor evidens a rosszfiúnak hogy nem hash-elve van a jelszó)
De ezt csak felvettettem, lehetőleg tárold le normálisan hash-elve a jelszavakat.
ui: Ha egy oldalon az emlékeztető emailbe kiküldik a jelszavakat, akkor azt az oldalt jó eséllyel fogják megtámadni.
Az utolsó megjegyzésed
Nem csak antiszociális vagy,
Hát igen...
Számítottam ilyen reakcióra, sőt, ez a Részedről jogosnak is tűnhet. Azonban inkorrekt mégsem vagyok, mert nem csak programozzuk az alkalmazást, hanem üzemeltetjük is, ebben a minőségemben van betekintésem az adatbázisba, melyben sokkal személyesebb adatok is vannak a jelszavaknál. Az adatok kezelésére vonatkozóan pedig természetesen minket is kötnek az üzemeltetői szerződésben megfogalmazott adatvédelmi elvek. Ezeket - büntetőjogi felelősségem tudatában - természetesen én is kötelező érvénnyel betartom.
Üdv:
Dávid
Van pár eszmefuttatás a