siger, at sikkerheden ved HMAC-SHA1 ikke afhænger af modstand mod kollisioner? Siger de specifikt med hensyn til HOTP eller til HMAC-SHA1 til enhver brug?
Hvis HMAC-SHA1 bruges til at verificere et dokuments integritet, og du kan finde en kollision, kan du foretage ændringer i dokumentet, ikke?
http://tools.ietf.org/html/rfc2104#section-6
Selv RFC siger, at modstand mod kollisioner er relevant
Sikkerheden for meddelelsesgodkendelsesmekanismen, der præsenteres her, afhænger af kryptografiske egenskaber for hashfunktionen H: modstand mod kollisionsfinding (begrænset til det tilfælde, hvor den oprindelige værdi er hemmelig og tilfældig, og hvor output fra funktionen ikke er eksplicit tilgængelig for angriberen), og meddelelsesgodkendelsesegenskaben for kompressionsfunktionen af H, når den anvendes på enkeltblokke
Hvad mangler jeg her?
Kommentarer
- Der synes at være en forvirring i spørgsmålet: HMAC-SHA1 bruges ikke til at underskrive et dokument (i det mindste ikke normalt; og antage det var, kan standardantagelsen for HMAC om, at dens nøgleindgang er hemmelig, ' ikke holde siden th proceduren til signaturbekræftelse er offentlig). Jeg finder det svar ret fint.
- @fgrieu – Jeg tror jeg lavede en fejl i terminologien – da jeg skrev underskrift, skulle jeg have faktisk skrevet genererer en meddelelsesgodkendelsesfordøjelse for at beskytte integriteten. I tilfælde af kollisioner kan du ændre beskeden og bevare den samme MAC, så det er et problem, ikke?
- Skal vi lukke dette som en kopi af Betragtes HMAC-MD5 som sikker til godkendelse af krypterede data? ? Mens dette spørgsmål handler om SHA1, ikke MD5, er svaret næsten det samme.
- Jeg ' er ret sikker på, om jeg har et pre-image-angreb mod SHA -1 dette eksploderer.
Svar
I det første afsnit af dette svar antager jeg, at det gennem bedre hardware eller / og algoritmiske forbedringer, det er blevet rutinemæssigt muligt at udvise en kollision for SHA-1 ved en metode, der svarer til Xiaoyun Wang, Yiqun Lisa Yin og Hongbo Yu ” s angreb eller Marc Stevens “angreb . Dette er opnået offentligt i begyndelsen af 2017 og havde været klart gennemførligt (indsatsen repræsenterer kun timer med hashing-indsats brugt på bitcoin-minedrift ; men den hardware, der bruges til det, kan ikke være genindstillet til angrebet på SHA-1).
I modsætning til hvad der betragtes i spørgsmålet, ville det ikke tillade en angriber ikke kow HMAC-SHA-1-nøglen for at foretage en uopdaget ændring i et dokument; at “inklusive, hvis angriberen er i stand til at forberede dokumentet, han / han er villig til senere at ændre.
En forklaring er, at de kollisionsangreb på SHA-1, vi overvejer, kræver viden om tilstanden af SHA-1-kædevariablen, og angriberen af HMAC, der ikke kender nøglen, fratages denne viden ved at nøglen indtaster begge ekstremiteter af iteration af runder, hvor meddelelsen står i HMAC. En meget dybere pause i SHA-1 “s runde funktion ville være nødvendig for at bryde HMAC. Ikke tilfældigt, M. Bellare” s Nye bevis for NMAC og HMAC: Sikkerhed uden kollisionsmodstand viser, at HMAC-sikkerhed kun antager svagere egenskaber på sin runde funktion end nødvendigt for kollisionsmodstand af den tilsvarende hash.
Hvad der ville være muligt er for en angriberen kender HMAC-nøglen for at forberede et dokument, som han / hun er villig til senere at ændre, som kan ændres uden at ændre MAC. Men da angriberen holder HMAC-nøglen, betragtes det ikke som et brud på HMAC.
En kommentar spørger hvornår skal SHA-1 ikke bruges?
Det tilrådes hurtigt at udfase SHA-1 i applikationer, der kræver kollisionsmodstand (som et billede: gå hurtigt væk, når du går ud en bygning, som brandalarm ringer, når der ikke er nogen røg). Dette inkluderer hashing til integritetskontrol eller digital signatur af dokumenter, der er udarbejdet af andre, selv delvis (hvilket er de fleste dokumenter). Hvis fortsat brug af SHA-1 har stærke operationelle fordele, kan det sikkert gøres til en undtagelse ved at indsætte noget uforudsigeligt af modstandere før nogen del af meddelelsen, som en modstander kan påvirke.For eksempel ved at håndhæve et uforudsigeligt certifikatserienummer på tidspunktet for anmodning om et certifikat, kunne en certificeringsmyndighed stadig udstede certifikater ved hjælp af SHA-1 til deres interne signatur.
Som forklaret i det første afsnit af dette svar, så længe nøglen til HMAC-SHA-1 antages hemmelig, er der ingen tegn på, at HMAC-SHA-1 er usikker, fordi den bruger SHA-1. Hvis nøglen antages at være offentlig, eller hvis dens lækage betragtes som en operationel mulighed, hvor det stadig ønskes kollisionsmodstand for HMAC inklusive for meddelelse udarbejdet efter afsløring af nøglen, gælder de forholdsregler, der er diskuteret i det foregående afsnit.
Kommentarer
- Så hvornår skal SHA1 ikke bruges? dvs. opdagelse af problemet i SHA1 udelukker det fra brug hvor?
- Det ' anbefales generelt at flytte væk (" gå ", ikke " kør ") fra SHA-1. Når det er sagt, anses den specifikke konstruktion af HMAC-SHA1 stadig for at være sikker at bruge (forudsat en hemmelig nøgle) på grund af sikkerhedssikkerheden for HMAC, som ikke er afhængig af kollisionsmodstand af den underliggende PRF. I tvivlstilfælde skal du flytte til SHA-2.
- @StephenTouset – ja, det fik jeg. Er der dog nogen brug af SHA-1, hvorfra du skal løbe væk i stedet for at flytte væk eller gå væk.
- Nej, ellers ville det være rådet. SHA-1 ' s kollisionsmodstand er kun brudt i teoretisk forstand lige nu. Der er endnu ikke fundet nogen kendte kollisioner, skønt det nuværende bedste angreb lige er på kanten af gennemførligheden.
Svar
Når folk siger, at HMAC-MD5 eller HMAC-SHA1 stadig er sikre, betyder de, at de stadig er sikre som PRF og MAC.
Den vigtigste antagelse her er, at nøglen er ukendt for angriberen.
$$ \ mathrm {HMAC} = \ mathrm {hash} (k_2 | \ mathrm {hash} (k_1 | m)) $$
-
Potentiel angreb 1: Find en universel kollision, der er gyldig for mange nøgler:
Ved hjælp af HMAC bliver beskeden ikke direkte hash, men den har $ k_1 $ som præfiks. Dette betyder, at angriberen ikke ” ikke kender hashens interne tilstand, når meddelelsen starter. At finde en besked, der kolliderer for de fleste valg, er $ k_1 $ er ekstremt svært 1 .
-
Potentielt angreb 2: Gendan nøglen
For at dette skal lykkes, har hash-funktionen brug for meget større pauser end blot kollisioner. Det ligner et første pre-image-angreb, en egenskab der stadig er stærk for både MD5 og SHA1.
På den anden side, hvis du brugte en nøgle, der er kendt af angriberen, og angriberen har evnen til at finde kollisioner i den underliggende hash (for vilkårlige IVer), bliver disse i kollisioner med HMAC. Så hvis du har brug for sikkerhed i et scenarie uden nøgle, skal du bruge en kollisionsresistent hash som SHA2 og overveje ikke at bruge HMAC overhovedet.
1 Jeg har mistanke om, at det ikke er muligt (for realistiske meddelelsesstørrelser) selv for beregningsmæssigt ubegrænsede angribere, men det viser sig at være svært.
Kommentarer
- Så hvornår skal SHA1 ikke bruges? dvs. opdagelse af problemet i SHA1 udelukker det fra brug, hvor?
- @ user93353 Som jeg sagde, afhænger sikkerheden af HMAC-SHA1 af den ukendte nøgle. Hvis der ikke er nogen nøgle, eller angriberen kender den , kollisionerne i SHA1 bliver en trussel. Men SHA1 bør sjældent, hvis nogensinde, bruges i nye designs, da der er bedre alternativer til rådighed.
- Hvis nøglen er kendt af angriberen, så vil endog SHA2 være et problem, ikke?
- @ user93353 Afhænger af, hvad du vil opnå. Naturligvis er ingen hash uden nøgle en MAC.
- @CodesInChaos – du siger, at HMAC-SHA1 er en kun problem, hvis nøglen er kendt, men hvis nøglen er kendt, det vil være et problem for enhver HMAC-hash-handling, ikke?