ANTI-REPLAY IPSEC
Perché un pacchetto cifrato può comunque essere una ritrasmissione illecita?
Il testo cifrato copiato può arrivare di nuovo senza essere stato alterato. La protezione anti-replay ESP associa i numeri di sequenza a un'associazione di sicurezza, controlla una finestra di ricezione limitata e aggiorna definitivamente lo stato dopo l'autenticazione. La protezione si applica agli endpoint del tunnel selezionati; i comandi applicativi richiedono comunque regole proprie per i duplicati e la validità temporale.
Endpoint del tunnel
I gateway alle estremità autenticano il traffico; lo switch intermedio lo inoltra.
Finestra dei numeri di sequenza
Un numero di sequenza non ancora ricevuto all'interno della finestra può essere verificato; i duplicati vengono scartati.
Aggiornamento definitivo dopo la verifica
Solo un pacchetto autenticato fa avanzare lo stato di ricezione attendibile.
Mappare gli endpoint e l'ambito di protezione.
Confermare il protocollo e le impostazioni effettivi.
Eseguire test autorizzati con dati innocui.
Lista di controllo per selezione e verifica — espandi
Identificare gli endpoint e la SA; confermare le impostazioni anti-replay; eseguire test autorizzati con dati innocui usando pacchetti fuori ordine, duplicati e non validi.
Un collegamento dati remoto è cifrato: perché allora un gateway di sicurezza registra comunque i numeri di sequenza dei pacchetti? Impedire agli estranei di leggere un messaggio e impedire che lo stesso messaggio venga accettato di nuovo sono obiettivi diversi. Qualcuno può copiare un pacchetto legittimo e inviarlo nuovamente senza comprenderne il contenuto. La protezione anti-replay fornisce al ricevitore un registro dei pacchetti già accettati.

Un pacchetto invariato può comunque essere un duplicato
Immaginate un ordine di lavoro sigillato. Il sigillo può contribuire a dimostrare che il contenuto non è stato alterato, ma da solo non dimostra che lo stesso ordine non sia già stato consegnato. Analogamente, un pacchetto cifrato intercettato può essere inviato nuovamente, senza che l'attaccante lo decifri o crei un nuovo comando valido.
Questa analogia spiega soltanto la consegna ripetuta. I protocolli reali utilizzano chiavi e algoritmi di autenticazione. Riservatezza, integrità e protezione anti-replay rispondono a esigenze diverse. Il rilevamento degli errori Ethernet non sostituisce l'autenticazione crittografica: rilevare errori di trasmissione è diverso dal verificare se un pacchetto è stato creato da chi possiede la chiave appropriata.
Una descrizione di prodotto che menziona la cifratura non chiarisce di per sé come vengano rifiutati i vecchi pacchetti. Identificare il protocollo, i suoi effettivi endpoint di sicurezza, le impostazioni negoziate e i controlli del ricevitore. Questo articolo utilizza IPsec ESP come esempio; non attribuisce funzionalità anti-replay a ogni dispositivo industriale lungo il percorso.
Individuare i due endpoint che mantengono il registro
IPsec può proteggere il traffico su una rete IP, ed ESP è uno dei suoi meccanismi di protezione dei pacchetti. Un'associazione di sicurezza, o SA, è un insieme di parametri e meccanismi di protezione per una sola direzione, che comprende le relative chiavi, gli algoritmi e lo stato. I registri delle due direzioni non devono essere trattati come un unico contatore condiviso.
Il mittente numera i pacchetti appartenenti a una SA. Il ricevitore seleziona l'associazione pertinente e controlla il proprio registro; non confronta un numero con tutti i dispositivi della rete. Il Security Parameters Index (SPI) di ESP aiuta a identificare l'associazione, mentre il suo numero di sequenza supporta i controlli anti-replay. Questi campi devono essere coperti dalla relativa protezione dell'integrità.
Un server seriale, uno switch Ethernet industriale e un gateway di sicurezza esterno possono essere tutti presenti nello stesso collegamento. Il server per dispositivi seriali FCT-1100-F1S1 di Feichang offre un contesto di prodotto reale per la conversione da seriale a rete; ciò non significa che implementi IPsec. Se i gateway esterni terminano il tunnel, sono essi a eseguire i controlli degli endpoint. Un normale switch di inoltro non acquisisce automaticamente una finestra anti-replay.
Perché non accettare soltanto numeri superiori all'ultimo?
I pacchetti non arrivano sempre nell'ordine in cui sono stati inviati. Percorsi, code ed elaborazione parallela possono far arrivare per primo un pacchetto successivo. Un ricevitore che rifiutasse ogni numero inferiore al massimo registrato potrebbe scartare traffico legittimo in ritardo. Il controllo deve riconoscere i duplicati tollerando al contempo un certo arrivo fuori ordine.
Si può immaginare una finestra scorrevole come un insieme di caselle numerate. Ogni casella registra se un pacchetto con quel numero di sequenza è già stato autenticato e accettato; non memorizza l'intero pacchetto. L'estremo superiore segue il numero autenticato più alto e quello inferiore limita il ritardo con cui un pacchetto non ancora ricevuto può arrivare fuori ordine. Un pacchetto troppo vecchio viene scartato.
Come esempio didattico, supponiamo che la finestra contenga i numeri da 101 a 108 e che 106 sia già stato accettato. Un secondo 106 è un duplicato. Se 105 non è ancora stato ricevuto, può passare all'autenticazione. Le otto caselle sono soltanto un esempio, non una dimensione standard della finestra né una specifica di un prodotto Feichang.

Spostare la finestra solo dopo il successo dell'autenticazione
Quando arriva il pacchetto 109, il ricevitore non deve far avanzare il proprio registro soltanto perché il numero è maggiore. Altrimenti un attaccante potrebbe falsificare un numero molto grande e spingere il traffico legittimo fuori dalla finestra. L'ordine dei controlli conta più del memorizzare l'espressione «far scorrere la finestra».
Un'implementazione può innanzitutto eseguire un controllo preliminare della sequenza e scartare un duplicato evidente o un vecchio pacchetto. Un pacchetto ammissibile deve comunque superare il controllo di integrità o di autenticazione appropriato. Solo dopo il suo esito positivo viene registrato come ricevuto e, se necessario, la finestra avanza. Un controllo preliminare non rende il pacchetto attendibile.
Un pacchetto che non supera l'autenticazione non deve occupare una nuova casella né far avanzare il numero autenticato più alto. Algoritmi e implementazioni diversi possono organizzare diversamente l'elaborazione interna. La distinzione essenziale è quella tra filtro iniziale, convalida crittografica e aggiornamento definitivo dello stato. Un numero maggiore, da solo, non autorizza la consegna.
Perdita, arrivo fuori ordine e replay possono apparire simili
La finestra può accettare un numero non ancora ricevuto che arriva entro il suo intervallo, ma non può accettare traffico con un ritardo arbitrariamente elevato. Un forte arrivo fuori ordine può collocare un pacchetto legittimo al di sotto del limite inferiore. Un aumento del conteggio degli scarti non dimostra quindi, da solo, un attacco, una fibra danneggiata o una porta dello switch guasta.
Correlare l'orario, la direzione, l'associazione di sicurezza e i registri applicativi. Verificare se nello stesso momento sono cambiati il percorso, l'accumulo nelle code o il carico del gateway. Aumentare la finestra non è una soluzione universale: verificare i limiti dell'implementazione, i costi di elaborazione e il ritardo accettabile. Non disabilitare la protezione soltanto per nascondere un allarme.
La finestra non recupera un pacchetto perso. Determina se un pacchetto può proseguire; la ritrasmissione, il ripristino della sessione e il comportamento in caso di timeout applicativo spettano al meccanismo di trasporto o applicativo appropriato. Una finestra anti-replay non è un protocollo di consegna affidabile né un buffer generico per riordinare i pacchetti.

Un nuovo pacchetto del tunnel può contenere un vecchio comando applicativo
Un'applicazione può inviare nuovamente la stessa operazione. L'endpoint di sicurezza può incapsulare la seconda richiesta in un nuovo pacchetto esterno con un nuovo numero di sequenza. A livello del tunnel non si tratta del pacchetto ESP precedentemente accettato; a livello applicativo può comunque trattarsi di un'operazione duplicata.
La protezione anti-replay non garantisce quindi che ogni comando venga eseguito una sola volta. A seconda del protocollo effettivo, le operazioni importanti possono richiedere identificatori di transazione, gestione delle richieste duplicate, scadenze, autorizzazioni e verifiche rispetto allo stato corrente. Queste funzionalità richiedono accordo e verifica su entrambi gli endpoint; la sola aggiunta di un campo non garantisce una sicurezza completa.
Anche un pacchetto valido, non ancora ricevuto e interno alla finestra non è necessariamente tempestivo per l'operazione aziendale. Decidere se un comando in ritardo debba essere eseguito spetta all'applicazione. Occorre distinguere la duplicazione dei pacchetti, l'autenticità del mittente e l'adeguatezza dell'azione nel momento presente.
Tradurre il meccanismo in una documentazione di progetto verificabile
Indicare gli endpoint del tunnel e l'ambito che proteggono effettivamente. Verificare il protocollo, la negoziazione, la finestra supportata e il significato dei log. Le interfacce seriali, l'inoltro Ethernet e l'elaborazione di sicurezza appartengono a livelli diversi. Il supporto per fibra, VLAN o reti seriali non dimostra il supporto per uno specifico algoritmo crittografico o una certificazione.
In un ambiente di test autorizzato, utilizzare dati innocui e isolati per osservare l'ordine normale, l'arrivo fuori ordine consentito, i pacchetti ripetuti e gli errori di autenticazione. Registrare la versione della documentazione, la configurazione e i risultati. Non riprodurre comandi di controllo reali di produzione e non presentare i numeri illustrativi del diagramma come misurazioni.
Ricordare tre responsabilità: la cifratura protegge il contenuto, una finestra anti-replay registra i numeri dei pacchetti accettati e l'applicazione continua a gestire le operazioni duplicate e la validità temporale. L'autenticazione impedisce che un numero di sequenza inventato faccia semplicemente avanzare il registro attendibile. Insieme, questi confini rendono più facile valutare un progetto di comunicazione industriale.
Riferimenti principali
RFC 4303: IP Encapsulating Security Payload, sezioni 2.1, 2.2 e 3.4.3; RFC 6479: algoritmo anti-replay IPsec (a scopo informativo, non uno standard Internet obbligatorio). Contesto di prodotto: Server per dispositivi seriali FCT-1100-F1S1; ciò non implica che il prodotto supporti IPsec.
Tradotto dall'articolo tecnico in cinese: Leggi l'articolo originale in cinese.
Domande pratiche frequenti
La sola cifratura impedisce il replay?
No. La protezione anti-replay richiede anche il tracciamento delle sequenze, l'autenticazione e uno stato corretto del ricevitore.
Ogni numero di sequenza precedente viene rifiutato?
No. Un numero non ancora ricevuto all'interno della finestra può passare all'autenticazione; i duplicati e i numeri troppo vecchi vengono rifiutati.
La protezione anti-replay del tunnel garantisce che un comando venga eseguito una sola volta?
No. Un nuovo pacchetto esterno può contenere un comando applicativo ripetuto; l'applicazione necessita di regole proprie.
Ambito e approfondimenti
Concetti generici di protezione anti-replay ESP, non dichiarazioni relative a un prodotto specifico.
Chiusura parziale TCP e risposte seriali · Carichi unitari RS485 e capacità di pilotaggio disponibile


