Protocollo Station-to-Station

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 Diffie et. al 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 {\displaystyle p} e un generatore g {\displaystyle 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 {\displaystyle p} .

  1. Alice genera un numero casuale x {\displaystyle x} e calcola e invia g x {\displaystyle g^{x}} a Bob.
  2. Bob genera un numero casuale y {\displaystyle y} e calcola g y {\displaystyle g^{y}} .
  3. Bob calcola la chiave segreta K = ( g x ) y {\displaystyle K=(g^{x})^{y}} .
  4. Bob concatena le due potenze ( g y , g x ) {\displaystyle (g^{y},g^{x})} (l'ordine è importante), le firma con la sua chiave privata B {\displaystyle B} , e cifra il tutto con la chiave segreta K {\displaystyle K} . Invia il testo cifrato assieme alla potenza g y {\displaystyle g^{y}} ad Alice.
  5. Alice calcola la chiave segreta K = ( g y ) x {\displaystyle K=(g^{y})^{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 ( g x , g y ) {\displaystyle (g^{x},g^{y})} (l'ordine è importante), le firma con la sua chiave privata A {\displaystyle A} , e cifra il tutto con la chiave segreta K {\displaystyle 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 {\displaystyle K} , può essere usato per successive comunicazioni.

Questa versione del protocollo può essere formalizzata come segue:

  1. Alice → Bob : g x {\displaystyle g^{x}}
  2. Alice ← Bob : g y , E K ( S B ( g y , g x ) ) {\displaystyle g^{y},E_{K}(S_{B}(g^{y},g^{x}))}
  3. Alice → Bob : E K ( S A ( g x , g y ) ) {\displaystyle E_{K}(S_{A}(g^{x},g^{y}))}

Note

Bibliografia

  • W. Diffie, The first ten years of public-key cryptography, in Proceedings of the IEEE, vol. 76, n. 5, IEEE, 1988, pp. 560–577, DOI:10.1109/5.4442.
  • W. Diffie, P. C. van Oorschot e M. J. Wiener, Authentication and Authenticated Key Exchanges, in Designs, Codes and Cryptography, vol. 2, n. 2, Kluwer Academic Publishers, 1992, pp. 107–125, DOI:10.1007/BF00124891.
  • A. Menezes, P. C. van Oorschot e S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1997, pp. 519–520.
  • S. Blake-Wilson e A. Menezes, Unknown Key-Share Attacks on the Station-to-Station (STS) Protocol, in Public Key Cryptography, Lecture Notes in Computer Science, vol. 1560, Springer, 1999, pp. 154–170.
  Portale Crittografia: accedi alle voci di Wikipedia che trattano di crittografia