 |
Ten wątek jest przedawniony Działy Forum » Nauka
| Napisano | Autor | Tytuł | | 06-12-2021 14:45 | romaro (25211 punktów) | Rainbow Tables
2 na 2 | Hashing jest funkcją stosowaną do ciągu znaków lub bitów w celu uzyskania wartości hash (sekwencji bitów). Wartość hash jest cyfrowym odciskiem palca wiadomości; jest również nazywana skrótem wiadomości lub sumą kontrolną. Funkcja haszująca zapewnia wyjście o stałej długości: bez względu na to, jak długa wiadomość jest do niej wysyłana, funkcja haszująca zawsze wytwarza wartość haszującą zawierającą tę samą liczbę bitów. Hashing jest używany do określenia, czy wiadomość została zmieniona podczas transmisji. Jeśli wartość hash otrzymanej wiadomości różni się od tej, która została utworzona przed wysłaniem wiadomości, oznacza to, że wiadomość została zmieniona. Funkcje te służą również np. jako sumy kontrolne dla całych programów: algorytmy generują wartość hash z całego kodu źródłowego. Gwarantuje to na przykład, że wersja programu pobrana z Internetu jest identyczna z oryginałem i nie została zastąpiona przez złośliwe oprogramowanie. Ważne jest, aby zauważyć, że haszowanie różni się od szyfrowania. Hashing jest jednokierunkową (nieodwracalną) operacją, która jest używana do przekształcenia wiadomości w wartość hash (ciąg bitów). Porównując wartość hash przed i po transmisji, można sprawdzić, czy wiadomość została zmieniona podczas transmisji. Niemożliwe jest odtworzenie wiadomości na podstawie jej wartości hash, ponieważ informacja zostaje utracona. Kryptograficzne haszowanie jest używane przez systemy komputerowe do sprawdzania poprawności hasła bez przechowywania jego kopii. Nierozsądne byłoby przechowywanie w systemie komputerowym kopii haseł użytkowników, ponieważ hasła te mogłyby zostać skradzione przez pracowników obsługi technicznej systemu lub hakerów. Zamiast przechowywać hasła, systemy komputerowe haszują hasła natychmiast po ich utworzeniu i zachowują tylko ich wartość haszującą. Podczas sprawdzania poprawności hasła, system haszuje hasło podane przez użytkownika i porównuje otrzymaną wartość haszu z wartością haszu zapisaną podczas tworzenia hasła. Ponieważ kryptograficzne funkcje haszujące są funkcjami jednokierunkowymi, intruz mający dostęp do tablicy wartości haszujących hasła nie będzie w stanie wykorzystać tych informacji do obliczania haseł. Więc jeżeli nawet znamy funkcję kryptograficzną, nie możemy określić hasła bezpośrednio na podstawie wartości hash. Nie ma możliwości ponownego przeliczenia operacji. Zamiast tego hakerzy stosują np. ataki brute force: program komputerowy, który nieustannie próbuje, aż znajdzie prawidłowy ciąg znaków. Metoda ta może być również połączona ze słownikami haseł. Pliki te, które można uzyskać za pośrednictwem Internetu, zawierają wiele haseł, które są bardzo popularne lub które zostały przechwycone w poprzednim ataku na system. Oszczędza to hakerom czasu podczas odszyfrowywania haseł: wcześniej próbowali oni wszystkich haseł ze słownika. W zależności od stopnia złożoności haseł (długość i rodzaj użytych znaków) może to jednak kosztować czas i moc obliczeniową. Dlatego opracowano Rainbow Tables - Tęczowe tablice. Rainbow Tables jest potężnym narzędziem do łamania haseł. W niektórych okolicznościach, tablice tęczowe mogą ujawnić hasła w ciągu kilku sekund.
funkcja haszująca - funkcja przyporządkowująca dowolnie dużej liczbie krótką wartość o stałym rozmiarze, tzw. skrót nieodwracalny. Hash to wynik działania funkcji skrótu
Tęczowe tablice to coś więcej niż słowniki haseł: można je znaleźć w Internecie i wykorzystać do łamania haseł. Pliki te, z których niektóre mogą mieć rozmiar setek gigabajtów, zawierają hasła i ich wartości hash w zależności od użytego algorytmu szyfrowania. Ale nie całkowicie: zamiast tego tworzone są pewne ciągi, z których można łatwo obliczyć rzeczywiste wartości, zmniejszając w ten sposób zapotrzebowanie na pamięć wciąż bardzo dużych tabel. Tablice tęczowe mogą być zatem użyte do przypisania wartości hash znalezionych w bazie danych do ich haseł jawnych.
Wartości hashujące zawarte w tablicach tęczowych nie są tworzone podczas ataku, lecz z wyprzedzeniem. Hakerzy mogą uzyskać tablice tęczowe i wykorzystać je do wyszukiwania haseł. Pliki te są jednak bardzo duże. Rainbow Tables używa zatem funkcji redukcji, aby zyskać konieczną przestrzeni dyskową: funkcje te konwertują wartość hash na zwykły tekst. Funkcja reduce nie anuluje wartości hash, więc nie wyświetla oryginalnego (czystego) tekstu (np. hasła), nie jest to możliwe, zamiast tego wyświetla nowy tekst. Na podstawie tego tekstu generowana jest nowa wartość hash. W tablicy tęczowej nie dzieje się to raz, ale kilka razy, tak że powstaje ciąg znaków. W końcowej tabeli pojawia się jednak tylko pierwsze hasło i ostatnia wartość hash z ciągu znaków. Na podstawie tych informacji i przy uwzględnieniu zastosowanych funkcji redukcji można również określić wszystkie pozostałe wartości. Wartość haszująca, która ma zostać złamana, jest wielokrotnie redukowana i haszowana według tych samych reguł, przy czym każdy pośredni wynik jest porównywany z wartościami w tabeli. Wyzwaniem w procesie tworzenia tablicy jest to, że zawartość źródłowa, która reprezentuje początek nowego łańcucha, nie może już występować jako zwykły tekst w poprzednim łańcuchu. Dzięki tej technologii rozmiar tych tabel może być niezwykle mały, a mimo to nadal mają one rozmiar kilkuset gigabajtów. Kompromis czas-pamięć jest wtedy, gdy akceptujemy dłuższy czas na korzyść mniejszego zużycia pamięci lub odwrotnie. Atak typu brute force zajmuje bardzo mało miejsca w pamięci, ponieważ obliczenia kryptograficzne są wykonywane ponownie przy każdym ataku. Z drugiej strony, tabela, w której miliardy haseł są reprezentowane z ich wartościami hash, zajmuje ogromną ilość miejsca, ale może odszyfrować je bardzo szybko. Rainbow Tables są kompromisem pomiędzy tymi dwoma rozwiązaniami: zasada ta również wykonuje obliczenia w czasie rzeczywistym, ale w mniejszym zakresie, co pozwala zaoszczędzić dużo miejsca na dysku w porównaniu do pełnych tabel.
| Autor wątku ma uprawnienia do usuwania wypowiedzi, jeżeli łamią regulamin Forum lub znacznie odbiegają od tematu.
| DyktaFon (9281 punktów) | Piękna teoria, choć trochę długa  A teraz proszę o konkretny przykład, z życia wzięty... żebym zrozumiał, po co tak się męczyć z tymi cyferkami  Najlepiej, aby ten przykład był do wykorzystania przeze mnie zaraz. Bo tylko samodzielne działanie pozostaje w pamięci na dłużej. Samą teorię zapomnę po zamknięciu komputera
|
|
 | 1 na 1 | romaro (25211 punktów) | > Piękna teoria, choć trochę długa A teraz proszę o konkretny przykład, z życia wzięty... żebym zrozumiał, po co tak się męczyć z tymi cyferkami Najlepiej, aby ten przykład był do wykorzystania przeze mnie zaraz. Bo tylko samodzielne działanie pozostaje w pamięci na dłużej. Samą teorię zapomnę po zamknięciu komputera  Najlepszym sposobem na zrozumienie tęczowych stołów jest przykład, ale nie używając żadnych ze znanych funkcji skrótu do zabezpieczania haseł, ponieważ są one zbyt skomplikowane dla prostych przykładów. Można użyć prostszej funkcji, która jest metodą multiplikatywną, ale ręczę, że nie będzie prostsza by zrozumieć. h(k) = [m * (k A mod 1)J. Wprowadzone hasło to k((ANSI). Tak więc m reprezentuje dowolny mnożnik (2000 w tym przykładzie). W przypadku A zwykle stosuje się złoty podział (0,618). Modulo (mod) wyodrębnia resztę podziału wykonywanego w tej funkcji przez 1. Nawiasy Gaussa zaokrąglają wynik do liczby całkowitej na końcu, jeśli to konieczne. Wreszcie wynik h(k) jest wartością skrótu. Jako możliwe hasła bierzemy zestaw znaków z tylko liczbami dwóch jednostek, a więc 00-99, co utrzymuje tablicę w możliwym do zarządzania zakresie, a litery i tak powinny być przenoszone do wartości liczbowych. Hasło 78 jest zatem również możliwe: h(k) = |2000 + (78 + 0,618 mod 1)| = [2000 + (48,204 mod 1)| = [2000 + 0,204] = [408]. Ponieważ nasza wartość skrótu składa się z czterech cyfr, zaczynamy od 0: 0408. Hasło Wartość skrótu nikt--nikt 01----1236 02----0472 03----1708 ...---... 78----0408...----... 99----0364 W tęczowej tabeli dla tej funkcji skrótu funkcje redukcji powinny teraz działać. Bardzo prostym sposobem na zmniejszenie wartości skrótu jest użycie dwóch ostatnich cyfr. Na przykład w przypadku hasła 78 i powiązanej wartości skrótu 0408, więc redukcja tutaj wynosi 08, którego wartość skrótu jest tworzona ponownie za pomocą funkcji opisanej powyżej i tak dalej. Częstotliwość powtórzeń można dowolnie ustawiać. Im więcej powtarzasz, tym mniej pamięci potrzebuje stół Rainbow, ale czas przetwarzania wzrasta.
|
|
|  | 1 na 1 | DyktaFon (9281 punktów) | Miałem na myśli praktyczne zastosowanie... ale nie aż tak praktyczne  ) Chodziło mi nie o napisanie tego samego, co w pierwszej wypowiedzi, ale liczbami. Bardziej miałem na myśli, gdzie to mogę zastosować nie będą informatykiem lub programistą. (Bo gdybym był, to pewnie nie potrzebowałbym tak podstawowych informacji  ) Jeszcze raz: jestem sobie normalnym człowiekiem (umówmy się tak  ) i chciałbym zrozumieć, po co komplikować proste hasło "nikt". Bo może jest w tym jakiś sens, choć tego jeszcze nie rozumiem.
|
|
| |  | 1 na 1 | romaro (25211 punktów) | > Jeszcze raz: jestem sobie normalnym człowiekiem (umówmy się tak ) i chciałbym zrozumieć, po co komplikować proste hasło "nikt". Bo może jest w tym jakiś sens, choć tego jeszcze nie rozumiem.Więc jeszcze raz po kolei: Nierozsądne byłoby przechowywanie w systemie komputerowym kopii haseł użytkowników, ponieważ hasła te mogłyby zostać skradzione przez pracowników obsługi technicznej systemu lub hakerów. Zamiast przechowywać hasła, systemy komputerowe haszują hasła natychmiast po ich utworzeniu i zachowują tylko ich wartość haszującą, czyli zamieniają hasło które sobie umyśliłeś w "skrót" (hash). Gdy logujesz się na racjonalista.pl wpisujesz hasło. System (racjonalista.pl) zamienia to co wpisałeś w skrót (hash) i porównuje ze skrótem jaki ma w swojej bazie. To było łopatologicznie Podczas każdego sprawdzania poprawności hasła, system haszuje hasło podane przez użytkownika i porównuje otrzymaną wartość haszu z wartością haszu zapisaną podczas tworzenia hasła. Jeżeli teraz wprowadzisz błędne hasło, to naturalnym będzie, że system przetworzy je na skrót którego nie posiada w swojej bazie i naturalnym też będzie gdy powiadomi, że wprowadzone hasło jest nieprawidłowe. Rainbow tables, najprościej ujmując, to zbiór "skrótów". I cały pic polega na tym, by te tablice tworzyć tak aby nie były za duże ze względu na pojemność dysków, ale też żeby ich nie "skurczyć" za bardzo, aby z kolei wyszukiwanie/porównywanie nie trwało wieczność. Rozumiesz dlaczego systemy, w przypadku gdy zapomnisz hasła, proszą Cię o utworzenie nowego? - ponieważ hasło nie istnie w systemie; jest tylko jego 'skrót" na podstawie którego nie jest możliwe odtworzenie hasła.
|
|
| | |  | 1 na 1 | DyktaFon (9281 punktów) | No i o to chodzi. Nareszcie wszystko rozumiem! Wyciągam z tego wniosek, że aż taki głupi, jak myślałem przy poprzednich wpisach, nie jestem... A już na poważnie: teraz mogę ze spokojem przeczytać wcześniejsze wpisy wiedząc o czym rozmawiamy. Wielkie dzięki! Niekiedy się złościłem, że jakaś strona nie chce mi podpowiedzieć hasła, gdy zapomniałem, a karze ponownie wpisywać jakieś nowe. Teraz już jestem mądry  Nawet mógłbym się tytułować "informatykiem"
|
|
| | |  | | alsor (3283 punktów) | >Rainbow tables, najprościej ujmując, to zbiór "skrótów". I cały pic polega na tym, by te tablice tworzyć tak aby nie były za duże ze względu na pojemność dysków, ale też żeby ich nie "skurczyć" za bardzo, aby z kolei wyszukiwanie/porównywanie nie trwało wieczność. >Rozumiesz dlaczego systemy, w przypadku gdy zapomnisz hasła, proszą Cię o utworzenie nowego? - ponieważ hasło nie istnie w systemie; jest tylko jego 'skrót" na podstawie którego nie jest możliwe odtworzenie hasła.
Ty chyb odkrywasz Amerykę, czy jak?
zachaszuj mi string, np.: abrakadabra w 2 bajtach.
|
|
| | | |  | 1 na 1 | DyktaFon (9281 punktów) | > >Rainbow tables, najprościej ujmując, to zbiór "skrótów". I cały pic polega na tym, by te tablice tworzyć tak aby nie były za duże ze względu na pojemność dysków, ale też żeby ich nie "skurczyć" za bardzo, aby z kolei wyszukiwanie/porównywanie nie trwało wieczność.> >Rozumiesz dlaczego systemy, w przypadku gdy zapomnisz hasła, proszą Cię o utworzenie nowego? - ponieważ hasło nie istnie w systemie; jest tylko jego 'skrót" na podstawie którego nie jest możliwe odtworzenie hasła.> Ty chyb odkrywasz Amerykę, czy jak?> zachaszuj mi string, np.: abrakadabra w 2 bajtach.> Dla jednych to odkrycie Ameryki, dla innych codzienność. Ale nie każdy będzie studiował informatykę, żeby się z takimi sprawami zapoznać. A krótki wpis więcej osób przeczyta. I dzięki temu zaoszczędzi nerwy wpisując kolejne hasło na jakiejś stronie www  Czyli to jakby jednocześnie porada medyczna...
|
|
| | | | |  | 1 na 1 | romaro (25211 punktów) | > Dla jednych to odkrycie Ameryki, dla innych codzienność.Jest ok, nie tylko ty nie rozumiałeś o czym pisałem [Załącznik]
|
|
| | | |  | 2 na 2 | romaro (25211 punktów) | >Ty chyb odkrywasz Amerykę, czy jak? >zachaszuj mi string, np.: abrakadabra w 2 bajtach
crc32 3e305450 (posolone) ac637305 (nie posolone)
adler 1a2a045d (posolone) 1ea7047d (nie posolone)
fn1a32 83cfa6bb (posolone) 1ae34601 (nie posolone)
Wystarczy? Bo wiesz, można haszować i hashować
fn1a64 19ad37f85060195b
MD2 b768099453f1a1867803b0ce366ed67e
MD4 49a8b088b0f77572bf23e48ecb2293db
sha1 79fb86e161e6bee2f14740099c4bee8247926999
sha512 ?????
???? 4e4ba734cbc3d9582ad853d134f28508c4c2a2a2174252f92a21c5cf57cc929dd3096f47c91b4538
|
|
Aby pisać w tym wątku, musisz się zalogować
Zaloguj przez OpenID.. Jeżeli nie jesteś zarejestrowany/a - załóż konto..
Szukaj na Forum Przewodnik Regulamin i instrukcja obsługi Forum Kolegium Moderatorów 
|
 |
|