![]() |
![]() |
![]()
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%) ![]() ![]() |
@pyro, rzeczy, o których pisałem, tyczą się kodowania pojedynczych znaków globalną solą. Znaczy to, że każda literka 'a' będzie w bazie zapisana za pomocą identycznego hasha. Tak samo wszystkie pozostałe znaki. W ten sposób zamiast jednostronnego hashowania tworzysz sobie słownik:
a => hash1 b => hash2 ... Atak statystyczny co prawda ma zastosowanie do długich tekstów, ale zakładam, że tutaj też dałby radę. Mało tego - możesz na pałę próbować przyporządkować poszczególne litery hashom i sprawdzać, czy uda Ci się zalogować na działającym serwisie. Wcale nie musisz do tego celu używać bruteforce. A jak napisałem wcześniej - jeśli masz konto z 20-znakowym hasłem, to automatycznie znasz 20 znaków ze zdobytego słownika. Ten post edytował sowiq 17.07.2013, 09:57:49 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 09:53 |