Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Signature numérique et certificat

Après cette leçon: Je peux expliquer comment une signature et un certificat prouvent qui a envoyé un message.

Leçon de 55 min3 commandesLab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Qui a vraiment envoyé ce document ?

Une signature numérique prouve qui a envoyé un message et que personne ne l’a modifié en route. Un certificat relie une clé publique au nom de son propriétaire.

Quand votre navigateur affiche un cadenas, il a vérifié les deux. Sans eux, n’importe qui pourrait se faire passer pour votre banque.

À la fin de cette leçon

Remarque

Je peux expliquer comment une signature et un certificat prouvent qui a envoyé un message.

Mots-clés

MotCe que ça veut dire
Signature numériqueune empreinte chiffrée avec la clé privée de l’auteur
Authenticitéle fait de savoir qui est l’auteur d’un message
Certificatun document qui lie une clé publique à un nom
Autorité de certificationun organisme de confiance qui signe des certificats
Chaîne de confiancela suite de certificats qui mène jusqu’à une autorité connue
Code d’authentification (HMAC)une empreinte calculée avec une clé secrète partagée

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une signature se fait avec la clé privée

Pour signer, l’auteur calcule l’empreinte du message, puis la chiffre avec sa clé privée. Le résultat est la signature, envoyée avec le message.

Pour vérifier, le lecteur déchiffre la signature avec la clé publique de l’auteur. Il compare avec sa propre empreinte du message. Si elles sont égales, le message est authentique et intact.

Signer l’empreinte 65 avec la clé privée

Commande
python3 -c "print(pow(65, 2753, 3233))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Vérifier la signature avec la clé publique

Commande
python3 -c "print(pow(588, 17, 3233))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Exemple travaillé : une signature jouet

ÉtapeCalculRésultat
Clés jouetsn = 3233, publique e = 17, privée d = 2753Les mêmes que dans la leçon précédente
Empreinte du messageOn suppose qu’elle vaut 6565
Signature65 puissance 2753 modulo 3233588
Vérification588 puissance 17 modulo 323365, égale à l’empreinte : valide
Message modifiéNouvelle empreinte, par exemple 6666 est différent de 65 : refusée

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Erreur fréquente

Attention

Beaucoup de gens pensent qu’une signature cache le message. Elle ne cache rien : le message reste lisible. La signature prouve seulement l’auteur et l’intégrité. Pour cacher le message, on le chiffre en plus.

Un certificat relie clé et nom

Une signature prouve qu’un détenteur de clé privée a écrit le message. Mais qui est ce détenteur ? Un fraudeur peut publier sa propre clé en disant qu’elle est celle de votre banque.

Un certificat règle ce problème. Il contient un nom, une clé publique et une date de fin. Il est signé par une autorité de certification qui a vérifié l’identité du propriétaire.

Une chaîne mène à une racine connue

Le certificat d’un site est signé par une autorité intermédiaire. Le certificat de celle-ci est signé par une autorité racine. Votre navigateur ou votre système connaît d’avance une liste d’autorités racines.

Pour croire un site, on remonte la chaîne. Chaque signature doit être valable et chaque certificat en cours de validité. La chaîne finit par une racine connue.

Le cadenas ne prouve pas l’honnêteté

Attention

Beaucoup de gens pensent que le cadenas prouve qu’un site est digne de confiance. Il prouve seulement que la connexion est chiffrée et que le site possède bien le nom affiché. Un site frauduleux peut avoir un nom à lui et un certificat valable.

Un HMAC authentifie avec une clé partagée

Quand deux machines partagent déjà une clé secrète, elles n’ont pas besoin de paire de clés. L’une calcule une empreinte du message avec cette clé : c’est un code d’authentification, ou HMAC. L’autre refait le calcul et compare.

Un HMAC prouve l’intégrité et l’auteur, mais seulement entre ceux qui partagent la clé. Il ne prouve rien à un tiers.

Un HMAC de virement 50

Commande
python3 -c "import hmac, hashlib; print(hmac.new(b'cle', b'virement 50', hashlib.sha256).hexdigest()[:16])"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

À propos de ce labo et de sa source: Lab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.