
Autrefois, les certificats expiraient souvent car ils devaient ĂȘtre mis Ă jour manuellement. Les gens oubliaient simplement de le faire. Avec l'apparition de Letâs Encrypt et de procĂ©dures de mise Ă jour automatiques, ce problĂšme semblait rĂ©solu. Cependant, montre qu'elle est en rĂ©alitĂ© toujours d'actualitĂ©. Malheureusement, les certificats continuent d'expirer.
Si quelqu'un a raté cette histoire, à minuit le 4 mai 2019, presque toutes les extensions Firefox ont soudainement cessé de fonctionner.
Il s'est avéré qu'une panne massive était due au fait que Mozilla , utilisé pour signer les extensions. Par conséquent, elles étaient marquées comme « non valides » et ne réussissaient pas la vérification (). Sur les forums, comme solution de contournement, il a été recommandé de désactiver la vérification des signatures des extensions dans about:config ou de modifier l'heure systÚme.
Mozilla a rapidement publié un patch pour Firefox 66.0.4, qui résout le problÚme avec le certificat non valide, et toutes les extensions sont revenues à la normale. Les développeurs recommandent de l'installer et de solutions de contournement pour éviter la vérification des signatures, car elles pourraient entrer en conflit avec le patch.
Néanmoins, cette histoire montre encore une fois que l'expiration des certificats reste un problÚme d'actualité aujourd'hui.
Dans ce contexte, il est intĂ©ressant de regarder la maniĂšre assez originale dont les dĂ©veloppeurs du protocole ont abordĂ© cette tĂąche. Leur solution peut ĂȘtre divisĂ©e en deux parties. PremiĂšrement, il s'agit de certificats Ă court terme. DeuxiĂšmement, d'avertir les utilisateurs de l'expiration imminente des certificats Ă long terme.
DNSCrypt
DNSCrypt est un protocole de cryptage du trafic DNS. Il protĂšge les communications DNS contre les interceptions et les attaques de type MiTM, et permet Ă©galement de contourner les blocages au niveau des requĂȘtes DNS.
Le protocole encapsule le trafic DNS entre le client et le serveur dans une structure cryptographique, opĂ©rant sur les protocoles de transport UDP et TCP. Pour l'utiliser, le client et le rĂ©solveur DNS doivent prendre en charge DNSCrypt. Par exemple, depuis mars 2016, Yandex a intĂ©grĂ© ce protocole Ă ses serveurs DNS et Ă son navigateur. Certains autres fournisseurs, y compris Google et Cloudflare, ont Ă©galement annoncĂ© leur prise en charge. Malheureusement, ils ne sont pas trĂšs nombreux (152 serveurs DNS publics sont listĂ©s sur le site officiel). Mais le programme peut ĂȘtre installĂ© manuellement sur des clients sous Linux, Windows et MacOS. Il existe aussi .

Comment fonctionne DNSCrypt ? En bref, le client prend la clĂ© publique du fournisseur choisi et l'utilise pour vĂ©rifier ses certificats. Ă ce niveau, il y a des clĂ©s publiques Ă court terme pour la session et un identifiant de suite de chiffrement. Il est recommandĂ© aux clients de gĂ©nĂ©rer une nouvelle clĂ© pour chaque requĂȘte, et aux serveurs de changer leurs clĂ©s toutes les 24 heures. Lors des Ă©changes de clĂ©s, l'algorithme X25519 est utilisĂ©, pour la signature â EdDSA, pour le chiffrement par blocs â XSalsa20-Poly1305 ou XChaCha20-Poly1305.
L'un des dĂ©veloppeurs du protocole, Frank Denis , a indiquĂ© que le changement automatique toutes les 24 heures rĂ©solvait le problĂšme des certificats expirĂ©s. En principe, le client de rĂ©fĂ©rence dnscrypt-proxy accepte des certificats de n'importe quelle durĂ©e de validitĂ©, mais Ă©met un avertissement « La pĂ©riode des clĂ©s dnscrypt-proxy pour ce serveur est trop longue » si elle est valide depuis plus de 24 heures. En mĂȘme temps, une image Docker a Ă©tĂ© publiĂ©e, dans laquelle un changement rapide de clĂ©s (et de certificats) a Ă©tĂ© implĂ©mentĂ©.
Tout d'abord, c'est extrĂȘmement utile pour la sĂ©curitĂ© : si le serveur est compromis ou si la clĂ© est divulguĂ©e, le trafic d'hier ne peut pas ĂȘtre dĂ©chiffrĂ©. La clĂ© a dĂ©jĂ changĂ©. Cela posera probablement un problĂšme pour l'application de la « loi Yarovaya », qui oblige les fournisseurs Ă stocker tout le trafic, y compris le trafic chiffrĂ©. On suppose qu'il sera possible de le dĂ©chiffrer par la suite en demandant la clĂ© au site. Mais dans ce cas, le site ne pourra tout simplement pas la fournir, car il utilise des clĂ©s temporaires, supprimant les anciennes.
Mais surtout, écrit Denis, les clés à court terme obligent les serveurs à configurer l'automatisation dÚs le premier jour. Si le serveur se connecte au réseau et que les scripts de changement de clés ne sont pas configurés ou ne fonctionnent pas, cela sera immédiatement détecté.
Lorsque l'automatisation change les clés tous les quelques années, on ne peut pas compter dessus, et les gens peuvent oublier l'expiration du certificat. Avec un changement quotidien des clés, cela sera détecté instantanément.
En revanche, si l'automatisation est bien configurĂ©e, peu importe la frĂ©quence de changement des clĂ©s : chaque annĂ©e, chaque trimestre ou trois fois par jour. Si ça fonctionne plus de 24 heures, cela continuera Ă fonctionner indĂ©finiment, Ă©crit Frank Denis. Selon lui, la recommandation de changer les clĂ©s quotidiennement dans la deuxiĂšme version du protocole, accompagnĂ©e d'une image Docker qui le met en Ćuvre, a efficacement rĂ©duit le nombre de serveurs avec des certificats expirĂ©s tout en amĂ©liorant la sĂ©curitĂ©.
Toutefois, certains fournisseurs ont décidé pour des raisons techniques d'établir une durée de vie du certificat supérieure à 24 heures. Ce problÚme a été essentiellement résolu par quelques lignes de code dans dnscrypt-proxy : les utilisateurs reçoivent un avertissement d'information 30 jours avant l'expiration du certificat, un autre message plus sérieux 7 jours avant l'expiration et un message critique si le certificat expire dans moins de 24 heures. Cela ne concerne que les certificats ayant à l'origine une longue durée de vie.
De tels messages donnent aux utilisateurs l'opportunité d'informer les opérateurs DNS de l'imminente expiration du certificat avant qu'il ne soit trop tard.
Peut-ĂȘtre que si tous les utilisateurs de Firefox avaient reçu un tel message, quelqu'un aurait probablement informĂ© les dĂ©veloppeurs et ceux-ci auraient Ă©vitĂ© l'expiration du certificat. « Je ne me souviens d'aucun serveur DNSCrypt de la liste des serveurs DNS publics dont le certificat a expirĂ© au cours des deux ou trois derniĂšres annĂ©es », Ă©crit Frank Denis. Dans tous les cas, il vaut probablement mieux d'abord avertir les utilisateurs plutĂŽt que de dĂ©sactiver les extensions sans avertissement.
Source : habr.com
