DNSCrypt
ก่อนที่ DNS บน HTTPS จะสร้างกระแสหลักของ DNS ที่เข้ารหัส DNSCrypt เป็นเพียงตัวเลือกเดียวที่ใช้กันอย่างแพร่หลายในการรักษาการจำแนกชื่อให้เป็นส่วนตัว มันยังคงมาพร้อมกับ pfSense, พร็อกซี DoH ของ Pi-hole และ Linux หลายรุ่น และตัวเลือกการออกแบบของโปรโตคอล — รีเลย์ที่ไม่ระบุชื่อ, การหมุนเวียนใบรับรองเซิร์ฟเวอร์, ไม่มีค่าใช้จ่าย TLS — ทำให้มันน่าสนใจแม้ในตอนนี้
เนื้อหาบทความฉบับเต็มมีให้เป็นภาษาอังกฤษด้านล่าง
DNSCrypt ถูกสร้างขึ้นโดยวิศวกร OpenDNS Frank Denis ในปี 2554 เพื่อเข้ารหัสและตรวจสอบสิทธิ์การสืบค้น DNS ระหว่างไคลเอนต์และตัวแก้ไข โปรโตคอล DNS ธรรมดาตั้งแต่ปี 1983 ไม่มีการรับรองความถูกต้องเลย: ข้อความค้นหาคือแพ็กเก็ต UDP และอุปกรณ์ใดๆ บนเส้นทางสามารถอ่าน แก้ไขคำตอบ หรือปลอมแปลงคำตอบได้ DNSCrypt แก้ไขปัญหาทั้งสองหลายปีก่อนที่จะมี DNS บน HTTPS
โปรโตคอลในย่อหน้าเดียว
ไคลเอนต์ดึง certificate ที่ลงนามแล้วจากตัวแก้ไขที่โฆษณารหัสสาธารณะระยะสั้นและรหัสที่รองรับ จากนั้นไคลเอนต์เข้ารหัสแต่ละแบบสอบถามด้วย X25519 + XChaCha20-Poly1305 หรือ XSalsa20-Poly1305 และส่งไปยังตัวแก้ไขบนพอร์ต 443 (หรือ 53 ด้วยไบต์วิเศษ DNSCrypt) ตัวแก้ไขจะถอดรหัส ค้นหาคำตอบ เข้ารหัสการตอบสนอง และส่งคืน ใบรับรองชั่วคราวจะมีการหมุนเวียนบ่อยครั้ง ดังนั้นการประนีประนอมคีย์จึงมีผลกระทบอย่างจำกัด
DNSCrypt เทียบกับ DoH เทียบกับ DoT
ทั้งสามเข้ารหัสแบบสอบถาม ความแตกต่างในทางปฏิบัติ:
- DNSCrypt: โปรโตคอลแบบกำหนดเอง โอเวอร์เฮดต่ำ รองรับรีเลย์ที่ไม่เปิดเผยชื่อนอกกรอบ ต้องใช้ไคลเอ็นต์ DNSCrypt-aware
- DNS ผ่าน TLS (DoT): TLS มาตรฐาน บนพอร์ต 853 โปร่งใสต่อเครือข่าย แต่ถูกบล็อกได้ง่ายโดย ปิดพอร์ตนั้น
- DNS ผ่าน HTTPS (DoH): สืบค้นผ่าน HTTPS บนพอร์ต 443 ซึ่งแยกไม่ออกจากการรับส่งข้อมูลเว็บ ยากที่จะบล็อกโดยไม่ทำให้อินเทอร์เน็ตเสียหาย
DoH ชนะการแข่งขันมาตรฐานเนื่องจากมัน piggybacks บนพอร์ตที่มีการใช้งานหนักที่สุดบนอินเทอร์เน็ต DNSCrypt ยังคงมีอยู่เนื่องจากคุณสมบัติการปฏิบัติงานที่ DoH ไม่มี โดยเฉพาะรีเลย์ที่ไม่ระบุชื่อ
DNSCrypt ที่ไม่ระบุชื่อ: แยกว่าใครถูกถามจากสิ่งที่ถูกถาม
คุณสมบัตินักฆ่าคือ Anonymized DNSCrypt ที่เพิ่มเข้ามาในปี 2019 ข้อความค้นหาได้รับการเข้ารหัสสองครั้ง: เลเยอร์ด้านนอกสำหรับ รีเลย์ชั้นในสำหรับตัวแก้ไข รีเลย์จะถอดรหัสเลเยอร์ด้านนอก เห็นเฉพาะที่อยู่ของรีโซลเวอร์ (ไม่ใช่คำถาม) และส่งต่อไซเฟอร์เท็กซ์ภายใน ตัวแก้ไขจะถอดรหัสเลเยอร์ด้านใน เห็นคำถาม แต่ไม่ใช่ IP ไคลเอ็นต์ดั้งเดิม ตราบใดที่รีเลย์และรีโซลเวอร์ดำเนินการโดยฝ่ายต่างๆ และไม่สมรู้ร่วมคิด ไม่มีใครสามารถเชื่อมโยงผู้ใช้กับแบบสอบถามได้
นี่เป็นทรัพย์สินความเป็นส่วนตัวเดียวกันกับ Oblivious DNS ของ Apple บน HTTPS (ODoH) แต่ DNSCrypt จัดส่งมาก่อนและรองรับรายการรีเลย์และรีโซลเวอร์สาธารณะที่ใหญ่กว่ามาก ซึ่งดำเนินการโดยอาสาสมัครอิสระ ทั่วโลก
แนวนอนไคลเอนต์
dnscrypt-proxyเป็นไคลเอนต์อ้างอิง — ไบนารี Go เดียวที่ทำงานบน Linux, macOS, Windows, OpenBSD และ FreeBSD โดยยอมรับ DNS ธรรมดาบน localhost ส่งต่อไปยังรีโซลเวอร์ที่กำหนดค่าไว้บน DNSCrypt หรือ DoH รองรับการกรอง การบล็อก การบันทึกการสืบค้น และการปรับสมดุลโหลดข้ามรีโซลเวอร์ pfSense และ OPNsense จัดส่งเป็นพัสดุ Pi-hole รองรับ DNSCrypt ผ่าน dnscrypt-proxy เป็นอัปสตรีม
ในด้านรีโซลเวอร์ รีโซลเวอร์สาธารณะที่เปิดใช้งาน DNSCrypt ได้แก่ Cisco OpenDNS, NextDNS, Quad9, AdGuard และโหนดที่ดำเนินการโดยชุมชนขนาดเล็กอีกหลายสิบโหนด รายการที่เก็บรักษาไว้อยู่ใน dnscrypt-resolvers repository.
What DNSCrypt ไม่สามารถแก้ปัญหา
Encrypting DNS ไม่ได้ทำให้การท่องเว็บของคุณเป็นแบบส่วนตัว ปลายทางของการเชื่อมต่อ HTTPS ทั้งหมดจะปรากฏแก่เครือข่ายในช่อง TLS ServerName Indication (SNI) ซึ่งเป็นเหตุผลว่าทำไม Encrypted Client Hello จึงมีความสำคัญ DNSCrypt ยังไม่ช่วยต่อต้านรีโซลเวอร์ที่เป็นอันตราย หากคุณชี้ dnscrypt-proxy ไปที่รีโซลเวอร์ที่บันทึกทุกอย่าง รีโซลเวอร์ก็ยังคงมีคำถามของคุณอยู่ โปรโตคอลเพียงป้องกันไม่ให้ผู้สังเกตการณ์บนเส้นทางมองเห็นพวกเขา
ในกรณีที่ DNSCrypt เหมาะกับ 2026
สำหรับผู้ใช้ส่วนใหญ่ DoH ในตัวของ OS หรือเบราว์เซอร์ก็เพียงพอแล้ว สำหรับผู้ที่ใช้โครงสร้างพื้นฐานของตนเอง — โฮมแล็บ, ธุรกิจขนาดเล็ก, เราเตอร์ที่เน้นความเป็นส่วนตัว — dnscrypt-proxy ยังคงเป็นตัวเลือกที่ยืดหยุ่นที่สุด การผสมผสานระหว่างรีเลย์ที่ไม่ระบุชื่อ โหลดบาลานซ์ที่ง่ายดาย และใบรับรองตัวแก้ไขที่ตรวจสอบได้แบบออฟไลน์นั้นเทียบได้ยาก
คำถามที่พบบ่อย
- DNSCrypt ดีกว่า DNS บน HTTPS หรือไม่
- ไม่มีดีกว่าอย่างเคร่งครัด DoH เป็นมาตรฐานที่กว้างขึ้น จัดส่งในเบราว์เซอร์ และรอดจากการบล็อกพอร์ตด้วยการทำงานบน 443 DNSCrypt มีโอเวอร์เฮดของโปรโตคอลที่ต่ำกว่า รองรับดั้งเดิมสำหรับรีเลย์ที่ไม่ระบุชื่อ และไคลเอนต์อ้างอิงที่สมบูรณ์ยิ่งขึ้น หากคุณต้องการ DNS ที่ไม่เปิดเผยตัวตนในวันนี้ด้วยการเปลี่ยนแปลงการกำหนดค่าเพียงครั้งเดียว DNSCrypt ยังคงเป็นเส้นทางที่สะอาดที่สุด
- การใช้ DNSCrypt จะทำให้การท่องเว็บของฉันช้าลงหรือไม่
- แทบจะไม่. การตรวจสอบสิทธิ์จะเพิ่มการทำงานของ crypto เป็นเวลาหลายสิบไมโครวินาทีและ UDP ไปกลับพิเศษหนึ่งครั้งในการสืบค้นครั้งแรกของเซสชัน เมื่อแคชใบรับรองตัวแก้ไขแล้ว การสืบค้นจะมีเวลาแฝงโดยประมาณเท่ากับ DNS ธรรมดา DNSCrypt ที่ไม่ระบุชื่อจะเพิ่มการกระโดดอีกหนึ่งรายการ ซึ่งจะเพิ่มเวลาอีกสองสามมิลลิวินาที
- ISP ของฉันยังสามารถเห็นการสืบค้น DNS ของฉันด้วย DNSCrypt ได้หรือไม่
- ไม่ ไม่ใช่เนื้อหา พวกเขาเห็น UDP หรือ TCP ที่เข้ารหัสไปยัง IP ของตัวแก้ไข พวกเขายังสามารถดูว่าคุณพูดคุยด้วยตัวแก้ไขตัวใด หากเป้าหมายคือการซ่อนทั้งการสืบค้นและตัวเลือกตัวแก้ไข ให้เรียกใช้ DNSCrypt ผ่าน VPN
- DNSCrypt ป้องกันการไฮแจ็ก DNS หรือไม่
- ใช่ สำหรับการไฮแจ็กบนเส้นทาง — ใบรับรองตัวแก้ไขได้รับการตรวจสอบโดยไคลเอ็นต์ ดังนั้นการตอบสนองที่แทรกเข้ามาหรือปลอมแปลงจะถูกตรวจพบและทิ้งไป ไม่ได้ป้องกันตัวแก้ไข <em>chosen</em> ที่ไม่เป็นมิตร หรือการแย่งชิงผู้รับจดทะเบียนโดเมนในด้านที่เชื่อถือได้ ดูบทความการจี้ <a href="/learning/dns-hijacking">DNS ของเรา </a> สำหรับพื้นผิวการโจมตีแบบเต็ม
- DNSCrypt ยังคงได้รับการพัฒนาหรือไม่?
- ใช่. dnscrypt-proxy มีการเปิดตัวเป็นประจำ และมีการเพิ่มฟีเจอร์การส่งต่อที่ไม่ระบุตัวตนของโปรโตคอลเมื่อเร็วๆ นี้ในปี 2019 นี่ไม่ใช่ตัวเลือก DNS ที่เข้ารหัสเพียงตัวเดียวอีกต่อไป แต่ผู้ดูแลยังคงปรับปรุงต่อไปสำหรับฐานผู้ใช้ที่ขึ้นอยู่กับมัน