การไว้วางใจ CA ที่ไม่น่าเชื่อถือ - ฉันสามารถ จำกัด วิธีที่ระบบเชื่อถือได้หรือไม่


32

(โพสต์ไปที่ ServerFault แทน StackOverflow เพราะฉันรู้สึกว่ามันเกี่ยวข้องกับการกำหนดค่าระบบปฏิบัติการมากกว่าโค้ดโปรแกรม)

ขณะนี้ฉันรับผิดชอบการบำรุงรักษาระบบที่เชื่อมต่อกับบริการเว็บของบุคคลที่สาม เว็บเซอร์นี้ต้องการใบรับรองการรับรองความถูกต้องของลูกค้าซึ่งมีความยุติธรรม แต่เว็บเซอร์นั้นปลอดภัยด้วยใบรับรองที่ลงนามด้วยตนเองซึ่งสร้างขึ้นโดยใบรับรองสิทธิ์การรับรองรูทที่สร้างขึ้นด้วยตนเอง - รูทเดียวกันที่สร้างใบรับรองรับรองความถูกต้องของลูกค้า

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

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

เป็นไปได้หรือไม่ที่ฉันจะบอกคอมพิวเตอร์ของฉัน (ปัจจุบันคือกล่องเซิร์ฟเวอร์ แต่ในกล่องไคลเอนต์เดสก์ทอปธรรมดาในอนาคต) เพื่อไว้วางใจ CA แต่สำหรับชุดคีย์การใช้งานที่กำหนดและชุดชื่อเรื่องที่เป็นไปได้เล็ก ๆ )?

เซิร์ฟเวอร์ในปัจจุบันคือ Windows Server 2012 R2 แต่อาจทำงานบนกล่อง Linux ได้แม้ว่าเครื่องเดสก์ท็อปจะเป็นกล่อง Windows ทั้งหมด


3
อย่างน้อยบน Linux แอปพลิเคชันจำนวนมากมีตัวเลือกในการระบุตำแหน่งของใบรับรอง CA แบบเพียร์ดังนั้นคุณสามารถ จำกัด ขอบเขตของ CA นี้เฉพาะแอปพลิเคชันที่ใช้เท่านั้น คำตอบของ @CryptoGuy ก็ใช้ได้กับ Linux เช่นกันไม่มีหน้าต่างที่เจาะจงอยู่
Edeldil

1
@Edheldil: มันเป็นเรื่องของการนำไปใช้งานโดยเฉพาะ - เช่น Windows ได้รองรับข้อ จำกัด ชื่อ X.509 นานกว่า NSS หรือ GnuTLS
grawity

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

@Castaglia ฉันสามารถเขียนรหัสการตรวจสอบใบรับรองของตัวเองที่ทำงานเป็นอิสระจากระบบโฮสต์ แต่มีซอฟต์แวร์ไคลเอ็นต์อื่น ๆ ที่ฉันไม่สามารถควบคุมได้ซึ่งใช้บริการใบรับรองระบบทั้งระบบ
Dai

คำตอบ:


40

ใช่มันเป็นไปได้ ในกรณีของ Windows จะมีคุณสมบัติที่เรียกว่า Cross-Certification หรือ Submitted ที่ผ่านการรับรอง

แนวคิดคือคุณลงชื่อใบรับรอง CA ที่ออกโดยบุคคลที่สามในสภาพแวดล้อมของคุณ ในฐานะที่เป็นใบรับรองผลระยะไกล SSL ถูกผูกมัดกับใบรับรอง CA หลักของคุณเอง เพื่อป้องกันตัวคุณเองจากใบรับรองโกงที่เป็นไปได้คุณใช้Name Constraintsส่วนขยายใบรับรองที่คุณระบุรายชื่อที่ยอมรับได้ หากบุคคลที่สามออกใบรับรอง CA สำหรับชื่ออื่น ๆ (ไม่ได้ระบุไว้อย่างชัดเจนในส่วนขยายชื่อข้อ จำกัด ) ผู้ให้บริการ CryptoAPI ของคุณจะถูกปฏิเสธโดยอัตโนมัติ

นอกเหนือจากข้อ จำกัด ของชื่อคุณสามารถอธิบายข้อ จำกัด การใช้คีย์ขั้นสูงโดยการกำหนดApplication Policiesส่วนขยายใบรับรองในใบรับรองไขว้ ดังนั้นผู้ให้บริการที่เชื่อถือได้ของคุณจะตรวจสอบการใช้งานที่ระบุในApplication Policiesส่วนขยายได้สำเร็จ

ข้อมูลเพิ่มเติม: การวางแผนและการใช้การรับรองข้ามระบบและการรับรองระบบย่อยโดยใช้ Windows Server 2003

ps ถึงแม้ว่าบทความนี้เขียนขึ้นกับ Windows Server 2003 บทความนี้ยังคงใช้กับ Windows Server รุ่นล่าสุด

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