VPN ส่วนตัวหรืออุโมงค์แพ็กเก็ต: สองโมเดล VPN สำหรับ iPhone
โมเดลหนึ่งกำหนดค่า IPsec หรือ IKEv2 ที่มีมาใน iOS อีกโมเดลหนึ่งจัดหาผู้ให้บริการที่ใช้งานโปรโตคอลของตัวเอง ชื่อผลิตภัณฑ์ไม่ได้บอกว่าคุณได้อันไหน
แอป iPhone สองตัวสามารถใส่รายการ VPN ใน Settings ได้ทั้งคู่ ทั้งคู่เรียกตัวเองว่าไคลเอนต์ VPN และแทบไม่แชร์การใช้งานร่วมกันเลย Apple เรียกหนึ่งในการผสานรวมเหล่านั้นว่า VPN ส่วนตัว และชื่อนั้นเองที่สร้างความสับสนส่วนใหญ่ VPN ส่วนตัวคือ API สำหรับสร้างและจัดการการกำหนดค่าที่ใช้การใช้งาน IPsec หรือ IKEv2 ที่มีมาในระบบ การเป็นผู้ให้บริการอุโมงค์แพ็กเก็ตคืออีกโมเดลหนึ่ง: แอปจัดหาส่วนขยายที่ใช้งานฝั่งไคลเอนต์ของโปรโตคอลของตัวเอง ทุกสิ่งที่ผู้คนอนุมานจากป้ายชื่อหลังจากนั้น ตั้งแต่รหัสไปจนถึงความเป็นเจ้าของ ไปจนถึงว่าต้องจัดการโทรศัพท์หรือไม่ เป็นการอนุมาน ไม่ใช่คำกล่าวอ้าง
ใครเป็นผู้ใช้อุโมงค์
การแยกนี้ตัดสินว่าใครรับผิดชอบเมื่อมีบางอย่างเสียหาย ด้วย IPsec หรือ IKEv2 ที่มีมาในระบบ iOS เป็นเจ้าของเครื่องสถานะของอุโมงค์ และแอปเป็นเจ้าของการกำหนดค่าและปุ่มต่างๆ ด้วยผู้ให้บริการ แอปเป็นเจ้าของทั้งสองอย่าง บั๊กของโปรโตคอลจึงกลายเป็นการอัปเดตแอปแทนการอัปเดตระบบปฏิบัติการ
การเปรียบเทียบนั้นสั้นถ้าคุณถามว่าใครใช้งานโปรโตคอล
| Integration | Apple interface | Protocol implementation |
|---|---|---|
| Personal VPN | NEVPNManager with a Personal VPN configuration | The system IPsec or IKEv2 client |
| Packet tunnel | NETunnelProviderManager plus the provider extension | Whatever the extension implements |
เอกสาร VPN ส่วนตัว ยังกล่าวถึงพรอมต์การอนุญาตผู้ใช้อย่างชัดเจนเมื่อแอปบันทึกการกำหนดค่าเป็นครั้งแรก ซึ่งเป็นของโมเดลนั้น ไม่ใช่ของแอป VPN โดยทั่วไป
สองข้อกล่าวอ้างเกี่ยวกับป้ายชื่อที่ควรเลิกใช้
ข้อแรกคือ VPN ส่วนตัวเลือกใช้รหัส ไม่ใช่เลย ชุดที่เจรจาได้มาจากโปรโตคอลและการกำหนดค่าของมัน และป้ายชื่อส่วนตัวไม่ได้บอกอะไรเกี่ยวกับอันที่คุณจะได้รับ ข้อที่สองคือ VPN ส่วนตัวหมายถึงพร็อกซีหรืออุโมงค์แบบจำกัด มันหมายถึง IPsec หรือ IKEv2 ที่มีมาในระบบ ซึ่งเป็นอุโมงค์เต็มรูปแบบทุกครั้งที่เส้นทางบอกเช่นนั้น
ดังนั้นการมีอยู่ของแอปจึงไม่ใช่หลักฐานเกี่ยวกับโปรโตคอลบนสาย ไคลเอนต์จากบุคคลที่สามที่พูด WireGuard หรือ OpenVPN เป็นแอปผู้ให้บริการโดยโครงสร้าง เพราะ iOS ไม่ได้ใช้งานโปรโตคอลเหล่านั้นแบบเนทีฟ
ทำไมถ้อยคำแบบองค์กรจึงทำให้เข้าใจผิด
เอกสารของ Apple จัดประเภทการกำหนดค่า NETunnelProviderManager เป็นการกำหนดค่า VPN องค์กรทั่วไป ถ้อยคำนั้นเป็นหมวดหมู่ API และผลักดันผู้คนไปสู่ข้อผิดพลาดสองอย่างที่ตรงข้ามกัน คือการถือว่าแอปสำหรับผู้บริโภคใช้โมเดลผู้ให้บริการไม่ได้ และการถือว่าโทรศัพท์ต้องอยู่ภายใต้การกำกับดูแลสำหรับสิ่งนั้น ทั้งสองอย่างไม่ได้ตามมา แอปสำหรับผู้บริโภคจัดหาผู้ให้บริการเป็นประจำ และการกำกับดูแลเป็นคำถามแยกต่างหากว่าใครบังคับใช้นโยบายได้
ความเป็นเจ้าของการจัดการคือคำถามที่สี่นั้น และเป็นอิสระจากทั้งสองโมเดล การกำหนดค่าที่องค์กรติดตั้งไว้มีอัตลักษณ์ ขอบเขตการรับส่งข้อมูล และกฎวงจรชีวิตของตัวเอง และสิ่งเหล่านั้นเดินทางไปกับโปรไฟล์ ไม่ใช่กับแอปที่บังเอิญติดตั้งอยู่ อ่านสิ่งเหล่านั้นควบคู่กับโมเดลการผสานรวม เพราะโปรไฟล์ในระบบที่ถูกจัดการและโปรไฟล์ผู้ให้บริการที่ไม่ถูกจัดการสามารถอยู่บนโทรศัพท์เครื่องเดียวกันได้ในเวลาเดียวกัน
ตรวจสอบหลักฐานแทนภาพหน้าจอ
ภาพหน้าจอเป็นหลักฐานที่แย่ที่สุดที่มี เพราะการจัดกลุ่มใน Settings เปลี่ยนไประหว่างเวอร์ชัน โปรไฟล์ที่ถูกจัดการระบุชนิดเพย์โหลดของตัวเอง: โปรไฟล์ในระบบประกาศชนิด VPN เช่น IKEv2 หรือ IPsec ในขณะที่โปรไฟล์ผู้ให้บริการมีชนิดย่อยที่ระบุตัวระบุชุดของโปรไฟล์ผู้ให้บริการ สิ่งนี้ตรวจสอบได้บนอุปกรณ์ตรงหน้าคุณ และมันอยู่รอดจากการออกแบบใหม่ครั้งถัดไป
สำหรับแอปเอง คลาสที่ใช้อยู่ตอบคำถามเดียวกันจากอีกด้านหนึ่ง: ออบเจ็กต์การกำหนดค่าจาก API ของ VPN ส่วนตัว หรือผู้จัดการผู้ให้บริการและส่วนขยายของมัน
จากนั้นเลือกตามสิ่งที่ผู้ให้บริการเครือข่ายจัดหาให้จริง ที่ใดมีโปรไฟล์เนทีฟที่เข้ากันได้ เส้นทางในระบบมีการเคลื่อนไหวน้อยกว่าและมีสิ่งเดียวที่ต้องอัปเดตน้อยกว่า ที่ใดบริการต้องการโปรโตคอลที่ iOS ไม่ได้จัดหา แอปผู้ให้บริการเป็นทางเลือกเดียว และจังหวะการออกรุ่นของมันก็กลายเป็นส่วนหนึ่งของความเสี่ยงของคุณ
เก็บบันทึกไว้กับคอนเน็กชัน
ผูกการพิสูจน์ตัวตนและนโยบายทรัพยากรไว้กับบันทึกคอนเน็กชัน ไม่ใช่กับแอป เพื่อให้การติดตั้งใหม่ไม่พาโมเดลการอนุญาตไปด้วย บันทึกนั้นยังเป็นสิ่งที่วิศวกรซัพพอร์ตต้องการเมื่ออุโมงค์ขึ้นและอย่างอื่นไม่ทำงาน
คำถามที่ควรถามในตอนท้ายไม่ใช่โมเดลไหนดีกว่า แต่เป็นโมเดลไหนที่ผู้ให้บริการเครือข่ายของคุณรองรับ และโมเดลไหนที่คุณดีบั๊กได้ตอนตีสองด้วยเครื่องมือที่คุณมีจริง