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

szerint a HMAC-SHA1 biztonsága nem függ az ütközésekkel szembeni ellenállástól? Kifejezetten a HOTP-re vagy a HMAC-SHA1-re vonatkoznak, bármilyen felhasználásra?

Ha a HMAC-SHA1-et használják a dokumentum integritásának ellenőrzésére, és találhat ütközést, akkor változtathat a dokumentumon, igaz?

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

Még az RFC is mondja, hogy az ütközésekkel szembeni ellenállás releváns

Az itt bemutatott üzenet hitelesítési mechanizmus biztonsága a H hash függvény kriptográfiai tulajdonságaitól függ: az ütközés megtalálásának ellenállása (csak arra az esetre korlátozódik, amikor a kezdeti érték titkos és véletlenszerű, és ahol a függvény kimenete nem kifejezetten elérhető a támadó számára), és a H tömörítési függvény üzenet hitelesítési tulajdonsága, ha egyes blokkokra alkalmazzák

Mi hiányzik itt?

Megjegyzések

  • Úgy tűnik, hogy a kérdésben zavar van: A HMAC-SHA1-et nem használják egy dokumentum aláírására (legalábbis nem általában; és feltételezve azt volt, a HMAC standard feltételezése, miszerint a kulcsbemenet titkos, ' nem állhat fenn th az aláírás-ellenőrzési eljárás nyilvános). ezt a választ nagyon finomnak találom.
  • @fgrieu – azt hiszem, hibát vétettem a terminológiában – amikor aláírást írtam, meg kellett volna valójában írva generál egy üzenet hitelesítési összefoglalót az integritás védelme érdekében. Ütközések esetén megváltoztathatja az üzenetet, és megőrizheti ugyanazt a MAC-ot, tehát gond, igaz?
  • Ezt a Biztonságosnak tekinthető-e a HMAC-MD5 a titkosított adatok hitelesítéséhez? ? Bár ez a kérdés az SHA1-ről szól, nem az MD5-ről, a válasz majdnem ugyanaz.
  • Biztos vagyok benne, hogy van-e előzetes támadásom az SHA ellen -1 ez felrobban.

Válasz

A válasz első szakaszában azt feltételezem, hogy jobb hardveres vagy algoritmikus fejlesztések, rutinszerűen megvalósíthatóvá vált az SHA-1 ütközésének kimutatása hasonló módszerrel, mint Xiaoyun Wang, Yiqun Lisa Yin és Hongbo Yu ” támadása , vagy Marc Stevens támadása . Ezt nyilvánosan elérték 2017 elején, és egyértelműen kivitelezhető volt (ez az erőfeszítés csupán a bitcoin bányászatra fordított hasítási erőfeszítéseket jelenti , de az ehhez használt hardver nem képes át kell állítani az SHA-1 elleni támadásra).

A kérdésben foglaltakkal ellentétben ez nem lehetővé tenné egy támadó a HMAC-SHA-1 kulcs egy észrevétlen módosítás elvégzéséhez a dokumentumban; beleértve, ha a támadó képes előkészíteni a dokumentumot, később hajlandó megváltoztatni.

Az egyik magyarázat az, hogy az általunk fontolóra vett SHA-1 elleni ütközési támadások ismeretét igénylik az SHA-1 láncváltozót, és a HMAC támadóját, aki nem ismeri a kulcsot, megfosztja ettől az ismerettől az a kulcs, amely mindkét körbe beírja a körök iterációját, amelyben az üzenet HMAC-ban áll. Az SHA-1 “kerek funkciójának sokkal mélyebb megszakítására lenne szükség a HMAC megszakításához. Nem véletlen, hogy M. Bellare” s New Proofs for NMAC and HMAC: Security ütközés-ellenállás nélkül azt mutatja, hogy a HMAC biztonsága csak a kerek funkciójának gyengébb tulajdonságait feltételezi, mint ami a megfelelő hash ütközési ellenállásához szükséges.

Ami lehetséges lenne, a támadó ismeri a HMAC kulcsot , hogy készítsen egy később módosítani kívánt dokumentumot, amelyet a MAC megváltoztatása nélkül meg lehet változtatni. De mivel a támadó a HMAC kulcsot tartja, ez nem tekinthető a HMAC törésének.


Egy megjegyzés kéri mikor nem szabad használni az SHA-1-et?

Az ütközésállóságot igénylő alkalmazásokban célszerű az SHA-1-et gyorsan fokozatosan megszüntetni (képként: gyorsan elsétál, amint kilép egy épület, amely tűzjelzővel szól, ha nincs füst). Ez magában foglalja a mások által készített dokumentumok integritás-ellenőrzésének vagy digitális aláírásának kivonását (mégpedig a legtöbb dokumentumot). Ha az SHA-1 további használatának jelentős működési előnyei vannak, akkor biztonsággal kivételt tehet azáltal, hogy az ellenfelek beláthatatlan dolgokat szúr be az üzenet bármely olyan része elé, amelyet az ellenfél befolyásolhat.Például egy kiszámíthatatlan tanúsítvány sorozatszám érvényesítésével a tanúsítvány kérésére a tanúsító hatóság továbbra is biztonságosan kiadhat tanúsítványokat az SHA-1 használatával belső aláírásukhoz.

Amint a jelen cikk első szakaszában kifejtésre került válasz, mindaddig, amíg a HMAC-SHA-1 kulcsát titkosnak tekintik, semmi nem utal arra, hogy a HMAC-SHA-1 nem biztonságos, mert SHA-1-et használ. Ha a kulcsot nyilvánosnak tekintik, vagy annak szivárgása olyan működési lehetőségnek tekinthető, ahol még mindig ütközésállóságot akarnak a HMAC számára, ideértve a kulcs közzététele után készített üzeneteket is, akkor az előző bekezdésben tárgyalt óvintézkedések érvényesek. h3> Megjegyzések

  • Tehát mikor nem szabad használni az SHA1-et? azaz a probléma felfedezése az SHA1-ben kizárja a felhasználást ott, ahol?
  • Általában ' javasolta, hogy távolodjon el (" walk ", nem " run ") az SHA-1-ből. Ez azt jelenti, hogy a HMAC-SHA1 specifikus konstrukciója továbbra is biztonságosnak tekinthető (titkos kulcsot feltételezve) a HMAC biztonsági bizonyítéka miatt, amely nem támaszkodik az alapul szolgáló PRF ütközési ellenállására. Ha kétségei vannak, lépjen az SHA-2-re.
  • @StephenTouset – igen, ezt megértettem. Van-e azonban valamilyen SHA-1 használat, ahonnan el kell menekülnie ahelyett, hogy elköltözne vagy elmenne.
  • Nem, különben ez lenne a tanács. Az SHA-1 ' ütközési ellenállása jelenleg csak elméleti értelemben törik meg. Még nem találtunk ismert ütközést, bár a jelenlegi legjobb támadás csak a megvalósíthatóság határán áll.

Válasz

Amikor az emberek azt mondják, hogy a HMAC-MD5 vagy a HMAC-SHA1 továbbra is biztonságos, akkor azt jelentik, hogy továbbra is biztonságosak, mint PRF és MAC.

A legfontosabb feltételezés itt az, hogy a kulcs ismeretlen a támadó számára.

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

  • Potenciál 1. támadás: Keressen egy univerzális ütközést, amely sok kulcsra érvényes:

    A HMAC használatával az üzenet nem kerül kivonatolásra, de előtagja $ k_1 $. Ez azt jelenti, hogy a támadó nem ” nem ismerem a hash belső állapotát, amikor az üzenet elindul. Olyan üzenetet találni, amely a legtöbb választásnál ütközik, a $ k_1 $ rendkívül nehéz 1 .

  • 2. lehetséges támadás: Helyezze vissza a kulcsot

    A siker érdekében a hash függvénynek sokkal nagyobb szünetekre van szüksége, mint pusztán ütközéseknél. Hasonló az első kép előtti támadáshoz, amely tulajdonság továbbra is erős az MD5 és az SHA1 esetében.

Másrészt, ha a támadó által ismert kulcsot használtad, és a támadó képes ütközéseket találni az alapul szolgáló hashban (tetszőleges IV-k esetén), akkor ezek a HMAC ütközéseibe. Tehát, ha kulcsra van szüksége egy kulcs nélkül, használjon ütközésnek ellenálló kivonatot, például SHA2, és fontolja meg, hogy egyáltalán nem használja a HMAC-ot.


1 gyanítom, hogy nem lehetséges (reális üzenetméretek esetén) még számítási szempontból korlátlan támadók számára is, de ennek bizonyítása nehéz.

Megjegyzések

  • Tehát mikor nem szabad használni az SHA1-et? azaz a probléma felfedezése az SHA1-ben kizárja a felhasználást, ahol?
  • @ user93353 Mint mondtam, a HMAC-SHA1 biztonsága az ismeretlen kulcstól függ. Ha nincs kulcs, vagy ha a támadó ismeri azt , az SHA1 ütközései fenyegetéssé válnak. De az SHA1-et ritkán kell használni, ha valaha is, új tervekben, mivel vannak jobb alternatívák.
  • Ha a kulcsot ismeri a támadó, akkor még az SHA2 is probléma lehet, igaz?
  • @ user93353 Attól függ, hogy mit szeretnél elérni. Természetesen egyetlen kulcs nélküli hash sem MAC.
  • @CodesInChaos – azt mondod, hogy a HMAC-SHA1 egy csak akkor, ha a kulcs ismert, de ha a kulcs ismert, ez minden HMAC-hash műveletnél problémát jelent, igaz?

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük