Tom Moertel blogjából:
Nemrégiben a Reddit.com-os fickók bevallották, hogy az adatbázisuk biztonsági másolatát ellopták. Később spez, a Reddit egyik fejlesztője megerősítette, hogy az adatbázisban benne voltak a Reddit felhasználók jelszavai, ráadásul titkosítatlan formában. Más szóval, ha a tolvaj egyszer megszerzi az adatbázist, akkor mindenki jelszavát is megszerzi vele együtt.
Ha a Reddites srácok hashelték és salt-elték* volna a jelszavakat, akkor a tolvaj teljesen más helyzetben lenne. Ahelyett, hogy az összes kulcsa meglenne a mennyország kapujához, azzal a lehetőséggel kellene szembesüljön, hogy valószínűleg költséges és hosszadalmas folyamat vár rá, amíg minden egyes felhasználó jelszavát kinyeri az adatbázisból. A keresés várható költségei esetleg elveszik a kedvét attól, hogy komolyan próbálkozzon ezzel a keveset érő Reddites user accountoknál. Egyszóval a jelszavak biztonságban lennének akkor is amikor az adatbázis egy tolvaj kezébe kerül.
Akkor miért nem tárolták a Reddit-es programozók saltelve és hashelve a jelszavakat az adatbázisban? Mert spez korábbi post-ja alapján szerették volna, ha a rendszer képes az elfelejtett jelszavakat elküldeni az azt kérő felhasználóknak emailben. Ez egy tervezési döntés volt: mérlegelték a veszélyeit a kódolatlanul tárolt jelszavaknak az adatbázisban szemben azzal a kényelemmel, amit az elfelejtett jelszó emailezése jelent és úgy döntöttek, hogy a kényelem fontosabb. Ez az a döntés, amit most megbántak.
Nem azért írok erről, hogy belerúgjak egyet az amúgy is lenn lévő Reddites srácokba. Ehelyett szeretnék rávilágítani:
Ha a jelszavakat adatbázisban tárolod, akkor ezzel szinte biztosan hibát követsz el.
A Reddites srácokat eléggé okosnak tartják. Ők azt gondolták, hogy van egy jó okuk arra, hogy a jelszavakat az adatbázisukban tárolják. Tévedtek. Ha okos programozók ilyen hibát követnek el, akkor rengeteg programozó is képes rá. Azt gondolod, hogy neked van egy jó indokod rá, hogy adatbázisban tárold a jelszavakat? Ebben az esetben valószínűleg te is tévedsz.
Engedd meg, hogy megragadjam az alkalmat, kedves olvasó, és megkérdezzem, hogy ismersz-e (vagy épp készítesz) olyan szoftver rendszert, ami a jelszavakat szöveges, kódolatlan formában tárolja az adatbázisban? Ha így áll a dolog, akkor hozd rendbe a szoftveredet most! Salt-eld és hasheld az összes jelszót és tárold azt - nem pedig a jelszót - az adatbázisodban.
Boldog leszel, hogy megcsináltad.
Tom Moertel
* Fura lett volna sózásnak fordítani
Friss hozzászólások
3 év 12 hét
3 év 13 hét
3 év 17 hét
3 év 18 hét
3 év 37 hét
3 év 37 hét
3 év 37 hét
3 év 37 hét
3 év 42 hét
3 év 42 hét