Puncte:0

Poate fi sigur un HMAC cu cheie publică unică?

drapel cn

Imaginați-vă ca autentificarea $hmac = H(nonce, text cifrat)$. $nonce$ este cu adevărat aleatoriu și ales (aleatoriu și FĂRĂ înlocuire) dintr-un set prestabilit $N$. Asa de ${nonce} \în N$ iar odata folosit nu mai poate fi refolosit niciodata. Și $N$ este cunoscută publicului. Nu există o relație algoritmică între $nonce$ și $text cifrat$.

Este HMAC-ul securizat $N$ este public?

Morrolan avatar
drapel ng
Având în vedere că nonce este ales aleatoriu, mi-aș imagina că va fi comunicat cumva -- în mod simplu -- ca parte a mesajului / tuplu MAC? Atunci cu siguranță un atacator capabil să intercepteze această comunicare poate pur și simplu să-și înlocuiască propriul mesaj și să recalculeze MAC-ul folosind nonce comunicat.
Paul Uszak avatar
drapel cn
@Morrolan Hiya. Desigur că pot. Dar $N$ este un set fix predeterminat. _"nonceul comunicat"_ trebuie să fie membru al $N$. Și poate fi folosit o singură dată, iar $|nonce|$ este foarte mare.
Manish Adhikari avatar
drapel us
Da, această întrebare este greu de urmat fără o descriere adecvată a protocolului pentru interacțiune, cum ar fi cine alege nonce, ce fel de set N este și cine calculează hmac și cum este comunicat
Morrolan avatar
drapel ng
@PaulUszak În acest caz, pare să se defecteze complet - fiind dintr-un set binecunoscut și putând fi folosit doar o singură dată, nu vă protejați împotriva unui adversar capabil să intercepteze mesajul. Ei îl modificau, recalculau MAC-ul și trimiteau mesajul modificat pe drum. Dacă nonce-to-be-use a fost ales într-un mod determinist-dar-secret (gândiți-vă la PRF), atunci ați putea să funcționeze. Dar, desigur, atunci aveți nevoie de o cheie secretă partajată pentru PRF. Poate că scăpăm un punct - ar putea merita să reformulăm / să oferim mai multe detalii. :)
Paul Uszak avatar
drapel cn
@Morrolan Caut un MAC unic. Scuze.
Paul Uszak avatar
drapel cn
@ManishAdhikari Caut un MAC unic. Scuze.
Morrolan avatar
drapel ng
@PaulUszak luați în considerare următorul scenariu: A vrea să trimită mesajul $m$. Alege nonce $n \leftarrow N$ și calculează MAC $h := HMAC(n, m)$. Trimite $(n, h, m)$ către B. E interceptează $(n, h, m)$ (mesajul nu ajunge la B!). Alege mesajul arbitrar $m'$, calculează $h' = HMAC(n, m')$. Trimite $(n, h', m')$ lui Bob. B verifică că $n$ nu a fost niciodată folosit înainte și că $HMAC(n, m') = h'$. Ambele verificări trec => Fals. Sunteți de acord că aceasta este o problemă? Sau face de ex. partidele tale au un mecanism securizat out-of-band prin care comunică nonce?
Paul Uszak avatar
drapel cn
@Morrolan Da, nonce este predeterminat în afara benzii dintr-un set fix și imuabil $N$. Deci $n$ este întotdeauna unic, de ordinul a 160 de biți cu adevărat aleatori.
Morrolan avatar
drapel ng
Înțeleg! În acest caz, pare aproape echivalent cu modul în care este utilizat în mod normal un HMAC - și anume cu o cheie secretă. Cu excepția faptului că în cazul tău cheia este efemeră, folosită doar pentru un mesaj. Presupunând un spațiu de cheie suficient de mare (care este de 160 de biți), personal nu văd nicio problemă cu acesta. (Poate să adaugi totuși această informație la întrebare, în beneficiul viitorilor vizitatori. Așa cum este, nu este foarte clar - cel puțin pentru mine nu a fost)
Puncte:2
drapel in

Dacă nonce este cunoscut, atunci HMAC este transformat într-o funcție hash, iar un adversar poate efectua un atac activ prin simpla înlocuire a etichetei de autentificare $t$ cu $t' = H_{k=nonce}(text cifrat')$.

Dacă un mare $N$ este cunoscut sau nu nu contează; dacă nonce rămâne secret atunci $N$ este pur și simplu domeniul din care este luat secretul; adică în acest caz ați descris o funcție secretă de generare a cheii pentru care $N$ este cunoscut în general (de exemplu, este $2^{256}$ pentru HMAC-SHA-256, general descris ca o funcție $\text{Gen.}$ cu ieșire $1^{256}$ sau $\{0, 1\}^{256}$).

Desigur, atâta timp cât valoarea etichetei $t$ nu poate fi modificat de către atacator, atunci constructul este sigur, presupunând că $t$ este suficient de mare. La urma urmei, acest lucru este echivalent cu a avea o valoare hash statică pentru un anumit mesaj care nu poate fi modificat, similar cu un hash peste un fișier de pe site-ul original care poate fi descărcat dintr-o oglindă.

Atenție că acesta poate să nu fie cazul altor funcții MAC, de ex. nu doriți să utilizați GMAC cu o cheie cunoscută.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.