# Web of trust

Nell'ambito della crittografia, una web of trust (rete di fiducia) è un concetto utilizzato da PGP, GnuPG, e altri sistemi compatibili con OpenPGP per stabilire l'autenticità dell'associazione chiave pubblica-utente. Sotto alcuni aspetti è un'alternativa all'affidarsi esclusivamente ad una certificate authority (o a una gerarchia di esse) tipico dei sistemi PKI centralizzati. Così come ci sono moltissime reti di computer, ci sono molte reti di fiducia indipendenti, e ogni utente (attraverso il suo certificato d'identità) può essere parte e fungere da collegamento tra molte di esse.
Questo sistema di certificazione si poggia sul concetto dei sei gradi di separazione e sulla teoria del mondo piccolo.

## Funzionamento di una rete di fiducia

Tutte le implementazioni compatibili con OpenPGP includono uno schema di gestione dei certificati per semplificarne l'uso, definito rete di fiducia. Un certificato di identità di OpenPGP (che include la chiave pubblica e le informazioni sul suo proprietario) può essere firmata elettronicamente da altri utenti, che, in questo modo, attestano l'effettiva associazione di quella chiave pubblica a quel determinato utente. Questo viene comunemente fatto in riunioni (fisiche) definite key signing party.
Inoltre tutte queste implementazioni includono un sistema di voto che può essere usato per determinare di quali associazioni chiave pubblica - proprietario un utente si può fidare senza dover per questo incontrare fisicamente la persona. Per esempio, se tre conoscenti parzialmente fidati hanno firmato un certificato (e quindi hanno confermato l'associazione chiave pubblica - utente che questo contiene), oppure se un solo conoscente pienamente fidato l'ha fatto, il certificato viene considerato valido. I parametri sono a scelta dell'utente (e.g., si può impostare la necessità di una firma da parte di un utente completamente fidato, oppure da parte di 6 parzialmente), e può essere completamente escluso, se desiderato.
Questo schema è flessibile, diversamente dalla maggior parte dalle altre infrastrutture a chiave pubblica, e lascia la scelta del livello di fiducia agli utenti individuali. Non è perfetto e richiede prudenza e attenta supervisione da parte degli utenti. Essenzialmente però tutte le PKI sono meno flessibili e obbligano gli utenti a fidarsi dei certificati dell'infrastruttura firmati dalla certificate authority. La supervisione da parte degli utenti non è né richiesta né permessa. Neanche questi sistemi sono ovviamente perfetti.

## Differenze con una tipica PKI

Al contrario, in un tipico sistema PKI X.509 ogni certificato può essere firmato solo una volta da una certificate authority (CA). Il certificato della CA può essere esso stesso firmato da un'altra CA, e così via fino ad un certificato 'auto-firmato', chiamato root certificate. I root certificates devono essere accessibili da chi usa un certificato CA di livello più basso, quindi vengono solitamente ampiamente distribuiti. Per esempio, sono inclusi in programmi come web browser e di posta elettronica. In questo modo pagine web, email, etc., protette attraverso SSL/TLS possono essere autenticate senza richiedere all'utente l'installazione manuale dei root certificates. Solitamente vengono inclusi più di cento certificati di dozzine di PKI, conferendo la fiducia ad un certificato attraverso la gerarchia a cui si riferisce. Molti di questi certificati vennero creati da società fallite in seguito, come il caso del collasso di Dot-com. A meno che queste PKI siano ancora gestite -nonostante tutto- quasi sicuramente quei root certificates non sono più affidabili.

## Problematiche di una rete di fiducia

La rete di fiducia di OpenPGP è immune da problemi come i fallimenti di società, e ha continuato a funzionare fino ad oggi senza grandi cambiamenti. Ciononostante, esiste un serio problema. Gli utenti che perdono la loro chiave privata non possono più decifrare i messaggi che sono stati creati usando la relativa chiave pubblica. I primi certificati PGP non contenevano date di scadenza, e quindi avevano durata illimitata. Gli utenti dovevano preparare un certificato di revoca firmato in previsione di un eventuale furto o smarrimento della chiave privata. Un famoso crittografo sta ancora ricevendo messaggi crittati usando una chiave pubblica di cui egli ha perso la chiave privata tempo fa. Non può fare molto con quei messaggi se non eliminarli e informare il mittente che non è in grado di leggerli, pregandolo di inviarli di nuovo con un'altra chiave pubblica -di cui ha ancora la relativa chiave privata. Le nuove versioni di PGP, e i programmi conformi a OpenPGP, hanno certificati con una data di scadenza che automaticamente li disabilita dopo un certo periodo, evitando (potenzialmente) questi problemi se usata correttamente.
La versione 3 di X.509 è abbastanza flessibile da permettere una rete di fiducia dello stile di OpenPGP. Questa viene però solitamente usata per creare un intreccio di collegamenti tra CA di alto livello piuttosto che tra singoli utenti.
Una difficoltà di tipo sociale (non tecnica) di una rete di fiducia come quella inclusa nei sistemi PGP/OpenPGP è che in ogni rete di fiducia senza un controllore centrale (per esempio, una CA), la convalida di un certificato si basa sugli altri utenti della rete. I certificati dei nuovi utenti non saranno immediatamente fidati dagli altri utenti, in particolare da coloro che non hanno ancora incontrato personalmente, finché essi non trovano abbastanza firmatari per il loro certificato. Questo a causa della configurazione di molti utenti, che richiedono la firma di uno o più utenti totalmente fidati (o da molteplici utenti parzialmente fidati) per utilizzare (preparare messaggi usando la chiave pubblica, credere alla firma, etc.) un certificato sconosciuto.
Nonostante l'ampia diffusione dei sistemi OpenPGP e l'ampia disponibilità di key servers, è possibile in pratica non riuscire a trovare una o più persone disposte a firmare un nuovo certificato (e.g., comparando un documento di identificazione con le informazioni contenute nel certificato). Gli utenti che vivono in aree remote o sottosviluppate, per esempio, potrebbero avere difficoltà a raggiungere altri utenti. E se anche il certificato dell'altro utente è nuovo (con nessuna o poche firme), allora la sua firma può fornire solo un piccolo beneficio. I Key signing parties sono un meccanismo abbastanza popolare per risolvere il problema.