Cette proposition de « standard » décrit le format des messages, signatures et certificats que peuvent échanger des logiciels de cryptographie comme GNU Privacy Guard. Ce n’est donc pas un logiciel mais un format pour l’échange sécurisé de données qui doit son nom à l’application de cryptographie historique, Pretty Good Privacy (PGP).
Une clé est composée d’un ensemble de sous-clés aux usages différents (certification, signature et chiffrement) et d’une liste d’identités. Les identités[3] contiennent des informations sur le propriétaire. Chaque identité est certifiée par la clé principale.
La signature numérique permet de vérifier l’intégrité d’un document. L’auteur du document ou une autorité de confiance utilise sa sous-clé de signature et une valeur numérique représentant le document (hash) pour produire la signature, un document que tout le monde peut vérifier mais que seule l’émetteur aurait pu produire.
La signature n’est pas une partie du document lui-même car le document ne doit pas être modifié sinon la signature est invalide. Elle prend généralement la forme d’un fichier sig séparé et disponible à proximité du document complet.
Un certificat s’applique sur une identité et une clé publique. La clé utilisée pour valider le certificat n’est pas nécessairement la clé contenue dans le certificat. Il existe généralement une clé maîtresse destinée uniquement à la signature des autres clés.
Un certificat contient les informations d’identification d’une personne (nom, prénom, adresse de messagerie) et la partie publique de la clé certifiée. Cette clé publique peut permettre de vérifier les signatures émises par cette personne et de chiffrer des messages que seule cette personne pourra lire.
Le chiffrement d’un message garantit que seul le destinataire sera en mesure de le lire. Il doit être combiné avec une signature pour également garantir la provenance.
Le chiffrement utilise la sous-clé publique dédiée au chiffrement. L’utilisateur doit s’assurer que la clé utilisée appartient bien à la personne cible et que cette clé n’est pas compromise.
Serveurs de clés
Les serveurs de clés permettent aux utilisateurs de s’échanger la partie publique de leurs clés. La plupart des distributions Linux disposent d’un serveur de clés contenant au moins les clés ayant servi à signer les paquets.
Il existait une attaque[6] consistant à saturer ces serveurs avec des signatures tierces approuvant la légitimité d’une autre signature.
Notes et références
↑Hal Finney, Rodney L. Thayer, Lutz Donnerhacke et Jon Callas, « OpenPGP Message Format », tools.ietf.org, Internet Engineering Task Force, noRFC 2440, (lire en ligne, consulté le ).
↑Hal Finney, Lutz Donnerhacke, Jon Callas et Rodney L. Thayer, « OpenPGP Message Format », datatracker.ietf.org, Internet Engineering Task Force, noRFC 4880, (lire en ligne, consulté le )