Użycie loginu (String) jako Salt w hashu SHA

1

Witam,
Czytam, ze hasze SHA sa dodatkowo zabezpieczane za pomoca wlasciwosci 'Salt'. Ma to pomoc w randomizowaniu hasla i zabezpieczeniu przed atakami metoda slownikowa.

Rozumiem, ze tak podane salt musi byc znane zarowno w momencie haszowania hasla przy tworzeniu jak i podczas uwierzytelniania.

W przypadku prostej strony: czy uzycie jako salt loginu (String) jest dobrym pomyslem?

Pozdrawiam,

0

Nie jestem jakims specjalista od bezpieczenstwa ale wydaje mi sie ze to kiepski pomysl. Login jest raczej ogolnodostepny, no i tak na logike jak ktos chce zlamac czyjes haslo zazwyczaj zna login ;). Moze zamiast tego zrob sobie pole w klasie uzytkownika salt i przy hasowaniu zapisuj je w tym polu, a pozniej przy uwierzytelnianiu korzystaj z tego.

0

Tak sobie pomyslalem, ze lepszym rozwiazaniem bedzie kombinacja loginu i primary key, czyli cos co sie nie zmienia.

0

To nie jest zły pomysł o ile jest jakieś zabezpieczenie np. minimalna długość loginu, mimo to będzie lepiej jak wylosujesz sobie jakiś dłuższy ciąg i potraktujesz go jako salt. Unikalność loginu zabezpieczy cię przed tworzeniem dedykowanych tęczowych tablic, ale jeśli skrypt będzie popularny to wygenerowanie tęczowych tablic dla słownikowych loginów może być bardziej opłacalne.

0

Ciekawy artykul na ten temat, sporo dobrych rad ;)

https://crackstation.net/hashing-security.htm

To check if a password is correct, we need the salt, so it is usually stored in the user account database along with the hash, or as part of the hash string itself.

3

@KryptoNoob nie jest to zły pomysł. Jak ktoś ma dostęp do hasha hasła to pewnie i do salta by miał tak czy siak. Uzycie loginu jako salta jest o tyle ciekawe, że jak atakujacy nie znajdzie salta to pomyśli że hasła nie solone i będzie próbował zwykłymi tablicami tęczowymi łamać a tu zonk ;]

2

@Shalom, koncepcja z loginem ogólnie dobra lecz zbyt oczywista. Trochę inne podejście oparte o pseudolosowość soli. Zamiast z loginu wykorzystaj datę założenia konta (resetu hasła). Przekaż ją do generatora liczb losowych jako ziarno inicjujące. Generator z podanym ziarnem zawsze będzie zwracał takie same wartości (po to mu się to ziarno w końcu przekazuje). W ten sposób dostajesz mniej więcej losową sól do hasła. Każdy user ma inną i nie jest łatwe do powtórzenia ponieważ sama sól ma naturę pseudolosową.
Osoba łamiąca hasło musi poza odgadnięciem, że ma do czynienia z solonym hasłem zgadnąć jeszcze jak wygląda funkcja generatora pseudolosowego. A to już nie jest takie hop siup.

0

Osobiście uważam że to dobry pomysł np mozesz hashowac w jakimś np md5 login ktory będzie solą + hasło i to w sha, wszystko pięknie bo nawet tęczowe tablice nie pomogą zbyt wiele bo będą mieć dość pokaźne rozmiary. Jeżeli skrypty nie są publiczne to złamanie takiego hasła graniczy z cudem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1