DNS-over-TLS

Pengantar

Kueri dan respons DNS tradisional dikirim melalui UDP atau TCP tanpa enkripsi. Hal ini rentan terhadap penyadapan dan spoofing (termasuk pemfilteran Internet berbasis DNS). Respons dari resolver rekursif ke klien adalah yang paling rentan terhadap perubahan yang tidak diinginkan atau berbahaya, sedangkan komunikasi antara resolver rekursif dan server nama otoritatif sering kali menyertakan perlindungan tambahan.

Untuk mengatasi masalah ini, Google Public DNS menawarkan resolusi DNS melalui koneksi TCP terenkripsi TLS seperti yang ditetapkan oleh RFC 7858. DNS-over-TLS meningkatkan privasi dan keamanan antara klien dan resolver. Tindakan ini melengkapi DNSSEC dan melindungi hasil tervalidasi DNSSEC dari modifikasi atau spoofing dalam proses pengiriman ke klien.

Cara Kerja

Sistem klien dapat menggunakan DNS-over-TLS dengan salah satu dari dua profil: privasi ketat atau oportunistik. Dengan profil privasi yang ketat, pengguna mengonfigurasi nama server DNS (nama domain autentikasi di RFC 8310) untuk layanan DNS-over-TLS dan klien harus dapat membuat koneksi TLS yang aman di port 853 ke server DNS. Kegagalan untuk membuat koneksi yang aman adalah error yang berat dan akan menyebabkan tidak adanya layanan DNS untuk klien.

Dengan profil privasi oportunistik, alamat IP server DNS dapat dikonfigurasi langsung oleh pengguna atau diperoleh dari jaringan lokal (menggunakan DHCP atau cara lainnya). Resolver klien mencoba membuat koneksi yang aman pada port 853 ke server DNS yang ditentukan. Jika koneksi yang aman terjalin, tindakan ini akan memberikan privasi untuk kueri pengguna dari pengamat pasif di jalur tersebut. Karena klien tidak memverifikasi keaslian server, klien tidak terlindungi dari penyerang aktif. Jika tidak dapat membuat koneksi aman pada port 853, klien akan kembali berkomunikasi dengan server DNS pada port DNS standar 53 melalui UDP atau TCP tanpa keamanan atau privasi apa pun. Penggunaan Privasi Oportunistik dimaksudkan untuk mendukung deployment inkremental peningkatan privasi dengan tujuan penerapan profil privasi yang ketat secara luas.

Saat menggunakan profil privasi yang ketat, resolver stub membuat koneksi DNS-over-TLS dengan langkah-langkah berikut.

  1. Resolver stub dikonfigurasi dengan nama resolver DNS-over-TLS dns.google.
  2. Resolver stub mendapatkan alamat IP untuk dns.google menggunakan resolver DNS lokal.
  3. Resolver stub membuat koneksi TCP ke port 853 di alamat IP tersebut.
  4. Resolver stub memulai handshake TLS dengan resolver Google Public DNS.
  5. Server Google Public DNS menampilkan sertifikat TLS-nya beserta rantai lengkap sertifikat TLS hingga root certificate tepercaya.
  6. Resolver stub memverifikasi identitas server berdasarkan sertifikat yang ditampilkan.
    • Jika identitas tidak dapat divalidasi, resolusi nama DNS akan gagal dan resolver stub akan menampilkan error.
  7. Setelah koneksi TLS dibuat, stub resolver memiliki jalur komunikasi yang aman antara ke server Google Public DNS.
  8. Sekarang resolver stub dapat mengirim kueri DNS dan menerima respons melalui koneksi.

Saat menggunakan profil privasi oportunistik, klien akan mencoba membuat koneksi TLS yang aman ke server terlebih dahulu. Hal ini dilakukan dengan cara yang sama seperti di atas, dengan satu perbedaan penting - tidak ada validasi sertifikat yang dilakukan oleh klien. Artinya, identitas server tidak dapat dipercaya. Jika koneksi TLS pada port 853 ke server tidak dapat dibuat, stub resolver kembali berbicara dengan server DNS pada port 53.

Privasi

Kebijakan privasi kami berlaku untuk layanan DNS-over-TLS.

Pada 27/06/2019, kami telah mengaktifkan kembali subnet klien EDNS (ECS) untuk layanan DNS-over-TLS. ECS dinonaktifkan saat peluncuran layanan.

Dukungan Standard

Google Public DNS menerapkan DNS-over-TLS berdasarkan RFC 7858. Selain itu, kami mendukung rekomendasi berikut untuk memberikan layanan DNS berkualitas tinggi dan berlatensi rendah.

Mulai Menggunakannya

Lihat instructions untuk mengonfigurasinya di perangkat dengan Android 9 (Pie) atau yang lebih baru.

DNS-over-TLS juga didukung untuk layanan Google Public DNS64 khusus IPv6. Perlu diperhatikan bahwa sebaiknya jangan mengonfigurasi DNS64 untuk perangkat seluler yang akan terhubung ke beberapa jaringan, karena DNS64 hanya berfungsi jika IPv6 tersedia.