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


0

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

แก้ไขเพื่อความกระจ่าง : สมมติว่าฉันกำลังทำงานกับเซิร์ฟเวอร์ภายในบางตัว, megaserver. ฉันเข้าถึงผ่านhttps: // megaserverในเบราว์เซอร์ มันมีใบรับรองลงนามด้วยตนเอง เพื่อให้สามารถเข้าถึงเซิร์ฟเวอร์นี้ได้อย่างปลอดภัยในขณะนี้ฉันเพิ่มใบรับรองลงในร้านค้า CA ของฉันในเบราว์เซอร์ของฉัน บางคนขโมยใบรับรองนั้นสร้างใบรับรองใหม่สำหรับhttps://www.google.comลงชื่อด้วยmegaserverใบรับรองและโจมตีฉันแบบคนกลาง เบราว์เซอร์ของฉันยอมรับใบรับรอง Google เนื่องจากมีการลงนามโดยใบรับรอง CA ที่เชื่อถือได้ในระบบของฉัน สถานการณ์สมมตินี้เป็นไปได้หรือไม่?


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

@alex ฉันได้เพิ่มคำอธิบาย CN ของใบรับรองจำกัดความสามารถในการลงชื่อใบรับรองอื่นหรือไม่
อีธาน T

ไม่ CN ของ CA สามารถยกตัวอย่างเช่น abcd.com และพวกเขาอาจลงชื่อ xyz.net, qwert.com แต่ก่อนที่พวกเขาจะทำการยืนยันเจ้าของ xyz.net หรือ qwert.com ก็สามารถยืนยันอีเมลได้อย่างง่ายดายและไม่ต้องถาม หนังสือเดินทางค่าโทรศัพท์และอื่น ๆ นั่นคือเหตุผลที่คุณไว้วางใจ CA เพราะพวกเขายืนยันเจ้าของโดเมนและลงนามใบรับรองของพวกเขาสำเร็จ มีเบราว์เซอร์หลัก 3 แห่งและระบบปฏิบัติการสองสามตัวที่จัดการ CA trust และ ship list ของ CA ด้วยผลิตภัณฑ์ของพวกเขา หาก CA ไม่อยู่ในรายการ CA ที่เชื่อถือได้คุณสามารถเพิ่ม CA ด้วยตนเองไปยังที่เก็บใบรับรองและเชื่อถือใบรับรองอื่น ๆ ที่ลงชื่อ
Alex

คำตอบ:


3

ใช่.

จาก RFC 5280:

4.2.1.9 ข้อ จำกัด พื้นฐาน

ส่วนขยายข้อ จำกัด พื้นฐานระบุว่าหัวเรื่องของใบรับรองเป็น CA และความลึกสูงสุดของเส้นทางการรับรองที่ถูกต้องซึ่งรวมถึงใบรับรองนี้

จากนั้นจะกล่าวต่อไปว่า:

หากส่วนขยายข้อ จำกัด พื้นฐานไม่มีอยู่ในใบรับรองเวอร์ชัน 3 หรือส่วนขยายมีอยู่ แต่บูลีน cA ไม่ได้ถูกยืนยันแสดงว่าพับลิกคีย์ที่ผ่านการรับรองต้องไม่ถูกใช้เพื่อตรวจสอบลายเซ็นใบรับรอง

ตรวจสอบลายเซ็นใบรับรองอย่างมีประสิทธิภาพหมายถึงทำหน้าที่เป็น CA

ดังนั้นหากใบรับรองที่ลงนามเองของคุณไม่ได้ตั้งค่า Basic Constraint CA เป็นจริงจะไม่สามารถใช้เพื่อลงนามใบรับรองรองได้

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


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

วิธีที่ดีกว่าคือให้แน่ใจว่าคุณจัดการผู้ที่เข้าสู่อุปกรณ์ที่สร้างใบรับรองเหล่านี้ ระบบที่ใช้ OpenSSL, GnuTLS, Java เป็นต้นสามารถใช้รหัสผ่านเพื่อป้องกันรหัสส่วนตัว Windows เข้ารหัสลับรหัสส่วนตัว แต่เมื่อผู้ดูแลระบบได้เข้าสู่เครื่อง Windows นี้รหัสส่วนตัวจะมีประสิทธิภาพสำหรับการถ่าย


ฉันใช้แนวคิด "ขโมยใบรับรอง" ในทางที่ผิด จริงๆแล้วสิ่งที่ฉันหมายถึงคือ "ขโมยกุญแจ"
Ethan T

0

ถาม: ฉันเพิ่มใบรับรองลงในร้านค้า CA ในเบราว์เซอร์ของฉัน มีคนขโมยใบรับรองนั้นสร้างใบรับรองใหม่สำหรับ https://www.google.com

คุณเพิ่มไปยังเก็บใบรับรองคีย์สาธารณะของ CA ท้องถิ่นที่สร้างขึ้นด้วยตนเอง เจ้าของรหัสส่วนตัวของ CA คนเดียวเท่านั้นที่สามารถลงชื่อใบรับรองของใครบางคนได้ (ดังที่คุณพูดถึงhttps://www.google.com ) ดังนั้นการขโมยรหัสสาธารณะ CA จากเบราว์เซอร์ของคุณนั้นไม่มีประโยชน์เพราะไม่ใช่ความลับและไม่สามารถใช้งานได้ สำหรับการลงนามใบรับรองอื่น ๆ

ถาม: เบราว์เซอร์ของฉันยอมรับใบรับรอง Google เนื่องจากมีการลงนามโดยใบรับรอง CA ที่เชื่อถือได้ในระบบของฉัน สถานการณ์สมมตินี้เป็นไปได้หรือไม่?

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

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

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

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

หากคุณเพิ่ม CA ท้องถิ่นลงในที่เก็บใบรับรองดังนั้นหาก บริษัท ของคุณใช้พรอกซี HTTP http พร็อกซีนี้อาจสร้างขึ้นบนใบรับรองปลอมทันทีสำหรับhttpsการเชื่อมต่อใด ๆและป้อนไปยังเบราว์เซอร์ของคุณและเบราว์เซอร์ของคุณจะเชื่อถือ (ดังที่อธิบายไว้ก่อนหน้านี้) . พร็อกซีที่อยู่ด้านข้างอาจถอดรหัสการเชื่อมต่อดังกล่าวเนื่องจากกุญแจส่วนตัวของตัวเองสำหรับใบรับรองที่ออกให้ทั้งหมดเพื่อวัตถุประสงค์ในการกรองการตรวจสอบการบันทึกและในกรณีที่การเชื่อมต่อผ่านตัวกรองพร็อกซีของพร็อกซี่ ตอบกลับและกลับไปที่ปลายทางเดิม (หรืออาจตัดสินใจเล่นการเชื่อมต่อหมดเวลาของปลอมหากกฎบางอย่างที่ต้องการนั้น)

สิ่งที่ฉันอาจแนะนำให้คุณถ้าคุณจะไม่เป็นเรื่องของการhttpsกรอง - ตั้งค่าเครื่องเสมือนบางส่วน (VirtualBox ตัวอย่าง) กับระบบปฏิบัติการที่คุณสะดวกสบายและเพิ่ม CA ท้องถิ่นของคุณในขณะที่ให้เครื่องโฮสต์ไม่ติดไวรัส CA ท้องถิ่น
โซลูชันอื่น - คุณอาจใช้โปรไฟล์ที่แตกต่างกันในเบราว์เซอร์ของคุณ (Firefox ที่ดีในเรื่องนี้), สำหรับการทำงานที่จะเก็บใบรับรอง CA ในพื้นที่ของคุณและโปรไฟล์ส่วนตัวอีกโปรไฟล์หนึ่งที่ไม่รวม CA ท้องถิ่น วิธีนี้คุณ (เบราว์เซอร์จริง) อาจมองเห็นเหตุการณ์ได้อย่างรวดเร็วหากhttpsการรับส่งข้อมูลของคุณถูกกรองผ่านพร็อกซี

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