Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> podwójne hashowanie haseł, ogólnie n-hashowanie
nospor
post 27.02.2006, 11:48:23
Post #1





Grupa: Moderatorzy
Postów: 36 478
Pomógł: 6302
Dołączył: 27.12.2004




w związku z lekkim OT w pewnym temacie, który rozwinął się w ciekawą dyskusję, temat rozdzielam. Dotyczy on:
Czy podwójne (n-te) hashowanie hasła jest bezpieczniejsze, od pojedynczego hashowania

md5 sie nie odkoduje. mozna trafic na rozwiązanie metodą brute force. Dla tej metody jednak jest bez roznicy, czy ty dane haslo przepuścic przez md5 raz, dwa czy milion razy wink.gif

Posty będące duplikacją postów już zawartych w temacie, będą bez ostrzeżenia usuwane. Ma to zapobiedz tworzeniu się zbędnego śmietnika


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Apocalyptiq
post 4.06.2009, 14:49:15
Post #2





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Hm, ale ten mój pomysł miałby uniemożliwić dojście do hasła za pomocą dostępnych w necie baz danych z rozshashowanymi hashami. Wtedy musieliby sobie sami zrobić tablicę od nowa dla danego klucza :-) A że pozna klucz - możnaby własnie w bazie zapisywać te losowe klucze, wtedy nawet jakby je znał, musiałby dla każdego hasła utworzyć osobną tablicę tęczową, a takie coś to już byłby wyczyn biggrin.gif Orientuje się ktoś ile czasu wymaga utworzenie takiej tablicy tęczowej lub takie bazy danych, jakie są dostępne w necie (wpisujemy hash i dostajemy hasło, z którego został wygenerowany)?


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
sowiq
post 4.06.2009, 14:59:12
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Apocalyptiq @ 4.06.2009, 15:49:15 ) *
A że pozna klucz - możnaby własnie w bazie zapisywać te losowe klucze, wtedy nawet jakby je znał, musiałby dla każdego hasła utworzyć osobną tablicę tęczową
Poczytaj o kolizjach.
Cytat(Apocalyptiq @ 4.06.2009, 15:49:15 ) *
Orientuje się ktoś ile czasu wymaga utworzenie takiej tablicy tęczowej lub takie bazy danych, jakie są dostępne w necie (wpisujemy hash i dostajemy hasło, z którego został wygenerowany)?
Ja mam taki projekt na Programowanie Równoległe i Rozproszone. Ściślej odpowiem jak go zrobię smile.gif Potrzeba na to i bardzo dużo czasu i bardzo dużo miejsca na dysku. Ogólnie rzecz biorąc im więcej tym lepiej, bo raczej trudne byłoby wygenerować każdą możliwą kombinację.

Ten post edytował sowiq 4.06.2009, 15:01:39
Go to the top of the page
+Quote Post
Apocalyptiq
post 4.06.2009, 15:30:31
Post #4





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Cytat(sowiq @ 4.06.2009, 15:59:12 ) *
Poczytaj o kolizjach.


Nie rozumiem, co do generowania hasha za pomocą hash_hmac mają kolizje? W chyba każdej metodzie hashowania istnieje jakieśtam prawdopodobieństwo powstania kolizji, ale hashowanie na podstawie losowego klucza, który jest później zapisywany, raczej zmniejsza to prawdopodobieństwo :-)


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
sowiq
post 4.06.2009, 15:44:24
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Apocalyptiq @ 4.06.2009, 16:30:31 ) *
W chyba każdej metodzie hashowania istnieje jakieśtam prawdopodobieństwo powstania kolizji, ale hashowanie na podstawie losowego klucza, który jest później zapisywany, raczej zmniejsza to prawdopodobieństwo :-)
Mylisz się. Prawdopodobieństwo powstania kolizji zależy od długości hasha, czyli od ilości możliwych kombinacji.
Jeśli takich kombinacji będzie N, to po wygenerowaniu 2 hashy masz 1/N prawdopodobieństwo, że nastąpiła kolizja. Im większe N, tym więcej trzeba się natrudzić, żeby trafić na ten sam wynik.
Skoro długość hasha jest określona, znaki w nim to 0-f, to ilość kombinacji jest skończona. Ilość ciągów wejściowych jest nieskończona, bo mozesz budować coraz dłuższe. Z tego jednoznacznie wynika, że kolizje są [wystarczyłoby (ilość_kombinacji_hasha + 1) ciągów wejściowych, żeby na 100% zdarzyła się jakaś kolizja]. Nieważne jak bardzo losowy ciąg będziesz kodował. Pytanie tylko jak trudno je znaleźć smile.gif

Ten post edytował sowiq 4.06.2009, 15:46:48
Go to the top of the page
+Quote Post
Apocalyptiq
post 5.06.2009, 10:30:15
Post #6





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Cytat(sowiq @ 4.06.2009, 16:44:24 ) *
Mylisz się. Prawdopodobieństwo powstania kolizji zależy od długości hasha, czyli od ilości możliwych kombinacji.
Jeśli takich kombinacji będzie N, to po wygenerowaniu 2 hashy masz 1/N prawdopodobieństwo, że nastąpiła kolizja. Im większe N, tym więcej trzeba się natrudzić, żeby trafić na ten sam wynik.
Skoro długość hasha jest określona, znaki w nim to 0-f, to ilość kombinacji jest skończona. Ilość ciągów wejściowych jest nieskończona, bo mozesz budować coraz dłuższe. Z tego jednoznacznie wynika, że kolizje są [wystarczyłoby (ilość_kombinacji_hasha + 1) ciągów wejściowych, żeby na 100% zdarzyła się jakaś kolizja]. Nieważne jak bardzo losowy ciąg będziesz kodował. Pytanie tylko jak trudno je znaleźć smile.gif


Hm, czyli jeżeli zmienię metodę hashowania z sha1 na powiedzmy sha512 (128 znaków), ten mój pomysł z hash_hmac powinien być ok? :-)

No i ja już mówie o tworzeniu hasha na podstawie jednego tylko klucza dla wszystkich kont, wtedy przecież prawdopodobieństwo kolizji jest takie samo jak przy surowym hashowaniu.

Ten post edytował Apocalyptiq 5.06.2009, 10:35:31


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
sowiq
post 5.06.2009, 11:16:03
Post #7





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Apocalyptiq @ 5.06.2009, 11:30:15 ) *
Hm, czyli jeżeli zmienię metodę hashowania z sha1 na powiedzmy sha512 (128 znaków), ten mój pomysł z hash_hmac powinien być ok? :-)
Jeśli pracujesz dla Amerykańskiej armii i ochraniasz hasłem 'red button', to tak smile.gif Hash sha1 ma długość 40 znaków. Każdy z nich może być hexadecymalną wartością. Czyli ilość kombinacji sha1 to 16^40 = 1.46150164 * 10^48 (wg. Google). Przy sha512 ilość ta wzrasta do 16^128 = 1.34078079 * 10^154. Nie muszę Ci chyba mówić jak duże są to liczby smile.gif

Cytat(Apocalyptiq @ 5.06.2009, 11:30:15 ) *
No i ja już mówie o tworzeniu hasha na podstawie jednego tylko klucza dla wszystkich kont, wtedy przecież prawdopodobieństwo kolizji jest takie samo jak przy surowym hashowaniu.
Dodawanie soli (klucza) ma za zadanie wykluczyć możliwość słownikowego ataku. Jeśli ktoś ma hasło password, to odnalezienie go nie jest trudne (porównywanie znalezionego hasha z generowanymi kolejno skrótami dla słów ze słownika). Ale jeśli dodasz sól, to hasło będzie wyglądało np. tak: password$%^HNJGCFksdfsdbj^*12. Wtedy słownikowy atak na nic się nie przyda (zakładając oczywiście, że hackerujący nie zna naszej soli).

Jeśli bardzo bredzę to proszę kogoś o poprawienie mnie. Ekspertem od kryptografii nie jestem smile.gif

Ten post edytował sowiq 5.06.2009, 11:20:27
Go to the top of the page
+Quote Post
Apocalyptiq
post 5.06.2009, 13:32:13
Post #8





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Cytat(sowiq @ 5.06.2009, 12:16:03 ) *
Jeśli pracujesz dla Amerykańskiej armii i ochraniasz hasłem 'red button', to tak smile.gif Hash sha1 ma długość 40 znaków. Każdy z nich może być hexadecymalną wartością. Czyli ilość kombinacji sha1 to 16^40 = 1.46150164 * 10^48 (wg. Google). Przy sha512 ilość ta wzrasta do 16^128 = 1.34078079 * 10^154. Nie muszę Ci chyba mówić jak duże są to liczby smile.gif

Dodawanie soli (klucza) ma za zadanie wykluczyć możliwość słownikowego ataku. Jeśli ktoś ma hasło password, to odnalezienie go nie jest trudne (porównywanie znalezionego hasha z generowanymi kolejno skrótami dla słów ze słownika). Ale jeśli dodasz sól, to hasło będzie wyglądało np. tak: password$%^HNJGCFksdfsdbj^*12. Wtedy słownikowy atak na nic się nie przyda (zakładając oczywiście, że hackerujący nie zna naszej soli).

Jeśli bardzo bredzę to proszę kogoś o poprawienie mnie. Ekspertem od kryptografii nie jestem smile.gif


Dzięki za wytłumaczenie celu dodawania soli, nie mogłem tego do końca zrozumieć :-)

Ten mój pomysł działałby podobnie, ale według mnie lepiej od soli - wtedy atakujący musiałby znać klucz który wrzucam do hash_hmac, żeby cokolwiek zdziałać - nie posiadając go musiałby chociażby dla ataku słownikowego, przeprowadzić go dla wszystkich kombinacji klucza z hash_hmac biggrin.gif Wystarczy utworzyć taki klucz z powiedzmy 512 znaków, i dojście do hasła wejściowego jest praktycznie niemożliwe :-)

Czekam na Wasze komentarze co do stosowania hash_hmac do zatajania hashów haseł :-)

Ten post edytował Apocalyptiq 5.06.2009, 13:34:05


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post

Posty w temacie
- nospor   podwójne hashowanie haseł   27.02.2006, 11:48:23
- - wijet   Ja też myślalem że przepuścić przez md5 dwa razy b...   27.02.2006, 14:09:17
- - mike_mech   Haszowanie dwa razy jest bez sensu, no bo nawet je...   27.02.2006, 14:30:17
- - FiDO   Cytat(mike_mech @ 2006-02-27 14:30:17)rety, c...   22.03.2006, 18:47:42
- - rbart   Osobiście niewiem po co to podwójne kodowanie md5 ...   22.03.2006, 20:27:09
- - sopel   Cytat(nospor @ 2006-02-27 11:48:23)md5 sie ni...   22.03.2006, 23:26:40
- - Aztech   [offtopic mode on] Cytatco do odkodowania md5, jak...   23.03.2006, 00:31:50
- - nospor   CytatZakladajac, ze haslo brzmi 'tajne123...   23.03.2006, 08:34:33
- - lenzcewski   hmmm. a jednak będę odmiennego zdania, niż cześc t...   23.03.2006, 18:34:57
- - My4tic   A co powiecie o słownikach hashy w md5 których peł...   23.03.2006, 21:02:40
- - nospor   Kurka wodna, jak to potrafią czlowiekowi wodę z mó...   23.03.2006, 21:10:40
- - My4tic   Zgadza sie - na b-f nic sie nie poradzi ale podwoj...   23.03.2006, 21:23:26
- - lenzcewski   nospor: dla bezpośredniego ataku na strone (remote...   23.03.2006, 22:48:20
- - SHiP   Co do kodowania 2 x md5 heh a nie łatwiej użyć kod...   23.03.2006, 23:02:10
- - lenzcewski   hmmm. po co? jeżli masz odkodowane hasło, szansa, ...   24.03.2006, 06:53:32
- - chomiczek   Cytat(SHiP @ 2006-03-23 22:02:10)Dla utrudnie...   24.03.2006, 09:04:19
- - lenzcewski   http://www.hakin9.org/pl/attachments/md5_pl.pdf ht...   24.03.2006, 09:23:34
- - kszychu   Cytat(lenzcewski @ 2006-03-24 06:53:32)hmmm. ...   24.03.2006, 10:59:10
- - E-d   md5 da się odhaszować. http://md5.rednoize.com/ W...   24.03.2006, 11:36:29
|- - MajareQ   Cytat(E-d @ 24.03.2006, 11:36:29...   4.02.2008, 20:33:41
- - lenzcewski   krzychu: nie zmienia to faktu, że ktoś uzyskał dos...   24.03.2006, 11:41:30
- - nospor   Cytatmd5 da się odhaszować. http://md5.rednoize.c...   24.03.2006, 11:58:22
- - kszychu   Cytat(lenzcewski @ 2006-03-24 11:41:30)Przy T...   24.03.2006, 12:28:06
- - FiDO   CytatPrzestrzegam natomiast przed sytuacją, w któr...   24.03.2006, 13:23:39
- - kszychu   Cytat(FiDO @ 2006-03-24 13:23:39)Na przyklad ...   24.03.2006, 14:04:57
- - FiDO   Ja tak robie Oczywiscie nie ot tak sobie przypad...   24.03.2006, 17:00:16
- - shpyo   Cytat(E-d @ 2006-03-24 12:36:29)md5 da s...   24.03.2006, 23:46:19
- - UsTeK   Cytatsha1 to już przeszłość - został złamany przez...   3.04.2006, 18:05:51
- - Vengeance   Dlaczego twierdzicie, że n-hash kompletnie nic nie...   3.04.2006, 19:17:35
- - nospor   CytatJezeli uzytkownik zakoduje haslo 'test...   3.04.2006, 19:31:41
- - popo   2xmd5 = 2x wieksza szansa na kolizje. Z prostego p...   3.04.2006, 20:03:29
- - Vengeance   CytatTak wiec dla b-f bez roznicy jest przez co to...   3.04.2006, 21:36:24
- - nospor   CytatJa mówiłem o najczęstrzej sytuacji... gdzie k...   3.04.2006, 21:43:26
- - Vengeance   "Ale jezeli ten ktos, wie, ze to bylo dwa raz...   3.04.2006, 21:49:30
- - nospor   widze że się nie rozumiemy koles gdy robi b-f, g...   3.04.2006, 22:07:15
- - Vengeance   No tak racja, o ile wie ;] Najczęściej nie wie i s...   3.04.2006, 22:09:57
- - popo   Vengance on nawet nie musi tego wiedziec cala brud...   3.04.2006, 22:44:57
- - Vengeance   Te obrazki zwą sie "captcha" i sa automa...   3.04.2006, 22:58:49
- - Kuziu   ~Vengeance Zrób taki mały test: Zakoduj sobie np....   3.04.2006, 23:03:47
- - chomiczek   trochę odświeże temat: http://www.stachliu.com/col...   18.04.2006, 08:33:09
- - thornag   Odswierzam troche temat ale mysle ze moje pytanie ...   6.11.2006, 17:34:16
- - kwiateusz   cos w ten desen ale przy 12 znakach nie znalazł ha...   5.02.2008, 20:43:02
- - MajareQ   jednym słowem jeszcze daleko brakuje do łamacza ha...   6.02.2008, 21:07:06
- - pinochet   Witajcie ... to mój pierwszy post na tym forum wię...   9.10.2008, 12:58:45
- - Zyx   1. Dwukrotne wydłużenie czasu potrzebnego do złama...   14.10.2008, 07:20:42
- - pinochet   Cytat(Zyx @ 14.10.2008, 08:20:42 ) 1....   14.10.2008, 20:43:50
- - Zyx   Kurde, jak do czegoś został przedstawion...   16.10.2008, 09:43:20
- - pinochet   Dobra muszę przyznać Ci rację ;] Wielokrone hashow...   16.10.2008, 18:03:43
- - Michu   Nie rozumiem po co cały ten szum. Moje zdanie jest...   16.10.2008, 18:34:21
|- - mike   Cytat(Michu @ 16.10.2008, 19:34:21 ) ...   16.10.2008, 21:32:13
- - michalkjp   @Michu "Słabość MD5 polega na tym że ws...   16.10.2008, 22:01:15
- - Zyx   MD5 zostało złamane już kilka lat t...   18.10.2008, 22:15:38
|- - michalkjp   Cytat(Zyx @ 18.10.2008, 23:15:38 ) Ob...   18.10.2008, 22:26:13
- - Zyx   Ech, wystarczy w Google wpisać "MD5 collision...   19.10.2008, 10:52:23
- - Kicok   Porównanie trzech metod przechowywania haseł jako ...   20.10.2008, 18:36:32
- - Zyx   Punkt 1, 2 - są w porządku. Punkt 3 - przeczytaj ...   21.10.2008, 07:12:07
- - mike   Cytat(Kicok @ 20.10.2008, 19:36:32 ) ...   21.10.2008, 08:54:12
- - Kicok   Cytat("mike")Oczywiście że jest błędne. ...   21.10.2008, 10:43:30
- - nospor   CytatPo potraktowaniu tego hasha brute-forcemBrute...   21.10.2008, 10:46:56
- - Kicok   O i taka odpowiedź rozjaśniła mi już wiele. Teraz...   21.10.2008, 11:02:22
- - 312   hej. zainteresowała mnie ta dyskusja. mam jedno py...   14.11.2008, 09:17:00
- - Zyx   Źle zrobioną captchę łatwo obejść, na dobrą też są...   17.11.2008, 10:21:47
- - Apocalyptiq   Ja polecam mieszanie hashów - np. md5 + sha256: na...   21.11.2008, 21:53:22
- - phpion   @Apocalyptiq: Strasznie trudne byłoby odkrycie pra...   21.11.2008, 21:58:24
|- - Apocalyptiq   Cytat(phpion @ 21.11.2008, 21:58:24 )...   22.11.2008, 11:31:58
|- - phpion   Cytat(Apocalyptiq @ 22.11.2008, 13:31...   22.11.2008, 11:35:12
- - Apocalyptiq   Ale ten test przeprowadziłem dla 100x hashowania -...   22.11.2008, 13:33:15
- - Crozin   Żeby hash hasła trzymać w cookie... trzeba być nap...   23.11.2008, 11:04:51
|- - Apocalyptiq   Cytat(Crozin @ 23.11.2008, 11:04:51 )...   2.12.2008, 08:39:10
|- - bełdzio   Cytat(Apocalyptiq @ 2.12.2008, 08:39...   2.12.2008, 12:27:07
- - marcio   A ja to robie inaczej po 10 nie powodzonych probac...   23.11.2008, 11:32:13
|- - phpion   Cytat(marcio @ 23.11.2008, 13:32:13 )...   23.11.2008, 11:34:45
- - marcio   Mowi sie trudno cos za cos zreszta nie jest to po...   23.11.2008, 11:51:02
- - Zyx   A żebyś wiedział... opór materii jest niesamowity....   2.12.2008, 12:53:36
- - luki100011   Czyli równie dobrze można nie kodować haseł ;-) bo...   5.01.2009, 22:25:09
- - Crozin   CytatMożna by sie teraz pokusić o hashowanie hasła...   5.01.2009, 22:58:40
- - pinochet   Już napisałem "pare" postów wyżej że są ...   5.01.2009, 23:25:34
- - Wykladowca   n-hashowanie nie zwiększa możliwości wygenerowania...   19.01.2009, 13:24:49
|- - .radex   Cytat(Wykladowca @ 19.01.2009, 13:24...   21.02.2009, 15:17:42
- - Pilsener   1. Nie ma sensu wielokrotne haszowanie ani używani...   26.01.2009, 12:27:18
- - Caus   Nie wiem czy została podana jedna - chyba naj...   8.02.2009, 05:14:44
- - KaveS   ciekawy temat i chetnie sie tu wypowiem. i chociaz...   21.02.2009, 07:51:17
- - Crozin   MD5 ma 16^32 możliwych kombinacji. Hasła typu: ...   21.02.2009, 11:41:33
- - Mikz   Osobiście polecam stosowanie crypt(). Wszystkie me...   21.02.2009, 14:25:26
- - MWL   Nie wiem czy zmiana soli po zalogowaniu ma duży se...   25.02.2009, 13:34:59
- - Zyx   Mikz -> crypt() to nie żaden algorytm, tylko un...   26.02.2009, 21:23:18
- - Mikz   Zyx -> z tą solą to chyba dość oczywiste, ale d...   12.03.2009, 13:56:06
- - fernet   Ja w przyplywie entuzjazmu bawie sie innaczej baza...   21.04.2009, 19:35:13
- - Kocurro   Ja za to zabezpieczam się odrobiną sztucznej intel...   21.04.2009, 19:40:45
- - guitarnet.pl   3 grosze.. jak ktos zna aplikacje TrueCrypt to od...   21.04.2009, 19:54:44
- - Crozin   Cytattroche wyobrazni paniowie...I pisze to osoba,...   21.04.2009, 21:47:28
- - Apocalyptiq   Poczytałem ten topic, jak i artykuł o hashowaniu d...   4.06.2009, 14:24:10
|- - sowiq   Cytat(Apocalyptiq @ 4.06.2009, 15:24...   4.06.2009, 14:38:53
- - Apocalyptiq   Hm, ale ten mój pomysł miałby uniemożliwić dojście...   4.06.2009, 14:49:15
- - sowiq   Cytat(Apocalyptiq @ 4.06.2009, 15:49...   4.06.2009, 14:59:12
- - Apocalyptiq   Cytat(sowiq @ 4.06.2009, 15:59:12 ) P...   4.06.2009, 15:30:31
- - sowiq   Cytat(Apocalyptiq @ 4.06.2009, 16:30...   4.06.2009, 15:44:24
- - Apocalyptiq   Cytat(sowiq @ 4.06.2009, 16:44:24 ) M...   5.06.2009, 10:30:15
- - sowiq   Cytat(Apocalyptiq @ 5.06.2009, 11:30...   5.06.2009, 11:16:03
- - Apocalyptiq   Cytat(sowiq @ 5.06.2009, 12:16:03 ) J...   5.06.2009, 13:32:13
2 Stron V   1 2 >


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2024 - 07:52