Doh en images

Les menaces à la vie privée et à la sécurité sur Internet deviennent de plus en plus graves. Chez Mozilla, nous les suivons de près. Nous considérons qu'il est de notre devoir de tout faire pour protéger les utilisateurs de Firefox et leurs données.

Nous nous inquiétons des entreprises et des organisations qui collectent et vendent secrètement des données utilisateur. Par conséquent, nous avons ajouté une protection contre le suivi et créé une extension de conteneur Facebook . D'autres mesures de protection apparaîtront dans les prochains mois.



Nous ajoutons maintenant deux autres technologies à la liste:

  • HTTPS DNS est la nouvelle norme IETF que nous avons participé au développement
  • Trusted Recursive Resolver - un nouveau moyen sécurisé pour résoudre DNS, fourni en conjonction avec Cloudflare

Grâce à ces deux initiatives, les fuites de données qui font partie du système des noms de domaine depuis sa création il y a 35 ans sont éliminées. Et nous avons besoin de votre aide pour les tests. Voyons comment le DNS HTTPS et le résolveur récursif de confiance protègent nos utilisateurs.

Mais d'abord, voyons comment les pages Web sont transmises sur Internet.

Si vous savez déjà comment DNS et HTTPS fonctionnent, vous pouvez passer au sujet de la façon dont DNS aide via HTTPS .

Cours abrégé HTTP


Lorsque les gens expliquent comment un navigateur charge une page Web, ils l'expliquent généralement comme suit:

  1. Votre navigateur fait une demande GET au serveur.
  2. Le serveur envoie une réponse, qui est un fichier contenant du HTML.



Ce système est appelé HTTP.

Mais ce schéma est trop simplifié. Votre navigateur ne parle pas directement au serveur. Probablement parce qu'ils ne sont pas proches les uns des autres.

Un serveur peut être à des milliers de kilomètres. Et il n'y a probablement pas de connexion directe entre votre ordinateur et le serveur.



Ainsi, avant que la demande ne parvienne du navigateur au serveur, elle passera par plusieurs mains. Il en va de même pour la réponse.

Je pense à cela comme des écoliers se passant des notes dans la classe. Dehors, la note indique à qui elle est destinée. L'enfant qui a écrit la note la remettra à un voisin. Ensuite, l'enfant suivant le transmet à l'un des voisins - probablement pas au destinataire final, mais à quelqu'un qui est dans la bonne direction.


- Psst ... passe ça à Sandy

Le problème est que n'importe qui peut ouvrir la note et la lire. Et il n'y a aucun moyen de savoir à l'avance dans quel sens la note ira, donc on ne sait pas quelles personnes y auront accès.

Cela peut être entre les mains de personnes qui feront des choses nuisibles ...

Par exemple, ils partageront le contenu d'une note avec tout le monde.


- Oh, c'est juteux ... Salut les gens! Danny est tombé amoureux de Sandy!

Ou changez la réponse.


"Tu m'aimes aussi?"
- Hehe, je vais me moquer de lui et écrire "Non" ...

Pour résoudre ces problèmes, une nouvelle version sécurisée de HTTP a été créée. Cela s'appelle HTTPS: c'est comme un verrou sur chaque message.



Seuls le navigateur et le serveur connaissent la combinaison à déverrouiller. Même si les messages transitent par plusieurs routeurs, seuls vous et le site Web pouvez réellement lire le contenu.

Cela résout de nombreux problèmes de sécurité. Mais il reste des messages non cryptés entre votre navigateur et votre serveur. Ainsi, les personnes en chemin peuvent toujours interférer dans vos affaires.

Par exemple, les données sont toujours ouvertes pendant la configuration de la connexion. Lors de l'envoi du message d'origine au serveur, vous envoyez également le nom du serveur dans le champ «Indication du nom du serveur». Cela permet aux opérateurs de serveur d'exécuter plusieurs sites sur le même ordinateur et de comprendre en même temps qui vous souhaitez contacter. Cette demande initiale fait partie de la configuration du chiffrement, mais la demande initiale elle-même n'est pas chiffrée.

Un autre endroit où les données sont ouvertes est le DNS. Mais qu'est-ce que le DNS?

DNS: système de noms de domaine


Dans une métaphore pour passer des notes dans une classe, j'ai dit que le nom du destinataire devrait être écrit en dehors de la note. Il en va de même pour les requêtes HTTP ... ils doivent déclarer où ils vont aller.

Mais vous ne pouvez pas utiliser le nom de site habituel. Aucun des routeurs ne comprend de qui vous parlez. Utilisez plutôt une adresse IP. C'est ainsi que les routeurs en cours de route comprennent à quel serveur vous souhaitez envoyer la demande.


- Veuillez l'envoyer au 208.80.154.224

Cela pose des problèmes. Il n'est pas pratique pour les utilisateurs de se souvenir des numéros de l'adresse IP. Je veux donner au site un nom accrocheur ... qui sera déposé dans la mémoire des gens.

C'est pourquoi nous avons un système de noms de domaine (DNS). Votre navigateur utilise DNS pour résoudre le nom du site en adresse IP. Ce processus - la conversion d'un nom de domaine en une adresse IP - est appelé résolution ou résolution de nom de domaine.



Comment le navigateur résout-il le problème?

Une option consiste à faire une grande liste comme un annuaire téléphonique dans un navigateur. Mais à mesure que de nouveaux sites Web apparaissent ou migrent vers de nouveaux serveurs, il sera difficile de maintenir cette liste à jour.

Ainsi, au lieu d'une seule liste pour tous les noms de domaine, il existe de nombreuses petites listes liées les unes aux autres. Cela leur permet d'être contrôlés indépendamment.



Pour obtenir l'adresse IP correspondant à un nom de domaine, vous devez trouver une liste spécifique contenant le nom de domaine souhaité. C'est comme trouver un trésor.

À quoi ressemble une telle recherche de trésor pour un site comme Wikipedia anglais, en.wikipedia.org ?

Le domaine peut être divisé en parties.



Avec de telles parties, vous pouvez commencer à rechercher une liste contenant l'adresse IP du site. Mais nous avons besoin d'aide pour trouver. L'outil qui effectue cette chasse à notre place et trouve l'adresse IP s'appelle un résolveur.

Premièrement, le résolveur accède au serveur DNS racine. Il connaît plusieurs serveurs DNS racine différents, il envoie donc une demande à l'un d'eux. Le résolveur demande le DNS racine où trouver des informations supplémentaires sur les adresses dans la zone de domaine de premier niveau .org .


- Vous ne savez pas comment accéder à en.wikipedia.org?
- Je ne sais rien dans la zone .org, mais 5.6.7.8 peut aider

Le serveur suivant est appelé serveur de nom de domaine de premier niveau (TLD). Le serveur TLD connaît tous les domaines de second niveau se .org par .org .

Cependant, il ne sait rien des sous-domaines wikipedia.org , il ne connaît donc pas non plus l'adresse IP de en.wikipedia.org .

Le serveur de noms TLD conseillera au résolveur de poser cette question au serveur de noms Wikipedia.


- Vous ne savez pas comment accéder à en.wikipedia.org?
- Allez demander le 11.21.31.41, il connaît les sites du domaine wikipedia.org

Le résolveur est presque terminé. Un serveur de noms Wikipedia est ce qu'on appelle un serveur faisant autorité. Il connaît tous les sous-domaines de wikipedia.org . Ainsi, il connaît en.wikipedia.org et d'autres sous-domaines, tels que la version allemande de de.wikipedia.org . Un serveur faisant autorité indique au résolveur à partir duquel les fichiers HTML d'adresse IP peuvent être récupérés pour ce site.


- Vous ne savez pas comment accéder à en.wikipedia.org?
- Oh oui, allez au 208.80.154.224

Le résolveur renverra l'adresse IP en.wikipedia.org au système d'exploitation.

Ce processus est appelé résolution récursive car vous devez faire des allers-retours, en posant à différents serveurs essentiellement la même question.

J'ai dit que nous avions besoin d'un résolveur pour aider à la recherche. Mais comment le navigateur trouve-t-il ce résolveur? En général, il demande le système d'exploitation.


"J'ai besoin d'un résolveur." Pouvez-vous aider
- Bien sûr, permettez-moi de vous présenter le résolveur que j'utilise

Comment le système d'exploitation sait-il quel résolveur utiliser? Il y a deux manières possibles.

Vous pouvez configurer votre ordinateur pour utiliser un résolveur spécifique auquel vous faites confiance. Mais très peu de gens le font.

Au lieu de cela, la plupart utilisent simplement les paramètres par défaut. Et par défaut, le système d'exploitation utilisera le résolveur indiqué par le réseau. Lorsqu'un ordinateur se connecte au réseau et reçoit son adresse IP, le réseau recommande un résolveur spécifique.


- Puis-je obtenir une adresse IP?
- Pas de problème! Et si vous avez besoin d'un résolveur, je recommande celui-ci

Cela signifie que le résolveur utilisé peut être changé plusieurs fois par jour. Si vous vous rendez dans un café pour travailler pendant la journée, vous utilisez probablement un résolveur différent de celui du matin. Et cela se produit même si vous configurez votre propre résolveur, car il n'y a pas de sécurité dans le protocole DNS.

Comment puis-je exploiter DNS?


Alors, comment ce système met-il en danger les utilisateurs?

En règle générale, le résolveur indique à chaque serveur DNS le domaine que vous recherchez. Cette demande inclut parfois votre adresse IP complète. Et s'il ne s'agit pas d'une adresse complète, la demande comprend plus souvent la plupart de votre adresse IP, qui peut être facilement combinée avec d'autres informations pour établir votre identité.


Contient la plupart de votre adresse IP ...
... et le domaine complet que vous recherchez

Cela signifie que chaque serveur auquel vous demandez de l'aide pour la résolution des noms de domaine voit quel site vous recherchez. De plus, toute personne se rendant sur ces serveurs voit également vos demandes.

Il existe plusieurs façons dont un tel système compromet les données des utilisateurs. Les deux principaux sont le tracking (tracking) et le spoofing (spoofing).

Suivi


Comme je l'ai dit ci-dessus, il n'est pas difficile de déterminer l'identité de la personne qui demande l'accès à un site spécifique en utilisant des informations complètes ou partielles sur l'adresse IP. Cela signifie que le serveur DNS et tout utilisateur se rendant sur ce serveur DNS (routeur en chemin) peuvent créer un profil utilisateur. Ils peuvent faire une liste de tous les sites que vous avez consultés.

Et ce sont des données précieuses. De nombreuses personnes et entreprises sont prêtes à payer beaucoup pour voir votre historique de navigation.


Combien êtes-vous prêt à payer pour des informations sur ce que John Doe regardait?

Même si nous n'avions pas à nous soucier de serveurs DNS ou de routeurs potentiellement infâmes en cours de route, il y a toujours un risque que vos données soient collectées et vendues. Parce que le résolveur lui-même - que le réseau vous a fourni - peut ne pas être fiable.

Même si vous faites confiance au résolveur recommandé du réseau, vous ne l'utilisez probablement qu'à la maison. Comme je l'ai mentionné, chaque fois dans un café, un hôtel ou sur tout autre réseau, vous recevrez probablement un résolveur différent. Et qui sait quelle est sa politique de collecte de données?

En plus du fait que vos données sont collectées puis revendues à votre insu ou sans votre consentement, le système est utilisé de manière encore plus dangereuse.

Usurpation d'identité


Avec l'usurpation d'identité, quelqu'un sur le chemin entre vous et le serveur DNS modifie la réponse. Au lieu d'une véritable adresse IP, le fraudeur vous indique la mauvaise adresse IP pour le site. Ainsi, ils peuvent bloquer l'accès à un site réel ou envoyer une fausse version à des fraudeurs.


Envoyez-le au 1.6.6.6 ... c'est une adresse absolument correcte, et pas un faux site web que je contrôle

Là encore, le résolveur lui-même peut agir de façon infâme.

Supposons que vous effectuez un achat dans un magasin Megastore. Vous voulez comparer les prix et voir si un tel produit est vendu moins cher dans la boutique en ligne concurrente big-box.com.

Mais si vous utilisez le Megastore WiFi dans leur salle de marché, vous utilisez probablement leur résolveur. Il peut intercepter une demande à big-box.com et vous mentir que le site n'est pas disponible.

Comment résoudre la situation en utilisant Trusted Recursive Resolver (TRR) et DNS sur HTTPS (DoH)?


Chez Mozilla, nous croyons fermement que nous sommes responsables de la protection des utilisateurs et de leurs données, et nous travaillons donc pour remédier à ces vulnérabilités.

Voici deux nouvelles fonctionnalités pour y remédier: Trusted Recursive Resolver (TRR) et DNS sur HTTPS (DoH). Parce qu'il y a en fait trois menaces:

  1. Vous pouvez finir par utiliser un résolveur non fiable qui suit vos demandes ou usurpe les réponses des serveurs DNS.
  2. Les routeurs en cours de route peuvent suivre les demandes ou intervenir de la même manière.
  3. Les serveurs DNS peuvent suivre les requêtes DNS.



Comment éviter cela?

  1. Évitez les résolveurs peu fiables avec TRR.
  2. Protégez-vous contre l'écoute et l'usurpation d'identité en utilisant DNS sur HTTPS.
  3. Transférez le moins de données possible pour protéger les utilisateurs contre l'anonymisation.

Évitez les résolveurs peu fiables avec TRR


Les réseaux peuvent cesser de recommander des résolveurs non fiables qui collectent des données utilisateur ou de fausses requêtes DNS, car très peu d'utilisateurs sont conscients des risques ou de la manière de se protéger.

Même pour les utilisateurs qui sont conscients des risques, il est difficile pour un utilisateur individuel de convenir avec son fournisseur ou une autre organisation qu'il sera traité de manière responsable avec ses requêtes DNS.

Cependant, nous avons étudié ces risques ... et nous avons une certaine influence. Nous recherchons depuis longtemps une entreprise qui nous aidera à protéger les données DNS des utilisateurs. Et ils en ont trouvé un: Cloudflare .

Cloudflare fournit un service de résolution récursive avec une politique de confidentialité pour les utilisateurs. Ils se sont engagés à supprimer toutes les données personnelles identifiables après 24 heures et à ne jamais transférer ces données à des tiers. Des contrôles réguliers seront effectués pour s'assurer que les données sont effectivement supprimées comme promis.

Grâce à cela, nous avons un résolveur de confiance pour protéger la confidentialité des utilisateurs. Cela signifie que Firefox peut ignorer le résolveur de réseau et accéder directement à Cloudflare. Désormais, vous n'avez plus à vous inquiéter du fait que les attaquants utilisent un résolveur pour vendre des données utilisateur ou l'usurpation DNS.

Pourquoi avons-nous choisi un résolveur? Comme nous, Cloudflare est soucieux de créer un service DNS privé. Ensemble avec nous, ils ont développé un bon résolveur DoH transparent. La société a volontiers opté pour une protection supplémentaire du service, nous sommes donc heureux de coopérer avec eux.

Mais cela ne signifie pas que vous devez utiliser Cloudflare. Les utilisateurs peuvent configurer Firefox pour utiliser n'importe quel résolveur récursif compatible DoH. À mesure que de nouveaux services seront disponibles, nous prévoyons de mettre en œuvre une découverte simple et de basculer entre eux.

Protection contre l'écoute et l'usurpation d'identité à l'aide de DNS sur HTTPS


Mais le résolveur n'est pas la seule menace. Les routeurs en cours de route peuvent suivre et simuler les requêtes DNS, car ils voient également le contenu des requêtes et des réponses DNS. Heureusement, il existe déjà une technologie sur Internet pour se protéger contre l'écoute des routeurs en chemin. C'est le cryptage dont je parlais.

L'utilisation de HTTPS pour échanger des paquets DNS protège les requêtes DNS de nos utilisateurs contre l'espionnage.

Transférez le moins de données possible pour protéger les utilisateurs contre l'anonymisation


En plus du résolveur de confiance qui s'exécute sous le protocole DoH, Cloudflare et moi travaillons sur des mesures de sécurité supplémentaires.

En règle générale, le résolveur envoie le nom de domaine complet à chaque serveur: le DNS racine, le domaine de premier niveau, le serveur de noms de domaine de deuxième niveau, etc. Mais le serveur Cloudflare fera différemment. Il n'enverra que la partie liée à un serveur DNS particulier. C'est ce qu'on appelle la minimisation QNAME .


"Vous ne savez pas comment accéder au serveur .org?"

Souvent, le résolveur inclut également les 24 premiers bits de votre adresse IP dans la demande. Cela permet au serveur DNS de savoir où vous vous trouvez et de sélectionner le CDN le plus proche. Mais les serveurs DNS peuvent utiliser ces informations pour lier entre elles des requêtes disparates.

Au lieu de cela, Cloudflare fera une demande à partir de l'une de ses propres adresses IP, qui se trouve à côté de l'utilisateur. Cela permet une géolocalisation sans référence à une personne spécifique. Nous étudions également comment mettre en œuvre un équilibrage de charge encore meilleur et plus fin en tenant compte de la confidentialité.

Tout cela - en supprimant les parties inutiles du domaine et de l'adresse IP - signifie que le serveur DNS peut collecter beaucoup moins de données vous concernant.



Qu'est-ce qui n'est pas inclus dans le RRT avec le DoH?


Ces mesures de protection réduisent le nombre de personnes qui peuvent voir l'historique des pages que vous visitez. Mais ils n'éliminent pas complètement les fuites de données.

Après avoir effectué une recherche DNS, vous devez toujours vous connecter au serveur Web à cette adresse pour obtenir une adresse IP. Pour ce faire, envoyez une demande. La demande comprend un SNI (indication du nom du serveur) indiquant le site spécifique sur le serveur. Et cette demande n'est pas chiffrée.

Autrement dit, votre FAI est toujours en mesure de savoir quels sites vous visitez, car ils sont répertoriés juste là dans le SNI. Des informations sont également ouvertes pour les routeurs qui transmettent la demande initiale de votre navigateur au serveur Web.

Mais dès que vous vous connectez au serveur Web, tout est crypté. Et surtout, cette connexion cryptée peut être utilisée pour n'importe quel site sur ce serveur, et pas seulement pour celui que vous avez initialement demandé.

Ceci est parfois appelé fusion de connexion HTTP / 2 ou simplement réutilisation d'une connexion. Lorsque vous ouvrez une connexion à un serveur compatible, il vous indiquera quels autres sites y sont hébergés. Vous pouvez ensuite visiter ces sites en utilisant votre connexion cryptée existante.

Pourquoi est-ce utile? Parce que vous n'avez pas besoin d'ouvrir une nouvelle connexion pour vous connecter à ces autres sites. Autrement dit, vous n'avez pas besoin d'envoyer une autre demande initiale non chiffrée indiquant le SNI et la divulgation d'informations sur le site auquel vous allez. Vous pouvez donc visiter l'un des autres sites sur le même serveur sans les révéler à votre fournisseur et à vos routeurs en cours de route.

Avec la popularité croissante de CDN, de plus en plus de sites individuels sont servis par un seul serveur. Et comme vous pouvez ouvrir plusieurs connexions unifiées, vous vous connectez simultanément à plusieurs serveurs partagés ou CDN, visitant tous les sites sur différents serveurs sans fuite de données. Cette fonction fonctionne donc de plus en plus efficacement comme écran de protection.

Quel est le statut?


Déjà dans Firefox, vous pouvez activer DNS sur HTTPS, et nous vous recommandons de le faire .

Nous voulons activer DoH par défaut pour tous les utilisateurs, car tout le monde mérite la confidentialité et la sécurité, qu'ils connaissent ou non les fuites DNS.

Mais c'est un changement important, et il doit d'abord être testé. Par conséquent, nous menons une étude. La moitié de nos utilisateurs de Firefox Nightly demandent de l'aide pour collecter des données de performances.

Lors des tests, le résolveur par défaut est utilisé, tel qu'il est actuellement, mais les demandes sont également envoyées au résolveur Cloudflare DoH. Ensuite, nous comparons le résultat pour vérifier que tout fonctionne comme prévu.

Pour les participants à l'étude, la réponse DNS Cloudflare n'est pas encore utilisée. Nous vérifions simplement que tout fonctionne, puis rejetons la réponse Cloudflare.



Merci aux utilisateurs de Nightly qui aident à tester Firefox tous les jours. Nous espérons que vous nous aiderez aussi.

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


All Articles