Archiwum działu Ogólne (posty do 12.2007) - Ulepszenie kodowania hasel w bazie danych
50k07 - 07-01-2006, 23:39
Wielokrotne hashowanie MD5 powoduje niekompatybilność z czystym PHPbb. Jak zamierzasz odhashować podwójnie zahashowane hasło? Chyba, że masz tabelki dla 32 znaków (o ile w tym przedziale same MD5 ze względu na wspomniany już wyżej błąd o którym nie wiedziałem się nie powtórzą, bo wtedy już tylko kryptoanalitycznie się to da zrobic w stylu "czy to przypomina hasło" ale to dopiero po podwójnym dehashu i analizie + kilka tera na tabelki )
Idea jest niezła, jednak moim zdaniem implementacja.... hmm no nie o to właśnie w tym chodzi
Powtarzam. Idea jest niezła
azwel - 07-01-2006, 23:47
Ja mam taki dziwny pomysł. Podczas instalacji byłby generowany losowy ciąg 32 znaków zwłaszcza różnych ~%^&$*; (czyli takich które nie występują zbyt często w tabelkach) i obliczany hash md5 dla tego ciągu, który byłby zapisany np. w config.php. Następnie hasła userów byłby zapisywane na zasadzie: gdzie $chars to hash tego losowego ciągu. Myślę, że rozwiązanie w miarę bezpieczne, ale gorzej z rozkodowaniem i kompatybilnością.
Paszczak000 - 07-01-2006, 23:53
IMHO dalej jestem za swoim. User ma mieć bezpeiczne hasło. Patrick ma rację. To forum a nie bank. Dręczą nas o to, że skrypt nieoptymalny. Te 0.8 ms to IMHO dużo :]
przecinek - 07-01-2006, 23:54
Przeważnie jak ktoś się dostaje do bazy danych, to może się też dostać do config.php.
Paszczak000 - 07-01-2006, 23:58
przecinek, bywa różnie SQL injection łatwiejsze jest niż włażenie na FTPa...ale jak masz hasło
PHOENIX - 08-01-2006, 00:01
Jak dla mnie to wogóle nie ma sensu, co z tego, że będzie kilka razy hashowane ? Jedynie to że hasła nie złamiesz..a reszta? Tzn kompatybilność itp. Jak już ma być kilka razy, to góra 2-3 nie więcej, to i tak nic nie da, złamanie kilka razy 32-u znakowego ciągu jest praktycznie nie do zrobienia ...
Ja jestem na NIE
knebel - 08-01-2006, 00:11
Witam,
Przeczytałem cały topic i doszedłem do kilku konkluzji Nie znam sie na pisaniu w php tak jak wy, ale może będe pomocny
1. Próby zastosowania bezpieczniejszego algorytmu szyfrowania jest chwalebny lecz jak sama logika mówi:
jeśli dało się coś zakodować (jaki by ten kod nie był) to da sie to odwrócić (jaki sposób by to nie był) - cel znany, technika dowolna. Nawet jeśli Przemo zastosuje pętle razy 10000 to wydłuży czas łamania do tych 27 godzin. Ale nastepne pytanie - Co z tego..? Jeśli sie ktoś uprze to i tak spedzi tyle czasu ile będzie potrzebna aby złamać hasło. Może po długim czasie - ale złamie. Wymyślony algorytm i tak pozostanie możliwym do złamania. Moim zdaniem szkoda pracy i czasu na to.
2. Nie bierzecie pod uwagę sposobu w jaki zareagują i administratorzy hostingów. Świadomość tego że Przemo najbardziej obciąza serwa z wszystkich for może oznaczać jednoznaczną decyzje . Dla admina nie wazne jest to co trzyma użytkownik na swoim kompie. Ważne jest to jak bardzo obciąża serwer
3. Najprostrzym w/g mnie sposobem jest jednak wymuszenie u uzytkowników for by przemo zmiany haseł na 6 lub więcej znakowe. Argument, że userzy się zniechęcą powinien działac jeszce na korzyść ponieważ uwolni to was i innych administratorów od użytkowników którzy zalogowali się na forum i tylko zaśmiecają bazę. Jeśli komus zależy na uczestniczeniu w życiu forum. Zmieni hasło nawet na 10 znakowe jeśli będzie trzeba.
4. Kiedyś nauczyli mnie przestrzegania jednej dobrej zasady w świecie komputerów - NIE NAPRAWIAJ CZEGOS CO JUŻ DZIAŁA . Po co spędzać czas nad wymyślaniem jakihś trudnych, skomplikowanych i dziwnych algorytmów, skoro kilkoma kliknięciami ( owe wymuszenie na wydłużenie hasła) myszką można załatwić ten problem uzyskując ten sam efekt ? Uważam, że jeśli wy sami odgórnie wymusicie uzywanie dłuższych haseł w forach - przyczynicie się do tego aby poprawić bezpieczeństwo for. Naprawdę nie stracicie userów. Bardziej obawiałbym sie owego nowego algorytmu i błędów jakie może on generować. Statystycznego usera bardziej wkurza cos co nie działa niż 2 sekundy dłużej na wpisywanie hasła
Jestem za wymuszeniem ( w samym kodzie forum ) zmiany hasła do min 6 znaków. To rozsądne i najprostsze rozwiązanie.
ps. Ja miałem włam na inny serwis oparty na kodowaniu w MD5 i wierzcie mi że jestem w stanie używać nawet haseł 20 znakowych. Bezpieczeństwo nie ma ceny. Docieniają to tylko ci którzy ucierpią. Wymuście dłuższe hasła - a ludzie będą wam wdzięczni nawet nie wiedząc o tym
vegetagt - 08-01-2006, 00:26
Paszczak000 napisał/a: | słowniki? nie ma takich |
polak potrafi
knebel napisał/a: | Jestem za wymuszeniem ( w samym kodzie forum ) zmiany hasła do min 6 znaków. To rozsądne i najprostsze rozwiązanie. |
moze 8 znaków admin, 6 mod/user ? Choć konto jednego użytkownika nawet jak wpadnie w niepowołane ręce to raczej nic nie zrobi
PHOENIX - 08-01-2006, 00:33
Wymuszenie to chyba najlepsze, i minimum 8 znaków i już po problemie, ew 10 znaków dla tych co chcą bardzo bezpiecznie mieć, więcej tutaj już nie potrzeba.
50k07 - 08-01-2006, 01:15
azwel, implementujesz mój pomysł, dokładnie ten z początku, tylko że zamiast hasła wymyślonego masz losowe i dalej lecisz nieodwracalną funkcją, bo jasne jest, że o ile MD5 może rozróżnić napisy 32 znakowe, o tyle już więcej znakowych nie rozróżni na 100% (matma )
Paszcza, wiem, że Was dręczą, ale toteż piszę, żeby stworzyć coś z głową i zaznaczam, że nie będzie to łatwe Musi być za to 1.kompatybilne(odwracalne) 2.szybkie 3.bezpieczne
Kilkukrotne hashowanie z całym szacunkiem, ale również uważam za pomysł do odrzucenia z dokładnie tych samych powodów 1.kompatybilność 2.czas 3.bezpieczeństwo // (ich brak)
Knebel, nie jestes sam Ja też nie pisze w PHP, ale za to kodowanie... mmm ... sama przyjemność
Co do Twojej wypowiedzi:
Ad1. Bezpieczeństwo różnych kodowań jest identyczne tylko jeśli bierzemy pod uwagę bruteforce. Wtedy liczy się jedynie ilość znaków hasła. Każdy inny przypadek posiada swoją "moc" kodowania, która zwiększa się wraz ze wzrostem komplikacji zadania. Bezpieczeństwo MD5(MD5(...MD5('passwd')..)) jest takie samo jak MD5('passwd'), ponieważ wystarczy zmienić słownik. Jednym słowem - atakujący kiedy tylko wie jakim "językiem" kodujemy, może dopasować sobie do kodowania swój słownik. Co innego kiedy nie wie. Wtedy mówimy o opcji w której samemu trzeba napisać "język kodowania"=funkcję o której cięgle mówię.
Ad2. Postulat o czasie (sprawności funkcji)
Ad3. Jasne, jednak badania wykazują, że użytkownicy są i tak już dość zawaleni hasłami które muszą pamiętać. Trzeba uzmysłowić sobie, że człowiek kożystający z forum nie musi mieć głowy do tony haseł 1)bank 2)poczta 3)forum 4)... 1000)... Ograniczenie wymusi na części wymyślenie nowego hasła, które będą często zapominać, co związane będzie z późniejszym bałaganem Jest to pozatym wyjście wg. mnie realne dopiero jeśli hasła miałyby mieć >10 znaków i składałyby się z conajmniej jednego specjalnego jednej cyfry i jednej litery. W innym przypadku i tak należy kodować hasła ponownie, bo MD5 jest za słaby do bronienia przed włamaniami dla haseł <10 znaków.
Ad4. Chcesz znać swoje hasło ? Uważasz że to "działa" ? OK ... Ja uważam inaczej PS. sam mam chyba z 15 znakowe, ale i tak czuje się niebezpiecznie więc sam widzisz... nie takie to wszystko kolorowe. Raczej bardziej przezroczyste
Ja jestem za sztucznym wymuszeniem długiego hasła ale tego administracyjnego, które dopiero jest kluczem do funkcji która hashuje wszystkie inne hasła. W przeciwnym wypadku całe kodowanie i tak weźmie w łeb i na nic sie tak napisałem I kontynuując - nie uważam za dobry pomysł wymuszania czegokolwiek innego, szczególnie na użytkownikach forów (wygoda musi być, chyba że robicie Fiata nie Ferrari ).
vegetagt. Hasła <8 znaków wszystkie z całego forum 1000 osobowego lecą dokładnie przez 1000x15 minut łącznie z adminem, czyli niecałe 10,5 dnia 1000 OSÓB. Ile to możliwości? Ile dalszych włamów bo hasło było to samo? Pomyślcie. Ja na forach akurat mam inne bo wiem, co jest grane Wystrzegam się MD5 jak ognia. Ludzie wygrywają sprawy w sądzie, gdzie dowodem na autentyczność czegoś było zdjęcie z sumą MD5. Okazuje się, że takie poświadczenie nawet w świetle prawa nic nie znaczy...
Paszczak000 - 08-01-2006, 08:04
knebel napisał/a: | Jestem za wymuszeniem ( w samym kodzie forum ) zmiany hasła do min 6 znaków. To rozsądne i najprostsze rozwiązanie. |
I ja o tym piszę. Poza tym jak już na GG pisałem przemowi jeżeli user ma proste hasło (4 znaki zakres a-z) to cracker wykradnie mu hasło z innego serwisu, złamie i włamie się na zabezpieczony skrypt. A jeżeli nauczysz użyszkodnika posiadać trudne hasła to zacznie on myśleć i zwiększy się jego bezpieczeństwo.
knebel napisał/a: | Ważne jest to jak bardzo obciąża serwer |
Wersja 1.12.0 jest znacznie szybsza, ale ten pomysł z hasłem..... Ciekawe jakie obciążenie by generowało http://forum.techtronic.pl? Dobrze nam znane duże forum....
knebel napisał/a: | Statystycznego usera bardziej wkurza cos co nie działa niż 2 sekundy dłużej na wpisywanie hasła |
I to jest prawdą. Doklejenie kodu ze stat.pl czy czasem onmouseover lub innych dodatków co zwalnia stronę bardziej wkurza niż trudne hasło....
50k07 - 08-01-2006, 08:14
Uważam że należy łączyć profilaktykę i poszukiwania funkcji, ale nie będę się wam wtrącał Tylko teraz jako śmiertelny user poprosze, żeby było bezpiecznie
Paszczak000 - 08-01-2006, 08:18
Bezpiecznie jest tak długo póki user ba bezpieczne hasło. Co da trudny algorytm jak dane wejściowe są lipne? Nic.... no może nieznacznie opóźni czas łamania.
Zresztą zamiast bawić się w hasła lepiej by zająć się modem rewrite i dodać go do standardu. Mykam
50k07 - 08-01-2006, 08:28
Ano dużo da, bo właśnie po to się lipne dane wejściowe koduje, żeby otrzymać postać "mniej lipną". Czysta matma --> jesliby działało to tak jak mówisz, to czemu wogóle cokolwiek kodujemy? Przecież jest to "prawie równie niebezpieczne jak jawne chary"
Swoją drogą jak tak pomyślałem o tym tectronicu, to sie zastanawiam, jak namówisz... ilu oni tam mają userów? ...do zmiany hasła Jeśli to wymusisz to zagrasz im na nerwach. Jak ich poprosisz - oleją Cie Widzisz, budując coś, czyt. niniejszy skrypt modyfikacji, uważam, że dla osób które będą z niego kożystały, należy być supervisorem i dbać o te osoby, nie tylko wychodzić z założenia, że jak działa to dalej.
Powiedzmy sobie wprost. MD5 do 10 znaków NIE DZIAŁA i dla mnie trudniej byłoby rozszyfrować hebrajski, niż to MD5 bo tłumacza szukałbym >15 minut.
...to tyle?
irekk - 08-01-2006, 08:44
to moze zrobic to w ten sposob:
przy instalacji forum generowany jest unikalny klucz forum ktory zapisywany jest do config_table, pozniej podczas rejestracji uzyszkodnia ow klucz jest dopisywany do hasla, wowczas niech taki klucz ma 32 znaki + 4 znaki hasla uzyszkodnika i mamy 36 znakow z czego robiony jest hash
wiem wiem glupi pomysl
|
|
|