![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 5.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Piszę klasę do obsługi użytkowników m.in logowanie itp. Chcę jak najlepiej zabezpieczyć hasła użytkowników przed atakami brute force itp.
Chcę użyć takiego systemu solenia haseł do ich zabezpieczenia. Składałby się z ciągu liczb, który byłby dowolnie modyfikowany np 1,2,4,8,15 itd , funkcji uniqid() i microtime() , które generują unikalne ciągi oraz z tablicy ze znakami specjalnymi, które losowałbym. Czy taki system solenia byłby skuteczny? Jeszcze jedno. Czy przechowywanie soli do hasła w bazie danych jest bezpieczne? W końcu muszę jakoś jej użyć żeby można było porównać hasło. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Piszę klasę do obsługi użytkowników m.in logowanie itp. Chcę jak najlepiej zabezpieczyć hasła użytkowników przed atakami brute force itp. Chcę użyć takiego systemu solenia haseł do ich zabezpieczenia. Składałby się z ciągu liczb, który byłby dowolnie modyfikowany np 1,2,4,8,15 itd , funkcji uniqid() i microtime() , które generują unikalne ciągi oraz z tablicy ze znakami specjalnymi, które losowałbym. Czy taki system solenia byłby skuteczny? Jeszcze jedno. Czy przechowywanie soli do hasła w bazie danych jest bezpieczne? W końcu muszę jakoś jej użyć żeby można było porównać hasło. No gdzieś je przechowywać musisz. Zastosuj jedną losową sól i unikniesz dodatkowego pola w bazie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
No właśnie soli w bazie nie powinno się trzymać bo jeśli ktoś Ci wykradnie bazę z hashami hasła i widzi obok pole "salt" to sprawdza czy ktoś nie ma hasła takiego jak login, jeśli się takie trafi (a raczej się trafi przy dużej bazie) to kombinuje w jaki sposób jest sól doczepiana, kwestią czasu jak pozna, a jak pozna to sól w niczym nie przeszkadza.
Chyba najlepszym rozwiązaniem jest trzymanie elementów soli w plikach na serwerze, jakiś config, bo wtedy musisz mieć bazę + dostęp do serwera/hasło do FTP + następny element soli jest unikalny dla każdego użytkownika, jest to np. data jego rejestracji, bo jest niezmienna. No gdzieś je przechowywać musisz. Zastosuj jedną losową sól i unikniesz dodatkowego pola w bazie. No ale zawsze gdzieś trzeba zapisać to co się wylosowało przy rejestracji, inaczej to się nie zalogujemy (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
No ale zawsze gdzieś trzeba zapisać to co się wylosowało przy rejestracji, inaczej to się nie zalogujemy (IMG:style_emoticons/default/biggrin.gif) Jeżeli raz ją wygenerujesz i podstawisz do pliku to nie będzie problemu. Wiesz mam na myśli rozwiązanie na sztywno. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 9 Dołączył: 8.08.2009 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Nie chodzi o solenie tylko o czas generowania hashu
Polecam Portable PHP password hashing framework http://www.openwall.com/phpass/ Możesz dowolnie kod modyfikować: http://www.webhostingtalk.pl/topic/22804-p...post__p__197323 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 306 Pomógł: 32 Dołączył: 20.01.2008 Ostrzeżenie: (20%) ![]() ![]() |
A co do zabezpieczeń przed atakami BruteForce, to polecam dodać wymuszony odstęp pomiędzy kilkoma błędnymi logowaniami.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Pod UNIXem aż do dziś na linuxach jest wykorzystywany crypt, nikomu się nie opłacało tego łamać, więc i Twoje hasła w bazię będą g. warte, także nikomu się ich też nie będzie chciało łamać. A Brutem glutem to wszystko idzie złamać, tylko kwestia czasu, albo np blokada konta usera po 5 nie udanych próbach zalogowania. Czysta finezja zabezpieczenia użytkownika.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Pod UNIXem aż do dziś na linuxach jest wykorzystywany crypt, nikomu się nie opłacało tego łamać, więc i Twoje hasła w bazię będą g. warte, także nikomu się ich też nie będzie chciało łamać. A Brutem glutem to wszystko idzie złamać, tylko kwestia czasu, albo np blokada konta usera po 5 nie udanych próbach zalogowania. Czysta finezja zabezpieczenia użytkownika. To robisz skrypt, który będzie latał po bramkach proxy, odczekiwał czas etc. (IMG:style_emoticons/default/winksmiley.jpg) Przed brutal-force nie ma zabezpieczenia. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
fifi tylko powiedz mi dlaczego TrueCrypta nawet FBI nie złamało?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
fifi tylko powiedz mi dlaczego TrueCrypta nawet FBI nie złamało? Widocznie nie byli na tyle zdeterminowani co Polacy łamiący enigmę. btw. skąd masz takie informacje? - pamiętaj nie o wszystkim się pisze, czasem trzeba zaprzeczać prawdzie. Ten post edytował fifi209 7.07.2010, 21:11:00 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 08:49 |