คำเตือน: macOS Sequoia 15 อาจข้ามการเข้ารหัส DNS ได้
พื้นฐาน DNS Encryption
- เมื่อป้อนชื่อโฮสต์ในเว็บเบราว์เซอร์ (เช่น apple.com) ชื่อนั้นจะต้องถูกแปลงเป็นที่อยู่ IP ก่อน คอมพิวเตอร์จึงจะเชื่อมต่อกับเซิร์ฟเวอร์ได้
- โดยปกติการค้นหานี้จะทำโดยไม่มีการเข้ารหัส ทำให้ผู้ให้บริการอินเทอร์เน็ตและบุคคลอื่นที่เฝ้าติดตามการเชื่อมต่อสามารถเห็นไซต์ที่คุณเข้าเยี่ยมชมได้
- เพื่อปกป้องการค้นหาเหล่านี้ Little Snitch 6 จึงมีฟีเจอร์ใหม่คือการเข้ารหัส DNS
- เมื่อเปิดใช้งานการเข้ารหัส DNS การค้นหาชื่อทั้งหมดจะถูกดำเนินการผ่าน Little Snitch ในรูปแบบที่เข้ารหัส
- เพื่อให้ทำงานได้ Little Snitch จะลงทะเบียน DNS proxy และ macOS จะส่งคำขอ DNS ทั้งหมดไปยัง proxy นั้นเพื่อทำการค้นหาแบบเข้ารหัส
แต่...
- ระหว่างการตรวจสอบปัญหาที่เกี่ยวข้องกับ DNS บน macOS 15 Sequoia พบว่าคำขอ DNS บางรายการ (โดยเฉพาะคำขอที่เกิดผ่าน legacy API ระดับต่ำบางตัว) ไม่ได้ถูกส่งต่อไปยัง proxy
- ดูเหมือนว่า macOS Sequoia จะมีบั๊กที่ทำให้คำขอบางส่วนข้าม DNS proxy ที่ติดตั้งไว้ และถูกส่งไปยัง name server เริ่มต้นของระบบโดยไม่มีการเข้ารหัส
- บั๊กนี้อาจส่งผลไม่เฉพาะกับ Little Snitch แต่รวมถึง DNS proxy ทุกประเภท
- ดังนั้นหากคุณใช้ฟีเจอร์การเข้ารหัส DNS ใหม่ของ Little Snitch 6 หรือใช้ DNS proxy ของบุคคลที่สามอื่น ๆ ควรทราบว่าคำค้นหา DNS บางส่วนอาจข้าม proxy ได้จนกว่า Apple จะแก้ไขในอัปเดต macOS ในอนาคต
- อย่างไรก็ตาม การค้นหา DNS ที่ดำเนินการผ่าน API ระดับสูงจะไม่ได้รับผลกระทบจากบั๊กนี้ ตัวอย่างเช่น การท่องเว็บใน Safari หรือ Chrome ยังได้รับประโยชน์จากการค้นหาแบบเข้ารหัส ขณะที่ Firefox อาจได้รับผลกระทบ
วิธีทำซ้ำปัญหา
- เปิดใช้งานการเข้ารหัส DNS ในการตั้งค่า Little Snitch
- เริ่ม Wireshark ด้วย capture filter
port 53
- รันโค้ดต่อไปนี้ใน Xcode Playground:
import Foundation
let domain = "dnsproxytest.com"
var result: UnsafeMutablePointer<addrinfo>?
let status = getaddrinfo(domain, nil, nil, &result)
- คุณจะยืนยันได้ว่าการค้นหาสำหรับ
dnsproxytest.com ปรากฏใน Wireshark แบบไม่เข้ารหัสบนพอร์ต UDP 53 (ค่าปริยายของการค้นหาแบบไม่เข้ารหัส)
- นอกจากนี้ Network Monitor ของ Little Snitch ยังไม่แสดงทราฟฟิกใด ๆ สำหรับการค้นหานี้เลย ซึ่งหมายความว่าการค้นหานั้นข้าม network filter ไปโดยสมบูรณ์
- ได้รายงานบั๊กนี้ต่อ Apple แล้ว และหวังว่าจะมีการแก้ไขอย่างรวดเร็ว โดยจะอัปเดตข้อมูลต่อไป
อัปเดต 2024-09-17, 19:10 น.
- จากการตรวจสอบเพิ่มเติม พบว่าบั๊กนี้มีอยู่มาตั้งแต่อย่างน้อย macOS 14.5 Sonoma และอาจมีอยู่ในเวอร์ชันเก่ากว่านั้นด้วย ปัจจุบันไม่สามารถทดสอบได้เพราะไม่สามารถเข้าถึงระบบ 14.x ที่เก่ากว่านี้
สรุปโดย GN⁺
- บทความนี้กล่าวถึงบั๊กใน macOS Sequoia 15 ที่อาจทำให้การเข้ารหัส DNS ถูกข้ามได้
- การเข้ารหัส DNS เป็นฟีเจอร์สำคัญในการปกป้องความเป็นส่วนตัวของผู้ใช้อินเทอร์เน็ต
- บั๊กนี้ส่งผลโดยเฉพาะกับคำขอ DNS ที่เกิดผ่าน legacy API ระดับต่ำ
- จนกว่า Apple จะแก้ปัญหานี้ ผู้ใช้ควรตระหนักว่าการค้นหา DNS บางส่วนอาจไม่ถูกเข้ารหัส
- โปรเจ็กต์อื่นที่มีความสามารถคล้ายกัน ได้แก่โซลูชันกรอง DNS อย่าง Pi-hole
1 ความคิดเห็น
ขอบคุณสำหรับข้อมูลสำคัญครับ
อย่างน้อยก็ถือว่าโชคดีที่ Safari กับ Chrome ยังพอวางใจได้