28 nov 2022 - Nouvel article du Blog : Comment réduire la taille d'un fichier PDF avec LibreOffice ?
1 oct 2022 - Nouvelles alternatives : applications de suivi du cycle menstruel
30 jui 2022 - Nouvel article du Blog : Écologie : faut-il supprimer ses e-mails ?
29 jui 2022 - Mise à jour : Suppression de StandardNotes dans les alternatives pour la Prise de Notes
C'est quoi le chiffrement ?
Que signifie “chiffrer” et comment ça marche ?
Principe de base de la cryptographie
Petit saut dans l'enfance
Par exemple : l'Alphabet décalé ( A devient B ).
Alphabet | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Alphabet décalé | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A |
Avec ce code, le mot « ANIMATION » devient « BOJNBUJPO » ! |
Souvenez vous également du cryptanaliste très connu Alan Turing qui parvint à déchiffrer des messages allemands cryptés avec la machine Enigma et dont le film “Imitation Game” raconte l'exploit.
C'est une autre méthode de cryptographie. Bon, à ce stade, c'est bien plus compliqué que la méthode de César !
Comment fonctionne le chiffrement ?
La méthode du chiffrement ne se base pas sur un décalage de l'alphabet, mais sur des règles bien plus complexes que l'on appelle des algorithmesUn algorithme, c’est comme une recette de cuisine. C’est une suite d’étapes qu’un logiciel doit suivre pour obtenir un résultat. et qui évoluent chaque décennie avec les progrès de calcul des ordinateurs.
Je ne vais pas vous expliquer ces algorithmes ici, car je n'ai pas assez de compétences et d'autres personnes le font mieux que moi.
Néanmoins, si voulez mettre le nez dans l'explication technique de ces différents algorithmes de chiffrement, vous pouvez vous rendre sur cette page.
Je vais simplement vous présenter l'élément commun et indispensable au fonctionnement de tous ces algorithmes.
La clé
Si l'algorithmeUn algorithme, c’est comme une recette de cuisine. C’est une suite d’étapes qu’un logiciel doit suivre pour obtenir un résultat., c'est la méthode de chiffrement :
La clé, elle, indique à l'algorithme les paramètres de chiffrement :
Pour se rendre compte
Dans les méthodes modernes de cryptage, on utilise des clés numériques sous forme de séquences de bits, c'est à dire une suite de 0 et de 1.
Ces 0 ou ces 1 vont donner à l'algorithme les paramètres de chiffrement.
Ainsi, le critère essentiel pour la sécurité du cryptage est la longueur de clé !
Plus la clé est longue, plus il existe de possibilités, donc plus il devient impossible de toutes les essayer !En informatique on appelle l'espace de clé le nombre de possibilités imposé par la clé de chiffrement.
Donc comme pour un mot de passe, plus l'espace de clé est grand, mieux c'est !
L'exemple de l'attaque par force brute
Exemple
L'espace clé de cette procédure est donc important.
Ainsi, une clé d'une longueur de 128 bits, représente 2128 possibilités. Cela correspond à plus de de combinaisons de touches possibles ! Et si l'on passe par une clé de 256 bits, le nombre de possibilités est supérieur à .
Même avec un équipement technique approprié, il faudrait une éternité pour essayer toutes les combinaisons possibles. Avec la technologie disponible aujourd'hui, les attaques par force brute ne sont donc pas réalisables avec le chiffrement AES256.
Le chiffrement symétrique
Exemple :
- Mimine veut envoyer un message chiffré à Lapinou.
- Elle lui donne la clé avec laquelle elle va chiffrer son message.
- Lapinou reçoit le message chiffré et le déchiffre avec la clé que Mimine lui a donné.
L'inconvénient : c'est qu'il faut communiquer la clé de chiffrement et de déchiffrement à la tierce personne à qui l'on veut communiquer ses données cryptées.
Et oui, ça peut paraitre bête, mais prenons cet exemple :
Sauf que me voilà bien embêté : il faut que je communique à l'autre personne ces fameuses règles pour qu'elle puisse décrypter ce que je vais lui dire au téléphone !
Mais comment je lui communique cette “clé de chiffrement et de déchiffrement” ? Soit j'ai un moyen sécurisé extérieur (rencontrer la personne en vrai par exemple), soit je suis coincé !
Le chiffrement asymétrique
Pour pallier au risque de piratage du chiffrement symétrique lors de l'échange de la clé, un autre système d'échange de clé à ainsi été mis au point : le chiffrement asymétrique.
- La clé publique : c'est la clé qu'il va donner à Mimine et avec laquelle elle va chiffrer le message pour Lapinou.
- La clé privée : c'est la clé qu'il va garder et avec laquelle il va déchiffrer le message de Mimine.
Explication
Pour déchiffrer ce message, Lapinou doit utiliser sa clé privée, clé qu'il est le seul à posséder.
Ainsi, si un pirate intercepte la clé publique au moment où Lapinou la communique à Mimine, et bien ce n'est pas grave, car justement, elle est publique ! En effet, avec cette clé, le pirate pourra envoyer des messages chiffrés à Lapinou mais ne pourra jamais déchiffrer les messages chiffrés que reçoit Lapinou car pour cela il faut la clé privée que dernier est le seul à posséder !
L'avantage du chiffrement asymétrique est de protéger le contenu du message même en cas de piratage pendant l'échange des clés publiques.
L'inconvénient : ce système de clés multiples est beaucoup plus complexe à calculer mathématiquement par l'algorithme. Le cryptage est plus long, plus gourmand en ressources matérielles et les fichiers une fois chiffrés prennent plus de place.
Le chiffrement hybride : un mélange des deux
Comme vous venez de le voir, le chiffrement asymétrique est plus sécurisé, mais aussi plus lourd à mettre en place.
Voyez plutôt :
- Mimine crypte les fichiers avec un chiffrement symétrique donc avec une seule clé secrète pour le chiffrement/déchiffrement car c'est plus performant pour des opérations quotidiennes.
- Sauf que Mimine ne va pas me communiquer cette clé secrète, elle va la chiffrer une seconde fois, également avec un second chiffrement symétrique. Pourquoi ? De façon à créer une clé de déchiffrement temporaire qui sera supprimée dès que Lapinou aura terminé. Le temps de sa session, cette clé va permettre à Lapinou de déchiffrer la clé secrète originale et donc à la suite, de déchiffrer les fichiers de Mimine !
- Pour s'échanger cette clé provisoire, Mimine et Lapinou vont établir une communication chiffrée de façon asymétrique : c'est à dire qu'ils échangent leur clé publique.
- La clé provisoire symétrique est à nouveau chiffrée par Mimine avec la clé publique de Lapinou qui pourra, lui seul, déchiffrer la clé provisoire symétrique avec sa clé privée. Il va pouvoir utiliser cette clé provisoire pour déchiffrer temporairement la clé secrète originale et déchiffrer les fichiers de Mimine.
- Quand Lapinou a fini, Mimine détruit la clé provisoire symétrique.
Mais où sont rangées les clés ?
Bah oui c'est vrai ça, c'est bien de créer des clés, mais où sont-elles rangées et qui en a l'accès ?
Chiffrement côté serveur
Tout le monde a accès à la clé principale ?
Non.
Déjà, cette clé de chiffrement/déchiffrement principale n'est pas communiquée directement, même aux personnes autorisées.
En effet, grâce au système hybride que nous venons de voir à l'instant, cette clé de chiffrement principale est elle-même chiffrée avec une clé provisoire à chaque fois que quelqu'un à besoin de s'en servir. C'est ce qu'on appelle une clé de session.
Pour pour avoir accès à cette clé de chiffrement provisoire, le plus souvent, le service nous demande de créer un mot de passe pour nous connecter. Chaque connexion avec ce mot de passe déclenche la création et le déchiffrement d'une clé de session qui sera supprimée lors de notre déconnexion.
Mais il y a deux inconvénients
- Si le mot de passe tombe entre de mauvaises mains ou n'est pas assez solide, les fichiers sont facilement accessibles !
- Il faut avoir une entière confiance en ce service qui met en place ce chiffrement, car il peut très bien se garder un accès à la clé de chiffrement principale au cas où il voudrait jeter un œil à vos fichiers (comme le font certains GAFAM par exemple).
Chiffrement "côté client" (ou "de bout en bout")
Qu'est ce que ça veut dire ?
Cela veut dire que le serveur ne peut pas déchiffrer les fichiers qu'il reçoit puisqu'il n'a aucune clé en sa possession.
En fait, personne d'autre que les appareils possédant les clés, ne peut déchiffrer le contenu des fichiers.
C'est comme ça par exemple que fonctionne l'application Signal (que je présente dans cet article).
Les messages envoyés sont chiffrés et déchiffrés sur les appareils de chaque personne avant de transiter par le serveur. Ainsi, même si quelqu'un accédait au contenu du serveur, il ne verrait que des fichiers incompréhensibles.
Un autre exemple :
J'ai donc préféré une alternative plus éthique, mais avant de trouver cette alternative, j'ai utilisé Dropbox pour stocker des fichiers que j'ai chiffrés avant de les envoyer sur leur cloud. Ainsi, même si Dropbox veut analyser mes documents pour établir un profil d'utilisateur et revendre ces données, il n'accède qu'à des fichiers incompréhensibles.
L'authentification
Explications
Ainsi, à chaque fois que Mimine envoie un message chiffré à Lapinou en pensant le faire avec la clé publique de ce dernier, elle le fait avec la clé publique de Pirate qui peut donc intercepter le message, le déchiffrer avec sa clé privée, le lire ou le modifier, et le chiffrer de nouveau mais cette fois-ci avec la clé publique de Lapinou afin que ce dernier n'y voit que du feu et se dise que son message a bien été chiffré par Mimine.
Vous trouvez ça tordu ?
Et bien il s'agit de l'une des techniques de piratage les plus répandues et dans le jargon on appelle ça :
Man in the middle attack ou l'attaque de l'homme du milieu.
C'est d'ailleurs la base de la sécurité de vos navigateurs et ces derniers vont procéder à des vérifications sans que vous n'ayez rien à faire (voir la suite).
Comment ça marche ?
L'auto-certification
La méthode la plus simple, consiste à vous certifier vous même !
En effet, les clés du chiffrement asymétrique fonctionnent dans les deux sens :
- pour l'instant, Mimine chiffre son message avec la clé publique de Lapinou et Lapinou déchiffre le message avec sa clé privée.
- mais Lapinou peut aussi chiffrer un message avec sa clé privée que Mimine pourra déchiffrer avec la clé publique de Lapinou.
Super ! Et alors ?
Donc si Pirate intercepte l'échange de clés et envoie à Mimine sa propre clé publique à la place de celle de Lapinou (voir schéma précédent), Mimine ne pourra pas déchiffrer le certificat et comprendra qu'il y a un problème !
Les autorités de certification
Quel est leur rôle ?
Le rôle de l'autorité de certification est de donner à Lapinou un certificat et d'apposer une empreinte numérique sur la clé publique de Lapinou avant que ce dernier la communique à Mimine. Elle va donc pouvoir vérifier auprès de l'autorité de certificat si cette empreinte n'a pas changé au cours de l'échange.
Jusqu'en 2015, une demande auprès des autorités de certification était payante et demandait des démarches administratives et techniques compliquées (demande de coordonnées, validation de l'identité, installation du certificat sur le serveur et le nom de domaine …).
Début 2016 ISRG (financé entres autres par l'EFF, la Fondation Mozilla (Firefox et Thunderbird), l'Université du Michigan (U-M), Akamai, Cisco Systems, PlanetHoster, OVH) ont créé une autorité de certification automatisée et gratuite appelée Let's Encrypt.
Cette autorité de certification gratuite et automatisée a révolutionné la mise en place du chiffrement en ligne et a permis de rendre internet bien plus sûr et plus confidentiel pour tous les sites internets et tou·te·s les internautes !
Les certificats de let's Encrypt sont volontairement courts, ils expirent et sont revérifiés tous les 90 jours.
Pour info
Fin 2015, c'est environ 35% du trafic d'internet qui est chiffré.En 2016, 50% du trafic internet est chiffré.
En mars 2020, 83% du trafic est chiffré.
Le 27 février 2020, l'organisation a annoncé qu'elle sécurisait 190 millions de sites web et que le cap du milliard de certificats distribués avait été dépassé.
Source : https://letsencrypt.org/fr/stats/#percent-pageloads
Conclusion
Synthèse
Voici une synthèse du vocabulaire que vous pouvez croiser sur internetSystèmes de chiffrement
- Chiffrement symétrique (ou symmetric-key cryptography, symmetric encryption) = une seule clé pour chiffrer et déchiffrer les données.
- Chiffrement asymétrique (ou public-key cryptography, asymmetric encryption) = chaque personne possède sa paire de clés pour chiffrer et déchiffrer les données.
Technique de chiffrement
- Chiffrement côté serveur (ou server side encryption) = le chiffrement se fait sur le serveur qui sert d'intermédiaire à l'échange des données.
- Chiffrement côté client (ou chiffrement de bout en bout, end to end encryption, E2EE) = le chiffrement se fait directement sur l'appareil avant d'envoyer la donnée chiffrée au serveur intermédiaire.
Les certificats sont délivrés par des institutions ou générés grâce à Let's Encrypt par vous même afin de signer les données que vous envoyez à une autre personne, attester de votre identité et prouver qu'il n'y a pas eu de piratage intermédiaire.
La vidéo de Monsieur Bidouille
Monsieur Bidouille explique très bien le rôle du chiffrement dans le protocole HTTPS (d'ailleurs je vous explique le rôle du protocole HTTPS dans cet article).
Pour plus de détails:
https://ssd.eff.org/fr/module/les-notions-essentielles-du-chiffrement
http://laurent.flaum.free.fr/pgpintrofr.htm
Et si vraiment vous êtes motivé·es ! Anne Canteaut(2) a organisé une conférence de 1h au département informatique de l'ENS très bien expliqué mais aussi très technique ! Retrouvez la vidéo ici : https://savoirs.ens.fr/expose.php?id=2516