ค้นหาเว็บไซต์

นี่คือวิธีที่ผู้ให้บริการอินเทอร์เน็ตของคุณติดตามทุกเว็บไซต์ที่คุณเยี่ยมชม และเครื่องมือหนึ่งที่สามารถหยุดมันได้


คุณกังวลเกี่ยวกับรอยดิจิทัลของคุณหรือไม่? คุณรำคาญไหมที่ใครก็สามารถสังเกตว่าเว็บไซต์ใดบ้างที่คุณเยี่ยมชม? คนส่วนใหญ่ไม่รู้ว่า DNS คืออะไรหรือมันรั่วข้อมูลมากแค่ไหน ผมจะแชร์ให้คุณทราบว่าปัญหาคืออะไรและวิธีป้องกันตัวเองจากคนสอดแนม

DNS (ระบบชื่อโดเมน) เป็นกระดูกสันหลังของอินเทอร์เน็ต หากไม่มีมัน เบราว์เซอร์จะไม่สามารถแปลงชื่อโดเมน (เช่น linux-console.net) เป็นที่อยู่ IP ซึ่งสิ่งนี้สำคัญมาก เพราะหลักการพื้นฐานของการกำหนดเส้นทางการรับส่งข้อมูลขึ้นอยู่กับตัวเลข (ที่อยู่ IP) อย่างไรก็ตาม ผู้สร้าง DNS ไม่ได้คำนึงถึงความเป็นส่วนตัว (หรือความปลอดภัย) ดังนั้น DNS จึงรั่วไหลทุกเว็บไซต์ที่คุณเยี่ยมชม อีเมลเซิร์ฟเวอร์ที่คุณใช้ และบางครั้งมากกว่านั้นอีก คนที่สอดแนมสามารถสร้างโปรไฟล์จำนวนมากเกี่ยวกับพวกเราทุกคน และพวกเขาก็ทำอย่างนั้น มีความดีอย่างหนึ่งและมีความคืบหน้าอย่างช้า ๆ ไปในทิศทางที่ถูกต้อง วันนี้ ผมมีวิธีแก้ที่แตกต่างจากวิธีอื่น ๆ

บทนำสู่ DNS

วิดีโอนี้อธิบายวิธีการทำงานของ DNS ได้อย่างยอดเยี่ยม:

คุณสามารถเห็นได้ว่าการค้นหาไม่หยุดที่เซิร์ฟเวอร์ DNS ของคุณ (เรียกอีกอย่างว่า recursive resolver) จะมีคำขอเพิ่มเติมเกิดขึ้นจากต้นทาง ไล่ตรวจสอบไปเรื่อย ๆ จนกระทั่งถึง "เซิร์ฟเวอร์ชื่อที่มีอำนาจ" ที่จัดการโดเมนที่ตัวเองควบคุม (เรียกว่า DNS zone) วันนี้เราจะครอบคลุมส่วนสุดท้าย คือส่วนระหว่างระบบปฏิบัติการของคุณ (เรียกอีกอย่างว่า stub resolver) กับ recursive resolver

“ไมล์สุดท้าย” เป็นคำที่ใช้ในด้านโทรคมนาคม (จากมุมมองของผู้ให้บริการ) เพื่ออธิบายขั้นตอนสุดท้ายระหว่างระบบกับผู้ใช้งาน ในทางกลับกัน คำที่ไม่เป็นทางการว่า “อัพสตรีม” หมายถึงลิงก์ทั้งหมดที่เหลืออยู่ (ระหว่างตัวแก้ปัญหาและเซิร์ฟเวอร์ชื่อ) คำเหล่านี้ฟังแล้วค่อนข้างแปลกเมื่อนำมารวมกัน ดังนั้นจึงควรมีคำอธิบาย

ปัญหาที่น่าวิตกกับ DNS

ปัญหาที่ใหญ่ที่สุดของ DNS คือคำขอระหว่าง stub resolver (ในระบบปฏิบัติการของคุณ) กับ recursive resolver ไม่ได้เข้ารหัส แพ็กเก็ตเหล่านี้มีข้อมูลเกี่ยวกับที่ที่คุณช้อปปิ้ง ธนาคารที่คุณใช้ เวลาในการตื่นนอน และสิ่งที่คุณชอบ ดู หรือคิด รวมถึงเวลาที่คุณทำสิ่งเหล่านั้น รูปแบบการใช้งานของคุณมีความเฉพาะตัวมากจนสามารถระบุและติดตามคุณผ่านเครือข่ายได้ ดังนั้น หากคุณใช้ VPN คำขอ DNS ของคุณจะทำหน้าที่เหมือนสัญญาณส่องแสง ที่ระบุตัวคุณอย่างชัดเจน สิ่งนี้สามารถเกิดขึ้นได้แม้ในกรณีที่มีการเข้ารหัสคำขอ

คำขอ DNS ทั่วไปมักเกิดขึ้นผ่าน UDP ซึ่งเป็นการเชื่อมต่อแบบไม่คงที่ ซึ่งไม่ได้รับประกันความสมบูรณ์ของข้อมูล รวมกับการขาดการเข้ารหัส ทำให้มันง่ายต่อการถูกดักจับและแก้ไขได้อย่างน่าตกใจ ในความเป็นจริง เป็นเรื่องปกติที่ผู้ให้บริการอินเทอร์เน็ตของคุณจะทำเช่นนั้น ส่งต่อคำขอไปยังตัวแก้ไขของพวกเขาเองหรือปรับเปลี่ยนการตอบสนอง ดังนั้น หากคุณคิดว่ากำลังใช้ DNS ของ Cloudflare ลองคิดใหม่ ระบบเซ็นเซอร์มวลชนก็ใช้วิธีการเช่นนี้เช่นกัน: ไฟร์วอลล์ยักษ์ใหญ่ของจีนใช้การตรวจสอบแพ็กเก็ตอย่างลึกซึ้งและการฉีด DNS เพื่อเปลี่ยนเส้นทางคำขอ

สิ่งสำคัญคือต้องตระหนักว่า การร้องขอ DNS ของคุณอาจผ่านหลายเขตอำนาจศาล และบ่อยครั้งที่ประเทศหรือองค์กรต่างๆ ไม่ได้มีค่านิยมเหมือนกับคุณ บางแห่งอาจมีความแตกต่างทางอุดมการณ์ ในขณะที่บางแห่งมีเจตนาทางการค้า ซึ่งสิ่งนี้ก็ไม่ได้จำกัดอยู่แค่ต่างประเทศเพียงอย่างเดียว เป็นที่ทราบกันดีว่า Comcast เคยเปลี่ยนเส้นทางลูกค้าของตนไปยังหน้าเว็บที่มีโฆษณาเมื่อเกิดข้อผิดพลาดโดเมนที่ไม่มีอยู่จริง (NXDOMAIN)

แม้ว่าคุณอาจจะไม่มีอะไรต้องปิดบัง แต่คำขอ DNS ของคุณ กำลังถูกดักจับและเปลี่ยนเส้นทาง ซึ่งทำให้คุณตกอยู่ในความเสี่ยงต่อการถูกชักจูงทางสังคมและการจัดทำโปรไฟล์เชิงพาณิชย์ ผมไม่รู้เกี่ยวกับคุณ แต่การดักจับแพ็กเก็ตของผมที่ไม่มีการควบคุมทำให้รู้สึกไม่สบายใจอย่างมาก

DNSCrypt มาช่วยแล้ว

เราได้สรุปแล้วว่าการสอบถาม DNS ที่ไม่ได้เข้ารหัสเปิดโอกาสให้มีการตีความและการปรับแต่งข้อมูลได้ และวิธีแก้ปัญหาที่ดีที่สุดก็คือการเข้ารหัสเสมอ มีวิธีแก้ปัญหาหลายวิธีในการทำเช่นนี้ โดย DNS-over-TLS (DoT) และ DNS-over-HTTPS (DoH) เป็นสองวิธี แม้ว่าวิธีเหล่านี้จะดีและมักจะแนะนำ แต่ก็ไม่ได้มีคุณสมบัติเพิ่มเติมที่ DNSCrypt มี

DNSCrypt เป็นตัวเลือกที่ฉันใช้เป็นประจำเพราะมันเข้ารหัสและเพิ่ม padding ให้กับคำขอของคุณ การใส่ padding เป็นเรื่องสำคัญเพราะแพ็กเกจที่ส่งขึ้นไปข้างบนจะถูกถอดรหัส และผู้สอดแนมที่มีทรัพยากรสูง (เช่น ISP) สามารถเชื่อมโยงแพ็กเกจที่เข้ารหัสและไม่เข้ารหัสตามขนาดและเวลาที่ส่ง ทำให้การเข้ารหัสไม่มีความหมาย ทั้ง DoT และ DoH มีการสนับสนุนสิ่งนี้ค่อนข้างน้อย ดังนั้นจึงมักไม่ได้ใช้ DNSCrypt บังคับให้คุณสมบัตินี้เป็นสิ่งจำเป็น ดังนั้นแพ็กเกจของคุณทั้งหมดจึงสามารถทนต่อการวิเคราะห์และการเชื่อมโยงการจราจรได้

อย่างไรก็ตาม สิ่งที่ทำให้ผมมั่นใจที่สุดคือฟีเจอร์รีเลย์เพิ่มเติม เมื่อมีการร้องขอ DNSCrypt จะส่งคำร้องที่เข้ารหัสของคุณผ่านตัวกลาง (รีเลย์) มันไม่สามารถอ่านข้อมูลได้ แต่จะรู้ว่ามีใครเป็นผู้ส่งคำร้อง เมื่อมันส่งต่อแพ็กเก็ต ข้อมูลที่ต้นทางเห็นมีเพียงรีเลย์ที่ส่งคำร้องและข้อมูลของคำร้องเท่านั้น ซึ่งหมายความว่าพวกเขาไม่สามารถรู้เกี่ยวกับคุณได้เลย

ดังนั้น DNSCrypt จะเข้ารหัส กรอกข้อมูลเสริม และส่งคำขอของคุณผ่านรีเลย์ ทั้งสามสิ่งนี้ทำให้ DNSCrypt เป็นตัวเลือกที่ดีที่สุดในการปกป้องความเป็นส่วนตัวของคุณ


สรุปได้ว่า การเข้ารหัส DNS ทุกรูปแบบถือเป็นก้าวที่ถูกต้อง แม้ว่าจะยังไม่ใช่วิธีแก้ปัญหาที่สมบูรณ์แบบ เนื่องจากการเชื่อมต่อแบบ TLS ยังคงส่ง client hello ซึ่งมีโดเมนที่คุณกำลังเชื่อมต่ออยู่ (หรือที่เรียกว่า SNI) นอกจากนี้ การเชื่อมต่อแบบ upstream ยังไม่มีการป้องกัน หากคุณใช้รีเลย์ คำขอเหล่านี้จะไม่เปิดเผยตัวตน แต่ก็ยังมีความเสี่ยงต่อการถูกดักฟังในวงกว้าง ปัจจุบันมีการทำงานเพื่อปรับปรุงสถานการณ์นี้ และในอนาคต เทคโนโลยีอย่าง DNSSEC และ DNSCurve จะสามารถยืนยันและเข้ารหัสคำตอบได้อย่างสมบูรณ์

DNSCrypt ก็ไม่สามารถแก้ปัญหา "client hello" หรือการส่งข้อมูลแบบไม่เข้ารหัสไปยังต้นทางได้เช่นกัน แต่มันช่วยปกป้องคำขอของคุณในทันที ตัวตนของคุณ และพฤติกรรมของคุณ มันไม่ใช่ระบบที่สมบูรณ์แบบ แต่เป็นสิ่งที่ดีที่สุดที่เรามีในปัจจุบัน

ถ้าคุณสนใจใน DNSCrypt คุณสามารถไปที่หน้าโฮมเพจของมันได้ หากคุณใช้ Linux ลองดูที่ Arch Wiki นอกจากนี้ยังมีเว็บไซต์ให้ข้อมูลที่รวมรายละเอียดเซิร์ฟเวอร์ ข้อกำหนด และเครื่องมือที่มีประโยชน์ คุณอาจตื่นเต้นที่ได้ยินว่า AdGuard มีตัวแก้ไข DNSCrypt stub resolver ซึ่งช่วยบล็อกโฆษณาเพิ่มเติมได้ด้วย

บทความที่เกี่ยวข้อง