Przesunięty przez: lui754 30-04-2009, 14:35 |
Ulepszenie kodowania hasel w bazie danych |
Zgadzasz sie z Przemo? |
Tak |
|
44% |
[ 39 ] |
Nie |
|
55% |
[ 49 ] |
|
Głosowań: 88 |
Wszystkich Głosów: 88 |
|
|
|
Autor |
Wiadomość |
Przemo
Pomógł: 210 razy Posty: 3148
|
Wysłany: 07-01-2006, 19:48 Ulepszenie kodowania hasel w bazie danych
|
|
|
Po bardzo burzliwej dyskusji na GG z Widmo i z FanFataL'em postanowilem napisac ten temat aby zapytac was o zdanie. Oni niestety nie byli w stanie wysunac konkretnego argumentu przeciwko mojemu pomyslowi, choc argumentów mieli kilka i bardzo są temu przeciwni.
Chodzi o kodowanie hasel userow w bazie danych, w tej chwili jest ono kodowane md5('haslo')
Rozkodowanie hasla 4-ro znakowego zajmuje kilka sekund, 5-cio znakowego znacznie dłużej ale też jest do złamania. Zagrożenie pojawia się, gdy baza danych dostanie się w niepowołane ręce, może to nastapić na skutek ataku, lub zwykłej kradzieży tabeli userów przez admina serwera, który ma zamiar np. za tydzień zwolnic się z pracy i postanawia sobie zaszaleć. Na pewno odkoduje kilkaset haseł, z czego wiele będzie takie samo jak np. do e-mail'a lub GG które jest w komórce obok, po wejsciu na skrzynke (gdy user nie kasuje emailow na serwerze) moze znalezc dalsze jego konta do atakowania. Generalnie skutki dla userow moga być fatalne.
Moj pomysl jest taki (i juz to zrobilem w wersji beta8) zeby zapisywac haslo w postaci md5 * 10000
Czas gerowania takiego hasla na celeronie 900 to 0.8 sekundy. Generowanie odbywa sie tylko w przypadku:
- Rejestracji
- Zmiany hasla
- Ręcznego logowania z formularza
Nie jest generowane podczas automatycznego logowania z ciastek gdyz w w nowych wersjach phpBB2 w ciastkach nie ma juz zapisywanego hasla w formie md5() tylko specialny unikalny klucz
Jakie byly argumenty przeciw:
1. Obciazenie serwera
2. Tak się nie robi
3. Wystąpienie kolizji
Ad1. Nie będzie obciążenia, jak pisałem trwa to ułamek sekundy i będzie używane średnio raz na 5 dni na usera
Ad2. A co mnie to obchodzi? Jakby kazdy tak myslal to nikt by nic nowego nie wymyslil
Ad3. No i co z tego??? Niech wystąpi kolizja jaki będzie jej objaw? Żaden.
Chciałbym się dowiedziec co Wy sądzicie na ten temat.
Dodatkowo zastanawiam się aby zamiast md5 użyć sha1 również razy 10000 Tutaj tez były argumenty przeciw lecz w tym przypadku się nie kłucę bo nie znam dobrze zasady działania sha1 |
Ostatnio zmieniony przez Widmo 07-01-2006, 20:10, w całości zmieniany 1 raz |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
nasedo
Pomógł: 318 razy Posty: 1895
|
Wysłany: 07-01-2006, 19:57
|
|
|
Przemo napisał/a: | 1. Obciazenie serwera | ktos ma bardzo popularne forum, powiedzmy 100-200 zalogowanych online, wezmy z tego chocby 10%, ktore moze nie trzymac na kompie ciastek / jest nowe na forum i loguje sie pierwszy raz, czy tez wlasnie tych rejestrujacych sie dopiero. a 0.8s x 10 czy 20 to juz jest roznica.. i tym sposobem wracamy do punktu wyjscia, gdy to zapowiedzi o tym, ze 1.12 przestanie obciazac serwery i bedzie szybsza niz dotychczasowe wersje przestaja byc aktualne.. czyli final na wielkanoc? moim zdaniem juz za duzo tych dodattkowych modow zapychajacych tylko kod, gdzie i tak 50-60% nowosci zostanie wylaczone.. |
_________________ Wejdź na Najlepsze forum wielotematyczne. Skazzza czeka na Ciebie
Pomoc tylko na forum. Nie pisz do mnie na gg/PW/e-mail chyba, że sam Cię o to poproszę. |
|
|
|
|
Paszczak000
Pomógł: 317 razy Posty: 2898
|
Wysłany: 07-01-2006, 19:57
|
|
|
odpada. wtedy łamanie hashy za kasę pójdzie w niepamięć.
a po co razy 1000? nie lepiej zrobić może:
hasło test:
base64: dGVzdA==
i juz base zawiera znaki specjalne, duże małe literki i md5 praktycznie nie do złamania.
a może z md5() przejść na inny szyfr? |
|
|
|
|
przecinek
Pomógł: 272 razy Posty: 890
|
Wysłany: 07-01-2006, 20:01
|
|
|
0,8s, jak sobie wyobrażasz aktualizację istniejących forów mających kilkanaście tysięcy użytkowników? I po co 10000, lepiej liczbę z zakresu 1-10000 zapisaną w config.php i ustalaną przy zakładaniu/aktualizacji — wtedy ktoś, kto dostanie się tylko do bazy, nie będzie jej znał. |
Ostatnio zmieniony przez przecinek 07-01-2006, 20:03, w całości zmieniany 1 raz |
|
|
|
|
MakArios
Pomógł: 105 razy Posty: 817
|
Wysłany: 07-01-2006, 20:02
|
|
|
IMO rozwiązanie Paszczaka byłoby lepsze, ale nie wyznaję się aż tak na zabezpieczeniach . Tak czy inaczej obciążenie faktycznie by wzrosło, szczególnie przez pierwsze kilka dni po aktualizacji do 1.12.0, a więc zgadzam się z przedmówcami, Widmem i FanFatalem. |
|
|
|
|
niczeq
Pomógł: 17 razy Posty: 171
|
Wysłany: 07-01-2006, 20:04
|
|
|
ja bylbym za
bezpieczenstwo userów to podstawa |
_________________ ważny jest skutek, lecz ważniejsza przyczyna...
Potrzebujesz porządnego hostingu??? Skontaktuj się ze mną przez PW |
|
|
|
|
Paszczak000
Pomógł: 317 razy Posty: 2898
|
Wysłany: 07-01-2006, 20:04
|
|
|
Przemo, pamiętaj, że jesteś kompatybilny z phpBB. Jak zrobisz deinstalację do czytsego phpBB? Będziesz zamieniał md5()*1000 na md5()? No chyba, że wywalasz deinstalator.... a update z czystego do Twojej wersji, to o czym pisze przecinek?
BUSTED |
|
|
|
|
Widmo
Pomógł: 180 razy Posty: 2435
|
Wysłany: 07-01-2006, 20:06
|
|
|
Przemo napisał/a: | Rozkodowanie hasla 4-ro znakowego zajmuje kilka sekund, 5-cio znakowego znacznie dłużej ale też jest do złamania |
tak, jezeli dzialasz systemem
wez string, zakoduj kilka razy MD5 jezeli wynik == hashowi -> podaj haslo
ale dla 5,6 znakow nie bedzie juz tak prosto.
juz na wstepie mowie: jestem za zrobieniem podwójnego hashowania md5.
mądry admin ustawi minimalna ilosc znakow w hasle na 6 i bedzie spokoj.
Przemo chce zastosować md5 10 tysiecy razy. Nie ma to najmniejszego sensu...
Uwazam ze uzycie tyle razy md5 mimo wszystko obciazy serwer.
po drugie - po co - efekt bedzie ten sam co przy uzyciu dwóch md5...
Przemo napisał/a: | Na pewno odkoduje kilkaset haseł, z czego wiele będzie takie samo jak np. do e-mail'a lub GG które jest w komórce obok, po wejsciu na skrzynke (gdy user nie kasuje emailow na serwerze) moze znalezc dalsze jego konta do atakowania. generalnie skutki dla userow moga być fatalne. |
po co mialo by mu sie chciec? - nie wazne
dlatego to USER powienien dbac o swoje dobrze dobrane haslo - i jezeli ktos mu sie wlamie to powinien miec pretensje tylko do siebie...
Podsumowywyjąc - dla mnie jest to zbyt innowacyjne (10.000 razy md5)
i poniekad nieprzewidywalne... |
_________________ Potrzebujesz pomocy? |
|
|
|
|
niczeq
Pomógł: 17 razy Posty: 171
|
Wysłany: 07-01-2006, 20:07
|
|
|
Paszczak000 napisał/a: | Przemo, pamiętaj, że jesteś kompatybilny z phpBB. Jak zrobisz deinstalację do czytsego phpBB? Będziesz zamieniał md5()*1000 na md5()? No chyba, że wywalasz deinstalator.... a update z czystego do Twojej wersji, to o czym pisze przecinek?
BUSTED |
kto normalny (nie obrazajac nikogo;-)) bedzie chcial zrezygnowac z wersji by Przemo ? |
_________________ ważny jest skutek, lecz ważniejsza przyczyna...
Potrzebujesz porządnego hostingu??? Skontaktuj się ze mną przez PW |
|
|
|
|
Przemo
Pomógł: 210 razy Posty: 3148
|
Wysłany: 07-01-2006, 20:07
|
|
|
nasedo, odnosnie obciążenia to nawet nie ma o czym mówić, gdzie masz forum gdzie w czasie 5 minut loguje się ręcznie 20 osób? Chyba tylko fora giganty tupu phpbb.com moge zrobić 5000 w razie czego
Paszczak000, wbrew pozorom to nie utrudnia wogóle Zwiększa tylko czas łamania o 100% podobnie jak md5() * 2
przecinek, to tez pozory Po tej zmianie nikt nie odczuje różnicy Podczas logowania jesli haslo usera jest pojedynczym md5() zostanie w bazie zastapione nowym * 10000 Problem jest tylko w przypadku odinstalowywania modyfikacje, wtedy uzytkownicy beda musieli korzystac z generowania nowych hasel, ale mysle, ze nie ma co brac tego za bardzo pod uwage. |
|
|
|
|
Trucker
Posty: 18
|
Wysłany: 07-01-2006, 20:08
|
|
|
ja jestem przeciw; jak ktos ma wolnego kompa to te procesy mogą zająć wieki wieków |
_________________ Wejdź na nowe forum o grze "Hard Truck: 18 Wheels of Steel" |
|
|
|
|
Widmo
Pomógł: 180 razy Posty: 2435
|
Wysłany: 07-01-2006, 20:09
|
|
|
Paszczak000 napisał/a: | hasło test:
base64: dGVzdA==
i juz base zawiera znaki specjalne, duże małe literki i md5 praktycznie nie do złamania. |
sensowne - nawet bardzo! przecinek napisał/a: | 0,8s, jak sobie wyobrażasz aktualizację istniejących forów mających kilkanaście tysięcy użytkowników? I po co 10000, lepiej liczbę z zakresu 1-10000 zapisaną w config.php i ustalaną przy zakładaniu/aktualizacji — wtedy ktoś, kto dostanie się tylko do bazy, nie będzie jej znał. |
utworzysz configa od nowa i co - nie bedziesz pamietal ej liczby i cale logowanie idzie sie kochać...
[ Dodano: 07-01-2006, 20:11 ]
dodalem ankiete... |
_________________ Potrzebujesz pomocy? |
|
|
|
|
Przemo
Pomógł: 210 razy Posty: 3148
|
Wysłany: 07-01-2006, 20:11
|
|
|
Widmo napisał/a: | ale dla 5,6 znakow nie bedzie juz tak prosto. | Czas łamania hasła jest dokładnie tyle razy większy ile razy powtórzyłeś md5() Ty chcesz zastosowac tylko dwa razy aby zwiększyć trudnośc łamania haseł 5-6 znaków a ja chce zastosować 10000 razy aby uniemożliwić całkowicie łamanie haseł 4 i więcej znaków |
|
|
|
|
nasedo
Pomógł: 318 razy Posty: 1895
|
Wysłany: 07-01-2006, 20:12
|
|
|
Przemo napisał/a: | nasedo, odnosnie obciążenia to nawet nie ma o czym mówić, gdzie masz forum gdzie w czasie 5 minut loguje się ręcznie 20 osób? Chyba tylko fora giganty tupu phpbb.com moge zrobić 5000 w razie czego | no wlasnie te giganty np, czy warezy (chociaz zadko kiedy stoja na phpbb, i jesli ma mi sie strona 20s generowac to im sie nie dziwie ) chocby byl to 1% wszystkich uzytkownikow, to chcesz ich sobie odpuscic, niech wracaja na zwykle phpbb? Trucker napisał/a: | ja jestem przeciw; jak ktos ma wolnego kompa to te procesy mogą zająć wieki wieków | omg.. chodzi o serwer, nie o Twojego kompa.. |
_________________ Wejdź na Najlepsze forum wielotematyczne. Skazzza czeka na Ciebie
Pomoc tylko na forum. Nie pisz do mnie na gg/PW/e-mail chyba, że sam Cię o to poproszę. |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
Paszczak000
Pomógł: 317 razy Posty: 2898
|
Wysłany: 07-01-2006, 20:13
|
|
|
Przemo, nie utrudnia? nie rozumiem. skoro phpBB hashuje raz... a Ty przykładowo 1000 razy.. to odinstalowując modyfikację musisz hasło (które jest zahashowane 1000 razy) podać w formie zahashowanej 1 raz. Ja nie umiem rozhashować 999 razy ciągu znaków długości 32 |
|
|
|
|
|