OpenPGP

Un article de Wikipédia, l'encyclopédie libre.

OpenPGP est un format de cryptographie initialement proposé par l’Internet Engineering Task Force (IETF) dans la RFC 2440[1]. Cette RFC a été remplacée par la RFC 4880[2].

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.

Utilisations[modifier | modifier le code]

OpenPGP sert par exemple au chiffrement et à l'authentification du courrier électronique(en) « Email Encryption » [html], décrits notamment dans la RFC 3156[4]. L'utilisation de certificats OpenPGP lors de communications sécurisées par TLS est proposée dans la RFC 6091[5].

Signature[modifier | modifier le code]

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.

Certificat[modifier | modifier le code]

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.

Chiffrement[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

  1. Hal Finney, Rodney L. Thayer, Lutz Donnerhacke et Jon Callas, « OpenPGP Message Format », tools.ietf.org, Internet Engineering Task Force, no RFC 2440,‎ (lire en ligne, consulté le ).
  2. (en) Request for comments no 4880
  3. Hal Finney, Lutz Donnerhacke, Jon Callas et Rodney L. Thayer, « OpenPGP Message Format », datatracker.ietf.org, Internet Engineering Task Force, no RFC 4880,‎ (lire en ligne, consulté le )
  4. (en) M. Elkins et al., « MIME Security with OpenPGP », sur tools.ietf.org, août 2001 (consulté le 18 mai 2012).
  5. (en) N. Mavrogiannopoulos et al., « Using OpenPGP Keys for Transport Layer Security (TLS) Authentication », sur tools.ietf.org, février 2011 (consulté le 18 mai 2016).
  6. (en) RedHat, « Certificate spamming attack against SKS key servers and GnuPG » [html],

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]