If-Koubou

Co to jest SHAttered? Ataki kolizji SHA-1, objaśnione

Co to jest SHAttered? Ataki kolizji SHA-1, objaśnione (Jak)

Pierwszego dnia 2016 roku Mozilla zakończyła obsługę słabnącej technologii bezpieczeństwa o nazwie SHA-1 w przeglądarce Firefox. Niemal natychmiast zmienili decyzję, ponieważ ograniczyliby dostęp do niektórych starszych stron internetowych. Jednak w lutym 2017 r. Ich obawy wreszcie się spełniły: badacze złamali SHA-1, tworząc pierwszy atak kolizyjny w rzeczywistym świecie. Oto co to znaczy.

Co to jest SHA-1?

SHA w SHA-1 oznacza Bezpieczny algorytm skrótui, mówiąc wprost, możesz myśleć o tym jako o problemie lub metodzie matematycznej szyfruje dane, które są w nim umieszczane. Opracowany przez NSA w Stanach Zjednoczonych, jest podstawowym składnikiem wielu technologii używanych do szyfrowania ważnych transmisji w Internecie. Typowe metody szyfrowania SSL i TLS, o których być może słyszałeś, mogą korzystać z funkcji mieszania, takiej jak SHA-1, do tworzenia podpisanych certyfikatów widocznych na pasku narzędzi przeglądarki.

Nie zajmiemy się matematyką i informatyką żadnej z funkcji SHA, ale oto podstawowa idea. "Hash" to unikalny kod oparty na danych wejściowych. Nawet małe, losowe ciągi liter wprowadzane do funkcji skrótu, takiej jak SHA-1, zwrócą długą, określoną liczbę znaków, przez co (potencjalnie) niemożliwe będzie cofnięcie ciągu znaków do oryginalnych danych. W ten sposób zwykle działa przechowywanie haseł. Podczas tworzenia hasła wprowadzane hasło jest mieszane i przechowywane przez serwer. Po powrocie, gdy wpiszesz hasło, zostanie ono ponownie zahartowane. Jeśli pasuje do oryginalnego skrótu, można założyć, że dane wejście jest takie samo, a otrzymasz dostęp do swoich danych.

Funkcje skrótu są użyteczne przede wszystkim dlatego, że ułatwiają określenie, czy dane wejściowe, na przykład plik lub hasło, uległy zmianie. Gdy dane wejściowe są tajne, podobnie jak hasło, skrót jest prawie niemożliwy do odwrócenia i odzyskania oryginalnych danych (nazywanych również "kluczem"). To trochę różni się od "szyfrowania", którego celem jest szyfrowanie danych w celu późniejszego ich deszyfrowania przy użyciu szyfrów i tajnych kluczy. Hashe mają po prostu zapewnić integralność danych - aby upewnić się, że wszystko jest takie samo. Git, oprogramowanie do kontroli wersji i dystrybucji dla kodu open source, wykorzystuje z tego powodu skróty SHA-1.

To dużo informacji technicznych, ale mówiąc po prostu: hash to nie to samo co szyfrowanie, ponieważ służy do identyfikacji, czy plik się zmienił.

W jaki sposób wpływa na mnie ta technologia?

Powiedzmy, że musisz prywatnie odwiedzić stronę. Twój bank, twoja poczta e-mail, a nawet konto na Facebooku - wszystkie używają szyfrowania, aby dane, które wysyłasz, są prywatne. Profesjonalna strona internetowa zapewni szyfrowanie poprzez uzyskanie certyfikatu od zaufanej instytucji - osoby trzeciej, która jest zaufana, aby zapewnić, że szyfrowanie jest na poziomie prywatnym między witryną a użytkownikiem i nie jest szpiegowana przez żadną inną stronę. Ten związek z osobą trzecią, zwany Urzędy certyfikacji, lub CAMa kluczowe znaczenie, ponieważ każdy użytkownik może utworzyć certyfikat "samopodpisany" - możesz to zrobić samemu na komputerze z systemem Linux z Open SSL. Symantec i Digicert to na przykład dwie znane firmy z branży CA.

Przebiegnijmy teoretyczny scenariusz: How-To Geek chce zachować logowanie sesji prywatnych z szyfrowaniem, więc zwraca się do CA, takiego jak Symantec z Żądanie podpisania certyfikatu, lub CSR. Tworzą klucz publiczny i prywatny klucz do szyfrowania i odszyfrowywania danych przesyłanych przez Internet. Żądanie CSR przesyła klucz publiczny do firmy Symantec wraz z informacjami o witrynie. Firma Symantec sprawdza klucz pod kątem jego rekordu, aby sprawdzić, czy dane są niezmienione przez wszystkie strony, ponieważ każda niewielka zmiana danych powoduje, że skrót jest radykalnie inny.

Te klucze publiczne i certyfikaty cyfrowe są podpisane za pomocą funkcji skrótu, ponieważ dane wyjściowe tych funkcji są dobrze widoczne. Klucz publiczny i certyfikat ze zweryfikowanym hashem firmy Symantec (w naszym przykładzie), autorytet, zapewnia użytkownikowi programu How-To Geek, że klucz nie ulega zmianie i nie jest wysyłany od kogoś złośliwego.

Ponieważ skrót jest łatwy do monitorowania i niemożliwy (niektórzy twierdzą, że jest "trudny") do odwrócenia, poprawna, zweryfikowana sygnatura hash oznacza, że ​​certyfikat i połączenie mogą być zaufane, a dane można uzgodnić, aby były wysyłane w postaci zaszyfrowanej od końca do końca . Ale co jeśli hash w rzeczywistości nie był wyjątkowy?

Co to jest atak zderzeniowy i czy jest to możliwe w rzeczywistym świecie?

Być może słyszeliście o "problemie urodzinowym" w matematyce, chociaż być może nie wiedzieliście, jak to się nazywa.Podstawową ideą jest to, że jeśli zgromadzisz wystarczająco dużą grupę ludzi, szanse są dość wysokie, że dwie lub więcej osób będzie miało te same urodziny. Wyższe niż można by oczekiwać, w rzeczywistości - na tyle, że wydaje się dziwnym zbiegiem okoliczności. W grupie liczącej zaledwie 23 osoby istnieje 50% szansa, że ​​dwie osoby będą dzielić urodziny.

Jest to nieodłączną słabością wszystkich skrótów, w tym SHA-1. Teoretycznie funkcja SHA powinna utworzyć unikatowy skrót dla wszystkich danych, które są w nią umieszczane, ale wraz ze wzrostem liczby skrótów staje się bardziej prawdopodobne, że różne pary danych mogą utworzyć ten sam skrót. Można więc utworzyć niezaufany certyfikat z identycznym hashem do zaufanego certyfikatu. Jeśli zainstalują niezaufany certyfikat, może on udawać zaufane i rozpowszechniać złośliwe dane.

Znalezienie pasujących skrótów w dwóch plikach nazywa się atak kolizyjny. Przynajmniej jeden atak zderzeń na dużą skalę zdarzył się już w przypadku skrótów MD5. Jednak 27 lutego 2017 r. Google ogłosił SHAttered, pierwszą w historii kolizję z SHA-1. Firma Google była w stanie utworzyć plik PDF, który miał ten sam skrót SHA-1 jako inny plik PDF, mimo że ma inną treść.

SHAttered został wykonany na pliku PDF. Pliki PDF są stosunkowo luźnym formatem plików; można wprowadzić wiele drobnych zmian na poziomie bitów bez uniemożliwiania czytelnikom ich otwierania lub powodowania widocznych różnic. Pliki PDF są często używane do dostarczania złośliwego oprogramowania. Chociaż SHAttered może działać na innych typach plików, takich jak ISO, certyfikaty są sztywno określone, co czyni taki atak mało prawdopodobnym.

Jak prosty jest ten atak? SHAttered został oparty na metodzie odkrytej przez Marca Stevensa w 2012 roku, która wymagała ponad 2 ^ 60,3 (9 923 kwintylionów) operacji SHA-1 - oszałamiającej liczby. Jednak ta metoda jest wciąż 100 000 razy mniejszą operacją, niż byłaby wymagana do uzyskania tego samego wyniku przy użyciu brutalnej siły. Firma Google stwierdziła, że ​​przy 110 wysokiej klasy kartach graficznych pracujących równolegle, potrzeba około jednego roku, aby wytworzyć kolizję. Wypożyczenie tego czasu obliczeniowego z Amazon AWS kosztowałoby około 110 000 $. Pamiętaj, że gdy ceny spadają na części komputerowe i możesz uzyskać więcej mocy za mniej, ataki takie jak SHAttered stają się łatwiejsze do zniesienia.

110 000 $ może wydawać się dużo, ale jest to w granicach przystępności cenowej dla niektórych organizacji - co oznacza, że ​​prawdziwi cyberjaliści mogą fałszować podpisy dokumentów cyfrowych, ingerować w systemy tworzenia kopii zapasowych i kontroli wersji, takie jak Git i SVN, lub sprawić, że złośliwy system Linux wydaje się zgodny z prawem.

Na szczęście istnieją czynniki łagodzące zapobiegające takim atakom. SHA-1 jest już rzadko używany do podpisów cyfrowych. Urzędy certyfikacji nie dostarczają już certyfikatów podpisanych przy użyciu SHA-1, a zarówno Chrome, jak i Firefox zrzekły się ich wsparcia. Dystrybucje Linuksa są zwykle wydawane częściej niż raz w roku, co sprawia, że ​​atakujący nie jest w stanie stworzyć złośliwej wersji, a następnie wygenerować jeden z wyściełanymi, aby mieć ten sam skrót SHA-1.

Z drugiej strony niektóre ataki oparte na SHAttered mają już miejsce w realnym świecie. System kontroli wersji SVN używa SHA-1 do rozróżniania plików. Przesłanie dwóch plików PDF z identycznymi skrótami SHA-1 do repozytorium SVN spowoduje jego uszkodzenie.

Jak mogę chronić się przed atakami SHA-1?

Dla typowego użytkownika nie ma zbyt wiele. Jeśli używasz sum kontrolnych do porównywania plików, powinieneś używać SHA-2 (SHA-256) lub SHA-3 zamiast SHA-1 lub MD5. Podobnie, jeśli jesteś programistą, użyj bardziej nowoczesnych algorytmów mieszających, takich jak SHA-2, SHA-3 lub bcrypt. Jeśli obawiasz się, że SHAttered zostało użyte do nadania dwóch różnych plików tym samym hash, Google opublikowało narzędzie w witrynie SHAttered, które może sprawdzić dla Ciebie.

Kredyty obrazów: Lego Firefox, mnóstwo haszy, proszę nie ranić autora sieci nieznanego, Google.