Scadenza dell'autorizzazione senza orologio / ora affidabile

2

Ho cercato, ma penso che sia impossibile trovare una soluzione di abbinamento che abbia i vantaggi della scadenza e del rinnovo dell'autorizzazione (come x509 scadenza cert e OAuth expires_in), ma che funzioni senza un orologio affidabile.

Lo voglio perché il rinnovo è un'occasione per eliminare gli algoritmi crittografici vulnerabili e mantenere le autorizzazioni attive fino alle specifiche. Il problema è che il sistema in cui sto implementando non può accedere in modo affidabile ai server NTP e non ha un orologio della batteria per preservare il tempo tramite i riavvii (ogni giorno si riavvia), quindi è praticamente impossibile determinare un'autorizzazione valida.

C'è una soluzione? Forse ci sono alternative per far rinnovare i clienti?

    
posta Raveclatter 23.10.2017 - 17:03
fonte

1 risposta

1

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.

    
risposta data 24.10.2017 - 00:38
fonte

Leggi altre domande sui tag