Passa al contenuto principale

6.7.3. Keyed MD5 and Meticulous Keyed MD5 Authentication (Autenticazione MD5 con chiave e MD5 meticoloso con chiave)

6.7.3. Keyed MD5 and Meticulous Keyed MD5 Authentication (Autenticazione MD5 con chiave e MD5 meticoloso con chiave)

Nota: L'uso dell'autenticazione basata su MD5 è fortemente sconsigliato a causa delle debolezze crittografiche note di MD5. Tuttavia, è documentato qui per compatibilità con le implementazioni esistenti.

L'autenticazione MD5 con chiave fornisce una protezione crittografica più forte rispetto alla password semplice, utilizzando l'algoritmo MD5 [MD5] per calcolare un digest di autenticazione basato sul contenuto del pacchetto e una chiave segreta condivisa.

Il formato della sezione di autenticazione per MD5 con chiave è descritto nella sezione 4.3.

Keyed MD5 Authentication (Autenticazione MD5 con chiave):

Quando si utilizza Keyed MD5 (Type 2), il numero di sequenza viene incrementato occasionalmente. Questo fornisce una protezione limitata contro attacchi di riproduzione, ma non richiede una sincronizzazione stretta del numero di sequenza tra i sistemi.

Meticulous Keyed MD5 Authentication (Autenticazione MD5 meticolosa con chiave):

Quando si utilizza Meticulous Keyed MD5 (Type 3), il numero di sequenza DEVE essere incrementato di uno per ogni pacchetto di controllo BFD successivo trasmesso per una sessione. Questo fornisce una protezione più forte contro attacchi di riproduzione.

Calcolo del digest:

Il digest MD5 viene calcolato come segue:

  1. Il campo Auth Key/Digest viene impostato a zero (padding con zeri fino a 16 byte se necessario).
  2. La chiave di autenticazione condivisa viene aggiunta alla fine del pacchetto di controllo BFD.
  3. Il digest MD5 viene calcolato sull'intero pacchetto risultante (inclusa la chiave).
  4. Il digest risultante (16 byte) viene inserito nel campo Auth Key/Digest.
  5. La chiave viene rimossa (non viene trasmessa).

Validazione del digest:

Il sistema ricevente esegue lo stesso calcolo utilizzando la chiave condivisa configurata localmente e confronta il digest calcolato con il digest ricevuto. Se corrispondono, il pacchetto è considerato autenticato. Se non corrispondono, il pacchetto DEVE essere scartato.

Gestione del numero di sequenza:

Per Keyed MD5, il sistema ricevente DEVE accettare il pacchetto se il numero di sequenza ricevuto è maggiore dell'ultimo numero di sequenza accettato, o se la differenza tra il numero di sequenza ricevuto e l'ultimo numero di sequenza accettato è minore di 3 * Detect Mult * (periodo di trasmissione massimo).

Per Meticulous Keyed MD5, il sistema ricevente DEVE accettare il pacchetto solo se il numero di sequenza ricevuto è maggiore dell'ultimo numero di sequenza accettato. Questa è una verifica molto più stretta che fornisce una protezione migliore contro attacchi di riproduzione.

Cambio della chiave:

Il cambio della chiave viene gestito in modo simile al cambio della password semplice, utilizzando il campo Auth Key ID. Questo consente un cambio della chiave senza interruzione della sessione BFD.