La chiave privata OpenPGP è intrinsecamente protetta da password?

7

So che mi viene richiesto di inserire una password ogni volta che uso la mia chiave OpenPGP. Questo viene fatto tramite l'implementazione del software o è una proprietà inerente al protocollo e quindi alla chiave?

In sostanza, la domanda si interrompe per: Se qualcuno ha rubato la mia chiave privata, potrebbe usarla senza conoscenza (o rottura) della mia password?

    
posta Iszi 03.06.2011 - 19:57
fonte

3 risposte

11

È possibile lasciare la chiave PGP non crittografata (nessuna password), e quindi se è stata copiata potrebbe essere utilizzata senza password. La crittografia della tua chiave privata è inerente alla specifica ( RFC 4880 - vedi le sezioni "Da stringa a chiave"), e ogni volta che utilizzi un software che richiede la passphrase per la tua chiave privata, la utilizza per la decrittografia effettiva. La maggior parte delle versioni moderne del software si preoccupano anche di evitare che la memoria utilizzata per la chiave o passphrase non codificata sia scambiata su disco.

Quindi no, la tua chiave privata non può essere utilizzata senza conoscenza o rottura della tua password.

    
risposta data 03.06.2011 - 20:07
fonte
3

Il formato dei messaggi OpenPGP descrive molti "messaggi" che sono la serializzazione di strutture che coinvolgono algoritmi crittografici. Alcuni di quei messaggi sono destinati a essere scambiati come e-mail; quando invii una "email firmata", devi usare la tua chiave privata. Il messaggio risultante (quello che va al server SMTP) non è influenzato dal modo in cui la suddetta chiave privata viene formattata quando è memorizzata su un supporto non transitorio. In questo senso, è possibile "utilizzare OpenPGP" (inviare e ricevere e-mail firmate e crittografate) senza dover memorizzare una chiave privata "protetta da password"; ciò che OpenPGP richiede è che un uso possa "possedere" una chiave privata e "ricordarla" per quantità di tempo non trascurabili. La chiave privata dovrebbe essere archiviata con un alto livello di riservatezza, poiché tale riservatezza è cruciale per l'intera sicurezza dello schema. La chiave privata dell'utente viene spesso memorizzata in un file, crittografato con una chiave simmetrica derivata da una password utente ("passphrase" in PGP-speak). Meno spesso, ma ugualmente valido, la chiave privata può essere memorizzata in un dispositivo antimanomissione come una smartcard e accessibile tramite un'API dedicata come PKCS # 11; Il supporto per PKCS # 11 esiste per GnuPG. Il modo in cui il dispositivo memorizza la chiave dipende dal dispositivo, ma raramente implica la crittografia con una chiave derivata da password.

OpenPGP anche definisce i formati dei messaggi per la memorizzazione di una chiave privata serializzata, in particolare con la crittografia simmetrica utilizzando una chiave derivata da una password. Pertanto, quando un'implementazione di OpenPGP desidera memorizzare una chiave privata come file con protezione tramite password, tende a utilizzare quel formato di messaggio specifico. L'utilizzo di questo formato consente il trasferimento di chiavi private ("key rings") tra implementazioni distinte.

Quindi, mentre la protezione tramite password della chiave privata non è un requisito obbligatorio per rivendicare il "supporto OpenPGP" per quanto riguarda i messaggi on-the-wire, è comunque raccomandato, e c'è un metodo "OpenPGP-approvato" di facendo quella protezione con password, che ha vantaggi di portabilità ed è seguita da effettive implementazioni.

    
risposta data 04.06.2011 - 16:16
fonte
2

Non dimenticare gpg-agent ...

La risposta di Jeff è buona e copre ciò di cui stavi principalmente parlando. Ma la tua prima frase trascura il fatto che ci sono modi per usare la tua chiave OpenPGP senza inserire una password per ogni utilizzo. Ti lascia entrare una volta, e poi usalo per un po ', memorizzato in modo non criptato nella RAM. L'impostazione predefinita "ttl" (time to live) è conservativa: 5 minuti. Come osserva @gilles, questo aggiunge qualche rischio, ma non dovrebbe ancora apparire sul disco non criptato. gpg-agent è arrivato come parte di gnupg 2.0 ed è pensato per le app GUI. Vedi gpg-agent: Invocazione di GPG-AGENT - Uso della GNU Privacy Guard , che può gestisci anche le attività di accesso alle chiavi SSH eseguite da ssh-agent.

    
risposta data 03.06.2011 - 23:20
fonte

Leggi altre domande sui tag