Autenticazione Kerberos

4

Sto cercando di capire l'autenticazione Kerberos.

Finora la mia comprensione è:

Supposing 'Alice' (A) wants to talk to 'Bob' (B).

Step 1:
A -> S: {A, B, None} K(A, S) Where S is the Kerberos Server, and K(A,S) is a key to communicate between A and S.

Step 2:
S->A {K(A,B), {K(A,B), A} K(B,S)} K(A,S) Server returns the key used to communicate between A and B and a second copy of such key encrypted with a key used to share information between B and S K(B,S). K(B,S) is not known to A. All of this is encrypted with K(A,S).

Step 3:
{K(A,B), A} K(B,S) A sends B the key they will used encrypted with K(B,S)

Step 4:
B->A {Nonce} K(A,B) B decrypts the message and sends back a Nonce encrypted using K(A,B)

Step 5:
A->B {Nonce+1} K(A,B) Sanity test that they are on the same key

Quindi:

If S doesn't authorize the communication between A and B, it wouldn't have certified the key K(A,B) to B. By encrypting {K(A,B) A} K(B,S) we guarantee that S has validated the process. A doesn't have K(B,S), so couldn't validate it itself.

If 'A' used a different key, say K(B,S)' which they attempted passing off, they would be sending: {K(A,B) A} K(B,S)'. When B deciphered this using K(B,S), as the message would have been encrypted using a different key, it wouldn't result in K(A,B), rather some K(A,B)'. So, when B sent back {Nonce} K(A,B)' A wouldn't be able to retrieve the Nonce and complete the authentication.

L'ho capito correttamente?

Inoltre (penso che questa possa essere una domanda separata): in che modo Kerberos imposta in modo sicuro K (A, S) e K (B, S) in modo sicuro? E come fa Kerberos a garantire che "A" sia chi dicono di essere?

    
posta MrD 28.03.2015 - 16:08
fonte

1 risposta

1

How does Kerberos independently setup K(A,S) and K(B,S) securely?

Per gli utenti, i tasti sono derivati dalla password dell'account (usando i nomi di regno e regno come sale). Quando si imposta o modifica la password sul proprio account, il KDC memorizza le chiavi derivate da esso. Quando accedi con kinit, il client Kerberos ricava la stessa chiave di KDC.

Per i servizi, le chiavi vengono generate casualmente sul KDC e fornite al servizio in un file "keytab" fuori banda. Di solito la generazione della chiave avviene tramite Kadmin RPC protetto utilizzando le credenziali utente di un amministratore (ed eventualmente fornito tramite HTTPS, SFTP, chiavetta USB, ecc.)

And how does Kerberos ensure that 'A' is who they say they are?

Come molti altri sistemi, presuppone che solo il proprietario dell'account conosca la chiave segreta, pertanto chiunque conosca la chiave segreta deve essere il proprietario dell'account.

Si noti inoltre che poiché il servizio stesso ha K (B, S) può creare biglietti "falsi" per A → B; a volte è considerata una funzionalità.

    
risposta data 26.12.2015 - 11:57
fonte

Leggi altre domande sui tag