Crittografia limitata nel tempo

1

È possibile impostare uno schema di crittografia in cui la chiave di decrittazione può essere utilizzata solo fino a una certa data? cioè oltre la data certa i dati non possono più essere decifrati. Possiamo supporre che esista un riferimento temporale affidabile / mutuamente concordato.

    
posta Roy Tang 10.04.2018 - 07:52
fonte

3 risposte

7

Non c'è modo di crittograficamente garantire che una chiave sia inutile dopo un certo periodo di tempo. Il massimo che puoi fare è firmare digitalmente una data di scadenza, indicando qualsiasi potenziale utilità di decrittografia per verificare prima la data prima della decrittografia. Le utility saranno quindi incaricate di segnalare il fatto della scadenza o di rifiutare di eseguire ulteriori azioni. Come menzionato in un commento, il formato x509 fornisce tale capacità e le utility compatibili (o almeno dovrebbe) controllare la data di scadenza.

La ragione di questo è semplice. Se hai C = Enc k (P) e P = Dec k (C) , dove P è testo in chiaro, C è testo cifrato, e k è una chiave segreta, è logicamente impossibile per il passare del tempo modificare il comportamento di un funzionale algoritmo tale che P ≠ Dec k (C) . Ovviamente è possibile che entrambe le parti concordino di "dimenticare" k o C tramite politiche concordate reciprocamente, come altre risposte hanno descritto in modo più dettagliato, ma non importa quanto tempo trascorso, dato C e k , puoi sempre calcolare P .

    
risposta data 10.04.2018 - 08:02
fonte
2

Finché qualcuno ha la chiave, può sempre essere usata per la decodifica. Anche su soluzioni in cui è stato deciso che una chiave non dovrebbe essere valida dopo la sua scadenza, è possibile creare uno strumento che ometta queste regole o semplicemente spoofare la data per uno strumento esistente.

L'unico modo per rendere invalida una chiave sarebbe distruggerla: naturalmente non è una funzione della chiave stessa, ma lo strumento che la memorizza. Il Extended Triple Diffie-Hellman X3DH Key Agreement Protocol è una soluzione che si basa su questo utilizzando strati di chiavi con intervalli di tempo diversi e utilizzando la combinazione di questi tasti per la crittografia. Una volta che la chiave di una volta è stata distrutta, non c'è modo di decrittografare i dati e i livelli esterni proteggono lo scambio delle chiavi del livello interno. Ancora una volta, ciò si basa sulla fiducia che nessuno dei client non memorizzerà queste chiavi. Nessuna garanzia.

    
risposta data 10.04.2018 - 09:45
fonte
1

Se entrambe le parti lavorano insieme, puoi farlo in base alla politica. È possibile impostare uno schema in cui la parte decrittante deve richiedere (parte della) chiave dalla parte crittografica utilizzando uno schema sicuro e la parte crittografica cancella la chiave sul lato server dopo la chiave scaduta.

Nulla impedirà alla decrittografia di memorizzare semplicemente la chiave ricevuta. Ma quando, ad esempio, lo fai in una collaborazione in cui entrambe le parti vogliono che i dati vengano eliminati dopo che la chiave non è disponibile, è possibile che la decrittografia non sia memorizzata nella chiave.

    
risposta data 12.04.2018 - 11:44
fonte

Leggi altre domande sui tag