Guide du débutant : Les bases du fonctionnement d'internet - Partie 3
Pour ce troisième article de la série, nous vous proposons de rentrer dans le détail d'un composant clé de l'internet moderne. Il s'agit d'un sujet complexe et nous espérons que vous en comprendrez toutes les arcanes.
Les récentes actualités mettent en avant la sécurité sur Internet et la nécessité de protéger ses communications électroniques, notamment via HTTPS lorsque vous visitez des sites internet.
J'espère que vous savez que votre navigateur vous indique un site sécurisé en affichant un petit cadenas. Cependant, que veut vraiment dire ce petit cadenas ? Et, est-ce qu'il indique vraiment que la connexion est bien sécurisée ?
Dans cet article, nous allons présenter les principes de fonctionnement de HTTPS et plus généralement de SSL. En route vers la face caché du petit cadenas.
HTTPS, SSL, .... et TLS, KESAKO ?
HTTPS est la version sécurisée de HTTP, le protocole utilisé sur internet pour que les navigateurs communiquent avec les serveurs web, comme nous l'avions vus dans nos deux premiers articles. SSL est un protocole sous-jacent à HTTP qui va permettre d'authentifier et de chiffrer les communications.
SSL (Secure Socket Layer) est le nom du protocole original qui servait à sécuriser les sites internet. Ce protocole est, depuis des années, obsolète, car de nombreuses failles de sécurité l'ont compromis, quelque soit sa version. Il est depuis remplacé par TLS (Transport Layer Security), dont la version 1.2 est la version la plus récente et la seule encore non "trouée".
Malgré son obsolescence, le terme SSL est resté pour indiquer la sécurisation d'un site internet. Il arrive aussi que l'on parle de SSL/TLS afin d'être un peu plus précis.
Voyons maintenant, un peu plus dans le détail, quel sont ses rôles. Il permet trois fonctions critiques, mais nécessaires à la sécurité :
- Le chiffrement : Les données transmises sont cryptées par une clé de chiffrement qui n'est connue que par votre ordinateur et le serveur qui héberge le site internet que vous consulter. Ces données donc ne sont pas lisibles par un autre appareil.
- L'authentification : L'utilisation de certificats numériques permet d'établir une chaine de confiance et permet de valider que le site est bien celui qu'il prétend être.
- L'intégrité : Le protocole permet aisément de détecter si des données ont été changées pendant le transport. En effet, toute modification rendra impossible le déchiffrement du contenu. Cette caractéristique de SSL est bien souvent sous-estimée, mais elle joue un rôle capital pour empêcher un tiers peu scrupuleux (hackers, injection de pubs, ...) de modifier le contenu sur le trajet entre le serveur et votre navigateur.
Nous parlons de SSL/TLS pour sécuriser une connexion HTTP, mais il est aussi capable de sécuriser d'autres connexions. En effet, il est assez générique, ce qui permet de le retrouver également en conjonction d'autres protocoles utilisés sur internet tel que le SMTP, POP, l'IMAP pour les e-mails, le FTP pour le transfer des données, ou encore MySQL, un gestionnaire de base de données.
Quelque soit le protocole, SSL ajoute une couche de sécurité toujours bienvenue.
Certificats et autorités de certification.
Toujours là ? On ne vous a pas perdu en cours de route ? Alors rentrons encore plus en détail sur l'un des rôles de SSL/TLS : l'authentification.
Le petit cadenas indique que le site présente un certificat valide et reconnu.
Les certificats sont des documents numériques qui permettent de créer une chaîne de confiance et de chiffrer les communications.
La chaine débute avec un certificat dit racine appartenant à une autorité de certification ou CA (Certificate Authority).
Le rôle de cette CA est de signer des certificats "fils" qui sont présentés par le serveur web. Pour cela, elle vérifie que le demandeur d'un certificat est bien celui qu'il prétend être et aussi qu'il est bien le propriétaire du domaine que celui-ci demande à sécuriser. Ainsi, n'importe qui ne peut pas prétendre être n'importe quel site, ce qui vous permet d'être sûr lorsque vous allez sur le site votre banque.
Des contrôles encore plus poussés sont effectués par la CA avant de délivrer des certificat dit EV (Extended Validation). Ceci inclut la vérification de registres de sociétés afin de garantir que ladite compagnie existe et est bien une entité légale. D'ailleurs, ces certificats apparaissent plus explicitement dans votre navigateur.
Certificats EV :
Certificats normaux :
Pour des raisons pratiques et de sécurité, les CA ont en général plusieurs certificats racines, qui signent à leur tour un ou plusieurs certificats intermédiaires qui, eux-même, signeront le certificat de votre site web favori.
Les certificats ont une durée de vie limitée (1 ou 2 ans) pour continuellement s'assurer dans le temps que la possession du domaine est toujours conforme.
Dans le cas de perte, de compromission ou de mauvais usage d'un certificat, les autorités de certifications disposent de mécanismes pour les révoquer.
Votre système d'exploitation et votre navigateur internet intègrent les certificats de certaines autorités de confiance. Cette liste est mise à jour régulièrement pour ajouter de nouvelles autorités de certification ou bien retirer celles dont la confiance n'est plus accordée. Cela a notamment été récemment le cas avec une CA de Symantec qui va être progressivement être retirée.
Il est important de noter que vous ou des logiciels sur votre machine peuvent changer cette liste. C'est le cas par exemple, de certains antivirus ou proxy, ou dans le cadre professionnel pour des domaines ou machines internes.
Lors de l'établissement de la connexion avec votre banque par exemple, le navigateur vérifie que le certificat présenté est conforme et à bien été délivré par une de ces autorités. Dans le cas positif, vous aurez droit au joli cadenas dans la barre d'adresse alors que dans le cas contraire, la connexion ne sera pas effectuée et une erreur, en général peu compréhensible, sera affichée.
Attention, cependant, la liste étant modifiable, elle peut donc l'être aussi par un logiciel mal intentionné, téléchargé sur un site peu fiable.
Conclusion
La combinaison du chiffrement et de la signature des certificats permet de protéger les données en transit vers le serveur et de s'assurer qu'elles sont bien acheminées vers et depuis le service attendu.
Afin que votre système d'exploitation et votre navigateur disposent bien des dernières versions des protocoles de sécurité et des listes des autorités de certification à jour, il est important de faire les mises à jour proposées par les éditeurs. Lorsqu'un éditeur ne supporte plus votre OS ou votre navigateur, il est donc envisageable d'en changer afin de conserver une sécurité maximale.
Le sujet est vaste et complexe et j'espère que cela vous donnera une meilleure idée de la magie qui se cache derrière ce petit cadenas.
Pour allez encore plus loin
L'obtention d'un certificat peut être très onéreuse ou compliquée, mais récemment une initiative a vu le jour pour faciliter l'obtention et la configuration d'un certificat pour son site personnel. Il s'agit de Let's Encrypt. Pour information, vous pouvez visitez skymac.org en HTTPS, et le site sera sécurisé via cette autorité de certification.
Pour les plus avertis ou les curieux, il existe une extension sur Firefox qui permet de "noter" la connexion SSL et d'afficher de plus amples informations (et vérifier que les informations sont bien légitimes) : SSLeuth
Vous pouvez aussi créer votre propre CA à la maison. Techniquement, ce n'est pas trop compliqué grâce à l'utilisation de logiciels tel que XCA. Cependant, votre CA ne sera pas reconnue par les navigateurs. Ceci est plus adapté à un usage local ou pour des connexions purement internes.
- Guide du débutant : Les bases du fonctionnement d'internet - Partie 1
- Guide du débutant : Les bases du fonctionnement d'internet - Partie 2
- Guide du débutant : Les bases du fonctionnement d'internet - Partie 3
- Guide du débutant : Les bases du fonctionnement d'internet - Partie 4 - Neutralité d'Internet