Apple va supporter DNS over HTTPS (DoH) et DNS over TLS (DoT)... à sa manière

Apple va supporter DNS over HTTPS (DoH) et DNS over TLS (DoT)… à sa manière

À vouloir trop en faire...

Avatar de l'auteur
David Legrand

Publié dans

Logiciel

25/06/2020 4 minutes
26

Apple va supporter DNS over HTTPS (DoH) et DNS over TLS (DoT)... à sa manière

Bonne nouvelle : Apple va à son tour permettre le chiffrement des échanges entre un appareil et un résolveur DNS. Il ne gère d'ailleurs pas un protocole mais deux, avec différentes implémentations selon les besoins. Et c'est peut être bien là que ça coince... car certaines risquent de créer plus de problèmes qu'elles n'en résolvent.

Le DNS est l'une des rares briques de l'internet à n'avoir pas encore fait l'objet d'un recours massif au chiffrement, mais cela change peu à peu. On l'a vu à travers les choix opérés par différents navigateurs, de Chrome à Firefox, mais aussi d'éditeurs comme Google qui a misé sur DNS over TLS (DoT) sur  Android ou encore Microsoft qui se prépare à supporter DNS over HTTPS (DoH) dans la prochaine version de Windows 10.

Sur le sujet, on attendait la réaction d'Apple, silencieuse alors qu'elle n'est pas la dernière lorsqu'il s'agit de mettre en avant son intérêt pour la sécurité et le respect de la vie privée des utilisateurs. Profitant de sa WWDC 2020, elle sort de son mutisme : DoH et DoT seront supportés par ses systèmes d'exploitation.

Une intégration qui ne se fera pas vraiment de manière classique.

Notre dossier sur DNS over HTTPS :

Vers des applications de gestion des DNS

Après avoir rappelé les bases du DNS et en quoi un chiffrement des requêtes/réponses pouvait être important, l'ingénieur Tommy Pauly dévoile le choix de l'entreprise : là où certains ne misent que sur DoT ou DoH, ses systèmes gèreront les deux, à la convenance des développeurs, éditeurs de services et peut être des utilisateurs.

Il ne s'agira pas d'un simple paramètre réseau, tout du moins pas de manière aussi directe que l'on pourrait s'y attendre. Il y aura deux méthodes exploitables. La première s'appliquera à l'ensemble du système, donc de toutes les applications. Elle s'activera via un profil MDM (Mobile Device Management, pour la gestion de flotte en entreprise) ou une application désignée comme gestionnaire de DNS, comme c'est déjà le cas avec les VPN.

  • Apple DNS DoT DoH
  • Apple DNS DoT DoH
  • Apple DNS DoT DoH
  • Apple DNS DoT DoH
  • Apple DNS DoT DoH
  • Apple DNS DoT DoH
  • Apple DNS DoT DoH
  • Apple DNS DoT DoH
  • Apple DNS DoT DoH
  • Apple DNS DoT DoH

Un éditeur de service proposant des résolveurs DoT ou DoH pourra ainsi y donner accès à travers une application exploitant le framework NetworkExtension, qui permet de modifier plusieurs paramètres réseau. Il pourra préciser via des règles quand utiliser ou non le chiffrement des DNS : réseau mobile et/ou Wi-Fi, sur tel ou tel SSID, etc.

Apple précise que pour éviter tout souci, certaines exceptions sont appliquées automatiquement, comme la détection de portails captifs ou de VPN (dont le résolveur DNS sera utilisé plutôt que celui du système). Chaque règle pourra être appliquée globalement ou seulement pour certains domaines. La transparence des applications à ce sujet sera vitale.

En cas de blocage du chiffrement des DNS (notamment dans le cas de DoT) par le réseau, une alerte sera affichée.

Une gestion possible application par application

L'autre solution est celle redoutée par beaucoup, puisqu'elle permet à chaque développeur de préciser le résolveur DNS à utiliser pour son application, par défaut ou pour des requêtes bien spécifiques, via NWParameters.PrivacyContext

On imagine dès lors les abus possibles, si Google venait à forcer ses propres serveurs dans Chrome par exemple, une banque les siens en prétextant une question de sécurité, une application malveillante des DNS menteurs, etc. Malheureusement, il ne semble pas prévu qu'une alerte vienne informer l'utilisateur d'un tel choix par une application.

Dans la démonstration effectuée par Pauly, on ne voit pas non plus de moyen de s'opposer à une telle mécanique. Espérons donc que d'ici la version finale des prochains OS d'Apple, ces soucis seront pris en compte.

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Vers des applications de gestion des DNS

Une gestion possible application par application

Commentaires (26)


Excellente nouvelle (après, il faudra regarder les détails, la vidéo n’est pas suffisante). Comme d’habitude, cela va énerver les acteurs qui voudraient bien contrôler la résolution DNS eux-mêmes.

 


Si tu avait lu l’article tu aurais vu que même au niveau des applications cela est paramétrable, donc avec des abus possible qui ne sont pas des moindres.


“On imagine dès lors les abus possibles, si Google venait à forcer ses propres serveurs dans Chrome par exemple, une banque les siens en prétextant une question de sécurité, une application malveillante des DNS menteurs, etc. Malheureusement, il ne semble pas prévu qu’une alerte vienne informer l’utilisateur d’un tel choix par une application.”



cela dit normalement comme Apple valide les applis pour apparaitre sur le store, ils devraient filtrer les mauvais élèves. Sauf si l’appli peut changer après coup de config ? et là ça craint aussi. Un indicateur visuel serait en effet bienvenu <img data-src=" />


Impossible de choisir un serveur DNS de son choix, et commun à toutes les applications ? Le coup du serveur DNS propre à chaque application ça me semble ouvert à de nombreuses dérives, multiplier potentiellement des requêtes d’un même appareil et causer des problèmes (si une appli commence à dire qu’Internet ne fonctionne pas car elle reçoit pas de réponse de son serveur DNS parce qu’elle en a choisi un en carton, par exemple).








Mimoza a écrit :



Si tu avait lu l’article







Je suis vexé car non seulement je l’ai lu, mais j’ai regardé la vidéo.



Bah même si on te laisse le choix, qui va aller se taper les paramètres de chacune de ses 200 applications pour voir s’il y a le choix du DNS ? Et penser à le configurer vers 1.1.1.1 (ou autre)



Moi mais si je dois expliquer ça à mes parents je préfère laisser tomber.



Comme dit jpagin, quid des applications qui vont fonctionner avec des entrées DNS non renseignées sur les serveurs racines ?

&nbsp;

Je dois être un méchant type qui veut que contrôler les DNS des gens mais je vois très peu d’avantage pour énormément d’inconvénient.


“On imagine dès lors les abus possibles, si Google venait à forcer ses propres serveurs dans Chrome par exemple, une banque les siens en prétextant une question de sécurité, une application malveillante des DNS menteurs, etc. Malheureusement, il ne semble pas prévu qu’une alerte vienne informer l’utilisateur d’un tel choix par une application.”



Dans le fond, une appli peut utiliser le résolveur DNS qu’elle veut, voire hardcoder des addresses IP, sans aucun impact pour la sécurité du reste du système, et avec un potentiel d’abus très limité.&nbsp;&nbsp;



Au pire l'appli se rend elle même vulnérable en utilisant un DNS vulnérable, mais le problème se pose pour n'importe quel accès à un serveur.&nbsp;      

On n'informe pas l'utilisateur pour chaque requête réseau donc pas de raison de le faire pour une requête DNS, qu'elle soit "custom" ou pas, ce qui ne change rien.&nbsp;






Le cas plus intéressant est celui d'un browser ou autre appli permettant à l'utilisateur d'effectuer ses propres requêtes sur un domaine précisé. Mais même là, si l'utilisateur n'est pas en mesure de faire confiance à l'appli, celle ci pourrait ne même pas résoudre le domaine demandé, donc le problème sera la confiance dans l'appli plus que le DNS.







jpagin a écrit :



Impossible de choisir un serveur DNS de son choix, et commun à toutes les applications ?





Si, comme dit dans l’article.







wagaf a écrit :



Dans le fond, une appli peut utiliser le résolveur DNS qu’elle veut, voire hardcoder des addresses IP, sans aucun impact pour la sécurité du reste du système, et avec un potentiel d’abus très limité. Au pire l’appli se rend elle même vulnérable en utilisant un DNS vulnérable, mais le problème se pose pour n’importe quel accès à un serveur.





Peut être, mais est-ce le rôle d’Apple que de le faciliter sans aucune alerte au niveau de l’utilisateur, lui-même étant conscient que l’accès au DNS est tout sauf anodin ?



Alors j’ai mal compris ton commentaire, il est trop succin et positif. Comme je ressort de la lecture avec pas mal de crainte (pas pour moi je suis pas Mac), je pensais que l’auteur du commentaire n’avait pas vu les risques et finalement c’est moi qui n’ai regardé l’auteur du commentaire <img data-src=" />


Pour le coup, pourquoi pas ?



Je suis sincèrement curieux de savoir quel est le véritable problème de fond qu’une appli utilise le DNS qu’elle veut.



Je vois ces cas de gênants :




  • l’appli utilise des DNS qui me trackent.

  • l’appli utilise un DNS foireux



    Dans les deux cas le problème est évité si je fais confiance à l’application (qui n’a pas franchement besoin du dns pour m’épier si elle en a envie).

    Oui ça enlève les possibilités d’utiliser des outils comme PiHole et compagnie. Mais ces outils ne sont que des rustines pour masquer un problème plus global : est-ce vraiment le rôle du DNS que de bloquer la publicité ?



    Au contraire des exemples donnnés ci dessus, je trouve ça sain si ma banque veut utiliser son propre resolver dns (même si d’un point de vue sécurité, on est d’accord, ça ne sert à rien). Du moment que bien sûr ça reste scopé à l’appli, qui n’est de toutes façons pas un browser.



    Pour reprendre l’exemple ci dessus, si l’app Chrome décide d’utiliser 8.8.8.8, tant que ça s’applique pas en dehors je vois pas le soucis : quand t’as le browser, Google n’a franchement pas besoin de tes logs de requête.






Dans la démonstration effectuée par Pauly, on ne voit pas non plus de moyen de s’opposer à une telle mécanique. Espérons donc que d’ici la version finale des prochains OS d’Apple, ces soucis seront pris en compte.





C’est tout le problème d’Apple, c’est qu’ils zappent certains params parfois pour des raisons un peu foireuses et c’est énervant…









Mimoza a écrit :



Si tu avait lu l’article tu aurais vu que même au niveau des applications cela est paramétrable, donc avec des abus possible qui ne sont pas des moindres.







HAAAAaaaaaannnnnn !

Comme il parle a Stephane Bortzmeyer, THE spécialiste DNS en France, chef de l’internet et grand maitre des geeks…. <img data-src=" />



Tu me réciteras 3 ave Ada Lovelace et 2 Linus noster



&gt; même si d’un point de vue sécurité, on est d’accord, ça ne sert à rien



Si cela sers à rien, alors pourquoi le faire. L’OS gère cela en tache de fond et gère aussi un cache. Pourquoi vouloir remettre toutes les couches dans l’application ? En cas de faille, il faudra mettre à jour toutes les applications ?



Tout ça, on l’a bien compris, c’est que pour 99% des utilisateurs, tout ne passe plus que par quelques opérateurs. Vive le minitel 2 !


Aujourd’hui, rien n’empêche une appli (PC ou mobile) d’utiliser un proxy imposé par ladite appli, et on ne s’en émeut pas.

Là on parle du DNS, mais la problématique est la même :-p

Bien-sur, avec le coup du DNS on ajoute l’insulte à l’injure, mais que pensez-vous qu’il va se passer ?

Puis bon, on parle d’Apple. Ca n’est pas grand chose, et parions sur les fans pour trouver cette feature révolutionnaire. <img data-src=" />


Je trouve au contraire que c’est assez étonnant venant d’Apple, eux qui ont l’habitude d’imposer aux développeurs d’applications de passer par les briques définies et offertes par eux au sein de leur écosystème pour assurer une grande uniformité de l’expérience utilisateur. Ça m’aurait moins étonné dans Android, traditionnellement plus permissif.

Pour reprendre un exemple cité plus haut, les Michus qui vont avoir une appli avec internet et l’autre sans (parce que le résolveur de la seconde déconne) vont se demander ce que sont en train de foutre leurs iPhones. Et pas que les Michus d’ailleurs.








Mimoza a écrit :



Alors j’ai mal compris ton commentaire, il est trop succin et positif. Comme je ressort de la lecture avec pas mal de crainte (pas pour moi je suis pas Mac), je pensais que l’auteur du commentaire n’avait pas vu les risques et finalement c’est moi qui n’ai regardé l’auteur du commentaire <img data-src=" />









KP2 a écrit :



HAAAAaaaaaannnnnn !

Comme il parle a Stephane Bortzmeyer, THE spécialiste DNS en France, chef de l’internet et grand maitre des geeks…. <img data-src=" />



Tu me réciteras 3 ave Ada Lovelace et 2 Linus noster







<img data-src=" />



J’avais trouvé la réponse un peu rude en me disant “whoua le niveau du mec, direct il retoque S. Bortzmeyer” mais c’était une erreur, un emportement, un moment d’égarement <img data-src=" />









jpaul a écrit :



est-ce vraiment le rôle du DNS que de bloquer la publicité ?







Dans la mesure où avec le DNS tu peux bloquer le mal à la racine (huhu), proprement et sans faire fuiter de requêtes vers l’extérieur : oui



Ça sera que pour iOS/iPadOS ou macOS sera également de la partie ?


Non mais je le fait moi même. Mais faut bien reconnaître que c’est rien d’autre qu’un man in the middle sur ton propre réseau local. Ce n’est pas l’utilité même du protocole.








Zerdligham a écrit :



Pour reprendre un exemple cité plus haut, les Michus qui vont avoir une appli avec internet et l’autre sans (parce que le résolveur de la seconde déconne) vont se demander ce que sont en train de foutre leurs iPhones. Et pas que les Michus d’ailleurs.





Non, les michus vont avoir une appli qui fonctionne pas mais les autres si. Comme ça peut arriver aujourd’hui. Ni plus ni moins.



Le problème c’est p-e que tu pars du principe qu’il faut faire confiance aux applications. Alors que ca devrait être l’inverse. Ne fait jamais confiance aux applications. La quasi-totalité des applications ne sont pas safe au niveau vie privée. Même firefox sur android contient des trackeurs.



En partant de ce constant, laisser l’application choisir son DNS c’est leur donner la possibilité d’utiliser des trackeurs insidieux (parce que va savoir comment est utilisé le serveur DNS…)

&nbsp;

Parce que ca n’a aucun intérêt pour l’utilisateur



Parce que ca pose des problématiques de sécurité. Il faut faire confiance aux DNS choisit par l’application.



Et ce n’est pas parce qu’il y a d’autres moyens de pister les gens que rajouter une nouvelle façon de le faire n’est pas problématique… Encore moins une bonne chose.

&nbsp;


Vouii maîîîîître

<img data-src=" /><img data-src=" /><img data-src=" />


Bah moi aussi je le fais moi-même, avec mon résolveur.



Et les machines sur lesquelles je ne peux pas mettre de bloqueur de pubs/traqueurs en profite (typiquement les consoles de jeux, qui doivent bien faire tourner des trucs remplis de Google Analytics & cie).



Étant donné que (presque) toute activité sur Internet commence par une requête DNS, agir à ce niveau est logique








linkin623 a écrit :



J’avais trouvé la réponse un peu rude en me disant “whoua le niveau du mec, direct il retoque S. Bortzmeyer” mais c’était une erreur, un emportement, un moment d’égarement <img data-src=" />







<img data-src=" />









aureus a écrit :



Parce que ca pose des problématiques de sécurité. Il faut faire confiance aux DNS choisit par l’application.





Tu sembles partir du principe que la plupart des applications sont des navigateurs. C’est faux.



Si tu prends par exemple l’application Twitter, qu’est-ce que ça peut bien faire qu’elle utilise les dns de twitter ? J’en voit pas réellement l’intérêt mais si ça leur chante, ils auront 0 infos de plus que ce qu’ils ont déjà via l’appli. En plus si ils voulaient réellement le faire, ils pourraient dores et déjà le faire sans les APIs oficielles : rien n’empêche de résoudre soit même les noms de domaine en se connectant directement au nameserver de ton choix, récupérer l’ip puis s’y connecter sans passer par le résolveur du système. La seule différence c’est qu’il y aura une API pour ça.



Ensuite je suis désolé mais non, il faut faire confiance à l’application. Pas de confiance = pas d’installation. Je fais aussi relativement confiance à iOS pour isoler les applications du reste du système/mes données (même si différentes affaires nous ont montré que ce n’était pas parfait) mais à partir du moment où j’utilise une application, je sais que je n’ai plus aucun contrôle sur ce qu’elle peut envoyer à son auteur. Si ça me gène, je ne l’installe pas.



Je cherche pas à défendre Apple, je trouve que ça sert à rien comme feature, mais je ne voit vraiment pas en quoi c’est mieux ou pire qu’actuellement.



“Tu sembles partir du principe que la plupart des applications sont des navigateurs. C’est faux.”

Affichage de pub.


Bien sûr, mais une fois encore, même si c’est possible (et moi même je le fait) : est-ce réellement le job du serveur DNS que de filtrer la pub ou n’est-ce pas un moyen détourné de le faire parce que plus aucune autre méthode n’est possible (notamment à cause de la fermeture des OS).



Si le blocage par DNS menteur était (ou devenait) un vrai danger pour l’industrie de la publicité elle saurait contourner ce problème en quelques jours.



Tout le monde sait ici et le revendique à chaque news sur le blocage d’un site par un gouvernement : les DNS menteurs se contournent en un claquement de doigt. Aucune raison qu’une régie publicitaire ne sache pas le faire.



La meilleure façon de ne pas subir la publicité sans DNS menteur, c’est encore de ne plus tolérer ce modèle économique. A titre perso je désinstalle toute application qui affiche de la pub sans offrir la possibilité de s’en passer (quitte à payer).



Reste le problème du navigateur web avec lequel tu peux rapidement manger de la pub “à ton insu” en navigant. Dans ce cas ci les bloqueurs de publicité et DNS menteurs restent efficaces (il suffit de ne pas installer un browser qui t’imposerai son DNS).