web-dev-qa-db-fra.com

En quoi PGP diffère-t-il de S / MIME?

S/MIME est-il un système abstrait pour le chiffrement général de type MIME, alors que PGP est plus pour le courrier électronique? Pourquoi voudrais-je choisir l'un plutôt que l'autre, ou puis-je utiliser les deux en même temps?

73
Tyler Gillies

Résumé: S/MIME et PGP fournissent tous deux un "emailing sécurisé" mais utilisent des encodages, des formats, des outils utilisateur et des modèles de distribution de clés distincts.


S/MIME s'appuie sur MIME et CMS . MIME est un moyen standard de mettre des données arbitraires dans des e-mails, avec un "type" (une indication explicite de ce que les données sont censées signifier) ​​et des milliers de règles de codage et d'autres détails d'interopérabilité. CMS signifie "Cryptographic Message Syntax": c'est un format binaire pour crypter et signer des données. Le CMS s'appuie sur certificats X.509 pour la distribution des clés publiques. X.509 a été conçu pour prendre en charge l'ICP hiérarchique descendante: un petit nombre de "autorités de certification racine" émettent (c'est-à-dire signent) des certificats pour de nombreux utilisateurs (ou éventuellement une autorité de certification intermédiaire); un certificat utilisateur contient son nom (dans un contexte de messagerie, son adresse e-mail) et sa clé publique, et est signé par une autorité de certification. Une personne souhaitant envoyer un e-mail à Bob utilisera le certificat de Bob pour obtenir sa clé publique (nécessaire pour crypter l'e-mail, afin que seul Bob puisse le lire); vérifier la signature sur le certificat de Bob est un moyen de s'assurer que la liaison est authentique, c'est-à-dire qu'il s'agit bien de la clé publique de Bob, et non de la clé publique de quelqu'un d'autre.

PGP est en fait une implémentation de la norme OpenPGP (historiquement, OpenPGP a été défini comme un moyen de normaliser ce qui est préexistant PGP le logiciel l'a fait, mais il existe maintenant d'autres implémentations, en particulier l'open source gratuit GnuPG ). OpenPGP définit ses propres méthodes de cryptage (similaires en fonctionnalités au CMS) et les formats de codage, en particulier une couche de codage appelée "ASCII Armor" qui permet aux données binaires de voyager indemnes dans les e-mails (mais vous pouvez aussi mélanger MIME et OpenPGP ). Pour la distribution de clés publiques, OpenPGP s'appuie sur Web of Trust : vous pouvez voir cela comme une PKI décentralisée où tout le monde est une autorité de certification potentielle. La base de sécurité de WoT est redondance: vous pouvez faire confiance à une clé publique car elle a été signée par many personnes (l'idée étant que si un attaquant "ne peut pas tromper tout le monde pendant longtemps ").

Théoriquement , dans un contexte d'entreprise, WoT ne fonctionne pas bien; l'ICP hiérarchique X.509 est plus appropriée, car elle peut être adaptée à la structure décisionnelle des entreprises envisagées, tandis que WoT dépend des employés qui prennent leurs propres décisions de politique de sécurité.

En pratique , bien que la plupart des logiciels de messagerie électronique implémentent déjà S/MIME (même Outlook Express a implémenté S/MIME depuis environ une décennie), le processus d'inscription de certificat est complexe avec des interactions avec des entités externes, et nécessite des interventions manuelles. La prise en charge d'OpenPGP nécessite généralement l'ajout d'un plugin, mais ce plugin est livré avec tout ce qui est nécessaire pour gérer les clés. Le Web of Trust n'est pas vraiment utilisé: les gens échangent leurs clés publiques et assurent la liaison sur un autre support (par exemple, en précisant l'`` empreinte digitale de la clé '' - une valeur de hachage de la clé - par téléphone). Ensuite, les gens garder une copie des clés publiques des personnes avec lesquelles ils échangent généralement des e-mails (dans le "trousseau de clés" PGP), ce qui garantit une sécurité appropriée et sans tracas. Lorsque j'ai besoin d'échanger des e-mails sécurisés avec des clients, j'utilise PGP de cette façon.

OpenPGP est également utilisé, comme format de signature, pour d'autres tâches non liées au courrier électronique, telles que la signature numérique de packages logiciels dans certaines distributions Linux (au moins Debian et Ubuntu le font).

71
Thomas Pornin

Toutes les adresses IP sont conçues pour faciliter le flux sécurisé et fluide de la transmission de données dans les réseaux. S/MIME et PGP sont les deux protocoles utilisés pour l'authentification et la confidentialité des messages sur Internet. PGP, pour Pretty Good Privacy, est un programme informatique de cryptage et de décryptage de données qui offre une confidentialité cryptographique et une authentification pour la transmission de données Internet. PGP est largement utilisé pour signer, chiffrer et déchiffrer des données électroniques afin de maximiser les problèmes de sécurité de l'échange de données. Le protocole S/MIME fait référence aux extensions de messagerie Internet sécurisées/polyvalentes. S/MIME a récemment été inclus dans les dernières versions des navigateurs Web de sociétés de logiciels renommées comme Microsoft et Netscape et a également été largement accepté par de nombreux fournisseurs dans le monde entier. Il est également utilisé comme standard pour le cryptage à clé publique et la signature des données MIME. S/MIME est basé sur une norme IETF et le plus souvent défini dans les documents RFC. S/MIME fournit les services d'authentification, d'intégrité des messages et de non-répudiation d'origine et de sécurité des données pour les applications de transmission électronique de données.

S/MIME est très proche de PGP et de ses prédécesseurs. S/MIME est dérivé du format de données PKCS # 7 pour les messages et du format X.509v3 pour les certificats. Le cryptage PGP utilise une combinaison série de hachage, de compression de données, de cryptographie à clé symétrique et de cryptographie à clé publique.

Lors de l'utilisation de PGP, un utilisateur a la possibilité de donner directement une clé publique à un autre utilisateur ou le deuxième utilisateur peut obtenir la clé publique du premier utilisateur. PGP n'impose pas de politique de création de confiance et par conséquent, chaque utilisateur est libre de décider de la durée de confiance dans les clés reçues. Avec le S/MIME, l'expéditeur ou le destinataire ne compte pas sur l'échange de clés à l'avance et partage un certificateur commun sur lequel les deux peuvent s'appuyer.

S/MIME est considéré comme supérieur à PGP d'un point de vue administratif en raison de sa force, de la prise en charge de la gestion centralisée des clés via les serveurs de certificats X.509 et de la prise en charge étendue de l'industrie. PGP est plus compliqué du point de vue de l'utilisateur final, car il nécessite des plug-ins ou des téléchargements supplémentaires pour fonctionner. Le protocole S/MIME permet à la plupart des fournisseurs d'envoyer et de recevoir des e-mails chiffrés sans utiliser de logiciel supplémentaire.

S/MIME est pratique en raison de la transformation sécurisée de toutes les applications telles que les feuilles de calcul, les graphiques, les présentations, les films, etc., mais PGP a été créé pour répondre aux problèmes de sécurité des e-mails ou des messages texte. S/MIME est également très abordable en termes de coût.

Résumé: Les protocoles S/MIME et PGP utilisent différents formats pour l'échange de clés. PGP dépend de l'échange de clés de chaque utilisateur S/MIME utilise un certificateur validé hiérarchiquement pour l'échange de clés. PGP a été développé pour résoudre les problèmes de sécurité des messages en texte brut. Mais S/MIME est conçu pour sécuriser toutes sortes de pièces jointes/fichiers de données. De nos jours, S/MIME est connu pour dominer l'industrie électronique sécurisée car il est incorporé dans de nombreux packages de courrier électronique commerciaux. Les produits S/MIME sont plus facilement disponibles, et à des prix inférieurs, que les produits PGP.

13
nikoo28

Si vous "lisez entre les lignes" dans les entrées de wikipedia, vous pouvez vous rapprocher d'une réponse. S/MIME :

est une norme pour le chiffrement à clé publique et la signature des données MIME

où MIME est la norme pour transporter plus que du simple ASCII sur le système de messagerie SMTP d'origine. Vous intégrez S/MIME à vos certificats numériques, achetés (ainsi tamponnés et certifiés par une autorité de certification) ou localement produit (donc auto-signé).

Quant à PGP, je le décrirais comme une application externe gérant le chiffrement/signature qui peut s'intégrer de manière transparente avec votre application de messagerie et fournir de tels services. Chaque utilisateur obtient sa paire de clés publique-privée et l'utilise pour toutes les opérations.

Comme l'a souligné @chris, les modèles de confiance sur lesquels chacun opère sont légèrement différents, mais à mon humble avis, cela ne rend pas l'un ou l'autre moins sûr.

En pratique, les deux solutions ont des touches plus ou moins interchangeables. Vous pouvez utiliser une paire de clés émise par PGP avec le S/MIME de votre application de messagerie et (je pense) vice-versa. Quelqu'un veuillez me corriger sur ce dernier ...

Le principal facteur décisif pour moi serait le coût:

[~ # ~] pgp [~ # ~] : solution logicielle correspondant à vos besoins + frais de renouvellement logiciel + frais administratifs pour les échanges de clés

par rapport à:

S/MIME : coût administratif de l'exécution d'un serveur de certificats pour les certificats produits localement + coûts administratifs pour la distribution de clés publiques OR le coût d'achat de certificats auprès d'un CA + frais de renouvellement

N'oubliez pas que la plupart des clients de messagerie prennent déjà en charge S/MIME "prêt à l'emploi", ce qui réduit les coûts d'origine dans ce cas.

8
George

Quelques années plus tard, mais je pense que cela devrait être important. En Europe, les signatures numériques doivent utiliser le CMS en raison des extensions définies (CAdES, XAdES etc.).

Par conséquent, PGP est inutile dans ce domaine et S/MIME est la seule solution.

0
Michael Chourdakis

Ajout d'une perspective de 2018: efail s'est produit. Cela ajoute une perspective intéressante, car au début, OpenPGP et S/MIME étaient vulnérables. Mais OpenPGP est principalement corrigé en raison de toutes les implémentations importantes rendant le MDC (contrôle de détection de modification) obligatoire. Le problème pour S/MIME est cependant qu'il n'y a rien de tel que MDC. Elle reste donc vulnérable. D'après ce que je comprends, c'est un argument important pour favoriser l'OpenPGP décentralisé plutôt que S/MIME.

0
foss

S/MIME dépend de la PKI SSL: vous avez un certificat SSL avec votre clé publique, et le fait qu'il soit signé par une autorité de certification (CA) "prouve" qu'il s'agit bien de votre clé. PGP, d'autre part, n'a pas d'ICP: vous vérifiez si la clé publique d'une personne lui appartient vraiment en lui demandant de le dire tout en montrant qu'il a un passeport (signataire clé) ou en lui faisant confiance parce que beaucoup d'autres personnes ont fait ce contrôle et signé sa clé.

Avec les récents développements en matière de sécurité CA, je dirais qu'il y a une très grande raison de ne pas faire confiance à S/MIME :-) Alors que le modèle PGP "web of trust" n'est pas aussi simple à utiliser que S/MIME, il fournit une beaucoup plus de sécurité si vous faites l'effort.

Soit dit en passant, les deux systèmes finissent par utiliser un cryptage asymétrique, ils diffèrent vraiment par la façon dont la confiance dans une clé publique est établie.

0
chris