HyperText Transfer Protocol Secure

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis HTTPS)
Sauter à la navigation Sauter à la recherche

HyperText Transfer Protocol Secure
Fonction Transmission d'hypertexte
Sigle HTTPS
Date de création 1994[1]
Port 443
RFC 2000 : RFC 2818[2]
Logo du protocole https

L'HyperText Transfer Protocol Secure, plus connu sous l'abréviation HTTPS — littéralement « protocole de transfert hypertexte sécurisé » — est la combinaison du HTTP avec une couche de chiffrement comme SSL ou TLS.

HTTPS permet au visiteur de vérifier l'identité du site web auquel il accède, grâce à un certificat d'authentification émis par une autorité tierce, réputée fiable (et faisant généralement partie de la liste blanche des navigateurs internet). Il garantit théoriquement la confidentialité et l'intégrité des données envoyées par l'utilisateur (notamment des informations entrées dans les formulaires) et reçues du serveur. Il peut permettre de valider l'identité du visiteur, si celui-ci utilise également un certificat d'authentification client.

HTTPS est généralement utilisé pour les transactions financières en ligne : commerce électronique, banque en ligne, courtage en ligne, etc. Il est aussi utilisé pour la consultation de données privées, comme les courriers électroniques, par exemple.

Depuis le début des années 2010, le HTTPS s'est également généralisé sur les réseaux sociaux.

Par défaut, les serveurs HTTPS sont connectés au port TCP 443.

En janvier 2017 Google Chrome et Mozilla Firefox ont commencé à identifier et signaler les sites Web qui recueillent des informations sensibles sans utiliser le protocole HTTPS[3]. Ce changement a pour but d'augmenter de manière significative l'utilisation du HTTPS. En février 2017, le protocole de sécurité HTTPS était utilisé par environ 16,28 % de l'Internet français[4].

Historique[modifier | modifier le code]

Principe de fonctionnement[modifier | modifier le code]

Description informelle : Le protocole est identique au protocole web habituel HTTP, mais avec un ingrédient supplémentaire dit TLS qui fonctionne assez simplement ainsi :

  • le client — par exemple le navigateur Web — contacte un serveur — par exemple Wikipédia — et demande une connexion sécurisée, en lui présentant un certain nombre de méthodes de chiffrement de la connexion (des suites cryptographiques) ;
  • le serveur répond en confirmant pouvoir dialoguer de manière sécurisée et en choisissant dans cette liste une méthode de chiffrement et surtout, en produisant un certificat garantissant qu'il est bien le serveur en question et pas un serveur pirate déguisé (on parle de l'homme du milieu).
    Ces certificats électroniques sont délivrés par une autorité tiers dans laquelle tout le monde a confiance, un peu comme un notaire dans la vie courante, et le client a pu vérifier auprès de cette autorité que le certificat est authentique (il y a d'autres variantes, mais c'est le principe général).
    Le certificat contient aussi un cadenas en quelque sorte (une clé dite publique) qui permet de prendre un message et de le mélanger avec ce cadenas pour le rendre complètement secret et uniquement déchiffrable par le serveur qui a émis ce cadenas (grâce à une clé dite privée, que seul le serveur détient, on parle de chiffrement asymétrique) ;
  • cela permet au client d'envoyer de manière secrète un code (une clé symétrique) qui sera mélangé à tous les échanges entre le serveur et le client de façon à ce que tous les contenus de la communication — y compris l'adresse même du site web, l'URL — soient chiffrées. Pour cela on mélange le contenu avec le code, ce qui donne un message indéchiffrable et à l'arrivée refaire la même opération avec ce message redonne le contenu en clair, comme dans un miroir.

En bref : serveur et client se sont reconnus, ont choisi une manière de chiffrer la communication et se sont passé de manière chiffrée un code pour dialoguer de manière secrète.

HTTPS et piratage[modifier | modifier le code]

La sécurité des informations transmises par le protocole HTTPS est basée sur l'utilisation d'un algorithme de chiffrement, et sur la reconnaissance de validité du certificat d'authentification du site visité.

Partant du principe que les internautes précisent rarement le type de protocole dans les URL (le protocole HTTP étant historiquement sélectionné par défaut) et se contentent de suivre des liens, un chercheur en sécurité informatique, connu sous le pseudonyme de Moxie Marlinspike, a développé une attaque du type Attaque de l'homme du milieu (« Man in the middle » en anglais), afin de contourner le chiffrement de HTTPS[5]. Le pirate se positionne entre le client et le serveur et change les liens https: en http:, ainsi le client envoie ses informations en clair via le protocole HTTP et non HTTPS[6]. Ce type d'attaque a été présenté par Marlinspike à la Blackhat Conference 2009. Durant cette conférence, Marlinspike a non seulement présenté le fonctionnement de l'attaque, mais également quelques statistiques d'utilisation. Il a réussi à récupérer plusieurs centaines d'identifiants, informations personnelles et numéros de cartes bancaires en 24 heures, aucune personne ne se doutant de l'attaque en cours[5].

Une autre attaque de type Man in the middle a pu être mise en œuvre en juillet 2011[7], par l'obtention frauduleuse de certificats valides auprès de l'ancienne autorité de certification DigiNotar, piratée. Cette attaque fut utilisée pour mettre en place de faux sites Google (certificat frauduleux pour les domaines *.google.com) et ainsi espionner la consultation de plusieurs comptes GMail d'utilisateurs iraniens.

En septembre 2011, Duong et Rizzo, deux chercheurs en sécurité informatique, ont présenté à la Ekoparty Security Conference un nouveau type d'attaque, basé cette fois sur le décryptage des paquets transmis sur le réseau. Cette attaque utilise une vulnérabilité du chiffrement Cipher Block Chaining du protocole TLS 1.0, connue de longue date. Pour exploiter cette vulnérabilité, il s'agit d'insérer dans la page consultée un code Javascript communiquant la valeur du cookie de session à un sniffer de paquets réseau, afin de l'utiliser pour décrypter le reste de la communication[8].

Seuls les sites supportant la version de chiffrement TLS 1.0 sont affectés par cette vulnérabilité ; cependant à la date de septembre 2011, cela concerne l'immense majorité des sites du fait de la réticence des sites et navigateurs à mettre en application les versions TLS 1.1 et 1.2[9].

HTTPS et NSA[modifier | modifier le code]

En septembre 2013, plusieurs journaux révèlent, grâce aux documents fournis par Edward Snowden, que la NSA, via son programme Bullrun, cherche à casser ou affaiblir le protocole HTTPS ou ses mises en œuvre par les constructeurs de matériel et de logiciel, rendant accessible en clair aux services américains de nombreuses communications pourtant chiffrées[10].

Début 2014, une vulnérabilité visant tous les appareils Apple sous iOS 6 / 7 et Mac OS X 10.9, permettant à ceux qui ont eu le moyen de l'exploiter de corrompre le chiffrement HTTPS ou plus particulièrement les technologies TLS / SSL, a été corrigée par la firme[11]. Certaines rumeurs laissent entendre que cette vulnérabilité aurait été utilisée par la NSA[12], voire que c'est l'organisation gouvernementale qui a sollicité l'aide d'Apple pour créer cette faille (ce que l'entreprise dément)[13].

HSTS[modifier | modifier le code]

Article détaillé : HTTP Strict Transport Security.

HTTP Strict Transport Security (HSTS) est un mécanisme de politique de sécurité proposé, 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). La politique est donc communiquée à l'agent utilisateur par le serveur, via la réponse HTTP, dans le champ d'entête nommé « Strict-Transport-Security ». La politique spécifie une période de temps durant laquelle l'agent utilisateur doit accéder au serveur uniquement de façon sécurisée.

Notes et références[modifier | modifier le code]

  1. « Introduction to SSL », sur Google Livre, (consulté le 4 novembre 2014)
  2. (en) « HTTP Over TLS », Request for Comments no 2818, mai 2000.
  3. (en-US) « Moving towards a more secure web », Google Online Security Blo,‎ (lire en ligne)
  4. « Statistiques sur l'internet français. udomo.fr », sur www.udomo.fr (consulté le 2 février 2017)
  5. a et b https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf.
  6. https://www.orange-business.com/fr/blogs/securite/webtech/https-pwned
  7. https://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/.
  8. http://www.journaldunet.com/solutions/securite/faille-ssl-et-tls.shtml
  9. https://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/page2.html.
  10. Le Monde.fr, « Affaire Snowden : comment la NSA déjoue le chiffrement des communications », sur Le Monde.fr, (consulté le 6 septembre 2013).
  11. « Pourquoi la faille "goto fail" des OS d'Apple est très grave », Journal du net,‎ (lire en ligne)
  12. Olivier, « Goto fail : après iOS, Apple bouche enfin la faille SSL sur OS X », Journal du geek,‎ (lire en ligne)
  13. (en) Charles Arthur, « Apple's SSL iPhone vulnerability: how did it happen, and what next? », The Guardian,‎ (lire en ligne)

Articles connexes[modifier | modifier le code]