Passa al contenuto principale

3.4.3. Sequence Number Verification

Tutte le implementazioni AH DEVONO supportare il servizio anti-replay, sebbene il suo utilizzo possa essere abilitato o disabilitato dal ricevitore su base per-SA. L'anti-replay è applicabile sia alle SA unicast che multicast. Tuttavia, questo standard non specifica meccanismi per fornire anti-replay per una SA con più mittenti (unicast o multicast). In assenza di negoziazione (o configurazione manuale) di un meccanismo anti-replay per tale SA, si raccomanda che il controllo del Sequence Number da parte del mittente e del ricevitore per la SA sia disabilitato (tramite negoziazione o configurazione manuale), come notato di seguito.

Se il ricevitore non abilita l'anti-replay per una SA, non vengono eseguiti controlli in entrata sul Sequence Number. Tuttavia, dal punto di vista del mittente, l'impostazione predefinita è presumere che l'anti-replay sia abilitato presso il ricevitore. Per evitare che il mittente esegua monitoraggio del numero di sequenza e configurazione SA non necessari (vedere la Sezione 3.3.2, "Sequence Number Generation"), se viene impiegato un protocollo di stabilimento SA come IKE, il ricevitore DOVREBBE notificare al mittente, durante lo stabilimento della SA, se il ricevitore non fornirà protezione anti-replay.

Se il ricevitore ha abilitato il servizio anti-replay per questa SA, il contatore di pacchetti ricevuti per la SA DEVE essere inizializzato a zero quando viene stabilita la SA. Per ogni pacchetto ricevuto, il ricevitore DEVE verificare che il pacchetto contenga un Sequence Number che non duplichi il Sequence Number di qualsiasi altro pacchetto ricevuto durante la vita di questa SA. Questo DOVREBBE essere il primo controllo AH applicato a un pacchetto dopo che è stato abbinato a una SA, per accelerare il rifiuto di pacchetti duplicati.

I duplicati vengono rifiutati attraverso l'uso di una finestra di ricezione scorrevole. Il modo in cui la finestra viene implementata è una questione locale, ma il seguente testo descrive la funzionalità che l'implementazione deve mostrare.

Il bordo "destro" della finestra rappresenta il valore del Sequence Number più alto e convalidato ricevuto su questa SA. I pacchetti che contengono numeri di sequenza inferiori al bordo "sinistro" della finestra vengono rifiutati. I pacchetti che rientrano nella finestra vengono controllati rispetto a un elenco di pacchetti ricevuti all'interno della finestra.

Se l'opzione ESN è selezionata per una SA, solo i 32 bit di ordine inferiore del numero di sequenza vengono trasmessi esplicitamente, ma il ricevitore impiega il numero di sequenza completo calcolato utilizzando i 32 bit di ordine superiore per la SA indicata (dal suo contatore locale) quando controlla il Sequence Number ricevuto rispetto alla finestra di ricezione. Nel costruire il numero di sequenza completo, se i 32 bit di ordine inferiore trasportati nel pacchetto sono di valore inferiore ai 32 bit di ordine inferiore del contatore del numero di sequenza del ricevitore, il ricevitore presume che i 32 bit di ordine superiore siano stati incrementati, passando a un nuovo sottospazio del numero di sequenza. (Questo algoritmo accoglie gap nella ricezione per una singola SA grandi fino a 2**32-1 pacchetti. Se si verifica un gap maggiore, possono essere impiegati controlli euristici aggiuntivi per la ri-sincronizzazione del contatore del numero di sequenza del ricevitore, come descritto nell'Appendice B.)

Se il pacchetto ricevuto rientra nella finestra e non è un duplicato, o se il pacchetto è a destra della finestra, allora il ricevitore procede alla verifica dell'ICV. Se la validazione dell'ICV fallisce, il ricevitore DEVE scartare il datagramma IP ricevuto come non valido. Questo è un evento verificabile. La voce del registro di audit per questo evento DOVREBBE includere il valore SPI, la data/ora, l'indirizzo sorgente, l'indirizzo di destinazione, il Sequence Number e (in IPv6) il Flow ID. La finestra di ricezione viene aggiornata solo se la verifica dell'ICV ha successo.

Una dimensione MINIMA della finestra di 32 pacchetti DEVE essere supportata, ma una dimensione della finestra di 64 è preferita e DOVREBBE essere impiegata come impostazione predefinita. Un'altra dimensione della finestra (maggiore del MINIMO) PUÒ essere scelta dal ricevitore. (Il ricevitore NON notifica al mittente la dimensione della finestra.) La dimensione della finestra di ricezione dovrebbe essere aumentata per ambienti ad alta velocità, indipendentemente dalle questioni di garanzia. I valori per le dimensioni minime e raccomandate della finestra di ricezione per dispositivi a velocità molto elevata (ad esempio, multi-gigabit/secondo) non sono specificati da questo standard.