it-swarm.it

La scadenza della chiave OpenPGP si aggiunge alla sicurezza?

Ho creato una nuova chiave OpenPGP per firmare un pacchetto software in un repository di origine con una data di scadenza tra tre anni. Sembrava una buona misura di sicurezza, perché se la chiave viene compromessa o rubata il danno sarà limitato.

Ma poi ho pensato al giorno in cui avrò bisogno di firmare la mia nuova chiave. Firmare la nuova chiave con la vecchia chiave sembra equivalente a conservare la vecchia chiave, e quindi non aggiunge nulla alla sicurezza.

L'impostazione di una data di scadenza migliora la sicurezza delle chiavi? In tal caso, qual è la migliore politica di scadenza/sostituzione delle chiavi?

60
Adam Matan

tl; dr : la data di scadenza non è un meccanismo ragionevole per proteggere la chiave primaria e dovresti avere una revoca certificato a portata di mano.


La versione leggermente più lunga è che l'effetto della data di scadenza differisce tra primario e sottochiavi e anche ciò che si intende prevenire.

Sottochiavi

Per le sottochiavi, l'effetto è piuttosto semplice: dopo un determinato intervallo di tempo, la sottochiave scadrà. Questa data di scadenza può essere modificata solo utilizzando la chiave primaria. Se un utente malintenzionato ottiene la sottochiave (e solo questa), verrà automaticamente inattivato dopo la data di scadenza.

La data di scadenza di una sottochiave è un ottimo strumento per annunciare che si cambiano le sottochiavi su base regolare e che è ora che gli altri aggiornino la chiave dopo un determinato periodo di tempo.

Chiavi primarie

Per le chiavi primarie, la situazione è diversa. Se hai accesso alla chiave privata, puoi cambiare la data di scadenza come desideri . Ciò significa che se un utente malintenzionato ottiene l'accesso alla tua chiave privata, può prolungare arbitrariamente il periodo di validità. Nel peggiore dei casi, perdi l'accesso alla chiave privata allo stesso tempo, quindi anche non puoi più revocare la chiave pubblica (hai un certificato di revoca stampato o altrimenti offline e memorizzato in modo sicuro, vero?). Una data di scadenza potrebbe essere utile nel caso in cui perdessi il controllo sulla chiave (mentre nessun attaccante ha il controllo su di essa). La chiave scadrà automaticamente dopo un determinato tempo, quindi non ci sarebbe una chiave inutilizzabile con il tuo nome su di essa per sempre sui server delle chiavi.

Ripristino di chiavi non richieste deboli

Ancora peggio, le date di scadenza potrebbero fornire un falso senso di sicurezza. La chiave sui server delle chiavi è scaduta, quindi perché preoccuparsi di revocarla? Esiste un gran numero di chiavi RSA a 512 bit ben collegate sulla rete del key server e probabilmente un numero comparativamente elevato di chiavi DSA deboli (a causa dei problemi di Debian RNG). Con processori più veloci e possibilmente nuove conoscenze sui punti deboli dell'algoritmo, un utente malintenzionato potrebbe in futuro essere in grado di decifrare la chiave scaduta, ma non revocata e utilizzarla!

Mantenere al sicuro un certificato di revoca

Se hai un certificato di revoca e sei sicuro di non perdere mai l'accesso alla tua chiave privata e al certificato di revoca allo stesso tempo (considera il fuoco, il furto (fisico), le istituzioni ufficiali che cercano la tua casa), c'è assolutamente inutile nel fissare una data di scadenza a parte la possibile confusione e altro lavoro che la estende.

69
Jens Erat

Si noti che una data di scadenza sulla chiave master non fa davvero nulla per motivi di sicurezza, in quanto chiunque abbia compromesso ciò potrebbe sempre prolungarla comunque. Vedi http://madduck.net/blog/2006.06.20:expiring-gpg/ .

(Le sottochiavi in ​​scadenza, d'altro canto, possono essere utili e l'opzione alla creazione della chiave imposta la data su tutte le chiavi.)

7
SamB

L'impostazione di una data di scadenza migliora la sicurezza delle chiavi?

Sì. Hai già detto anche perché:

Sembrava una buona misura di sicurezza, perché se la chiave viene compromessa o rubata, il danno sarà limitato.

Supponendo che tu sia compromesso e che la chiave venga rubata, chiaramente, la tua prima azione sarebbe quella di revocare la chiave ed emetterne una nuova. Tuttavia, non tutti controlleranno le chiavi revocate; continueranno ciecamente ad usarlo fino a quando non diventa invalido.

Allo stesso modo, se sei compromesso, qualcuno può solo fingere di essere te per una finestra fissa.

In tal caso, qual è la migliore scadenza\politica di sostituzione chiave?

Non ce n'è davvero una: la domanda è più "qual è il migliore che posso fare dati i vincoli X Y Z". Ad esempio, se si imposta la finestra troppo piccola, si creano inconvenienti agli utenti; tuttavia, troppo alto e si apre il rischio se compromesso. Dipende davvero da una sentenza: quanto è sensibile esattamente ciò che stai proteggendo e quanto spesso/inopportuno è sostituire le chiavi frequentemente?

0
user2213