Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Solenie haseł
Forum PHP.pl > Forum > Przedszkole
Mefiuu
Witam. Czytam ostatnio o soleniu haseł w PHP i chciałem zapytać czy ja to dobrze rozumiem. Tworzę sobie serwis, który chciałbym mieć jak najlepiej zabezpieczony.

Moje rozumowanie:

1. Podczas rejestracji tworzę sobie losową sól dla użytkownika (np. a298ydauydsa98d78sadsa).
2. Zapisuję tę wartość do bazy obok użytkownika
3. Podczas logowania użytkownik podaje login oraz hasło. Pobieram z bazy sól dla tego użytkownika (jeśli taki istnieje) i sprawdzam czy np. md5($salt.$password.$salt) jest prawdziwe ?

Z góry dziękuję za odpowiedź, gdyż w tematach i ogólnie w sieci często można znaleźć zalety stosowania solenia, ale ciężko jest znaleźć dobry przykład... Znalazłem przykład ze stałą solą w pliku, ale wolałbym jednak dla każdego chyba mieć osobną.

Pozdrawiam.
sajegib
Dokładnie tak, możesz zrobić jak napisałeś, aczkolwiek rozwiązań jest sporo. Generalnie chodzi o to, że nawet jak ktoś sobie złamie hasza hasła to i tak bez soli to sobie może ... smile.gif
mstraczkowski
@up Uwierz, że może.. i to dużo, solenie hashy na dzień dzisiejszy nie pomaga.
Łamanie algorytmów hashujących nie polega na odgadnięciu zahashowanej wartości, tylko na doprowadzeniu do kolizji.
Kolizja następuje wtedy gdy dwa różne ciągi znaków dają ten sam hash

Nie powinno się już stosować MD5, zostało ono wyparte przez bezpieczniejsze SHA-2 (czyli SHA-256, SHA-512), a później SHA-3

Jednak wszystkie powyższe algorytmy hashujące nie służą i nigdy nie służyły do przechowywania haseł.
Najlepszym obecnie rozwiązaniem jest używanie bcrypt do hashowania haseł.
Szymciosek
@mstraczkowski

coś takiego? https://gist.github.com/dzuelke/972386
mstraczkowski
Yep, ale lepiej sobie podpatrzeć lub wziąć z Zenda

https://github.com/zendframework/zf2/blob/m...word/Bcrypt.php

W wersji PHP 5.3.7 jest bug i trzeba to sobie poprawnie obsłużyć
A nie widzę tego w podanym przez ciebie rozwiązaniu smile.gif
com
Tak jak napisał mstraczkowski można podpatrzeć rozwiazanie z Zenda, ale drugim wartym rozpatrzenia rozwiązaniem jest phpass z PHPBB3,WordPress 2.5+, Drupal 7+ itp wink.gif Dla tych którzy chcieli by jescze pogłebić swoja wiedzę polecam artykuł http://vizzdoom.net/2013/02/kompendium-bez...-atak-i-obrona/ wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.