Vous avez très certainement déjà vu cet affichage « ce site n’est pas sécurisé ».
Mais qu’est-ce que cela signifie ? En quelques mots, cela signifie que lorsque vous échangez des données avec un site Internet, celles-ci transitent en clair et peuvent être interceptées à tout moment. Le risque est faible lorsque vous visitez un blog de cuisine mais imaginez un instant que vous vous connectiez à votre banque en ligne et qu’une personne mal intentionnée pourrait le plus simplement du monde intercepter tous vos échanges (identifiant, mots de passe, numéro de compte, etc.).
Échange de données en http
- Le client (vous) se connecte en http (HyperText Transfer Protocol) au serveur (le site internet)
- Le client et le serveur échangent des données non chiffrées
Une personne mal intentionnée est alors en mesure d’intercepter des données en clair directement à l’aide d’un analyseur de paquets, aussi appelé Sniffer.
Une personne mal intentionnée est alors en mesure d’intercepter des données en clair directement à l’aide d’un analyseur de paquets, aussi appelé Sniffer.
Échange de données en https
Dans le cas d’une connexion sécurisée https, un troisième acteur (en plus du pirate) entre en jeu. Il s’agit de l’autorité certifiante. Cette dernière va se porter garante de la sécurisation des échanges entre le serveur et le client.
La chronologie de l’échange devient alors nettement plus complexe :
- L’autorité certifiante délivre un certificat au serveur.
Le certificat est accompagné d’une clé publique et d’une clé privée. Les clés se présentent sous la forme de suite de caractères qui, associées à un message par exemple, vont permettre de le crypter ou le décrypter.De manière très simplifiée et schématique, on pourrait dire qu’une clé de valeur 1 décalerait de un caractère dans l’alphabet votre message. Si l’utilisateur envoie le message « coucou » chiffré avec une clé 1, le message deviendrait alors « dpvdpv ». C’est évidemment loin d’être aussi simple mais voici pour l’idée de clé.
Dans notre cas, il existe une clé publique qui est mise à disposition de tous pour pouvoir chiffrer un message vers le serveur et une clé privée qui permettra de déchiffrer les messages reçus. - Le client (vous) se connecte cette fois-ci en https (HyperText Transfer Protocol Secure) au serveur (site internet)
- Au lieu d’échanger directement des informations, le serveur envoie au navigateur du client le couple certificat SSL (Secure Socket Layer) / clé publique.
- Le navigateur du client vérifie l’authenticité du certificat auprès de l’autorité certifiante
- L’Autorité certifiante valide l’authenticité du certificat
- Si le certificat est valide, le navigateur du client va générer une nouvelle clé : la clé de session, qui se génère à l’aide de la clé publique du serveur.
- Le client envoie la clé de session au serveur
- Le serveur est en mesure de décrypter la clé de session grâce à sa propre clé privée
Le client et le serveur disposent alors tous les deux d’une clé de session commune qu’ils sont les seuls à détenir. Ceci permet un échange d’informations chiffrées que seule la clé de session peut permettre de déchiffrer. Or, personne d’autre ne dispose de cette clé de session.
Ainsi, même si une personne mal intentionnée intercepte les données échangées, elle n’interceptera que les données chiffrées sans avoir la clé permettant le déchiffrage.
Crédits et références
Visuel d’en-tête : Pixabay