Czy bezpieczeństwo HMAC oparte na SHA-1 ma wpływ na ataki kolizji na SHA-1?Bezpieczeństwo HMAC - czy bezpieczeństwo HMAC oparte na SHA-1 ma wpływ na ataki kolizji na SHA-1?
Odpowiedz
Implikacje dla bezpieczeństwa HMAC zostały szczegółowo opisane w sekcji dotyczącej bezpieczeństwa pod numerem the RFC. Krótko mówiąc, bardzo silny atak jest wymagany, zanim zagrozi się bezpieczeństwu HMAC; istniejące ataki kolizyjne na SHA-1 z pewnością ich nie stanowią. HMAC jest specjalnie zaprojektowany, aby ataki trudne, a zwykłe ataki kolizji nie będzie na ogół wystarcza:
Zabezpieczenie mechanizmu uwierzytelniania wiadomości przedstawiony tu zależy od właściwości kryptograficznych funkcji skrótu H: opór do kolizji ze znalezieniem (ograniczone do przypadku, gdy wartość początkowa jest tajny i przypadkowe, a gdzie wyjście funkcja nie jest dostępna dla wyraźnie atakującego), i własności funkcji kompresjiuwierzytelniania wiadomości H przy stosowaniu pojedynczych bloków (w HMAC tych bloków są częściowo znane atakującego, ponieważ zawierają one wynikiem obliczeń wewnętrznej H , a w szczególności, nie może być w pełni wybrany przez atakującego).
Polecam lekturę całej sekcji; bardziej szczegółowo opisuje, jakie ataki powinny być wystarczające, aby złamać HMAC i ile wysiłku będzie trzeba.
Najsilniejszy atak znany z HMAC oparty jest na częstotliwości zderzeń dla funkcji hash H ("atak urodzinowy") [PV, BCK2] i jest całkowicie niepraktyczny dla minimalnie rozsądnych funkcji skrótu.
Na przykład, jeśli weźmiemy pod uwagę funkcję skrótu jak MD5 gdzie długość wyjściowy jest równy L = 16 (128 bitów) atakujący potrzebne do przejmują znaczniki prawidłowe uwierzytelnienia wiadomości obliczony (z samym tajemnicy klawisz K!) około 2 64 znanych tekstów jawnych. Wymagałoby to przetworzenia co najmniej 2 64 bloków pod H, niemożliwym zadaniem w każdym realistycznym scenariuszu (dla długości bloku 64 bajtów zajęłoby to 250 000 lat w ciągłym łączu 1Gbps i bez zmiany sekretu klawisz K przez cały ten czas). Atak ten może stać się realistyczny tylko wtedy, gdy wykryte zostaną poważne wady funkcji kolizji (np. Kolizje wykryte po 2 ** 30 wiadomościach). Takie odkrycie oznaczałoby natychmiastowe zastąpienie funkcji H (skutki takiego niepowodzenia byłyby o wiele bardziej poważne dla tradycyjnych zastosowań H w kontekście podpisów cyfrowych, certyfikatów kluczy publicznych itp.).
Uwaga: ten atak musi być silnie skontrastowane z regularnych ataków kolizyjnych dotyczących kryptograficznych funkcji skrótu, gdzie nie tajny klucz jest zaangażowany i gdzie 2 64 off-line parallelizable operacji wystarczy, aby znaleźć kolizje (!).Ten ostatni atak zbliża się do możliwości [VW] ***, podczas gdy atak urodzinowy na HMAC jest całkowicie niepraktyczny. (W powyższych przykładach, jeśli wykorzystuje funkcję skrótu , powiedzmy, 160 nieco wyjścia następnie 2 64 należy zastąpić 2 80). *
właściwego wykonania powyższej konstrukcji, wybór z losowych (lub kryptograficznie pseudolosowych) kluczy, bezpiecznego klucza mechanizmu wymiany, częstego kluczowego odświeżania i dobrej poufności ochrona kluczy jest niezbędnym składnikiem dla bezpieczeństwa mechanizmu weryfikacji integralności dostarczonego przez HMAC.
Jeśli masz zamiar obszernie cytować z RFC2104, uczciwym rozwiązaniem byłoby przyznać tyle. –
Zobacz dyskusję na ten sam temat na stronie this question. Krótko mówiąc: ataki kolizyjne nie szkodzą bezpośrednio HMAC. Ale istnienie kolizji implikuje, że funkcja kompresji, na której zbudowana jest funkcja skrótu, nie jest "przypadkową wyrocznią", a to unieważnia dowód bezpieczeństwa HMAC.
Dziękuję za szybką odpowiedź :) –