รหัสผ่าน VPN ของคุณเป็นส่วนตัวได้เพียงเท่าผู้ตรวจสอบรหัส
การเข้ารหัสอุโมงค์ครอบคลุมเพียงช่วงการส่งผ่านเท่านั้น คอมโพเนนต์ที่ตรวจสอบรหัสผ่านยังคงได้รับรหัสนั้น และแฮชที่จัดเก็บไว้ปกป้องขั้นตอนถัดไปที่แยกจากกันอย่างสิ้นเชิง
พิจารณาคำถามสี่ข้อเกี่ยวกับการเข้าสู่ระบบ VPN ทุกครั้ง: อะไรปกป้องรหัสผ่านระหว่างการส่งผ่าน คอมโพเนนต์ใดได้รับรหัสนั้น คอมโพเนนต์นั้นทำอะไรกับรหัส และสิ่งที่จัดเก็บไว้หลังจากนั้น คำตอบแต่ละข้อคือการควบคุมที่แตกต่างกัน และคำตอบที่แข็งแกร่งต่อข้อหนึ่งไม่บอกอะไรเกี่ยวกับข้ออื่น ข้อผิดพลาดคือการถือว่าการเข้ารหัสอุโมงค์ครอบคลุมทั้งสี่ข้อ มันครอบคลุมเพียงข้อแรกเท่านั้น
ถามว่าใครเป็นผู้สิ้นสุดเซสชัน ไม่ใช่ถามว่าเซสชันถูกเข้ารหัสหรือไม่
เข้ารหัสสำหรับใครกันแน่
TLS ปกป้องรหัสผ่านระหว่างไคลเอนต์กับสิ่งที่สิ้นสุดการเชื่อมต่อ หากจุดปลายทางนั้นคือเกตเวย์ VPN โค้ดการตรวจสอบสิทธิ์ของเกตเวย์จะเห็นรหัสผ่านในข้อความธรรมดา ตรวจสอบความถูกต้อง และส่งต่อรหัสนั้นหรือค่าที่ได้มาจากรหัสนั้นต่อไป นี่คือการออกแบบที่ตั้งใจไว้ ไม่ใช่การรั่วไหล ผู้สังเกตเครือข่ายบนเส้นทางไม่เรียนรู้อะไรที่เป็นประโยชน์ และคอมโพเนนต์ที่ทำการตรวจสอบได้เรียนรู้ทุกอย่างที่จำเป็น
ชุมชน OpenVPN เอกสารสิ่งนี้ไว้อย่างชัดเจน: auth-user-pass-verify ส่งมอบข้อมูลรับรองที่ส่งเข้ามาให้สคริปต์หรือปลั๊กอินตรวจสอบ เป็นการส่งต่อโดยเจตนาระหว่างคอมโพเนนต์ และจัดอยู่ในรูปแบบความเชื่อถือในฐานะภาคีที่ระบุชื่อ
ผู้ตรวจสอบเห็นรหัสผ่าน
เมื่อคอมโพเนนต์ได้รับรหัสผ่านเพื่อตรวจสอบ การควบคุมการเข้าถึง การบันทึกข้อมูล และคุณภาพโค้ดของคอมโพเนนต์นั้นเป็นตัวตัดสินว่าความลับจะยังคงถูกจำกัดอยู่หรือไม่ สคริปต์ที่เขียนข้อมูลรับรองลงบันทึก หรือปลั๊กอินที่แคชข้อมูลนั้น สร้างการเปิดเผยที่ใหญ่กว่าที่โปรโตคอลสร้างมาก การเข้าถึงขึ้นอยู่กับสถาปัตยกรรมและบทบาท ไม่ใช่อุโมงค์ จึงเป็นเหตุผลที่เจ้าของบริการซึ่งควบคุมผู้ตรวจสอบอยู่ในขอบเขตการประเมิน
วิธีการที่แตกต่างกันเปิดเผยวัสดุที่แตกต่างกัน การตรวจสอบสิทธิ์ด้วยใบรับรองพิสูจน์กุญแจส่วนตัวโดยไม่ส่งกุญแจ และโฟลว์แบบสหพันธรัฐสามารถเก็บรหัสผ่านไว้ที่ผู้ให้บริการระบุตัวตนพร้อมออกข้อกล่าวอ้างที่จำกัดให้กับ VPN การออกแบบเหล่านั้นทำให้วงแคบลง แต่ไม่มีข้อใดกำจัดภาคีที่เชื่อถือได้ทั้งหมด
แฮชที่จัดเก็บไว้ปกป้องขั้นตอนที่แตกต่างออกไป
แนวทางของ NIST แยกการส่งผ่านที่ได้รับการปกป้องออกจากการจัดเก็บผู้ตรวจสอบที่ทนทาน การใส่เกลือและโครงร่างแฮชที่มีต้นทุนจัดการกับภัยคุกคามของผู้ตรวจสอบที่จัดเก็บไว้ ซึ่งคือสิ่งที่เกิดขึ้นภายหลังหากฐานข้อมูลรั่วไหล สิ่งเหล่านี้ไม่ได้ทำอะไรกับคอมโพเนนต์ขณะรันซึ่งต้องได้รับอินพุตเพื่อเปรียบเทียบ การอ่านแนวทางราวกับว่ามันสัญญาความลับขณะรันเป็นการจัดประเภทที่ผิด
ดังนั้นที่เก็บรหัสผ่านที่แฮชอย่างดีและสคริปต์ตรวจสอบที่เปิดเผยจึงอยู่ร่วมกันในผลิตภัณฑ์เดียวได้โดยไม่ขัดแย้ง
การเลือกวิธีการที่ทำให้วงแคบลง
หากข้อกำหนดคือเกตเวย์ต้องไม่ได้รับรหัสผ่านที่ใช้ซ้ำได้เลย ให้เลือกวิธีที่รับประกันได้จริง การเปลี่ยนรหัสข้อมูลไม่ได้สร้างคุณสมบัตินั้น การตรวจสอบใบรับรองของเซิร์ฟเวอร์ VPN บอกคุณว่าคุณไปถึงคู่สนทนารายใด ไม่ได้บอกอะไรเกี่ยวกับวิธีที่คู่สนทนานั้นจัดการข้อมูลรับรองหลังจากนั้น รักษาการตรวจสอบเซิร์ฟเวอร์ ใช้ข้อมูลรับรองแยกสำหรับแต่ละบริการ และปฏิบัติตามโฟลว์ระบุตัวตนที่องค์กรสนับสนุน
บันทึกภาคีที่ได้รับรหัสผ่าน ภาคีที่ตรวจสอบความถูกต้อง และรูปแบบที่ใช้เก็บรักษา คำตอบทั้งสามข้อนั้นอยู่ข้างโปรไฟล์การเชื่อมต่อ เพราะมันมีอายุยืนกว่าอุโมงค์ใดอุโมงค์หนึ่ง
คำถามที่มีประโยชน์ไม่ใช่รหัสผ่านถูกเข้ารหัสหรือไม่ แต่เป็นว่าใครที่ซ่อนรหัสนั้นไว้ คอมโพเนนต์ใดได้รับมัน และรูปแบบใดที่ยังคงอยู่หลังจากนั้น