การหมดอายุของใบรับรองรูท IdenTrust จะทำให้สูญเสียความไว้วางใจใน Let's Encrypt บนอุปกรณ์รุ่นเก่า

ในวันที่ 30 กันยายน เวลา 17:01 น. ตามเวลามอสโก ใบรับรองรูท IdenTrust (DST Root CA X3) ซึ่งใช้ในการลงนามข้ามใบรับรองรูทของผู้ออกใบรับรอง Let's Encrypt (ISRG Root X1) ซึ่งควบคุมโดยชุมชนและ มอบใบรับรองให้ทุกคนฟรี หมดอายุ การลงนามข้ามสายทำให้มั่นใจได้ว่าใบรับรอง Let's Encrypt ได้รับความเชื่อถือในอุปกรณ์ ระบบปฏิบัติการ และเบราว์เซอร์ที่หลากหลาย ในขณะที่ใบรับรองหลักของ Let's Encrypt ถูกรวมเข้ากับที่เก็บใบรับรองหลัก

เดิมทีมีการวางแผนว่าหลังจากการเลิกใช้งาน DST Root CA X3 แล้ว โครงการ Let's Encrypt จะเปลี่ยนไปสร้างลายเซ็นโดยใช้ใบรับรองหลักเท่านั้น แต่การย้ายดังกล่าวจะนำไปสู่การสูญเสียความเข้ากันได้กับระบบรุ่นเก่าจำนวนมากที่ไม่ เพิ่มใบรับรองรูท Let's Encrypt ไปยังที่เก็บของพวกเขา โดยเฉพาะอย่างยิ่งประมาณ 30% ของอุปกรณ์ Android ที่ใช้งานอยู่ไม่มีข้อมูลในใบรับรองรูท Let's Encrypt ซึ่งรองรับซึ่งปรากฏเฉพาะเริ่มต้นด้วยแพลตฟอร์ม Android 7.1.1 ซึ่งเปิดตัวเมื่อปลายปี 2016

Let's Encrypt ไม่ได้วางแผนที่จะทำข้อตกลงการลงนามข้ามฉบับใหม่ เนื่องจากสิ่งนี้ทำให้เกิดความรับผิดชอบเพิ่มเติมต่อคู่สัญญาในข้อตกลง กีดกันพวกเขาจากความเป็นอิสระและผูกมือของพวกเขาในแง่ของการปฏิบัติตามขั้นตอนและกฎทั้งหมดของผู้มีอำนาจออกใบรับรองอื่น แต่เนื่องจากปัญหาที่อาจเกิดขึ้นกับอุปกรณ์ Android จำนวนมาก แผนจึงได้รับการแก้ไข มีการสรุปข้อตกลงใหม่กับหน่วยงานออกใบรับรอง IdenTrust ภายในกรอบงานที่มีการสร้างใบรับรองระดับกลาง Let's Encrypt ที่ลงนามข้ามทางเลือก ลายเซ็นข้ามจะมีอายุสามปีและจะรักษาการสนับสนุนสำหรับอุปกรณ์ Android ที่เริ่มตั้งแต่เวอร์ชัน 2.3.6

อย่างไรก็ตาม ใบรับรองระดับกลางใหม่ไม่ครอบคลุมถึงระบบเดิมอื่นๆ อีกมากมาย ตัวอย่างเช่น เมื่อใบรับรอง DST Root CA X3 เลิกใช้งานในวันที่ 30 กันยายน ใบรับรอง Let's Encrypt จะไม่ได้รับการยอมรับอีกต่อไปบนเฟิร์มแวร์และระบบปฏิบัติการที่ไม่รองรับซึ่งจำเป็นต้องเพิ่มใบรับรอง ISRG Root X1 ด้วยตนเองไปยังที่เก็บใบรับรองหลักเพื่อให้มั่นใจในความน่าเชื่อถือในใบรับรอง Let's Encrypt . ปัญหาจะปรากฏใน:

  • OpenSSL จนถึงสาขา 1.0.2 รวมอยู่ด้วย (การบำรุงรักษาสาขา 1.0.2 ถูกยกเลิกในเดือนธันวาคม 2019)
  • สสส < 3.26;
  • ชวา 8 < 8u141, ชวา 7 < 7u151;
  • Windows < XP SP3;
  • macOS < 10.12.1;
  • iOS < 10 (ไอโฟน < 5);
  • แอนดรอยด์ <2.3.6;
  • Mozilla Firefox < 50;
  • อูบุนตู <16.04;
  • เดเบียน < 8

ในกรณีของ OpenSSL 1.0.2 ปัญหาเกิดจากจุดบกพร่องที่ทำให้ใบรับรองที่ลงนามข้ามไม่สามารถประมวลผลได้อย่างถูกต้อง หากใบรับรองหลักใบใดใบหนึ่งที่ใช้สำหรับการลงนามหมดอายุ แม้ว่าห่วงโซ่ความน่าเชื่อถืออื่น ๆ ที่ถูกต้องจะยังคงอยู่ก็ตาม ปัญหาดังกล่าวเกิดขึ้นครั้งแรกเมื่อปีที่แล้วหลังจากใบรับรอง AddTrust ที่ใช้ในการลงนามใบรับรองจากหน่วยงานออกใบรับรอง Sectigo (Comodo) ล้าสมัย จุดสำคัญของปัญหาคือ OpenSSL แยกวิเคราะห์ใบรับรองเป็นแบบลูกโซ่เชิงเส้น ในขณะที่ตาม RFC 4158 ใบรับรองสามารถแสดงกราฟวงกลมแบบกระจายโดยตรงพร้อมจุดยึดที่เชื่อถือได้หลายตัวที่ต้องนำมาพิจารณา

ผู้ใช้เวอร์ชันเก่าที่ใช้ OpenSSL 1.0.2 จะได้รับวิธีแก้ปัญหาสามประการเพื่อแก้ไขปัญหา:

  • ลบใบรับรองหลัก IdenTrust DST Root CA X3 ด้วยตนเอง และติดตั้งใบรับรองหลัก ISRG Root X1 แบบสแตนด์อโลน (ไม่มีการลงนามข้าม)
  • เมื่อรันคำสั่ง openssl Verify และ s_client คุณสามารถระบุตัวเลือก “--trusted_first” ได้
  • ใช้บนเซิร์ฟเวอร์ใบรับรองที่ได้รับการรับรองโดยใบรับรองรูทแยกต่างหาก SRG Root X1 ซึ่งไม่มีลายเซ็นข้าม วิธีนี้จะนำไปสู่การสูญเสียความเข้ากันได้กับไคลเอนต์ Android รุ่นเก่า

นอกจากนี้ เรายังสังเกตได้ว่าโครงการ Let's Encrypt ได้ก้าวข้ามหลักชัยของใบรับรองที่สร้างขึ้นมาแล้วกว่า 2.2 พันล้านใบ บรรลุเป้าหมายหนึ่งพันล้านในเดือนกุมภาพันธ์ปีที่แล้ว มีการสร้างใบรับรองใหม่ 2.4-192 ล้านใบรับรองทุกวัน จำนวนใบรับรองที่ใช้งานอยู่คือ 260 ล้านใบ (ใบรับรองมีอายุสามเดือน) และครอบคลุมประมาณ 195 ล้านโดเมน (ครอบคลุม 150 ล้านโดเมนเมื่อปีที่แล้ว 60 ล้านเมื่อสองปีก่อน 82 ล้านเมื่อสามปีที่แล้ว) ตามสถิติจากบริการ Firefox Telemetry ส่วนแบ่งคำขอเพจทั่วโลกผ่าน HTTPS คือ 81% (ปีที่แล้ว - 77% สองปีที่แล้ว - 69% สามปีที่แล้ว - 58% สี่ปีที่แล้ว - XNUMX%)

ที่มา: opennet.ru

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