DNSCrypt แก้ไขปัญหาใบรับรองหมดอายุโดยแนะนำระยะเวลาใช้งานได้ 24 ชั่วโมงอย่างไร

DNSCrypt แก้ไขปัญหาใบรับรองหมดอายุโดยแนะนำระยะเวลาใช้งานได้ 24 ชั่วโมงอย่างไร

ในอดีต ใบรับรองมักจะหมดอายุเนื่องจากต้องต่ออายุด้วยตนเอง คนก็ลืมที่จะทำมัน ด้วยการมาถึงของ Let's Encrypt และขั้นตอนการอัปเดตอัตโนมัติ ดูเหมือนว่าปัญหาควรจะได้รับการแก้ไข แต่ล่าสุด เรื่องราวของไฟร์ฟอกซ์ แสดงให้เห็นว่าในความเป็นจริงยังคงเกี่ยวข้องอยู่ ขออภัย ใบรับรองยังคงหมดอายุต่อไป

ในกรณีที่คุณพลาดเรื่องราวดังกล่าว เมื่อถึงเวลาเที่ยงคืนของวันที่ 4 พฤษภาคม 2019 ส่วนขยาย Firefox เกือบทั้งหมดก็หยุดทำงานกะทันหัน

เมื่อปรากฎว่าความล้มเหลวครั้งใหญ่เกิดขึ้นเนื่องจาก Mozilla ใบรับรองหมดอายุแล้วซึ่งใช้ในการลงนามในส่วนขยาย ดังนั้น พวกเขาจึงถูกทำเครื่องหมายว่า "ไม่ถูกต้อง" และไม่ได้รับการยืนยัน (รายละเอียดทางเทคนิค). ในฟอรัม เพื่อเป็นวิธีแก้ปัญหา ขอแนะนำให้ปิดใช้งานการตรวจสอบลายเซ็นส่วนขยายใน about: config หรือเปลี่ยนนาฬิการะบบ

Mozilla เปิดตัวแพทช์ Firefox 66.0.4 อย่างรวดเร็ว ซึ่งแก้ปัญหาด้วยใบรับรองที่ไม่ถูกต้อง และส่วนขยายทั้งหมดกลับสู่ปกติ นักพัฒนาแนะนำให้ติดตั้งและ ไม่ได้ใช้ ไม่มีวิธีแก้ปัญหาเพื่อหลีกเลี่ยงการตรวจสอบลายเซ็นเนื่องจากอาจขัดแย้งกับโปรแกรมแก้ไข

อย่างไรก็ตาม เรื่องราวนี้แสดงให้เห็นอีกครั้งว่าการหมดอายุของใบรับรองยังคงเป็นปัญหาเร่งด่วนในปัจจุบัน

ในเรื่องนี้เป็นเรื่องที่น่าสนใจที่จะดูวิธีการที่ค่อนข้างแปลกใหม่ที่นักพัฒนาโปรโตคอลจัดการกับงานนี้ DNSCrypt. วิธีแก้ปัญหาของพวกเขาสามารถแบ่งออกเป็นสองส่วน ประการแรก สิ่งเหล่านี้เป็นใบรับรองระยะสั้น ประการที่สอง เตือนผู้ใช้เกี่ยวกับการหมดอายุของรายการระยะยาว

DNSCrypt

DNSCrypt แก้ไขปัญหาใบรับรองหมดอายุโดยแนะนำระยะเวลาใช้งานได้ 24 ชั่วโมงอย่างไรDNSCrypt เป็นโปรโตคอลการเข้ารหัสการรับส่งข้อมูล DNS ปกป้องการสื่อสาร DNS จากการสกัดกั้นและ MiTM และยังช่วยให้คุณหลีกเลี่ยงการบล็อกในระดับการสืบค้น DNS

โปรโตคอลจะล้อมรอบการรับส่งข้อมูล DNS ระหว่างไคลเอนต์และเซิร์ฟเวอร์ในโครงสร้างการเข้ารหัสซึ่งทำงานผ่านโปรโตคอลการขนส่ง UDP และ TCP หากต้องการใช้งาน ทั้งไคลเอนต์และตัวแก้ไข DNS จะต้องรองรับ DNSCrypt ตัวอย่างเช่น ตั้งแต่เดือนมีนาคม 2016 ได้มีการเปิดใช้งานบนเซิร์ฟเวอร์ DNS และในเบราว์เซอร์ Yandex ผู้ให้บริการรายอื่นหลายรายได้ประกาศการสนับสนุนเช่นกัน รวมถึง Google และ Cloudflare น่าเสียดายที่มีไม่มาก (มีเซิร์ฟเวอร์ DNS สาธารณะ 152 รายการอยู่ในเว็บไซต์อย่างเป็นทางการ) แต่โปรแกรม. DNScrypt-พร็อกซี สามารถติดตั้งได้ด้วยตนเองบนไคลเอนต์ Linux, Windows และ MacOS นอกจากนี้ยังมี การใช้งานเซิร์ฟเวอร์.

DNSCrypt แก้ไขปัญหาใบรับรองหมดอายุโดยแนะนำระยะเวลาใช้งานได้ 24 ชั่วโมงอย่างไร

DNSCrypt ทำงานอย่างไร? กล่าวโดยสรุป ไคลเอนต์ใช้รหัสสาธารณะของผู้ให้บริการที่เลือกและใช้เพื่อตรวจสอบใบรับรอง คีย์สาธารณะระยะสั้นสำหรับเซสชันและตัวระบุชุดรหัสมีอยู่แล้ว ลูกค้าได้รับการสนับสนุนให้สร้างรหัสใหม่สำหรับแต่ละคำขอ และเซิร์ฟเวอร์ได้รับการสนับสนุนให้เปลี่ยนรหัส ทุก 24 ชั่วโมง. เมื่อทำการแลกเปลี่ยนคีย์จะใช้อัลกอริธึม X25519 สำหรับการลงนาม - EdDSA สำหรับการเข้ารหัสบล็อก - XSalsa20-Poly1305 หรือ XChaCha20-Poly1305

หนึ่งในผู้พัฒนาโปรโตคอล Frank Denis เขียนการเปลี่ยนอัตโนมัติทุกๆ 24 ชั่วโมงช่วยแก้ปัญหาใบรับรองหมดอายุได้ ตามหลักการแล้ว ไคลเอนต์อ้างอิง dnscrypt-proxy ยอมรับใบรับรองที่มีระยะเวลาที่ถูกต้อง แต่จะออกคำเตือน "ระยะเวลาคีย์ dnscrypt-proxy สำหรับเซิร์ฟเวอร์นี้ยาวเกินไป" หากใช้งานได้นานกว่า 24 ชั่วโมง ในเวลาเดียวกันมีการเผยแพร่อิมเมจ Docker ซึ่งมีการนำการเปลี่ยนแปลงคีย์ (และใบรับรอง) อย่างรวดเร็วไปใช้

ประการแรก มันมีประโยชน์อย่างมากสำหรับการรักษาความปลอดภัย หากเซิร์ฟเวอร์ถูกบุกรุกหรือคีย์รั่วไหล การรับส่งข้อมูลของเมื่อวานจะไม่สามารถถอดรหัสได้ คีย์มีการเปลี่ยนแปลงแล้ว สิ่งนี้มีแนวโน้มที่จะก่อให้เกิดปัญหาในการดำเนินการตามกฎหมาย Yarovaya ซึ่งบังคับให้ผู้ให้บริการจัดเก็บการรับส่งข้อมูลทั้งหมด รวมถึงการรับส่งข้อมูลที่เข้ารหัสด้วย ความหมายก็คือสามารถถอดรหัสได้ในภายหลังหากจำเป็นโดยการขอรหัสจากไซต์ แต่ในกรณีนี้ไซต์ไม่สามารถให้ได้เนื่องจากใช้คีย์ระยะสั้นเพื่อลบอันเก่า

แต่ที่สำคัญที่สุด เดนิสเขียนว่าคีย์ระยะสั้นบังคับให้เซิร์ฟเวอร์ตั้งค่าระบบอัตโนมัติตั้งแต่วันแรก หากเซิร์ฟเวอร์เชื่อมต่อกับเครือข่ายและไม่ได้กำหนดค่าสคริปต์การเปลี่ยนแปลงคีย์หรือไม่ทำงาน สิ่งนี้จะถูกตรวจพบทันที

เมื่อระบบอัตโนมัติเปลี่ยนคีย์ทุกๆ สองสามปี ระบบอัตโนมัติจะยึดถือไม่ได้ และผู้คนอาจลืมเรื่องการหมดอายุของใบรับรองได้ หากคุณเปลี่ยนกุญแจทุกวัน สิ่งนี้จะถูกตรวจพบทันที

ในเวลาเดียวกัน หากมีการกำหนดค่าระบบอัตโนมัติตามปกติ ก็ไม่สำคัญว่าจะเปลี่ยนคีย์บ่อยแค่ไหน: ทุกปี ทุกไตรมาส หรือสามครั้งต่อวัน ถ้าทุกอย่างได้ผลเกิน 24 ชั่วโมง ทุกอย่างก็จะได้ผลตลอดไป Frank Denis เขียน ตามคำแนะนำของเขา คำแนะนำในการหมุนเวียนคีย์รายวันในเวอร์ชันที่สองของโปรโตคอล ร่วมกับอิมเมจ Docker สำเร็จรูปที่นำไปใช้ ช่วยลดจำนวนเซิร์ฟเวอร์ที่มีใบรับรองหมดอายุได้อย่างมีประสิทธิภาพ ในขณะเดียวกันก็ปรับปรุงความปลอดภัยไปพร้อมๆ กัน

อย่างไรก็ตาม ผู้ให้บริการบางรายยังคงตัดสินใจตั้งค่าระยะเวลาความถูกต้องของใบรับรองเป็นมากกว่า 24 ชั่วโมง ด้วยเหตุผลทางเทคนิคบางประการ ปัญหานี้ส่วนใหญ่ได้รับการแก้ไขด้วยโค้ดสองสามบรรทัดใน dnscrypt-proxy: ผู้ใช้จะได้รับคำเตือนเชิงข้อมูล 30 วันก่อนใบรับรองจะหมดอายุ ข้อความอื่นที่มีระดับความรุนแรงสูงกว่า 7 วันก่อนหมดอายุ และข้อความสำคัญหากใบรับรองยังมีเหลืออยู่ ความถูกต้อง น้อยกว่า 24 ชั่วโมง สิ่งนี้ใช้กับใบรับรองที่มีระยะเวลาใช้งานได้นานในตอนแรกเท่านั้น

ข้อความเหล่านี้ทำให้ผู้ใช้สามารถแจ้งผู้ดำเนินการ DNS เกี่ยวกับการหมดอายุของใบรับรองที่กำลังจะเกิดขึ้นก่อนที่จะสายเกินไป

บางทีหากผู้ใช้ Firefox ทั้งหมดได้รับข้อความดังกล่าว ก็อาจมีบางคนแจ้งให้นักพัฒนาทราบและจะไม่อนุญาตให้ใบรับรองหมดอายุ “ฉันจำเซิร์ฟเวอร์ DNSCrypt เดียวในรายการเซิร์ฟเวอร์ DNS สาธารณะที่ใบรับรองหมดอายุในช่วงสองหรือสามปีที่ผ่านมา” Frank Denis เขียน ไม่ว่าในกรณีใด การเตือนผู้ใช้ก่อนอาจดีกว่าการปิดใช้งานส่วนขยายโดยไม่มีการเตือนล่วงหน้า

DNSCrypt แก้ไขปัญหาใบรับรองหมดอายุโดยแนะนำระยะเวลาใช้งานได้ 24 ชั่วโมงอย่างไร


ที่มา: will.com

เพิ่มความคิดเห็น