Norme SNI cryptée implémentée dans Firefox Nightly

Firefox a été le premier navigateur à implémenter le chiffrement SNI (TLS Server Name Indication) . Le support ESNI a été introduit dans la dernière version de Firefox Nightly, sur laquelle toutes les innovations sont intégrées avant d'être ajoutées à la branche principale.

L'importance de cette norme a été discutée il y a un mois par le fournisseur CloudFare CDN. En bref, ESNI crypte les informations sur le domaine auquel vous envoyez la demande. Dans le HTTPS standard, les en-têtes avec des noms de domaine ne sont pas chiffrés et peuvent être consultés par le fournisseur ou une autre "personne au milieu". Maintenant, il ne voit que l'adresse IP. Étant donné que des centaines de domaines peuvent être situés sur une seule adresse IP sur Internet moderne, ESNI masque efficacement les informations sur le domaine auquel un utilisateur se connecte.

Ainsi, le blocage par nom cesse de fonctionner et la censure d'Internet devient très compliquée. Les censeurs devront bloquer les adresses IP, ce qui est une pratique douteuse. Un tel blocage peut affecter des sites non liés et un service bloqué peut facilement (automatiquement) basculer vers une autre adresse IP.

Pourquoi les noms d'hôtes brillent-ils dans une SNI TLS régulière? Le fait est qu'avant de commencer le chiffrement, le serveur doit savoir à quel domaine le client accède afin de présenter le certificat nécessaire. Pour cette raison, le nom d'hôte est transmis en texte brut (sous l'illustration du blog Cloudflare ).



Dans SNI chiffré (ESNI), ce problème est résolu comme suit: le client prend la clé publique du serveur de DNS et chiffre toutes les données avec lui jusqu'à ce que la session TLS soit établie.


La prise en charge du navigateur pour Firefox Nightly signifie que ESNI fonctionnera avec tous les sites / fournisseurs qui le prennent en charge.

Les développeurs de Mozilla expliquent qu'il existe quatre façons principales de divulguer votre historique de navigation:

  1. Message de certificat TLS
  2. Résolution de nom DNS
  3. Adresse IP du serveur
  4. Indication du nom du serveur TLS.

À ce jour, ils ont bien progressé dans la fermeture des deux premiers canaux de fuite: la nouvelle norme TLS 1.3 crypte le certificat de serveur par défaut (canal 1), et au cours des derniers mois, Mozilla a étudié l' utilisation de DNS sur HTTPS pour protéger le trafic DNS (canal 2). Les résultats des tests ne sont pas mauvais, et dans les prochains mois, la fonction sera déployée pour tous les utilisateurs de Firefox. L'adresse IP reste un problème, mais dans de nombreux cas, plusieurs sites partagent la même adresse IP, donc le principal canal de fuite est SNI.

À un moment donné, la technologie SNI (Server Name Indication) a commencé à être utilisée précisément parce que plusieurs hôtes sont situés sur la même adresse IP. Dans ce cas, le champ SNI indique au serveur à quel hôte vous essayez de vous connecter, lui permettant de sélectionner le bon certificat. En d'autres termes, SNI contribue à garantir le fonctionnement de l'hébergement TLS à grande échelle. Autrement dit, cette fonction a été introduite pour des raisons de sécurité, et maintenant nous devons la traiter comme un canal de fuite de données.

Le problème SNI était connu depuis longtemps, écrivent les développeurs de Mozilla, et il était clair que ce champ devait être chiffré. Mais chaque conception qu'ils ont essayée comprenait un compromis sur les performances. Il y avait un autre inconvénient important: le fait qu'un site particulier passait à ESNI était un signal qu'il "avait quelque chose à cacher", c'est-à-dire que les censeurs avaient la possibilité de filtrer trivialement le trafic par ESNI. Finalement, il a été décidé de publier la norme TLS 1.3 sans ESNI.

Ce n'est qu'au début de 2018, les développeurs ont réalisé qu'il y avait une assez bonne option: les grands réseaux de distribution de contenu (CDN) hébergent de nombreux sites sur les mêmes serveurs physiques. S'ils acceptent de transférer tous les clients à ESNI en même temps , alors soudainement ESNI cesse d'être un signal utile pour un attaquant. Ainsi, il est devenu possible d'implémenter ESNI dans TLS 1.3, en personnalisant en masse de nombreux sites sur un ensemble de serveurs existant.

ESNI est une technologie complètement nouvelle et Firefox est le premier navigateur à l'implémenter. Pour l'activer dans Firefox Nightly, vous devez effectuer les étapes suivantes:

  1. Assurez-vous que vous avez activé DNS sur HTTPS (DoH):
    • about:config
    • définissez network.trr.mode sur 2

    • définissez network.trr.uri sur le serveur DoH (par exemple, https://mozilla.cloudflare-dns.com/dns-query ).

    • about:config
    • définissez network.security.esni.enabled sur true


Cela devrait automatiquement activer ESNI pour tout site qui le prend en charge. Pour le moment, parmi les gros hébergeurs et CDN, ce n'est que Cloudflare, mais les développeurs de Firefox espèrent que d'autres fournisseurs se connecteront bientôt. Vous pouvez vérifier le cryptage par ce lien .



Au cours des prochains mois, Mozilla testera la manière dont ESNI interagit avec différents types de pare-feu et d'autres périphériques réseau. Si vous avez activé le cryptage et que quelque chose s'est cassé - veuillez en informer les développeurs via le traqueur de bogues.





Source: https://habr.com/ru/post/fr427563/


All Articles