En cette période de doute quant au secret des correspondances électroniques, mais aussi avec la démocratisation de l’Internet, il devient de plus important de contrôler son e-dentité. Au niveau des e-mails, nous avons disposons de plusieurs outils (GnuPG, OpenPGP, PGP…) dont les fonctions (principales) sont les suivantes:
- Signer un message/Vérifier la signature d’un message
- Chiffrer/Déchiffrer un message
Mais, comment ça marche ?
Tout d’abord, un petit rappel sur les propriétés des clefs RSA (cryptographie asymétrique, à base d’un couple de clef publique/clef privée et reposant sur les nombres RSA et leurs propriétés):
- Un message chiffré avec une clef privée ne peut être déchiffrer qu’avec la clef publique du couple, et vice-versa
- Il est impossible à partir de la clef publique de retrouver la clef privée
La signature numérique
Il s’agit de garantir l’intégrité et l’authenticité de l’émetteur du message. C’est-à-dire que l’ont doit être certain que le message n’a pas été altéré, et que l’émetteur du message est bien la personne dont on possède le certificat publique.
Le processus de signature est le suivant:
- Création d’une empreinte du message, via une fonction de hachage cryptographique. A l’heure actuelle, on utilise SHA-1.
- Signature de l’empreinte avec la clef privée.
Pourquoi signe-t-on l’empreinte et pas le message ? Tout simplement parce que l’opération de signature est une opération plus coûteuse que la fonction permettant de générer une empreinte. Il est donc moins couteux de signer une empreinte de 160 bits qu’un message d’une taille n.
Qui plus est, une empreinte SHA-1 présente les caractéristiques suivantes:- La moindre variation du message entraine une empreinte totalement différente
- Il est difficile de trouver des collisions, c’est-à-dire (2^52 opérations sont nécessaires, le record de calculs étant de 2^64 opérations sur un supercalculateur en 1 an et demi)
- Il est extrêmement difficile à partir d’un empreinte donnée de trouver une empreinte identique avec un autre contenu (résistance à la deuxième pré-image): 2^180 opérations nécessaire à l’heure actuelle
On peut donc considérer que l’empreinte SHA-1 est relativement sûre (même s’il est aujourd’hui possible de trouver des collisions)
- On joint la signature au message et on l’envoi. La signature se présente sous la forme d’un fichier dont l’extension est asc, qui contient entre les balises BEGIN et END PGP la signature codé en Base64.
Le processus de vérification de la signature, quant à lui:
- Calcul de l’empreinte du message reçu
- Vérification avec la clef publique de l’émetteur que le message n’a pas été altéré et à bien été émis par celui-ci
La sûreté de la signature d’un message repose donc sur les bases suivantes:
- Fonction de hachage sûre (ce qui n’est plus le cas de MD5)
- Clef privée connue uniquement de l’émetteur (non compromission de la clef)
- Serveur de clef publique sûr
- Sûreté de l’algorithme RSA
A noter que la signature d’un message est propre à son émetteur et au message (il est impossible d’utiliser la signature pour un autre message).
Enfin, il est à noté également qu’afin d’être sûr que la personne est bien celle qu’elle prétend être, il faut passer par un tiers de confiance, qui va garantir que anthony chez desvernois point fr avec le certificat public donné est bien Anthony Desvernois.
Le chiffrement/déchiffrement
Il s’agit cette fois de garantir la confidentialité du message. Personne d’autre que le destinataire du message ne peut lire son contenu.
L’algorithme de chiffrement de PGP est le suivant:
- Compression du contenu du message (pour des raisons de temps de calcul)
- Génération d’une clef de session (source d’aléa, ainsi deux messages identiques ne seront pas chiffrés de la même manière)
- Chiffrage du message compressé avec cette clef
- Chiffrage de la clef à l’aide de la clef publique du destinataire
L’algorithme de déchiffrement:
- Déchiffrage de la clef de session à l’aide de la clef privée du destinataire
- Déchiffrage du message compressé avec la clef de session
- Décompression du message
Enfin, la combinaison de ces deux opérations est possible; chiffrage du message, puis signature du message et lors de la réception vérification de la signature puis déchiffrage du message.
Pour conclure, un petit point sur la législation: En France, depuis 2004, les moyens cryptographique sont totalement libre. Toutefois, l’export à l’étranger (de solution de cryptographie) est soumis à approbation.
Si le sujet vous intéresse et que vous souhaitez l’approfondir, quelques liens:
Concernant ElGamal, il s’agit d’un système différent de RSA, non breveté, basé sur les logarithmes discrets. Il est de plus employé en remplacement de RSA. Il utilise également un système de clef publique/clef privée.
Et également, deux tutoriels basé sur l’utilisation de GnuPG, respectivement pour Firefox et Thunderbird: FireGPG, Enigmail.




Salut
Merci pour cet article très explicite.
merci pour votre article
J’ai une question qui me turlupine
Bob — le fameux Bob — envoie un message signé avec un certificat émanant d“une autorité de Certification StartSSL par exemple à josette@gmail.com.
Que dois faire Josette pour répondre à Bob de façon cryptée ; elle a –si j’ai bien compris– reçu la clé publique de bob donc elle doit pouvoir chiffrer un message pour lui non ? Ce qui correspond à votre dessin Chiffrement avec pgp ?
Merci pour d’éventuels éclaircissements.
Bonsoir,
Josette (Alice) a uniquement besoin de connaitre la clef publique de Bob pour lui répondre de manière chiffrer.
Quel programme PGP se procurer pour installer dans un ordi PC avec système 7 en France?
Bonjour Laura,
GnuPG par exemple.