Encrypted Key Exchange

Schema dello scambio di chiavi DH-EKE

Encrypted Key Exchange (anche detta EKE) è una famiglia di metodi di interazione tra due o più partecipanti per l'autenticazione e la condivisione di una chiave crittografica di sessione. Basati sulla conoscenza condivisa di una comune password, sono stati descritti da Steven M. Bellovin e Michael Merritt.[1] Alcune varianti di EKE presenti nella pubblicazione originale hanno mostrato diverse debolezze, ma altre sue varianti, migliorate e potenziate, hanno reso EKE il primo metodo efficace per ricavare una chiave di sessione condivisa e l'autenticazione mutua mediante una password condivisa.

Requisiti

Un protocollo EKE per essere considerato sicuro deve poter garantire la robustezza nei confronti di diversi attacchi:

  • anche se le due parti condividono una password debole il protocollo deve essere forte rispetto attacchi off-line (dizionario, forza bruta) sui pacchetti scambiati;
  • il protocollo deve essere robusto nei confronti dei replay attack.

DH-EKE

Una delle versioni presenti nella pubblicazione originale ed effettivamente sicura è basata sul metodo di scambio di chiavi Diffie-Hellman. Si riporta di seguito il protocollo. Si supponga che A {\displaystyle A} sia il client, S {\displaystyle S} sia il server e w {\displaystyle w} sia H ( p a s s w o r d ) {\displaystyle H(password)} con H {\displaystyle H} funzione crittografica di hash.

A S : w [ g a m o d ( p ) ] {\displaystyle A\rightarrow S:w[g^{a}mod(p)]}

con w [ g a m o d ( p ) ] {\displaystyle w[g^{a}mod(p)]} indichiamo la cifratura con un algoritmo a chiave simmetrica di g a m o d ( p ) {\displaystyle g^{a}mod(p)} con la chiave w {\displaystyle w}

S A : K ( n 1 ) , w [ g b m o d ( p ) ] {\displaystyle S\rightarrow A:K(n_{1}),w[g^{b}mod(p)]}

S {\displaystyle S} calcola K come k = g a b m o d ( p ) {\displaystyle k=g^{ab}mod(p)} e sceglie un nonce n 1 {\displaystyle n_{1}}

A S : K ( n 1 , n 2 ) {\displaystyle A\rightarrow S:K(n_{1},n_{2})}

A {\displaystyle A} può decifrare il challenge K ( n 1 ) {\displaystyle K(n_{1})} selezionare un nuovo nonce n 2 {\displaystyle n_{2}} . In questo modo invia un challenge al server e nel contempo mostra di conoscere K {\displaystyle K} autenticandosi come A {\displaystyle A} verso il server

S A : K ( n 2 ) {\displaystyle S\rightarrow A:K(n_{2})}

il server risponde al challenge autenticandosi verso A {\displaystyle A} . Di qui in poi i due attori del protocollo sono autenticati e dispongono di una chiave di sessione. Si noti che un attacco brute force sui messaggi cifrati con w {\displaystyle w} sono inattuabili poiché un attaccante non può verificare (se non per tentativi on-line) che la decifratura è andata a buon fine. La quantità g a m o d ( p ) {\displaystyle g^{a}mod(p)} è infatti casuale. Lo stesso motivo (la scelta di quantità a {\displaystyle a} e b {\displaystyle b} casuali mette al sicuro il protocollo nei confronti di reply-attack).

Vulnerabilità di DH-EKE

DH-EKE è vulnerabile ad un attacco di discovery sul database del server. Se infatti un malintenzionato riuscisse a rubare l'hash w {\displaystyle w} potrebbe inscenare un protocollo di autenticazione sia camuffandosi da server, che da client.

Augmented-EKE

Per eliminare la vulnerabilità precedente si fa in modo che il server conservi non la password, ma una quantità derivata da una funzione one-way applicata sulla stessa. In questo modo un attaccante anche rubando le informazioni presenti sul server non può utilizzarle per rimpiazzare il client.

Note

  1. ^ S. M. Bellovin e M. Merritt, Encrypted Key Exchange: Password-Based Protocols Secure Against Dictionary Attacks, Proceedings of the I.E.E.E. Symposium on Research in Security and Privacy, Oakland, maggio 1992.

Collegamenti esterni

  • http://www.cs.columbia.edu/~smb/papers/aeke.ps
  Portale Crittografia
  Portale Sicurezza informatica