ไคลเอนต์ที่ถูกเพิกถอนยังเชื่อมต่ออยู่: รายชื่อไม่เคยไปถึง
การเพิกถอนเป็นข้อมูลนำเข้าของการตรวจสอบใบรับรอง ไม่ใช่คำสั่งที่จบเซสชัน เปรียบเทียบว่าการเชื่อมต่อใหม่และอุโมงค์ที่ทำงานอยู่มองรายชื่ออย่างไร
การเพิกถอนไม่เคยเข้าไปในอุโมงค์ที่ทำงานอยู่เพื่อลบเซสชัน รายชื่อเป็นข้อมูลนำเข้าของการตรวจสอบใบรับรองและถูกอ่านระหว่างการแลกเปลี่ยนช่องควบคุมที่เริ่มเซสชัน TLS ข้อเท็จจริงข้อเดียวนี้อธิบายความประหลาดใจทั้งสองอย่าง: ไคลเอนต์ที่ถูกเพิกถอนเชื่อมต่อใหม่ได้เพราะรายชื่อไม่เคยไปถึงผู้ตรวจสอบ และเซสชันที่มีอยู่รอดชีวิตเพราะไม่มีใครตรวจสอบอะไรใหม่
รายชื่อคือข้อมูลนำเข้า ไม่ใช่การกระทำ
ระหว่างสร้างเซสชัน เซิร์ฟเวอร์ตรวจสอบใบรับรองของไคลเอนต์กับสมอความเชื่อถือ และคำสั่งเพิกถอนเพิ่มการค้นหารายชื่อเข้าในการตัดสินใจนั้น การตรวจสอบเกิดขึ้นที่เซิร์ฟเวอร์ ดังนั้นไคลเอนต์จึงมองไม่เห็นว่าใบรับรองของตนถูกเพิกถอนและยังคงเสนอใบเดิม โปรไฟล์ที่ยังเชื่อมต่อได้จึงพิสูจน์เพียงว่าผู้ตรวจสอบรายใดรายหนึ่งยอมรับสายโซ่ ไม่ได้พิสูจน์ว่าการเพิกถอนล้มเหลว
รายชื่อเองเป็นออบเจ็กต์ที่ลงลายมือชื่อพร้อมวันที่ออกและวันที่ปรับปรุงครั้งถัดไป รายชื่อที่ไม่เกี่ยวข้อง รายชื่อที่ลงลายมือชื่อโดยหน่วยงานอื่น หรือรายชื่อที่วันที่ปรับปรุงครั้งถัดไปผ่านไปแล้วไม่ใช่สิ่งทดแทนรายชื่อปัจจุบัน และการที่รายชื่อเก่าจะถูกปฏิเสธหรือยอมรับอย่างเงียบ ๆ ขึ้นอยู่กับการติดตั้ง
การเชื่อมต่อใหม่กับการเซสชันที่ทำงานอยู่
การเพิกถอนถูกประเมินเมื่อสร้างหรือเจรจาเซสชันใหม่ ไม่ใช่กับช่องข้อมูลในทุกแพ็กเก็ต ไคลเอนต์ที่เชื่อมต่ออยู่แล้วถือคีย์การรับส่ง จึงยังปล่อยแพ็กเก็ตผ่านหลังใบรับรองปรากฏในรายชื่อ ช่วงการเจรจาใหม่ตามค่าเริ่มต้นวัดเป็นชั่วโมง ดังนั้นรายชื่อที่ปรับปรุงแล้วอาจมีผลกับผู้มาใหม่ขณะที่อุโมงค์ที่ทำงานอยู่ยังคงอยู่
| Situation | What the list does | When it applies |
|---|---|---|
| Fresh connection | Blocks the handshake | At verification, immediately |
| Renegotiation | Blocks the new exchange | At the next renegotiation interval |
| Established data channel | Nothing | Until the session ends |
การบังคับใช้ทันทีต้องมีการกระทำที่ตั้งใจ ไม่ใช่แค่รายชื่อ การรีสตาร์ตบริการบังคับให้ไคลเอนต์ทุกตัวเชื่อมต่อใหม่ ขณะที่การสิ้นสุดเซสชันเดียวผ่านอินเทอร์เฟซการจัดการปล่อยเซสชันอื่นไว้ไม่แตะต้อง เลือกหนึ่งวิธีต่อเหตุการณ์และบันทึกว่าคุณใช้วิธีใด สองทางเลือกมีรัศมีผลกระทบต่างกัน และนั่นคือการตัดสินใจจริง
ส่งไฟล์ที่ผู้ตรวจสอบอ่านจริง
รายชื่อต้องถูกสร้างจากบันทึกของหน่วยงานแล้วคัดลอกไปยังทุกเครื่องที่ตรวจสอบใบรับรอง การสร้างบนโฮสต์ CA แล้วไม่เคยติดตั้งบนเซิร์ฟเวอร์เป็นความล้มเหลวที่พบบ่อยที่สุด และดูเหมือนคุณสมบัติการเพิกถอนที่เสีย
ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem
รายละเอียดสองอย่างตัดสินว่าไฟล์ถูกอ่านจริงหรือไม่ เส้นทางสัมพัทธ์ถูกแก้เทียบกับไดเรกทอรีการกำหนดค่า ดังนั้นสำเนาที่ถูกทิ้งไว้ในโฮมของผู้ดูแลอาจไม่ถูกพบเลย และเดมอนมักสละสิทธิ์หลังเริ่มทำงาน บัญชีรันไทม์จึงต้องมีสิทธิ์ค้นหาในไดเรกทอรีแม่ทุกชั้นและสิทธิ์อ่านไฟล์ ตรวจสอบทั้งสองอย่างด้วยบัญชีรันไทม์ไม่ใช่ root ไม่เช่นนั้นการทดสอบจะพิสูจน์สิ่งที่ผิด
บนโฮสต์ systemd หน่วยที่เสริมความแข็งอาจซ่อนเส้นทางได้เช่นกัน ด้วยมุมมองแบบอ่านอย่างเดียวหรือไดเรกทอรีระบบที่ได้รับการป้องกัน จากภายในบริการไม่สามารถแยกจากไฟล์ที่หายไปได้ ดังนั้นตรวจสอบข้อจำกัดของหน่วยก่อนไปหาข้อผิดพลาดสิทธิ์ อ่านไฟล์หน่วยก่อนตำหนิโหมดของไฟล์
ยืนยันที่เซิร์ฟเวอร์ ไม่ใช่ที่ไคลเอนต์
บันทึกของเซิร์ฟเวอร์ระบุว่าเกิดอะไรขึ้น การเปิดรายชื่อ การโหลด หรือการตรวจสอบล้มเหลวด้วยหมายเลขซีเรียลที่ถูกเพิกถอน ไคลเอนต์รายงานเพียงความล้มเหลวของการจับมือทั่วไป ดังนั้นบันทึกของไคลเอนต์จึงเป็นที่แย่ในการค้นหาการตัดสินใจเพิกถอน
ตรวจสอบด้วยความพยายามใหม่จากโปรไฟล์ที่ถูกเพิกถอนแล้วหยุด การเชื่อมต่อสำเร็จจากโปรไฟล์นั้นเป็นสัญญาณให้ตรวจสอบเส้นทางไฟล์และบัญชีรันไทม์ ไม่ใช่ให้สันนิษฐานว่ารายชื่อผิด เก็บความพยายามที่สำเร็จนั้นเป็นแบบทดสอบการยอมรับ และอย่านับการเชื่อมต่อใหม่ที่คุณไม่ได้เห็น
สิ่งที่ไม่ได้เพิกถอนอะไรเลย
การลบโปรไฟล์ออกจากแล็ปท็อป การถอดไฟล์ใบรับรองออกจากไคลเอนต์ หรือการบอกให้ผู้ใช้เลิกเชื่อมต่อไม่เปลี่ยนอะไรบนเซิร์ฟเวอร์ ใบรับรองยังคงใช้ได้จนกว่าหน่วยงานจะบันทึกการเพิกถอนและผู้ตรวจสอบอ่านรายชื่อที่ได้
นั่นคือเหตุผลที่ควรจดสายโซ่ไว้ บันทึกการเพิกถอน สร้างและลงลายมือชื่อรายชื่อ แจกจ่ายไฟล์นั้นให้ตรง และยืนยันว่าบัญชีบริการอ่านได้ แต่ละข้อสั้น และข้อใดที่ขาดหายจะทำให้ไคลเอนต์ที่ถูกเพิกถอนเชื่อมต่ออย่างมีความสุข รายการตรวจสอบสี่บรรทัดดีกว่าสมมติฐานที่ไม่มีสักบรรทัด