Kryptograficzna funkcja skrótu (CHF) to algorytm, który można uruchomić na danych, takich jak pojedynczy plik lub hasło, w celu wygenerowania wartości zwanej sumą kontrolną.
Głównym zastosowaniem CHF jest weryfikacja autentyczności fragmentu danych. Można założyć, że dwa pliki są identyczne tylko wtedy, gdy sumy kontrolne wygenerowane z każdego pliku przy użyciu tej samej funkcji skrótu kryptograficznego są identyczne.
Niektóre powszechnie używane funkcje skrótu kryptograficznego obejmują MD5 i SHA-1, chociaż istnieje również wiele innych. Są one często określane jako „funkcje mieszające”, ale nie jest to technicznie poprawne. Funkcja skrótu to ogólny termin, który obejmuje CHF wraz z innymi rodzajami algorytmów, takimi jak cykliczne kontrole nadmiarowości.
Kryptograficzne funkcje skrótu: przypadek użycia
Załóżmy, że pobierasz najnowszą wersję przeglądarki Firefox. Z jakiegoś powodu musiałeś pobrać go ze strony innej niż Mozilla. Ponieważ nie jest hostowany w witrynie, której nauczyłeś się ufać, chcesz się upewnić, że pobrany plik instalacyjny jest dokładnie taki sam, jak ten, który oferuje Mozilla.
Używając kalkulatora sum kontrolnych, obliczasz sumę kontrolną za pomocą określonej funkcji skrótu kryptograficznego, takiej jak SHA-2, a następnie porównujesz ją z tą opublikowaną na stronie Mozilli. Jeśli są równe, możesz być pewien, że pobierane przez Ciebie pliki są tym, które Mozilla zamierzała mieć.
Czy kryptograficzne funkcje skrótu można odwrócić?
Funkcje skrótu kryptograficznego zostały zaprojektowane tak, aby uniemożliwić odwrócenie sum kontrolnych, które tworzą z powrotem do oryginalnego tekstu. Jednak nawet jeśli praktycznie nie można ich odwrócić, nie gwarantuje się ich w 100 procentach, aby chronić dane.
Hakerzy mogą użyć tęczowej tabeli, aby ustalić zwykły tekst sumy kontrolnej. Tabele tęczowe to słowniki zawierające tysiące, miliony, a nawet miliardy sum kontrolnych wraz z odpowiadającymi im wartościami zwykłego tekstu.
Chociaż nie jest to technicznie odwrócenie algorytmu skrótu kryptograficznego, równie dobrze może tak być, biorąc pod uwagę, że jest to tak proste do zrobienia. W rzeczywistości, ponieważ żadna tęczowa tablica nie zawiera wszystkich możliwych sum kontrolnych, zwykle są one przydatne tylko w przypadku prostych fraz, takich jak słabe hasła.
Oto uproszczona wersja tęczowej tabeli pokazująca, jak działałoby kryptograficzna funkcja skrótu SHA-1:
Przykład Tęczowego Stołu | |
---|---|
Zwykły tekst | Suma kontrolna SHA-1 |
12345 | 8cb2237d0679ca88db6464eac60da96345513964 |
hasło1 | e38ad214943daad1d64c102faec29de4afe9da3d |
kochampies | a25fb3505406c9ac761c8428692fbf5d5ddf1316 |
Jenny400 | 7d5eb0173008fe55275d12e9629eef8bdb408c1f |
dallas1984 | c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2 |
Haker musi wiedzieć, który algorytm skrótu kryptograficznego został użyty do wygenerowania sum kontrolnych, aby określić wartości.
Dla dodatkowej ochrony, niektóre strony internetowe przechowujące hasła użytkowników wykonują dodatkowe funkcje algorytmu skrótu kryptograficznego po wygenerowaniu wartości, ale przed jej zapisaniem. Ten proces generuje nową wartość, którą rozumie tylko serwer sieciowy i która nie jest zgodna z oryginalną sumą kontrolną.
Na przykład, po wprowadzeniu hasła i wygenerowaniu sumy kontrolnej, może ono zostać podzielone na kilka części i uporządkowane przed zapisaniem w bazie haseł lub niektóre znaki mogą zostać zamienione z innymi. Podczas próby uwierzytelnienia przy następnym logowaniu użytkownika, serwer odwraca tę dodatkową funkcję, a oryginalna suma kontrolna jest generowana ponownie w celu sprawdzenia, czy hasło użytkownika jest prawidłowe.
Wykonanie tych kroków ogranicza użyteczność hackowania, w którym skradzione zostaną wszystkie sumy kontrolne. Chodzi o to, aby wykonać funkcję, która jest nieznana, więc jeśli haker zna algorytm skrótu kryptograficznego, ale nie niestandardowy, znajomość sum kontrolnych haseł nie jest pomocna.
Hasła i szyfrujące funkcje skrótu
Baza danych przechowuje hasła użytkowników w sposób podobny do tęczowej tabeli. Po wprowadzeniu hasła generowana jest suma kontrolna i porównywana z tą zarejestrowaną z Twoją nazwą użytkownika. Otrzymasz wtedy dostęp, jeśli są identyczne.
Biorąc pod uwagę, że CHF generuje nieodwracalną sumę kontrolną, czy bezpieczne jest, aby Twoje hasło było tak proste jak 12345, zamiast 12@34 $5, po prostu dlatego, że same sumy kontrolne są niezrozumiałe? Nie, a oto dlaczego.
Te dwa hasła są niemożliwe do odszyfrowania, patrząc tylko na sumy kontrolne:
MD5 dla 12345: 827ccb0eea8a706c4c34a16891f84e7b
MD5 za 12@34$5: a4d3cc004f487b18b2ccd4853053818b
Na pierwszy rzut oka może Ci się wydawać, że możesz użyć jednego z tych haseł. Dzieje się tak, gdy atakujący próbował odgadnąć twoje hasło, odgadując sumę kontrolną MD5, czego nikt nie robi, ale nie jest prawdą, jeśli przeprowadzany jest atak typu brute force lub słownikowy, co jest powszechną taktyką.
Atak typu brute force występuje, gdy podczas odgadywania hasła zostanie wykonanych wiele losowych pchnięć. W tym przypadku łatwo byłoby odgadnąć 12345, ale dość trudno losowo znaleźć drugą. Atak słownikowy jest podobny pod tym względem, że atakujący może wypróbować każde słowo, liczbę lub frazę z listy popularnych (i niezbyt powszechnych) haseł, a 12345 jest jednym z tych powszechnych hasła.
Mimo że funkcje skrótu kryptograficznego generują trudne lub niemożliwe do odgadnięcia sumy kontrolne, nadal powinieneś używać złożonego hasła dla wszystkich kont użytkowników online i lokalnych.
Więcej informacji na temat kryptograficznych funkcji skrótu
Może się wydawać, że funkcje skrótu kryptograficznego są powiązane z szyfrowaniem, ale te dwie funkcje działają na różne sposoby.
Szyfrowanie to proces dwukierunkowy, w którym coś jest zaszyfrowane, aby stać się nieczytelne, a następnie odszyfrowane w celu ponownego użycia. Możesz zaszyfrować przechowywane pliki, aby nikt, kto ma do nich dostęp, nie mógł z nich korzystać, lub możesz użyć szyfrowania przesyłania plików do zaszyfrowania plików przesyłanych przez sieć, takich jak te, które przesyłasz lub pobierasz online.
Funkcje skrótu kryptograficznego działają inaczej, ponieważ sum kontrolnych nie należy odwracać za pomocą specjalnego hasła dehaszującego. Jedynym celem, jaki służą CHF, jest porównanie dwóch części danych, na przykład podczas pobierania plików, przechowywania haseł i pobierania danych z bazy danych.
Możliwe jest, że kryptograficzna funkcja skrótu wygeneruje taką samą sumę kontrolną dla różnych fragmentów danych. Kiedy tak się dzieje, nazywa się to kolizją, co jest ogromnym problemem, biorąc pod uwagę, że cały punkt funkcji polega na tworzeniu unikalnych sum kontrolnych dla każdego wprowadzanego do niej danych.
Może wystąpić kolizja, ponieważ każdy CHF generuje wartość o stałej długości, niezależnie od danych wejściowych. Na przykład funkcja skrótu kryptograficznego MD5 generuje 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 i e10adc3949ba59abbe56e057f20f883e dla trzech zupełnie różnych bloków danych.
Pierwsza suma kontrolna pochodzi z 12345. Druga została wygenerowana z ponad 700 liter i cyfr, a trzecia pochodzi z 123456. Wszystkie trzy wejścia mają różne długości, ale wyniki mają zawsze tylko 32 znaki, ponieważ użyto sumy kontrolnej MD5.
Nie ma ograniczeń co do liczby sum kontrolnych, które można utworzyć, ponieważ każda drobna zmiana danych wejściowych ma dawać zupełnie inną sumę kontrolną. Ponieważ istnieje limit liczby sum kontrolnych, które może wygenerować jeden CHF, zawsze istnieje możliwość napotkania kolizji.
Dlatego stworzono inne kryptograficzne funkcje skrótu. Podczas gdy MD5 generuje wartość 32-znakową, SHA-1 generuje 40 znaków, a SHA-2 (512) generuje 128. Im większa liczba znaków zawiera suma kontrolna, tym mniejsze prawdopodobieństwo wystąpienia kolizji.