พรอมต์คีย์ OpenVPN หลัง OpenSSL 3: ตรวจสอบผู้ให้บริการ
พรอมต์คีย์ส่วนตัวที่ผุดขึ้นมากะทันหันมักตามมาหลังการเปลี่ยนผู้ให้บริการ ไม่ใช่รหัสผ่านใหม่ ตรวจสอบคีย์ ทดสอบชุดผู้ให้บริการทั้งสองชุด และเก็บวลีรหัสผ่านไว้
ไม่มีใครแตะโปรไฟล์ แต่ไคลเอนต์ตัวเดิมกลับขอวลีรหัสผ่านสำหรับคีย์ส่วนตัวทุกครั้งที่เริ่มทำงาน เมื่อการเปลี่ยนแปลงนั้นเกิดขึ้นภายในไม่กี่วันหลังการอัปเกรดดิสทริบิวชัน การอัปเกรดน่าจะเป็นสาเหตุ: OpenSSL 3 จัดระเบียบการรองรับอัลกอริทึมใหม่ และคีย์ที่ไลบรารีเก่าอ่านได้อย่างราบรื่นอาจกลายเป็นอ่านไม่ได้โดยที่ไบต์เดียวไม่เปลี่ยน ตรวจสอบตามลำดับ เพราะสองข้อดูเหมือนกันหากดูแค่พรอมต์
คำถามแรกคือคีย์ถูกเข้ารหัสหรือไม่ และคำถามที่สองคือบิลด์นี้ถอดรหัสได้หรือไม่ การแก้ไขคอนฟิกจะมีความหมายก็ต่อเมื่อรู้คำตอบทั้งสองข้อแล้ว
ตรวจสอบว่าคีย์ถูกเข้ารหัสหรือไม่
อ่านบรรทัดแรกของไฟล์แล้วปล่อยให้ไลบรารีแยกวิเคราะห์ เพราะชื่อไฟล์ไม่ได้พิสูจน์อะไรเลย บล็อก PEM ที่มีป้ายกำกับ ENCRYPTED PRIVATE KEY เป็น PKCS#8 ที่เข้ารหัสแล้ว และบล็อก RSA PRIVATE KEY ที่เก่ากว่าซึ่งมี Proc-Type: 4,ENCRYPTED เป็นรูปแบบดั้งเดิม ทั้งสองอย่างคาดหวังวลีรหัสผ่าน บล็อก PRIVATE KEY ที่ไม่ได้เข้ารหัสไม่ควรถามหาวลีรหัสผ่านเลย รันการแยกวิเคราะห์ด้วยบัญชีที่เป็นเจ้าของไฟล์ เพราะปัญหาสิทธิ์จะให้ข้อผิดพลาดที่ต่างออกไปและน่าสนใจน้อยกว่ามาก
ถ้าคีย์ไม่ได้เข้ารหัสจริงและไคลเอนต์ยังถามอยู่ ให้เลิกดูเรื่องการเข้ารหัสแล้วตรวจสอบว่าโปรไฟล์ระบุไฟล์ askpass ที่บริการยังอ่านได้หรือไม่
ตรวจสอบว่าบิลด์นี้ถอดรหัสได้หรือไม่
OpenSSL 3 แยกการรองรับอัลกอริทึมออกเป็นผู้ให้บริการ และชุดรหัสลับรุ่นเก่าก็อยู่ในผู้ให้บริการ legacy แทนที่จะเป็นค่าเริ่มต้น คีย์ที่เข้ารหัสด้วยรหัสลับเหล่านั้นยังใช้ได้ แต่ไลบรารีที่โหลดโดยไม่มีผู้ให้บริการ legacy จะถอดรหัสไม่ได้ บนไคลเอนต์บางตัวสิ่งนี้ปรากฏเป็นพรอมต์ที่ถามซ้ำ ๆ บนตัวอื่นเป็นความล้มเหลวแบบหนักทันทีหลังวลีรหัสผ่าน
แยกวิเคราะห์คีย์เดียวกันสองครั้งด้วยไบนารีเดียวกัน: ครั้งแรกด้วยผู้ให้บริการค่าเริ่มต้นเท่านั้น จากนั้นขอทั้ง legacy และค่าเริ่มต้นบนบรรทัดคำสั่ง ถ้าครั้งที่สองสำเร็จในจุดที่ครั้งแรก ล้มเหลว การวินิจฉัยก็ยืนอยู่บนหลักฐานไม่ใช่เวลาของการอัปเกรด ถ้าทั้งสองล้มเหลวเหมือนกัน วลีรหัสผ่านผิดหรือไฟล์เสียหาย และไม่มีการตั้งค่าผู้ให้บริการใดซ่อมได้ทั้งสองอย่าง
ตรวจสอบวิธีแก้ที่แคบที่สุดเท่าที่มี
เลือกการเปลี่ยนแปลงที่จำกัดเฉพาะไคลเอนต์มากกว่าการเปลี่ยนแปลงทั้งระบบ บิลด์ 2.6 บางตัวยอมรับออปชันโปรไฟล์ที่โหลดผู้ให้บริการทั้งสองสำหรับโปรเซสของแดมอนนั้น ดังนั้นตรวจสอบคำสั่งในคู่มือสำหรับเวอร์ชันที่แน่นอนของคุณก่อนจะพึ่งพา การแก้ไข openssl.cnf ของระบบแทนจะส่งผลต่อทุกโปรแกรม OpenSSL บนโฮสต์ การตั้งค่าที่แคบกว่ายังย้อนกลับได้ง่ายกว่ามากเมื่อคีย์ถูกเข้ารหัสใหม่แล้ว
อย่าลบวลีรหัสผ่านเพื่อให้พรอมต์หายไป เพราะนั่นเปลี่ยนข้อมูลรับรองที่ได้รับการป้องกันให้เป็นไฟล์ข้อความธรรมดา และเปลี่ยนความเสี่ยงของแบ็กอัป สำเนา และชุดสนับสนุนทุกรายการที่มันปรากฏอย่างเงียบ ๆ ความแตกต่างที่สำคัญคือระหว่างคีย์ที่ต้องการวลีรหัสผ่านของมันกับคีย์ที่ไลบรารีนี้ถอดรหัสไม่ได้
ตรวจสอบบริบทของบริการ แล้วเข้ารหัสใหม่
เมื่อปลดล็อกคีย์ได้แล้ว ให้เข้ารหัสใหม่ด้วยอัลกอริทึมปัจจุบัน เพื่อให้การพึ่งพาหายไป เขียนไฟล์ใหม่ด้วยรหัสลับที่ทันสมัย ตรวจสอบว่าแยกวิเคราะห์ได้ อัปเดตโปรไฟล์ และเก็บสำเนาเก่าไว้เพียงจนกว่าการเชื่อมต่อจะสำเร็จ อย่าวางวลีรหัสผ่านบนบรรทัดคำสั่งเด็ดขาด เพราะผู้ใช้ภายในเครื่องคนใดก็อ่านได้จากรายการโปรเซส ลบไฟล์เก่าเฉพาะหลังจากไฟล์ใหม่เชื่อมต่อจากบัญชีบริการแล้ว ไม่ใช่แค่จากเชลล์ของคุณ
จากนั้นตรวจสอบยูนิตที่รันไคลเอนต์จริง ๆ คีย์ที่อ่านได้ในเชลล์ของคุณอาจอ่านไม่ได้สำหรับบริการที่รันภายใต้บัญชีอื่นหรือด้วยการตั้งค่าไดเรกทอรีบ้านที่เสริมความปลอดภัย
บันทึกการตั้งค่าผู้ให้บริการไว้ข้างโปรไฟล์และเก็บการทดสอบสองคำสั่งไว้ด้วยกัน เมื่อการอัปเกรดในภายหลังถอดผู้ให้บริการ legacy ออก ให้รันการทดสอบนั้นอีกครั้งเพื่อดูว่าคีย์ยังต้องการมันหรือโปรไฟล์สามารถออกจากวิธีเลี่ยงนี้ได้
พรอมต์คืออาการที่มีสาเหตุอย่างน้อยสามประการ และมีเพียงหนึ่งเดียวเท่านั้นที่คือวลีรหัสผ่านที่หายไป