ชื่อไดเจสต์ SHA1 ใน OpenSSL: รายการเก่าหมายถึงอะไร
ชื่อ SHA1 เก่าอธิบายการลงทะเบียนของไลบรารี ไม่ใช่ว่า OpenVPN ทำอะไรกับแพ็กเก็ต แยกชื่อที่ลงทะเบียน ไดเจสต์ และการเรียกใช้งานออกจากกัน
รายการไดเจสต์เก่าอ่านเหมือนบันทึกถอดความของการตัดสินใจเชิงรหัสลับ และมันไม่ใช่เช่นนั้น ชื่ออย่าง SHA1, DSA-SHA1-old หรือ RSA-SHA1-2 อยู่ติดกันในบิลด์ OpenSSL เก่า เพราะไลบรารีลงทะเบียนจุดเข้าใช้งานหลายจุดรอบๆ กลไกแฮชที่เกี่ยวข้อง ป้าย RSA หรือ DSA ในรายการนั้น OpenVPN ไม่ได้บอกอะไรเกี่ยวกับสิ่งที่ทำกับแพ็กเก็ต สิ่งที่คุณอ่านคือบัญชีสินค้าของไลบรารี ไม่ใช่บันทึกของเซสชัน
ต้องแยกสามสิ่งก่อนที่ข้อสรุปใดๆ จะมีความหมาย: ชื่อที่ลงทะเบียน การคำนวณไดเจสต์ใต้ชื่อนั้น และการดำเนินการที่ใช้มัน
การลงทะเบียนคืออินเทอร์เฟซ ไม่ใช่การให้คะแนนความแข็งแกร่ง
ใน OpenSSL 1.0.2 ตารางลงทะเบียนไดเจสต์เชื่อมชื่อ นามแฝง และการนำไปใช้ไว้ในไฟล์เดียว ตัวอธิบาย DSS1 แบบเก่าคือกรณีที่ชัดที่สุด: มันรายงานความยาวเอาต์พุตของ SHA-1 และเรียกฟังก์ชันสรุปของ SHA-1 ขณะที่ถือชื่อซึ่งบ่งชี้ถึงอัลกอริทึมที่แตกต่างไปโดยสิ้นเชิง ดังนั้นตัวอักษรเพิ่มเติมในการลงทะเบียนจึงไม่ได้หมายถึงแฮชอื่น เอาต์พุตที่ยาวขึ้น หรือระดับความปลอดภัยใหม่
แหล่งเดียวกันรักษาความสัมพันธ์ของนามแฝงสำหรับผู้เรียกเก่า ซึ่งอธิบายว่าทำไมรายการจึงดูแน่นเกินไป นี่คือเอกสารความเข้ากันได้ ไม่ใช่คำสัญญาว่าผู้ให้บริการ OpenSSL ปัจจุบันจะแสดงชื่อเดียวกัน
ชื่อสำหรับลงนามไม่ได้สร้างลายเซ็น
กรอบการลงนามสามารถผูกไดเจสต์เข้ากับอินเทอร์เฟซของอัลกอริทึมอื่นเพื่อให้ผู้เรียกเดิมยังคอมไพล์ได้ ลายเซ็นกุญแจสาธารณะจริงต้องมีทั้งกุญแจและขั้นตอนการลงนามที่ใช้กุญแจนั้น และไม่มีสิ่งใดถูกจัดหาโดยชื่อในเมนู รายการไดเจสต์แบบ RSA เป็นชื่อที่ผู้เรียกใช้ได้ ไม่ใช่หลักฐานว่าแพ็กเก็ต VPN ทุกแพ็กเก็ตมีลายเซ็น RSA
ในขั้นตอนนี้เองที่ข้อเขียนเก่าๆ ไหลเข้าสู่ตำนาน ถ้าคุณต้องรู้ว่าแพ็กเก็ตถูกพิสูจน์ตัวตนอย่างไร ให้หาตัวเลือกที่เลือกกลไกนั้นแล้วอ่านว่ามันทำอะไรในเวอร์ชันที่คุณรันจริง หน้าคู่มือที่จัดส่งมาพร้อมรีลีสนั้นเป็นคำอธิบายเดียวที่ตรงกับโปรแกรมตรงหน้าคุณ คู่มือที่เก็บถาวรอธิบายรีลีสที่มันเขียนขึ้น ซึ่งอาจตามหลังข้อตกลงการตั้งชื่อไปหลายข้อ
หาตัวเลือกที่ใช้ชื่อนั้น
ในกรณีการพิสูจน์ตัวตนแพ็กเก็ตที่ OpenVPN 2.6 เอกสารไว้ auth เลือกไดเจสต์ที่ HMAC ใช้ ซึ่งเป็นโครงสร้างการพิสูจน์ตัวตนข้อความแบบมีกุญแจ ไม่ใช่ลายเซ็นใบรับรอง อัลกอริทึมการลงนามของใบรับรอง TLS เป็นคุณสมบัติแยกต่างหากของการจับมือ
ด้วยการเข้ารหัสข้อมูลแบบ AEAD การตั้งค่า auth แยกต่างหากจะเลิกใช้กับช่องข้อมูล ขณะที่บทบาทของมันต่อ tls-auth ยังเป็นคำถามแยกต่างหาก ดังนั้นรายการไดเจสต์จึงไม่สามารถบอกได้ว่าแฮชใดปกป้องแพ็กเก็ตปัจจุบัน ชุด TLS ใดถูกเจรจา หรือใบรับรองของคู่สนทนาถูกเซ็นอย่างไร มีเพียงการกำหนดค่าที่มีผลจริงพร้อมเวอร์ชันเท่านั้นที่ตอบได้ และเฉพาะสำหรับการเชื่อมต่อตรงหน้าคุณ
บันทึกสิ่งที่คุณมีจริงๆ
เขียนเวอร์ชัน OpenVPN ไลบรารีเข้ารหัสที่เชื่อมโยง ตัวเลือกที่แน่นอนในโปรไฟล์ และผลลัพธ์ของการเชื่อมต่อจริง ชุดนั้นตอบคำถามที่ภาพหน้าจอของเมนูไดเจสต์ตอบไม่ได้ และยังคงอยู่หลังการอัปเกรดครั้งถัดไปเพราะระบุเวอร์ชันไม่ใช่ความรู้สึก
เหนือสิ่งอื่นใด อย่าเลือกนามแฝงเก่าเพราะชื่อฟังดูแข็งแกร่งหรือเฉพาะเจาะจงกว่า เลือกนโยบายที่รองรับสำหรับการเชื่อมต่อทั้งหมด และปฏิบัติต่อชื่อเก่าเป็นบันทึกว่าไลบรารีเคยนำเสนอตัวเองอย่างไร