คำว่า VPN ในตัวครอบคลุมสองสิ่งที่ไม่เกี่ยวข้องกันบน Android คือการใช้งานโปรโตคอลที่แพลตฟอร์มเรียกใช้แทนคุณ กับรูปแบบการตั้งค่าที่ผู้ผลิตเลือกจะเปิดเผย สองสิ่งนี้ไม่ใช่วัตถุเดียวกัน และไม่มีสิ่งใดรับประกันว่าอุโมงค์เป็นของผู้ใช้ที่มีแอปต้องการมัน การจัดเตรียมเกิดขึ้นในผู้ใช้ที่เจาะจงด้วยแพ็กเกจที่เรียกใช้ที่เจาะจง และทุกอย่างที่ตามมาสืบทอดบริบทนั้น อ่านห่วงโซ่ความเป็นเจ้าของก่อนอ่านหน้าจอการตั้งค่า

แพลตฟอร์มสร้างอะไรให้คุณ

ตั้งแต่ Android 11 แพลตฟอร์มเปิดเผยการจัดเตรียม VPN ผ่าน VpnManager แอปที่ได้รับอนุมัติจะอธิบายโปรไฟล์ IKEv2 และแพลตฟอร์มดำเนินการแลกเปลี่ยน IPsec และ IKE เอง แอปจึงไม่แตะต้องแพ็กเก็ตเลย นั่นคือความแตกต่างที่มีความหมายจากแอป VPN ที่สร้างเอง ซึ่งใช้งาน VpnService และสร้างอุโมงค์ในโปรเซสของตัวเอง

val profile = Ikev2VpnProfile.Builder(serverAddress, identity)
    .setAuthUsernamePassword(user, secret, rootCa)
    .build()
getSystemService(VpnManager::class.java).provisionVpnProfile(profile)

การเรียกข้างต้นเป็นเพียงร่างของรูปแบบ ไม่ใช่บล็อกที่คัดลอกได้: ตัวสร้างมีการตรวจสอบสิทธิ์หลายแบบ ซึ่งแตกต่างกันตามระดับ API และโปรไฟล์ยังพาวัสดุความเชื่อถือของใบรับรองเซิร์ฟเวอร์ด้วย สิ่งที่สำคัญต่อคำถามเรื่องความเป็นเจ้าของนั้นแคบกว่าไวยากรณ์

คุณสมบัติสองข้อตามมาจากการออกแบบนี้ โปรไฟล์เป็นข้อมูล จึงจัดเตรียมโดยผู้ดูแลระบบได้แทนการพิมพ์ด้วยมือ และอุโมงค์เป็นเครือข่ายของแพลตฟอร์ม จึงปรากฏต่อแอปเป็นเครือข่ายที่มีการขนส่ง VPN ไม่ใช่ซ็อกเก็ตของแอปอื่น

ความเป็นเจ้าของคือผู้ใช้ก่อน แล้วจึงเป็นแพ็กเกจ

ผู้ใช้หลายคนบน Android คือการแยกจริง ไม่ใช่ป้ายกำกับ โปรไฟล์งานคือผู้ใช้แยกต่างหากที่มีแพ็กเกจติดตั้งของตัวเอง ข้อมูลแอปของตัวเอง keystore ของตัวเอง และสมอความเชื่อถือของตัวเอง ผลิตภัณฑ์เดียวกันที่ติดตั้งทั้งสองที่คือสองอินสแตนซ์ที่มีรหัสผู้ใช้ต่างกัน แม้ไอคอนบนตัวเรียกแอปและชื่อผลิตภัณฑ์จะเหมือนกัน

การจัดเตรียมถูกบันทึกกับแพ็กเกจที่เรียกใช้ในผู้ใช้รายนั้น ดังนั้นแอปจัดเตรียมที่ทำงานในโปรไฟล์ส่วนตัวจึงสร้างอุโมงค์ส่วนตัว และแอปงานในโปรไฟล์งานไม่เห็นสิ่งใดจากมัน กลับกันก็จริงเช่นกัน เพราะเหตุนี้อุโมงค์ของโปรไฟล์งานจึงมองไม่เห็นจากแอปส่วนตัว เว้นแต่นโยบายที่ชัดเจนจะระบุเป็นอย่างอื่น

ตัวควบคุมนโยบายอุปกรณ์สามารถจัดเตรียมแทนโปรไฟล์ที่จัดการได้ และนั่นอธิบายรายการที่ไม่มีใครในออฟฟิศจำได้ว่าสร้างขึ้น หากคุณกำลังตรวจสอบโทรศัพท์ นั่นคือเจ้าของที่น่าจะเป็นของโปรไฟล์ที่จางลง และไม่ใช่หน้าที่ของคุณที่จะลบมันเป็นการทดลอง

สามประตูก่อนแพ็กเก็ตจะเคลื่อนที่

ประตูแรกคืออำนาจ: ฝ่ายจัดการต้องอนุญาต VPN โดยรวม และบางการติดตั้งยังจำกัดชนิดไม่ใช่แค่การมีอยู่ ประตูที่สองคือตัวตน: ใบรับรองไคลเอนต์หรือข้อมูลรับรองต้องมีอยู่ในผู้ใช้ที่เป็นเจ้าของโปรไฟล์ เพราะใบรับรองที่นำเข้า keystore ส่วนตัวจะมองไม่เห็นจากโปรไฟล์งาน

ประตูที่สามคือความยินยอมและนโยบาย ผู้ใช้มักอนุมัติการเชื่อมต่อเมื่อใช้ครั้งแรก และผู้ดูแลระบบสามารถปักหมุดให้ทำงานตลอดเวลาได้เพิ่มเติม หรือเลือกใช้การล็อกดาวน์เพื่อให้ทราฟฟิกออกนอกอุโมงค์ไม่ได้ การตั้งค่าเหล่านั้นตัดสินว่าเกิดอะไรขึ้นเมื่ออุโมงค์ล่ม ซึ่งเป็นส่วนที่ผู้ใช้สังเกตเห็น

ขอบเขตคือจุดที่ทั้งสามบรรจบกัน โปรไฟล์กำหนดเกตเวย์และตัวตน ขณะที่ ชั้นนโยบายตัดสินว่าแอปใดใช้ได้ และทราฟฟิกถูกบังคับให้ผ่านหรือไม่ โทรศัพท์สองเครื่องที่มีที่อยู่เกตเวย์เหมือนกันจึงทำงานต่างกันได้มาก

ทำไมการเชื่อมต่อส่วนตัวจึงไม่ครอบคลุมแอปงาน

ทราฟฟิกจากแอปงานเกิดขึ้นในผู้ใช้ระดับงาน และนโยบายเครือข่ายที่ใช้คือของผู้ใช้รายนั้น อุโมงค์ที่สร้างในโปรไฟล์ส่วนตัวไม่ได้พามันไป ไม่ว่าตัวบอกสถานะจะดูสมบูรณ์แค่ไหน ข้อเท็จจริงข้อเดียวนี้ธิบายรายงานส่วนใหญ่ที่ผู้ใช้ยืนยันว่า VPN เชื่อมต่อแล้ว แต่แอปหนึ่งยังเข้าถึงบริการภายในไม่ได้

การแปลงชื่อก็เป็นไปตามขอบเขตเดียวกัน ซัฟฟิกซ์ DNS ส่วนตัวและสมอความเชื่อถือเป็นรายผู้ใช้ ชื่อโฮสต์ภายในที่แปลงได้ในโปรไฟล์ส่วนตัวอาจล้มเหลวในโปรไฟล์งาน แม้อุโมงค์จะดูเทียบเท่ากัน เพราะนโยบายตัวแปลงและที่เก็บ CA เป็นวัตถุคนละอย่าง

ตรวจสอบบนการลงทะเบียนจริง ไม่ใช่โทรศัพท์ในห้องแล็บ

บนอุปกรณ์ ระบุเจ้าของรายการก่อน: ผู้ใช้ใด แพ็กเกจใด และโปรไฟล์มาจากผู้จัดเตรียมของแพลตฟอร์มหรือจากแอปที่ใช้งานบริการ VPN ของตัวเอง จากนั้นยืนยันว่าตัวตนที่โปรไฟล์คาดหวังนั้นมีอยู่ใน keystore ของผู้ใช้รายนั้นจริง

ทดสอบวงจรชีวิต ไม่ใช่แค่การเชื่อมต่อ ลงชื่อเข้าใช้ ปลดล็อกที่เก็บข้อมูลรับรอง ปล่อยให้โปรไฟล์งานหยุดพักตอนเย็น แล้วนำกลับมาและตรวจว่าอุโมงค์กลับมาโดยไม่ต้องแตะด้วยมือ โปรไฟล์งานที่ปิดหลังเวลาเลิกงานจะพาอุโมงค์ไปด้วย และนั่นเป็นพฤติกรรมที่คาดไว้ไม่ใช่ข้อบกพร่อง หากสถานะไม่พร้อมใช้งานที่คาดไว้ถูกเขียนบันทึกไว้

สุดท้าย ทดสอบแอปงานเองกับปลายทางภายในที่รู้จัก และเปรียบเทียบกับผลของโปรไฟล์ส่วนตัว ทั้งสองอย่างต่างกันได้ สิ่งที่ต่างกันไม่ได้คือรูปแบบความเป็นเจ้าของ หากอุโมงค์เป็นของผู้ใช้ผิด การออกใบรับรองใหม่ไม่ช่วยอะไร

อย่าฝืนเรื่องด้วยการเปิดกิจกรรมการตั้งค่าที่ซ่อนอยู่เพื่อเผยเมนู และอย่าคัดลอกคีย์ส่วนตัวระหว่างโปรไฟล์เพื่อให้การเชื่อมต่อดูเหมือนมี เอกสารอ้างอิง VpnManager ระบุว่าผู้เรียกได้รับอนุญาตให้จัดเตรียมอะไร หากเส้นทางที่อนุมัติไม่ครอบคลุมกรณีของคุณ นั่นคือการตัดสินใจของผู้ดูแลระบบ ไม่ใช่ปัญหาการตั้งค่า

บทความที่เกี่ยวข้อง