ทำไมคีย์ OpenVPN ที่ใหญ่ขึ้นจึงไม่ลบตัวจับเวลาการเปลี่ยนคีย์
ความแข็งแกร่งของชุดรหัสและอายุของคีย์เป็นการตัดสินใจแยกกัน ตรวจสอบทริกเกอร์ด้านไบต์ แพ็กเก็ต และเวลา แล้วทดสอบการเปลี่ยนคีย์กับขั้นตอนเข้าสู่ระบบจริง
การเลือก AES-256 หรือคีย์ที่ยาวขึ้นไม่ได้บอกอะไรเลยว่าคีย์นั้นใช้ได้นานแค่ไหน ความแข็งแกร่งของคีย์อธิบายอัลกอริทึม; นโยบายการเปลี่ยนคีย์เป็นตัวกำหนดว่าเซสชันจะสร้างวัสดุคีย์ใหม่เมื่อใด การติดตั้งอาจเลือกชุดรหัสที่แข็งแกร่งที่สุดที่มีอยู่และยังตัดสินใจผิดเรื่องการต่ออายุ เพราะการตัดสินใจสองอย่างนี้ทำในที่ที่ต่างกัน การสับสนทั้งสองอย่างนี้ทำให้เกิดการเปลี่ยนชุดรหัสโดยไม่จำเป็น หรือเกิดเซสชันที่อยู่ยาวกว่าที่นโยบายกำหนดอย่างเงียบ ๆ
อ่านการตั้งค่าการเปลี่ยนคีย์ก่อนแตะชุดรหัส และอ่านทั้งสองฝั่งเมื่อทำเช่นนั้น
ความแข็งแกร่งของคีย์และอายุของคีย์ตอบคำถามที่ต่างกัน
ชุดรหัสและขนาดคีย์เป็นตัวจำกัดว่าการโจมตีข้อมูลที่ดักได้จะแพงแค่ไหน ช่วงการเปลี่ยนคีย์เป็นตัวจำกัดว่าคีย์หนึ่งตัวปกป้องข้อมูลเท่าใดและคีย์ที่ถูกเปิดเผยยังมีประโยชน์นานแค่ไหน สิ่งเหล่านี้เป็นปุ่มที่แยกจากกัน และชุดรหัสที่แข็งแกร่งกว่าก็ไม่ได้ยืดอายุที่ปลอดภัยของเซสชัน คำแนะนำส่วนใหญ่ที่บอกว่า 'ใช้ AES-256' ไม่พูดถึงการต่ออายุ เพราะการต่ออายุเป็นคำถามเชิงนโยบาย ไม่ใช่การเลือกอัลกอริทึม
บันทึกทั้งสองอย่างในบันทึกการติดตั้ง: อะไรปกป้องช่องทางข้อมูล และอะไรกระตุ้นการเปลี่ยนคีย์ของช่องทางนั้น
การเปลี่ยนคีย์มีทริกเกอร์สามอย่าง และฝั่งใดก็ได้สามารถกระตุ้นได้
OpenVPN 2.6 เอกสารทริกเกอร์แยกสำหรับการเจรจาใหม่ตามไบต์ แพ็กเก็ต และเวลาที่ผ่านไป ทริกเกอร์ด้านเวลาเป็นตัวที่การติดตั้งส่วนใหญ่ปล่อยไว้ที่ค่าเริ่มต้น ซึ่งหมายความว่าอุโมงค์ที่เงียบก็ยังเปลี่ยนคีย์ตามกำหนดการ ฝั่งใดก็ได้สามารถเริ่มการแลกเปลี่ยน และฝั่งที่ไม่ได้เริ่มจะเป็นฝ่ายตาม ดังนั้นการเปลี่ยนตัวจับเวลาที่ฝั่งเดียวจึงไม่ได้กำหนดพฤติกรรมของเซสชัน ค่าที่มีผลคือค่าของฝั่งที่เริ่มก่อน
ทริกเกอร์ด้านไบต์และแพ็กเก็ตมีความสำคัญกับภาระงานที่รับส่งสูงหรือแพ็กเก็ตเล็ก ซึ่งนโยบายที่อิงเวลาเพียงอย่างเดียวจะปล่อยให้คีย์หนึ่งตัวปกป้องข้อมูลมากกว่าที่ตั้งใจไว้มาก หากตัวนับเหล่านั้นยังคงปิดอยู่ ให้ระบุไว้ในบันทึกอย่างตั้งใจแทนที่จะปล่อยค่าเริ่มต้นไว้โดยไม่ตรวจสอบ
การเปลี่ยนคีย์เปิดเผยขั้นตอนการพิสูจน์ตัวตน
การเจรจาใหม่คือการจับมือ TLS ครั้งใหม่ ซึ่งหมายความว่าเส้นทางการพิสูจน์ตัวตนทำงานอีกครั้ง การติดตั้งที่ใช้รหัสครั้งเดียว โทเค็นฮาร์ดแวร์ หรือการท้าทาย RADIUS จะรู้เรื่องนี้ด้วยวิธีที่เจ็บปวด: การเชื่อมต่อครั้งแรกได้ผล และเซสชันตายลงหนึ่งชั่วโมงให้หลังเมื่อการจับมือครั้งที่สองขอรหัสที่ถูกใช้ไปแล้ว auth-gen-token มีอยู่เพื่อปิดช่องว่างนั้น โดยให้เซิร์ฟเวอร์ออกโทเค็นอายุสั้นสำหรับการเจรจาใหม่ แทนที่จะเรียกร้องให้เข้าสู่ระบบแบบโต้ตอบครั้งใหม่
มองสิ่งนี้เป็นปัญหาของขั้นตอนการทำงานที่ต้องแก้กับผู้ดูแลระบบ ไม่ใช่หลักฐานว่าควรปิดการต่ออายุ
ทดสอบการต่ออายุภายใต้ภาระงาน ไม่ใช่ในเซสชันหนึ่งนาที
การทดสอบรับรองที่เชื่อมต่อ ส่ง ping ครั้งเดียว แล้วตัดการเชื่อมต่อจะไปไม่ถึงการเปลี่ยนคีย์เลย รันเซสชันให้นานพอที่จะข้ามทริกเกอร์ที่ตั้งไว้ ให้การถ่ายโอนทำงานตลอดช่วงนั้น และดูบันทึกของทั้งสองฝั่งเพื่อหาการจับมือใหม่ จากนั้นทดสอบเส้นทางความล้มเหลว: ไคลเอนต์ทำอะไรหากการเจรจาใหม่ไม่สามารถเสร็จสิ้นได้ อุโมงค์ที่ล้มลงอย่างสะอาดนั้นวินิจฉัยได้ง่ายกว่าอุโมงค์ที่ยังส่งต่อไปยังเซสชันที่ตายแล้ว
อย่าอ่านการถ่ายโอนขนาดใหญ่ที่สำเร็จเป็นหลักฐานของขีดจำกัดทางการเข้ารหัส มันแสดงเพียงว่าเส้นทางและตัวนับทนทานปริมาณข้อมูลเท่านั้นได้
บันทึกทั้งสองทางเลือก
บันทึกต้องการสองบรรทัด: แพ็กเก็ตได้รับการปกป้องอย่างไร และการปกป้องนั้นถูกแทนที่เมื่อใด เพิ่มที่มาของอำนาจสำหรับแต่ละค่า เพราะชุดรหัสอาจมาจากค่าเริ่มต้นของดิสทริบิวชัน ในขณะที่ตัวจับเวลามาจากนโยบายภายใน ผู้ดูแลในอนาคตไม่ควรต้องอนุมานทั้งสองอย่างจากไฟล์กำหนดค่า
หากความเข้ากันได้บังคับให้มีข้อยกเว้น ให้จำกัดขอบเขตไว้ที่เวอร์ชันหนึ่งและวันที่สิ้นสุด ข้อยกเว้นที่อยู่นานกว่าเหตุผลของมันจะกลายเป็นนโยบายที่ไม่มีใครจำได้ว่าเป็นผู้เลือก