Sì, i numeri di sequenza e i timestamp sono buoni modi per disabilitare gli attacchi di riproduzione. Tuttavia, non è necessaria l'autenticità dei messaggi né l'integrità dei messaggi per farli funzionare. Il motivo è semplice: il controllo disattiva solo i messaggi che sarebbero altrimenti accettati.
Tuttavia, se offri l'autenticità / integrità del messaggio, dovrai comunque includere il numero di sequenza / timestamp nel calcolo. In caso contrario, un utente malintenzionato può modificare solo il numero di sequenza / data / ora su un nuovo valore e utilizzarlo. E tu do vuoi offrire autenticità / autenticità per un protocollo sicuro, ad esempio calcolando un tag di autenticazione utilizzando un algoritmo MAC sicuro.
Quanto sopra non è ufficialmente un attacco di replay perché è un attacco attivo che altera il messaggio che viene inviato. Questo è comunque di poca consolazione se il tuo protocollo è compromesso. E sì, dopo che l'integrità del messaggio è stata convalidata, è sufficiente controllare il numero di sequenza o il timestamp. È quindi "così semplice".
Note:
- Il controllo di un timestamp o la memorizzazione di un numero di sequenza in modo persistente non è necessariamente facile , motivo per cui ho inserito "così semplice" tra virgolette.
- Assicurati di non poter riprodurre i tuoi messaggi, ad esempio includendo un mittente / destinatario nel messaggio o utilizzando le chiavi di sessione separate per ciascuna parte.