Protocollo Station-to-Station

Da testwiki.
Vai alla navigazione Vai alla ricerca

Il protocollo Station-to-Station (STS) è un protocollo crittografico per lo scambio di chiavi con autenticazione (authenticated key exchange, AKE). È una variante dello scambio di chiavi Diffie-Hellman, il quale è debole contro un attacco del tipo man-in-the-middle, dove un terzo utente si interpone nella conversazione e finge di essere il rispettivo interlocutore con entrambi i soggetti. Ideato da Whitfield Diffie, Paul C. van Oorschot e Michael J. Wiener, il protocollo venne originariamente presentato al 1987 International Switching Symposium (ISS87) e successivamente pubblicato in Template:Cita nel 1992. Questo metodo fornisce autenticazione tramite l'uso di firma digitale e certificati digitali.

Descrizione

La seguente descrizione prevede l'operazione di esponenziazione alla base dello scambio di chiavi, come da scambio Diffie-Hellman originale. Tuttavia, il metodo può essere modificato per funzionare, ad esempio, con crittografia a crittografia ellittica.

Parametri iniziali

  • Entrambe le parti devono avere una coppia di chiavi crittografiche (pubblica e privata) per potersi autenticare.
  • Bisogna inoltre generare i parametri necessari a stabilire la chiave comune: un gruppo ciclico p e un generatore g per tale gruppo. Questi parametri possono essere pubblici. Per una maggiore sicurezza, ciascuna parte può stabilire i suoi parametri.[1]

Protocollo base

Segue la versione base del protocollo. Se un passo non può essere completato, il protocollo viene interrotto. Tutte le operazioni di esponenziazione appartengono al gruppo p.

  1. Alice genera un numero casuale x e calcola e invia gx a Bob.
  2. Bob genera un numero casuale y e calcola gy.
  3. Bob calcola la chiave segreta K=(gx)y.
  4. Bob concatena le due potenze (gy,gx) (l'ordine è importante), le firma con la sua chiave privata B, e cifra il tutto con la chiave segreta K. Invia il testo cifrato assieme alla potenza gy ad Alice.
  5. Alice calcola la chiave segreta K=(gy)x.
  6. Alice decifra la parte restante del messaggio di Bob ed effettua la verifica tramite la chiave pubblica di Bob.
  7. Alice concatena le due potenze (gx,gy) (l'ordine è importante), le firma con la sua chiave privata A, e cifra il tutto con la chiave segreta K. Invia il testo cifrato a Bob.
  8. Bob decifra il messaggio di Alice ed effettua la verifica tramite la chiave pubblica di Alice.

Ora Alice e Bob sono mutuamente autenticati e posseggono una chiave segreta. Tale segreto, K, può essere usato per successive comunicazioni.

Questa versione del protocollo può essere formalizzata come segue:

  1. Alice → Bob : gx
  2. Alice ← Bob : gy,EK(SB(gy,gx))
  3. Alice → Bob : EK(SA(gx,gy))

Note

Bibliografia

Template:Portale