Passa al contenuto principale

5.4. Specifications for the AS and TGS Exchanges (Specifiche per gli Scambi AS e TGS)

5.4. Specifications for the AS and TGS Exchanges (Specifiche per gli Scambi AS e TGS)

Panoramica

Questa sezione definisce le strutture dei messaggi per gli scambi Authentication Service (AS, servizio di autenticazione) e Ticket-Granting Service (TGS, servizio di rilascio ticket). Questi scambi condividono una struttura di messaggio comune con lievi variazioni.

5.4.1. Definizione di KRB_KDC_REQ

La struttura del messaggio di richiesta è condivisa tra AS e TGS:

Struttura comune

Sia KRB_AS_REQ che KRB_TGS_REQ utilizzano la struttura KDC-REQ contenente:

  • pvno - Numero di versione del protocollo (5)
  • msg-type - Tipo di messaggio (AS-REQ o TGS-REQ)
  • padata - Dati di pre-autenticazione (sequenza)
  • req-body - Corpo della richiesta con parametri dettagliati

Corpo della richiesta (KDC-REQ-BODY)

Contiene:

  • kdc-options - Flag che indicano le opzioni richieste
  • cname - Nome del client (opzionale in TGS-REQ)
  • realm - Realm del servizio
  • sname - Nome del servizio (opzionale)
  • from - Ora di inizio richiesta (opzionale)
  • till - Ora di fine richiesta
  • rtime - Ora renew-till richiesta (opzionale)
  • nonce - Valore casuale per protezione da replay
  • etype - Tipi di crittografia richiesti (sequenza)
  • addresses - Indirizzi del client (opzionale)
  • enc-authorization-data - Dati di autorizzazione crittografati (opzionale)
  • additional-tickets - Ticket aggiuntivi (opzionale, per TGS-REQ)

Flag delle opzioni KDC

Le opzioni disponibili includono:

  • FORWARDABLE, FORWARDED
  • PROXIABLE, PROXY
  • ALLOW-POSTDATE, POSTDATED
  • RENEWABLE, RENEWABLE-OK
  • ENC-TKT-IN-SKEY
  • RENEW, VALIDATE
  • altre opzioni

5.4.2. Definizione di KRB_KDC_REP

La struttura del messaggio di risposta è condivisa tra AS e TGS:

Struttura comune

Sia KRB_AS_REP che KRB_TGS_REP utilizzano la struttura KDC-REP:

  • pvno - Numero di versione del protocollo (5)
  • msg-type - Tipo di messaggio (AS-REP o TGS-REP)
  • padata - Dati di pre-autenticazione (opzionale)
  • crealm - Realm del client
  • cname - Nome del client
  • ticket - Il ticket emesso
  • enc-part - Parte crittografata della risposta

Parte crittografata (EncKDCRepPart)

Contiene (crittografata per il client):

  • key - Chiave di sessione
  • last-req - Informazioni sull'ultima richiesta
  • nonce - Dalla richiesta (per l'abbinamento)
  • key-expiration - Scadenza della chiave del client (opzionale)
  • flags - Flag del ticket
  • authtime - Momento dell'autenticazione iniziale
  • starttime - Quando il ticket diventa valido (opzionale)
  • endtime - Ora di scadenza del ticket
  • renew-till - Scadenza rinnovabile (opzionale)
  • srealm - Realm del servizio
  • sname - Nome del servizio
  • caddr - Indirizzi del client (opzionale)
  • encrypted-pa-data - Dati di pre-auth crittografati (opzionale)

Requisiti di elaborazione

Elaborazione della richiesta

  • Validare la struttura della richiesta
  • Verificare la pre-autenticazione
  • Controllare policy e vincoli
  • Generare la chiave di sessione
  • Emettere il ticket con i flag appropriati
  • Crittografare la risposta per il client

Elaborazione della risposta

  • Decifrare la risposta con la chiave appropriata
  • Verificare che il nonce corrisponda
  • Estrarre chiave di sessione e ticket
  • Validare le proprietà del ticket
  • Memorizzare per uso successivo

Differenze tra scambio AS e TGS

Scambio AS

  • Il client si autentica con la chiave a lungo termine
  • La pre-autenticazione è spesso richiesta
  • Emette il TGT iniziale

Scambio TGS

  • Il client si autentica con il TGT
  • Utilizza la chiave di sessione dal TGT
  • Emette ticket di servizio
  • Supporta rinnovo e convalida dei ticket

Riferimento

Per le specifiche complete dei messaggi, fare riferimento alla Sezione 5.4 di RFC 4120.