GNUPG introduction à la cryptographie et utilisation de GnuPG
Notions importantes de la cryptographie
Clefs Publique/ Privées/ Partagées:
Il existe deux types de chiffrement : symétrique et asymétrique.
Ce concept est important car très répandu dans le monde de la sécurité et des services réseaux sous Linux : à savoir: openssl, ldap, apache et bien d’autres.
La maitrise de ces concepts est donc essentielle pour tout administrateur Linux digne de ce nom. La sécurité est partout !
Chiffrement Asymétrique:
Nous commencerons donc avec le concept de clé asymétrique.
Chaque utilisateur possède deux clés: une publique et l’autre privée connu seulement de l’utilisateur lui-même.
User1 possède donc une clé publique et une clé privée.
User2 possède une clé public et une clé privée.
La clé publique comme son nom l’indique est publique (...). Il est donc dans leur intérêt de partager cette clé avec tout le monde afin de pouvoir communiquer, par la suite de manière sécurisée (chiffrement asymétrique).
Comment partager cette clé ?
Au moyen du chiffrement symétrique comme nous le verrons dans le chapitre suivant ou alors sur une clé USB, CD-ROM, mails..etc.
Ainsi à la fin de la transaction User1 possède la clé publique de User2 et inversement. Chaque utilisateur possède donc trois clé.
Le principe du chiffrement asymétrique :
Si User1 chiffre un fichier avec la clé publique de User2 (User2.pub), alors seul User2 peut déchiffrer ce fichier à l’aide de sa clé privée (User2.priv) que lui seul possède et ne partage surtout pas !
De même, si User2 chiffre un fichier avec la clé publique de User1 (User1.pub), alors seul User1 peut déchiffrer ce fichier à l’aide de sa clé privée (User1.priv) que lui seul connait et ne partage surtout pas !
Vous suivez ?
Donc si User1 veut envoyer des fichiers à User2 il suffit des les chiffrer avec la clé publique de User2 et de lui envoyer ses fichiers à travers n’importe quel support (mail, ftp, http, clef USB). De cette manière, même si le fichier est intercepté il ne pourra être lu par personne ne possédant la clé privée correspondant à la clé publique User2.pub, soit User2.priv.
Il ne suffit qu’à User2 de déchiffrer son fichier avec sa clé privée, simple mais efficace.
Cette façon de faire est très sécurisée, cependant elle demande énormément de ressources pour des transferts tels que SSH où tout le dialogue entre les deux machines se fait de manière chiffrée.
C’est pour cela que l’on utilise un compromis entre les ressources et la sécurité qui est le cryptage symétrique.
Algorithmes courants pour le cryptage asymétrique:
RSA, DSA, El-Gamal
Chiffrement Symétrique:
Le principe du chiffrement symétrique :
Il n’y a plus qu’une seule et unique clé pour chiffrer et déchiffrer. Le récepteur ainsi que l’envoyeur partagent la même clé durant la transaction.
Vous voyez le problème ?
C’est beaucoup moins sécurisé. En effet, si cette clé est interceptée par un utilisateur malicieux ; c’est tout le trafic qui est mis en péril. Cependant elle est aussi beaucoup moins gourmande en ressources et donc beaucoup plus performante.
C’est là que le compromis devient intéressant : on utilise le cryptage asymétrique pour échanger cette clé symétrique au début de la transaction (très sécurisé donc très peu de chance de l’intercepter). Puis on continue la transaction avec un cryptage symétrique.
J’ai écris cette brève description pour expliquer clairement la différence entre les deux cryptographies. Si vous souhaitez plus d’informations, je vous redirige sur ce lien :
http://en.wikipedia.org/wiki/Cryptography
Algorithmes courants pour le cryptage symétrique :
DEA, Triple-DES, CAST, Blowfish, Twofish, AES128,AES192,AES256
Chiffrement/ Signature:
Une autre notion importante à comprendre dans GPG est la différence entre le chiffrement et la signature.
La signature ne chiffre en rien vos données ou vos messages à la différence du chiffrement par clé (symétrique et asymétrique).
L’intérêt de signer un message est important car il prouve que vous êtes bien celui qui a écrit et envoyé ce message.
De nos jours en effet, il devient très simple d’usurper l’identité internet de quelqu’un au moyen des ghostmails par exemple.
Cela devient dangereux si vous êtes l’employé d’une société et que de fausses données sensibles sont envoyées à votre insu.
Avec les signatures, aucuns problème de ce type ne peut arriver !
De plus, vous êtes sûr que personne n’a modifié le contenu du message.
Quelle est la procédure ?
Il existe deux phases durant la signature :
Hashage :
Première étape:
Hasher un message. L’utilité de cette opération est d’obtenir un Message Digest du message original. Quel est donc ce mot étrange ? Le Message Digest est simplement un résumé du message en quelques lignes. C’est bien beau tout ça mais comment on peut être sûr que le message digest n’a pas été changé et qu’on est bien l’auteur du message ?
Chiffrement :
On retrouve notre principe de clé asymétrique.
Vous vous souvenez du premier chapitre ? Utilisateur possède deux clés : une publique et l’autre privée. La procédure ici est inversée : L’utilisateur chiffre le message digest avec sa clé privée et envoie le message au destinataire qui peut vérifier avec la clef public de l’utilisateur qui lui a envoyé le message que celui ci est bien l’utilisateur qu’il prétend être.
Vous devriez avoir envie de signer vos message après cette petite lecture non ?
Ok, maintenant on va être en mesure de comprendre et de maîtriser GPG !