Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Hydepark _ sila hasla a funkcje hashujace plus sol

Napisany przez: universalStudio 6.11.2016, 12:49:58

zastanawiam sie dlaczego serwisy czesto wskazuja aby tworzyc dlugie hasla skoro taki serwis moze do nawet krotkiego hasla dodawac sol nastepnie wszystko mieszac w sha i md5 i dzieki temu jakosc hasla nie powinna miec znaczenia.
Oczywiscie pomijam teraz kwestie wiekszego prawdopodobienstwa odgadniecia hasla po przez nieduze kombinacje znakow (bo aktaualnie niemal wszystkie serwisy maja zabezpieczenie do kilku prob nieudanych co skutecznie chyba uniemozliwia kombinarotyke). Mam tu na mysli sytuacje gdzie np wyciekaja zaszyfrowane/wymieszane hasla juz z dodatakmi soli, wiec wystarczy aby sol byla odpowiednio dluga i juz nie powinno byc mozliwosci rozszyfrowania takiego hasla w rozsadnym czasie...

Jak wy uwazacie?

Napisany przez: viking 6.11.2016, 14:16:57

Czytałem kiedyś badania że długość hasła w żaden sposób nie wpływa na bezpieczeństwo a wręcz jest negatywna (jakiś losowy ciąg znaków jest trudno zapamiętać zatem jest on gdzieś zapisany na komputerze / telefonie co jest dodatkową luką). To raczej kwestia żeby nie tworzyć haseł oczywistych: haslo123, jakieś daty urodzin, imię itd.

Napisany przez: Dejmien_85 6.11.2016, 14:37:22

Jeśli ktoś dobiera się do bazy, to raczej sól też ma już w kieszeni.

Sól przeważnie zapisuje się w bazie danych i dla każdego użytkownika generowana jest unikatowa sól, aby atakujący nie mógł zrobić sobie tablicy tęczowej - z jedną "solą" jest to łatwe.

Jeśli ktoś ma słabe hasło składające się z kilku znaków (tak jak to pisał kolega powyżej), to atakujący je bardzo szybko złamie.

Proste porównanie:

Złamanie hasła złożonego z liter (małe i duże) oraz cyfr o długości 11 znaków zajmie około 17 dni.
Złamanie hasła złożonego z liter (małe i duże), cyfr i znaków specjalnych o długości 10 znaków zajmie około 23 lat.

Wiec hasło typu: "lubiekoty333" to pikuś, ale dodaj do tego kilka znaków specjalnych i dni przeradzają się w lata - a to dla atakujących już mocny cios.

Napisany przez: universalStudio 6.11.2016, 16:33:00

Dzieki za odp, zastanawiam mnie jeszcz jedna sprawa - najczesciej slyszy sie o wlamaniach do baz danych wykorzystujac dziury w kodzie php, ale czy ktos dysponuje wiedza czy z podobna czestotliwoscia wlamywacze sa wstanie wlamac sie na ftp i odczytac np. zapisana sol w pliku php? Draze ta kwestie, o ktorej wspomnial powyzej Dejmien_85 a zeby dla kazdego usera zapisywac w bazie indywidualna sol, wtedy faktycznie ta sol przestaje byc az taka przeszkoda... dlatego czy nie lepiej trzymac jedna sol dla wszystkich ale w pliku php?

Napisany przez: Comandeer 6.11.2016, 16:53:20

Sól ma zabezpieczać hasło przed tablicą tęczową, więc ta sama sól dla wszystkich haseł jest bez sensu (i w sumie nazywa się ją wówczas pieprzem) – wówczas bowiem wystarczy dla niej wygenerować tablice tęczowe i problem z głowy. Natomiast unikalna sól dla każdego hasła nie pozwala tego zrobić.

Sól nie ma być niejawna, ona ma być unikalna, bo służy praktycznie wyłącznie powiększaniu entropii hasła.

Napisany przez: universalStudio 6.11.2016, 17:04:49

no i wszystko jasne smile.gif dzieki dla was!

Napisany przez: !*! 7.11.2016, 10:26:16

Po co Wam te sole w bazie/pliku jak jest http://php.net/password_hash

Napisany przez: Comandeer 7.11.2016, 10:41:43

Pieprz se w pliku IMO dodać można. A jak już mówimy o password_hash, to od razu powiedzmy: https://pythonhosted.org/passlib/modular_crypt_format.html.

Napisany przez: !*! 7.11.2016, 10:54:26

Tylko po co? Nie bez powodu "sól" w PHP7 dla password_hash wyleciała. Zapis/dodawanie soli gdziekolwiek brzmi tak samo źle jak używanie kilka razy md5() kilka lat temu.

Napisany przez: Comandeer 7.11.2016, 11:39:41

Sól wyleciała, bo mało kto odróżniał silną losową sól od "knakhnahnakh".

Teraz po prostu PHP samo generuje silną sól i dokleja ją do hasła, więc sól jest dodawana i zapisywana – po prostu dzieje się to automatycznie.

Napisany przez: ZenekN 7.11.2016, 16:33:56

Cytat(Comandeer @ 6.11.2016, 16:53:20 ) *
Sól nie ma być niejawna


yyyy facepalmxd.gif



Napisany przez: Comandeer 7.11.2016, 17:46:36

@ZenekN czy mógłbyś rozwinąć swoją jakże merytoryczną odpowiedź? smile.gif Bo np najpopularniejsza implementacja hashu w PHP (i nie tylko, bo np. w Pythonie też), MCF, ma sól w pełni jawną i nie ma żadnych problemów z tego wynikających.

Sól nie jest jakimś sekretnym składnikiem hasła, ona po prostu zwiększa jego losowość. Dlatego ma być unikatowa, nie niejawna!

Napisany przez: r4xz 7.11.2016, 20:19:30

@Comandeer, może po prostu słowo "niejawna" nie jest zbyt trafne i niektórzy mogą pomyśleć, że każdy użytkownik systemu ma do niej dostęp. Aktualnie pewnie większość korzysta z password_hash i nawet nie jest świadoma, że ma odpowiednie zabezpieczenia (z jednej strony dobrze, a z drugiej strony przerażająca myśl).

Napisany przez: Dejmien_85 9.11.2016, 08:27:44

Cytat(!*! @ 7.11.2016, 10:26:16 ) *
Po co Wam te sole w bazie/pliku jak jest http://php.net/password_hash


Wydaje mi się, że poszedłeś o krok do przodu.

Masz rację, te funkcje automatycznie dodają sól - w tym temacie skupiamy się jednak na ogólnym sensie soli (nie tylko w kontekście PHP i funkcji password_hash).

Pewnie zauważyłeś, że autor tematu zapytał się o sens soli.

Sądzę, że jeśli odpowiemy mu, aby się tym nie interesował, a po prostu użył funkcji "password_hash", to za wiele mu to nie wyjaśni.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)