Gambaran umum DNSSEC
Artikel ini menyediakan gambaran umum Ekstensi Keamanan Sistem Nama Domain (DNSSEC) dan menyertakan pengenalan terminologi DNSSEC. Manfaat penandatanganan zona DNSSEC dijelaskan dan contoh disediakan untuk menampilkan rekaman sumber daya terkait DNSSEC. Saat Anda siap untuk menandatangani zona DNS publik Azure Anda, lihat panduan cara penggunaan berikut ini:
- Cara menandatangani zona DNS Publik Azure Anda dengan DNSSEC.
- Cara membatalkan penetapan zona DNS Publik Azure Anda
Apa itu DNSSEC?
DNSSEC adalah serangkaian ekstensi yang menambahkan keamanan ke protokol Sistem Nama Domain (DNS) dengan mengaktifkan respons DNS untuk divalidasi sebagai asli. DNSSEC menyediakan otoritas asal, integritas data, dan penolakan keberadaan yang diautentikasi. Dengan DNSSEC, protokol DNS jauh lebih rentan terhadap jenis serangan tertentu, terutama serangan spoofing DNS.
Ekstensi DNSSEC inti ditentukan dalam Permintaan Komentar (RFC) berikut:
- RFC 4033: "Pengantar dan Persyaratan Keamanan DNS"
- RFC 4034: "Catatan Sumber Daya untuk Ekstensi Keamanan DNS"
- RFC 4035: "Modifikasi Protokol untuk Ekstensi Keamanan DNS"
Untuk ringkasan DNSSEC RFC, lihat RFC9364: Dns Security Extensions (DNSSEC).
Cara kerja DNSSEC
Zona DNS diamankan dengan DNSSEC menggunakan proses yang disebut penandatanganan zona. Menandatangani zona dengan DNSSEC menambahkan dukungan validasi tanpa mengubah mekanisme dasar kueri dan respons DNS. Untuk menandatangani zona dengan DNSSEC, server DNS otoritatif utama zona harus mendukung DNSSEC.
Tanda Tangan Catatan Sumber Daya (RRSIG) dan catatan kriptografi lainnya ditambahkan ke zona saat ditandatangani. Gambar berikut ini memperlihatkan rekaman sumber daya DNS di zona contoso.com sebelum dan sesudah penandatanganan zona.
Validasi DNSSEC respons DNS terjadi dengan menggunakan tanda tangan digital ini dengan rantai kepercayaan yang tidak terpecahkan.
Catatan
Rekaman sumber daya terkait DNSSEC tidak ditampilkan di portal Azure. Untuk informasi selengkapnya, lihat Menampilkan rekaman sumber daya terkait DNSSEC.
Mengapa menandatangani zona dengan DNSSEC?
Menandatangani zona dengan DNSSEC diperlukan untuk kepatuhan dengan beberapa panduan keamanan, seperti SC-20: Secure Name/Address Resolution Service.
Validasi DNSSEC respons DNS dapat mencegah jenis umum serangan pembajakan DNS, juga dikenal sebagai pengalihan DNS. Pembajakan DNS terjadi ketika perangkat klien dialihkan ke server berbahaya dengan menggunakan respons DNS yang salah (spoofed). Keracunan cache DNS adalah metode umum yang digunakan untuk memalsukan respons DNS.
Contoh cara kerja pembajakan DNS diperlihatkan dalam gambar berikut.
Resolusi DNS normal:
- Perangkat klien mengirim kueri DNS untuk contoso.com ke server DNS.
- Server DNS merespons dengan catatan sumber daya DNS untuk contoso.com.
- Perangkat klien meminta respons dari contoso.com.
- Aplikasi contoso.com atau server web mengembalikan respons ke klien.
Pembajakan DNS
- Perangkat klien mengirim kueri DNS untuk contoso.com ke server DNS yang dibajak.
- Server DNS merespons dengan catatan sumber daya DNS yang tidak valid (spoofed) untuk contoso.com.
- Perangkat klien meminta respons untuk contoso.com dari server berbahaya.
- Server berbahaya mengembalikan respons spoofed ke klien.
Jenis catatan sumber daya DNS yang spoofed tergantung pada jenis serangan pembajakan DNS. Catatan MX mungkin spoofed untuk mengalihkan email klien, atau rekaman A yang di-spoofed mungkin mengirim klien ke server web berbahaya.
DNSSEC berfungsi untuk mencegah pembajakan DNS dengan melakukan validasi pada respons DNS. Dalam skenario pembajakan DNS yang digambutkan di sini, perangkat klien dapat menolak respons DNS yang tidak divalidasi jika domain contoso.com ditandatangani dengan DNSSEC. Untuk menolak respons DNS yang tidak divalidasi, perangkat klien harus memberlakukan validasi DNSSEC untuk contoso.com.
DNSSEC juga menyertakan Next Secure 3 (NSEC3) untuk mencegah enumerasi zona. Enumerasi zona, juga dikenal sebagai zona berjalan, adalah serangan di mana penyerang menetapkan daftar semua nama di zona, termasuk zona anak.
Sebelum Anda menandatangani zona dengan DNSSEC, pastikan untuk memahami cara kerja DNSSEC. Saat Anda siap untuk menandatangani zona, lihat Cara menandatangani zona DNS Publik Azure Anda dengan DNSSEC.
Validasi DNSSEC
Jika server DNS sadar DNSSEC, server DNSSEC dapat mengatur bendera DNSSEC OK (DO) dalam kueri DNS ke nilai 1
. Nilai ini memberi tahu server DNS yang merespons untuk menyertakan rekaman sumber daya terkait DNSSEC dengan respons. Catatan DNSSEC ini adalah rekaman Tanda Tangan Catatan Sumber Daya (RRSIG) yang digunakan untuk memvalidasi bahwa respons DNS asli.
Server DNS rekursif (non-otoritatif) melakukan validasi DNSSEC pada catatan RRSIG menggunakan jangkar kepercayaan (DNSKEY). Server menggunakan DNSKEY untuk mendekripsi tanda tangan digital dalam rekaman RRSIG (dan rekaman terkait DNSSEC lainnya), lalu menghitung dan membandingkan nilai hash. Jika nilai hash sama, nilai tersebut memberikan balasan kepada klien DNS dengan data DNS yang dimintanya, seperti catatan alamat host (A). Lihat diagram berikut:
Jika nilai hash tidak sama, server DNS rekursif membalas dengan pesan SERVFAIL. Dengan cara ini, server DNS berkemampuan DNSSEC menyelesaikan (atau meneruskan) dengan jangkar kepercayaan yang valid yang diinstal dapat melindungi dari pembajakan DNS di jalur antara server rekursif dan server otoritatif. Perlindungan ini tidak mengharuskan perangkat klien DNS untuk sadar DNSSEC atau untuk memberlakukan validasi respons DNS, asalkan server DNS rekursif lokal (lompatan terakhir) itu sendiri aman dari pembajakan.
Perangkat klien Windows 10 dan Windows 11 tidak memvalidasi pemecah masalah stub yang sadar keamanan. Perangkat klien ini tidak melakukan validasi, tetapi dapat memberlakukan validasi DNSSEC menggunakan Kebijakan Grup. NRPT dapat digunakan untuk membuat dan menerapkan kebijakan validasi DNSSEC berbasis namespace layanan.
Jangkar kepercayaan dan validasi DNSSEC
Catatan
Validasi respons DNSSEC tidak dilakukan oleh resolver default yang disediakan Azure. Informasi di bagian ini sangat membantu jika Anda menyiapkan server DNS rekursif Anda sendiri untuk validasi DNSSEC atau memecahkan masalah validasi.
Jangkar kepercayaan beroperasi berdasarkan hierarki namespace DNS. Server DNS rekursif dapat memiliki sejumlah jangkar kepercayaan, atau tidak ada jangkar kepercayaan. Jangkar kepercayaan dapat ditambahkan untuk satu zona DNS anak, atau zona induk apa pun. Jika server DNS rekursif memiliki jangkar kepercayaan root (.), maka server DNSSEC dapat melakukan validasi DNSSEC di zona DNS apa pun. Untuk informasi selengkapnya, lihat Informasi Operator Zona Akar.
Proses validasi DNSSEC berfungsi dengan jangkar kepercayaan sebagai berikut:
- Jika server DNS rekursif tidak memiliki jangkar kepercayaan DNSSEC untuk zona atau namespace hierarki induk zona tersebut, server tersebut tidak akan melakukan validasi DNSSEC pada zona tersebut.
- Jika server DNS rekursif memiliki jangkar kepercayaan DNSSEC untuk namespace layanan induk zona dan menerima kueri untuk zona anak, ia memeriksa untuk melihat apakah catatan DS untuk zona turunan ada di zona induk.
- Jika catatan DS ditemukan, server DNS rekursif melakukan validasi DNSSEC.
- Jika server DNS rekursif menentukan bahwa zona induk tidak memiliki catatan DS untuk zona anak, ia mengasumsikan zona anak tidak aman dan tidak melakukan validasi DNSSEC.
- Jika beberapa server DNS rekursif terlibat dalam respons DNS (termasuk penerus), setiap server harus dapat melakukan validasi DNSSEC pada respons sehingga ada rantai kepercayaan yang tidak putus.
- Server rekursif yang menonaktifkan validasi DNSSEC atau tidak sadar DNSSEC tidak melakukan validasi.
Rantai kepercayaan
Rantai kepercayaan terjadi ketika semua server DNS yang terlibat dalam pengiriman respons untuk kueri DNS dapat memvalidasi bahwa respons tidak dimodifikasi selama transit. Agar validasi DNSSEC berfungsi secara menyeluruh, rantai kepercayaan harus tidak terpecah. Rantai kepercayaan ini berlaku untuk server otoritatif dan non-otoritatif (rekursif).
Server otoritatif
Server DNS otoritatif mempertahankan rantai kepercayaan melalui penggunaan rekaman penanda tangan delegasi (DS). Catatan DS digunakan untuk memverifikasi keaslian zona anak dalam hierarki DNS.
- Agar validasi DNSSEC terjadi pada zona yang ditandatangani, induk zona yang ditandatangani juga harus ditandatangani. Zona induk juga harus memiliki catatan DS untuk zona anak.
- Selama proses validasi, induk zona dikueri untuk catatan DS. Jika catatan DS tidak ada, atau data rekaman DS di induk tidak cocok dengan data DNSKEY di zona anak, rantai kepercayaan rusak dan validasi gagal.
Server rekursif
Server DNS rekursif (juga disebut menyelesaikan atau menyimpan cache server DNS) mempertahankan rantai kepercayaan melalui penggunaan jangkar kepercayaan DNSSEC.
- Jangkar kepercayaan adalah catatan DNSKEY, atau catatan DS yang berisi hash catatan DNSKEY. Catatan DNSKEY dibuat di server otoritatif saat zona ditandatangani, dan dihapus dari zona jika zona tidak ditandatangani.
- Jangkar kepercayaan harus diinstal secara manual pada server DNS rekursif.
- Jika ada jangkar kepercayaan untuk zona induk, server rekursif dapat memvalidasi semua zona turunan di namespace hierarkis. Ini termasuk kueri yang diteruskan. Untuk mendukung validasi DNSSEC dari semua zona DNS yang ditandatangani DNSSEC, Anda dapat menginstal jangkar kepercayaan untuk zona root (.).
Rollover kunci
Kunci penandatanganan zona (ZSK) di zona yang ditandatangani DNSSEC secara berkala digulirkan (diganti) secara otomatis oleh Azure. Seharusnya tidak perlu mengganti kunci penandatanganan kunci (KSK), tetapi opsi ini tersedia dengan menghubungi dukungan Microsoft. Mengganti KSK mengharuskan Anda juga memperbarui catatan DS di zona induk.
Algoritma penandatanganan zona
Zona ditandatangani DNSSEC menggunakan Algoritma Tanda Tangan Digital Kurva Elips (ECDSAP256SHA256).
Rekaman sumber daya terkait DNSSEC
Tabel berikut ini menyediakan deskripsi singkat rekaman terkait DNSSEC. Untuk informasi selengkapnya, lihat RFC 4034: Catatan Sumber Daya untuk Ekstensi Keamanan DNS dan RFC 7344: Mengotomatiskan Pemeliharaan Kepercayaan Delegasi DNSSEC.
Rekaman | Deskripsi |
---|---|
Tanda tangan rekaman sumber daya (RRSIG) | Jenis catatan sumber daya DNSSEC yang digunakan untuk menyimpan tanda tangan, yang mencakup sekumpulan catatan DNS untuk nama dan jenis tertentu. |
DNSKEY | Jenis catatan sumber daya DNSSEC yang digunakan untuk menyimpan kunci publik. |
Penanda tangan delegasi (DS) | Jenis catatan sumber daya DNSSEC yang digunakan untuk mengamankan delegasi. |
Keamanan berikutnya (NSEC) | Jenis catatan sumber daya DNSSEC yang digunakan untuk membuktikan tidak adanya nama DNS. |
Selanjutnya aman 3 (NSEC3) | Catatan sumber daya NSEC3 yang menyediakan penolakan keberadaan yang di-hash dan diautentikasi untuk kumpulan catatan sumber daya DNS. |
Parameter 3 aman berikutnya (NSEC3PARAM) | Menentukan parameter untuk rekaman NSEC3. |
Penanda tangan delegasi anak (CDS) | Rekaman ini bersifat opsional. Jika ada, rekaman CDS dapat digunakan oleh zona anak untuk menentukan konten rekaman DS yang diinginkan di zona induk. |
DNSKEY anak (CDNSKEY) | Rekaman ini bersifat opsional. Jika rekaman CDNSKEY ada di zona anak, data tersebut dapat digunakan untuk menghasilkan catatan DS dari catatan DNSKEY. |
Menampilkan rekaman sumber daya terkait DNSSEC
Rekaman terkait DNSSEC tidak ditampilkan di portal Azure. Untuk menampilkan rekaman terkait DNSSEC, gunakan alat baris perintah seperti Resolve-DnsName atau dig.exe. Alat-alat ini tersedia menggunakan Cloud Shell, atau secara lokal jika diinstal di perangkat Anda. Pastikan untuk mengatur bendera DO di kueri Anda dengan menggunakan -dnssecok
opsi di Resolve-DnsName atau +dnssec
opsi di dig.exe.
Penting
Jangan gunakan alat baris perintah nslookup.exe untuk mengkueri rekaman terkait DNSSEC. Alat nslookup.exe menggunakan klien DNS internal yang tidak sadar DNSSEC.
Lihat contoh berikut:
PS C:\> resolve-dnsname server1.contoso.com -dnssecok
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
server1.contoso.com A 3600 Answer 203.0.113.1
Name : server1.contoso.com
QueryType : RRSIG
TTL : 3600
Section : Answer
TypeCovered : A
Algorithm : 13
LabelCount : 3
OriginalTtl : 3600
Expiration : 9/20/2024 11:25:54 PM
Signed : 9/18/2024 9:25:54 PM
Signer : contoso.com
Signature : {193, 20, 122, 196…}
C:\>dig server1.contoso.com +dnssec
; <<>> DiG 9.9.2-P1 <<>> server1.contoso.com +dnssec
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61065
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 512
;; QUESTION SECTION:
;server1.contoso.com. IN A
;; ANSWER SECTION:
server1.contoso.com. 3600 IN A 203.0.113.1
server1.contoso.com. 3600 IN RRSIG A 13 3 3600 20240920232359 20240918212359 11530 contoso.com. GmxeQhNk1nJZiep7nuCS2qmOQ+Ffs78Z2eoOgIYP3j417yqwS1DasfA5 e1UZ4HuujDk2G6GIbs0ji3RiM9ZpGQ==
;; Query time: 153 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu Sep 19 15:23:45 2024
;; MSG SIZE rcvd: 179
PS C:\> resolve-dnsname contoso.com -Type dnskey -dnssecok
Name Type TTL Section Flags Protocol Algorithm Key
---- ---- --- ------- ----- -------- --------- ---
contoso.com DNSKEY 3600 Answer 256 DNSSEC 13 {115, 117, 214,
165…}
contoso.com DNSKEY 3600 Answer 256 DNSSEC 13 {149, 166, 55, 78…}
contoso.com DNSKEY 3600 Answer 257 DNSSEC 13 {45, 176, 217, 2…}
Name : contoso.com
QueryType : RRSIG
TTL : 3600
Section : Answer
TypeCovered : DNSKEY
Algorithm : 13
LabelCount : 2
OriginalTtl : 3600
Expiration : 11/17/2024 9:00:15 PM
Signed : 9/18/2024 9:00:15 PM
Signer : contoso.com
Signature : {241, 147, 134, 121…}
C:\>dig contoso.com dnskey
; <<>> DiG 9.9.2-P1 <<>> contoso.com dnskey
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46254
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;contoso.com. IN DNSKEY
;; ANSWER SECTION:
contoso.com. 3600 IN DNSKEY 256 3 13 laY3Toc/VTyjupgp/+WgD05N+euB6Qe1iaM/253k7bkaA0Dx+gSDhbH2 5wXTt+uLQgPljL9OusKTneLdhU+1iA==
contoso.com. 3600 IN DNSKEY 257 3 13 LbDZAtjG8E9Ftih+LC8CqQrSZIJFFJMtP6hmN3qBRqLbtAj4JWtr2cVE ufXM5Pd/yW+Ca36augQDucd5n4SgTg==
contoso.com. 3600 IN DNSKEY 256 3 13 c3XWpTqZ0q9IO+YqMEtOBHZSzGGeyFKq0+3xzs6tifvD1rey1Obhrkz4 DJlEIxy2m84VsG1Ij9VYdtGxxeVHIQ==
;; Query time: 182 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu Sep 19 16:35:10 2024
;; MSG SIZE rcvd: 284
Terminologi DNSSEC
Daftar ini disediakan untuk membantu memahami beberapa istilah umum yang digunakan saat membahas DNSSEC. Lihat juga: Rekaman sumber daya terkait DNSSEC
Persyaratan | Deskripsi |
---|---|
Bit data terautentikasi (AD) | Bit data yang menunjukkan dalam respons bahwa semua data yang disertakan dalam bagian jawaban dan otoritas respons telah diautentikasi oleh server DNS sesuai dengan kebijakan server tersebut. |
Rantai autentikasi | Rantai catatan DNS yang ditandatangani dan divalidasi yang diperluas dari jangkar kepercayaan yang telah dikonfigurasi sebelumnya ke beberapa zona anak di pohon DNS. |
Ekstensi DNS (EDNS0) | Catatan DNS yang membawa informasi header DNS yang diperluas, seperti bit DO dan ukuran paket UDP maksimum. |
Ekstensi Keamanan DNS (DNSSEC) | Ekstensi ke layanan DNS yang menyediakan mekanisme untuk penandatanganan dan untuk menyelesaikan data DNS dengan aman. |
DNSSEC OK (DO) bit | Sedikit dalam bagian EDNS0 dari permintaan DNS yang menandakan bahwa klien mengetahui DNSSEC. |
Validasi DNSSEC | Validasi DNSSEC adalah proses memverifikasi asal dan integritas data DNS menggunakan kunci kriptografi publik. |
Pulau keamanan | Zona bertanda tangan yang tidak memiliki rantai autentikasi dari zona induk pendelegasiannya. |
Kunci penandatanganan kunci (KSK) | Kunci autentikasi yang sesuai dengan kunci privat yang digunakan untuk menandatangani satu atau beberapa kunci penandatanganan lainnya untuk zona tertentu. Biasanya, kunci privat yang sesuai dengan KSK menandatangani kunci penandatanganan zona (ZSK), yang pada gilirannya memiliki kunci privat yang sesuai yang menandatangani data zona lain. Kebijakan lokal dapat mengharuskan ZSK sering diubah, sementara KSK dapat memiliki periode validitas yang lebih lama untuk memberikan titik masuk yang lebih stabil dan aman ke zona tersebut. Menunjuk kunci autentikasi sebagai KSK murni masalah operasional: Validasi DNSSEC tidak membedakan antara KSK dan kunci autentikasi DNSSEC lainnya. Anda dapat menggunakan satu kunci sebagai KSK dan ZSK. |
Membatalkan validasi penyelesai stub yang sadar keamanan | Pemecah stub sadar keamanan yang mempercayai satu atau beberapa server DNS yang sadar keamanan untuk melakukan validasi DNSSEC atas namanya. |
kunci secure entry point (SEP) | Subset kunci publik dalam DNSKEY RRSet. Kunci SEP digunakan baik untuk menghasilkan RR DS atau didistribusikan ke pemecah masalah yang menggunakan kunci sebagai jangkar kepercayaan. |
Server DNS yang sadar keamanan | Server DNS yang mengimplementasikan ekstensi keamanan DNS seperti yang didefinisikan dalam RFCs 4033 [5], 4034 [6], dan 4035 [7]. Secara khusus, server DNS yang sadar keamanan adalah entitas yang menerima kueri DNS, mengirim respons DNS, mendukung ekstensi ukuran pesan EDNS0 [3] dan bit DO, dan mendukung jenis catatan DNSSEC dan bit header pesan. |
Zona bertanda tangan | Zona yang rekamannya ditandatangani sebagaimana didefinisikan oleh RFC 4035 [7] Bagian 2. Zona yang ditandatangani dapat berisi catatan sumber daya DNSKEY, NSEC, NSEC3, NSEC3PARAM, RRSIG, dan DS. Rekaman sumber daya ini memungkinkan data DNS divalidasi oleh pemecah masalah. |
Jangkar kepercayaan | Kunci publik yang telah dikonfigurasi sebelumnya yang terkait dengan zona tertentu. Jangkar kepercayaan memungkinkan pemecah masalah DNS memvalidasi rekaman sumber daya DNSSEC yang ditandatangani untuk zona tersebut dan membangun rantai autentikasi ke zona anak. |
Zona tidak bertanda tangan | Zona DNS apa pun yang belum ditandatangani seperti yang didefinisikan oleh RFC 4035 [7] Bagian 2. |
Penandatanganan zona | Penandatanganan zona adalah proses pembuatan dan penambahan rekaman sumber daya terkait DNSSEC ke zona, sehingga kompatibel dengan validasi DNSSEC. |
Pembatalan penyairan zona | Pembatalan penerusan zona adalah proses menghapus rekaman sumber daya terkait DNSSEC dari zona, memulihkannya ke status tidak ditandatangani. |
Kunci penandatanganan zona (ZSK) | Kunci autentikasi yang sesuai dengan kunci privat yang digunakan untuk menandatangani zona. Biasanya, kunci penandatanganan zona adalah bagian dari DNSKEY RRSet yang sama dengan kunci penandatanganan kunci yang kunci privat yang sesuai menandatangani DNSKEY RRSet ini, tetapi kunci penandatanganan zona digunakan untuk tujuan yang sedikit berbeda dan dapat berbeda dari kunci penandatanganan kunci dengan cara lain, seperti dalam masa pakai validitas. Menunjuk kunci autentikasi sebagai kunci penandatanganan zona murni masalah operasional; Validasi DNSSEC tidak membedakan antara kunci penandatanganan zona dan kunci autentikasi DNSSEC lainnya. Anda dapat menggunakan satu kunci sebagai kunci penandatanganan kunci dan kunci penandatanganan zona. |
Langkah berikutnya
- Pelajari cara menandatangani zona DNS dengan DNSSEC.
- Pelajari cara membatalkan penetapan zona DNS.
- Pelajari cara menghosting zona pencarian balik untuk rentang IP yang ditetapkan ISP Anda di Azure DNS.
- Pelajari cara mengelola rekaman reverse DNS untuk layanan Azure Anda.