Ten kwartał & A https://security.stackexchange.com/questions/33123/hotp-with-as-hmac-hashing-algoritme-a-hash-from-the-sha-2-family

mówi, że bezpieczeństwo HMAC-SHA1 nie zależy od odporności na kolizje? Czy mówią konkretnie w odniesieniu do HOTP lub HMAC-SHA1 do jakiegokolwiek użytku?

Jeśli HMAC-SHA1 jest używany do weryfikacji integralności dokumentu i możesz znaleźć kolizję, możesz wprowadzić zmiany w dokumencie, prawda?

http://tools.ietf.org/html/rfc2104#section-6

Nawet RFC mówi, że odporność na kolizje jest istotne

Bezpieczeństwo przedstawionego tutaj mechanizmu uwierzytelniania wiadomości zależy od właściwości kryptograficznych funkcji skrótu H: odporność na znajdowanie kolizji (ograniczona do przypadku, gdy wartość początkowa jest tajna i losowa, a dane wyjściowe funkcji nie są jawnie dostępne dla atakującego) oraz właściwość uwierzytelniania wiadomości funkcji kompresji H zastosowana do pojedynczych bloków

Czego tu brakuje?

Komentarze

  • Wydaje się, że pytanie jest niejasne: HMAC-SHA1 nie jest używany do podpisywania dokumentu (przynajmniej nie zazwyczaj; i zakładając, że było, standardowe założenie dla HMAC, że jego klucz jest tajny, nie może ' trzymać od th procedura weryfikacji podpisu jest jawna). Uważam, że ta odpowiedź jest całkiem dobra.
  • @fgrieu – myślę, że popełniłem błąd terminologiczny – kiedy pisałem podpisywanie, powinienem był faktycznie napisane, generujące skrót uwierzytelniania wiadomości w celu ochrony integralności. W przypadku kolizji możesz zmienić wiadomość i zachować ten sam adres MAC, więc jest to problem, prawda?
  • Czy powinniśmy zamknąć to jako duplikat Czy HMAC-MD5 jest uważany za bezpieczny do uwierzytelniania zaszyfrowanych danych? ? Chociaż to pytanie dotyczy SHA1, a nie MD5, odpowiedź jest prawie taka sama.
  • Ja ' Jestem prawie pewien, czy mam atak przed obrazem na SHA -1 to wybucha.

Odpowiedź

W pierwszej części tej odpowiedzi założę, że dzięki lepszemu sprzętowe i / lub algorytmiczne ulepszenia, rutynowo możliwe stało się wykazanie kolizji dla SHA-1 metodą podobną do metody Xiaoyun Wang, Yiqun Lisa Yin i Hongbo Yu ” s lub atak Marca Stevensa . Został on osiągnięty publicznie na początku 2017 r. i było to oczywiście wykonalne (wysiłek to zaledwie kilka godzin haszowania wydanego na wydobywanie bitcoinów ; ale sprzęt użyty do tego nie może być ponownie przeznaczonym do ataku na SHA-1).

W przeciwieństwie do tego, co rozważono w pytaniu, nie pozwoliłoby atakującemu nie zapominać klucz HMAC-SHA-1 do wprowadzenia niewykrytej zmiany w dokumencie; dotyczy to również sytuacji, gdy atakujący jest w stanie przygotować dokument, który jest gotów później zmienić.

Jednym z wyjaśnień jest to, że ataki kolizyjne na SHA-1, które rozważamy, wymagają znajomości stanu zmienna łańcuchowa SHA-1, a atakujący HMAC, nie znając klucza, zostaje pozbawiony tej wiedzy przez klucz wchodzący na obu końcach iteracji rund, w których wiadomość znajduje się w HMAC. Aby przełamać HMAC, potrzebna byłaby znacznie głębsza przerwa w okrągłej funkcji SHA-1. Nieprzypadkowo, M. Bellare „s Nowe dowody dla NMAC i HMAC: Bezpieczeństwo bez odporności na kolizje pokazuje, że bezpieczeństwo HMAC zachowuje się przy założeniu tylko słabszych właściwości jego funkcji okrągłej niż jest to wymagane dla odporności na kolizje odpowiedniego skrótu.

Co byłoby możliwe, gdyby napastnik znający klucz HMAC , aby przygotować dokument, który chce później zmienić, który może zostać zmieniony bez zmiany adresu MAC. Ale ponieważ atakujący trzyma klucz HMAC, nie jest to uważane za przerwanie HMAC.


komentarz pyta kiedy nie powinno się używać SHA-1?

Zaleca się szybkie wycofanie SHA-1 w aplikacjach wymagających odporności na kolizje (jako obraz: szybko odejdź, wychodząc budynek, który uruchamia alarm przeciwpożarowy, gdy nie ma dymu). Obejmuje to haszowanie do sprawdzania integralności lub podpis cyfrowy dokumentów przygotowanych przez innych, nawet częściowo (czyli większość dokumentów). Jeśli dalsze używanie SHA-1 ma duże korzyści operacyjne, można bezpiecznie uczynić wyjątek, wstawiając coś nieprzewidywalnego przez przeciwników przed jakąkolwiek częścią wiadomości, na którą przeciwnik może mieć wpływ.Na przykład, wymuszając nieprzewidywalny numer seryjny certyfikatu w momencie żądania certyfikatu, urząd certyfikacji może nadal bezpiecznie wystawiać certyfikaty przy użyciu SHA-1 do podpisu wewnętrznego.

Jak wyjaśniono w pierwszej sekcji tego Odpowiedź, dopóki klucz HMAC-SHA-1 jest uważany za tajny, nic nie wskazuje na to, że HMAC-SHA-1 jest niepewny, ponieważ używa SHA-1. Jeśli przypuszcza się, że klucz jest publiczny lub jego wyciek jest uważany za operacyjną możliwość, gdy nadal jest wymagana odporność na kolizje dla HMAC, w tym dla wiadomości przygotowanej po ujawnieniu klucza, wówczas mają zastosowanie środki ostrożności omówione w poprzednim akapicie.

Komentarze

  • Kiedy więc nie należy używać SHA1? tzn. wykrycie problemu w SHA1 wyklucza jego użycie, gdzie?
  • To ' ogólnie zaleca się odejść (" walk ", a nie " bieg ") z SHA-1. To powiedziawszy, specyficzna konstrukcja HMAC-SHA1 jest nadal uważana za bezpieczną w użyciu (zakładając tajny klucz) ze względu na dowód bezpieczeństwa dla HMAC, który nie opiera się na odporności na kolizje bazowego PRF. W razie wątpliwości przejdź do SHA-2.
  • @StephenTouset – tak, rozumiem. Czy jest jednak jakieś użycie SHA-1, od którego powinieneś uciec, zamiast się oddalać lub odejść.
  • Nie, w przeciwnym razie byłaby to rada. Odporność na kolizje SHA-1 ' jest obecnie złamana tylko w sensie teoretycznym. Nie znaleziono jeszcze żadnych znanych kolizji, chociaż obecnie najlepszy atak jest na skraju wykonalności.

Odpowiedź

Kiedy ludzie mówią, że HMAC-MD5 lub HMAC-SHA1 są nadal bezpieczne, mają na myśli, że „nadal są bezpieczne jako PRF i MAC.

Kluczowe założenie jest takie, że klucz jest nieznany atakującemu.

$$ \ mathrm {HMAC} = \ mathrm {hash} (k_2 | \ mathrm {hash} (k_1 | m)) $$

  • Potencjał atak 1: Znajdź uniwersalną kolizję, która jest ważna dla wielu kluczy:

    Używając HMAC, wiadomość nie jest szyfrowana bezpośrednio, ale ma prefiks $ k_1 $. Oznacza to, że atakujący nie robi tego. znać stan wewnętrzny skrótu, kiedy wiadomość się rozpoczyna. Znalezienie wiadomości, która koliduje z większością opcji to $ k_1 $, jest niezwykle trudne 1 .

  • Potencjalny atak 2: odzyskanie klucza

    Aby to się udało, funkcja skrótu wymaga znacznie większych przerw niż zwykłe kolizje. Jest to podobne do pierwszego ataku przed obrazem, właściwość, która wciąż jest silna zarówno dla MD5, jak i SHA1.

Z drugiej strony, jeśli użyłeś klucza znanego atakującemu, a atakujący ma możliwość znalezienia kolizji w bazowym skrócie (dla dowolnego IV), do kolizji HMAC. Więc jeśli potrzebujesz bezpieczeństwa w scenariuszu bez klucza, użyj skrótu odpornego na kolizje, takiego jak SHA2 i rozważ w ogóle nieużywanie HMAC.


1 Podejrzewam, że nie możliwe (dla realistycznych rozmiarów wiadomości) nawet dla atakujących bez ograniczeń obliczeniowych, ale udowodnienie tego jest trudne.

Komentarze

  • Kiedy więc nie należy używać SHA1? tj. wykrycie problemu w SHA1 wyklucza jego użycie, gdzie?
  • @ user93353 Jak powiedziałem, bezpieczeństwo HMAC-SHA1 zależy od nieznanego klucza. Jeśli nie ma klucza lub jest znany atakującemu , kolizje w SHA1 stają się zagrożeniem. Jednak SHA1 powinien rzadko, jeśli w ogóle, być używany w nowych projektach, ponieważ są dostępne lepsze alternatywy.
  • Jeśli klucz jest znany atakującemu, to nawet SHA2 będzie być problemem, prawda?
  • @ user93353 Zależy od tego, co chcesz osiągnąć. Oczywiście żaden kod bez klucza nie jest adresem MAC.
  • @CodesInChaos – mówisz, że HMAC-SHA1 to Problem tylko wtedy, gdy klucz jest znany.Ale jeśli klucz jest wiadomo, że będzie to problem dla każdej operacji HMAC-hash, prawda?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *