Come tutti sappiamo, nonce è necessario per prevenire gli attacchi di riproduzione. Ovunque legga di nonce, vedo che il client recupera sempre uno dal server, e , per migliorare ulteriormente la sicurezza, può anche aggiungere il proprio client nonce (cnonce).
Proprio come in questo diagramma:
Questo schema aggiunge un overhead di un altro roundtrip al server; e sto cercando di capire quali vettori di attacco diventeranno possibili se usiamo solo il nonce del client, e assicuriamo sul server che le cose non vengano mai riutilizzate (per evitare di memorizzare tutte le cose usate, ovviamente potremmo semplicemente richiedere che ogni successivo errore per una determinata chiave API è maggiore di quello precedente e memorizza solo l'ultimo valore per la chiave API fornita).
Finora non riesco a trovare alcun nuovo vettore di attacco: assicurandoci che non si possano mai riutilizzare i vantaggi per ogni chiave API, eliminiamo completamente gli attacchi di riproduzione. Mi manca qualcosa?