รายละเอียดของโปรแกรมเบราว์เซอร์ปัจจุบันสำหรับตรวจสอบสถานะการเพิกถอน SSL /TLS ใบรับรองรวมถึงการทดสอบข้ามเบราว์เซอร์
บทนำ
การตรวจสอบสถานะการเพิกถอน SSL /TLS ใบรับรองที่นำเสนอโดย HTTPS เว็บไซต์เป็นปัญหาต่อเนื่องในการรักษาความปลอดภัยเว็บ นอกเสียจากว่ามีการกำหนดค่าเซิร์ฟเวอร์ให้ใช้งาน การเย็บ OCSPการตรวจสอบการเพิกถอนออนไลน์โดยเว็บเบราว์เซอร์นั้นช้าและเป็นการละเมิดความเป็นส่วนตัว เนื่องจากการสืบค้น OCSP ออนไลน์ล้มเหลวบ่อยครั้งและเป็นไปไม่ได้ในบางสถานการณ์ (เช่นกับพอร์ทัล Captive) โดยทั่วไปแล้วเบราว์เซอร์จะใช้การตรวจสอบ OCSP ในโหมด "soft-fail" จึงทำให้ไม่มีประสิทธิภาพในการยับยั้งผู้โจมตีที่มุ่งมั่น (สำหรับประวัติที่สมบูรณ์ของปัญหานี้โปรดอ่านบทความของ SSL.com การเพิ่มประสิทธิภาพการโหลดหน้า: เย็บ OCSP).
ด้วยเหตุผลเหล่านี้เว็บเบราว์เซอร์จึงได้ติดตั้งโซลูชั่นหลากหลายเพื่อลดหรือขจัดความจำเป็นในการตรวจสอบการเพิกถอนออนไลน์ รายละเอียดที่แน่นอนแตกต่างกันไปตามผู้ให้บริการ แต่โดยทั่วไปโซลูชันเหล่านี้เกี่ยวข้องกับการรวบรวมรายการใบรับรองที่ถูกเพิกถอนจากหน่วยงานผู้ออกใบรับรอง (CA) และผลักดันพวกเขาไปยังเบราว์เซอร์
บทความนี้ให้ข้อมูลสรุประดับสูงของกลยุทธ์การตรวจสอบความถูกต้องที่ใช้โดยเบราว์เซอร์เดสก์ท็อปหลัก ๆ (Chrome, Firefox, Safariและ ขอบ) และเปรียบเทียบการตอบกลับของเบราว์เซอร์เหล่านี้กับตัวอย่างบางส่วน เพิกถอนใบรับรอง โฮสต์โดย SSL.com
Google Chrome
Chrome พึ่งพา CRLSet สำหรับการตรวจสอบการเพิกถอน CRLSet เป็นเพียงรายการของใบรับรองที่ถูกเพิกถอนซึ่งถูกส่งไปยังเบราว์เซอร์เป็นการอัปเดตซอฟต์แวร์ ให้เป็นไปตาม เว็บไซต์โครงการ Chromiumกระบวนการที่ Google สร้าง CRLSets เป็นกรรมสิทธิ์ แต่ก็เป็นเช่นนั้น
CRLSets …โดยหลักแล้ว Chrome สามารถบล็อกใบรับรองได้อย่างรวดเร็วในสถานการณ์ฉุกเฉิน ในฐานะที่เป็นฟังก์ชันรองพวกเขายังสามารถมีการเพิกถอนที่ไม่ใช่เหตุฉุกเฉินได้อีกด้วย การเพิกถอนในภายหลังเหล่านี้ได้มาจากการรวบรวมข้อมูล CRL ที่เผยแพร่โดย CA
ข้อความข้างต้นระบุว่าอย่างน้อย บาง ใบรับรองเอนทิตีเอนด์ที่มีลำดับความสำคัญต่ำที่ถูกเพิกถอนอาจสิ้นสุดใน CRLSets แต่เป็นข้อพิจารณารอง
คุณสามารถตรวจสอบเวอร์ชัน CRLSet ที่ติดตั้งในอินสแตนซ์ของ Chrome ได้ในขณะนี้โดยไปที่ chrome://components/
:
opera://components
. ตามที่แหลมออกไป ด้านล่างเบราว์เซอร์ Edge ของ Microsoft เวอร์ชันปัจจุบันยังใช้ Chromium และใช้ CRLSetsปัจจุบันไม่สามารถกำหนดค่า Chrome ให้ดำเนินการค้นหาข้อความรับรองความถูกต้องออนไลน์ได้โดยตรง อย่างไรก็ตามขึ้นอยู่กับระบบปฏิบัติการการตรวจสอบเหล่านี้อาจดำเนินการโดยไลบรารีใบรับรองพื้นฐานที่ใช้โดยระบบปฏิบัติการ (ที่สามารถมองเห็น ด้านล่าง ในผลจากการทดสอบเบราว์เซอร์ที่ จำกัด เราพบว่าการติดตั้ง Chrome ที่มีหมายเลขเวอร์ชันเดียวกันและ CRLSet ตอบสนองต่อใบรับรองที่ถูกเพิกถอนสองรายการแตกต่างกันใน Windows เทียบกับ macOS)
Mozilla Firefox
เช่นเดียวกับ Google Mozilla จะเก็บรายการใบรับรองที่ถูกเพิกถอนจากส่วนกลางที่เรียกว่า onecrl. OneCRL คือรายการใบรับรองระดับกลางที่ CA ถูกเพิกถอนในโปรแกรมรูทของ Mozilla และถูกส่งไปยังผู้ใช้ Firefox ในการอัปเดตแอปพลิเคชัน เกี่ยวกับใบรับรอง end-entity Mozilla's แผนการเพิกถอน ตั้งข้อสังเกตว่า“ ในอนาคตเมื่อการใช้งานเริ่มต้นได้ผลเราอาจพิจารณาครอบคลุมใบรับรอง EE กับ OneCRL โดยอาจมุ่งเน้นไปที่คลาสเฉพาะในขั้นต้น (เช่นใบรับรอง EV)”
สามารถดาวน์โหลด OneCRL เป็นวัตถุ JSON โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติมหรือดูเป็นหน้าเว็บที่ crt.sh.
ซึ่งแตกต่างจาก Chrome การตั้งค่าเริ่มต้นของ Firefox ยังสอบถามผู้ตอบสนอง OCSP เพื่อยืนยันความถูกต้องของ SSL /TLS ใบรับรอง (คุณสามารถเปลี่ยนการตั้งค่านี้ได้ในการตั้งค่าความปลอดภัยของ Firefox)
อย่างไรก็ตามเนื่องจากความล้มเหลวในการสืบค้น OCSP เป็นเรื่องปกติ Firefox (เช่นเบราว์เซอร์อื่น ๆ ) จึงใช้นโยบาย "soft-fail" หากต้องการคุณสามารถกำหนดให้มีการตรวจสอบ OCSP อย่างเข้มงวดโดยไปที่ about:config
และสลับ security.OCSP.require
ไปยัง true
.
Apple Safari
แนวทางการเพิกถอนปัจจุบันของ Apple ครอบคลุมโดย Bailey Basile ในการพูดคุย WWDC 2017 ของเธอ แอพของคุณและการพัฒนามาตรฐานความปลอดภัยเครือข่าย. Apple รวบรวมข้อมูลการเพิกถอนใบรับรองจาก CA ที่เชื่อถือได้บนอุปกรณ์ของตนและรวมข้อมูลทั้งหมดไว้ในกลุ่มเดียวซึ่งซอฟต์แวร์ไคลเอ็นต์ของ Apple จะดึงข้อมูลเป็นระยะ ๆ (ดูเหมือนจะเป็นแผนการที่คุ้นเคยหรือยัง)
เมื่อแอปพลิเคชันไคลเอนต์พบใบรับรองที่แสดงในรายการของ Apple จะทำการตรวจสอบ OCSP เพื่อยืนยันว่าใบรับรองถูกเพิกถอนในความเป็นจริง (เว้นแต่เซิร์ฟเวอร์จะให้การตอบสนอง OCSP แบบเย็บเล่ม) โปรดทราบว่าการตรวจสอบ OCSP แบบออนไลน์จะทำได้เฉพาะในกรณีของใบรับรองที่ Apple คิดว่าถูกเพิกถอนแล้วเท่านั้น ใบรับรองที่ไม่อยู่ในบันเดิลที่ดึงมาจาก Apple จะไม่ได้รับการตรวจสอบ
ลิงก์ไปยังรายการเพิกถอนของ Apple และรหัสสำหรับการแยกวิเคราะห์มีอยู่ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.
Microsoft Edge
Windows เก็บรักษารายการใบรับรองที่ถูกเพิกถอนหรือบัญชีดำในไฟล์ที่เรียกว่า disallowedcert.stl
. นี้ รายการบล็อก ให้ข้อมูลเกี่ยวกับการทิ้งเนื้อหาของไฟล์ด้วย PowerShell crt.sh ยังให้ข้อมูลว่าใบรับรองเฉพาะนั้นมีอยู่ในรายการหรือไม่ disallowedcert.stl
.
เช่นเดียวกับ Firefox Windows ถูกตั้งค่าให้ตรวจสอบการเพิกถอนใบรับรองตามค่าเริ่มต้น การตั้งค่านี้สามารถดูและเปลี่ยนแปลงได้ในไฟล์ คุณสมบัติของอินเทอร์เน็ต แผงควบคุม:
อย่างไรก็ตาม Edge เวอร์ชันปัจจุบัน (ที่ใช้โครเมียม) เช่น Chrome ต้องอาศัย CRLSets ในการตรวจสอบการเพิกถอนและปรากฏจากการทดสอบของเรา ด้านล่าง เป็นอิสระจากการตั้งค่าการตรวจสอบการเพิกถอนในคุณสมบัติอินเทอร์เน็ต (หมายเหตุ ในเวอร์ชันก่อนหน้าของการทดสอบเหล่านี้ทำในเดือนกันยายน 2019 Internet Explorer และ Edge เวอร์ชันก่อน Chromium ไม่ ทำตามการตั้งค่าเหล่านี้ในคุณสมบัติอินเทอร์เน็ต)
การเปลี่ยนแปลงระหว่างเบราว์เซอร์
เนื่องจาก SSL.com มีกลุ่มของเว็บเซิร์ฟเวอร์ที่โฮสต์ใบรับรองที่ถูกเพิกถอนตัวอย่างเราจึงตัดสินใจทดสอบกับเบราว์เซอร์เดสก์ท็อปหลายประเภทการทดสอบขนาดเล็กที่ไม่ร้ายแรงนี้ได้ดำเนินการในวันที่ 23 กุมภาพันธ์ 2020 เบราว์เซอร์ที่ใช้ ได้แก่ :
- Chrome 88.0.4324.182, CRLSet เวอร์ชัน 6444 (macOS 10.15.7)
- Chrome 88.0.4324.182, CRLSet เวอร์ชัน 6444 (Windows 10 Pro)
- Edge 88.0.705.74, CRLSet เวอร์ชัน 6444 (Windows 10 Enterprise)
- Firefox 86.0 - การสืบค้น OCSP บน (macOS 10.15.7)
- Firefox 86.0 - ปิดการค้นหา OCSP (macOS 10.15.7)
- Safari 14.0.3 (MacOS 10.15.1)
นอกจากนี้เราได้ทดสอบ Chrome และ Edge ใน Windows ด้วยการปิดใช้งานการตรวจสอบการเพิกถอนออนไลน์ในแผงควบคุมคุณสมบัติอินเทอร์เน็ตและ (สำหรับ Chrome, Firefox และ Edge) ตรวจสอบว่าใบรับรองที่เกี่ยวข้องถูกระบุว่าถูกเพิกถอนด้วยโปรแกรมเบราว์เซอร์เฉพาะหรือไม่ใน crt.sh.
โครม (แมคโอเอส) | โครม (วินโดว์) | ขอบ (Windows) | Firefox (Mac) (เปิด OCSP) | Firefox (Mac) (ปิด OCSP) | ซาฟารี (Mac) | |
---|---|---|---|---|---|---|
เพิกถอน-rsa-dv.ssl.com | ยกเลิก | ไม่ถูกเพิกถอน | ไม่ถูกเพิกถอน | ยกเลิก | ไม่ถูกเพิกถอน | ยกเลิก |
เพิกถอน-rsa-ev.ssl.com | ยกเลิก | ยกเลิก | ยกเลิก | ยกเลิก | ไม่ถูกเพิกถอน | ยกเลิก |
เพิกถอน ecc-dv.ssl.com | ยกเลิก | ไม่ถูกเพิกถอน | ไม่ถูกเพิกถอน | ยกเลิก | ไม่ถูกเพิกถอน | ยกเลิก |
เพิกถอน ecc-ev.ssl.com | ยกเลิก | ยกเลิก | ยกเลิก | ยกเลิก | ไม่ถูกเพิกถอน | ยกเลิก |
การอภิปรายเรื่องผลลัพธ์
โครเมี่ยม: ใน Windows Chrome แสดงใบรับรองที่ถูกเพิกถอนสองรายการอย่างไม่ถูกต้อง (เพิกถอน-rsa-dv.ssl.com และ เพิกถอน ecc-dv.ssl.com) ถูกต้องและอย่างอื่นที่ถูกเพิกถอน การปิดใช้งานการตรวจสอบความถูกต้องในระบบปฏิบัติการไม่ได้เปลี่ยนแปลงการตอบสนองนี้ น่าสนใจไม่มีใบรับรองสี่รายการที่ถูกเพิกถอนใน CRLSet ใน crt.sh ในขณะทดสอบแนะนำคำถามเพิ่มเติมเกี่ยวกับกระบวนการตรวจสอบการเพิกถอนของ Chrome ใน macOS Chrome แสดงใบรับรองทั้งสี่อย่างถูกต้องตามที่ถูกเพิกถอนซึ่งแสดงให้เห็นถึงความแตกต่างตามแพลตฟอร์มในพฤติกรรมของ Chrome
ขอบ: Edge เวอร์ชันปัจจุบัน (ที่ใช้โครเมียม) ที่ทำมิเรอร์ Chrome ในการแสดง เพิกถอน-rsa-dv.ssl.com และ เพิกถอน ecc-dv.ssl.com ตามที่ถูกต้อง เช่นเดียวกับ Chrome Edge แสดงผลลัพธ์เดียวกันไม่ว่าจะเปิดใช้งานการตรวจสอบความถูกต้องในระบบปฏิบัติการหรือไม่ ไม่มีใบรับรองสี่รายการใดที่แสดงตามที่ระบุไว้ใน disallowedcert.stl
on crt.sh.
Firefox: ตามที่คาดไว้จากการให้ความสำคัญกับใบรับรองระดับกลางของ OneCRL Firefox ยอมรับเฉพาะใบรับรองทั้งสี่รายการที่ถูกเพิกถอนโดยเปิดใช้งานการสืบค้น OCSP ในการตั้งค่าของเบราว์เซอร์ แต่ยอมรับทั้งสี่ว่าถูกต้องหากปิดใช้งานการสืบค้น OCSP (หมายเหตุ ใบรับรองเอนทิตีสิ้นสุดที่ถูกเพิกถอนทั้งสี่เหล่านี้ออกจากตัวกลางที่ถูกต้องและไม่ถูกเพิกถอน) เช่นเดียวกับ Chrome crt.sh ไม่แสดงใบรับรองใด ๆ ที่ถูกเพิกถอนใน OneCRL
Safari: Safari บน macOS ยอมรับใบรับรองทั้งสี่อย่างถูกต้องว่าถูกเพิกถอน crt.sh ไม่แสดงข้อมูลการเพิกถอนของ Apple และเราไม่ได้ตรวจสอบเพื่อดูว่าใบรับรองเฉพาะเหล่านี้มีการระบุว่า Apple เพิกถอนแล้วหรือไม่
สรุป
ผลการวิจัยแสดงให้เห็นว่าการเพิกถอนยังคงเป็นปัญหาสำหรับเว็บเบราว์เซอร์บนเดสก์ท็อป (โทรศัพท์มือถือเป็นตัวแทนของโลกที่แตกต่างไปจากเดิม แต่เป็นหัวข้อสำหรับบทความอื่น) การเปิดใช้งานการตรวจสอบ OCSP แบบออนไลน์ (ช้าและไม่ปลอดภัย) เป็นสิ่งที่จำเป็นในการรับรู้ใบรับรองที่ถูกเพิกถอนใน Firefox ในขณะที่ Chrome และ Edge ไม่สามารถรับรู้ใบรับรองที่ถูกเพิกถอนสองรายการบน Windows ไม่ว่าจะเปิดใช้งานการตรวจสอบการเพิกถอนในระบบปฏิบัติการหรือไม่
สำหรับเจ้าของเว็บไซต์ดูเหมือนว่าควรถือว่าโปรแกรมเบราว์เซอร์ต่าง ๆ นั้นเน้นไปที่เหตุการณ์ที่มีลำดับความสำคัญสูง / เหตุฉุกเฉินเช่นรูตที่ถูกเพิกถอนและใบรับรอง CA ระดับกลางและการเพิกถอนใบรับรองเอนทิตีเอนกประสงค์ในสวนนั้น ระยะเวลาไม่ จำกัด ด้วยเหตุนี้การใช้งาน OCSP Stapling และ Staple ที่ต้องห้าม ดูเหมือนจะเป็นวิธีที่ปลอดภัยและมีประสิทธิภาพมากที่สุดเพื่อให้แน่ใจว่าผู้ใช้ปลายทางได้รับข้อมูลที่ถูกต้องเกี่ยวกับการเพิกถอนใบรับรองเอนทิตีปลาย
SSL.com มีไฟล์ SSL /TLS ใบรับรองเซิร์ฟเวอร์ สำหรับเว็บไซต์ HTTPS