เป็นไปได้หรือไม่ที่จะเชื่อถือใบรับรองใน windows โดยไม่ต้องเชื่อถือ root CA


14

เป็นไปได้หรือไม่ที่จะทำให้ windows เชื่อถือใบรับรองโดยไม่ต้องให้รูท CA ไว้วางใจในฐานะรูท CA ที่เชื่อถือได้

ว่าฉันมีห่วงโซ่ใบรับรองดังต่อไปนี้

Dept-Root-CA
Dept-Intermediate-1
Server-Certificate

ฉันต้องการเชื่อถือใบรับรองเซิร์ฟเวอร์ แต่ไม่ต้องการเชื่อถือ Dept-Root-CA เพราะมันสามารถลงนามใบรับรองใด ๆ และเซิร์ฟเวอร์ของฉันจะเชื่อถือได้ เพียงเพราะฉันยินดีที่จะเชื่อถือใบรับรองใน Server-Certificate สำหรับการดำเนินการที่เฉพาะเจาะจงไม่ได้หมายความว่าฉันยินดีที่จะเชื่อว่า Dept-Root-CA ได้รับการรักษาความปลอดภัยอย่างถูกต้อง

ขอบคุณ


คุณต้องการที่จะไว้วางใจในสิ่งใด HTTPS? หรือบางสิ่งอื่น ๆ มีมีวิธีการในการแสดงให้เห็นว่าคุณต้องการที่จะยอมรับใบรับรองเดียวโดยไม่ยอมรับสิ่งอื่นจาก CA หลัก แต่มันขึ้นอยู่กับสิ่งที่คุณทำ (คุณจะยังคงได้รับข้อผิดพลาดหากคุณพยายามตรวจสอบใบรับรอง)
Mark Henderson

ใช่เป็นหลัก ถ้ามันเป็นรหัสที่กำหนดเองมันจะไม่เป็นปัญหา - แต่นี่คือการใช้ ADFS 2 และสิ่งเดียวที่ฉันทำได้เกี่ยวกับวิธีที่ใช้ในการจัดการใบรับรองคือการเปลี่ยนแปลงวิธีที่เซิร์ฟเวอร์เชื่อถือใบรับรองนั้น มีกรณีอื่นเช่นกัน แต่นี่เป็นเพียงตัวอย่างปัจจุบัน
bkr

คำตอบ:


5

ไม่ตราบใดที่ใบรับรองบอกว่า "ออกโดย: xxx" คุณต้องเชื่อใจ xxx ตลอดเส้นทาง หากเป็นใบรับรองที่ลงนามด้วยตนเองคุณสามารถวางไว้ในที่เก็บ Trusted Root CA และเนื่องจากเป็นใบรับรองที่ออกและออกโดยนิติบุคคลเดียวกันจึงควรเชื่อถือได้

แต่ไม่ใช่โดยทั่วไปไม่สามารถทำได้หรือไม่สามารถหลีกเลี่ยงวัตถุประสงค์ทั้งหมดของการรักษาความปลอดภัยตามใบรับรองได้อย่างสมบูรณ์


6
ฉันกลัวสิ่งนั้น ฉันจะไม่เรียกมันว่าหลีกเลี่ยง เพียงเพราะฉันต้องการช่องทางที่ปลอดภัยในการพูดคุยกับเครื่องในกลุ่มองค์กรที่แตกต่างกันไม่ได้หมายความว่าฉันต้องการไว้วางใจ CA ของพวกเขา
bkr

ใช่ ... แต่ CA เซ็นชื่อในใบรับรองนั้นและหากไม่มีใบรับรอง CA นั้นปลายอีกด้านหนึ่งก็สามารถเปลี่ยนใบรับรองได้เสมอ
SpacemanSpiff

6
ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณพูด ฉันต้องการเชื่อถือใบรับรองของพวกเขาอย่างชัดเจน หากมีการเปลี่ยนแปลงฉันจะต้องเชื่อมั่นอีกครั้ง ฉันต้องการรูปแบบของใบรับรองความน่าเชื่อถือเหมือนใน Firefox ใน Firefox หากใบรับรองไม่ถูกต้องภายใต้ CA ที่เชื่อถือได้ที่มีอยู่คุณสามารถเลือกที่จะเชื่อถือได้อย่างไรก็ตามหากมีการเปลี่ยนแปลงคุณจะต้องเลือกที่จะเชื่อถือใบรับรองใหม่เนื่องจากไม่ได้เชื่อถืออย่างชัดเจน
bkr

3
just keep changing their certificateหากปลายทางระยะไกลเปลี่ยนใบรับรองของพวกเขาแล้วมันจะไม่ตรงกับที่คุณบันทึกไว้ หากคุณเพิกเฉยต่อธุรกิจ CA ทั้งหมดคุณเพียง แต่ปฏิบัติต่อมันเหมือนกับโฮสต์คีย์ SSH
Zoredache

6
พวกเขาจะเปลี่ยนตามความเป็นจริงทุกๆ 2 ปี ผลิตภัณฑ์ MS ที่ฉันใช้ต้องการการเชื่อมต่อที่ปลอดภัยผ่าน https ดังนั้นจึงต้องเชื่อถือได้ เพราะมันถูกเซ็นสัญญากับ CA ของพวกเขาฉันจะต้องเชื่อถือ CA ของพวกเขา - ฉันไม่ต้องการทำเช่นนั้นเพราะนั่นจะทำให้พวกเขาสามารถปลอมใบรับรองใด ๆ ไปยังเซิร์ฟเวอร์ของฉันได้
bkr

5

อืม .... คุณสามารถจับข้อมูลที่เชื่อถือได้ในอีกทางหนึ่ง

น่าเสียดายที่ซับซ้อนเล็กน้อย

สร้าง CA ของคุณเองจากนั้นสร้างผู้ออกบัตรข้ามเขตของคุณเองสำหรับ Dept-Intermediate-1 (หรือ Dept-Root-CA) โดยการลงนามใบรับรองของพวกเขากับ CA ของคุณอาจเพิ่มข้อ จำกัด โดเมน หาก Dep-Intermediate-1 "ของจริง" ถูกปิดใช้งาน (ดีกว่า) หรือไม่รู้จัก windows จะใช้เชนที่เชื่อถือได้ของคุณแทน

ดูคำตอบอื่น ๆ ของฉันที่นี่: จำกัด ใบรับรองหลักไปยังโดเมน

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

ยังคงมียูทิลิตี้จำนวนมากในใบรับรองที่ไม่มีลำดับชั้นของ CA เหนือปุ่ม SSH ที่ให้ไว้ ส่วนหนึ่งของข้อ จำกัด เหล่านั้นคือ การใช้คีย์วันที่ที่ถูกต้องข้อมูลการเพิกถอนข้อ จำกัด โดเมน ฯลฯ ส่วนอื่น ๆ คือข้อมูลที่ระบุ เซิร์ฟเวอร์ที่เป็นเจ้าของคีย์ข้อมูลประจำตัวของผู้ออกนโยบาย CA ที่บังคับใช้ข้อมูลที่จัดเก็บคีย์เป็นต้น


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