Stabilire uno pseudonimo rispettabile con PGP Key

10

Questo è diventato un po 'un esperimento mentale per me.

Supponiamo che qualcuno voglia stabilire uno pseudonimo insieme a una chiave PGP corrispondente, come potrebbero altre persone verificare la corrispondenza tra il nome e la chiave?

Generalmente, le chiavi PGP sono per persone reali, la cui identità può essere verificata IRL, ma ciò non vale qui.

Il mio primo pensiero originale era che lo pseudonimo potesse essere un nome basato sull'impronta digitale, ma poi, a seconda del numero di caratteri, potrebbe essere abbastanza facile generare una nuova chiave che soddisfi anche questo requisito.

Potrebbe esserci una strategia (potenzialmente più sociale e tecnologica) per qualcuno per verificare questa corrispondenza?

Modifica

Il potenziale scopo di uno pseudonimo con questo requisito potrebbe essere lo stesso di Satoshi Nakamoto, o un soffiatore. Volendo rilasciare costantemente documenti o software verificabili dal proprietario dello pseudonimo.

    
posta Sam Lanning 29.05.2014 - 12:54
fonte

4 risposte

7

La sfida con le chiavi pseudonome non riguarda solo l'anonimato; c'è il problema aggiuntivo della tua identità di essere non-unico e più difficile da dimostrare. Considerando il tuo pseudonimo / nickname come stabilito (ovvero, stai utilizzando un'identità esistente, piuttosto che creare una nuova identità basata su un hash o qualcosa tra queste righe), il tuo nickname da solo non è sufficiente in affermando la tua identità e reputazione.

Se il tuo nickname è Sam, se il nickname del tuo amico è Sam, e se entrambi hai una chiave pseudonusa "fidata", nessuno dei due potrà gridare all'altro e dirgli "hey, tu non sei il vero Sam! "

Una soluzione potrebbe essere raggruppare tutte le informazioni sulle identità online in qualche posto unico (dove dici "I am Sam on StackExchange", "Possiedo il samlanning.com dominio e sito web" e così via), e poi invitare più persone a verificare e confermare tutte queste identità . Posso pensare a due modi per farlo:

  1. Partecipa a un sito web come Keybase (o crea / host il tuo), che fa esattamente quello che ho descritto, e si basa su OpenPGP. Sebbene interne, tutte quelle "identità uniche centrali" creano una rete di fiducia, per identità / pseudonimi. Un profilo sembra come questo (sì, anche l'autore principale di GnuPG utilizza questo sito Web).

  2. Usando OpenPGP (e in particolare GnuPG), trova persone che sono disposte a firmare (certificare) chiavi pseudonome, adempiere al loro modo personale di verificare la tua identità pseudonima e richiederle di incorporare URL e notazioni delle norme dati nelle loro certificazioni.

Personalmente faccio questo quando certifico le chiavi degli altri:

gpg --ask-cert-level \
     --cert-policy-url http://diti.me/pgp/\#policy \
     --cert-notation [email protected]=http://diti.me/pgp/certs/%f.notes.asc \
     --sign-key

Un criterio URL è un URL (qui, documento Internet) all'interno del quale descrivi al mondo qual è la tua politica di certificazione della chiave OpenPGP. La persona che firma la tua chiave pseudonimica dovrebbe dire (in questo documento) che in realtà certificano le chiavi pseudonome e come.

Una notazione chiave è un testo arbitrario della forma key=value . Le specifiche OpenPGP in realtà non specificano quali usi debbano essere implementate da queste implementazioni, ma un loro utilizzo consiste nel mettere un URL come value . Ma puoi semplicemente chiedere al firmatario di inserire del testo come "Ho controllato attentamente l'identità pseudonima di Sam" se lo desideri.

Usando il mio comando sopra, puoi vedere che sui server delle chiavi , per impostazione predefinita vengono visualizzati sia gli URL delle norme che i dati di notazione:

sig  sig1  CD42FF00 2014-04-07 __________ __________ []
    Policy URL: http://diti.me/pgp/#policy
    Notation data: [email protected] http://diti.me/pgp/certs/A31D4F81EF4EBD07B456FA04D2BB0D0165D0FD58.notes.asc

Per la cronaca, sono io che firmo la chiave di firma GPG automatizzata di CAcert.org e lascerò qui un Collegamento archivio Web ai dati di notazione .

Fino a quando i dati di notazione prodotti dal firmatario possono essere letti, chiunque può / può decidere se fidarsi o meno della propria identità pseudonima. Usando questi, qualsiasi persona motivata che desideri verificare attentamente quanto affidabile e affidabile sia il tuo pseudonimo, può farlo davvero.

EDIT: In realtà, penso che potrei essere andato un po 'fuori tema nel punto 2. La tua domanda riguarda solo il processo di certificazione pseudonimo, o anche il suo controllo ?

    
risposta data 29.05.2014 - 18:29
fonte
1

Dopo aver parlato un po 'di più con alcuni amici, potremmo aver trovato una soluzione candidata.

Dato che ciò che stiamo cercando di evitare è qualcuno che impersona il portachiavi originale, non vogliamo che qualcuno sia in grado di generare una nuova coppia di chiavi, firmare nuovamente tutto ciò che ha fatto la persona originale e affermare di possedere lo stesso pseudonimo.

Potresti utilizzare un sistema di timestamp distribuito per dimostrare che un'associazione tra lo pseudonimo e la chiave pubblica esisteva in un momento specifico (ovvero il tempo in cui è stato creato lo pseudonimo). Ad esempio link

Le persone potrebbero quindi considerare questo come una prova sufficiente che l'associazione è valida e scegliere di firmare l'UID.

    
risposta data 29.05.2014 - 17:36
fonte
0

Dopo aver letto su questo problema e aver scoperto il timestamp di Bicoin, ho trovato un modo relativamente semplice per dimostrarti di essere il proprietario di un ID pseudonimo che utilizza una chiave PGP e un indirizzo Bitcoin di tua proprietà . Questo sistema si basa sul fatto che per sbloccare queste due cose è necessario un segreto che, in linea di principio, è riservato a te e solo a te.

  1. Crea una coppia di chiavi PGP.
  2. Crea un indirizzo Bitcoin sul tuo client. Effettua il backup del portafoglio che appartiene a questo indirizzo o non sarai più in grado di autenticarti!
  3. Esegui il timestamp Bitcoin sulla tua chiave come da [questa pagina qui] [1]. Fondamentalmente, questo equivale al seguente:
    1. Utilizza l'hash SHA256 dell'impronta digitale della tua chiave.
    2. Convertilo in un indirizzo Bitcoin sintatticamente valido.
    3. Invia un piccolo pagamento, 10 centesimi di dollari statunitensi del valore di BTC, dall'indirizzo che hai creato all'indirizzo che hai costruito con l'hash dell'impronta digitale della tua chiave. I Bitcoin spariranno, perché il pagamento è stato inviato a un indirizzo che non può essere sbloccato da alcuna chiave privata. Tuttavia, poiché l'indirizzo è sintatticamente valido, la transazione passerà e questo verrà pubblicato sulla blockchain, che è condivisa da ogni singolo thick client sulla rete Bitcoin, un messaggio che dice che quando il blocco X è stato aggiunto alla blockchain all'istante T, indirizzo 1YouR0wn4dRESS ha inviato N bitcoin per l'indirizzo 1SHA256sUm0fY0urkEYf1NG3rPr1nT.
  4. Infine, inserisci i dettagli della tua registrazione di data / ora nei campi di informazione della tua chiave privata (es. crea un nuovo ID chiave e sul campo del nome utente inserisci qualcosa come "Timestamped con 0,0005 BTC inviato da 1YouR0wn4dRESS a 1SHA256sUm0fY0urkEYf1NG3rPr1nT") e carica la tua chiave per un server delle chiavi.

Per far convalidare qualcuno della tua identità, segui questo protocollo:

  1. Chiedi al verificatore di inviarti un messaggio crittografato utilizzando la tua chiave pubblica, in cui ti chiede di inviare un piccolo pagamento a un indirizzo scelto dall'autenticatore.
  2. Decifra il messaggio con la tua chiave privata. Questo dimostrerà che sei il proprietario della parte privata della chiave.
  3. Invia il pagamento da 1YouR0wn4dRESS all'indirizzo che ti ha inviato l'autenticatore. Questo dimostrerà che sei il proprietario della chiave privata richiesta per spendere i fondi del portafoglio associato all'indirizzo 1YouR0wn4dRESS.
  4. Solo per ulteriori credenziali, puoi fare in modo che l'autenticatore cerchi la tua registrazione di data e ora su, diciamo, blockchain.info

Il completamento riuscito del passaggio 3 può essere ottenuto solo se si è in possesso della chiave privata che sblocca i messaggi inviati utilizzando la chiave pubblica, poiché è necessario leggere le istruzioni di pagamento. Il pagamento può essere completato solo se possiedi la chiave privata che sblocca il portafoglio con l'indirizzo 1YouR0wn4dRESS, che è arrivato alla blockchain quando hai timestampato l'impronta digitale della tua chiave. Ora sei autenticato.

    
risposta data 05.08.2014 - 04:41
fonte
-2

My first original thought was that the pseudonym could be a name based on the key fingerprint, but then, depending on number of characters, it could be quite easy to generate a new key that also meets this requirement.

Se l'impronta digitale è basata su una funzione hash a una sola via sufficientemente strong, allora dovrebbe essere computazionalmente non fattibile generare un'altra chiave che produca lo stesso risultato, ma lo pseudonimo dovrebbe essere simile alla lunghezza dell'output come riduzione a qualcosa di più memorabile aumenterà notevolmente la facilità di produrre collisioni.

    
risposta data 29.05.2014 - 14:24
fonte

Leggi altre domande sui tag