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

říká, že zabezpečení HMAC-SHA1 nezávisí na odolnosti proti kolizím? Říkají konkrétně s ohledem na HOTP nebo pro HMAC-SHA1 pro jakékoli použití?

Pokud se pro ověření integrity dokumentu používá HMAC-SHA1 a můžete najít kolizi, můžete v dokumentu provádět změny, že?

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

I RFC říká, že odolnost proti kolizím je relevantní

Zabezpečení zde prezentovaného mechanismu ověřování zpráv závisí na kryptografických vlastnostech hash funkce H: zjištění odolnosti proti kolizi (omezeno na případ, kdy je počáteční hodnota tajná a náhodná a kde výstup funkce není útočníkovi výslovně k dispozici), a vlastnost ověřování zpráv funkce komprese H při použití na jednotlivé bloky

Co mi zde chybí?

Komentáře

  • Zdá se, že v otázce panuje zmatek: HMAC-SHA1 se nepoužívá k podpisu dokumentu (alespoň ne obvykle; a za předpokladu, že byl, standardní předpoklad pro HMAC, že jeho klíčový vstup je tajný, nemůže ' platit od th Postup ověření podpisu je veřejný). Zdá se mi že odpověď celkem v pořádku.
  • @fgrieu – myslím, že jsem udělal terminologii chybu – když jsem psal podpis, měl jsem skutečně napsaný generující souhrn ověřování zprávy k ochraně integrity. V případě kolize můžete zprávu změnit a zachovat stejný MAC, takže je to problém, že?
  • Měli bychom to uzavřít jako duplikát Je HMAC-MD5 považován za bezpečný pro ověřování šifrovaných dat? ? I když se tato otázka týká SHA1, ne MD5, odpověď je téměř stejná.
  • Jsem ' jsem si docela jistý, jestli proti SHA zaútočím předobrazem -1 toto exploduje.

Odpověď

V první části této odpovědi budu předpokládat, že skrz lepší hardwarová nebo algoritmická vylepšení je rutinně možné vystavit kolizi SHA-1 metodou podobnou metodě Xiaoyun Wang, Yiqun Lisa Yin a Hongbo Yu “ s útokem , nebo útokem Marca Stevense . Toho bylo dosaženo veřejně počátkem roku 2017 a bylo zjevně proveditelné (úsilí představuje pouhé hodiny hashovacího úsilí vynaloženého na těžbu bitcoinů ; ale použitý hardware k tomu nemůže být znovu zamýšleno pro útok na SHA-1).

Na rozdíl od toho, co je uvažováno v otázce, to by neumožnilo útočníkovi nekovat klíč HMAC-SHA-1 k provedení nezjištěné změny v dokumentu; včetně toho, zda je útočník schopen připravit dokument, který je ochoten později změnit.

Jedním z vysvětlení je, že kolizní útoky na SHA-1, o kterých uvažujeme, vyžadují znalost stavu proměnná řetězení SHA-1 a útočník HMAC, který nezná klíč, je z těchto znalostí zbaven klíčem, který zadá na obou koncích iteraci kol, ve kterých zpráva stojí v HMAC. K rozbití HMAC by bylo zapotřebí mnohem hlubšího prolomení kruhové funkce SHA-1. Ne náhodou, M. Bellare Nové důkazy pro NMAC a HMAC: Zabezpečení bez Collision-Resistance ukazuje, že zabezpečení HMAC platí za předpokladu, že jeho kulatá funkce bude mít jen slabší vlastnosti, než je nutné pro odolnost proti kolizi odpovídajícího hash.

Co by bylo možné, je pro útočník zná klíč HMAC a připraví dokument, který je ochoten později změnit, který lze změnit beze změny MAC. Ale protože útočník drží klíč HMAC, není to považováno za přerušení HMAC.


komentář se ptá kdy by se SHA-1 neměl používat?

Doporučuje se rychle vyřazovat SHA-1 v aplikacích vyžadujících odolnost proti kolizi (jako obrázek: rychle odejít, když opouštíte) budova, která zazní, když není kouř). To zahrnuje hašování pro kontrolu integrity nebo digitální podpis dokumentů připravených jinými, a to i částečně (což je většina dokumentů). Pokud má pokračování v používání SHA-1 silné provozní výhody, lze jej bezpečně udělat výjimkou vložením něčeho nepředvídatelného protivníky před jakoukoli část zprávy, kterou může protivník ovlivnit.Například vynucením nepředvídatelného sériového čísla certifikátu v době žádosti o certifikát může certifikační autorita stále bezpečně vydávat certifikáty pomocí SHA-1 pro svůj interní podpis.

Jak je vysvětleno v první části tohoto odpověď, pokud je klíč HMAC-SHA-1 považován za tajný, nic nenasvědčuje tomu, že HMAC-SHA-1 je nejistý, protože používá SHA-1. Pokud je klíč považován za veřejný nebo je jeho únik považován za provozní možnost, kde se stále požaduje odolnost proti kolizi pro HMAC, včetně zprávy připravené po zveřejnění klíče, platí opatření uvedená v předchozím odstavci.

Komentáře

  • Kdy by tedy SHA1 neměl být používán? tj. objevení problému v SHA1 znemožňuje jeho použití, kde?
  • Je ' obecně doporučeno odejít (" walk ", ne " run ") z SHA-1. To znamená, že specifický konstrukt HMAC-SHA1 je stále považován za bezpečný pro použití (za předpokladu tajného klíče) kvůli bezpečnostnímu důkazu pro HMAC, který se nespoléhá na kolizní odolnost podkladového PRF. Máte-li pochybnosti, přejděte na SHA-2.
  • @StephenTouset – ano, rozumím. Existuje však nějaké použití SHA-1, ze kterého byste měli utíkat, než se vzdálit nebo odejít.
  • Ne, jinak by to byla rada. SHA-1 ' s kolizní odpor je nyní porušen pouze v teoretickém smyslu. Dosud nebyly nalezeny žádné známé kolize, ačkoli současný nejlepší útok je na hranici proveditelnosti.

Odpověď

Když lidé řeknou, že HMAC-MD5 nebo HMAC-SHA1 jsou stále zabezpečené, znamená to, že jsou stále zabezpečené jako PRF a MAC.

Klíčovým předpokladem je, že klíč je pro útočníka neznámý.

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

  • Potenciál útok 1: Najděte univerzální kolizi, která je platná pro mnoho klíčů:

    Při použití konzoly HMAC se zpráva nebude hashovat přímo, ale bude mít předponu $ k_1 $. To znamená, že útočník nebude “ Neznám vnitřní stav hash při spuštění zprávy. Najít zprávu, která se u většiny možností srazí, je $ k_1 $, je extrémně těžké 1 .

  • Potenciální útok 2: Obnovte klíč

    Aby to uspělo, hashovací funkce potřebuje mnohem větší přestávky než pouhé kolize. Je to podobné jako první pre-image útok, vlastnost, která je stále silná pro MD5 i SHA1.

Na druhou stranu, pokud jste použili klíč známý útočníkovi a útočník má schopnost najít kolize v základním hash (pro libovolné IV), tyto do kolizí HMAC. Pokud tedy potřebujete zabezpečení v neuzavřeném scénáři, použijte hash odolný proti kolizi, například SHA2, a zvažte, že vůbec nebudete používat HMAC.


1 Mám podezření, že to není možné (pro realistické velikosti zpráv) i pro výpočetně neomezené útočníky, ale prokázat, že je to obtížné.

Komentáře

  • Takže kdy by neměl být použit SHA1? tj. objevení problému v SHA1 mu brání v použití kde?
  • @ user93353 Jak jsem řekl, zabezpečení HMAC-SHA1 závisí na neznámém klíči. Pokud neexistuje žádný klíč nebo je útočníkovi znám , kolize v SHA1 se stávají hrozbou. SHA1 by se však měl zřídka, pokud vůbec, používat v nových designech, protože jsou k dispozici lepší alternativy.
  • Pokud je útočníkovi klíč znám, bude dokonce i SHA2 být problém, že?
  • @ user93353 Záleží na tom, čeho chcete dosáhnout. Samozřejmě, že žádný nepotištěný hash není MAC.
  • @CodesInChaos – říkáte, že HMAC-SHA1 je problém, pouze pokud je klíč znám. Ale pokud klíč je je známo, že to bude problém pro jakoukoli operaci hash HMAC, že?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *