Let’s Encrypt et langages sécurisés : les travaux de l’ISRG

Dans son rapport annuel, l’ISRG aborde son projet phare Let’s Encrypt. Mais aussi le projet Prossimo, axé sur les langages sécurisés.

Les langages sécurisés, prochain grand saut dans le domaine de la programmation ? Ainsi nous faisions-nous l’écho, mi-novembre, d’une note d’information de la NSA. L’agence américaine invitait à adopter ces langages ; avec, en première ligne, Rust.

L’ISRG (Internet Security Research Group) en a fait un de ses grands axes de travail, sous la bannière Prossimo. Lancé en 2020, le projet a abouti à l’intégration, en octobre dernier, de Rust dans le noyau Linux. Sur sa feuille de route figurent aussi des implémentations de TLS (Rustls), de NTP (NTPd-rs) et d’un résolveur DNS récursif. Il est aussi question de réécrire des pilotes. En la matière, la vitrine actuelle est un driver NVMe.

Prossimo représente environ 12 % des dépenses de l’ISRG. Soit près de cinq fois moins que le projet phare de l’organisation à but non lucratif : Let’s Encrypt. Au 1er novembre 2022, il servait environ 309 millions de sites par l’intermédiaire de 239 millions de certificats actifs.

dépenses ISRG Let's Encrypt

Pour valider ces certificats, Let’s Encrypt utilise OCSP (Online Certificate Status Protocol). Un déploiement Redis – finalisé cette année – lui a permis de mettre en cache l’ensemble des réponses aux requêtes (de l’ordre de 100 000 par seconde sur le périmètre actuellement couvert).

Dans son rapport annuel, l’ISRG met en lumière deux utilisateurs de Let’s Encrypt. D’un côté, MongoDB Atlas. De l’autre, OVHcloud, qui l’exploite depuis 2016… et qui provisionne aujourd’hui « plus de 10 000 » certificats TLS par jour.

Révocation des certificats : Let’s Encrypt s’adapte

Historiquement, Let’s Encrypt utilisait aussi OCSP pour la révocation des certificats. Un choix fait en alternative à la lourdeur du mécanisme « traditionnel » des listes de révocation : avec OCSP, pour vérifier le statut d’un certificat, le navigateur n’a pas besoin de récupérer une liste, il lui suffit de joindre l’autorité de certification.

Problème : les infrastructures OCSP peuvent tomber. Et la plupart des navigateurs considèrent que l’absence de réponse signifie « certificat valide ». Il est, dans l’absolu, possible de conserver les réponses en cache jusqu’à une semaine. Mais au risque de continuer à exploiter des certificats obsolètes.

Une approche intermédiaire s’est développée : des listes propriétaires. Spécifiques à chaque navigateur, elles résultent de l’agrégation – et de la compression – de l’ensemble des listes qu’émettent les autorités de certification. Il est possible de les actualiser à court intervalle dans le cadre des mises à jour des navigateurs.

Let’s Encrypt a dû adapter son infrastructure pour prendre en charge cette approche qu’Apple et Mozilla, entre autres, ont commencé à imposer. Avec 200 millions de certificats actifs, la liste ferait plus de 8 Go. Il a donc été décider de la diviser en 128 fragments, chacun traitable comme une miniliste avec périmètre constant.

Illustration principale © Timofey_123 – Shutterstock