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,...