top of page
Photo du rédacteurJC Duval

Kezako : Certificats Numériques

Nul ne garde mieux un secret que celui qui l'ignore.

 

Pour lire ce billet nul besoin d'être informaticien, l'objectif est d'expliquer aussi clairement que possible les concepts utilisés en cryptographie.

 

C'est quoi un certificat ?


Un certificat numérique également appelé certificat électronique, est une carte d’identité numérique.

Il est utilisé principalement pour identifier et authentifier une personne physique ou morale, mais aussi pour chiffrer les échanges de données.


Y a quoi sur un certificat ?


• La date de début de validité du certificat ;

• La date de fin de validité du certificat ;

• Les données concernant le propriétaire;

• La clé numérique du propriétaire du certificat ;

• L'objet de l'utilisation de la clé;

• Les données concernant l'émetteur du certificat;

• etc ...


Différents certificats ?


Un certificat numérique peut assurer diverses fonctions. Comme nous allons le voir, son propriétaire peut s'en servir pour s'authentifier, et il peut également s'en servir pour la signature et le chiffrement d'échanges de données.

Un certificat assure donc les rôles :

• d'authentification de son propriétaire,

• de signature des échanges,

• de chiffrement des échanges.

Son utilisation peut être limitée à une ou plusieurs de ces fonctions.

 

Une clé numérique, c’est quoi et çà sert à quoi ?


On a vu qu’un certificat transporte une clé numérique.

Une clé numérique est une suite de caractères utilisés pour chiffrer et déchiffrer un message.

La clé est le sésame; elle est le pilier du système sécuritaire. Elle doit être infalsifiable et être la seule en mesure d’ouvrir et/ou fermer le cadenas. Elle est garante de la sécurité.

 

Deux modes de chiffrement


1 - Chiffrement ‘symétrique’.


Clé unique et secrète >> Les algorithmes de chiffrement symétrique utilisent des clés uniques pour chiffrer et déchiffrer les messages. Le principe est trivial ...

Si une clé a fermé le cadenas, elle seule pourra l'ouvrir. 🔐


La difficulté est le partage du secret c'est à dire de la clé. Un double de clé est emprunté par chaque participant et ne doit être utilisé que par eux et eux seuls.

Mode de chiffrement symétrique.

Mode de chiffrement symétrique


2 - Chiffrement ‘asymétrique’.


Paire de clés >> Les algorithmes de chiffrement asymétrique utilisent des paires de clés pour chiffrer et déchiffrer les messages. Le principe est simple ...

Si une clé a fermé le cadenas, l'autre clé de la paire est la seule à pouvoir l'ouvrir.🔓


Les clés d'une paire sont générées pour pouvoir travailler ensemble. Chacun des participants se voit remettre une clé - peu importe laquelle. La clé utilisée par l'émetteur permettra ainsi de chiffrer le message qui ne pourra être déchiffré qu'avec la clé utilisée par le récepteur.

Si le cadenas est fermé avec une clé de la paire, il ne peut être ouvert qu'avec l'autre.

Si le cadenas est fermé avec une clé de la paire, il ne peut être ouvert qu'avec l'autre


La sécurité de ce mode de chiffrement repose sur la gestion de la paire de clés, gestion assurée par son propriétaire.

• Une clé est gardée précieusement par son propriétaire, c'est la clé privée.

• Une clé est diffusée via un certificat à tous ceux qui veulent échanger avec son propriétaire, c'est la clé publique, d’où le terme de "cryptographie à clé publique".


Pour sécuriser un échange, les clés utilisées sont la propriété du récepteur. Avec sa clé privée, il sera le seul à pouvoir déchiffrer le message.

Le certificat véhicule la clé publique de son propriétaire.

Le certificat véhicule la clé publique de son propriétaire

 

Qu’est ce qui me prouve que c’est un vrai certificat ?


Comme pour une pièce d’identité émise et certifiée par un tiers (la préfecture), le certificat est émis et signé par une autorité de certification reconnue par ceux qui veulent utiliser le certificat. Un tiers de confiance en quelque-sorte.

Les informations permettant d’identifier l’autorité de certification sont présentes sur le certificat.

Certains certificats peuvent être auto-signés par leur propriétaire, mais ils n'offrent aucune garantie.


Les certificats à clé publique répondent à la norme X.509 qui est la norme spécifiant les formats, les listes de révocation de certificat, les attributs de certificat, et un algorithme de validation du chemin de certification.

La norme X.509 repose sur un système hiérarchique d'autorités de certification, à l'inverse des réseaux de confiance - telle la toile de confiance OpenPGP - où n'importe qui peut signer les certificats d'autrui.

 

C’est quoi un condensé ?


Avant tout, il faut expliquer ce qu’est une fonction de hachage. Cette fonction permet d'obtenir le condensé d'un texte - appelé aussi haché ou message digest - c'est-à-dire une suite de caractères assez courte représentant le texte qu'il condense. Ainsi, le haché représente l'empreinte digitale du texte ou fingerprint.

Une fonction de hachage est à sens unique, c'est à dire qu'elle est facile et rapide à exécuter alors que sa fonction inverse est non calculable en pratique. Une bonne fonction de hachage doit également limiter au possible les collisions, c'est à dire éviter de donner un condensé identique pour des textes différents.

Empreinte du message.

Empreinte du message


Les algorithmes SHA (acronyme de Secure Hash Algorithm) sont utilisés dans les fonctions de hachage.

Les algo de famille SHA-2 (sha-256 et sha-512 – le suffixe indique la taille en octets du condensé) et de famille SHA-3 sont actuellement préconisés, les SHA-2 étant les plus couramment utilisés.

 

C’est quoi la signature d’un certificat ?


La signature d’un certificat est un sceau qui permet :

• D’une part, de certifier que les informations du certificat n’ont pas été modifiées,

• D’autre part, d’être certain de l’identité de celui qui l’a signé.


Un certificat est signé par l’autorité de certification à l’origine de son émission.

L’émetteur hache les informations du certificat et chiffre le haché avec sa clé privée.

Ce haché chiffré est sa signature. Le certificat est dit ‘scellé’.


Lorsqu'on désire communiquer, il suffit de se procurer le certificat du récepteur. Ce certificat contient le nom du récepteur, sa clé publique et un certain nombre d'autres infos. Il est signé par l'autorité de certification.


En appliquant d'une part la fonction de hachage aux informations contenues dans le certificat et en déchiffrant d'autre part la signature de l'autorité de certification avec la clé publique de cette dernière, les deux résultats doivent être obligatoirement les mêmes.

La signature de l'AC garantit l’authenticité du certificat.

La signature de l'AC garantit l’authenticité du certificat

 

Cas d'usage


1 - La signature de l'échange.


Le contenu du message ou du document est chiffré à l'aide de la clé privée de l'émetteur et déchiffré à l'aide de sa clé publique.

Dans notre exemple, la paire de clés utilisée est la propriété d'Alice.

Signature de l'échange.

Signature de l'échange


La signature assure :

L'authentification : Puisqu’une clé privée unique a été utilisée pour la signature du message ou du document, son récepteur a la garantie que l'identité du signataire est légitime.

La non répudiation : Puisque le propriétaire de la clé privée est le seul à y avoir accès et l'a utilisée pour appliquer sa signature, il ne peut pas nier ce fait à l'avenir.

L'intégrité : Lorsque la signature est vérifiée, le contenu du message ou du document est également vérifié, afin de s'assurer qu'il correspond au contenu tel qu’il l’était au moment de la signature - il y a eu une prise d’empreinte. La moindre modification sur le document original après qu’il ait été signé ferait échouer ce processus de vérification.


2 - Le chiffrement pour la sécurisation de l'échange.


Le contenu du message ou du document est chiffré à l'aide de la clé publique du récepteur et ne peut être déchiffré qu'avec sa clé privée.

Dans notre exemple, la paire de clés utilisée est la propriété d'Alice.

Chiffrement de l'échange.

Chiffrement de l'échange


Le chiffrement assure :

La confidentialité : La clé publique permet de chiffrer un message ou un document, tandis que la clé privée permet de le déchiffrer. Cela garantit que seul le propriétaire du certificat peut déchiffrer le message et lire son contenu.

L'intégrité : Au moment du déchiffrement d’un message ou d’un document, son contenu est vérifié afin de s’assurer qu’il correspond au message tel qu’il l’était lors du processus de chiffrement - il y a eu une prise d’empreinte. Le moindre changement du contenu original fera échouer le processus de déchiffrement.


On peut signer et chiffrer l’envoi d’un message.

Signature et Chiffrement du billet doux.

Signature et Chiffrement du billet doux


A l ’émission

1/ Alice chiffre son message avec sa clé privée pour le signer.

2/ Ensuite Alice utilise la clé publique de Bob pour de nouveau le chiffrer.


A la réception

3/ Bob utilise d’abord sa clé privée pour déchiffrer le message. Lui seul, est capable de le faire.

4/ Bob utilise ensuite la clé publique d'Alice pour s'assurer que c'est bien elle qui a envoyé le message.


En résumé :

• Pour signer un message, utilisez votre clé privée.

• Pour chiffrer, utilisez la clé publique de votre destinataire.

 

Utilisation conjointe des 2 modes de chiffrement


Nous avons vu qu'il y a 2 modes de chiffrement, soit symétrique, soit asymétrique.

Le chiffrement symétrique est plus rapide et moins consommateur. Le monde informatique privilégie donc son utilisation à celui du chiffrement asymétrique.


On travaille donc habituellement en 2 étapes :

• Génération d'une clé de session - le secret - et échange via la cryptographie à clé publique.

• Avec cette clé de session, chiffrement des échanges via la cryptographie à clé secrète.

On utilise le chiffrement asymétrique pour transporter la clé secrète.

On utilise le chiffrement asymétrique pour transporter la clé secrète


Des logiciels comme PGP ou GnuPG reposent sur ce concept qui permet de combiner les avantages des deux systèmes. Ils font partie des logiciels dits de cryptographie hybride.

 

Pour ceux qui veulent en savoir un peu plus ...


Les contextes d'utilisation ...


Dans le cadre de nos utilisations courantes, les certificats servent principalement dans trois types de contextes :

• Le certificat client, stocké sur un poste de travail ou embarqué dans un conteneur tel qu'une carte à puce, permet d'identifier un utilisateur et de lui associer des droits. Dans la plupart des cas il est transmis au serveur lors d'une connexion, ce dernier affectant les droits à son propriétaire en fonction des habilitations définies dans un LDAP par exemple. Il s'agit d'une véritable carte d'identité numérique.

• Le certificat serveur installé sur un serveur web, permet d'assurer le lien entre le service et le propriétaire du service. CF plus bas certificat SSL/TLS ...

• Le certificat VPN comme Virtual Private Network, permet d'utiliser une connexion sécurisée et chiffrée point à point - par ex entre 2 machines distantes échangeant par internet. Ce type de connexions permet de créer un tunnel de communication d'où le nom de réseau privé virtuel. Les données sont encapsulées et chiffrées via un protocole IP sécurisé. J’essaierai de faire un billet sur le sujet ...

 

Le certificat SSL/TLS ... ou comment naviguer sur internet ?


Le protocole SSL/TLS - Secure Socket Layers / Transport Layer Security - sécurise les communications entre les serveurs web et les navigateurs internet.


A noter : Le protocole SSL crée en 1995 a évolué et s'appelle désormais TLS, mais on continue - encore trop souvent - à parler de SSL.


Le certificat SSL/TLS est le certificat électronique le plus connu.

C’est un fichier qui contient :

• une clé cryptographique publique, liée à la clé cryptographique privée d’une organisation ou d’une personne privée,

• les URLs des sites sécurisés,

• la raison sociale d’une organisation, dans le cas des certificats OV (organization validation) et EV (extended validation) qui nécessitent une validation bien plus approfondie que les certificats DV (domain validation).


Ce certificat est installé sur un serveur et sert à chiffrer les données sensibles en ligne pour assurer une connexion sécurisée. Il est utilisé le plus souvent dans le cadre de transactions bancaires ou de transfert de données sensibles, comme des identifiants et mots de passe.

Il est matérialisé par un cadenas et le protocole « https » dans la barre URL.

La chaine de certification. Le certificat est valide.

La chaine de certification. Le certificat est valide.


Déroulement d’une session TLS


1/ Le début d’une session TLS est marqué par l’envoi d’une requête par le navigateur au serveur Web à l’aide du protocole https://

2/ Le serveur Web répond avec son certificat qui contient sa clé publique. Le navigateur vérifie le certificat, en consultant par exemple l’autorité de certification pour une vérification que le certificat n'est pas révoqué, et en contrôlant la validité du certificat lui-même - dates, signature. Après ces vérifications, le navigateur génère une clé de session qu’il chiffre à l’aide de la clé publique du serveur, avant de renvoyer l’ensemble au serveur.


3/ Le serveur Web déchiffre alors la clé de session à l’aide de sa clé privée qu’il est le seul à posséder. La clé de session n’est connue que du navigateur et du serveur qui peuvent alors utiliser cette clé commune pour chiffrer leurs échanges (chiffrement symétrique).


Création d'une session TLS 1.2

Création d'une session TLS 1.2

 

CSR : Certificate Signing Request ... ou comment construire un certificat ?


Dans une infrastructure PKI - Public Key Infrastructure soit infrastructure à clés publiques - une demande de signature de certificat - ou CSR pour Certificate Signing Request - est un message envoyé à une autorité de certification afin de lui demander de signer et générer un certificat.


Avant de créer un CSR, le requérant crée une paire de clés en gardant la clé privée secrète. Le CSR contient les données d'identification du demandeur et la clé publique qu'il a choisie. La clé privée correspondante n'est pas incluse dans le CSR, mais est utilisée pour signer numériquement la demande. Le CSR peut être accompagné d'autres informations ou preuves d'identité requises par l'autorité de certification qui peut contacter le demandeur pour plus d'informations.

Si la demande est acceptée, l'autorité de certification retourne un certificat d'identité signé numériquement avec la clé privée de l'autorité de certification.

 

Vous avez dit RSA ?


Parmi les algorithmes asymétriques, le NIST (National Institute of Standards and Technology) recommande RSA du nom de ses concepteurs Rivest, Shamir et Adleman.

L'algorithme est remarquable par sa simplicité. Il est basé sur les nombres premiers. L’algorithme est basé sur le fait qu'il est facile de multiplier deux grands nombres premiers mais difficile de factoriser le produit de ces deux mêmes nombres. Avec le niveau de technologie actuelle, RSA est toujours considéré comme sûr pour des clés suffisamment grosses (1024, 2048 voire 4096 bits).

Cet algorithme est très largement utilisé, par ex dans les navigateurs pour les sites sécurisés et pour chiffrer les emails. L’algorithme est public et connu de tous. La robustesse du système ne repose que sur la connaissance de la clé.


Vous avez dit AES ?


De son coté, l’algorithme AES - comme Advanced Encryption Standard - est aujourd’hui le standard du chiffrement symétrique par bloc. AES, également sélectionné et promu par le NIST, est actuellement l’algorithme symétrique le plus utilisé au monde.

Outre le chiffrement des échanges de données, on l'utilise aussi pour chiffrer les supports de stockage des données (base de données, coffre-fort, disque dur, ...)

 

Les principales données d'un certificat.


Version : numéro de version X.509.

Numéro de série : numéro de série unique attribué au certificat par l'autorité de certification émettrice. Le numéro de série est unique pour tous les certificats émis par une autorité de certification donnée.

Algorithme de signature : algorithme de hachage utilisé par l'autorité de certification pour signer numériquement le certificat.

Émetteur : informations relatives à l'autorité de certification qui a émis le certificat.

Valide à partir du : date de début de la période de validité du certificat.

Valide jusqu'au : date de fin de la période de validité du certificat.

Sujet : nom de l'autorité de certification, de l'individu, de l'ordinateur ou du périphérique pour lequel le certificat est émis. Si l'autorité de certification émettrice existe sur un serveur membre du domaine de votre entreprise, il s'agira d'un nom unique au sein de celle-ci. Sinon, il pourra s'agir d'un nom complet et d'une adresse électronique ou de tout autre identificateur personnel.

Clé publique : clé publique associée au certificat, avec son type et sa longueur.

Algorithme d'empreinte numérique : algorithme de hachage qui génère une synthèse des données (ou empreinte numérique) pour les signatures numériques.

Empreinte numérique : synthèse (ou empreinte numérique) des données du certificat.

Nom convivial : (facultatif) nom d'affichage à utiliser à la place du nom stocké dans le champ Sujet.

Utilisation avancée de la clé : (facultatif) rôles auxquels le certificat peut être destiné.

• Il existe d'autres extensions X.509 v3 supplémentaires utilisables dans un certificat. Le cas échéant, elles sont affichées.

 

Quelques termes ...


Chiffrer : On transforme à l’aide d'une clé de chiffrement, un message écrit en clair en un message chiffré incompréhensible pour celui qui ne possède pas la clé de déchiffrement.

Déchiffrer : A l'inverse du chiffrement, on transforme à l’aide de la clé de déchiffrement, un message chiffré en un message écrit en clair.

Décrypter : On transforme un message chiffré en un message écrit en clair sans la clé de déchiffrement.

 

Pour finir ...


A lire : Une alternative aux certificats ... la distribution quantique de clés.

Comments


bottom of page