DNS over TLS (DoT) – protokół sieciowy pozwalający przesyłać zapytania i odpowiedzi systemu nazw domen wewnątrz szyfrowanego połączenia TLS. Szyfrowanie uniemożliwia podsłuchanie odpytywanych nazw oraz ich podmianę przez podmioty pośredniczące w transmisji, takie jak dostawcy usług internetowych czy operatorzy sieci lokalnych. Protokół opisano w dokumencie RFC 7858, opublikowanym w maju 2016 roku przez IETF.
Dokument dotyczy przede wszystkim ruchu między komputerem użytkownika a serwerem rozwiązującym nazwy, nie wyklucza jednak zastosowania protokołu w komunikacji z serwerami autorytatywnymi. Uzupełnia go RFC 8310 z 2018 roku, opisujący profile zastosowania.
DoT obsługuje m.in. Android – od wersji 9 z 2018 roku, pod nazwą „Prywatny DNS”.
Zwykłe zapytanie DNS wysyłane jest jawnym tekstem, protokołem UDP na port 53, więc może je odczytać każdy, kto obserwuje ruch po drodze. W DoT klient nawiązuje połączenie TCP na port 853 i rozpoczyna je uzgodnieniem TLS; dopiero wewnątrz zestawionego w ten sposób kanału przesyłane są niezmienione komunikaty DNS.
Numer portu przypisała protokołowi IANA pod nazwą usługi domain-s. Standard zabrania przesyłania nim komunikatów niezaszyfrowanych – także po nieudanym uzgodnieniu TLS – oraz odradza korzystanie w tym celu z portu 53, aby ograniczyć ryzyko wymuszenia rezygnacji z szyfrowania.
Dokument opisuje dwa sposoby korzystania z protokołu:
Oba protokoły realizują ten sam cel, różnią się natomiast sposobem transportu. DNS over HTTPS (DoH) umieszcza zapytania wewnątrz żądań HTTPS kierowanych na port 443, wspólny z ruchem stron internetowych, przez co jest trudny do odróżnienia od zwykłego przeglądania sieci. DoT korzysta z wydzielonego portu 853, co pozwala rozpoznać go zwykłym monitorowaniem ruchu, a zarazem łatwo zablokować na zaporze sieciowej.