Il motivo principale per preferire una tecnologia rispetto all'altra è usabilità. Indipendentemente dagli strumenti che utilizzi, la sicurezza delle e-mail dipenderà in gran parte dal modo in cui gli utenti collaborano: la maggior parte della riservatezza delle loro e-mail dipende dalla loro capacità di non fare nulla di stupido con i loro dati e di reagire in modo appropriato in condizioni insolite. Avrai una sicurezza decente solo se gli strumenti che usano sono disponibili, facili da usare e affidabili. Pertanto, è difficile confrontare S / MIME e OpenPGP in abstracto .
Tuttavia, possiamo ancora fare alcune distinzioni sul modello PKI . S / MIME si basa su X.509 , un colosso di uno standard che ha lo scopo di supportare un gerarchico PKI con delega di trust controllata da un gruppo limitato di trust anchors e percorsi short. OpenPGP utilizza un Web of Trust che è decentralizzato. La tua espressione "fidati ciecamente di una CA" dice molto sulle tue preferenze, ma è piuttosto soggettiva.
Se osservi come funzionano X.509 e OpenPGP, vedrai che nel Web of Trust tutti sono CA; quindi, mentre in X.509 metti la tua fiducia in una manciata di CA, nel Web of Trust hai fiducia in ... tutti? Questo perché molte persone dimenticano metà del sistema WoT. In un vero WoT, il grafico della certificazione (cioè chi firma la chiave di chi) dovrebbe essere interconnesso.
Quando vuoi convalidare la chiave pubblica di qualcuno (chiamiamolo Bob), devi trovare percorsi di certificazione che portano da te a Bob; un tale percorso inizia con la tua chiave pubblica (che tu conosci "assolutamente") e ogni passo è una firma calcolata sulla chiave pubblica dell'individuo successivo nel percorso. La sicurezza nel modello WoT deriva dalla verifica di molti percorsi che iniziano tutti da te e finiscono su Bob, ma senza che nessun altro individuo sia comune a due percorsi. Quando tutti possono agire come CA, ogni singolo percorso è "potenzialmente sospetto": quando le persone firmano le chiavi degli altri a tarda notte e sotto l'egida del consumo di alcool pesante, non ci si può aspettare che tutti i percorsi siano affidabili al 100%. Un attaccante intento a falsificare una chiave falsa per Bob dovrà solo trovare alcuni creduloni o individui intossicati. Il credo di WoT è che "la folla ha ragione": un attaccante può sovvertire alcune persone, ma non la maggior parte di esse. Quindi, se riesci a trovare molti percorsi validi che portano a Bob, allora la chiave di Bob è probabilmente autentica, perché corrompere o ingannare che molte persone sarebbero state "probabilmente troppo difficili".
La linea di fondo è che il Web of Trust è difficile . La descrizione sopra usa i termini fuzzy "pochi", "molti", "molti" e "probabilmente". Non sappiamo come stimare il numero di percorsi che devono essere costruiti per raggiungere un determinato livello di sicurezza; in effetti, non sappiamo quantificare un "livello di sicurezza". Non è chiaro se WoT possa funzionare. Le implementazioni di OpenPGP tendono a utilizzare una "percentuale di affidabilità" che è una supposizione totalmente infondata. Naturalmente, in pratica, nessuno passa il tempo per ricostruire molte catene; sei già fortunato se trovi una catena.
Quando devo scambiare dati riservati con i clienti , utilizzo OpenPGP, ma non il Web of Trust. Io uso OpenPGP perché le solite implementazioni hanno la possibilità di associare le chiavi all'indentità in modo permanente: se posso assicurarmi una volta che la chiave è autentica, allora il mio software lo ricorderà e le cose saranno al sicuro da allora in poi. Quindi il cliente e io scambiamo le impronte digitali chiave quando ci incontriamo di persona o tramite una telefonata (che assumiamo per essere al sicuro dalle imitazioni - l'intercettazione non è un problema qui).
Tale associazione non è supportata dalle implementazioni S / MIME. Loro potrebbero farlo (anche se la scadenza del certificato lo rende leggermente più difficile) ma non lo fanno. Non è intrinseco a X.509 (il modello X.509 consente a possibile di cambiare il certificato ogni cinque minuti, ma non lo rende obbligatorio ); ma le implementazioni implementate funzionano in questo modo. L'usabilità supera il modello PKI, come ho detto sopra, quindi questo è OpenPGP per me.
( Nota: in un altro contesto, HTTPS si basa sulla PKI gerarchica X.509 con alcune dozzine di ancoraggi di trust hardcoded, e gli stessi problemi si presentano anche lì, ad esempio, vedi Convergence , che è una proposta per, in effetti, vincolare chiavi ai server in modo semi-permanente, e che si basa sullo stesso mantra "folla è giusta" come il WoT. Eppure lo fanno con i certificati X.509, il che dimostra che il formato effettivo per i certificati non è così importante.)