Come funziona esattamente la crittografia TACACS +?

2

Sto cercando di capire come funziona la crittografia TACACS +. Ho letto il progetto TACACS + RFC di Cisco ma è troppo tecnico e non è molto facile da capire. Le mie domande sono:

  1. Il dispositivo TACACS + (client) si autentica sul server prima di inviare qualsiasi richiesta? Sta usando una tecnica di challenge-response e quali algoritmi sono usati per crittografare i pacchetti challenge / response?

  2. Che cosa accade quando un utente tenta di accedere a un dispositivo tramite TACACS +? Come vengono inviate le richieste? L'intero pacchetto include nome utente + password crittografati e quale algoritmo di crittografia viene utilizzato?

posta ConnectingPeople 14.11.2017 - 09:29
fonte

1 risposta

1

TACACS + richiede che una chiave precondivisa (la lunghezza della chiave sia limitata a 63 caratteri) sia configurata. Questo è il modo in cui il dispositivo si autentica sul server. Questa non è una "sfida-risposta".

Questa chiave precondivisa viene utilizzata per impostare la crittografia che crittografa l'intero pacchetto, il che significa che i nomi utente e le password sono protetti fin dall'inizio.

Il modo in cui viene crittografato è spiegato nella RFC nella sezione "Body Encryption". È una versione di One Time Pad.

In this case, the packet body is encrypted by XOR-ing it byte-wise
with a pseudo random pad.

ENCRYPTED {data} == data ^ pseudo_pad

The pad is generated by concatenating a series of MD5 hashes (each 16 bytes long) and truncating it to the length of the input data.

Whenever used in this document, MD5 refers to the "RSA Data Security, Inc. MD5 Message-Digest Algorithm" as specified in [3].

pseudo_pad = {MD5_1 [,MD5_2 [ ... ,MD5_n]]} truncated to len(data)

The first MD5 hash is generated by concatenating the session_id, the secret key, the version number and the sequence number and then run- ning MD5 over that stream. All of those input values are available in the packet header, except for the secret key which is a shared secret between the TACACS+ client and daemon.

The version number is the one byte combination of the major and minor version numbers.

The session id is used in the byte order in which it appears in the TACACS+ header. (i.e. in network byte order, not host byte order).

Subsequent hashes are generated by using the same input stream, but concatenating the previous hash value at the end of the input stream.

MD5_1 = MD5{session_id, key, version, seq_no}

MD5_2 = MD5{session_id, key, version, seq_no, MD5_1}

....

MD5_n = MD5{session_id, key, version, seq_no, MD5_n-1}

Il processo di autenticazione dell'utente è descritto qui:

link

Aggiornamento 01.03.2018:

Sembra che Cisco abbia aggiornato TACACS + e che gli utenti siano ora in grado di crittografare le password con AES128 quando si utilizzano switch ad alte prestazioni più recenti. Finora questo solo crittografa le password. non modifica la crittografia del carico utile del protocollo TACACS + . Ma è qualcosa. Nota però che non tutti i prodotti possono farne uso.

    
risposta data 14.11.2017 - 09:46
fonte

Leggi altre domande sui tag