DNSSEC: การพิสูจน์ความถูกต้องของคำตอบ DNS
เรียนรู้ว่า DNSSEC ใช้ลายมือชื่อดิจิทัลเพื่อป้องกัน DNS จากการปลอมแปลงและการโจมตีวางยาพิษแคชอย่างไร
DNSSEC: การพิสูจน์ความถูกต้องของคำตอบ DNS เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
การทำให้แคช DNS เป็นพิษ: การโจมตีของ Kaminsky
ในปี 2008 นักวิจัย Dan Kaminsky เปิดเผยการโจมตีร้ายแรงต่อเซิร์ฟเวอร์ตัวแก้ไข DNS การโจมตีนี้อาศัยช่อง ID ของธุรกรรมขนาด 16 บิตในการตอบกลับ DNS ด้วยการส่งการตอบกลับปลอมจำนวนมากที่มี ID ของธุรกรรมแบบสุ่ม ผู้โจมตีอาจมีโอกาสประสบความสำเร็จทางสถิติในการทำให้ ID ของธุรกรรมตรงกับค่าจริง ก่อนที่การตอบกลับจริงจะมาถึง แคชที่ถูกทำให้เป็นพิษจะเปลี่ยนเส้นทางผู้ใช้ทั้งหมดของตัวแก้ไขนั้นไปยังเซิร์ฟเวอร์ที่ผู้โจมตีควบคุม เป็นเวลาหลายสัปดาห์จนกว่าแคชจะหมดอายุ
สิ่งที่ DNSSEC เพิ่มให้กับ DNS
DNSSEC (ส่วนขยายความปลอดภัยของ DNS) เพิ่มการยืนยันตัวตนด้วยการเข้ารหัสให้กับการตอบกลับ DNS ชุดระเบียน DNS ทุกชุดในโซนที่ลงลายเซ็นด้วย DNSSEC จะมีลายเซ็นดิจิทัลกำกับไว้ ตัวแก้ไขที่ทำการตรวจสอบจะตรวจสอบลายเซ็นเหล่านี้ก่อนยอมรับระเบียน การตอบกลับที่ปลอมแปลงหรือถูกแก้ไขจะมีลายเซ็นไม่ถูกต้องและถูกปฏิเสธ DNSSEC ป้องกันการทำให้แคชเป็นพิษและการปลอมแปลงการตอบกลับ แต่ไม่ได้เข้ารหัสคำค้นหา DNS
คีย์ลงนามโซนและคีย์ลงนามคีย์
DNSSEC ใช้ลำดับชั้นสองคีย์ในแต่ละโซน คีย์ลงนามโซน (ZSK) ใช้สำหรับลงนามชุดระเบียน DNS แต่ละชุดในงานประจำวัน คีย์ลงนามคีย์ (KSK) ใช้ลงนามเฉพาะชุดระเบียน DNSKEY ซึ่งมีคีย์สาธารณะของทั้ง ZSK และ KSK สามารถหมุนเวียน ZSK ได้บ่อยครั้ง เช่น รายเดือน ขณะที่ KSK เปลี่ยนไม่บ่อย เช่น รายปี เนื่องจากต้องลงทะเบียนค่าแฮชของ KSK ในโซนแม่ และการหมุนเวียนมีความซับซ้อนด้านการปฏิบัติงาน
RRSIG: ลายเซ็นระเบียนทรัพยากร
ชุดระเบียน DNS ที่ลงลายเซ็นทุกชุดจะมีระเบียน RRSIG ที่สอดคล้องกัน โดยระเบียนนี้มีลายเซ็นการเข้ารหัสของชุดระเบียนนั้น เมื่อมีการขอระเบียน DNS จากตัวแก้ไข การตอบกลับจะมีทั้งระเบียนและ RRSIG ตัวแก้ไขจะตรวจสอบ RRSIG โดยใช้คีย์สาธารณะของโซน ลายเซ็นครอบคลุมเนื้อหาระเบียน ประเภท คลาส และเวลาหมดอายุ จึงป้องกันทั้งการแก้ไขและการนำลายเซ็นเก่าที่ยังใช้งานได้กลับมาเล่นซ้ำ
ระเบียน DS: การเชื่อมโยงโซนแม่กับโซนลูก
สายโซ่แห่งความเชื่อถือใน DNSSEC สร้างขึ้นผ่านระเบียนผู้ลงนามการมอบหมาย (DS) เมื่อโซนมอบหมายไปยังโซนลูก โซนแม่จะเผยแพร่ระเบียน DS ที่มีค่าแฮชของ KSK ของโซนลูก ตัวแก้ไขที่เชื่อถือโซนแม่สามารถตรวจสอบได้ว่าค่าแฮชของ KSK ของโซนลูกตรงกับระเบียน DS ซึ่งเป็นการสร้างความเชื่อถือในลายเซ็นของโซนลูก สายโซ่นี้ขยายจากโซนราก DNS ลงมาผ่านโดเมนระดับบนสุดจนถึงโซนของแต่ละโดเมน
ระเบียน DNSKEY: การเผยแพร่คีย์สาธารณะของโซน
โซนที่ลงลายเซ็นด้วย DNSSEC ทุกโซนจะเผยแพร่คีย์สาธารณะสำหรับลงนามไว้ในระเบียน DNSKEY โดยทั่วไปจะมีระเบียน DNSKEY สองระเบียน คือระเบียนหนึ่งสำหรับ ZSK และอีกระเบียนสำหรับ KSK ค่าแฮชของคีย์สาธารณะของ KSK จะลงทะเบียนเป็นระเบียน DS ในโซนแม่ เพื่อยึดโยงความเชื่อถือของโซนเข้ากับโซนแม่ ค่าแฮชของ KSK ของโซนรากถูกฝังไว้ในตัวแก้ไขที่ทำการตรวจสอบในฐานะจุดยึดความเชื่อถือสูงสุด ซึ่งเรียกว่าจุดยึดความเชื่อถือของโซนราก
สายโซ่แห่งความเชื่อถือจากรากถึงโซนปลายสุด
การตรวจสอบ DNSSEC เริ่มต้นที่โซนราก ซึ่งมีจุดยึดความเชื่อถือของ KSK ฝังไว้ตายตัวในตัวแก้ไข DNSKEY ของโซนรากใช้ตรวจสอบ RRSIG ของโซนราก ซึ่งยืนยันความถูกต้องของระเบียน DS สำหรับโดเมนระดับบนสุด เช่น .com จากนั้น DNSKEY ของโซน .com จะตรวจสอบ RRSIG ของระเบียน DS สำหรับแต่ละโดเมน สายโซ่การตรวจสอบด้วยการเข้ารหัสนี้ขยายจากโซนรากไปยังโดเมนที่ถูกค้นหา ทำให้มั่นใจได้ว่าทุกจุดเชื่อมโยงผ่านการยืนยันตัวตน
การตรวจสอบ DNSSEC ในตัวแก้ไข
เมื่อตัวแก้ไขที่ทำการตรวจสอบ DNSSEC ได้รับการตอบกลับ ตัวแก้ไขจะดำเนินการตรวจสอบสายโซ่แห่งความเชื่อถือทั้งหมด โดยดึงระเบียน DNSKEY ตรวจสอบลายเซ็น RRSIG ไล่ตามระเบียน DS ขึ้นไปจนถึงจุดยึดของโซนราก และตรวจสอบเวลาหมดอายุของลายเซ็น หากการตรวจสอบล้มเหลว ตัวแก้ไขจะส่งกลับข้อผิดพลาด SERVFAIL แทนระเบียนที่อาจถูกปลอมแปลง ตัวแก้ไขสาธารณะรายใหญ่ส่วนใหญ่ รวมถึงของ Cloudflare ที่ 1.1.1.1 และของ Google ที่ 8.8.8.8 ทำการตรวจสอบ DNSSEC
ความท้าทายในการนำ DNSSEC ไปใช้งาน
การนำ DNSSEC ไปใช้งานดำเนินไปอย่างล่าช้า แม้จะมีประโยชน์ด้านความปลอดภัยก็ตาม การหมุนเวียนคีย์ต้องอาศัยการประสานงานระหว่างผู้ดำเนินการโซนกับผู้ดูแลทะเบียนโซนแม่ ความผิดพลาดระหว่างการหมุนเวียน KSK อาจทำให้ทั้งโซนไม่สามารถเข้าถึงได้ การหมุนเวียน KSK ของโซนรากโดย ICANN ในปี 2019 ต้องเตรียมการนานหลายปี ลายเซ็นทำให้ขนาดโซนเพิ่มขึ้นอย่างมาก ผู้ดำเนินการต้องนำการหมุนเวียนคีย์และการเฝ้าติดตามแบบอัตโนมัติมาใช้ ความซับซ้อนด้านการปฏิบัติงานเหล่านี้ทำให้ผู้ดำเนินการโดเมนรายเล็กจำนวนมากหลีกเลี่ยง DNSSEC
DNSSEC ไม่ได้เข้ารหัสการรับส่ง DNS
ความเข้าใจผิดที่พบได้บ่อยคือ DNSSEC ให้ความเป็นส่วนตัวแก่คำค้นหา DNS แต่ไม่เป็นเช่นนั้น DNSSEC ยืนยันความถูกต้องของการตอบกลับเท่านั้น คำค้นหาและการตอบกลับยังคงเดินทางเป็นแพ็กเก็ต UDP แบบข้อความธรรมดาบนพอร์ต 53 ผู้ที่เฝ้าดูเครือข่ายยังคงเห็นชื่อโดเมนทุกชื่อที่ถูกค้นหา DNS ผ่าน TLS (DoT) และ DNS ผ่าน HTTPS (DoH) ให้ความเป็นส่วนตัวของคำค้นหาด้วยการเข้ารหัสการรับส่ง DNS โดย DNSSEC และ DoH/DoT ทำงานเสริมกัน โดยอย่างหนึ่งให้ความถูกต้องแท้จริง ส่วนอีกอย่างให้การรักษาความลับ
DNSSEC ในโลกจริง
ณ ปี 2024 โซนราก DNS และโดเมนระดับบนสุดรายใหญ่ประมาณ 90 เปอร์เซ็นต์ลงลายเซ็นด้วย DNSSEC อย่างไรก็ตาม ชื่อโดเมนแต่ละรายการมีเพียงประมาณ 20 ถึง 30 เปอร์เซ็นต์เท่านั้นที่ลงลายเซ็น การนำการตรวจสอบ DNSSEC ไปใช้ในเบราว์เซอร์และแอปพลิเคชันยังไม่สม่ำเสมอ ประโยชน์ด้านความปลอดภัยของ DNSSEC จะมากที่สุดเมื่อใช้ร่วมกับ DANE (การยืนยันตัวตนของเอนทิตีที่มีชื่อด้วย DNS) ซึ่งใช้ DNSSEC เพื่อเผยแพร่ลายนิ้วมือของใบรับรอง TLS และช่วยให้ไคลเอนต์ตรวจสอบใบรับรองได้โดยไม่ต้องพึ่งพาหน่วยงานออกใบรับรองเพียงอย่างเดียว
สายโซ่ความเชื่อถือของ DNSSEC
ตัวแก้ไขที่ทำการตรวจสอบ DNSSEC สร้างความเชื่อถือในระเบียน DNS ของโดเมนตั้งแต่เริ่มต้น โดยเริ่มจากจุดใดและดำเนินการอย่างไร
DNSSEC: ประเด็นสำคัญ
DNSSEC เพิ่มลายเซ็นการเข้ารหัสให้กับการตอบกลับ DNS เพื่อป้องกันการทำให้แคชเป็นพิษและการปลอมแปลงการตอบกลับ ZSK ใช้ลงนามชุดระเบียน ส่วน KSK ใช้ลงนามระเบียน DNSKEY และระเบียน DS ใช้เชื่อมโยงความเชื่อถือระหว่างโซนแม่กับโซนลูก การตรวจสอบเริ่มต้นจากจุดยึดความเชื่อถือของโซนรากที่ฝังไว้ตายตัว DNSSEC ไม่ได้เข้ารหัสการรับส่ง DNS โดย DoH และ DoT ให้ความเป็นส่วนตัว ขณะที่ DNSSEC ให้ความถูกต้องแท้จริง ความซับซ้อนด้านการปฏิบัติงาน รวมถึงการหมุนเวียนคีย์ ทำให้การนำไปใช้อย่างแพร่หลายล่าช้า
คำถามที่พบบ่อย
บทเรียน “DNSSEC: การพิสูจน์ความถูกต้องของคำตอบ DNS” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “DNSSEC: การพิสูจน์ความถูกต้องของคำตอบ DNS” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “DNSSEC: การพิสูจน์ความถูกต้องของคำตอบ DNS”
เรียนรู้ว่า DNSSEC ใช้ลายมือชื่อดิจิทัลเพื่อป้องกัน DNS จากการปลอมแปลงและการโจมตีวางยาพิษแคชอย่างไร คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “DNSSEC: การพิสูจน์ความถูกต้องของคำตอบ DNS” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม
ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- อะไรทำให้โพรโทคอลปลอดภัย
- SSH: การรักษาความปลอดภัยการเข้าถึงระยะไกล
- SFTP และ SCP: การถ่ายโอนไฟล์อย่างปลอดภัย
- DNSSEC: การพิสูจน์ความถูกต้องของคำตอบ DNS