Let's Encrypt revoit ses certificats, une solution trouvée pour les vieilles versions d'Android

ECDSA en ligne de mire
Internet 6 min
Let's Encrypt revoit ses certificats, une solution trouvée pour les vieilles versions d'Android

Alors que sa chaîne de certification évolue, Let's Encrypt doit faire face à la faible mise à jour de certains smartphones, notamment ceux sous Android. L'équipe évoque son travail et ses défis, ainsi que la manière dont elle s'est adaptée dans le cas de l'OS mobile de Google.

Depuis quelques mois, l'équipe de Let's Encrypt évoque l'évolution de sa chaîne de certification, passée ou à venir. En cinq ans, l'équipe a en effet parcouru un long chemin, disposant désormais de son propre certificat racine (ISRG Root X1, RSA 4 096 bits, valide jusqu'en 2035) reconnu par la majorité des systèmes et navigateurs.

Mais elle fait aussi face à l'expiration de ses premiers certificats intermédiaires Let's Encrypt Authority X1 et X2. X3 et X4 suivront en 2021. Deux autres ont donc été créés : Let's Encrypt R3 et R4. Comme leurs prédécesseurs, ils sont valides pour cinq ans et reposent sur RSA 2 048 bits. 

Certificats racines : une question de confiance

Pour rappel, le certificat racine est celui qui doit être protégé à tout prix, servant à faire reconnaître ceux qui en sont issus par les systèmes d'exploitation et autres navigateurs. Pour cela, il doit y être intégré et garder leur confiance, c'est le défi principal d'une autorité de certification. Ce qui avait manqué à un projet comme CAcert.

Pour éviter cet écueil, Let's Encrypt a compté à ses débuts sur IdenTrust, qui a donné toute sa légitimité au projet. ISRG Root X1 était en effet « cross-signed » par le certificat racine DST Root CA X3 de l'entreprise, lui permettant d'être considéré comme valide par des systèmes et applications où il n'était pas encore intégré.

Une étape qui n'est plus nécessaire, tous les grands acteurs reconnaissants désormais ISRG Root X1 par lui-même. 

Let's Encrypt s'émancipe et passe de RSA à ECDSA

Les certificats intermédiaires peuvent plus facilement être révoqués et ont une durée de vie plus courte. Ce sont eux qui, concrètement, servent à générer les certificats Let's Encrypt pour chaque domaine en faisant la demande.

Comme nous l'avons évoqué précédemment, Let's Encrypt Authority X1 et X2 ont expiré en 2020, X3 et X4 suivront le même chemin l'année prochaine et seront peu à peu remplacés par R3 et R4, qui assureront le service jusqu'en 2026. Mais c'est à une autre migration, plus importante, que se prépare l'équipe. 

Tout d'abord le passage à ISRG Root X2, un nouveau certificat racine qui va progressivement être poussé pour une intégration aux différents systèmes et navigateurs. D'ici là, il devra lui aussi être « cross-signed ». Mais par ISRG Root X1 cette fois. Puisqu'il est désormais suffisamment légitime, le soutien d'IdenTrust n'est plus nécessaire.

L'Internet Security Research Group (ISRG) qui est à l'origine de Let's Encrypt remercie l'entreprise pour son soutien pendant toutes ces années, mais se félicite de cette émancipation qui lui permet d'être plus autonome. La signature croisée d'ISRG Root X1 se terminant le 17 mars 2021, le projet a évolué comme espéré, avant expiration de ce délai.

Let's Encrypt Août 2020Let's Encrypt Septembre 2020
L'évolution de la chaîne de certification de Let's Encrypt depuis la rentrée

Ce n'est pas la seule bonne nouvelle qu'ISRG Root X2 porte en lui : valide jusqu'en 2040, il repose sur une paire de clés exploitant les courbes elliptiques (ECDSA P-384). Il est à l'origine de deux intermédiaires, Let's Encrypt E1 et E2, basés eux aussi sur ECDSA. L'avantage premier mis en avant est la taille réduite des clés pour un même niveau de sécurité. Un autre géant de la sécurité en ligne, Cloudflare, a d'ailleurs fait un choix similaire.

Pour Let's Encrypt, l'intérêt est aussi dans la taille des certificats. On passe ainsi à 48 octets pour la clé publique, 96 octets pour la signature, contre 256/256 octets dans le cas de RSA 2048 bits qui était précédemment utilisé. Un gain de bande passante énorme pour l'autorité mais aussi pour les utilisateurs de ses certificats.

Une économie de 120 octets a également été rendue possible par la réduction des noms et informations fournies avec le certificat. Let’s Encrypt Authority X3 est par exemple remplacé par R3, Let's Encrypt n'étant plus précisé que dans le nom de l'organisation émettrice du certificat. Certaines URL ont été raccourcies, d'autres supprimées. 

Le cas Android

Début novembre, l'ISRG alertait : la signature croisée par le certificat DST Root X3 d'IdenTrust expire en mars, ce dernier n'étant de toute façon plus valable au 1er septembre 2021. Impossible de tirer la corde au-delà du 29 septembre prochain, donc. Si tout avait été anticipé, un cas continuait de poser problème : Android.

Car une fois la signature croisée expirée, tous les systèmes ne reconnaissant pas nativement le certificat racine ISRG Root X1, qui n'ont pas été mis à jour depuis 2016, verront les certificats Let's Encrypt comme non légitimes. Or, c'est le cas de toute version du système mobile de Google antérieure à la 7.1.1, soit un tiers du parc encore actif.

L'équipe, qui espérait pouvoir se passer de la signature croisée d'IdenTrust pour ses certificats dès la rentrée, avait ainsi décidé de retarder le projet au 11 janvier 2021, le temps de trouver une solution. Un premier pas vient d'être franchi : IndenTrust a accepté de prolonger sa signature croisée d'ISRG Root X1 avec DST Root CA X3 pour trois ans.

Let's Encrypt AndroidLet's Encrypt Android
La distribution des versions d'Android, l'évolution de la chaîne Let's Encrypt

« Une solution rendue possible par le fait qu'Android ne considère pas intentionnellement les dates d'expiration comme des marques de confiance ». Ainsi, même expiré le certificat racine d'IdenTrust étant reconnu par le système, il peut encore effectuer de telles signatures. Un procédé qui a de quoi effrayer, mais validé par les équipes de conformité et des audits de la société et de l'ISRG, qui promet de revenir sur le sujet plus en détail sous peu.

Pour les utilisateurs, rien ne devrait donc changer. Par défaut, les certificats qui seront émis par l'intermédiaire R3 à compter de fin janvier/début février seront par défaut signés par ISRG Root X1, lui-même signé par DST Root CA X3, reconnu par les vieilles versions d'Android. Une solution moins efficace et économe en données, mais qui a l'avantage de fonctionner pour le plus grand nombre. En espérant qu'Android 7 soit peu utilisé en 2024.

Les clients permettant la création de certificats Let's Encrypt reposant sur le protocole ACME pourront sélectionner une chaîne de certification alternative, reposant uniquement sur R3 signé par ISRG Root X1. Une petite FAQ a été mise en ligne ici, l'équipe renvoyant vers son forum pour toute question complémentaire.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !