VPN สำหรับใบรับรองที่ลงนามเองเทียบกับ CA สาธารณะ: อะไรเปลี่ยนจริง ๆ
ใบรับรองที่ลงนามเองและใบรับรองสาธารณะเข้ารหัสอุโมงค์ VPN ด้วยวิธีเดียวกัน ความแตกต่างที่แท้จริงคือใครรับรองเซิร์ฟเวอร์ และใครต้องเชื่อถือคำกล่าวอ้างนั้น
คุณมาถึงหน้าสำหรับใบรับรองของการตั้งค่า VPN เห็นตัวเลือกที่ลงนามเองฟรีข้าง CA สาธารณะแบบเสียเงิน และคำถามก็ฟังดูเหมือนการเลือกความปลอดภัย แท้จริงแล้วเป็นการเลือกกลุ่มผู้ชม ทั้งสองตัวเลือกเข้ารหัสอุโมงค์ด้วยองค์ประกอบพื้นฐานเดียวกัน และทั้งสองก็ไร้ค่าถ้ากุญแจส่วนตัวรั่วไหล สิ่งที่แยกทั้งสองคือใครเป็นผู้กล่าวอ้างเกี่ยวกับตัวตนของเซิร์ฟเวอร์ และใครอยู่ในฐานะที่จะตรวจสอบคำกล่าวอ้างนั้นได้
ใบรับรองทำสองหน้าที่ที่มักสับสนกัน
ใบรับรองผูกกุญแจสาธารณะเข้ากับชื่อ และกุญแจทำหน้าที่เข้ารหัสและลงนาม ลายเซ็นบนใบรับรองเป็นถ้อยแถลงแยกต่างหาก: มีหน่วยงานบางแห่งตรวจสอบแล้วว่าชื่อนี้เป็นของผู้ถือกุญแจรายนี้ ใบรับรองที่ลงนามเองออกถ้อยแถลงนั้นเกี่ยวกับตัวเอง ซึ่งไม่ใช่คำกล่าวอ้างของบุคคลที่สามเลย
เว็บไซต์สาธารณะต้องการฉบับที่มาจากบุคคลที่สาม เพราะผู้เยี่ยมชมมาถึงโดยไม่มีความสัมพันธ์เดิมและพึ่งพาที่เก็บความเชื่อถือของเบราว์เซอร์ ไคลเอนต์ VPN ไม่ใช่คนแปลกหน้า คุณมอบใบรับรอง CA ให้ หรือปักหมุดใบรับรองเซิร์ฟเวอร์ไว้ในโปรไฟล์ที่ติดตั้ง ดังนั้นการตรวจสอบจึงวิ่งเทียบกับหน่วยงานที่คุณเลือกไว้อย่างแม่นยำ ไม่จำเป็นต้องมี CA เชิงพาณิชย์เข้ามาเกี่ยวข้องเพื่อให้การตรวจสอบนั้นมีความหมาย
ความแข็งแกร่งของเซสชันที่ได้มาจากขนาดกุญแจและชุดรหัสลับ ไม่ใช่จากผู้ลงนาม นั่นคือเหตุผลที่เรียกใบรับรองที่ลงนามเองว่า "เข้ารหัสน้อยกว่า" นั้นผิดอย่างตรงไปตรงมา มันได้รับการรับรองในวงแคบกว่า ซึ่งเป็นคุณสมบัติที่ต่างออกไป
ที่ที่ CA สาธารณะคุ้มค่ากับค่าธรรมเนียม
กรณีที่ชัดเจนที่สุดคือหน้าผู้ดูแลระบบ หากเพื่อนร่วมงาน ผู้รับเหมา หรือใครก็ตามที่ไม่มีโปรไฟล์เตรียมไว้ต้องเปิดอินเทอร์เฟซเว็บของเซิร์ฟเวอร์ VPN โดยไม่มีคำเตือนจากเบราว์เซอร์ ใบรับรองที่ได้รับความเชื่อถือสาธารณะก็ขจัดความฝืดนั้น เบราว์เซอร์เชื่อถือผู้ลงนามอยู่แล้ว จึงไม่มีอะไรต้องนำเข้าและไม่มีอะไรต้องอธิบาย
ความสะดวกนั้นมีต้นทุนที่ควรกล่าวถึงก่อนซื้อ การต่ออายุต้องทำให้อัตโนมัติ ไม่อย่างนั้นเว็บไซต์จะพังตามกำหนดการ ใบรับรองสาธารณะเปิดเผยชื่อโฮสต์ในบันทึกความโปร่งใสของใบรับรอง และขีดจำกัดอัตราการออกใบรับรองลงโทษสคริปต์ที่พยายามซ้ำมากเกินไป ไม่มีข้อใดเป็นเหตุผลให้เลี่ยง CA สาธารณะ แต่มันเป็นงานปฏิบัติการที่ CA ส่วนตัวย้ายไปไว้ที่อื่น
สิ่งที่ใบรับรองสาธารณะไม่ได้ทำคือการยืนยันตัวตนผู้ใช้ของคุณ ตัวตนของไคลเอนต์เป็นการตัดสินใจแยกต่างหาก ซึ่งทำด้วยใบรับรองไคลเอนต์ รหัสผ่าน หรือปัจจัยที่สอง และ CA ที่ลงนามเซิร์ฟเวอร์ไม่ได้บอกอะไรเลยว่าใครได้รับอนุญาตให้เชื่อมต่อกับมัน
ที่ที่ CA ส่วนตัวเหมาะกับ VPN
สำหรับ VPN ส่วนตัวที่มีชุดไคลเอนต์ที่รู้จัก การดูแล CA ของตัวเองเป็นทางเลือกตามปกติ คุณสร้าง CA ครั้งเดียว ลงนามใบรับรองเซิร์ฟเวอร์ด้วยชื่อที่ไคลเอนต์จะใช้ และแจกจ่ายใบรับรอง CA ภายในแต่ละโปรไฟล์ จากนั้นไคลเอนต์แต่ละรายจะตรวจสอบเซิร์ฟเวอร์เทียบกับหน่วยงานของคุณ และไม่มีบุคคลภายนอกใดล่วงรู้ชื่อโฮสต์
ต้นทุนเป็นของจริงแต่มีขอบเขต เบราว์เซอร์จะเตือนเมื่อมีคนเปิดหน้าผู้ดูแลระบบโดยตรง เพราะเบราว์เซอร์ไม่มีเหตุผลให้เชื่อถือ CA ของคุณ การแจกจ่ายโปรไฟล์กลายเป็นส่วนหนึ่งของการเริ่มใช้งาน และการหมุน CA หมายถึงการแตะไคลเอนต์ทุกตัว นั่นเป็นราคาที่ยอมรับได้สำหรับบริการที่มีผู้ใช้ที่รู้จักสิบหรือห้าสิบราย และเจ็บปวดสำหรับปลายทางสาธารณะที่มีผู้ใช้หลายพัน
เงื่อนไขเดียวทำให้การจัดวางทั้งหมดใช้ได้จริง: การตรวจสอบต้องเกิดขึ้น ไคลเอนต์ที่ตั้งค่าให้ละเว้นข้อผิดพลาดของใบรับรองจะยอมรับเซิร์ฟเวอร์ใดก็ตามที่นำเสนอใบรับรองใดก็ได้ ดังนั้นการรับรองตัวตนจึงหายไปในขณะที่การเข้ารหัสยังอยู่ การตั้งค่านั้นคือจุดอ่อนที่แท้จริงในเรื่องเล่า "ลงนามเองไม่ปลอดภัย" ส่วนใหญ่
กุญแจส่วนตัวของ CA เป็นตัวกำหนดว่าคุณจะทำอะไรได้ในภายหลัง
ความประหลาดใจมักมาถึงหลายเดือนให้หลัง เมื่อคุณต้องการเพิ่มอุปกรณ์ การออกใบรับรองไคลเอนต์ต้องใช้กุญแจส่วนตัวของ CA และการสร้างรายการเพิกถอนก็เช่นกัน หากคุณได้รับเซิร์ฟเวอร์ที่สืบทอดมาซึ่งมีไฟล์ใบรับรองและกุญแจแต่ไม่มีกุญแจ CA คุณจะลงนามสิ่งใหม่ไม่ได้ ทางเลือกของคุณคือสร้าง PKI ใหม่และมอบใบรับรอง CA ใหม่ให้ไคลเอนต์ทุกตัว หรือเปลี่ยนไปใช้การยืนยันตัวตนด้วยรหัสผ่าน ซึ่งเป็นรูปแบบความปลอดภัยที่ต่างออกไปและไม่คืนสิ่งที่สูญเสียไป
กับดักเล็กกว่าสองอย่างอาศัยอยู่ในดินแดนเดียวกัน สคริปต์ easy-rsa ถือว่าคุณยืนอยู่ในไดเรกทอรีที่มีสคริปต์เหล่านั้น ดังนั้นข้อผิดพลาดเรื่องไฟล์หายมักหมายถึงตำแหน่งผิด ไม่ใช่การติดตั้งที่เสียหาย และการออกแบบที่มีแต่ใบรับรองนั้นถูกต้องตามกฎหมายทีเดียว: คุณกำหนดให้มีใบรับรองไคลเอนต์โดยไม่มีกุญแจที่แบ่งปันล่วงหน้าได้ โดยมีเงื่อนไขว่าไคลเอนต์แต่ละรายมีหนึ่งใบและเซิร์ฟเวอร์ตรวจสอบห่วงโซ่
ออกใบรับรองหนึ่งใบต่ออุปกรณ์ แทนที่จะเป็นใบรับรองไคลเอนต์แบบใช้ร่วมกันหนึ่งใบสำหรับทั้งทีม แล้วแล็ปท็อปที่หายไปจะทำให้คุณเสียการเพิกถอนเพียงครั้งเดียวแทนการออกใหม่ให้ทุกคน
ตรวจสอบสิ่งที่คุณสืบทอดมา
ก่อนวางแผนการเปลี่ยนแปลงใด ๆ ให้อ่านใบรับรองที่คุณมีอยู่แล้ว:
$ openssl x509 -in server.crt -noout -subject -issuer -dates
subject=CN = vpn.example.net
issuer=CN = vpn.example.net
notAfter=Nov 3 09:00:00 2027 GMT
$ openssl verify -CAfile ca.crt server.crt
server.crt: OK
หากผู้ออกเท่ากับหัวข้อ ใบรับรองนั้นลงนามเอง ซึ่งเป็นการเลือกการออกแบบไม่ใช่ข้อบกพร่อง วันที่บอกคุณว่าการต่ออายุจะเป็นปัญหาของใคร และการตรวจสอบที่สำเร็จเทียบกับ CA ที่คุณตั้งใจจะส่งมอบยืนยันว่าห่วงโซ่ทำงานก่อนที่ไคลเอนต์รายเดียวจะลองใช้
จากนั้นเลือกตามผู้ชมและการแจกจ่าย: CA สาธารณะเมื่อเบราว์เซอร์ที่ไม่รู้จักต้องเชื่อถือหน้าผู้ดูแลระบบ, CA ส่วนตัวเมื่อไคลเอนต์แต่ละรายได้รับโปรไฟล์ที่คุณควบคุม ไม่มีคำตอบใดเข้ารหัสมากกว่าอีกข้อ