Skip to main content

Encryption de requêtes

DNS est un protocole UDP opérant au port 53. Ceci implique que la requête est en texte clair, sans encryption et que n'importe qui interceptant la requête peut identifier l'ensemble des services auxquels vous accédez. On peut penser ici à l'administration informatique du cégep, d'un café internet ou encore d'un aéroport. Une requête a généralement la structure suivante : 

Domain Name System (query)
    Questions: 1
    Queries
        tiktok.com: type A, class IN
            Name: tiktok.com
            Type: A (1) (Host Address)
            Class: IN (0x0001)

Dans cette requête, un serveur DNS est interrogé pour l'entrée de type A (correspondant à l'adresse IPv4 du domaine) pour tiktok.com. On peut observer avec la section "Questions: 1" que je demande ici uniquement une information (l'entrée de type A).

La réponse à cette demande serait la suivante : 

Domain Name System (response)
    Questions: 1
    Queries
        tiktok.com: type A, class IN
            Name: tiktok.com
            Type: A (1) (Host Address)
            Class: IN (0x0001)
    Answers
        tiktok.com: type A, class IN, addr 23.222.17.15
            Name: tiktok.com
            Type: A (1) (Host Address)
            Class: IN (0x0001)
            Address: 23.222.17.15
        tiktok.com: type A, class IN, addr 23.222.17.8
            Name: tiktok.com
            Type: A (1) (Host Address)
            Class: IN (0x0001)
            Address: 23.222.17.8

On observe ici que la réponse à l'entrée "tiktok.com" est 23.222.17.8. On peut donc assumer que l'appareil ayant effectué la requête a contacté TikTok.

Il est donc facile de déterminer avec ces informations facilement capturables à quels services un appareils se réfère que ce soit par une attaque de type "Man In The Middle" (MITM) ou en étant tout simplement l'administrateur d'un réseau.

Pour améliorer la sécurité de ce mécanisme, il est dorénavant possible d'effectuer des requêtes par "HTTPS" ou "Hypertext Protocol Secure" ou encore par "TLS" ou "Transport Layer Security" permettant l'encryption de ces requêtes entre un client et un serveur DNS. Ce faisant, les requêtes DNS sont encryptées et acheminées en TCP par le port 443 (DoH) ou 853 (DoT) au serveur DNS.

On peut observer ici qu'une requête DNS pour tiktok.com est beaucoup plus complexe et encryptée en TLS.

image.png

Ceci est le trafic qu'un administrateur réseau ou un une personne au milieu pourrait observer pour une telle requête/réponse :

Transport Layer Security
    [Stream index: 0]
    TLSv1.3 Record Layer: Application Data Protocol: Domain Name System
        Opaque Type: Application Data (23)
        Version: TLS 1.2 (0x0303)
        Length: 445
        Encrypted Application Data […]: 45b4de58ddc0edd64aeea19a460b8c70dbff0494487d7f653a30c69b88cafd0301991a8b516080abf3997d8543d6cfa129759689dece0caf937e7e43b0b7ca3b32cee01d283ad6167f22d6d0e7c7d62b1207bd79d4ed343b0051ae5bff729e2cae97e83fced64
        [Application Data Protocol: Domain Name System]
    TLSv1.3 Record Layer: Application Data Protocol: Domain Name System
        Opaque Type: Application Data (23)
        Version: TLS 1.2 (0x0303)
        Length: 487
        Encrypted Application Data […]: 3e4547e09af20c69527369f8f2dd96da903012c63afad1295cac5263e51d1e0c829d3b3ff4d5bc5b108f364581231f9b76518c414fb4a0c977896866c9aeb01aab9b80cdbcac5e29721e997fbdcce4f9c443de6683632b6937eb14d341ec84bb67ad2a7d8ce12
        [Application Data Protocol: Domain Name System]