Perché vengono richieste informazioni personali quando si crea una chiave OpenPGP?

7

Oggi ho imparato le basi di OpenPGP e ho provato a creare la mia prima chiave OpenPGP. Tuttavia, ho trovato un paio di opzioni sospette: nella versione GUI del programma che ho scaricato ci sono campi come nome o email o data di scadenza .

  1. Perché mi chiedono il mio nome o la mia email? Dalla mia comprensione di base per inviare e ricevere messaggi crittografati ho solo bisogno della mia chiave privata e pubblica e di una chiave pubblica di un'altra persona, la creazione di chiavi e la crittografia / decrittografia sono solo matematica, quindi perché le altre opzioni? La mia ipotesi è che il nome e l'e-mail possano essere inviati a qualche server e più tardi se qualcuno vuole mandarmi un messaggio (e non conosce la mia chiave pubblica ma conosce il mio indirizzo e-mail), può cercarlo se c'è una chiave pubblica che corrisponde a un determinato indirizzo email. Ho ragione, e se no, a cosa servono? Posso lasciarli in bianco?

  2. Un'altra cosa sospetta è stata dopo l'ora in cui la chiave dovrebbe scadere. Le informazioni sulla data di scadenza sono contenute nella chiave (non credo che lo sia)? Quindi la chiave è memorizzata su un server da qualche parte o cosa? Come funziona?

Il motivo per cui chiedo è che questa intera faccenda di OpenPGP sembra più centralizzata di quanto pensassi. Perché il software OpenPGP non può avere solo un pulsante "Genera una nuova chiave" che genera sia la chiave pubblica che quella privata per me da copiare e utilizzare (e ovviamente un'opzione per crittografare / decrittografare il testo)?

    
posta George 23.08.2016 - 20:00
fonte

3 risposte

8

OpenPGP include la gestione delle chiavi

Dall'introduzione a RFC 4880, OpenPGP (l'evidenziazione è stata aggiunta a me):

OpenPGP software uses a combination of strong public-key and symmetric cryptography to provide security services for electronic communications and data storage. These services include confidentiality, key management, authentication, and digital signatures.

Con altre parole, OpenPGP non riguarda solo l'invio di messaggi crittografati, ma offre una funzionalità molto più ampia rispetto alla gestione delle chiavi. Gestione delle chiavi significa la possibilità di cercare la tua chiave sui server delle chiavi (ma non sono autenticate lì!), Ma anche gli utenti di OpenPGP che emettono certificazioni tra le loro chiavi OpenPGP per assicurare l'autenticità (ad esempio, leggere le parti di keysigning ). Tutto ciò richiede chiavi con nomi in allegato.

"Anonimo" Chiavi OpenPGP

Why am I asked for my name or email?

Non sei obbligato a farlo (sebbene alcune implementazioni di OpenPGP lo facciano): le chiavi OpenPGP possono esistere senza ID utente e tutte le date possono essere impostate piuttosto arbitrariamente (anche se è necessario fornire un timestamp di creazione della chiave, ma potresti solo fornire un timestamp di 0 uguale a 1970-01-01).

Considerate che le chiavi non avrebbero alcuna informazione utente allegata: dovreste scambiare l'intera chiave composta da migliaia di byte casuali manualmente e in qualche modo collegarla a un'identità se volete usarla.

Another suspicious thing was after what time the key should expire. Is the information about expiration date contained within the key (I don't think it is) ? So is the key stored on a server somewhere or what? How does it work?

Per la data di scadenza non è necessario, puoi averli validi per sempre. In realtà, la data di scadenza non aggiunge nulla alla sicurezza , potrebbe essere comunque ragionevole.

Devi distinguere tra la coppia di chiavi pubblica / privata effettiva (ad esempio, i numeri primi utilizzati per RSA) e una chiave OpenPGP. Una chiave OpenPGP è composta dai numeri per la crittografia funziona, ma anche informazioni aggiuntive come ID utente, certificazioni e impostazioni come la data di scadenza. Puoi facilmente dare un'occhiata a tutte le informazioni in una chiave OpenPGP eseguendo

gpg --export [key-id] | gpg --list-packets

(alcune letture in RFC 4880 collegate sopra potrebbero essere necessarie per ottenere una ragionevole comprensione dell'output).

OpenPGP è distribuito

The reason I ask is that this whole PGP thing seems more centralized than I thought.

Non c'è un'istanza centrale nell'ambiente OpenPGP. Le chiavi vengono scambiate attraverso una rete decentralizzata di server di chiavi, la fiducia viene convalidata attraverso la rete di fiducia di OpenPGP invece di un sistema di PKI gerarchico come noto da X.509 (usato per S / MIME, TLS, ...).

Ci sono alcune autorità piuttosto centrali nella comunità OpenPGP: autorità di certificazione come CAcert, la tedesca Heise Verlag e Governikus che rilasciano certificazioni per i titolari della nuova carta d'identità digitale tedesca esistono, ma non è necessario usare (o fidarsi) loro. C'è un coordinamento piuttosto centrale nella rete dei server delle chiavi (il pool SKS ), ma puoi anche scegliere un server arbitrario, non utilizzare i server delle chiavi affatto o addirittura ospitare il tuo!

OpenPGP è uno standard aperto

Why can't the PGP software just have a "Generate a new key" button which generates both the public and private key for me to copy and use (+ of course an option to encrypt/decrypt text)?

OpenPGP è uno standard aperto. Se qualcuno desidera un software che faccia esattamente questo (e come ho già detto, lo standard OpenPGP consente di avere chiavi piuttosto "semplici" senza molte meta informazioni), siete invitati a farlo. La ragione per cui tale software non esiste (o non è ampiamente noto) è che le persone non vedono una buona ragione per scrivere o avere un tale software.

Se vuoi semplicemente utilizzare RSA e AES senza la gestione delle chiavi e le funzionalità avanzate di OpenPGP, probabilmente stai meglio utilizzando solo standard più primitivi.

    
risposta data 23.08.2016 - 20:36
fonte
8

Prima di tutto, non è necessario inserirli, o puoi inserire quelli falsi se vuoi, quindi vai avanti e fallo se lo preferisci. (Potrebbe essere necessario leggere le opzioni per disabilitare i campi.)

Ma la ragione per cui PGP chiede tali informazioni è che non è solo uno strumento per crittografare i messaggi, ma è anche uno strumento per sconfiggere la rappresentazione , dimostrando che mittenti e destinatari di messaggi sono davvero chi rivendicano . Il punto è che, finché controlli la tua chiave privata (nessuno te l'ha rubato), e le altre persone sono certe che la tua chiave pubblica appartiene a te (il web of trust ha legato la tua chiave pubblica alla tua identità), ora:

  1. Le persone che inviano messaggi a te possono essere certi che stanno raggiungendo te e non un imitatore;
  2. Le persone che ricevono messaggi firmati da te possono essere sicuri che provengano da te e non da un imitatore.

Nota anche che non importa se l'identità legata alla tua chiave è il tuo vero nome, o un alias, o qualsiasi altra cosa: deve solo essere qualcosa che le altre persone ti riconosceranno. È solo la risposta alla domanda "di chi è questa chiave"? PGP non si cura se la risposta assomiglia a "Jane Smith", "John Doe" o "spaghettiman123"; ci occuperemo solo delle persone che tentano di utilizzare la chiave pubblica.

Another suspicious thing was after what time the key should expire. Is the information about expiration date contained within the key (I don't think it is) ? So is the key stored on a server somewhere or what? How does it work?

La data di scadenza è memorizzata nella chiave. L'idea è di proteggerti se la tua chiave privata viene rubata senza che tu te ne accorga: la data di scadenza indica che la persona che l'ha rubata riceve solo una finestra temporale limitata durante la quale possono impersonarti.

PGP non memorizza automaticamente le chiavi nei server e non si connette a nessun server come parte delle operazioni di routine. Ma le chiavi pubbliche possono e spesso vengono caricate su server chiave in modo che le persone possano scaricarle da lì.

The reason I ask is that this whole PGP thing seems more centralized than I thought. Why can't the PGP software just have a "Generate a new key" button which generates both the public and private key for me to copy and use (+ of course an option to encrypt/decrypt text) ?

Non è centralizzato, ma vuole interagire con altri sistemi, pubblici o privati, per funzionare idealmente. Ma non devi usare nulla di tutto ciò. Puoi solo generare una coppia di chiavi senza identità associata ad essa. Puoi manualmente assegnare la chiave pubblica a una controparte di persona, ad es. in un'unità flash e funzionerà correttamente.

Il problema delicato qui è: come si ottiene in modo sicuro la chiave pubblica di un'altra persona su Internet? Se hai appena scaricato la chiave pubblica di Jane Doe da un sito web, non hai modo di sapere se è davvero la sua chiave pubblica o quella di un imitatore. Quindi tutta la funzionalità extra che stai vedendo riguarda la fornitura di strumenti per attaccare quel problema. Di nuovo, leggi la rete di fiducia , e su infrastruttura a chiave pubblica .

    
risposta data 23.08.2016 - 20:22
fonte
3

Le tecnologie a chiave pubblica esistono per affrontare tre aspetti principali:

  1. Riservatezza dei dati (crittografia): solo il destinatario previsto può leggere il messaggio.

  2. Integrità dei dati (firma): che il messaggio non è stato alterato durante il transito.

  3. Autenticazione: che il destinatario è in realtà chi pensi di essere.

È possibile costruire cryptosystems con solo un sottoinsieme di questo elenco (la crittografia del disco, ad esempio, di solito interessa solo a 1. e a volte 3.)

Per qualcosa come la crittografia delle e-mail non ha senso avere due di questi senza il terzo. A che serve una chiave pubblica se non ho idea di chi appartenga?

Da un punto di vista tecnico, sei corretto: questi campi sono opzionali e possono essere lasciati in bianco; la tua chiave PGP sarà perfettamente utilizzabile senza di essa.

Da un punto di vista sociale sono essenziali. L'idea del PGP Web of Trust è che ogni persona / indirizzo email abbia una chiave pubblica ad essa associata la tua chiave pubblica su server con chiave pubblica e chiedi ai tuoi amici di firmare la tua chiave pubblica per dire "Conosco questa persona nella vita reale e questa chiave pubblica appartiene a lui". Più persone si firmano a vicenda, più grande è la rete di fiducia. In questo contesto, le chiavi anonime non hanno senso.

Infine, la data di scadenza è completamente facoltativa, ma se all'inizio sai che utilizzerai questa chiave per X mesi, ad esempio se hai un contratto a breve termine con un'azienda.

    
risposta data 23.08.2016 - 20:39
fonte

Leggi altre domande sui tag