Menu Fermer

Les sites HTTPs : pourquoi sont-ils sécurisés ?

Vous utilisez tous les jours les sites HTTPS, on vous dit qu’ils sont sécurisés mais pourquoi ?

En effet les sites HTTPs deviennent de plus en plus courants.
Quel est l’intérêt des sites HTTPs ? Pourquoi les sites HTTPs ?

Cet article vous explique le fonctionnement des sites sécurisés HTTPs.
Pourquoi parfois, vous pouvez obtenir des erreurs de connexions HTTPs.

Les sites HTTPs : pourquoi sont-ils sécurisés ?

Introduction

Avant de commencer, je rappelle qu’il existe sur le forum un long dossier sur les sites HTTPs : Comprendre le HTTPs et à quoi sert le HTTPs
Les sites HTTPs faisant appels à différents mécanismes (algorithme de cryptage, certifications etc), j’ai essayé de simplifier au maximum afin que ce soit le plus compréhensible possible.
Donc voici les grandes lignes.

Les sites HTTPs : pourquoi sont-ils sécurisés ?

Pourquoi les sites HTTPs ?

Lorsque vous surfez des échanges sont effectuées entre le serveur WEB et votre ordinateur.
Ces échanges se font à travers divers équipements réseaux :

  • votre routeur ou box
  • les routeurs du fournisseurs d’accès
  • des routeurs intermédiaire
  • les routeurs et autres équipements réseaux de l’hébergeur où se situe le site WEB

La commande trace permet de visualiser ces derniers (Les commandes réseau utiles de Windows).

Lors d’une connexion HTTP, les données qui transitent ne sont pas chiffrés. C’est à dire, qu’elles passent en clair sur internet entre votre ordinateur et le serveur WEB.
Ainsi, une attaquant peut éventuellement se mettre entre votre ordinateur et le serveur WEB ou usurper ce dernier pour récupérer les données qui transitent (voir les attaques de type Man in the Middle).
Ceci pose des problèmes puisque vous pouvez échanger des données sensibles avec le site en question : mot de passe, voir informations bancaires.
C’est d’autant plus vrai sur les réseaux publics, tels que les Wi-Fi ouvert : Wi-Fi public : quel est le danger ?

C’est là que les sites HTTPs ont leur utilité, car

  • ils permettent un échange de données chiffrées entre votre navigateur WEB et le serveur WEB.
  • La seconde utilité est que les sites HTTPs permettent de vérifier l’identité du site et éviter l’usurpation d’identité. Cette vérification de l’identité se fait à travers un certificat électronique délivré par une autorité de certification (on en parle plus bas).

Les sites HTTPs et les attaques

Pour résumer donc :

  • Avec HTTP les données passent en clair. Aucune vérification sur l’identité du site n’a lieu.
  • Avec les sites HTTPs les données sont chiffrées. De plus, on va lide l’identité du site pour éviter des usurpation.

Enfin pour simuler la sécurité, un cadenas vert apparaît avec les sites HTTPS.Ces derniers sont identifiés par un cadenas qui peut prendre différentes couleurs.
Vérifiez donc bien, dans la barre d’adresse si vous êtes en HTTPs, surtout lors de la phase de paiements.

Les sites sécurisés pourquoi le sont-ils

Bien entendu, on parle de sécurité, si tous les équipements sont sécurisés. Si l’ordinateur source est infecté par des virus informatiques, il y a toujours possibilité de récupérer les données qui transitent.
Le S signifie Secure.
Beaucoup de protocoles ont leurs versions “S”, FTP avec FTPs, POP3 avec POP3s etc dont les données transitent en versions chiffrées.

Connexion n'est pas sécurisée sur les sites WEB à cause des attaques MiTM

Les sites HTTPs protègent ou rendent les attaques MITM plus complexes, pour mieux comprendre ces attaques, lire : Attaque Man in the Middle (MITM)
Ainsi par exemple, si un malware modifie (hijack) votre fichier HOSTS pour provoquer des redirections, une erreur « La connexion n’est pas sécurisée » peut s’afficher. 

La certification SSL

Il existe un article sur le site autour des certificats électroniques : Les certificats et signatures électroniques : A quoi cela sert et comment cela fonctionne

La certification est en réalité un peu plus complexe car il peut exister tout une chaîne de certification.
Par exemple avec le certificat de malekal.com :

  • USERTrust est l’autorité de certification racine (Autorité de certification racine)
  • Gandi est l’autorité de certificat intermédiaire (Autorité de certificat intermédiaire)
  • puis le certificat malekal.com (Certificat du site)
La chaîne de certification d'un site HTTPS

Il peut aussi arriver que le certificat du site d’une société soit généré par une autorité de certificat intermédiaire qui est la même entité.
Par exemple si vous allez sur le site de Gandi en HTTPs.
Vous verrez que le certificat provient de ce dernier.

Il se passe exactement la même chose avec Google :

  • GeoTrusted Global CA (Autorité de certification racine)
  • Google Internet Authorité G2 (Autorité de certificat intermédiaire)
  • Le certificat pour les adresses .google.com (Certificat du site)
La chaîne de certification d'un site HTTPS
La chaîne de certification d'un site HTTPS

La confiance se fait donc sous la forme une chaîne, où UserTrust doit vérifier continuellement que la certification intermédiaire de Google est bien valide.
Même chose avec UserTrust et Gandi.
L’infrastructure d’une AC est composée d’éléments opérationnels essentiels.
On trouve :

  • les équipements et les logiciels, les réglementations et les déclarations de pratiques de sécurité
  • les rapports d’audit, le matériel de sécurité et le personnel.

Ensemble, ces éléments forment une PKI de confiance (infrastructure de clé publique de confiance).
Un schéma d’un PKI de GlobalSign :

Schéma d'un PKI d'un certificat SSL pour site HTTP

Ces derniers fournissent aux sites internet :

  • Un certificat électronique afin de pouvoir vérifier l’identité du site visité et s’assurer qu’on se connecte sur le bon site.
  • Une clé publique et privée lié au certificat électronique afin de pouvoir chiffrer les communications.

Exemple de certification SSL

Dans le cas de Gandi et c’est vrai pour d’autres autorités de certification intermédiaires, cela permet de vendre des certificats à des clients (webmaster, société d’hébergement, etc).
Oui parce que tout ça, c’est aussi un business =)

Chaque navigateur WEB possède une liste des certificats racines pour valider la chaîne.
Cette liste est présente dans un magasin de certificats interne ou externe au navigateur WEB.

Par exemple, Firefox a son propre de magasin de certificats.
On peut accéder à ce dernier le menu d’options => Vie privé et sécurité > Partie Certificat => Afficher les certificats.

Lister les certificats d'autorités sur Mozilla Firefox

Sur Windows, Google Chrome, Internet Explorer et Edge utilise le magasin de certificat de Windows (certmgr.msc).
On retrouve alors les certificats d’autorités racines :

Le magasin de certificats de Windows

Windows stocke aussi les certificats d’autorités intermédiaires.

Les certificats racines sur Windows

Sur Linux, la liste des certificats racines (CA) se trouvent :

Les certificats racines sur Linux

Lire les informations des certificats SSL

Tous les navigateurs WEB permettent de lire le certificat d’un site WEB.

Sur Internet Explorer, cliquez simplement sur le cadenas à droite :

Lire les informations des certificats d'un site HTTP sur Internet Explorer

Sur Google Chrome, cliquez sur le cadenas à gauche de l’adresse HTTPs.

Lire les informations des certificats d'un site HTTP sur Google Chrome

Dans la nouvelle fenêtre, cliquez sur le bouton “View certificate“.Sur Firefox, cliquez sur le cadenas puis la flèche vers la droite.

Lire les informations des certificats d'un site HTTP sur Google Chrome

Puis “plus d’informations”.

Fonctionnent des sites HTTPs

Clés et certificats SSL

Le fonctionnement de HTTPs pour les sites publiques fonctionnement avec un chiffrement asymétrique et un chiffrement symétrique.
Pour le chiffrement asymétrique, le serveur WEB possède une clé publique et privée.
On utilise la clé publique pour établir la communication sécurisée, seule la clé privée permet de lire les données durant cette phase.
Ainsi le serveur WEB peut “distribuer” sa clé publique, seul le serveur WEB pourra lire ces données avec sa clé privée en retour.
Cela évite donc le vol de données.

Un certificat électronique est aussi utiliser pour s’assurer de l’identité du site lors de la connexion HTTPs. Ce certificat est donc unique pour chaque domaine.
Des autorités de certificat délivrent les certificats et se chargent de ces vérifications.
Ce mécanisme permet donc d’assurer l’identité du site WEB avec lequel vous communiquez afin d’éviter les usurpations.

SujetNom distinctif, Clé publique
FournisseurNom distinctif, Signature
Période de validitéPas avant, Pas après
Informations de gestionVersion, Numéro de série
ExtensionsContraintes de base, Drapeaux Netscape, etc.

En cas de vol de la clé privée du serveur, tout le mécanisme de sécurité est compromis.
Il faut alors générer un nouveau couple clé privée et publique et certificat qui y est associé.
Même chose pour les autorités de certificat qui distribue les certificats… puisque n’importe qui pourra créer son propre certificat/clé publique pour n’importe quel site (on y reviendra plus bas).

Exemple de connexion SSL/TLS

Voici un schéma qui résume une connexion à un site HTTPs de manière très succincte.
En effet c’est en réalité beaucoup plus complexe, si on détaille tout.
Cette négociation repose sur le protocole SSL/TLS (Transport Layer Security).

On utilise le chiffrement asymétrique afin de générer des clés pour chiffrer les données de manière symétrique.

  • La première phase consiste à négocier la connexion sécurisée : pour cela, le client se connecte à un site WEB, négocie les méthodes de compressions, versions de TLS etc et récupère le certificat et la clé publique (X.509 sur le schéma) du site WEB (1 et 2).
    Puis le navigateur WEB vérifie leurs intégrités.
  • La seconde phase est la création de la connexion sécurisée : le navigateur s’authentifie avec la clé publique. Le client et le serveur négocie un jeu de clé symétrique utilisée pour chiffrer les données. Le client génère une clé aléatoire qui va être chiffrée par la clé public du serveur WEB. Si l’échange de données est négociée, les données chiffrées peuvent alors être transmises.
Schéma d'une connexion à un site HTTPS

La clé symétrique générée par le client pour chiffrer les données transmises entre le client et le serveur est chiffrée avec la clé public du serveur pour lui être transmise.
Seul le serveur possède la clé privée qui permet de lire les données et ainsi obtenir la clé privée pour le chiffrement symétrique.
Ainsi, seul le client et le serveur connaissent les clés symétriques.
L’usurpation est alors impossible.

C’est aussi, lors de ces deux phases que des messages d’erreurs peuvent s’afficher empêchant l’affichage du site WEB HTTPs car la négociation et la connexion HTTPs n’a pu se faire.

Plus de détails :

Les sites sécurisés fassent aux attaques en vidéo

Dans cette vidéo explique pour les sites sécurisés sont importants surtout dans les attaques de type Man in the Middle.

Erreurs et dysfonctionnement de connexion aux sites HTTPS

Pour toutes les erreurs et problèmes de connexions aux sites HTTPS, se rendre sur l’article : 

HTTPs et sécurité

Un malware peut installer des certificats racines pour manipuler les pages HTTPs.
Certains malwares de type Trojan Banker font cela.

Par le passé, des adwares (logiciels publicitaires) ont aussi utilisé ces mécanismes pour pouvoir injecter des publicités sur les sites HTTPs.

La seconde partie de ce article donne des exemples et explications : 

HSTS

HTTP Strict Transport Security (HSTS) est un mécanisme de politique de sécurité proposé pour HTTP, permettant à un serveur web de déclarer à un agent utilisateur (comme un navigateur web), compatible, qu’il doit interagir avec lui en utilisant une connexion sécurisée (comme HTTPS).

Sur Google Chrome, vous pouvez régler le HSTS par site, depuis l’adresse chrome://net-internals/#hsts
La partie Add permet de forcer le HTTPs sur un site en particulier.
Delete permet de supprimer un site.
Enfin Query permet de vérifier si le HSTS est activé sur un site.

Ainsi, si adresse passe automatiquement HTTPs par le navigateur WEB, vous pouvez supprimer le site depuis la partie Delete.

HTTP Strict Transport Security (HSTS)

Connexion non sécurisée

Dans le but de prévenir les internautes sur ces aspects de sécurité.
Les navigateurs WEB affichent maintenant une alerte lors d’une connexion à un site non HTTPs avec la mention “Connexion non sécurisée”.
Plus de détails, informations sur la page : Connexion non sécurisée

Connexion non sécurisée