Mozilla ใช้ CRLite เพื่อตรวจสอบใบรับรอง TLS ที่มีปัญหา

บริษัท มอซิลลา ประกาศ เกี่ยวกับการเริ่มต้นการทดสอบใน Firefox บิลด์ทุกคืนซึ่งเป็นกลไกใหม่ในการตรวจจับใบรับรองที่ถูกเพิกถอน - ซีอาร์ไลท์. CRLite ช่วยให้คุณสามารถจัดระเบียบการตรวจสอบการเพิกถอนใบรับรองที่มีประสิทธิภาพกับฐานข้อมูลที่โฮสต์บนระบบของผู้ใช้ การใช้งาน CRLite ของ Mozilla เผยแพร่แล้ว ภายใต้ใบอนุญาต MPL 2.0 ฟรี มีการเขียนโค้ดสำหรับการสร้างส่วนประกอบฐานข้อมูลและเซิร์ฟเวอร์ หลาม และไป. เพิ่มส่วนของไคลเอนต์ลงใน Firefox เพื่ออ่านข้อมูลจากฐานข้อมูล เตรียมไว้ ในภาษารัส

การตรวจสอบใบรับรองโดยใช้บริการภายนอกตามโปรโตคอลที่ยังคงใช้อยู่ อคส (โปรโตคอลสถานะใบรับรองออนไลน์) ต้องการการเข้าถึงเครือข่ายที่รับประกัน นำไปสู่ความล่าช้าอย่างมากในการประมวลผลคำขอ (โดยเฉลี่ย 350ms) และมีปัญหาในการรับรองการรักษาความลับ (เซิร์ฟเวอร์ OCSP ที่ตอบสนองต่อคำขอได้รับข้อมูลเกี่ยวกับใบรับรองเฉพาะซึ่งสามารถใช้เพื่อตัดสินว่าอะไร ไซต์ที่ผู้ใช้เปิด) นอกจากนี้ยังมีความเป็นไปได้ในการตรวจสอบรายการในท้องถิ่นด้วย ซี.อาร์.แอล. (รายการเพิกถอนใบรับรอง) แต่ข้อเสียของวิธีนี้คือข้อมูลที่ดาวน์โหลดมีขนาดใหญ่มาก - ปัจจุบันฐานข้อมูลใบรับรองที่ถูกเพิกถอนใช้พื้นที่ประมาณ 300 MB และการเติบโตยังคงดำเนินต่อไป

ในการบล็อกใบรับรองที่ถูกบุกรุกและเพิกถอนโดยหน่วยงานออกใบรับรอง Firefox ได้ใช้บัญชีดำแบบรวมศูนย์ตั้งแต่ปี 2015 onecrl ร่วมกับการเรียกใช้บริการ Google Safe Browsing เพื่อระบุกิจกรรมที่เป็นอันตรายที่อาจเกิดขึ้น OneCRL เช่น CRLSet ใน Chrome ทำหน้าที่เป็นลิงก์กลางที่รวบรวมรายการ CRL จากหน่วยงานออกใบรับรอง และให้บริการ OCSP แบบรวมศูนย์เดียวสำหรับตรวจสอบใบรับรองที่ถูกเพิกถอน ทำให้ไม่สามารถส่งคำขอโดยตรงไปยังหน่วยงานออกใบรับรองได้ แม้จะมีการทำงานมากมายเพื่อปรับปรุงความน่าเชื่อถือของบริการตรวจสอบใบรับรองออนไลน์ แต่ข้อมูลการวัดและส่งข้อมูลทางไกลแสดงให้เห็นว่าคำขอ OCSP มากกว่า 7% หมดเวลา (ไม่กี่ปีที่แล้วตัวเลขนี้คือ 15%)

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

CRLite ช่วยให้คุณสามารถรวมข้อมูลที่ครบถ้วนเกี่ยวกับใบรับรองที่ถูกเพิกถอนทั้งหมดไว้ในโครงสร้างที่อัปเดตได้อย่างง่ายดาย โดยมีขนาดเพียง 1 MB ซึ่งทำให้สามารถจัดเก็บฐานข้อมูล CRL ที่สมบูรณ์บนฝั่งไคลเอ็นต์ได้
เบราว์เซอร์จะสามารถซิงโครไนซ์สำเนาข้อมูลเกี่ยวกับใบรับรองที่ถูกเพิกถอนได้ทุกวัน และฐานข้อมูลนี้จะพร้อมใช้งานภายใต้เงื่อนไขใด ๆ

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

เพื่อกำจัดผลบวกลวง CRLite ได้แนะนำระดับตัวกรองการแก้ไขเพิ่มเติม หลังจากสร้างโครงสร้างแล้ว บันทึกแหล่งที่มาทั้งหมดจะถูกค้นหาและระบุผลบวกลวง ตามผลลัพธ์ของการตรวจสอบนี้ โครงสร้างเพิ่มเติมจะถูกสร้างขึ้น ซึ่งเรียงซ้อนกับโครงสร้างแรกและแก้ไขผลบวกลวงที่เกิดขึ้น การดำเนินการซ้ำจนกว่าผลบวกลวงระหว่างการตรวจสอบการควบคุมจะหมดไปโดยสิ้นเชิง โดยทั่วไป การสร้างเลเยอร์ 7-10 ก็เพียงพอที่จะครอบคลุมข้อมูลทั้งหมดได้อย่างสมบูรณ์ เนื่องจากสถานะของฐานข้อมูลเนื่องจากการซิงโครไนซ์เป็นระยะจึงล่าช้ากว่าสถานะปัจจุบันของ CRL เล็กน้อย การตรวจสอบใบรับรองใหม่ที่ออกหลังจากการอัพเดตฐานข้อมูล CRLite ครั้งล่าสุดจะดำเนินการโดยใช้โปรโตคอล OCSP รวมถึงการใช้ การเย็บ OCSP (การตอบสนองของ OCSP ที่ได้รับการรับรองโดยหน่วยงานออกใบรับรองจะถูกส่งโดยเซิร์ฟเวอร์ที่ให้บริการไซต์เมื่อเจรจาการเชื่อมต่อ TLS)

Mozilla ใช้ CRLite เพื่อตรวจสอบใบรับรอง TLS ที่มีปัญหา

การใช้ตัวกรอง Bloom ทำให้สามารถรวมข้อมูลส่วนเดือนธันวาคมจาก WebPKI ซึ่งครอบคลุมใบรับรองที่ใช้งานอยู่ 100 ล้านใบ และใบรับรองที่ถูกเพิกถอน 750 ใบ ลงในโครงสร้างขนาด 1.3 MB กระบวนการสร้างโครงสร้างค่อนข้างใช้ทรัพยากรมาก แต่ดำเนินการบนเซิร์ฟเวอร์ Mozilla และผู้ใช้จะได้รับการอัปเดตที่พร้อมใช้งาน ตัวอย่างเช่น ในรูปแบบไบนารี ข้อมูลต้นฉบับที่ใช้ระหว่างการสร้างต้องใช้หน่วยความจำประมาณ 16 GB เมื่อจัดเก็บไว้ใน Redis DBMS และในรูปแบบเลขฐานสิบหก การถ่ายโอนข้อมูลหมายเลขซีเรียลใบรับรองทั้งหมดจะใช้เวลาประมาณ 6.7 GB กระบวนการรวบรวมใบรับรองที่ถูกเพิกถอนและใช้งานอยู่ทั้งหมดใช้เวลาประมาณ 40 นาที และกระบวนการสร้างโครงสร้างแบบแพ็กเกจตามตัวกรอง Bloom ใช้เวลาประมาณ 20 นาที

ปัจจุบัน Mozilla รับประกันว่าฐานข้อมูล CRLite ได้รับการอัพเดตสี่ครั้งต่อวัน (การอัปเดตบางส่วนอาจไม่ถูกส่งไปยังไคลเอนต์) ยังไม่มีการสร้างการอัปเดตเดลต้า - การใช้ bsdiff4 ที่ใช้ในการสร้างการอัปเดตเดลต้าสำหรับการเผยแพร่ ไม่ได้ให้ประสิทธิภาพที่เพียงพอสำหรับ CRLite และการอัปเดตมีขนาดใหญ่เกินสมควร เพื่อขจัดข้อเสียเปรียบนี้ จึงมีการวางแผนที่จะปรับปรุงรูปแบบของโครงสร้างการจัดเก็บข้อมูล เพื่อลดการสร้างและการลบเลเยอร์ที่ไม่จำเป็น

ปัจจุบัน CRLite ทำงานใน Firefox ในโหมดพาสซีฟและใช้ควบคู่กับ OCSP เพื่อสะสมสถิติเกี่ยวกับการดำเนินการที่ถูกต้อง CRLite สามารถสลับเป็นโหมดสแกนหลักได้ ในการดำเนินการนี้ คุณต้องตั้งค่าพารามิเตอร์ security.pki.crlite_mode = 2 ใน about:config

Mozilla ใช้ CRLite เพื่อตรวจสอบใบรับรอง TLS ที่มีปัญหา

ที่มา: opennet.ru

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