เมื่อสร้างการเชื่อมต่อ TLS แล้ว ไคลเอนต์ DNS จะสามารถส่งการสืบค้น DNS ผ่านช่องทางที่ปลอดภัย ซึ่งป้องกันการดักฟังและการปลอมแปลงคำขอและการตอบกลับ
คำขอ DNS ทั้งหมดที่ส่งผ่านการเชื่อมต่อ TLS จะต้องเป็นไปตามข้อกำหนดตาม ส่ง DNS ผ่าน TCP.
ตัวอย่างคำขอผ่าน DNS ผ่าน TLS:
$ kdig -d @1.1.1.1 +tls-ca +tls-host=cloudflare-dns.com example.com
;; DEBUG: Querying for owner(example.com.), class(1), type(1), server(1.1.1.1), port(853), protocol(TCP)
;; DEBUG: TLS, imported 170 system certificates
;; DEBUG: TLS, received certificate hierarchy:
;; DEBUG: #1, C=US,ST=CA,L=San Francisco,O=Cloudflare, Inc.,CN=*.cloudflare-dns.com
;; DEBUG: SHA-256 PIN: yioEpqeR4WtDwE9YxNVnCEkTxIjx6EEIwFSQW+lJsbc=
;; DEBUG: #2, C=US,O=DigiCert Inc,CN=DigiCert ECC Secure Server CA
;; DEBUG: SHA-256 PIN: PZXN3lRAy+8tBKk2Ox6F7jIlnzr2Yzmwqc3JnyfXoCw=
;; DEBUG: TLS, skipping certificate PIN check
;; DEBUG: TLS, The certificate is trusted.
;; TLS session (TLS1.2)-(ECDHE-ECDSA-SECP256R1)-(AES-256-GCM)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 58548
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 1
;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 1536 B; ext-rcode: NOERROR
;; PADDING: 408 B
;; QUESTION SECTION:
;; example.com. IN A
;; ANSWER SECTION:
example.com. 2347 IN A 93.184.216.34
;; Received 468 B
;; Time 2018-03-31 15:20:57 PDT
;; From 1.1.1.1@853(TCP) in 12.6 ms
ตัวเลือกนี้ดูเหมือนจะเหมาะสมกว่าสำหรับเซิร์ฟเวอร์ DNS ภายในที่ตอบสนองความต้องการของเครือข่ายท้องถิ่นหรือผู้ใช้รายเดียว จริงอยู่ที่การรองรับมาตรฐานนั้นไม่ค่อยดีนัก แต่หวังไว้เถอะ!
คำอธิบายสองคำเกี่ยวกับสิ่งที่เรากำลังพูดถึง
ตัวย่อ DNS ย่อมาจาก Domain Name Service (ดังนั้นการพูดว่า "บริการ DNS" ค่อนข้างซ้ำซ้อน ตัวย่อมีคำว่า "บริการ") อยู่แล้ว และใช้เพื่อแก้ปัญหาง่ายๆ เพื่อทำความเข้าใจว่าที่อยู่ IP ใดที่ชื่อโฮสต์เฉพาะมี ทุกครั้งที่มีคนคลิกลิงก์หรือป้อนที่อยู่ในแถบที่อยู่ของเบราว์เซอร์ (เช่น "https://habrahabr.ru/post/346430/") คอมพิวเตอร์ของบุคคลพยายามค้นหาเซิร์ฟเวอร์ที่จะส่งคำขอเพื่อรับเนื้อหาของเพจ ในกรณีของ habrahabr.ru การตอบสนองจาก DNS จะมีการระบุที่อยู่ IP ของเว็บเซิร์ฟเวอร์: 178.248.237.68 จากนั้นเบราว์เซอร์จะพยายามติดต่อเซิร์ฟเวอร์ด้วยที่อยู่ IP ที่ระบุ
ในทางกลับกัน เซิร์ฟเวอร์ DNS ที่ได้รับคำขอ "ที่อยู่ IP ของโฮสต์ชื่อ habrahabr.ru คืออะไร" จะพิจารณาว่ารู้อะไรเกี่ยวกับโฮสต์ที่ระบุหรือไม่ ถ้าไม่เช่นนั้น ระบบจะทำการสืบค้นไปยังเซิร์ฟเวอร์ DNS อื่น ๆ ในโลก และพยายามค้นหาคำตอบสำหรับคำถามที่ถามทีละขั้นตอน เป็นผลให้เมื่อค้นหาคำตอบสุดท้ายข้อมูลที่พบจะถูกส่งไปยังไคลเอนต์ที่รออยู่รวมทั้งจะถูกเก็บไว้ในแคชของเซิร์ฟเวอร์ DNS เองซึ่งจะช่วยให้คุณตอบคำถามที่คล้ายกันเร็วขึ้นมากในครั้งต่อไป
ปัญหาที่พบบ่อยคือ ประการแรก ข้อมูลการสืบค้น DNS จะถูกส่งอย่างชัดเจน (ซึ่งช่วยให้ใครก็ตามที่สามารถเข้าถึงสตรีมการรับส่งข้อมูลสามารถแยกการสืบค้น DNS และการตอบกลับที่เป็นผลลัพธ์ จากนั้นจึงแยกวิเคราะห์เพื่อวัตถุประสงค์ของตนเอง ซึ่งจะช่วยให้มีความสามารถ เพื่อกำหนดเป้าหมายการโฆษณาอย่างแม่นยำสำหรับไคลเอนต์ DNS และนี่ก็ค่อนข้างมาก!) ประการที่สอง ผู้ให้บริการอินเทอร์เน็ตบางราย (เราจะไม่ชี้นิ้ว แต่ไม่ใช่ผู้ให้บริการที่เล็กที่สุด) มักจะแสดงโฆษณาแทนหน้าที่ร้องขออย่างน้อยหนึ่งหน้า (ซึ่งดำเนินการอย่างง่ายดาย: แทนที่จะเป็นที่อยู่ IP ที่ระบุสำหรับการร้องขอชื่อโฮสต์ habranabr.ru ไปยังบุคคลที่สุ่ม ด้วยวิธีนี้ ที่อยู่ของเว็บเซิร์ฟเวอร์ของผู้ให้บริการจะถูกส่งกลับ โดยที่หน้าเว็บที่มีโฆษณาให้บริการ) ประการที่สาม มีผู้ให้บริการอินเทอร์เน็ตที่ใช้กลไกในการตอบสนองข้อกำหนดในการบล็อกแต่ละไซต์โดยแทนที่การตอบสนอง DNS ที่ถูกต้องเกี่ยวกับที่อยู่ IP ของทรัพยากรบนเว็บที่ถูกบล็อกด้วยที่อยู่ IP ของเซิร์ฟเวอร์ที่มีหน้าต้นขั้ว (เป็นผลให้เข้าถึงได้ ไซต์ดังกล่าวจะซับซ้อนมากขึ้นอย่างเห็นได้ชัด) หรือไปยังที่อยู่ของพร็อกซีเซิร์ฟเวอร์ของคุณที่ทำการกรอง
คุณน่าจะใส่รูปภาพจากเว็บไซต์ที่นี่ http://1.1.1.1/ซึ่งทำหน้าที่อธิบายการเชื่อมต่อกับบริการ เห็นได้ชัดว่าผู้เขียนมั่นใจในคุณภาพของ DNS อย่างสมบูรณ์ (แต่ก็ยากที่จะคาดหวังสิ่งที่แตกต่างจาก Cloudflare):
เราสามารถเข้าใจ Cloudflare ผู้สร้างบริการได้อย่างถ่องแท้: พวกเขาสร้างรายได้ด้วยการสนับสนุนและพัฒนาหนึ่งในเครือข่าย CDN ที่ได้รับความนิยมมากที่สุดในโลก (ฟังก์ชั่นนี้ไม่เพียงแต่ครอบคลุมการกระจายเนื้อหาเท่านั้น แต่ยังโฮสต์โซน DNS ด้วย) และ เพราะความปรารถนาอันแรงกล้าเหล่านั้น ที่ไม่ค่อยรู้อะไรมาก, สอนสิ่งเหล่านั้น พวกเขาไม่รู้จักใครเพื่อสิ่งนั้น ว่าจะไปที่ไหน บนเครือข่ายทั่วโลก มักจะประสบปัญหาจากการบล็อกที่อยู่เซิร์ฟเวอร์ด้วย เราจะไม่พูดว่าใคร - ดังนั้น การมี DNS ที่ไม่ได้รับอิทธิพลจาก "เสียงตะโกน เสียงหวีดหวิว และการเขียนลวก ๆ" ย่อมส่งผลเสียต่อธุรกิจของบริษัทน้อยลง และข้อได้เปรียบทางเทคนิค (สิ่งเล็ก ๆ น้อย ๆ แต่ดี: โดยเฉพาะสำหรับลูกค้าของ DNS Cloudflare ฟรีการอัปเดตบันทึก DNS ของทรัพยากรที่โฮสต์บนเซิร์ฟเวอร์ DNS ของบริษัทจะเป็นไปในทันที) ทำให้การใช้บริการที่อธิบายไว้ในโพสต์น่าสนใจยิ่งขึ้น .