VPN บน Android กับการอนุญาตของแอป: คำเตือนนั้นหมายความว่าอะไร
กล่องยินยอมใช้ VPN ของ Android ให้ตำแหน่งในระดับแพ็กเก็ต ไม่ใช่การเข้าถึงอีเมล รูปภาพ หรือรายชื่อผู้ติดต่อของคุณ นี่คือที่ที่เส้นแบ่งนั้นอยู่จริง
กล่องโต้ตอบสองแบบของ Android ถูกนำมาปนกันอยู่ตลอดเวลา: คำขอความยินยอมใช้ VPN กับคำขออนุญาตที่แอปขอสำหรับข้อมูลของคุณ อย่างแรกมอบตำแหน่งในเครือข่าย คือจุดที่แพ็กเก็ตสามารถถูกอ่านและเขียนใหม่ได้ อย่างที่สองมอบเนื้อหาที่จัดเก็บไว้ซึ่ง Android คุ้มครองเป็นรายแอป การมองทั้งสองเป็นสิ่งเดียวกันจึงทำให้เกินจริงว่าอุโมงค์มองเห็นอะไรได้ หรือประเมินต่ำเกินไปอย่างรุนแรงว่าแอปที่ตั้งใจแน่วแน่จะขออะไรต่อไป
กล่องยินยอมมอบอะไรจริง ๆ
แอปที่ใช้งาน VpnService และประกาศ BIND_VPN_SERVICE จะขอให้ระบบให้กลายเป็น VPN ของอุปกรณ์ เมื่อได้รับอนุมัติ กรอบการทำงานจะสร้างอินเทอร์เฟซ tun และมอบตัวอธิบายไฟล์ให้แอป ทุกสิ่งหลังจากนั้นไหลผ่านตัวอธิบายนั้น: อ่านแพ็กเก็ต IP ออกมา ตัดสินใจว่าจะทำอะไรกับมัน แล้วเขียนแพ็กเก็ตกลับเข้าไป
ขอบเขตของอินเทอร์เฟซนั้นชัดเจน เส้นทางเป็นตัวกำหนดว่าปลายทางใดถูกจับ และ addAllowedApplication หรือ addDisallowedApplication เป็นตัวกำหนดว่าแอปใดป้อนข้อมูลให้มัน VPN แยกตามแอป ที่ระบุสองแอปจะไม่เห็นส่วนที่เหลือของอุปกรณ์
นั่นคือการให้สิทธิ์ในระดับแพ็กเก็ต ไม่ใช่ระดับข้อมูล บริการจะเห็นไบต์ที่แอปส่งให้สแตกเครือข่าย ซึ่งถูกกำหนดที่อยู่ไปยังปลายทาง บริการไม่ได้เข้าถึงที่จัดเก็บส่วนตัวของแอปที่ส่ง ไฟล์ฐานข้อมูล หรือหน่วยความจำที่ถอดรหัสแล้วของแอปนั้น ไฟล์ที่แอปบันทึกไว้ในแซนด์บ็อกซ์ของตัวเองยังคงอ่านยากพอ ๆ กับก่อนหน้านี้
จุดที่มุมมองแพ็กเก็ตสิ้นสุด
TLS ยังคงทำหน้าที่ของมันภายในอุโมงค์ เพราะการจับมือกันเกิดขึ้นระหว่างแอปกับเซิร์ฟเวอร์ ไม่ใช่ระหว่างแอปกับ VPN VPN ส่งต่อข้อความเข้ารหัสที่ถอดรหัสไม่ได้หากไม่มีคีย์เซสชัน นั่นคือเหตุผลที่อุโมงค์เพียงอย่างเดียวไม่เปิดเผยเนื้อหาของหน้า HTTPS หรือเซสชันอีเมลที่ได้รับการป้องกัน
เมทาดาทารอบข้อความเข้ารหัสเป็นอีกเรื่องหนึ่ง และนี่คือจุดที่ข้ออ้างที่มั่นใจส่วนใหญ่พังทลาย IP ปลายทาง พอร์ต ขนาดแพ็กเก็ต และจังหวะเวลา ล้วนมองเห็นได้ บวกกับชื่อเซิร์ฟเวอร์ใน TLS ClientHello ซึ่งโดยปกติส่งแบบเปิดเผยแม้ภายใต้ TLS 1.3 Encrypted Client Hello เปลี่ยนสิ่งนั้น แต่ไม่ใช่สากล DNS ธรรมดาก็รั่วชื่อได้ง่ายพอกันเมื่อคำถามออกไปโดยไม่เข้ารหัส
โปรโตคอลที่เก่าหรือกำหนดค่าไม่ถูกต้องจะมอบมากกว่า HTTP ธรรมดา, IMAP ที่ไม่มี TLS และโปรโตคอลเกมกับ IoT จำนวนหนึ่งเปิดเผยเพย์โหลดของตนให้ทุกสิ่งที่ถือตัวอธิบาย tun
การอนุญาตที่ไม่เคยมาพร้อมกัน
การอนุมัติ VPN ไม่ได้อนุมัติรายชื่อผู้ติดต่อ SMS รูปภาพ หรือคลังสื่อ สิ่งเหล่านั้นเป็นการให้สิทธิ์ขณะทำงานแยกต่างหาก แต่ละอย่างมีกล่องของตัวเองและเส้นทางการเพิกถอนของตัวเองในหน้าการตั้งค่าของแอป ไคลเอนต์ VPN ที่ต้องการบันทึกการโทรของคุณต้องขอเหมือนแอปอื่น ๆ และคุณสามารถปฏิเสธได้โดยยังคงอุโมงค์ไว้
การติดตั้งใบรับรองคือสิ่งที่ต้องจับตา เพราะดูเหมือนเป็นส่วนหนึ่งของการตั้งค่า VPN แต่ไม่ใช่ การติดตั้ง CA ของผู้ใช้ลงในที่เก็บข้อมูลรับรองจะเปลี่ยนว่า Android จะยอมรับใบรับรองใด และตั้งแต่ Android 7.0 แอปที่กำหนดเป้าหมาย API 24 หรือใหม่กว่าจะไม่สนใจ CA ที่ผู้ใช้เพิ่ม เว้นแต่การกำหนดค่าความปลอดภัยเครือข่ายของแอปจะเลือกใช้ด้วยจุดยึดความเชื่อถือของผู้ใช้ ไคลเอนต์ที่ยืนกรานต้องมี CA อาจกำลังทำการดักจับภายในองค์กรอย่างชอบธรรม หรืออาจกำลังขอสิ่งที่กล่อง VPN ไม่เคยกล่าวถึงเลย
การเข้าถึงด้วยฟีเจอร์ช่วยการเข้าถึงอยู่ไกลออกไปอีก บริการที่เปิดใช้การช่วยการเข้าถึงสามารถอ่านเนื้อหาบนหน้าจอของแอปอื่น ซึ่งไม่มีตำแหน่งระดับแพ็กเก็ตใดให้ได้
ตัวกรองในเครื่องหรือเกตเวย์ระยะไกล
API เดียวกันครอบคลุมผลิตภัณฑ์สองแบบที่สมควรได้รับความเชื่อถือต่างระดับกัน ไฟร์วอลล์หรือตัวบล็อกโฆษณาบนอุปกรณ์จะรับตัวอธิบาย tun และตอบทราฟฟิกในเครื่อง โดยไม่ส่งไปยังเซิร์ฟเวอร์ที่มันดูแลเองเลย อุโมงค์จริงจะส่งแพ็กเก็ตเหล่านั้นไปยังเกตเวย์ที่อื่น และผู้ให้บริการนั้นเห็นเมทาดาทาเดียวกันจากอีกด้าน พร้อมทั้งตัดสินใจว่าอะไรจะส่งกลับมา
วิธีปฏิบัติในการแยกแยะคือตรวจสอบที่อยู่สาธารณะของคุณทั้งตอนเปิดและปิด VPN และดูว่าการแจ้งเตือนระบุจุดปลายทางระยะไกลหรือไม่ หากที่อยู่ไม่เคยเปลี่ยน ทราฟฟิกน่าจะวนกลับอยู่ในอุปกรณ์เอง
ทั้งสองกรณีก็ยังเป็นตำแหน่งในระดับแพ็กเก็ต ความต่างคือมีใครอีกคนยืนอยู่ที่ทางออก
ตรวจสอบสิ่งที่คุณอนุมัติ
เปิดการตั้งค่า จากนั้นเครือข่ายและอินเทอร์เน็ต จากนั้น VPN แล้วอ่านรายการ ไม่ใช่ไอคอนบนแถบสถานะ VPN เปิดตลอดเวลา และบล็อกการเชื่อมต่อเมื่อไม่มี VPN เป็นการตั้งค่าอุปกรณ์ที่ทำให้อินเทอร์เฟซยังทำงานและตัดการรั่วไหล พวกมันไม่ได้ขยายอะไรเลย จากหน้าจอเดียวกันคุณสามารถลืมโปรไฟล์และเพิกถอนการให้สิทธิ์ได้
จากนั้นไล่ดูการอนุญาตอื่น ๆ ข้อมูลแอปจะแสดงว่าคลไอเอนต์ได้รับการให้สิทธิ์ขณะทำงานใดบ้าง และการตั้งค่าความปลอดภัยจะแสดงว่ามีการติดตั้งใบรับรองผู้ใช้ในเวลาเดียวกันหรือไม่ ทั้งสองอย่างสามารถลบออกแยกกันได้
คำถามที่คุ้มค่าจะตอบนั้นแคบ: แพ็กเก็ตใดเข้ามาในบริการนี้ ไปที่ใด และสิ่งที่ใช้งานเก็บอะไรไว้ สิ่งอื่นทั้งหมดในกล่องคือเสียงรบกวน เอกสารอ้างอิง VpnService คือรายการที่เป็นทางการของสิ่งที่อินเทอร์เฟซเปิดเผย