Introduction à OpenPGP

Adrien Kunysz

Petit rappel cryptographique

  • cryptosystème symétrique
  • cryptosystème asymétrique
  • fonction de hashage cryptographique
  • signature en utilisant un cryptosystème asymétrique

cryptosystème symétrique

  • clé K, message M, chiffré C, fonction F
  • F(M, K) = C
  • F(C, K) = M
  • pas possible de retrouver facilement M à partir de C sans connaître K
  • algorithmes: 3DES, Blowfish, AES,...

cryptosystème asymétrique

  • même chose mais avec des clés différentes pour le chiffrement et déchiffrement
  • F(M, Ka) = C
  • F(C, Kb) = M
  • pas possible de retrouver facilement Kb (clé privée) à partir de Ka (clé publique)
  • beaucoup plus lent qu'un cryptosystème symétrique
  • algorithmes: RSA, DSA,...

fonction de hashage cryptographique

  • transforme un message de longueur quelconque en un hashé de longueur fixée
  • H(M) = C
  • pas possible de retrouver facilement un M qui correspond à un C donné
  • pas possible de trouver facilement deux M différents qui donnent un même C
  • algorithmes: MD5, SHA-1, SHA-256,...

signature de message

  • F(Kb, M) = S avec Kb la clé privée et S la signature
  • la signature est vérifiée si M = F(Ka, S) avec Ka la clé publique

détails pratiques

  • on chiffre les messages avec un algorithme symétrique
  • on chiffre la clé de session avec un algorithme asymétrique
  • on signe un hashé du message
  • tous ces trucs peuvent être craqués si on dispose de suffisament de puissance de calcul

et OpenPGP dans tout ça ?

  • Pretty Good Privacy créé par Phil Zimmerman en 1991
  • OpenPGP = format de messages standardisé en 1998 (RFC2440)
  • autre implémentations: GNU Privacy Guard, BPG, Hushmail,...

clés privées

  • chaque utilisateur dispose d'une paire de clés pour signer et une autre pour chiffrer
  • possibilité de rajouter des paires de clés à son trousseau privé par après
  • à chaque paire de clés sont associés:
    • une date d'expiration
    • un nom
    • un identifiant et une empreinte
    • des signatures

signature de clé

  • chacun peut signer les clés des autres de manière à signaler qu'il confirme que le nom associé à la clé est correct
  • les signatures sont attachées à la clé

révocation de clé

  • message spécial signé avec la clé privée
  • nécessité de disposer de la clé pour la révoquer
  • de l'importance d'avoir un trousseau de clés à jour

distribution des clés

  • "manuellement"
  • via des serveurs de clés

toile de confiance

  • à chaque clé publique on associe
    • un niveau de confiance en l'identité du propriétaire
    • un niveau de confiance en la capacité du propriétaire de signer correctement les clés des autres

en pratique

  • utilisation de GPG via son MUA et son client d'IM
  • gestion des clés via kgpg, gpgpg,...