Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 4 Dołączył: 18.01.2012 Ostrzeżenie: (0%)
|
Cześć.
Pewnie większość z Was kojarzy metody logowania na stronach banków. Jest to wykonane w ten sposób, że musimy podać tylko kilka znaków naszego hasła (reszta jest zablokowana, tak jakby już były wpisane). Zastanawiam się w jaki sposób to działa. Zakładam, że hasła są hashowane, więc w jaki sposób porónywane są ciągi, skoro są niekompletne. Nie jest chyba możliwe, że system wie jakie znaki hasła mamy pod daną cyferką (widoczne na obrazku) i uzupełnia ciąg do porównania z hashem. Do tego "szare" pola są generowane losowo. Interesuje mnie zasada działania, nie proszę o żaden gotowy kod etc. Pozdrawiam. (IMG:style_emoticons/default/smile.gif) Wspomniany obrazek: (IMG:http://i.imgur.com/Dbb16Z6.png) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Koledzy, wtrącę się i ja, bo kiedyś myślałem o takim rozwiązaniu. Wybaczcie, ale trochę kupy nie trzyma się Wasze rozumowanie. Najpierw napiszę dlaczego, a później opiszę moje rozumowanie.
1. Hashowanie pojedynczych znaków 1.a. Wspólna sól trzymana w kodzie. Przypadek trywialny, bo sami sobie robimy szyfr słownikowy. Każdemu znakowi będzie w bazie odpowiadał jeden, taki sam ciąg. Mało tego - po znalezieniu soli dla jednego znaku znamy ją globalnie. Czas złamania - kilka minut na znak w zależności od długości soli. Ewentualnie można polecieć algorytmem statystycznym, jak to robili już w czasie II wojny światowej (IMG:style_emoticons/default/wink.gif) 1.b. Każdy znak solony inną solą. W tym przypadku nie ma innej opcji jak trzymanie każdej soli w bazie. Przypadek jeszcze łatwiejszy niż poprzedni, bo niewiadomą jest już tylko szukany znak. Ile milisekund potrzebowałby w miarę szybki komputer na wygenerowanie n hashy (n - liczba dostępnych znaków)? 1.c. Sól generowana dynamicznie w kodzie dla każdego usera. Rozwiązanie najlepsze z tych 3. Ale domyślam się, że po złamaniu pierwszych 1000 haseł bez większego problemu można znaleźć klucz, który określa w jaki sposób generowana jest ta sól. Bo oczywiście nie może to być losowanie, bo za każdym razem dla danego usera musi być wygenerowana ta sama sól. 2. Moje rozumowanie 2.a Generowanie n kombinacji Jak dla mnie najbezpieczniejszym rozwiązaniem byłoby wygenerowanie n kombinacji dla danego hasła. Załóżmy dla uproszczenia, że hasło składa się z 5 znaków, a user musi wpisać co najmniej 3. Daje to 26 kombinacji (poprawcie mnie jeśli się mylę). Zapisujemy każdą z nich w bazie jako posolony hash. Przy każdym rekordzie zapisujemy które znaki są w nim zawarte i zapisujemy też sól. Przed logowaniem system wybiera z bazy opcję hasła (które znaki trzeba wpisać), a później hashuje hasło i porównuje z informacją w bazie, podobnie jak przy "normalnym" logowaniu. Wady: - przy dłuższych hasłach hashy będzie dosyć sporo - przy algorytmach lepszych niż md5/sha1, czas generowania kombinacji może być dosyć długi (kilka/naście sekund?) - trochę skomplikowana implementacja generowania kombinacji Zalety: - kombinacje generowane tylko podczas zakładania konta i zmiany hasła - IMO całkiem bezpieczne rozwiązanie Ten post edytował sowiq 17.07.2013, 08:29:24 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
Koledzy, wtrącę się i ja, bo kiedyś myślałem o takim rozwiązaniu. Wybaczcie, ale trochę kupy nie trzyma się Wasze rozumowanie. Najpierw napiszę dlaczego, a później opiszę moje rozumowanie. 1. Hashowanie pojedynczych znaków 1.a. Wspólna sól trzymana w kodzie. Przypadek trywialny, bo sami robimy szyfr słownikowy. Każdemu znakowi będzie w bazie odpowiadał jeden, taki sam ciąg. Czas złamania - kilka minut na znak w zależności od długości soli. Ewentualnie można polecieć algorytmem statystycznym, jak to robili już w czasie II wojny światowej (IMG:style_emoticons/default/wink.gif) To jest mój hash: e152c000118ddbc4b372c6e1d8289696662de535993269e715348f02f9b4f238 Powiem Ci w jak on jest zaszyfrowany: SHA256 Ba... powiem Ci nawet z której strony jest literka: na początku. Mega Ba!... powiem Ci nawet ile znaków ma sól: 76 Jeżeli uda Ci się to złamać kiedykolwiek, to obiecuję Ci, że uczynię nas obu bogatymi. A jeżeli tak jak to mówisz dla Ciebie kwestia kilka minut to ohohho! Czas start! |
|
|
|
NetBeans Kilka znaków zamiast całego hasła - jak to działa? 13.07.2013, 11:18:13
b4rt3kk Rzeczywiście, hasło na pewno nie jest przechowywan... 13.07.2013, 11:42:58
NetBeans Tak, ale hashe dla każdego znaku z tablicy ASCII (... 13.07.2013, 11:56:41 
b4rt3kk Cytat(NetBeans @ 13.07.2013, 12:56:41... 13.07.2013, 13:16:55
pyro Hasło: przykładowo X znaków
czyli X wpisów do tab... 13.07.2013, 12:09:41
adamantd Ciekawe
A może tak.
1. rejestrujesz się do system... 13.07.2013, 12:12:40
NetBeans Faktycznie, jedynie soląc hashe znaków byłoby to w... 13.07.2013, 14:36:35
gitbejbe tak jak piszecie powyżej.
Systemy bankowe mają t... 14.07.2013, 10:45:00
pyro Warto dodać, że sól powinna być wyłącznie zahardco... 16.07.2013, 10:15:14 
drPayton Cytat(pyro @ 16.07.2013, 11:15:14 ) W... 16.07.2013, 20:55:04 
pyro Cytat(drPayton @ 16.07.2013, 21:55:04... 17.07.2013, 07:12:25 
drPayton Cytat(pyro @ 17.07.2013, 08:12:25 ) N... 17.07.2013, 09:19:18
Sephirus Włączę się bo widzę pewną potencjalną lukę. Przy t... 17.07.2013, 07:38:40
pyro Cześć.
Mając trochę doświadczenie w temacie racze... 17.07.2013, 08:09:00
b4rt3kk Jakby solą był np. login użytkownika (lub kilka zn... 17.07.2013, 08:14:24
Sephirus @pyro
Wyobraź sobie, że wyobrażam (zauważ, że mó... 17.07.2013, 08:16:25
pyro @Sephirus, według Twojego toku myślenia jak włamyw... 17.07.2013, 08:22:14 

sowiq Cytat(pyro @ 17.07.2013, 09:31:43 ) C... 17.07.2013, 08:33:35 
gitbejbe @sowiq
tak przeczytałem, Twój post również. Stwie... 18.07.2013, 06:33:51 
sowiq @gitbejbe,
Na początku zaznaczę dla pewności, że p... 18.07.2013, 08:23:16
Sephirus @pyro - nie mam zamiaru się z Tobą kłócić o to czy... 17.07.2013, 08:32:50
pyro @Sephirus, chyba należy doprecyzować o jakim przyp... 17.07.2013, 08:41:13
Sephirus @up
Masz rację, że mając taki dostęp można zrobić... 17.07.2013, 08:48:55
sowiq @pyro, rzeczy, o których pisałem, tyczą się kodowa... 17.07.2013, 08:50:37
buliq Algorytm może tworzyć zasolony (każdy znak, inna s... 17.07.2013, 08:59:25 
sowiq Ucinanie hasha to osłabianie szyfrowania - większa... 17.07.2013, 09:07:36 
buliq Cytat(sowiq @ 17.07.2013, 10:07:36 ) ... 17.07.2013, 09:41:55
pyro Cytat(sowiq @ 17.07.2013, 09:50:37 ) ... 17.07.2013, 09:43:09 
sowiq Cytat(pyro @ 17.07.2013, 10:43:09 ) C... 17.07.2013, 09:52:25 

pyro Przecież mówimy dokładnie o tym samym.
Cytat(sow... 17.07.2013, 09:55:42 
drPayton Cytat(pyro @ 17.07.2013, 10:43:09 ) (... 17.07.2013, 21:21:55
redeemer Pozwólcie, że wtrącę moje trzy grosze na temat ... 17.07.2013, 09:56:42 
pyro Cytat(redeemer @ 17.07.2013, 10:56:42... 17.07.2013, 10:00:15
redeemer @pyro: chodziło mi o to, że ktoś wcześniej napisał... 17.07.2013, 10:15:09
pyro Sorry miałem na myśli "przed i po", ale ... 17.07.2013, 10:18:27
gitbejbe nie wiem nad czym się tutaj rozczulać. Dobrze prze... 17.07.2013, 11:46:04
sowiq @gitbejbe, przeczytałeś wątek? Tu nie chodzi o tak... 17.07.2013, 12:23:38
NetBeans Nie piszę ani systemu bankowego, ani nie mam zamia... 18.07.2013, 08:49:10
redeemer @pyro: Podałem tylko przykład, że pobrana sól z ba... 18.07.2013, 09:58:43
gitbejbe CytatBardzo chętnie dowiem się dlaczego
nadal nie... 18.07.2013, 11:04:09
sowiq Cofnij się o jeden post i zerknij w linka, którego... 18.07.2013, 11:40:34
Crozin @NetBeans: Przede wszystkim nie powinieneś w ogóle... 18.07.2013, 12:23:31 
phpion Cytat(Crozin @ 18.07.2013, 13:23:31 )... 18.07.2013, 12:28:43
Crozin CytatW przypadku zainstalowania jakiegoś keylogger... 18.07.2013, 12:42:56
Damonsson A co z czymś takim:
Hasło: alamakota
Hash hasła... 18.07.2013, 12:48:35 
redeemer Cytat(Damonsson @ 18.07.2013, 13:48:3... 18.07.2013, 12:52:09
nospor CytatSkrypt PHP, przekazujący litery z pozycjami, ... 18.07.2013, 12:51:43
freemp3 Cytat(Crozin @ 18.07.2013, 13:42:56 )... 18.07.2013, 12:56:32
phpion @Damonsson:
Pomysł moim zdaniem chybiony właśnie z... 18.07.2013, 12:57:33
Damonsson Przy 0 znakach ok, szukałby w nieskończoność pewni... 18.07.2013, 13:00:54 
redeemer Cytat(Damonsson @ 18.07.2013, 14:00:5... 18.07.2013, 13:15:16
nospor @Damonsson ale zrozum, ze Twoim sposobem Ty napraw... 18.07.2013, 13:03:10
NetBeans Również zastanawiałem się nad bezpieczeństwem taki... 18.07.2013, 13:10:48
Damonsson No to mój pomysł można włożyć między książki fanta... 18.07.2013, 13:27:20
Crozin CytatPrzy okazji, algorytmy dostarczane przez funk... 18.07.2013, 13:30:09
freemp3 CytatNie chce mi się wierzyć, że banki trzymają ha... 18.07.2013, 13:54:33
NetBeans No dobra, przekonaliście mnie, ale co z tą solą, o... 18.07.2013, 14:03:01 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 15:43 |