La tua domanda sembra ironica, perché sembra che tu non voglia utilizzare o fidarsi di NTP mentre presumo che il tuo sistema sia connesso a Internet.
Ma se assumessimo che non ti fidi della tua connessione a Internet e temi un attacco del MITM o altro tempra. Ciò renderebbe l'NTP davvero inutile. Ma con certificati iniziali già condivisi, il tuo sistema principale potrebbe funzionare. E dovrai fidarti (almeno alcuni) dei tuoi partner di comunicazione verificati con successo.
Qui hai ancora un'opzione per la funzione di scadenza: puoi chiedere periodicamente ai tuoi altri peer validi per il tempo (una sorta di NTP reimplementato nella tua applicazione) . Questo dovrebbe darti un orologio con almeno una precisione di alcuni secondi (o meglio).
Se si riavvia, è possibile salvare l'ultima volta e chiedere l'ora il prima possibile. Tuttavia, se riavvii il sistema in pochi minuti, mantieni comunque un orologio con una precisione di minuti (Quindi il tuo orologio su un sistema appena riavviato non deriva mai per il tempo reale oltre il tempo necessario per il riavvio) . Poiché i certificati vengono solitamente emessi per circa un anno, una precisione di minuti perfettamente perfetta.
Se vuoi dire che il tuo problema è che non hai qualcosa da contare in tempo reale , puoi comunque andare con un orologio logico . Quindi puoi ad es. contare la frequenza con cui viene utilizzato un certificato (firma / verifica) e riemetterne uno nuovo in caso di superamento di una soglia o scadenza del certificato se utilizzato ulteriormente. Puoi contare questo per certificato o per tutti insieme.