3.2. The Client/Server Authentication Exchange (Lo scambio di autenticazione client/server)
3.2. The Client/Server Authentication Exchange (Lo scambio di autenticazione client/server)
Panoramica
Lo scambio di autenticazione client/server (Client/Server, CS) viene usato quando un client desidera autenticarsi presso un server applicativo utilizzando un service ticket ottenuto dal TGS (Ticket-Granting Service).
Flusso dei messaggi
- KRB_AP_REQ: il client invia la richiesta di autenticazione al server applicativo
- contiene il service ticket
- contiene l'authenticator (cifrato con la session key)
- KRB_AP_REP: risposta opzionale di autenticazione reciproca dal server
Il messaggio KRB_AP_REQ
Componenti
- Ticket: cifrato con la long-term key del server, contiene:
- identità del client
- session key
- periodo di validità
- Authenticator: cifrato con la session key, contiene:
- principal name del client
- timestamp
- sub-session key opzionale
Processo di generazione
Il client costruisce l'authenticator e lo impacchetta insieme al ticket per la trasmissione al server applicativo.
Ricezione e verifica
Il server applicativo:
- decifra il ticket usando la propria long-term key
- estrae la session key
- decifra e convalida l'authenticator
- controlla il timestamp per la protezione da replay
Il messaggio KRB_AP_REP
Scopo
Fornisce l'autenticazione reciproca: dimostra al client che il server possiede la session key.
Generazione
Il server crea una risposta cifrata con la session key, contenente il timestamp dall'authenticator del client.
Ricezione
Il client verifica il timestamp per confermare che il server possiede la session key.
Utilizzo della chiave di crittografia
Dopo un'autenticazione riuscita, la session key (o la sub-session key opzionale) può essere usata per:
- cifrare i messaggi successivi
- fornire protezione dell'integrità
- stabilire un canale sicuro
Riferimento
Per i dettagli tecnici completi, vedere RFC 4120 Section 3.2.