Puncte:1

Este acest tip de autentificare reciprocă sigur?

drapel in

Următoarea este o problemă din lumea reală. Într-un protocol standardizat, clienții se pot conecta la un server folosind autentificarea reciprocă în 4 treceri pe un canal TCP altfel nesecurizat:

  • pass-1: Clientul trimite provocarea C aleatorie către server
  • pass-2: Serverul răspunde trimițând provocarea aleatorie S către client
  • trece-3: Clientul pregătește res(S, K) și îl trimite către S
  • pass-4: Serverul răspunde clientului cu res(C, K)

res(.) este o etichetă GCM-GMAC care depinde de o cheie simetrică K (de fapt AES128, dar acest lucru ar putea să nu fie relevant aici)

Odată ce autentificarea reciprocă are succes, clientul și serverul pot continua să comunice în cadrul unei așa-numite „asocieri”, de ex. clientul poate solicita unele date de la server.

introduceți descrierea imaginii aici

Totuși, ce se întâmplă dacă un atacator (neavând cheia) ascultă în rețea și pornește un man-in-the-middle precum și un client rău intenționat (roșu). Când clientul real începe pass-1 și trimite C1 la server, în același timp clientul rău trimite C2. Serverul răspunde la ambele solicitări, dar MitM reușește să injecteze S2 pentru a fi trimis către clientul bun, care pregătește res(S2) și îl trimite către server. Dar MitM captează res(S2) și îl injectează ca pass-3 pentru a fi trimis la server. Acum serverul autentifică clientul rău și trimite înapoi res(C2), care este doar ignorat de clientul rău. Deci, a fost stabilită o conexiune aparent autentificată reciproc între clientul și serverul prost.

introduceți descrierea imaginii aici

Mă întreb dacă acest tip de autentificare reciprocă este cu adevărat eficient.

Maarten Bodewes avatar
drapel in
În schemele de mai sus cheile lipsesc. Nu cred că atacul tău MitM este posibil cu gestionarea corectă a cheilor. Mai rău, fără partea de gestionare a cheilor, probabil că întrebarea nu poate primi un răspuns complet și nu îmi place când utilizatorii trebuie să ghicească care și ce tip de chei ar putea fi folosite. Vă rugăm să [editați] întrebarea pentru a include cheile.
knaccc avatar
drapel es
Ar trebui să utilizați o cheie de sesiune care se bazează pe date aleatorii atât de la client, cât și de la server, astfel încât să nu fiți vulnerabil la un atac de reluare. De asemenea, ar trebui să vă gândiți să stabiliți și să rotiți cheia de sesiune în timp (dacă sesiunile sunt de lungă durată), astfel încât să aveți secret.
MichaelW avatar
drapel in
@Maarten Bodewes: Am actualizat pozele cu Cheia. Este doar o cheie AES128 pre-partajată din care de către GCM-GMAC este produsă o etichetă: Res(S, K) = GMAC(S, K, IV), cu un vector de inițializare care este întotdeauna incrementat.
MichaelW avatar
drapel in
@knaccc: Acest protocol nu este nici „invenția” mea și nici nu poate fi schimbat. Vreau doar să înțeleg.
knaccc avatar
drapel es
@MichaelW spui că cheia de 128 de biți K este utilizată direct ca cheie de criptare/decriptare pentru sesiune, unde criptarea este efectuată folosind AES128?
MichaelW avatar
drapel in
@knaccc: da, K este folosit pentru generarea etichetei care este folosită pentru autentificarea reciprocă, precum și pentru criptarea/autentificarea mesajelor după ce a fost stabilită o astfel de sesiune. Poate nu inteleg intrebarea ta.
knaccc avatar
drapel es
Dacă K este utilizat direct ca cheie AES128 pentru comunicarea sesiunii, în loc să creeze o nouă cheie simetrică bazată pe K și C1 și S1, atunci un atac MITM poate aștepta pur și simplu ca o sesiune să devină complet autentificată și apoi să monteze un atac de reluare în cazul în care trimite o copie a unei cereri criptate observate anterior pentru a păcăli serverul să facă ceva. Prin urmare, nu consider că comunicările de sesiune sunt autentificate corespunzător.
MichaelW avatar
drapel in
@knaccc: mesajele de solicitare pot fi atașate opțional cu o etichetă de autentificare; această etichetă depinde de un vector de inițializare care trebuie să fie diferit de fiecare dată și să nu se repete (de fapt există un contor care crește de fiecare dată). Deci o simplă reluare ar fi blocată de server.
knaccc avatar
drapel es
Dacă nu legați cheia de sesiune la provocările de autentificare și nu utilizați criptarea autentificată, atunci încălcați principiul Cryptographic Doom https://moxie.org/2011/12/13/the-cryptographic-doom-principle. html
MichaelW avatar
drapel in
hmmm...după configurarea sesiunii autentificate este întotdeauna folosită aceeași cheie pre-partajată. Cu toate acestea, există un așa-numit contor de cadre, care trebuie crescut de fiecare dată și care curge în vectorul de inițializare pentru GCM-GMAC. Aceasta este puțin deoparte întrebarea mea inițială, dar oricum, voi citi articolul pentru că pare interesant.

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.