Archives par mot-clé : clé publique

Le chiffrement SSL/TLS pour les débutants

Bonjour à tous!

Dans cette vidéo je vais vous parler de chiffrement des communication sur le web. Plus concrètement c’est lorsque vous surfez sur des sites en https. Alors oui, vous savez maintenant que le S c’est pour dire que la communication est sécurisée car chiffrée.

Et dans cette vidéo, je vous explique comment tout ça marche dans cette vidéo.

 

 

Mais voyons ce qu’est le chiffremement web avec un exemple :

  • Lorsque vous vous connectez sur le site de votre banque, la connexion se fait toujours en https pour des raisons de sécurité
  • Vous pouvez vérifier ce sera toujours le cas (ou alors changez de banque!)
  • Mais que se passerait-il si la communication se faisait en HTTP?

Eh bien c’est simple, toutes les informations échangées transiteraient en clair. Ce qui veut dire qu’une personne malveillante peut intercepter les échanges avec votre banque et donc avoir toutes les informations qui y transitent

En fait le HTTPS c’est une connexion HTTP dans un tunnel chiffré SSL/TLS. Et ce tunnel va sécuriser vos échanges car mêmce si une personne malveillante intercepte vos échanges, les informations sont chiffrées et donc incompréhensibles pour elles.

SSL veut Secure Sockets Layer. TLS veut dire Transport Layer Security. SSL et TLS sont des protocoles de sécurisation des échanges sur Internet. Aujourd’hui c’est TLS qui est utilisé, SSL étant obsolète. Mais on parle parfois de SSL/TLS pour parler juste de TLS.

 

Maintenant voyons ce qui se passe derrière ce chiffrement SSL/TLS.

Le chiffrement consiste à transformer vos données afin de les rendre illisible grâce un algorithme de chiffrement et une clé de chiffrement

La clé de chiffrement est utilisé par un algorithme, pour chiffrer et déchiffrer des données utiles (l’information qu’on veut faire transiter). La clé de chiffrement c’est une donnée (en gros c’est une suite de bits comme une phrase ou une série de chiffres) qu’on peut voir comme un mdp. Un algorithme de chiffrement c’est juste une méthode de chiffrement, cad une façon de rendre inintelligible vos données.

Pour pouvoir lire ces données de nouveau, il est nécessaire de connaître l’algorithme et la clé de chiffrement pour les déchiffrer

 

Maintenant que vous avez compris ça, passons à la notion de cryptographie symétrique :

  1. Ici Alice et Bob ont la même clé secrète.
  2. Alice veut envoyer un message à Bob. Elle veut que personne d’autre que Bob ne puisse lire ce message. Du coup, elle prend sa clé secrète et va chiffrer le message avec
  3. Elle envoie le message chiffré à Bob
  4. Lorsque Bob recoit le message d’Alice, il ne peut pas encore le comprendre à la reception. Il faut d’abord qu’il déchiffre le message avec la même clé secrète. Et c’est seulement là qu’il pourra lire le message
  5. Et si Bob veut répondre à Alice de façon sécurisé, il peut utiliser la clé secrète pour chiffrer sa réponse et ensuite l’envoyer à Alice.

Il y a donc une seule clé pour chiffrer et déchiffrer un message

Le Gros problème de la cryptographie symétrique c’est l’échange de ces clés. En effet, Le fait que les 2 personnes. doivent utiliser la même clé impose d’avoir un canal sécurisé pour l’échange de la clé parce que si quelqu’un d’autre arrive à s’emparer de la clé… il sera capable de lire le message…

Passons maintenant à la cryptographie asymétrique

Le principe du chiffrement asymétrique repose sur l’utilisation de 2 clefs :

  • on appelle une des 2 clefs la clef privée et l’autre la clef publique.
  • Quand l’utilisateur chiffre avec la première clef, il peut déchiffrer avec la deuxième clé
  • Quand l’utilisateur chiffre avec la deuxième clef, il peut déchiffrer avec la première clef.
  • Peu importe l’ordre des clés utilisés parce qu’en fait ces 2 clés ou algorithme de chiffrement sont liés mathématiquement

Reprenons avec Alice qui a maintenant une clé privée et une clé publique :

  • La clef privée n’est jamais transmise à personne (ça porte bien son nom d’ailleurs).
  • Par contre, Alice peut diffuser sa clé publique à n’importe qui,
  • Donc là Alice a envoyé sa clé publique à Bob pour que les 2 puisse communiquer

Voyons maintenant comment ça marche :

  1. Ici Bob et Alice se sont transmis leur clé publique et garde leur clé privé
  2. Bob veut envoyer un message à Alice et veut que seul Alice puisse lire le message. Il chiffre donc son message avec la clef publique d’Alice
  3. Alice déchiffre le message avec sa clef privée (il n’y a qu’elle qui possède cette clef). Alice est la seule à pouvoir déchiffrer les messages qui lui sont adressés
  4. De façon similaire, Si Alice veut répondre à Bob. Alice utilise la clef publique de Bob pour envoyer le message;
  5. Bob utilisera sa propre clef privée pour le déchiffrer le message

Ce procédé assure la confidentialité de l’échange c’est-à-dire être sûr que Alice et Bob sont les seuls à échanger.

Bob est sûr que seul Alice peut lire son message puisque Bob a utilisé la clef publique d’Alice pour chiffrer son message. Seule la clé privé d’Alice peut déchiffrer le message de bob. Bob est donc sûr que seule Alice peut lire le message et inversement pour Alice avec la clef publique de Bob

Ensuite la cryptographie asymétrique garantit aussi l’authenticité de l’expéditeur :

  • C’est-à-dire que pour Bob c’est être sur le message d’Alice vient bien Alice)
  • Eh oui parce que si Bob réussit à déchiffrer le message avec la clé publique d’Alice c’est que le message a été chiffré avec la clé privée d’Alice
  • Tous ceux qui ont la clé publique peuvent déchiffrer le message d’Alice, mais seule Alice possède sa clé privé
  • Si Bob arrive a déchiffrer le message avec la clé publique d’Alice il sait que le message est bien d’Alice

Le problème va venir de la transmission de la clé publique. Notamment si une personne malveillante, qu’on va appeler M pour la suite, se positionne entre Alice et Bob, et se fait passer pour l’un d’eux et donne sa clé publique à la place. C’est l’attaque du MITM ou de l’homme du milieu en français

Il va diffuser une clé publique à Bob en se faisant passer pour ALice. Bob croit alors que c’est la clé publique d’Alice. Alice et Bob ont tous les deux la clef publique de M, en pensant qu’ils ont celle de leur interlocuteur. M intercepte et modifie l’échange de clefs entre Alice et Bob.

Du coup, lorsque Alice veut envoyer un message à Bob, elle va l’envoyer en chiffrant avec la clé publique supposé appartenir à Bob. En fait, M va intercepter le message, il va le déchiffrer avec sa clé privé et lire le message. Ensuite pour ne pas éveiller les soupçon, il va chiffrer le message avec la clé publique de bob et envoyer le message à Bob.

Comme ça Bob déchiffre avec sa clé privé pour lire le message. M est donc capable de lire les conversations entre les 2 et de récupérer des informations importantes.

Et à l’inverse, quand bob veut échanger avec alice, il utilise la clé publique de M pour chiffrer et M fait la même chose cad qu’il intercepte le message, l’ouvre, le lit et le rechiffre avec la clé publique d’alice.

Pour éviter que probleme de MITM, il faudrait pouvoir certifier l’identité du porteur de cette clé. Et ça c’est le rôle du certificat.

Un certificat  est un fichier avec ensemble de données contenant :

  • une clef publique (au minimum)
  • des informations pouvant identifier la personne : nom, e-mail, localisation…
  • des informations liées au certificat, notamment sa date de validité
  • Et une signature électronique d’une autorité de certification

La signature électronique est la preuve le certificat a bien été vérifiée par l’autorité de certification puisque qu’il y a sa signature. Elle est la garantie de son intégrité (cad la preuve que le document n’a pas subit d’altération entre l’instant où il a été signé par son auteur et celui où il a été consulté).

A noter que la signature électronique du certificat c’est la combinaison de vos information et de votre clé publique, tout ça chiffré par la clé privé de l’autorité de certification

une Autorité de Certification est l’institution responsable d’émettre ces certificats et elle garantit que les informations contenus dans ces certificats sont correctes.

Dans notre cas, si Alice veut créer son certificat, il faut qu’elle fournisse sa clé publique et des informations sur elle à l’autorité de certification et des sous (parce que ce n’est pas gratuit), qui elle vérifie tout ça, L’autorité de certification va créer un certificat pour Alice avec la signature électronique de l’AC,

Le certificat atteste donc  que la clef publique du certificat appartient bien à la personne désignée dans le certificat.

 

Maintenant que vous avez toutes ces notions en tête, on peut passer à l’explication du chiffrement SSL/TLS.

Imaginons que vous voulez vous connecter à votre banque, vous allez taper l’adresse de votre banque en https sur votre navigateur :

  1. Vous allez envoyer une demande de connexion sécurisée à votre banque
  2. Votre banque va alors vous envoyer son certificat avec sa clé publique
  3. Votre navigateur vérifie la signature du certificat et sa validité. Il faut savoir que le navigateur a déjà un certain nombre de clés publique d’AC dans sa base de données
  4. Ensuite le navigateur va prendre la clé publique de l’AC qui a certifié le certificat de la banque.
  5. Il va déchiffrer la signature du certificat, s’il y arrive. Cela veut dire que le certificat est de confiance car seul l’AC possède sa clé privé
  6. Si tout est OK, le client et le serveur négocie ensemble pour se mettre d’accord sur un algorithme de chiffrement ainsi qu’une clé secrète commune qu’ils vont utiliser pour cette session d’échange, connus de 2 seulement comme dans la cryptographie symétrique
  7. C’est avec cette clé que vous allez chiffrer et déchiffrer vos échanges avec votre banque et donc communiquer de façon sécurisé