Passa al contenuto principale

5.8. KRB_CRED Message Specification (Specifica del Messaggio KRB_CRED)

5.8. KRB_CRED Message Specification (Specifica del Messaggio KRB_CRED)

Questa sezione specifica il formato di un messaggio che può essere utilizzato per inviare credenziali Kerberos da un principal a un altro. È presentato qui per incoraggiare l'uso di un meccanismo comune da parte delle applicazioni quando inoltrano ticket o forniscono proxy a server subordinati. Presuppone che una chiave di sessione sia già stata scambiata, forse utilizzando i messaggi KRB_AP_REQ/KRB_AP_REP.

5.8.1. KRB_CRED Definition (Definizione di KRB_CRED)

Il messaggio KRB_CRED contiene una sequenza di ticket da inviare e informazioni necessarie per utilizzare i ticket, inclusa la chiave di sessione da ciascuno. Le informazioni necessarie per utilizzare i ticket sono crittografate sotto una chiave di crittografia precedentemente scambiata o trasferita insieme al messaggio KRB_CRED. I campi del messaggio sono i seguenti:

   KRB-CRED        ::= [APPLICATION 22] SEQUENCE {
pvno [0] INTEGER (5),
msg-type [1] INTEGER (22),
tickets [2] SEQUENCE OF Ticket,
enc-part [3] EncryptedData -- EncKrbCredPart
}
   EncKrbCredPart  ::= [APPLICATION 29] SEQUENCE {
ticket-info [0] SEQUENCE OF KrbCredInfo,
nonce [1] UInt32 OPTIONAL,
timestamp [2] KerberosTime OPTIONAL,
usec [3] Microseconds OPTIONAL,
s-address [4] HostAddress OPTIONAL,
r-address [5] HostAddress OPTIONAL
}
   KrbCredInfo     ::= SEQUENCE {
key [0] EncryptionKey,
prealm [1] Realm OPTIONAL,
pname [2] PrincipalName OPTIONAL,
flags [3] TicketFlags OPTIONAL,
authtime [4] KerberosTime OPTIONAL,
starttime [5] KerberosTime OPTIONAL,
endtime [6] KerberosTime OPTIONAL,
renew-till [7] KerberosTime OPTIONAL,
srealm [8] Realm OPTIONAL,
sname [9] PrincipalName OPTIONAL,
caddr [10] HostAddresses OPTIONAL
}

pvno and msg-type

Questi campi sono descritti sopra nella Sezione 5.4.1. msg-type è KRB_CRED.

tickets

Questi sono i ticket ottenuti dal KDC specificamente per l'uso da parte del destinatario previsto. I ticket successivi sono accoppiati con la corrispondente sequenza KrbCredInfo dalla enc-part del messaggio KRB-CRED.

enc-part

Questo campo contiene una codifica della sequenza EncKrbCredPart crittografata sotto la chiave di sessione condivisa dal mittente e dal destinatario previsto, con un valore di key usage di 14. Questa codifica crittografata viene utilizzata per il campo enc-part del messaggio KRB-CRED.

Nota di implementazione: Le implementazioni di alcune applicazioni, in particolare alcune implementazioni del meccanismo Kerberos GSS-API, non crittografano separatamente i contenuti dell'EncKrbCredPart del messaggio KRB-CRED quando lo inviano. Nel caso di quei meccanismi GSS-API, questo non è una vulnerabilità di sicurezza, poiché l'intero messaggio KRB-CRED è esso stesso incorporato in un messaggio crittografato.

nonce

Se pratico, un'applicazione PUÒ richiedere l'inclusione di un nonce generato dal destinatario del messaggio. Se lo stesso valore è incluso come nonce nel messaggio, fornisce evidenza che il messaggio è fresco e non è stato replicato da un attaccante. Un nonce NON DEVE MAI essere riutilizzato.

timestamp and usec

Questi campi specificano il tempo in cui è stato generato il messaggio KRB-CRED. Il tempo viene utilizzato per fornire garanzia che il messaggio è fresco.

s-address and r-address

Questi campi sono descritti sopra nella Sezione 5.6.1. Vengono utilizzati opzionalmente per fornire ulteriore garanzia dell'integrità del messaggio KRB-CRED.

key

Questo campo esiste nel corrispondente ticket passato dal messaggio KRB-CRED e viene utilizzato per passare la chiave di sessione dal mittente al destinatario previsto. La codifica del campo è descritta nella Sezione 5.2.9.

I seguenti campi sono opzionali. Se presenti, possono essere associati alle credenziali nel file ticket remoto. Se omessi, si presume che il destinatario delle credenziali conosca già i loro valori.

prealm and pname

Il nome e il realm dell'identità principal delegata.

flags, authtime, starttime, endtime, renew-till, srealm, sname, and caddr

Questi campi contengono i valori dei corrispondenti campi dal ticket trovato nel campo ticket. Le descrizioni dei campi sono identiche alle descrizioni nel messaggio KDC-REP.