Seb-Info

Les certificats numériques

Les certificats numériques

Créez des certificats numériques

Découvrez l’attaque de l’homme du milieu (MITM)

Dans le chapitre précédent, vous avez vu comment utiliser le chiffrement asymétrique pour envoyer des messages confidentiels et signés, sans partage de secret. Ce système repose sur le partage en clair de clés publiques, qui ne sont pas confidentielles. Cependant, il est crucial de pouvoir garantir à qui appartient une clé publique, sans quoi toute la sécurité du système est compromise par ce qu’on appelle l’attaque de l’homme du milieu (en anglais Man In The Middle, ou MITM).

Dans ce scénario, un attaquant, que l’on appellera Charlie, intercepte et modifie toutes les communications entre Alice et Bob, et ce en deux temps :

  • quand Bob envoie sa clé publique à Alice, Charlie intercepte la communication et la remplace par sa propre clé publique ;

  • quand Alice envoie sa clé publique à Bob, Charlie la remplace également par sa propre clé publique.

Quelles sont les conséquences de ce Man in the Middle ?

Lorsque Alice veut chiffrer un message pour Bob, elle utilise ce qu’elle croit être la clé publique de Bob, mais qui est en réalité la clé publique de Charlie. Charlie peut donc intercepter et déchiffrer le message avec sa propre clé privée. Il peut ensuite le chiffrer avec la vraie clé publique de Bob et l’envoyer à Bob. Bob reçoit le message et peut le déchiffrer avec sa clé publique. Bob a bien reçu le message d’Alice et ne se doute donc pas que l’échange est passé entre d’autres mains avant de lui arriver. Charlie, de son côté, a pu lire le message chiffré qui n’est donc plus confidentiel.

Résultat : la confidentialité est compromise !

De même, Alice peut choisir de signer son message avec sa clé privée, pour en assurer l’intégrité. Cependant, Charlie peut modifier le message et le signer avec sa propre clé privée. Quand Bob reçoit le message, il va vérifier la signature avec ce qu’il croit être la clé publique d’Alice, mais qui est en réalité la clé publique de Charlie. La vérification de la signature sera donc valide pour un message qui a en réalité été signé par Charlie et non par Alice.

Résultat : l’intégrité du message est compromise !

Cette attaque peut vous sembler complexe, mais est en réalité simple à mettre en place.

Pour se prémunir contre ce type d’attaque, vous devez vous assurer que la clé publique d’Alice appartienne bien à Alice et que la clé publique de Bob appartienne bien à Bob, et rejeter toutes les clés publiques dont vous ne pouvez pas prouver qui en est le propriétaire. Pour cela, vous allez utiliser des certificats numériques signés.

Comment se protéger de cela ?

  • Technique SAS : Short Authenticated Strings

    SAS (Short Authenticated String)

    • C’est une technique d’authentification utilisée quand deux appareils veulent établir une connexion sécurisée (ex. Bluetooth, Wi-Fi Direct, applications de messagerie).

    • Les deux appareils génèrent une clé secrète commune par un protocole cryptographique, puis affichent chacun un petit code court (4 à 6 chiffres ou caractères) appelé Short Authenticated String.

    • L’utilisateur compare les deux codes : s’ils sont identiques, la connexion est authentifiée ; sinon, cela signifie qu’un pirate pourrait intercepter la clé (attaque « Man-in-the-Middle »).

    • Avantage : l’utilisateur n’a pas besoin de comprendre la cryptographie ; il suffit de vérifier que les deux codes affichés sont les mêmes.


    💡 Exemple concret : quand tu associes un téléphone à un casque Bluetooth sécurisé, les deux affichent un code PIN à comparer avant d’accepter l’appairage.

  • Web of Trust + PGP

PGP (Pretty Good Privacy)

  • PGP est un système de chiffrement et de signature numérique utilisé pour sécuriser les e-mails et les fichiers.

  • Chaque utilisateur possède une clé publique (pour que les autres puissent lui envoyer des messages chiffrés) et une clé privée (pour déchiffrer et signer).

  • Un message chiffré avec la clé publique d’une personne ne peut être lu que par sa clé privée.

  • Les signatures permettent de vérifier que le message n’a pas été modifié et vient bien de l’expéditeur.


Web of Trust (Réseau de confiance)

  • Avec PGP, il n’existe pas d’autorité centrale qui valide les identités (contrairement aux certificats SSL).

  • Les utilisateurs s’authentifient entre eux : si tu fais confiance à quelqu’un, tu peux signer sa clé publique pour dire « je confirme que c’est bien sa clé ».

  • Peu à peu, un réseau de confiance se crée : si tu fais confiance à une personne qui a signé la clé de quelqu’un d’autre, tu peux aussi avoir confiance en cette clé.


💡 Exemple concret :
Alice connaît Bob et signe sa clé. Bob connaît Chloé et signe sa clé. Si tu fais confiance à Alice, tu peux te fier à la clé de Chloé grâce à cette chaîne de signatures — c’est le Web of Trust.

  • Chain of Trust

Chain of Trust (Chaîne de confiance)

  • Une chaîne de confiance est un modèle hiérarchique où chaque certificat ou clé est validé par une autorité supérieure.

  • Au sommet, on trouve une autorité racine (Root CA) qui est reconnue comme fiable (ex. : incluse dans les navigateurs).

  • Cette autorité peut signer un certificat d’une autre autorité (intermédiaire), qui elle-même signe les certificats finaux (sites web, serveurs…).

  • Quand ton navigateur affiche un site HTTPS, il vérifie que le certificat du site est signé par une autorité qui elle-même est reliée jusqu’à une racine de confiance connue.


Exemple concret :

  • Ton site https://exemple.com a un certificat signé par Let’s Encrypt.

  • Let’s Encrypt est signé par une autorité intermédiaire, qui est elle-même signée par une Root CA intégrée dans Chrome ou Firefox.

  • Si tous les maillons sont valides, la chaîne de confiance est complète et ton navigateur affiche le cadenas .


Différence avec le Web of Trust :

    • Chain of Trust : hiérarchique (autorités de certification officielles).

    • Web of Trust : décentralisé (utilisateurs se font confiance entre eux).

Utilisez des certificats numériques signés

Qu’est-ce qu’un certificat numérique ?

Un certificat numérique, aussi appelé certificat électronique ou certificat de clé publique, est un fichier contenant des informations qui vont permettre d’identifier un utilisateur et de lui associer sa clé publique.

Ce fichier contient 4 informations importantes :

  • l’identifiant de la personne ou du serveur à qui appartiennent la clé publique et le certificat. Pour une personne, cela peut être son adresse email. Pour un serveur web, c’est en général son nom de domaine ;

  • la clé publique de la personne ou du serveur ;

  • les dates de début et de fin de validité de la clé publique et du certificat ;

  • la signature du certificat qui permet de prouver que la clé publique est bien celle de l’identifiant.

La signature du certificat utilise elle-même un protocole de signature à clé publique, avec la clé publique d’un tiers de confiance. Lorsqu’un certificat est signé avec sa propre clé publique, on dit que c’est un certificat autosigné.

Le format de certificat le plus courant est le standard X.509, utilisé notamment par HTTPS, IPsec, PGP et SSH. En plus des informations de base, un certificat X.509 contient des informations complémentaires :

  • le nom de l’algorithme de chiffrement et de signature avec lesquels la clé publique du certificat est compatible ;

  • le rôle du certificat.

Découvrez le cycle de vie d’un certificat numérique

Un certificat a une durée de vie limitée. En effet, un utilisateur peut changer de clé publique, parce qu’il a perdu ou compromis sa clé privée. Il peut aussi ne plus avoir de clé publique lorsqu’il quitte une entreprise. Lorsque vous créez un certificat, vous lui assignez une date de début de validité et une date de fin de validité.

Voici les étapes du cycle de vie d’un certificat :

Création

Le certificat est créé en associant la clé publique et une information d’identification de son propriétaire. Il contient une date de début de validité et une date de fin de validité. Ces informations sont signées avec la clé privée d’un serveur.

Révocation

Un certificat peut être révoqué, c’est-à-dire qu’il n’est plus considéré comme valide. Cela peut arriver si l’utilisateur a perdu sa clé privée, si un attaquant a eu accès à sa clé privée, ou encore si l’utilisateur quitte une entreprise. Comme un certificat est public, il ne peut pas être supprimé, car un attaquant pourrait conserver une copie du certificat signé pour le réutiliser. Pour révoquer un certificat, il faut l’ajouter à la liste de révocation de certificats (CRL) de l’organisation. La révocation peut être définitive ou temporaire. Lorsqu’un certificat est révoqué, il n’est plus valide et il ne faut plus lui faire confiance.

Renouvellement

Un certificat peut être renouvelé lorsque sa date de fin de validité est proche. Pour cela, vous remplacez la date de fin de validité par une date ultérieure. Il faut alors de nouveau signer le certificat à partir des nouvelles informations. Pour éviter toute interruption de service, il ne faut pas oublier de renouveler les certificats avant leur expiration !

Expiration

Quand le certificat dépasse la date de fin de validité et n’est pas renouvelé, il est expiré. Lorsqu’un certificat est expiré, il n’est plus valide et il ne faut plus lui faire confiance.

Validité d’un certificat

Valide

Un certificat est valide, c’est-à-dire digne de confiance, lorsque :

  • il est signé par une clé à laquelle on fait confiance ;

  • l’on se trouve entre la date de début de validité et la date de fin de validité ;

  • le certificat n’a pas été révoqué, et donc ne se trouve pas dans la liste de révocation de certificats.

Non valide

Inversement, un certificat est non valide, c’est à dire non digne de confiance, s’il n’est pas signé par une clé à laquelle on fait confiance, que l’on ne se trouve pas entre la date de début de validité et la date de fin de validité, ou que le certificat a été révoqué et donc se trouve dans la liste de révocation de certificats.

il ne faut plus lui faire confiance, c’est-à-dire que l’on n’est plus assuré que la clé publique appartienne réellement à l’utilisateur.

Qu’est-ce que l’infrastructure de clé publique ?

Pour faire confiance à un certificat, il faut qu’il soit signé par une paire de clés privée/publique à laquelle vous faites confiance.

Pour vérifier la signature d’un certificat, il faut donc déjà faire confiance à la clé publique qui signe ce certificat. Cette clé publique est appelée l’autorité de certification (Certificate Authority, ou CA) ; elle est la clé de voûte de l’infrastructure de clé publique.

L’infrastructure de clé publique (Public Key Infrastructure, ou PKI) désigne l’ensemble des serveurs servant à signer, distribuer et valider les certificats. Une PKI est composée d’une autorité de certification (CA), d’une autorité de dépôt (Repository) et d’une liste de révocation de certificats. Je vous propose de les détailler ci-dessous.

L’autorité de certification

L’élément principal d’une PKI est l’autorité de certification, aussi appelée autorité de certification racine. Il s’agit d’un serveur qui possède une paire de clés privée/publique et un certificat autosigné appelé certificat racine (en anglais root certificate). Tous les utilisateurs de la PKI font confiance à ce certificat racine.

Lorsque vous créez un nouveau certificat, vous envoyez les informations du certificat au serveur et vous lui demandez de signer le certificat avec la clé publique du certificat racine. L’autorité de certificat utilise sa clé privée associée à la clé publique du certificat racine, pour créer la signature du certificat. L’utilisateur peut ensuite envoyer son certificat signé à un autre utilisateur de la PKI. Cet autre utilisateur peut vérifier que le certificat a bien été signé par l’autorité de certification racine, et fait donc confiance au nouveau certificat.

L’autorité de dépôt

Ce serveur fait office d’annuaire. Il contient tous les certificats signés par l’autorité de certification. Ainsi, lorsqu’Alice a besoin de la clé publique de Bob, elle peut faire une recherche auprès de l’autorité de dépôt.

L’autorité de dépôt héberge également la liste de révocation de certificats.

La liste de révocation de certificats

Cette liste contient tous les certificats révoqués. La liste est signée par l’autorité de certification et peut être consultée auprès de l’autorité de dépôt.

L’autorité de certification intermédiaire

Dans une grande organisation, il est possible d’avoir plusieurs autorités de certification intermédiaires. Ces serveurs possèdent un certificat signé par l’autorité de certification racine et peuvent signer les certificats des utilisateurs. Pour vérifier la signature d’un certificat utilisateur, vous vérifiez toute la chaîne de signatures de certificat, pour remonter au certificat racine de l’autorité de certification racine. C’est le principe de la chaîne de certification  ou chaîne de confiance. Ainsi, il n’y a pas besoin de communiquer directement avec l’autorité de certification racine pour signer ou vérifier un certificat.

En résumé

  • L’échange de clés publiques est vulnérable aux attaques de l’homme du milieu ;

  • pour éviter cette attaque, on utilise un certificat signé pour échanger une clé publique ;

  • un certificat signé contient des informations d’identification comme un email, la clé publique associée et la signature du certificat ;

  • la signature du certificat est réalisée par une autorité de certification, dont la clé publique est déjà connue et validée par le destinataire du certificat ;

  • une infrastructure de clés publiques (PKI) désigne l’ensemble des serveurs servant à créer et valider les certificats signés.

Ce contenu est réservé aux membres du site. Si vous êtes un utilisateur existant, veuillez vous connecter. Les nouveaux utilisateurs peuvent s'inscrire ci-dessous.

Connexion pour les utilisateurs enregistrés
   
Nouvel utilisateur ?
*Champ requis
Powered by WP-Members