Giovedì 14 giugno la consueta riunione del Gl-Como sarà dedicata alla crittografia con GnuPG e OpenPGP cards (implementate su chiavetta usb), e ovviamente coglieremo l'occasione per un Keysigning Party.

GnuPG viene usato soprattutto per due scopi: tutelare la riservatezza delle proprie comunicazioni, soprattutto via email [1] e garantire l'identità dell'autore di un messaggio (o di un software, o…).

In quest'ultimo caso, la crittografia garantisce che l'autore di un messaggio sia in possesso di una certa chiave, ma come fare ad associare una chiave ad una persona?

In alcuni casi si fa uso di un'Autorità centralizzata che verifica e garantisce, coi vantaggi e svantaggi che questo comporta, ma la comunità di utenti di GnuPG generalmente preferisce un metodo distribuito, la Web of Trust.

Questa si basa sull'idea che ciascun utente ne incontri di persona altri per scambiarsi informazioni sulle proprie chiavi, pubblicando poi una firma, ovvero una dichiarazione che quella chiave appartenga davvero ad una certa persona.

Ovviamente, non ci si può fidare di una dichiarazione del genere data da uno sconosciuto, ma a seconda delle proprie esigenze ci si può fidare di dichiarazioni multiple e concordi fatte da persone che si conoscono (o in alcuni casi anche che conoscono persone che si conoscono).

Un keysigning party è un'occasione per incontrare altre persone interessate a partecipare alla Web of Trust, conoscersi, condividere conoscenza riguardo a crittografia ed argomenti correlati, e soprattutto scambiarsi firme sulle chiavi.

Cosa fare

Partecipare ad un keysigning party richiede un po' di preparazione prima e comporta alcune operazioni da svolgere in seguito.

Prima

Innanzitutto, bisogna assicurarsi di avere una chiave GPG: se se ne si ha una vecchia, controllare che sia RSA [2] ad almeno 4096 bit; chiavi DSA o RSA di dimensioni inferiori sono vulnerabili o a rischio di diventare tali entro pochi anni, ed un keysigning party è una buona occasione per iniziare a migrare verso una nuova chiave.

Se necessario, si può seguire la prima parte della guida UsoDiOpenPGPCard per la creazione di una nuova chiave con gli strumenti da riga di comando, o quella sul sito di Fedora che presenta anche strumenti grafici equivalenti, ricordandosi di inviare la chiave ai keyserver perché gli altri partecipanti al keysigning possano poi ottenerla.

Il passo successivo è fare in modo di poter fornire agli altri partecipanti una copia dei dati della propria chiave:

  • fingerprint completo della stessa (40 cifre esadecimali, ovvero qualcosa di simile a 0506 CD00 A2F9 DE57 E498  F628 D599 FF61 0180 9E2A);
  • gli UID presenti sulla chiave (tipicamente nome completo ed indirizzo email);
  • facoltativo, ma consigliato: un qr-code con la stringa OPENPGP4FPR:%f dove %f e il fingerprint senza spazi.

Questi dati possono essere presenti sul proprio biglietto da visita, oppure si possono usare gli strumenti di signing-party per generare una paginata di bigliettini pronti da stampare con tutte le informazioni necessarie. gpg-key2ps non richiede altri programmi, gpg-key2latex richiede un'installazione di LaTeX e il programma qrencode, ma permette di aggiungere anche il qrcode.

Un'altro programma utile è monkeyscan / monkeysign, che permette di mostrare a schermo il qrcode (e leggere quelli degli altri, nei passaggi successivi).

Durante

L'obiettivo principale durante il party è di conoscere persone e scambiare con loro i dati elencati sopra.

È importante essere sicuri dell'identità delle persone incontrate: il criterio minimo è verificare dei documenti di identità, ma è importante dedicare anche un po' di tempo a chiaccherare con le persone coinvolte, individualmente o in gruppo.

Un articolo sui keysigning party non sarebbe completo senza l'obligatory xkcd.

Dopo

Una volta tornati a casa (o in generale al proprio computer fidato), si può svolgere l'ultima fase del keysigning.

Il metodo raccomandato è di firmare le chiavi di chi si è incontrato e non pubblicare direttamente queste firme, ma inviarle con una mail crittata agli indirizzi email indicati sulla chiave. In questo modo si verifica anche che la persona abbia effettivamente controllo di quell'indirizzo.

Per automatizzare la procedura si possono usare caff, presente in signing-party, oppure monkeysign, passando loro i fingerprint ottenuti e verificando la corrispondenza degli User ID. Entrambi questi programmi vanno configurati per poter inviare email col nostro nome/indirizzo.

A seconda del numero di persone presenti al party, questa fase potrebbe richiedere un po' di tempo, soprattutto per chi tiene la propria chiave principale su dispositivi offline (che quindi non è comoda da raggiungere tutti i giorni); se avete urgente bisogno della firma di qualcuno è meglio avvisare, altrimenti non è raro attendere giorni, o anche settimane, prima di riceverla.

Alla fine

Per vedere la propria posizione nella Web of Trust, e l'effetto che il keysigning ha avuto su di essa, si può andare sul sito PGP pathfinder & key statistics, oppure usare il programma wotsap per calcolare statistiche simili su una copia locale dei dati.

note:

[1]la crittografia tramite GnuPG è supportata anche da alcuni sistemi di chat, ma in quel caso esistono altri protocolli spesso più adeguati alle diverse esigenze di una comunicazione in tempo reale.
[2]le chiavi ECC sarebbero un'alternativa, ma ancora non sono supportate da tutti gli strumenti, per cui è consigliabile usarle semmai per delle sottochiavi, ma non per la chiave principale.