TP1 Cryptage Siganture Chiffrement
TP1 Cryptage Siganture Chiffrement
TP1 Cryptage Siganture Chiffrement
OBJECTIFS DE CE TP :
L'application GnuPG sert à chiffrer des données : vous pouvez vous en servir pour
communiquer en toute sécurité (courriel, messagerie instantanée, etc.) et pour chiffrer vos
fichiers (qui pourront d'ailleurs être également déchiffrés sous d'autres systèmes
d'exploitation comme Windows). Nous allons mettre le point sur le principe de cryptage, en
suivant les différentes étapes de ce processus sur le plan pratique avec l’outil GNU PG.
RECOMENDATIONS :
A la fin de chaque séance vous êtes appelés à faire un compte rendu, résumant les
différentes activités faites durant la séance de TP et l’envoyer à l’adresse suivant
[email protected].
I. QUELQUES CONCEPTS DE BASE :
PRINCIPE :
Commençons par expliquer leur procédé de façon imagée. Un ami doit vous faire
parvenir un message très important par la poste, mais vous n'avez pas confiance en
votre facteur que vous soupçonnez d'ouvrir vos lettres. Comment être sûr de recevoir
ce message sans qu'il soit lu? Vous commencez par envoyer à votre ami un cadenas
sans sa clé, mais en position ouverte. Celui-ci glisse alors le message dans une boite
qu'il ferme à l'aide du cadenas, puis il vous envoie cette boite. Le facteur ne peut pas
ouvrir cette boite, puisque vous qui possédez la clé pouvez le faire.
1|Page
IHEC TP Sécurité Informatique 3ième année LAIAA
ANALOGIE :
La cryptographie à clé publique ou Asymétrique repose exactement sur ce principe.
On dispose d'une fonction P sur les entiers, qui possède un inverse S. On suppose
qu'on peut fabriquer un tel couple (P,S), mais que connaissant uniquement P, il est
impossible (ou au moins très difficile) de retrouver S.
• P est la clé publique, que vous pouvez révéler à quiconque. Si Bob veut vous
envoyer un message, il vous transmet P(message).
• S est la clé secrète, elle reste en votre seule possession. Vous décodez le
message en calculant S(P(message))=message.
• La connaissance de P par un tiers ne compromet pas la sécurité de l'envoi des
messages codés, puisqu'elle ne permet pas de retrouver S. Il est possible de
donner librement P, qui mérite bien son nom de clé publique.
Clé publique : c’est cette clé qu'utilisera Bob pour envoyer des messages chiffrés à
Alice. La clé privée correspondante sert à déchiffrer. Ainsi, Alice, et elle seule,
peut prendre connaissance des messages de Bob, à condition que la clé privée ne
soit pas percée.
Clé Privée : La clé privée sert à déchiffrer. Ainsi, Alice, et elle seule, peut prendre
connaissance des messages de Bob, à condition que la clé privée ne soit pas percée.
PROCESSUS COMPLET :
1. Bob crée une paire de clés asymétriques : il conserve la clé privée et diffuse
librement la clé publique (notamment à Alice)
2. Alice crée une paire de clés asymétriques : clé privée (qu'elle conserve), clé
publique (qu'elle diffuse librement, notamment à Bob)
3. Bob effectue un condensat de son message « en clair » puis chiffre ce condensat
avec sa propre clé privée
2|Page
IHEC TP Sécurité Informatique 3ième année LAIAA
CONCLUSION
RECAPITULATIF :
Cryptage Symétrique
Cette méthode est la plus simple à comprendre : si Anne (A) veut envoyer un message
chiffré à Bob (B) elle doit lui communiquer un mot de passe (Clé). Comme l'algorithme
de chiffrement est symétrique, on a la relation suivante :
Texte Chiffré = Chiffrement(Clé, Texte)
Ainsi, Anne peut aussi déchiffrer un message en provenance de Bob avec la même clé.
La situation peut cependant devenir complexe, si Anne doit envoyer un message
chiffré à Bob et à Charlie mais qu'elle ne souhaite pas donner la même clé à Charlie.
Plus le nombre de personnes est grand, plus il est difficile de gérer les clés
symétriques.
Cryptage Asymétrique
La propriété des algorithmes asymétriques est qu'un message chiffré par une clé
publique n'est lisible que par le propriétaire de la clé privée correspondante. À
3|Page
IHEC TP Sécurité Informatique 3ième année LAIAA
l'inverse, un message chiffré par la clé privée sera lisible par tous ceux qui possèdent
la clé publique.
Ainsi avec sa clé privé, Anne :
II. GLOSSAIRE :
Cryptage Asymétrique = cryptage à clé public
Cryptage Symétrique = cryptage à clé Privée
Chiffrer= crypter
Signer= Si le contenu du message demande à ce que l'identité de l'expéditeur soit
connue avec certitude, il faut que celui-ci signe électroniquement son message.
• La ligne de commande gpg --gen-key est utilisée pour créer une nouvelle paire
de clés.
4|Page
IHEC TP Sécurité Informatique 3ième année LAIAA
• Choisissez DSA and ElGamal (default) en tapant 1. Une clef de 1024 bits vous
assurera une bonne protection.
• Choisissez alors dans combien de temps votre clef expirera. Vous pouvez
entrer 30 comme nombre de jours pour faire vos premiers essais.
• Confirmez par y.
• Enfin, vous devez choisir une date d'expiration. Si le choix 1 est fait, la date
d'expiration sera valable pour la paire de clés.
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)
N.B. : Rien ne s'affiche lorsque vous tapez votre mot de passe dans la console. C'est
une question de sécurité.
5|Page
IHEC TP Sécurité Informatique 3ième année LAIAA
Une fois que votre paire de clés a été créée, vous devez immédiatement créer un
certificat de révocation pour la clé principale en utilisant l'option --gen-revoke. Si vous
oubliez votre mot de passe, ou si votre clé privée est compromise ou perdue, ce
certificat de révocation peut être publié pour notifier aux autres que votre clé
publique ne doit plus être utilisée. On peut toujours se servir d'une clé publique
révoquée pour vérifier des signatures que vous avez faites par le passé, mais on ne
peut s'en servir pour chiffrer de nouveaux messages à votre attention. Cela n'affecte
pas non plus votre capacité à déchiffrer les messages qui vous ont été adressés
précédemment, si vous avez toujours accès à votre clé privée.
L'argument mykey doit être un identificateur de clé, soit celui de la clé principale de
votre paire de clés, soit une partie d'un identificateur d'utilisateur qui identifie votre
clé. Le certificat produit sera enregistré dans le fichier revoke.asc. Si l'option --
output est omis, le résultat de la commande sera écrit sur la sortie standard. Comme
le certificat est court, vous pouvez souhaiter en imprimer une copie pour la stocker
dans un endroit sûr. Le certificat ne doit pas être stocké dans un endroit où d'autres
pourraient accéder, car n'importe qui peut publier le certificat de révocation, rendant
inutilisable la clé publique correspondante.
Pour envoyer votre clé publique à un correspondant, vous devez d'abord l'exporter en
utilisant l'option de ligne de commandes --export. Elle prend un argument
supplémentaire : l'identificateur de la clé à exporter. Comme avec l'option --gen-
revoke, soit l'identificateur de la clé, soit une partie de l'identificateur utilisateur peut
être utilisé pour identifier la clé à exporter.
La clé est exportée dans un format binaire, mais ceci peut être problématique si la clé
doit être envoyée par email ou publiée sur une page web. C'est pourquoi GnuPG
6|Page
IHEC TP Sécurité Informatique 3ième année LAIAA
supporte une option de ligne de commandes --armor qui provoque la génération des
sorties dans un format ASCII. En général, toutes les sorties de GnuPG, comme par
exemple clés, documents chiffrés, et signatures, peuvent être exportés dans le format
ASCII en ajoutant l'option --armor.
[...]
-----END PGP PUBLIC KEY BLOCK-----
Si vous voulez chiffrer un message pour Alice, vous le faites en utilisant la clé
publique d'Alice, qui le déchiffre avec sa clé privée. Si elle vous envoie un message,
elle le chiffre en utilisant votre clé publique, et vous le déchiffrez avec votre clé privée.
Donc pour envoyer un message crypté à votre destinataire vous devez avoir sa clé
publique, pour ce faire nous allons importer la clé publique des destinataires que
nous voulons leurs envoyé des messages chiffrés.
Une clé publique peut être ajoutée à votre trousseau de clés publiques avec l'option --
import.
Une fois que la clé a été importée, elle devrait être validée. Une clé peut être validée en
vérifiant son empreinte. En la signant, vous certifiez que c'est une clé valide.
L'empreinte d'une clé peut être visualisée rapidement avec l'option de ligne de
commandes --fingerprint, mais pour certifier la clé, vous devez l'éditer.
Command> fpr
pub 1024D/9E98BC16 2012-10-30 receiver (receiver) <[email protected]>
Fingerprint: 268F 448F CCD7 AF34 183E 52D8 9BDE 1A08 9E98
7|Page
IHEC TP Sécurité Informatique 3ième année LAIAA
BC16
L'empreinte d'une clé est vérifiée avec le propriétaire de la clé. Ce peut être fait en
personne, au téléphone, ou par tout autre moyen, du moment que vous pouvez
garantir que vous communiquez bien avec le vrai propriétaire de la clé. Si l'empreinte
que vous obtenez est la même que celle que le propriétaire de la clé obtient, alors vous
pouvez être sûr que vous avez une copie correcte de la clé.
Après avoir vérifié l'empreinte, vous pouvez signer la clé pour la valider. Étant donné
que la vérification des clés est un point faible de la cryptographie à clé publique, vous
devez être extrêmement prudent et toujours vérifier l'empreinte d'une clé avant de la
signer.
Command> sign
Are you really sure that you want to sign this key with your key: "sender
(sender) <[email protected]>"
Really sign?
Une fois signée, vous pouvez vérifier la clé pour lister ses signatures et voir celle que
vous avez ajoutée. Chaque identificateur d'utilisateur de la clé aura une ou plusieurs
auto-signatures et aussi une signature pour chaque utilisateur qui a validé cette clé.
Command> check
uid receiver (receiver) <[email protected]>
sig! 9E98BC16 2012-10-30 [self-signature]
sig! BB7576AC 2012-10-30 Alice (Judge) <[email protected]>
Pour chiffrer un document, il faut utiliser l'option --encrypt. Vous devez avoir la clé
publique de tous les destinataires. Le programme attend le nom du document à
chiffrer en entrée ; s'il est omis, il lit l'entrée standard. Le résultat chiffré est placé sur
la sortie standard ou comme spécifié en utilisant l'option --output. En plus du
chiffrement, le document est compressé pour plus de sécurité.
L'option --recipient est utilisée une fois pour chaque destinataire du message, et
prend un argument supplémentaire spécifiant la clé publique pour laquelle le
document doit être chiffré. Le document chiffré peut seulement être déchiffré par
quelqu'un possédant une clé privée qui correspond à une des clés publiques des
8|Page
IHEC TP Sécurité Informatique 3ième année LAIAA
Pour déchiffrer un message, on utilise l'option --decrypt. Vous avez besoin de la clé
privée pour laquelle le message a été chiffré. De la même manière que pour le
chiffrement, le document à déchiffrer est l'entrée et le document déchiffré est la sortie.
Enter passphrase:
Perspectives à ce TP
C’est quoi le rôle d’un Certificat Numérique ?
9|Page