Cytat(My4tic @ 13.09.2006, 21:49:44 )

Dzięki piwoszeq za podbicie tematu bo dopiero teraz doczytałem jakie pierdoły On tu pisze...
Wybacz, że nie zgadzam się ślepo z Twoim jedynym słusznym zdaniem. Nie niweluję jednak znaczenia Twojej wypowiedzi nazywając ją "pierdołami".
Cytat(My4tic @ 13.09.2006, 21:49:44 )

1. MD5 jest algorytmem kolizyjnym
Uff, nie zgadłbym, dzięki

(sarkazm)
Cytat(My4tic @ 13.09.2006, 21:49:44 )

też już było o tym milion razy, więc możesz kombinować z hasłem jak chcesz a i tak może sie zdarzyć, że dwa różne ciągi dadzą taki sam hasz (SHA-1 również!).
Dlatego właśnie warto wprowadzić dodatkowy czynnik dający różne hashe dla tego samego hasła.
A dlaczego? Ano dlatego że gdy ktoś się dobierze do bazy, to ma o wiele mniejsze szanse trafienia na dwa takie same hashe dwóch takich samych haseł, z których jedno może znać, jak się może okazać.
Prosta sytuacja - jest sobie zły admin jakiegoś portalu, zauważa że zarejestrował się u niego nielubiany administrator innego, być może konkurencyjnego. Jakimś sposobem dobija się do tamtej bazy, udaje mu się zdobyć hasze, korzysta z prostego faktu, że sporo ludzi stosuje te same hasła na różnych stronach, do tego okazuje się że systemy autoryzacji w obu portalach korzystają z podobnie prymitywnych metod i akurat ma to szczęście że hasło (hash) jest to samo i dostaje się do konsoli administracyjnej lub może się podszyć. Zaznaczam na wszelki wypadek - jest to mało prawdopodobna sytuacja, ale taki wypadek moim zdaniem i tak dobrze jest wykluczyć (jak to B. Schneier napisał, paranoja w kryptografii wskazana).
Idę zmienić hasło u siebie i powiem adminowi, by jeszcze lepiej serwer SQL zabezpieczył.
Kolizja SHA-1 jest znacznie mniej prawdopodobna, niż przy MD5, ale oczywiście możliwa do wykonania w skończonym czasie. Z tego co niedawno czytałem, przy aktualnych metodach ataku kolizyjnego na MD5, wystarczy jakieś 2^33 operacji, przy SHA-1 póki co "aż" 2^69. Mimo że SHA1 jest wiele mocniejszy, w nowych projektach, w których stawia się na bezpieczeństwo, nie zaleca korzystania już z żadnej z tych funkcji. Oczywiście do trzymania hasełek w portaliku nadają się na razie świetnie. Mniejsza atrakcyjność celu, więc mniejsza szansa ataku.
Cytat(My4tic @ 13.09.2006, 21:49:44 )

2. Powiedz mi dlaczego lepiej
"zahaszować md5 przez sha1, nie sha1 md5-tką" 
? Nie ma
żadnej różnicy co zrobisz w pierwszej kolejności.
Swoją drogą haszowanie sha1(md5) może i ma jakąś zalete w porównaniu do md5(sha1) ale coś wątpie żebyś o niej akurat myślał.
Dlaczego wątpisz? Bo zakładasz że skoro jestem nowy na forum, to nie mam o niczym bladego pojęcia? Nie jestem ekspertem od kryptografii, ale MD5 jest algorytmem słabszym, od dłuższego niż SHA1 czasu atakowany, z lepszym skutkiem, więc jeśli komuś się uda zmniejszyć jeszcze jego bezpieczeństwo, szybciej uzyska SHA1. W drugą stronę będzie trudniej, a przynajmniej dłużej. Nie jest to na pewno potężna różnica, ale nie taka, byś się tak o to tak bardzo burzył, jakbym jakiegoś świętokradztwa dokonał. Przyszedł jakiś knypek z paroma postami i śmie nie zgodzić się z "guru" php?
Cytat(My4tic @ 13.09.2006, 21:49:44 )

3. md5(sha1) to jest kombinowanie?

A robienie dodatkowej tabeli w SQL, trzymanie w niej śmieci takich jak data rejestracji, przy każdym logowaniu wczytywanie dwóch warotści, łączenie i haszowanie jest Twoim zdaniem bardziej optymalne?
A dlaczego jakąś dodatkową
tabelę tworzyć? Ja mam w tabeli użytkowników także kolumnę daty rejestracji, widząc po tabelach wielu różnych choćby forów, tak zazwyczaj jest. A przecież nie chodziło mi koniecznie o datę rejestracji, to żeś się przyczepił i tutaj. Wyciągnięcie jednej więcej kolumny z pojedynczego rekordu w bazie i zrobienie concata jest "troszkę" szybsze, niż wykonywanie dwóch funkcji mieszających i fałszywe poczucie większego bezpieczeństwa. Obie metody są w świetle niskiego bezpieczeństwa SHA1 i MD5 i tak mało skuteczne, ale ... przypominam o kwestii wyżej - ten sam hash dwóch takich samych haseł dwóch różnych userów lub tego samego w dwóch różnych bazach. I jeszcze raz zaznaczam - nie uważam że to jest wieelka, absolutna, przełomowa poprawa bezpieczeństwa, ale zapobiega takiej, mimo że mało prawdopodobnej, to jednak możliwej sytuacji. Bo trudniej trafić na ten sam hash dla dwóch tych samych haseł + dodatkowych czynników "dosalających", niż po prostu dwóch tych samych haseł.
Cytat(My4tic @ 13.09.2006, 21:49:44 )

...a co jeśli user zechce zmienić nick? To co? Już nie zaloguje się do serwisu?
A zauważyłeś małe, skromne, delikatne
np. (rozw.
na przykład)? Nie musi to być data rejestracji, nie musi być to login - uczepiłeś się tych dwóch rzeczy, zamiast choćby spróbować zrozumieć, o co mi chodzi. Chodzi mi o dowolny czynnik pozwalający uzyskać
w efekcie dwa różne hashe dla takich samych haseł. [czekam aż ktoś wyrwie moją wypowiedź z kontekstu i zapyta, jak można uzyskać dwa różne hashe dla tego samego ciągu znaków

]
Cytat(My4tic @ 13.09.2006, 21:49:44 )

...ehh wiadomo ze przypomnienie hasła to w gruncie rzeczy wygenerowanie nowego, myślałem, że jest to jasne skoro już z milion razy był wałkowany ten temat ale widać, że milion to za mało i trzeba powtorzyć kazdemu osobno.
Tak, wiadomo że jazda rowerem to w gruncie rzeczy szybkie bieganie. Mi niestety nie "wiadomo", bo dla mnie liczy się precyzja wypowiedzi. A tutaj uczepiłem się po prostu dla żarciku. Jednak przepraszam, skoro jesteś tak śmiertelnie poważny, że nie przeczytałem od czasu mojej rejestracji całego forum od deski do deski! Weź jakiś urlop, albo zanim odpowiadasz na forum policz do 10, weź głęboki oddech. Dopuść możliwość że ktoś oprócz Ciebie może też mieć choć trochę racji.
I pamiętaj, wdech, wydech, wdech, wydech.