Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> อินเทอร์เน็ต

ทำความเข้าใจ DNS: กุญแจสู่การเข้าถึงอินเทอร์เน็ตที่เร็วและน่าเชื่อถือ

DNS Lookup คืออะไร?

Domain Name System Lookup หรือ DNS ย่อ คือสิ่งที่เกิดในช่วงเวลาระหว่างที่ใครพิมพ์ URL ในแถบค้นหา และหน้าเว็บโหลดเสร็จ ด้านเทคนิค คือกระบวนการแปลง URL (เช่น www.google.com) เป็น IP Address

IP Address คลุมที่อยู่บ้านของคุณ เหมือนคุณใช้ที่อยู่ส่งจดหมาย คอมพิวเตอร์ใช้ IP Address ส่งข้อมูลไปที่เฉพาะเจาะจง เนื่องจาก IP Address ยากจดจำ (สตริงตัวเลขยาว) คอมพิวเตอร์ใช้ DNS แปลงระหว่าง IP Address และ URL (ที่จดจำง่ายกว่า) อุปกรณ์ต่ออินเทอร์เน็ตทุกตัวมี IP Address

DNS ทำงานอย่างไร?

ด้วยขนาดของอินเทอร์เน็ต คอมพิวเตอร์เก็บ IP Address ทั้งหมดในหน่วยความจำไม่ได้ แทนที่จะพิมพ์ www.google.com ในเบราว์เซอร์ บอกคอมพิวเตอร์ให้ค้นหา IP Address ของเว็บไซต์

ทำความเข้าใจ DNS: กุญแจสู่การเข้าถึงอินเทอร์เน็ตที่เร็วและน่าเชื่อถือ

ก่อนอื่น คอมพิวเตอร์ตรวจสอบหน่วยความจำท้องถิ่น เรียกว่า Cache นี่คือที่คอมพิวเตอร์เก็บ IP Address ของเว็บที่เข้าล่าสุด เพื่อโหลดเร็วโดยไม่ต้องค้นหาใหม่ แต่เพราะมีเพียงไม่กี่เว็บที่เข้าล่าสุด โอกาสค่อนข้างมากที่คอมพิวเตอร์ไม่เจอ IP Address

ขั้นตอน 1 (ตรงกับหมายเลขในภาพ): ต่อไป คอมพิวเตอร์จะถาม Recursive Nameserver ของ ISP ISP คือ Internet Service Provider — เช่น Time Warner Cable, Spectrum, Verizon ฯลฯ Nameserver 聽起來ซับซ้อน แต่คือ Server Software ที่ออกแบบมาเพื่อตอบคำขอ DNS (เช่น "IP Address ของ www.google.com คืออะไร?")

Nameserver ใดก็ตอบคำถามนี้ได้ โดยตอบ IP Address (ถ้ารู้) หรือตอบว่าไม่รู้ และบอก Server ที่ถามไปถาม Server อื่น แต Recursive Nameserver ต่างออกไป เพราะถ้าไม่รู้คำตอบ มันจะทำงานหาคำตอบ แทนที่จะแค่ Redirect Query ไป ไม่ใช่ Nameserver ทุกตัวที่เป็น Recursive

ขั้นตอน 2: Recursive Nameserver ตรวจสอบ Cache ของมันก่อน ถ้าไม่มี IP Address จะถาม Root Nameserver (Root Nameservers ไม่รู้ IP Address แต่อ่าน Request ได้ และบอก Recursive Nameserver ว่าไปต่อที่ไหน) Recursive Nameservers ทุกตัวมาพร้อม IP Address ของ Root Nameserver 13 ตัว Pre-configured Recursive Nameserver เลือกหนึ่งและถามคำถามเดียวกัน ("IP Address ของ www.google.com คืออะไร?")

ขั้นตอน 3: Root Nameserver อ่าน Top-Level Domain (ปลายของ Request) ในกรณีนี้คือ .com (www.google.com) และบอก Recursive Nameserver ให้ถาม Global Top Level Domain Servers (GTLD) GTLDs คือรายการอ้างอิงสำหรับแต่ละประเภทโดเมน — .com, .net, .edu ฯลฯ แม้ไม่รู้ IP Address ของเว็บไซต์ แต่รู้ว่า Nameserver ไหนจะมีข้อมูลนั้น

ขั้นตอน 4: Recursive Nameserver ถาม GTLD Nameserver ขอ IP Address ของ www.google.com

ขั้นตอน 5: GTLD Nameserver อ่านส่วนต่อไปของ Request อ่านจากขวาไปซ้าย (ในกรณีนี้คือ 'google' ของ www.google.com) และส่งข้อความกลับพร้อม Authoritative Nameserver ที่ต้องติดต่อ Authoritative Nameserver คือ Nameserver ที่รับผิดชอบโดเมน (และเป็นแหล่งข้อมูลหลัก)

ขั้นตอน 6: Recursive Nameserver ถาม Authoritative Nameserver คำถามเดียวกัน ("IP Address ของ www.google.com คืออะไร?") ทางเทคนิค Server ขอ Address Record (A) ซึ่งเป็นวิธีที่ Server เรียก IP Address

ขั้นตอน 7: Server นี้มีคำตอบ! ส่ง IP Address กลับไป Recursive Nameserver พร้อม Flag บอกว่าเป็นคำตอบ Authoritative Recursive Nameserver เก็บ IP Address ไว้ใน Cache เผื่อใครเข้เว็บเดียวกันเร็วๆ นี้ ทุก Item ใน Cache มี Tag "Time to Live" บอก Server ว่ารอเก็บข้อมูลนานแค่ไหนก่อนลบ

ขั้นตอน 8: Recursive Nameserver บอกคอมพิวเตอร์ของคุณว่า IP Address คืออะไร (ครั้งนี้ไม่ Tag ว่า Authoritative เพราะมันไม่ใช่แหล่งข้อมูลหลัก แค่ส่งข้อมูลต่อ)

ขั้นตอน 9: คอมพิวเตอร์ของคุณส่งคำขอ www.google.com ไปที่ IP Address ที่เพิ่งได้

ขั้นตอน 10: Web Server ที่ที่อยู่นี้ส่งหน้า Google Homepage กลับมา และหน้าเว็บโหลด

กระบวนการทั้งหมดใช้เวลาเพียงไม่กี่มิลลิวินาที และเกิดขึ้น تريллиอนครั้งทุกวัน

DNS ส่งผลต่อผู้ใช้ปลายทางอย่างไร?

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

ปัญหาหนึ่งของ DNS คือ ไม่มีการตรวจสอบความถูกต้องของ Nameserver ตอนรับ Response ดังนั้นแฮ็กเกอร์ส่ง Response อันตรายไปที่ DNS Query ของคอมพิวเตอร์ และหลอกคอมพิวเตอร์ให้คิดว่ามันคือ Response จริงจาก DNS Nameserver กล่าวคือ ตอนคอมพิวเตอร์ถาม "IP Address ของ www.chase.com คืออะไร?" แฮ็กเกอร์จะตอบ (ก่อน DNS Server) ด้วย IP Address ของไซต์อันตรายของแฮ็กเกอร์ ตอนโหลดไซต์ ดูเหมือน Chase.com แต่ควบคุมโดยแฮ็กเกอร์

นี่คล้าย Phishing — แต่ผู้ใช้ไม่ได้ถูกล่อลวงคลิกลิงก์ไม่ดี แต่วェ็บไซต์ที่พยายามเข้า ถูก Route ไปไซต์ไม่ดีผ่าน DNS Lookup (อันตรายกว่า เพราะยากป้องกันมากกว่า) ต้องพึ่งผู้ใช้ระวัง สังเกตว่าไซต์ปลอม (ลิงก์ดูไม่ถูกต้อง มีสะกดผิด โลโก้คัดลอกแย่) แต่ทำได้ยาก และพึ่งผู้ใช้ที่มีความรู้เทคนิคพอสมควร

2016 การโจมตี DNS ทำให้ส่วนใหญ่ของอินเทอร์เน็ตช่วงตะวันออกสหรัฐออฟไลน์เกือบเต็มวัน กรณีนั้น Outage มาจาก DDoS Attack DDoS คือ Distributed Denial of Service Attack พร้อมกันหลายพันเครื่องทั่วอินเทอร์เน็ตโจมตีระบบ เครื่องเหล่านี้มักติดมัลแวร์โดยเจ้าของไม่รู้ และแฮ็กเกอร์คน/กลุ่มควบคุมทั้งหมด เรียกว่า Botnet เมื่อใช้ร่วมกัน

Botnet ส่ง DNS Requests ไป Server เป้าหมาย จำนวน Request มากเกินระบบรับไหว ทำให้ Server ไม่จัดการ Trafffic ปกติได้ ดังนั้น ขณะแฮ็กเกอร์โจมตี DNS Servers คอมพิวเตอร์พยายามขอ IP Address Server ตอบไม่ได้ คอมพิวเตอร์เข้าถึงไซต์ที่ Server ควบคุม (หรือ Authoritative) ไม่ได้ จนกว่าการโจมตีจะหยุด

การโจมตีนี้ลดทอนได้โดย Over-provisioning Servers เพื่อรองรับ Demand เกิน หรือมี DNS Firewall

วิธีกว้างกว่าแก้ปัญหา DNS หลายอย่างคือ DNSSEC DNSSEC เสริมการยืนยันตัวตนด้วย Digital Signatures บน Public Key Cryptography โดยเจ้าของข้อมูลที่ร้องขอลงนามดิจิทัล เพื่อให้แน่ใจว่าสถานการณ์ข้างต้นไม่เกิด ให้ Data Origin Authentication (ข้อมูลมาจริงจากที่ Resolver คิด) และ Data Integrity Protection (ข้อมูลไม่ถูกแก้ไขระหว่างทาง)

น่าเสียดาย เพื่อแก้ DNS DNSSEC ต้อง Deploy กว้าง ต้อง Enable โดย Network Operators บน Recursive Resolvers และ Domain Name Owners บน Authoritative Servers ยังไม่เกิดขึ้น แต่น่าจะเกิดเมื่อคนรู้ปัญหา DNS มากขึ้น และรณรงค์ให้เปลี่ยนแปลง