Let's Encrypt

Un article de Wikipédia, l'encyclopédie libre.

Let's Encrypt
logo de Let's Encrypt
illustration de Let's Encrypt

Création Voir et modifier les données sur Wikidata
Fondateurs Electronic Frontier Foundation, Mozilla Foundation et université du MichiganVoir et modifier les données sur Wikidata
Slogan Encrypt the entire webVoir et modifier les données sur Wikidata
Siège social San FranciscoVoir et modifier les données sur Wikidata
Drapeau des États-Unis États-Unis
Activité CryptographieVoir et modifier les données sur Wikidata
Produits X.509Voir et modifier les données sur Wikidata
Société mère Internet Security Research Group (en)Voir et modifier les données sur Wikidata
Effectif 8 ()[1]Voir et modifier les données sur Wikidata
Site web letsencrypt.orgVoir et modifier les données sur Wikidata
Budget 3,6 M$ ()[2]Voir et modifier les données sur Wikidata

Let's Encrypt (abrégé LE) est une autorité de certification lancée le (Bêta Version Publique). Cette autorité fournit des certificats gratuits X.509 pour le protocole cryptographique TLS au moyen d'un processus automatisé destiné à se passer du processus complexe actuel impliquant la création manuelle, la validation, la signature, l'installation et le renouvellement des certificats pour la sécurisation des sites internet[3]. En , plus de 10 millions de certificats ont été délivrés[4].

En , Let's encrypt était utilisé par 13,70% du total des domaines français enregistrés[5].

En , Let's encrypt fournit 54,67 % des certificats TLS[6].

Présentation[modifier | modifier le code]

Le projet vise à généraliser l'usage de connexions sécurisées sur l’internet. En supprimant la nécessité de paiement, de la configuration du serveur web, des courriels de validation et de gestion de l'expiration des certificats, le projet est fait pour réduire de manière significative la complexité de la mise en place et de la maintenance du chiffrement TLS. Sur un serveur GNU/Linux, l’exécution de seulement deux commandes[7] est censée être suffisante pour paramétrer le chiffrement HTTPS, l’acquisition et l’installation de certificats, et ceci en quelques dizaines de secondes.

À cette fin, il existe un paquet disponible directement dans les dépôts Debian[8]. Toutefois, le paquet est disponible sur GitHub[9].

Parties prenantes[modifier | modifier le code]

Let's Encrypt est un service fourni par l’Internet Security Research Group (ISRG). Les sponsors principaux sont l’Electronic Frontier Foundation (EFF), la Fondation Mozilla, Akamai, Cisco Systems , PlanetHoster et OVHcloud. D'autres partenaires, tels que l'autorité de certification IdenTrust, l'Université du Michigan (U-M), la Stanford Law School, la Fondation Linux, ainsi que Stephen Kent de Raytheon / BBN Technologies et Alex Polvi de CoreOS sont également impliqués dans le projet.

Technologie[modifier | modifier le code]

Let's Encrypt est propriétaire d’un certificat racine RSA stocké sur un module matériel de sécurité qui n'est pas utilisé directement. Ce certificat est destiné à être remplacé ultérieurement par un certificat ECDSA qui sera utilisé pour signer deux certificats intermédiaires signés par l’autorité de certification IdenTrust (en). L’un d’entre eux sera utilisé pour signer les certificats délivrés, l’autre comme certificat de secours en cas de problème avec le premier. Les certificats Let's Encrypt peuvent normalement être validés et acceptés par défaut car le certificat IdenTrust sera pré-installé sur les navigateurs internet les plus connus. À long terme, il est prévu que les certificats Let's Encrypt soient pré-installés directement dans les applications.

Protocole[modifier | modifier le code]

Le protocole défi-réponse utilisé pour automatiser les inscriptions à cette nouvelle autorité de certification est appelé Automated Certificate Management Environment (ACME). Il implique plusieurs requêtes au serveur web sur le domaine couvert par le certificat. En fonction des réponses, le contrôle des inscrits sur le domaine est assuré (validation de domaine). Afin de réaliser cela, le client logiciel ACME déploie un serveur TLS spécial sur le serveur système qui reçoit des requêtes spéciales émises par le serveur de l'autorité de certificats ACME utilisant l'extension du protocole TLS « Server Name Indication ». Ce processus est seulement accepté pour le premier certificat délivré pour un domaine (Trust On First Use, TOFU). Après cela, une manière alternative de validation via un certificat existant est utilisé. Ainsi, si le contrôle sur un certificat existant est perdu, un certificat doit être acquis à travers une tierce partie afin de pouvoir obtenir un autre certificat Let's Encrypt.

Les processus de validation sont effectués à de multiples reprises sur des chemins réseaux séparés. La vérification des entrées DNS est réalisée de plusieurs points géographiques afin de rendre les attaques d’usurpation DNS plus difficiles à réaliser.

Les interactions de l’ACME sont basées sur l’échange de documents JSON sur des connexions HTTPS. Une ébauche des spécifications est disponible sur GitHub, et une version a été soumise à l’Internet Engineering Task Force comme proposition pour un standard internet[10].

Implémentation logicielle[modifier | modifier le code]

L’autorité de certification consiste en un logiciel appelé Boulder, écrit en Go, qui implémente la partie serveur du protocole ACME. Ce logiciel libre est publié sous la licence Mozilla Public License version 2[11]. Il fournit également une interface de programmation RESTful accessible à travers un canal chiffré TLS.

Un programme de gestion de certificats en Python et sous licence Apache appelé certbot s’installe sur le client (le serveur web d’un inscrit). Ce programme réclame le certificat, effectue le processus de validation de domaine, installe le certificat, configure le chiffrement HTTPS dans le serveur HTTP et dans un second temps, renouvelle le certificat. Après l'installation, l’exécution d'une simple commande suffit à obtenir l’installation d’un certificat valide. Des options additionnelles, comme l’agrafage OCSP ou HTTP Strict Transport Security, peuvent également être activées. Le paramétrage automatique ne s'effectue initialement qu'avec Apache et Nginx.

Histoire et événements[modifier | modifier le code]

Les racines de ce projet sont à trouver dans un projet porté par l'Electronic Frontier Foundation en coopération avec l'Université du Michigan et un projet indépendant de Mozilla qui combinèrent en Let's Encrypt. En 2014, l'organisation mère, l'ISRG était fondée. Le démarrage de Let's Encrypt fut annoncé le .

Le , le protocole ACME fut officiellement soumis à l'IETF en vue de sa standardisation. Le , l'ISRG et la Fondation Linux annoncèrent leur collaboration. Les certificats racine et intermédiaire furent générés au début juin.

Le , la date finale de lancement pour le service fut annoncée. Le premier certificat était attendu dans la semaine du , suivie d'une période de distribution partielle afin de s'assurer de la sécurité et de l'élasticité du service. La disponibilité générale du service était attendu aux alentours de la semaine du , si tout se passait comme prévu. Le , le calendrier de lancement fut amendé afin de disposer de plus de temps pour s'assurer de la sécurité du système et la stabilité, repoussant le premier certificat distribué à la semaine du .

Le , Let's Encrypt distribue son premier certificat destiné au domaine helloworld.letsencrypt.org. Le même jour, l'ISRG soumet son certificat racine à Mozilla, Microsoft, Google et Apple. Le , une signature croisée avec IdenTrust a été effectuée et les certificats sont désormais reconnus et validés par tous les navigateurs web[12]. Dans la semaine du , le service a été rendu disponible au public[13].

Le 30 septembre 2021, l'expiration planifiée d'un certificat racine "IdentTrust DST Root CA X3" provoque des problèmes d'accès internet sur des appareils non mis à jour (trop vieux, non supportés)[14].

Références[modifier | modifier le code]

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Let's Encrypt » (voir la liste des auteurs).
  1. « https://letsencrypt.org/2016/09/20/what-it-costs-to-run-lets-encrypt.html »
  2. « https://letsencrypt.org/2018/12/31/looking-forward-to-2019.html »
  3. (en) Sean Michael Kerner, « Let's Encrypt Effort Aims to Improve Internet Security », sur eweek.com, (consulté le )
  4. « We’ve now issued more than 10 million certificates. », sur Twitter, (consulté le )
  5. « Statistiques sur l'internet français. udomo.fr », sur www.udomo.fr (consulté le )
  6. (en) « Censys », sur Censys (consulté le )
  7. (de) Fabian A. Scherschel, « Let's Encrypt : Mozilla und die EFF mischen den CA-Markt auf », sur heise.de, (consulté le ).
  8. Responsable du site Debian, webmaster@debian.org, « Debian -- Détails du paquet certbot dans stretch », sur packages.debian.org (consulté le )
  9. « Getting Started - Let's Encrypt - Free SSL/TLS Certificates », sur letsencrypt.org (consulté le )
  10. (en) « EFF, Mozilla back new certificate authority that will offer free SSL certificates : The new CA is called Let's Encrypt and its goal is to encourage the widespread adoption of SSL/TLS on the Internet », sur arnnet.com.au (consulté le ).
  11. (en) Jakub Warmuz, « letsencrypt/boulder : LICENSE.txt », sur github.com, (consulté le ).
  12. (en) Peter Eckersley, « Let's Encrypt Enters Private Beta », sur le site de l’Electronic Frontier Foundation, (consulté le ).
  13. Vincent Hermann, « Certificats SSL gratuits : Let's Encrypt avance bien, une bêta publique le mois prochain », sur nextinpact.com, (consulté le ).
  14. Guillaume Bardou et Linternaute.com, « Panne internet : qui a été touché ce jeudi 30 septembre ? », sur www.linternaute.com (consulté le )

Annexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]