Entreprise Mozilla sur le dĂ©but des tests dans les versions nocturnes de Firefox du nouveau mĂ©canisme de dĂ©termination des certificats rĂ©voquĂ©s â . CRLite permet d'organiser une vĂ©rification efficace des rĂ©vocations de certificats Ă partir d'une base de donnĂ©es hĂ©bergĂ©e sur le systĂšme de l'utilisateur. La mise en Ćuvre de CRLite dĂ©veloppĂ©e par Mozilla est sous licence libre MPL 2.0. Le code pour gĂ©nĂ©rer la base de donnĂ©es et les composants serveurs sont Ă©crits en et Go. Les parties client ajoutĂ©es Ă Firefox pour lire les donnĂ©es de la base de donnĂ©es sont Ă©crites en Rust.
La vĂ©rification de certificats encore utilisĂ©e, faisant appel Ă des services externes basĂ©s sur le protocole (Online Certificate Status Protocol) nĂ©cessite un accĂšs rĂ©seau garanti, engendrant un dĂ©lai notable dans le traitement de la demande (en moyenne 350 ms) et prĂ©sente des problĂšmes de confidentialitĂ© (les serveurs OCSP qui rĂ©pondent aux requĂȘtes reçoivent des informations concernant des certificats spĂ©cifiques, permettant de dĂ©duire quels sites l'utilisateur visite). Il existe Ă©galement la possibilitĂ© d'une vĂ©rification locale via des listes (Certificate Revocation List), mais l'inconvĂ©nient de cette mĂ©thode est la taille Ă©norme des donnĂ©es Ă tĂ©lĂ©charger â actuellement, la base de donnĂ©es des certificats rĂ©voquĂ©s occupe environ 300 Mo et continue de croĂźtre.
Pour bloquer les certificats compromis et rĂ©voquĂ©s par les autoritĂ©s de certification, Firefox utilise depuis 2015 une liste noire centralisĂ©e en combinaison avec un service pour dĂ©tecter une Ă©ventuelle activitĂ© malveillante. OneCRL, tout comme dans Chrome, agit comme un lien intermĂ©diaire qui agrĂšge les listes CRL des autoritĂ©s de certification et fournit un service OCSP centralisĂ© pour vĂ©rifier les certificats rĂ©voquĂ©s, permettant de ne pas envoyer de requĂȘtes directement aux autoritĂ©s de certification. MalgrĂ© un important travail effectuĂ© pour amĂ©liorer la fiabilitĂ© du service de vĂ©rification en ligne des certificats, les donnĂ©es de tĂ©lĂ©mĂ©trie montrent que plus de 7 % des requĂȘtes OCSP se terminent par un timeout (il y a quelques annĂ©es, ce chiffre Ă©tait de 15 %).
Par dĂ©faut, en cas d'impossibilitĂ© de vĂ©rifier via OCSP, le navigateur considĂšre le certificat comme valide. Le service peut ĂȘtre inopĂ©rant en raison de problĂšmes rĂ©seau ou de restrictions sur les rĂ©seaux internes, ou ĂȘtre bloquĂ© par des attaquants â pour contourner la vĂ©rification OCSP lors d'une attaque MITM, il suffit de bloquer l'accĂšs au service de vĂ©rification. En partie pour Ă©viter de telles attaques, une technique a Ă©tĂ© mise en Ćuvre , qui permet d'interprĂ©ter l'erreur de requĂȘte OCSP ou l'indisponibilitĂ© d'OCSP comme un problĂšme liĂ© au certificat, mais cette option est facultative et nĂ©cessite une configuration spĂ©ciale du certificat.
CRLite permet de compacter toutes les informations sur tous les certificats révoqués dans une structure facilement actualisable, de seulement 1 Mo, ce qui permet de conserver l'intégralité de la base CRL cÎté client.
Le navigateur pourra synchroniser quotidiennement sa copie des données sur les certificats révoqués, et cette base de données sera disponible dans toutes les conditions.
CRLite regroupe les informations provenant de , un registre public de tous les certificats émis et révoqués, et des résultats d'analyse des certificats sur Internet (différents listes CRL sont collectées auprÚs des autorités de certification et les informations sur tous les certificats connus sont agrégées). Les données sont empaquetées à l'aide de filtres , une structure probabiliste qui permet une fausse identification d'un élément manquant, mais exclut le non-reconnaissance d'un élément existant (c'est-à -dire qu'avec une certaine probabilité, il peut y avoir un faux positif pour un certificat valide, mais les certificats révoqués seront assurément détectés).
Pour Ă©viter les faux positifs dans CRLite, des niveaux de filtrage correctifs supplĂ©mentaires ont Ă©tĂ© introduits. AprĂšs la gĂ©nĂ©ration de la structure, toutes les entrĂ©es d'origine sont parcourues pour identifier les faux positifs survenus. Ă partir des rĂ©sultats de cette vĂ©rification, une structure supplĂ©mentaire est créée, qui est appliquĂ©e en cascade sur la premiĂšre et corrige les faux positifs dĂ©tectĂ©s. L'opĂ©ration est rĂ©pĂ©tĂ©e jusqu'Ă ce que les faux positifs soient entiĂšrement Ă©liminĂ©s lors de la vĂ©rification de contrĂŽle. En gĂ©nĂ©ral, la crĂ©ation de 7 Ă 10 couches suffit pour couvrir toutes les donnĂ©es. Ătant donnĂ© que l'Ă©tat de la base de donnĂ©es, en raison de la synchronisation pĂ©riodique, est lĂ©gĂšrement en retard par rapport Ă l'Ă©tat actuel de la CRL, la vĂ©rification des nouveaux certificats Ă©mis aprĂšs la derniĂšre mise Ă jour de la base de donnĂ©es CRLite se fait Ă l'aide du protocole OCSP, y compris en utilisant la technique (la rĂ©ponse OCSP certifiĂ©e par l'autoritĂ© de certification est transmise par le serveur qui gĂšre le site lors de l'Ă©tablissement de la connexion TLS).
Ă l'aide des filtres de Bloom, l'Ă©chantillon de dĂ©cembre des donnĂ©es de WebPKI, couvrant 100 millions de certificats actifs et 750 000 certificats rĂ©voquĂ©s, a pu ĂȘtre empaquetĂ© dans une structure de 1,3 Mo. Le processus de gĂ©nĂ©ration de la structure est assez gourmand en ressources, mais il est effectuĂ© sur le serveur de Mozilla, et l'utilisateur reçoit une mise Ă jour dĂ©jĂ prĂȘte. Par exemple, sous forme binaire, les donnĂ©es sources utilisĂ©es pour la gĂ©nĂ©ration nĂ©cessitent environ 16 Go de mĂ©moire lorsqu'elles sont stockĂ©es dans une base de donnĂ©es Redis, et sous forme hexadĂ©cimale, le dump de tous les numĂ©ros de sĂ©rie des certificats occupe environ 6,7 Go. Le processus d'agrĂ©gation de tous les certificats rĂ©voquĂ©s et actifs prend environ 40 minutes, et le processus de gĂ©nĂ©ration de la structure empaquetĂ©e basĂ©e sur le filtre de Bloom nĂ©cessite encore 20 minutes.
Actuellement, Mozilla assure la mise Ă jour de la base de donnĂ©es CRLite quatre fois par jour (toutes les mises Ă jour ne sont pas fournies aux clients). La gĂ©nĂ©ration de mises Ă jour delta n'est pas encore mise en Ćuvre â l'utilisation de bsdiff4, qui est utilisĂ© pour crĂ©er des mises Ă jour delta des versions, ne fournit pas l'efficacitĂ© requise pour CRLite et les mises Ă jour deviennent injustement volumineuses. Pour remĂ©dier Ă ce problĂšme, il est prĂ©vu de retravailler le format de stockage de la structure afin d'Ă©liminer les reconstructions inutiles et la suppression des couches.
CRLite fonctionne actuellement dans Firefox en mode passif et est utilisĂ© en parallĂšle avec OCSP pour accumuler des statistiques sur la prĂ©cision de son fonctionnement. CRLite peut ĂȘtre activĂ© en mode de vĂ©rification principale, pour cela, il faut dĂ©finir le paramĂštre security.pki.crlite_mode = 2 dans about:config.
Source : opennet.ru
