È possibile inserire le date di scadenza nelle chiavi?

0

Ho un'app che utilizza una chiave asimmetrica per crittografare / decodificare i dati tra dispositivi.

Tuttavia, questi dispositivi non dovrebbero più essere in grado di decodificare dopo un certo periodo di tempo.

Attualmente sto generando la coppia di chiavi sotto forma di semplice RSA e posso usare la chiave indefinitamente.

È possibile incorporare una data di scadenza nelle chiavi private e pubbliche in modo tale che, una volta utilizzate dopo una certa data, le chiavi semplicemente non possano essere eseguite?

    
posta xenon 11.05.2017 - 05:03
fonte

2 risposte

1

Sì, è possibile progettare un protocollo in cui il generatore di chiavi e l'utente chiave concordano su dove viene salvato questo timestamp (NB: accanto ai byte chiave o all'interno dei byte chiave, ma l'opzione successiva è altamente pericolosa in quanto potrebbe ridurre l'entropia lo faccio). Potrebbe essere necessario anche mettere in atto alcuni meccanismi per assicurarsi che la data non possa essere modificata.

Ci sono tutti i tipi di modi intelligenti per farlo, ma i certificati X.509 già standardizzano questo, quindi potresti semplicemente usarli.

Il proprietario della chiave segreta dovrebbe verificare se la chiave segreta corrisponde alla chiave pubblica dei certificati, se il certificato è firmato correttamente da un emittente fidato e l'ora corrente è ben all'interno del periodo di validità.

    
risposta data 11.05.2017 - 06:22
fonte
0

"Incorporare una data di scadenza" (come indicato nel titolo) è la parte facile e, come ha sottolineato Eckes, ci sono già standard per farlo. Ma questi schemi di solito si basano sulla cooperazione dei partecipanti. Ad esempio, il browser di solito ti avviserà almeno se ti connetti a siti con certificati scaduti.

Se si vuole far rispettare l'impossibilità di crittografare i dati dopo una certa data, si tratta di un aspetto del controllo dell'accesso per gli utenti geonicamente legittimi che di solito è chiamato DRM (un termine visto piuttosto negativamente in alcune circonferenze a causa di alcuni casi d'uso discutibili ). Il problema non riguarda tanto i protocolli, ma le implementazioni. Come si fa a impedire copie dei dati decrittografati? Come si fa a impedire agli utenti di "debugare" il software ed estrarre le chiavi? Come prevenire la falsificazione del tempo? I tuoi utenti hanno le chiavi, ma tu vuoi impedire un utilizzo illimitato.

Esistono tecniche che tentano di raggiungere questo obiettivo (con o senza hardware speciale o supporto del sistema operativo), ma la maggior parte di esse ha avuto esito negativo prima o poi.

    
risposta data 11.05.2017 - 13:16
fonte

Leggi altre domande sui tag