Quello che stai cercando è teoricamente valido, a patto che tu aggiunga il pezzo mancante mancante, cioè una qualche forma di timestamp. Tuttavia, è probabile che il comportamento delle implementazioni distribuite esistenti sia un problema.
L'idea concettuale è che se si verifica una firma alla data T su qualche messaggio, quindi, in una data successiva T ', è ancora possibile ricordare che la firma è corretta e agisci in base a tale convinzione, anche se la firma non è più verificabile alla data T , ad esempio perché il certificato del firmatario è stato revocato nel frattempo.
In caso di revoca, ogni informazione di revoca (che si tratti di una risposta CRL o OCSP) viene fornita con una data di revoca . Il campo è chiamato revocationDate
in un CRL ed è definito nel seguente modo:
The date on which the revocation occurred is specified.
Quindi, quando un CRL dice che un certificato è stato revocato il 17 giugno, alle 14:10 +00: 00, implicitamente afferma anche che il 15 giugno il certificato è stato non revocato. Pertanto, se il destinatario può in qualche modo assicurarsi di aver ricevuto l'e-mail (e la sua firma) in una data precedente alla data di revoca e che l'e-mail memorizzata non è stata alterata in alcun modo, la firma è ancora concettualmente verificabile.
Un grave buco nella teoria di cui sopra è che le CA esistenti non scrivono necessariamente date di revoca con tutta la precisione necessaria. Ad esempio, se revochi due volte lo stesso certificato con la PKI di Microsoft (Servizi certificati Active Directory), la data di revoca sarà la data della revoca seconda , non la prima. Ma se gestisci certificati su smart card con il prodotto FIM CM di Microsoft (Forefront Identity Management - Gestione certificati), eseguirai tali duplicazioni.
In generale, le prove dell'esistenza di alcuni dati in una data precedente si basano su timestamp . Per l'archiviazione a lungo termine dei documenti firmati, ancora verificabili a distanza di anni (non solo dopo la scadenza del certificato del firmatario, ma anche dopo che alcuni dei certificati CA intermedi sono scaduti), è necessario applicare i timestamp su base regolare, ad esempio strato di vernice fresca. Alcuni standard esistono per questo, ma sono poco più complessi di un semplice CMS (CAdES build su CMS, ma con alcuni attributi extra piuttosto pelosi). Vedi questa risposta per ulteriori discussioni e suggerimenti.