เกริ่นนำ
คำค้นหาและการตอบกลับ DNS แบบดั้งเดิมจะส่งผ่าน UDP หรือ TCP โดยไม่มีการเข้ารหัส ซึ่งเสี่ยงต่อการดักฟังและปลอมแปลง (รวมถึงการกรองอินเทอร์เน็ตผ่าน DNS) การตอบกลับจากรีโซลเวอร์แบบเรียกซ้ำถึงไคลเอ็นต์มีความเสี่ยงมากที่สุดต่อการเปลี่ยนแปลงที่ไม่พึงประสงค์หรือเป็นอันตราย ขณะที่การสื่อสารระหว่างรีโซลเวอร์แบบวนซ้ำและเนมเซิร์ฟเวอร์ที่เชื่อถือได้มักจะรวมการปกป้องเพิ่มเติมไว้ด้วย
DNS สาธารณะของ Google มีการแปลง DNS ผ่านการเชื่อมต่อ TCP ที่เข้ารหัส TLS ตามที่ RFC 7858 ระบุเพื่อแก้ไขปัญหาเหล่านี้ DNS-over-TLS ช่วยเพิ่มความเป็นส่วนตัวและความปลอดภัยระหว่างไคลเอ็นต์และรีโซลเวอร์ การดำเนินการนี้จะเสริม DNSSEC และปกป้องผลลัพธ์ที่ตรวจสอบแล้วของ DNSSEC จากการแก้ไขหรือการปลอมแปลงระหว่างทางไปยังไคลเอ็นต์
วิธีการทำงาน
ระบบไคลเอ็นต์ใช้ DNS-over-TLS กับ 2 โปรไฟล์ ซึ่งได้แก่ ความเป็นส่วนตัวแบบเข้มงวดหรือแบบตามโอกาส เมื่อใช้โปรไฟล์ความเป็นส่วนตัวที่เข้มงวด ผู้ใช้จะกำหนดค่าชื่อเซิร์ฟเวอร์ DNS (ชื่อโดเมนการตรวจสอบสิทธิ์ใน RFC 8310) สำหรับบริการ DNS-over-TLS และไคลเอ็นต์จะต้องสร้างการเชื่อมต่อ TLS ที่ปลอดภัยในพอร์ต 853 ไปยังเซิร์ฟเวอร์ DNS ได้ ความล้มเหลวในการสร้างการเชื่อมต่อที่ปลอดภัยเป็นข้อผิดพลาดที่เกิดขึ้นจริงและจะทำให้ไม่มีบริการ DNS สำหรับไคลเอ็นต์
เมื่อใช้โปรไฟล์ความเป็นส่วนตัวตามโอกาส ที่อยู่ IP ของเซิร์ฟเวอร์ DNS อาจได้รับการกำหนดค่าโดยตรงโดยผู้ใช้หรือได้รับจากเครือข่ายภายใน (โดยใช้ DHCP หรือวิธีอื่นๆ) รีโซลเวอร์ไคลเอ็นต์จะพยายามเชื่อมต่อที่ปลอดภัยบนพอร์ต 853 ไปยังเซิร์ฟเวอร์ DNS ที่ระบุ เมื่อมีการเชื่อมต่อที่ปลอดภัย การตั้งค่านี้จะให้ความเป็นส่วนตัวสำหรับการค้นหาของผู้ใช้จากผู้สังเกตการณ์แบบแพสซีฟในเส้นทาง เนื่องจากไคลเอ็นต์ไม่ได้ยืนยันความถูกต้องของเซิร์ฟเวอร์ ไคลเอ็นต์จึงไม่ได้รับการปกป้องจากผู้โจมตีที่มีการใช้งาน หากไคลเอ็นต์ไม่สามารถสร้างการเชื่อมต่อที่ปลอดภัยบนพอร์ต 853 ไคลเอ็นต์จะสื่อสารกับเซิร์ฟเวอร์ DNS ในพอร์ต DNS มาตรฐาน 53 ผ่าน UDP หรือ TCP โดยไม่มีการรักษาความปลอดภัยหรือความเป็นส่วนตัวใดๆ การใช้ Opportunistic Privacy มีจุดประสงค์เพื่อสนับสนุนการใช้ความเป็นส่วนตัวที่เพิ่มขึ้นอย่างค่อยเป็นค่อยไปเพื่อให้มีการนำโปรไฟล์ความเป็นส่วนตัวที่เข้มงวดไปใช้อย่างแพร่หลาย
เมื่อใช้โปรไฟล์ความเป็นส่วนตัวที่เข้มงวด รีโซลเวอร์สตับจะสร้างการเชื่อมต่อ DNS-over-TLS ตามขั้นตอนต่อไปนี้
- มีการกำหนดค่ารีโซลเวอร์ DNS-over-TLS ด้วยชื่อรีโซลเวอร์ DNS-over-TLS
dns.google
- รีโซลเวอร์สตับจะรับที่อยู่ IP ของ
dns.google
โดยใช้รีโซลเวอร์ DNS ในเครื่อง - รีโซลเวอร์สตับจะเชื่อมต่อ TCP ไปยังพอร์ต 853 ที่ที่อยู่ IP ดังกล่าว
- รีโซลเวอร์สตับจะเริ่มแฮนด์เชค TLS กับรีโซลเวอร์ DNS สาธารณะของ Google
- เซิร์ฟเวอร์ DNS สาธารณะของ Google จะส่งคืนใบรับรอง TLS พร้อมเชนใบรับรอง TLS แบบเต็มรูปแบบ ไปจนถึงใบรับรองรูทที่เชื่อถือได้
- รีโซลเวอร์สตับจะยืนยันตัวตนของเซิร์ฟเวอร์ตามใบรับรองที่แสดง
- หากตรวจสอบข้อมูลประจำตัวไม่ได้ การแปลงชื่อ DNS จะไม่สำเร็จและตัวแก้ไขสตับจะแสดงข้อผิดพลาด
- หลังจากสร้างการเชื่อมต่อ TLS แล้ว รีโซลเวอร์สตับจะมีเส้นทางการสื่อสารที่ปลอดภัยระหว่างเซิร์ฟเวอร์ DNS สาธารณะของ Google
- ขณะนี้รีโซลเวอร์สตับสามารถส่งคำค้นหา DNS และรับการตอบกลับผ่านการเชื่อมต่อได้แล้ว
เมื่อใช้โปรไฟล์ความเป็นส่วนตัวตามโอกาส ไคลเอ็นต์จะพยายามสร้างการเชื่อมต่อ TLS ที่ปลอดภัยกับเซิร์ฟเวอร์เป็นครั้งแรก ซึ่งทำในลักษณะเดียวกับข้างต้น โดยมีข้อแตกต่างที่สำคัญอย่างหนึ่งคือ ไคลเอ็นต์ไม่ได้ทำการตรวจสอบใบรับรอง ซึ่งหมายความว่าข้อมูลประจำตัวของเซิร์ฟเวอร์จะไม่สามารถเชื่อถือได้ หากสร้างการเชื่อมต่อ TLS ในพอร์ต 853 ไปยังเซิร์ฟเวอร์ไม่ได้ รีโซลเวอร์สตับจะกลับไปคุยกับเซิร์ฟเวอร์ DNS ในพอร์ต 53
ความเป็นส่วนตัว
นโยบายความเป็นส่วนตัวของเรามีผลบังคับใช้กับบริการ DNS-over-TLS
ในวันที่ 27/06/2019 เราได้เปิดใช้ซับเน็ตไคลเอ็นต์ EDNS (ECS) อีกครั้งสำหรับบริการ DNS-over-TLS ECS ถูกปิดใช้เมื่อเปิดตัวบริการ
การสนับสนุนระดับมาตรฐาน
DNS สาธารณะของ Google จะใช้ DNS-over-TLS ตาม RFC 7858 นอกจากนี้ เรารองรับคำแนะนำต่อไปนี้เพื่อให้บริการ DNS ที่มีคุณภาพสูงและเวลาในการตอบสนองต่ำ
เริ่มใช้งาน
ดูinstructionsเพื่อกําหนดค่าในอุปกรณ์ที่ใช้ Android 9 (Pie) ขึ้นไป
นอกจากนี้ ยังรองรับ DNS-over-TLS สำหรับบริการ Google Public DNS64 แบบ IPv6 เท่านั้นด้วย โปรดทราบว่าเราไม่แนะนำให้กำหนดค่า DNS64 สำหรับอุปกรณ์เคลื่อนที่ที่จะเชื่อมต่อกับหลายเครือข่าย เนื่องจาก DNS64 จะใช้ได้เฉพาะเมื่อ IPv6 พร้อมใช้งานเท่านั้น