MS-CHAPv2
# MS-CHAPv2

MS-CHAP versione 2 deriva dal protocollo MS-CHAP. In MS-CHAPV2 il processo di autenticazione è reciproco, il client e il server si presentano e il server deve dimostrare al client che è in grado di accedere al database dove è contenuta la password dell'utente che sta tentando la connessione.

In linea di massima, i passi compiuti dal processo di autenticazione sono:

* Il client contatta il server e stabilisce una sessione.
* Il server di autenticazione invia al client un messaggio composto da:
   * un identificatore della sessione (IdS)
   * una stringa pseudocasuale (A).
* Il client riceve il messaggio dal server e invia una risposta composta da:
   * Username
   * Una stringa fittizia (B).
   * La stringa pseudocasuale (A), l'identificativo di sessione (IdS), la password utente tutto cifrato.
* Il server riceve il messaggio dal client lo verifica e invia la relativa risposta composta da:
   * L'esito del tentativo di connessione.
   * La stringa fittizia (B) e la password utente tutto cifrato.
* Il client riceve la risposta e se è avvenuta l'autenticazione utilizza la sessione altrimenti interrompe la connessione.

Rispetto al MS-CHAP l'MS-CHAP v2 è più sicuro, questo perché:

* Ogni volta che l'utente si collega è generata una chiave per crittografare i dati basata sia sulla password utente sia su una stringa casuale. Nella versione v1 essendo la chiave generata solo a partire dalla password la chiave di crittografia è sempre la stessa.
* I dati inviati e quelli trasmessi sono cifrati con chiavi generate separatamente e non come nella versione v1 dove la chiave era sempre la stessa.
