Du HTTP au HTTPS

Les navigateurs et moteurs de recherche encouragent de plus en plus fortement les sites web à utiliser une adresse en "https" au lieu du fameux "http". Qu'est-ce que cela change ? Comment faire ? Insite vous explique tout.

HTTPS : qu'est-ce que c'est ?

HTTP est un protocole de communication permettant à un "client" (un internaute, via son navigateur) d'échanger dans un langage commun avec un "serveur" (hébergeant un site web). Le plus souvent, le navigateur (Firefox, Chrome,...) demande une page web quand l'internaute clique sur un lien, le serveur envoie la page web demandée et le navigateur l'affiche à l'internaute.

HTTPS combine HTTP avec un protocole de chiffrement (SSL/TLS) qui permet de garantir la confidentialité des données échangées entre le navigateur et le site web.1

Comment peut-on garantir la confidentialité des données échangées via le réseau ?

Le protocole SSL/TLS se décompose en deux parties. Pour mieux expliquer son fonctionnement, il est d'usage d'utiliser des prénoms (Alice, Bob,...) au lieu de lettres (A, B,...).

Le chiffrement

Il consiste à crypter la communication entre l'internaute Alice et le site de Bob de sorte que seuls Alice et Bob puissent accéder aux données échangées, et pas le fournisseur d'accès, les autorités, les pirates,... Ces données peuvent être des mots de passe, des adresses e-mail, des données personnelles, des numéros de carte bancaire ou d'autres données confidentielles.
Cette partie nécessite simplement que le serveur qui héberge le site de Bob gère le chiffrement SSL/TLS2.

Le problème est que cela ne suffit pas à assurer une vraie confidentialité, car Alice doit être sûre que le site avec lequel elle communique de manière cryptée est bien le site de Bob...

Le certificat

Il permet à Alice d'avoir confiance dans le fait que le site qu'elle consulte est bien géré par Bob et non par quelqu'un d'autre prétendant être Bob (un arnaqueur typiquement). Cela passe par le fait que le navigateur d'Alice fait confiance à un tiers Nestor (une autorité de certification reconnue) qui signe et fournit à Bob un certificat lui permettant de prouver que son site est bien le sien.3

Comment fait Nestor pour savoir que le site est bien celui de Bob ? Il existe différents niveaux de validation :

  • Le premier niveau (DV) consiste à simplement vérifier que la personne qui demande le certificat gère bien le nom de domaine bob.fr, ce qui peut se faire via différentes techniques semi-automatisées (mail, DNS, fichier,...). Ce niveau est le plus courant, il est peu cher voire gratuit pour Let's encrypt.4
  • Le deuxième niveau (OV) consiste pour Nestor à faire un peu plus de vérifications, comme vérifier que Bob est bien une personne ou une entreprise répertoriée.
  • Le troisième niveau (EV) exige que Nestor vérifie que Bob est bien Bob (en lui demandant de fournir des pièces justificatives par exemple). Cela implique davantage de travail, ce qui se répercute dans le coût du certificat. Ce niveau peut être accompagné d'une garantie, qui engage Nestor à indemniser Bob si jamais quelqu'un d'autre arrive à se faire passer pour lui auprès de Nestor. Plus le montant de l'indemnité est élevé, plus le certificat coûte cher à Bob, mais plus Alice aura confiance dans le fait que Nestor a bien vérifié l'identité de Bob. Ce niveau est par exemple utilisé par de grands sites e-commerce.

À noter : le niveau de validation aura généralement un impact sur l'aspect de la barre d'adresse du navigateur, pour permettre à l'internaute d'avoir une idée du niveau de sécurisation des échanges.

Pourquoi est-ce important ?

L'usage du HTTPS n'est pas obligatoire, en tout cas pas pour le moment. Et pour certains sites, la confidentialité n'est pas un enjeu majeur. Mais certains navigateurs et moteurs de recherche l'encouragent de plus en plus fortement. Le géant Google est un acteur majeur de cette évolution, principalement de deux manières :

  • D'abord, il favorise le HTTPS dans ses résultats de recherche. Son métier est de fournir aux internautes des résultats pertinents, et la sécurisation du site est un critère de pertinence, même si ce n'est évidemment pas le premier. Si vous souhaitez que votre site soit bien référencé, vous avez donc intérêt à utiliser le HTTPS.
  • Et via son navigateur Chrome, il alerte les internautes lorsque le site consulté n'est pas en HTTPS, ou leur indique le niveau du certificat le cas échéant. Si votre site est en HTTP, le message affiché par le navigateur peut inquiéter certains de vos internautes.

De plus, le HTTPS est un pré-requis pour pouvoir utiliser HTTP/2, un protocole réseau qui réduit le temps d'attente d'affichage des pages, surtout lorsque la connexion est mauvaise (réseau mobile par exemple).

Le HTTPS sécurise-t-il vraiment mon site ?

En fait, il sécurise plutôt les échanges des internautes avec le site en garantissant leur confidentialité. HTTPS est bel et bien plus sécurisé que HTTP. Mais un site n'est jamais 100% sécurisé.

Par exemple, cela n'empêche aucunement un pirate de prendre le contrôle du site (cela peut tout au plus compliquer certains types d'attaques).5 Ou pour les premiers niveaux de validation, cela n'empêche pas non plus un site de se faire passer pour un autre, ou même pour une structure fictive n'ayant en fait aucune existence légale.

C'est ce qui fait que l'importance donnée par Google au HTTPS est controversée, même si elle semble légitime de prime abord.

Combien ça coûte ?

Selon les cas, il vous faudra comptabiliser les coûts suivants :

  • le certificat (coûts variables selon le niveau de validation)
  • le suivi de la commande du certificat et de sa validation
  • l'adaptation de l'hébergement pour la mise en place du certificat
  • l'adaptation du site pour le HTTPS

Vous pouvez décider d'être autonome sur certains de ces points ou de les confier au prestataire adéquat (hébergeur, mainteneur du site,...). À noter qu'un certificat a une durée de validité limitée. Son renouvellement implique de nouveaux coûts.

 

Notes :

1 Pour être précis, les données échangées sont cryptées, mais pas les méta-données de l'échange ("qui consulte quelle adresse ?" par exemple).

2 Si le site web demande au navigateur d'afficher des données hébergées sur d'autres sites (outils de suivi de la fréquentation, iframes, images,...), il faut aussi que ces autres sites fonctionnent en HTTPS. Pour un site existant, le passage au HTTPS peut donc nécessiter des ajustements.

3 Il est techniquement possible d'avoir un site en HTTPS sans certificat, avec un certificat auto-signé par son propriétaire, ou encore avec un certificat expiré. Dans ce cas, le navigateur va inciter fortement l'internaute à ne pas visiter le site en question, tout en lui laissant généralement la possibilité de le faire quand même. La communication sera alors chiffrée mais l'internaute n'aura pas de garantie quant à l'identité du site visité.

4 Let's Encrypt est un système un peu particulier : il faut revalider le certificat régulièrement, il y a une limite au nombre de certificats qu'on peut demander sur une période donnée, et il y a moins de garantie de pérennité de la compatibilité avec tous les navigateurs.

5 Pour limiter les risques que votre site soit attaqué, pensez à consulter votre prestataire au sujet de la maintenance préventive.