Comment activer le DNS over HTTPS dans Windows 10 ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons voir comment activer le DNS over HTTPS (DoH) au sein de Windows 10, mais attention c'est une fonctionnalité en cours de développement.
🎥 Vidéo complète sur le sujet : de la théorie à la pratique avec la configuration des navigateurs et une démo sous Windows 10 avec une rapide analyse de trames.
Au sein des versions stables actuelles, le système d'exploitation de Microsoft n'intègre pas de prise en charge de cette fonctionnalité. Néanmoins, ce n'est qu'une question de temps, car un paramètre est apparu dans le registre puis dans l'interface graphique dans les versions de Windows en cours de développement.
Pour configurer DoH via le Registre Windows il faut utiliser la Build 19628 ou une version supérieure. La version stable actuelle de Windows 10, à savoir Windows 10 21H1, correspond à la Build 19043. Dans une Build encore plus récente, il y a un paramètre dans l'interface graphique qui est apparu. Je vais vous expliquer tout ça dans cet article.
Précédemment, nous avions vu comment configurer le DNS over HTTPS au sein de certains navigateurs. Le fait de l'activer au niveau du système permet de chiffrer les requêtes DNS plus globalement pour toutes les applications.
II. Activer DNS over HTTPS sur Windows 10
Pour configurer le DoH sous Windows 10 à partir du Registre, suivez les étapes suivantes.
Nous allons devoir créer la valeur "EnableAutoDoh" avec "2" comme valeur, à l'emplacement "HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters". Plutôt que de le faire en interface graphique, je vous propose d'exécuter une console PowerShell en tant qu'administrateur et d'exécuter la commande suivante :
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name 'EnableAutoDoh' -Value 2 -PropertyType DWord –Force
Cette commande va permettre d'obtenir le résultat suivant :
Suite à la création de ce paramètre dans le Registre, il est impératif de redémarrer la machine.
Sur votre machine, il ne reste plus qu'à modifier le DNS dans les options de votre carte réseau pour spécifier un DNS compatible DoH (Cloudflare, Quad9, etc.). Si vous utilisez un DHCP, vous pouvez modifier le DNS distribué par votre serveur DHCP directement, par exemple sur votre Box. Vous pouvez aussi conserver la partie DHCP pour l'adresse IP et forcer le DNS sur votre machine, déjà le temps de tester cette fonctionnalité.
Validez et profitez !
III. Windows 10 Dev et l'option chiffrement DNS
Sur les toutes dernières versions en cours de développement de Windows 10 (disponible via le programme Insider), la gestion du DNS over HTTPS est proposée dans l'interface graphique. Pour cela, il faut ouvrir les "Paramètres", cliquer sur "Réseau et Internet", puis cliquer sur "Propriétés" au sein de la section "Etat", comme ceci :
Sous "Paramètres DNS", cliquez sur "Modifier".
Il faut basculer le DNS en mode manuel, et indiquer un serveur DNS compatible DoH au niveau de l'option "DNS préféré". Ensuite, pour l'option "Chiffrement DNS préféré", il faut choisir "Chiffré uniquement (DNS over HTTPS)".
Validez via le bouton "Enregistrer", cela va redémarrer la connexion réseau de la machine locale.
Le tour est joué ! Il est fort probable que cette nouveauté de l'interface graphique soit intégrée à la mise à jour majeure de Windows 10 prévue pour fin 2021.
IV. Ajouter un résolveur DNS DoH tiers dans Windows 10
Par défaut, Windows 10 supporte que certains DoH (IPv4 et IPv6) qui sont enregistrés dans le système. Concrètement, on retrouve seulement Google, Cloudflare et Quad9. Sur les dernières versions en développement de Windows 10, il suffit d'exécuter la commande ci-dessous pour afficher les DoH enregistrés par défaut :
netsh dns show encryption
On peut déclarer un autre DoH sur la machine, pour cela il faut disposer de deux informations : l'adresse IP du serveur DoH (server) et l'adresse HTTPS sur laquelle envoyer les requêtes DNS (dohtemplate).
À l'aide de ces informations, on va ajouter le DoH sur la machine via netsh, ce qui va donner la commande ci-dessous si l'on prend l'exemple du DoH de Hostux (hébergé au Luxembourg) :
netsh dns add encryption server=46.226.109.82 dohtemplate=https://dns.hostux.net/dns-query
Ensuite, si on liste de nouveau nos DoH en filtrant sur l'adresse IP de celui que l'on vient d'ajouter, il apparaît bien :
netsh dns show encryption server=46.226.109.82
On peut maintenant l'utiliser en tant que DNS sur notre machine Windows 10 et activer le chiffrement.
Note : les serveurs DoH connus sont déclarés dans le registre au sein de la clé suivante "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\DohWellKnownServers"
V. Capture de trafic pour vérifier que le DoH est actif sous Windows 10
Nous allons utiliser l'outil Packet Monitor intégré à Windows 10 pour capturer le trafic réseau et regarder ce qu'il se passe une fois le DoH actif. Cet outil sera suffisant pour ce que l'on a besoin de faire maintenant, et cela évite d'installer WireShark.
Ouvrez une console PowerShell (ou CMD) en tant qu'administrateur et exécutez la commande suivante pour supprimer tous les filtres de PKTMON (dans le cas où il y en aurait).
pktmon filter remove
Créez un nouveau filtre sur le port 53, qui je vous rappelle est le port utilisé par le protocole DNS :
pktmon filter add -p 53
Enfin, lancez une capture de trafic en temps réel où les résultats seront affichés dans la console directement. Par résultat, j'entends tous les paquets DNS sur le port 53.
pktmon start --etw -m real-time
Quand le DNS over HTTPS est configuré sur la machine et que l'on commence à naviguer sur Internet, on peut voir qu'il n'y aucun paquet qui s'affiche... Cela est logique, car nos paquets DNS sont sécurisés au travers de flux HTTPS : notre configuration fonctionne 😉.
Par contre, si je filtre sur le port 443 (HTTPS), je vois bien des requêtes envoyées vers mon DNS (1.1.1.1), ce qui confirme que le DNS over HTTPS est actif. Nous ne voyons pas le contenu de la trame DNS (d'ailleurs rien ne dit qu'il s'agisse de trames DNS mais on peut s'en douter vu que c'est envoyé vers mon résolveur DNS).
Si je fais machine arrière et que je désactive DoH, on voit rapidement la différence : de nombreuses requêtes DNS en claires sont envoyées et visibles via PKTMON :
Que pensez-vous de cette intégration du DNS over HTTPS dans Windows 10 ? Allez-vous l'utiliser par la suite ?