รหัสและใบรับรอง openSSL


1

เท่าที่ฉันรู้ในการเชื่อมต่อ SSL รับรองความถูกต้องทั้งลูกค้าและเซิร์ฟเวอร์มีกุญแจส่วนตัวและให้ใบรับรอง (ด้วยกุญแจสาธารณะที่สอดคล้องกัน) ในการเชื่อมต่อก่อนที่จะสร้างการเชื่อมต่อที่ปลอดภัย อย่างไรก็ตามฉันสับสนเล็กน้อยเนื่องจากมีการเชื่อมต่อ openSSL ปกติด้วยใบรับรองและคีย์เหล่านี้ที่ใช้ในเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ แต่ ... หากคีย์ลูกข่าย / คีย์สาธารณะที่สร้างโดยคำสั่ง openssl ถูกสร้างขึ้นโดย CA ที่แตกต่างจากรหัสส่วนตัวของเซิร์ฟเวอร์ จากนั้นการเชื่อมต่อไม่ควรเกิดขึ้น แต่มันไม่ได้เกิดขึ้นในการทดลองที่ฉันลองกับ openSSL

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


คำถามนี้เหมาะสมกว่าในชุมชนนี้: security.stackexchange.com
Romeo Ninov

คำตอบ:


1

สำหรับการเชื่อมต่อ SSL ส่วนใหญ่ไคลเอ็นต์จะไม่แสดงใบรับรอง เซิร์ฟเวอร์เท่านั้นที่ได้รับการรับรองความถูกต้อง

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

ciphersuites DH และ ECDH ยังใช้กุญแจสาธารณะ แต่ไม่เหมือนกัน - แต่ละด้านสร้าง DH keypair ชั่วคราวและลงนามด้วย keypair ของใบรับรองหรือส่งแบบไม่ลงนาม


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

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

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