6.7.4. Keyed SHA1 and Meticulous Keyed SHA1 Authentication (Autenticazione SHA1 con chiave e SHA1 meticoloso con chiave)
6.7.4. Keyed SHA1 and Meticulous Keyed SHA1 Authentication (Autenticazione SHA1 con chiave e SHA1 meticoloso con chiave)
L'autenticazione SHA1 con chiave fornisce una protezione crittografica più forte rispetto a MD5, utilizzando l'algoritmo SHA-1 [FIPS-180-2] per calcolare un hash di autenticazione basato sul contenuto del pacchetto e una chiave segreta condivisa.
Il formato della sezione di autenticazione per SHA1 con chiave è descritto nella sezione 4.4.
Keyed SHA1 Authentication (Autenticazione SHA1 con chiave):
Quando si utilizza Keyed SHA1 (Type 4), 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 SHA1 Authentication (Autenticazione SHA1 meticolosa con chiave):
Quando si utilizza Meticulous Keyed SHA1 (Type 5), 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 dell'hash:
L'hash SHA1 viene calcolato come segue:
- Il campo
Auth Key/Hashviene impostato a zero (padding con zeri fino a 20 byte se necessario). - La chiave di autenticazione condivisa viene aggiunta alla fine del pacchetto di controllo BFD.
- L'hash SHA1 viene calcolato sull'intero pacchetto risultante (inclusa la chiave).
- L'hash risultante (20 byte) viene inserito nel campo
Auth Key/Hash. - La chiave viene rimossa (non viene trasmessa).
Validazione dell'hash:
Il sistema ricevente esegue lo stesso calcolo utilizzando la chiave condivisa configurata localmente e confronta l'hash calcolato con l'hash ricevuto. Se corrispondono, il pacchetto è considerato autenticato. Se non corrispondono, il pacchetto DEVE essere scartato.
Gestione del numero di sequenza:
Per Keyed SHA1, 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 SHA1, 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 e al cambio della chiave MD5, utilizzando il campo Auth Key ID. Più coppie di Auth Key ID e chiave possono essere configurate su ciascun sistema, consentendo un cambio della chiave senza interruzione della sessione BFD.
Raccomandazione:
L'autenticazione SHA1 è preferibile rispetto a MD5 a causa della maggiore forza crittografica di SHA-1. Tuttavia, per applicazioni che richiedono il massimo livello di sicurezza, dovrebbe essere considerato l'uso di algoritmi più moderni quando disponibili in future estensioni di questo protocollo.