ทำไมต้องเก็บใบรับรอง SSL SSL และกุญแจส่วนตัวในไฟล์แยกกัน


11

เอกสาร mod_ssl Apache สำหรับSSLCertificateFileและSSLCertificateKeyFileสั่งกล่าวว่ามันเป็น 'ขอกำลังใจ' ในการจัดเก็บคีย์ส่วนตัวและใบรับรอง SSL ในไฟล์เดียวกัน

ตอนนี้เห็นได้ชัดว่าไฟล์คีย์ส่วนตัวควรได้รับการรักษาความปลอดภัย แต่สมมติว่าเป็นกรณีนี้มีความเสี่ยงเฉพาะในการจัดเก็บใบรับรองในไฟล์เดียวกันหรือไม่? ฉันอยากรู้ว่าทำไมพฤติกรรมนี้จึงได้รับการสนับสนุนและท้อแท้อย่างยิ่งโดยไม่มีคำอธิบาย

คำตอบ:


15

ไฟล์ใบรับรอง SSL เป็นการล็อค
ไฟล์คีย์ใบรับรอง SSL เป็นกุญแจสำคัญ

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

นี่เป็นเรื่องจริงโดยเฉพาะถ้าคุณไม่มีวลีรหัสผ่านบนคีย์ SSL ของคุณ (เว็บเซิร์ฟเวอร์หลายแห่งไม่มีเพื่ออนุญาตให้พวกเขาเริ่มต้นโดยอัตโนมัติในกรณีที่เกิดข้อขัดข้อง)


สิ่งที่คุณป้องกันด้วยการแยกไฟล์เป็นข้อผิดพลาดของ Apache ที่ทำให้ไฟล์ดัมพ์เนื้อหาของSSLCertificateFile(สิ่งที่ควรเปิดเผยต่อสาธารณะ) ไปยังเว็บไคลเอ็นต์
(สำหรับความรู้ของฉันไม่มีข้อผิดพลาดดังกล่าวอยู่หรือเคยมีมา แต่ Apache เป็นซอฟต์แวร์ขนาดใหญ่และซับซ้อนมันเป็นไปได้ทั้งหมด)

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


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

1
มันอาจจะไม่เลวร้ายไปกว่าการอัดกุญแจไปที่ประตู - อาจจะใกล้กว่าที่จะแปะกุญแจที่ด้านบนของวงกบประตูหรือใช้หนึ่งในหินที่ซ่อนกุญแจ :-)
voretaq7

7

OpenSSL เวอร์ชันเก่าต้องใช้สองไฟล์แยกกัน (สาธารณะและส่วนตัว) เอ็นจินเข้ารหัสอื่น ๆ เวอร์ชันเก่าต้องใช้ไฟล์เดียว (ทั้งในไฟล์เดียวกัน) ใน "วิญญาณ" ของความเข้ากันได้ (aka "ผู้ดูแลระบบที่ต้องการความไม่สอดคล้องกันและต้องรักษาใบรับรองสองชุด) ตอนนี้ส่วนใหญ่รองรับทั้งสองอย่าง

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.