เพื่อหลีกเลี่ยงสถานการณ์ดังกล่าว IETF เมื่อหลายปีก่อน เริ่มพัฒนา เทคโนโลยี DANE (แต่ไม่ได้ใช้กันอย่างแพร่หลายในเบราว์เซอร์ - เราจะพูดถึงสาเหตุที่เกิดขึ้นในภายหลัง)
DANE (การตรวจสอบความถูกต้องตาม DNS ของเอนทิตีที่มีชื่อ) คือชุดข้อกำหนดที่อนุญาตให้คุณใช้ DNSSEC (Name System Security Extensions) เพื่อควบคุมความถูกต้องของใบรับรอง SSL DNSSEC เป็นส่วนขยายของระบบชื่อโดเมนที่ช่วยลดการโจมตีด้วยการปลอมแปลงที่อยู่ ด้วยการใช้เทคโนโลยีทั้งสองนี้ เว็บมาสเตอร์หรือไคลเอนต์สามารถติดต่อหนึ่งในผู้ให้บริการโซน DNS และยืนยันความถูกต้องของใบรับรองที่ใช้อยู่
โดยพื้นฐานแล้ว DANE ทำหน้าที่เป็นใบรับรองที่ลงนามด้วยตนเอง (ผู้รับประกันความน่าเชื่อถือคือ DNSSEC) และเติมเต็มฟังก์ชันของ CA
Какэтоработает
ข้อกำหนด DANE มีอธิบายไว้ใน RFC6698. ตามเอกสารใน บันทึกทรัพยากร DNS มีการเพิ่มประเภทใหม่ - TLSA ประกอบด้วยข้อมูลเกี่ยวกับใบรับรองที่กำลังถ่ายโอน ขนาดและประเภทของข้อมูลที่กำลังถ่ายโอน รวมถึงตัวข้อมูลเอง ผู้ดูแลเว็บจะสร้างรหัสประจำตัวดิจิทัลของใบรับรอง ลงนามด้วย DNSSEC และวางไว้ใน TLSA
ไคลเอนต์เชื่อมต่อกับไซต์บนอินเทอร์เน็ตและเปรียบเทียบใบรับรองกับ “สำเนา” ที่ได้รับจากผู้ให้บริการ DNS หากตรงกัน ทรัพยากรจะถือว่าเชื่อถือได้
หน้าวิกิของ DANE ให้ตัวอย่างต่อไปนี้ของคำขอ DNS ไปยัง example.org บนพอร์ต TCP 443:
IN TLSA _443._tcp.example.org
คำตอบมีลักษณะดังนี้:
_443._tcp.example.com. IN TLSA (
3 0 0 30820307308201efa003020102020... )
DANE มีส่วนขยายหลายรายการที่ใช้งานได้กับบันทึก DNS นอกเหนือจาก TLSA อย่างแรกคือบันทึก SSHFP DNS สำหรับตรวจสอบความถูกต้องของคีย์ในการเชื่อมต่อ SSH มีอธิบายไว้ใน RFC4255, RFC6594 и RFC7479. รายการที่สองคือรายการ OPENPGPKEY สำหรับการแลกเปลี่ยนคีย์โดยใช้ PGP (RFC7929). สุดท้าย ที่สามคือบันทึก SMIMEA (มาตรฐานไม่ได้เป็นทางการใน RFC นั่นแหละ) เป็นเพียงร่างของมันเท่านั้น) สำหรับการแลกเปลี่ยนคีย์การเข้ารหัสผ่าน S/MIME