it-swarm.dev

In che modo PGP differisce da S / MIME?

S/MIME è un sistema astratto per la crittografia di tipo MIME generale, mentre PGP è più per la posta elettronica? Perché dovrei scegliere l'uno rispetto all'altro o posso usare entrambi contemporaneamente?

73
Tyler Gillies

Riepilogo: S/MIME e PGP forniscono entrambi "e-mail sicura" ma utilizzano codifiche, formati, strumenti utente e modelli di distribuzione delle chiavi distinti.


S/MIME si basa su MIME e CMS . MIME è un modo standard di inserire dati arbitrari nelle e-mail, con un "tipo" (un'indicazione esplicita del significato dei dati) e migliaia di regole di codifica e altri dettagli di interoperabilità. CMS significa "Sintassi dei messaggi crittografici": è un formato binario per la crittografia e la firma dei dati. CMS si basa su certificati X.509 per la distribuzione della chiave pubblica. X.509 è stato progettato per supportare la PKI gerarchica top-down: un numero limitato di certificati di "autorità di certificazione radice" (ovvero firma) per molti utenti (o possibilmente CA intermedio); un certificato utente contiene il suo nome (in un contesto e-mail, il suo indirizzo e-mail) e la sua chiave pubblica ed è firmato da una CA. Qualcuno che desidera inviare un'e-mail a Bob utilizzerà il certificato di Bob per ottenere la sua chiave pubblica (necessaria per crittografare l'e-mail, in modo che solo Bob sia in grado di leggerlo); verificare la firma sul certificato di Bob è un modo per assicurarsi che l'associazione sia autentica, vale a dire che questa è in realtà la chiave pubblica di Bob, non la chiave pubblica di qualcun altro.

PGP è in realtà un'implementazione dello standard OpenPGP (storicamente, OpenPGP è stato definito come un modo per standardizzare ciò che preesistente PGP software ha funzionato, ma ora ci sono altre implementazioni, in particolare open source gratuito GnuPG ). OpenPGP definisce i propri metodi di crittografia (simili nella funzionalità al CMS) e i formati di codifica, in particolare un livello di codifica chiamato "ASCII Armor" che consente ai dati binari di viaggiare indenni nelle e-mail (ma è anche possibile mescolare MIME e OpenPGP ). Per la distribuzione delle chiavi pubbliche, OpenPGP si basa su Web of Trust : puoi vederlo come una PKI decentralizzata in cui tutti sono una potenziale CA. La base di sicurezza di WoT è ridondanza: puoi fidarti di una chiave pubblica perché è stata firmata da molti persone (l'idea è che se un attaccante "non può ingannare tutti per molto tempo ").

Teoricamente , in un contesto aziendale, WoT non funziona bene; la PKI gerarchica X.509 è più appropriata, perché può essere fatta in modo che corrisponda alla struttura decisionale delle società previste, mentre WoT si affida ai dipendenti che prendono le proprie decisioni in merito alla politica di sicurezza.

In pratica , sebbene la maggior parte dei software di posta elettronica implementino già S/MIME (anche Outlook Express ha implementato S/MIME per circa un decennio), il processo di registrazione del certificato è complesso con interazioni con entità esterne e richiede alcuni interventi manuali. Il supporto OpenPGP di solito richiede l'aggiunta di un plug-in, ma quel plug-in viene fornito con tutto ciò che è necessario per gestire le chiavi. La Web of Trust non è realmente utilizzata: le persone scambiano le loro chiavi pubbliche e assicurano l'associazione su un altro supporto (ad es. Precisando "l'impronta digitale della chiave" - ​​un valore hash della chiave - al telefono). Quindi people keep una copia delle chiavi pubbliche delle persone con cui di solito si scambiano e-mail (nel "portachiavi" PGP), che garantisce una sicurezza adeguata e senza problemi. Quando devo scambiare e-mail sicure con i clienti, utilizzo PGP in questo modo.

OpenPGP è anche usato, come formato di firma, per altre attività non e-mail, come la firma digitale di pacchetti software in alcune distribuzioni Linux (almeno Debian e Ubuntu lo fanno).

71
Thomas Pornin

Tutti gli IP sono progettati per facilitare il flusso sicuro e regolare della trasmissione dei dati in rete. S/MIME e PGP sono entrambi protocolli utilizzati per l'autenticazione e la privacy dei messaggi su Internet. PGP, acronimo di Pretty Good Privacy, è un programma informatico di crittografia e decrittazione dei dati che offre privacy crittografica e autenticazione per la trasmissione di dati su Internet. PGP è ampiamente utilizzato per la firma, la crittografia e la decrittografia dei dati elettronici per massimizzare i problemi di sicurezza dello scambio di dati. Il protocollo S/MIME si riferisce alle estensioni di posta Internet sicure/multiuso. S/MIME è stato recentemente incluso nelle ultime versioni dei browser Web da rinomate società di software come Microsoft e Netscape ed è stato anche ampiamente accettato da molti fornitori in tutto il mondo. È inoltre guidato come standard per la crittografia della chiave pubblica e la firma dei dati MIME. S/MIME si basa su uno standard IETF e più comunemente definito nei documenti RFC. S/MIME fornisce i servizi di autenticazione, integrità dei messaggi e non ripudio di Origin e sicurezza dei dati per le applicazioni di trasmissione elettronica dei dati.

S/MIME è molto simile a PGP e ai suoi predecessori. S/MIME deriva dal formato dati PKCS # 7 per i messaggi e dal formato X.509v3 per i certificati. La crittografia PGP utilizza una combinazione seriale di hashing, compressione dei dati, crittografia a chiave simmetrica e crittografia a chiave pubblica.

Durante l'utilizzo di PGP, un utente ha la possibilità di fornire direttamente una chiave pubblica a un altro utente o il secondo utente può ottenere la chiave pubblica dal primo utente. PGP non impone una politica per la creazione della fiducia e quindi ogni utente è libero di decidere la durata della fiducia nelle chiavi ricevute. Con S/MIME, il mittente o il destinatario non si basano sullo scambio di chiavi in ​​anticipo e condividono un certificatore comune su cui entrambi possono fare affidamento.

S/MIME è considerato superiore a PGP dal punto di vista amministrativo per la sua forza, il supporto per la gestione centralizzata delle chiavi attraverso i server di certificazione X.509 e un ampio supporto del settore. PGP è più complicato dal punto di vista dell'utente finale, perché richiede plug-in o download aggiuntivi per funzionare. Il protocollo S/MIME consente alla maggior parte dei fornitori di inviare e ricevere e-mail crittografate senza utilizzare software aggiuntivo.

S/MIME è conveniente a causa della trasformazione sicura di tutte le applicazioni come fogli di calcolo, grafica, presentazioni, film ecc., Ma PGP è stato creato per rispondere ai problemi di sicurezza di semplici e-mail o messaggi di testo. S/MIME è anche molto conveniente in termini di costi.

Riepilogo: I protocolli S/MIME e PGP usano formati diversi per lo scambio di chiavi. PGP dipende dallo scambio di chiavi di ogni utente S/MIME utilizza un certificatore gerarchicamente convalidato per lo scambio di chiavi. PGP è stato sviluppato per affrontare i problemi di sicurezza dei messaggi di testo semplice. Ma S/MIME è progettato per proteggere tutti i tipi di allegati/file di dati. Oggi, S/MIME è noto per dominare l'industria elettronica sicura perché è incorporato in molti pacchetti di posta elettronica commerciali. I prodotti S/MIME sono più prontamente disponibili e, a prezzi inferiori, rispetto ai prodotti PGP.

13
nikoo28

Se "leggi tra le righe" alle voci di Wikipedia potresti avvicinarti a una risposta. S/MIME :

è uno standard per la crittografia a chiave pubblica e la firma dei dati MIME

dove MIME è lo standard per il trasporto più che semplice ASCII sul sistema di posta SMTP originale. Integra S/MIME con i tuoi certificati digitali, acquistati (quindi timbrati e certificati da una CA) o localmente prodotto (quindi autofirmato).

Per quanto riguarda PGP, lo descriverei come un'applicazione esterna che gestisce la crittografia/firma che può integrarsi in modo trasparente con l'applicazione di posta elettronica e fornire tali servizi. Ogni utente ottiene la sua coppia di chiavi pubblica-privata e la utilizza per tutte le operazioni.

Come sottolineato da @chris, i modelli di trust su cui ciascuno opera sono leggermente diversi ma IMHO questo non rende l'uno o l'altro meno sicuro.

In pratica le due soluzioni hanno chiavi più o meno intercambiabili. È possibile utilizzare una coppia di chiavi emessa da PGP con S/MIME dell'applicazione di posta e (credo) viceversa. Qualcuno, per favore, correggimi su quest'ultimo ...

Il principale fattore decisivo per me sarebbe il costo:

[~ # ~] pgp [~ # ~] : soluzione software adatta alle tue esigenze + costi di rinnovo del software + costi amministrativi per gli scambi di chiavi

rispetto a:

S/MIME : costo amministrativo per l'esecuzione di un server di certificazione per certificati prodotti localmente + costi amministrativi per la distribuzione di chiave pubblica OR il costo per l'acquisto di certificati da una CA + tasse di rinnovo

Non dimenticare che la maggior parte dei client di posta elettronica supporta già S/MIME "out of the box", riducendo in questo caso i costi originali.

8
George

Qualche anno dopo, ma credo che dovrebbe essere importante. In Europa, le firme digitali devono utilizzare CMS a causa delle estensioni definite (CAdES, XAdES ecc.).

Pertanto, PGP è inutile in quel campo e S/MIME è l'unica strada da percorrere.

0

Aggiunta di alcune prospettive dal 2018: efail successo. Aggiunge una prospettiva interessante, poiché inizialmente sia OpenPGP che S/MIME erano vulnerabili. Ma OpenPGP è in gran parte corretto a causa di tutte le implementazioni importanti che rendono obbligatorio il controllo del rilevamento delle modifiche. Il problema per S/MIME è che non c'è niente come MDC. Quindi rimane vulnerabile. Da quello che ho capito, questo è un argomento importante per favorire l'OpenPGP decentralizzato su S/MIME.

0
foss

S/MIME dipende dalla PKI SSL: hai un certificato SSL con la tua chiave pubblica e il fatto che sia firmato da un'autorità di certificazione (CA) "dimostra" che è davvero la tua chiave. PGP d'altra parte non ha un PKI: si controlla se la chiave pubblica di una persona appartiene davvero a lui facendolo dire mentre mostra un passaporto (parte firmataria) o si fida della propria chiave perché molte altre persone hanno fatto questo controllo e firmato la sua chiave.

Con i recenti sviluppi nella sicurezza della CA, direi che c'è un motivo molto grande per non fidarsi di S/MIME :-) Mentre il modello PGP "web of trust" non è così semplice da usare come S/MIME, fornisce molta più sicurezza se fai lo sforzo.

Entrambi i sistemi finiscono per usare la crittografia asimmetrica a proposito, differiscono davvero nel modo in cui viene stabilita la fiducia in una chiave pubblica.

0
chris