Un server di terze parti ci invia messaggi firmati che verifichiamo. Quando il suo certificato sta per scadere, la terza parte genera una nuova coppia di chiavi e ci invia il nuovo certificato.
A un certo punto, il server inizierà a firmare con la sua nuova chiave, richiedendo che usiamo il nuovo certificato corrispondente da verificare.
Come possiamo rendere questo processo di sostituzione su due lati preciso e facile? Sarebbe una seccatura se qualche messaggio venisse rifiutato a causa di problemi di temporizzazione (ad esempio, gli switch di tipo A, quindi un messaggio viene inviato, quindi gli switch di parte B).
Una soluzione ovvia potrebbe essere quella di provare tutte le chiavi non scadute, ma sembra l'inquinamento del codice. In particolare perché affrontiamo questa sfida solo in alcuni scenari, il che significa che alcuni casi di verifica della firma devono preoccuparsi di più certificati, mentre altri no.
Un'altra idea è specificare un timestamp. Tuttavia, gli orologi dei server potrebbero non essere sincronizzati e le cache di memoria (ad esempio con una scadenza di 15 minuti) interferirebbero ancora di più.