Let's Encrypt

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Let's Encrypt

Création 2014
Fondateurs EFF, Mozilla, U-M
Slogan Encrypt the entire web
Siège social San Francisco Voir et modifier les données sur Wikidata
Activité Autorité de certification
Produits X.509
Société mère Internet Security Research Group (en)
Site web letsencrypt.orgVoir et modifier les données sur Wikidata

Let's Encrypt (abrégé LE) est une autorité de certification lancée le 3 décembre 2015 (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[1]. En septembre 2016, plus de 10 millions de certificats ont été délivrés[2].

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

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[4] 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, l’inclusion d'un paquet logiciel dans les dépôts logiciel Debian est en cours[5]. Toutefois le paquet est disponible sur GitHub[6].

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 OVH. D'autres partenaires, tels que l'autorité de certification IdenTrust, l'Université du Michigan (U-M), la Stanford Law School, la Fondation Linux, l'entreprise Free[7], 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 (en) (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 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[8].

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 Mozilla Public License version 2[9]. 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 18 novembre 2014.

Le 28 janvier 2015, le protocole ACME fut officiellement soumis à l'IETF en vue de sa standardisation. Le 9 avril 2015, 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 16 juin, le date finale de lancement pour le service fut annoncée. Le premier certificat était attendu dans la semaine du 27 juillet 2015, 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 14 septembre 2015, si tout se passait comme prévu. Le 7 août 2015, 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 7 septembre 2015.

Le 14 septembre 2015, 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 19 octobre 2015, 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[10]. Dans la semaine du 16 novembre 2015, le service a été rendu disponible au public[11].

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. (en) Sean Michael Kerner, « Let's Encrypt Effort Aims to Improve Internet Security », sur eweek.com, (consulté le 26 septembre 2015)
  2. « We’ve now issued more than 10 million certificates. », sur Twitter, (consulté le 11 septembre 2016)
  3. « Statistiques sur l'internet français. udomo.fr », sur www.udomo.fr (consulté le 12 février 2017)
  4. (de) Fabian A. Scherschel, « Let's Encrypt : Mozilla und die EFF mischen den CA-Markt auf », sur heise.de, (consulté le 26 septembre 2015).
  5. (en) Francois Marier et Franz Schrober, « Debian Bug report logs : ITP: letsencrypt-- Let's Encrypt client that can update Apache configurations », sur bugs.debian.org, (consulté le 26 septembre 2015).
  6. « Getting Started - Let's Encrypt - Free SSL/TLS Certificates », sur letsencrypt.org (consulté le 5 juin 2016)
  7. « Current Sponsors - Let's Encrypt - Free SSL/TLS Certificates », sur letsencrypt.org (consulté le 28 juillet 2016)
  8. (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 26 septembre 2015).
  9. (en) Jakub Warmuz, « letsencrypt/boulder : LICENSE.txt », sur github.com, (consulté le 26 septembre 2015).
  10. (en) Peter Eckersley, « Let's Encrypt Enters Private Beta », sur le site de l’Electronic Frontier Foundation, (consulté le 22 octobre 2015).
  11. Vincent Hermann, « Certificats SSL gratuits : Let's Encrypt avance bien, une bêta publique le mois prochain », sur nextinpact.com, (consulté le 22 octobre 2015).

Annexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]