ใบรับรองหนึ่งใบต่ออุปกรณ์ไม่ได้ทำให้คีย์ผูกกับอุปกรณ์
ใบรับรองแยกตามอุปกรณ์เป็นการเลือกของผู้ดูแลระบบ ไม่ใช่การผูกกับอุปกรณ์ สิ่งที่กำหนดการผูกคือคีย์ส่วนตัวอยู่ที่ใด ตั้งแต่ไฟล์ที่คัดลอกได้ไปจนถึง TPM
คุณออกใบรับรองแยกให้แล็ปท็อปแต่ละเครื่อง จึงคิดว่า VPN แยกมันออกจากกันได้ มันทำไม่ได้ ใบรับรองไคลเอนต์พิสูจน์ว่าผู้ที่เชื่อมต่อถือคีย์ส่วนตัวที่ตรงกัน และโปรไฟล์ที่ถูกคัดลอกก็ถือคีย์นั้นด้วย
ใบรับรองแยกตามอุปกรณ์ยังเป็นความคิดที่ดี มันแค่ทำงานต่างจากที่คนส่วนใหญ่คาดไว้
ใบรับรองไคลเอนต์พิสูจน์อะไรจริง ๆ
ระหว่างการจับมือ ไคลเอนต์ลงลายมือชื่อด้วยคีย์ส่วนตัวที่ตรงกับใบรับรองของตน และเซิร์ฟเวอร์ตรวจสอบลายมือชื่อนั้นกับ CA ที่ตนเชื่อถือ ไม่มีสิ่งใดในการแลกเปลี่ยนนั้นบรรยายถึงเครื่อง ไม่อุปกรณ์ใดที่ถือทั้งใบรับรองและคีย์จะสร้างลายมือชื่อที่เหมือนกันทุกประการ ดังนั้นโปรไฟล์ที่คัดลอกไปยังแล็ปท็อปเครื่องที่สองจึงดูเหมือนต้นฉบับทุกประการ ใบรับรองระบุตัวตน ไม่ได้ระบุฮาร์ดแวร์
ความไม่ซ้ำกันต่ออุปกรณ์ยังคุ้มค่า เพราะทำให้การเพิกถอนแม่นยำ มันเป็นคุณสมบัติทางการบริหาร ไม่ใช่กุญแจทางเทคนิค
การเก็บคีย์สามระดับ
ระดับแรกคือไฟล์คีย์บนดิสก์ มันพกพาได้โดยการออกแบบ และนั่นคือที่ที่โปรไฟล์ OpenVPN ส่วนใหญ่อาศัยอยู่
ระดับที่สองคือคีย์ที่ระบบปฏิบัติการทำเครื่องหมายว่าไม่สามารถส่งออกได้ Windows สามารถสร้างคีย์อุปกรณ์ในที่เก็บใบรับรองของตนและปฏิเสธการส่งออกตามปกติ ซึ่งหยุดการคัดลอกโดยบังเอิญ มันไม่ได้หนุนด้วยฮาร์ดแวร์ และเมื่อเข้าถึงเครื่องได้มากพอคีย์แบบนั้นก็กู้คืนได้ จึงเพิ่มความยากแทนที่จะสร้างกำแพง
ระดับที่สามคือคีย์ที่สร้างขึ้นภายในฮาร์ดแวร์ความปลอดภัย ได้แก่ TPM สมาร์ตการ์ด SIM หรือโทเคน PIV โมดูลเหล่านี้ไม่มีวงจรสำหรับส่งออกคีย์ที่มันสร้างขึ้น และการลงลายมือชื่อเกิดขึ้นภายในโมดูล คีย์ไม่เคยกลายเป็นไฟล์ที่ใครจะคัดลอกได้
| Where the key lives | Copyable | What it buys you |
|---|---|---|
| Key file inside the profile | Trivially | Revocation granularity, nothing more |
| OS non-exportable key store | Hard, not impossible | Stops casual profile sharing |
| TPM or PIV token | No | Binding the server can rely on |
ตารางนั้นคือข้อโต้แย้งทั้งหมดในสามแถว
easy-rsa ทำอะไรได้และทำอะไรไม่ได้
การออกใบรับรองแยกตามอุปกรณ์นั้นตรงไปตรงมา สร้างชื่อสามัญที่แตกต่างกันสำหรับแต่ละอุปกรณ์กับ CA เดียวกัน เช่น ./easyrsa build-client-full laptop-a nopass และทำซ้ำสำหรับแต่ละอุปกรณ์ บันทึกว่าชื่อสามัญใดเป็นของบุคคลและเครื่องใด
การเพิกถอนก็ตรงไปตรงมาเช่นกัน: ./easyrsa revoke laptop-a สร้าง CRL ใหม่ด้วย ./easyrsa gen-crl และตรวจสอบว่าเซิร์ฟเวอร์อ่านมันจริงผ่าน crl-verify
สิ่งที่ CA ทำไม่ได้คือตรวจสอบว่าคีย์ส่วนตัวอยู่ที่ใดหลังจากนั้น หากคุณสร้างคีย์บนโฮสต์ของ CA แล้วคัดลอกไปยังอุปกรณ์ คุณได้สร้างสำเนาที่สองตั้งแต่ตอนออกใบรับรอง คีย์ที่ไม่สามารถส่งออกได้ต้องถูกสร้างบนอุปกรณ์ หรือนำเข้าไปในฮาร์ดแวร์ที่จะไม่ปล่อยมันออกมา
การควบคุมที่อยู่รอดหลังโปรไฟล์ถูกคัดลอก
สมมติว่าโปรไฟล์ถูกคัดลอกได้และออกแบบโดยคำนึงถึงสิ่งนั้น ผูกบัญชีกับปัจจัยที่สองเพื่อให้ใบรับรองอย่างเดียวไม่พอ ให้แต่ละอุปกรณ์มีนโยบายของตัวเองเพื่อให้ขอบเขตของตัวตนหนึ่งยังจำกัด และเฝ้าดูชื่อสามัญเดียวกันที่เชื่อมต่อจากสองที่อยู่พร้อมกัน ซึ่งเป็นหน้าตาของโปรไฟล์ที่ใช้ร่วมกันในบันทึกการเชื่อมต่อ
การเพิกถอนที่รวดเร็วและมีเอกสารคือการควบคุมที่ยังได้ผลหลังการคัดลอกเกิดขึ้นแล้ว ส่วนอื่นทั้งหมดคือการป้องกัน
ข้อกล่าวอ้างที่เซิร์ฟเวอร์พึ่งพาได้จริง
ความไม่ซ้ำกันมาจาก CA การผูกกับอุปกรณ์มาจากที่เก็บคีย์ เฉพาะฮาร์ดแวร์ที่ไม่สามารถส่งออกคีย์ของตนได้เท่านั้นที่เปลี่ยนใบรับรองหนึ่งใบต่ออุปกรณ์ให้เป็นข้อกล่าวอ้างที่เซิร์ฟเวอร์บังคับใช้ แทนที่จะเป็นนโยบายที่ทุกคนตกลงจะทำตาม