แอป VPN ขอเข้าถึงรายชื่อผู้ติดต่อและความสามารถในการเข้าถึง: ควรอนุญาตอะไร
VPN ต้องการสิทธิ์เครือข่ายเพียงอย่างเดียว ความสามารถในการเข้าถึง รายชื่อผู้ติดต่อ และการติดตั้งใบรับรอง ต้องมีเหตุผลของตัวเองที่ฟีเจอร์การกำหนดเส้นทางให้ไม่ได้
ตัวติดตั้งขอเข้าถึงเครือข่าย จากนั้นขอรายชื่อผู้ติดต่อ ความสามารถในการเข้าถึง และการติดตั้งใบรับรอง มีเพียงคำขอแรกเท่านั้นที่เกี่ยวกับงาน หน้าจอที่สองคือที่ที่การตัดสินใจจริงอยู่
ตัดสินแต่ละคำขอเทียบกับฟีเจอร์ที่คุณเลือก บนแพลตฟอร์มที่คุณใช้ ไม่มีรายการสิทธิ์สากลใดครอบคลุมผลิตภัณฑ์ VPN ทุกตัว และรายการยาวไม่ได้พิสูจน์อะไรด้วยตัวเอง
สิทธิ์เดียวที่งานต้องการจริง ๆ
Android ขอให้ผู้ใช้อนุมัติบริการ VPN ผ่านกล่องโต้ตอบของระบบก่อนที่อุโมงค์ใดจะเริ่ม และบริการของแอปประกาศ BIND_VPN_SERVICE เพื่อให้ระบบผูกกับมันได้ ในเชิงปฏิบัติแอปทำงานกำหนดเส้นทาง ความยินยอมมาจากผู้ถืออุปกรณ์ ในกล่องโต้ตอบที่ระบุชื่อแอป และการเพิกถอนภายหลังเป็นการกระทำที่รองรับ
แพลตฟอร์ม Apple แสดงแนวคิดเดียวกันผ่านส่วนขยายเครือข่ายพร้อมการอนุมัติการติดตั้ง แทนหน้าจอสิทธิ์ Windows ใช้ไดรเวอร์อะแดปเตอร์เสมือนและพรอมต์ยกระดับสิทธิ์ สองรูปแบบ ความหมายเดียว: โปรแกรมนี้จัดการแพ็กเก็ตได้ ไม่มีอะไรในสิทธิ์นั้นครอบคลุมการอ่านสมุดที่อยู่ของคุณหรือการออกหน่วยออกใบรับรองให้ตัวเอง
การเข้าถึงเพิ่มเติมเป็นการอนุญาตแยกที่มีผลแยก ลูกค้าการกำหนดเส้นทางที่ต้องการสิ่งนี้ต้องมีเหตุผลของตัวเอง
คำขอเพิ่มเติมต้องมีเรื่องราวของตัวเองตรงไหน
บริการความสามารถในการเข้าถึงอ่านเนื้อหาหน้าจอและลงมือแทนคุณได้ ซึ่งไกลกว่าการกำหนดเส้นทางมาก การบริหารอุปกรณ์บังคับใช้นโยบายล็อกและลบข้อมูลได้ ใบรับรองรากที่ผู้ใช้ติดตั้งเองทำให้ใครก็ตามที่มีกุญแจที่ตรงกันอ่านทราฟฟิกที่ TLS จะปกป้องไว้ได้
สิ่งใดสิ่งหนึ่งเหล่านี้สามารถชอบด้วยเหตุผลได้ ผลิตภัณฑ์สำหรับอุปกรณ์ที่จัดการและควบคุมโดยผู้ปกครองอาจต้องมีอำนาจด้านนโยบาย และเครื่องมือสนับสนุนอาจต้องใช้ความสามารถในการเข้าถึงเพื่อพาคุณผ่านการตั้งค่า
ข้อกำหนดคือการตรวจสอบย้อนกลับได้: คำขอชี้ไปที่ฟีเจอร์ที่มีชื่อ และฟีเจอร์นั้นปรากฏในผลิตภัณฑ์ที่คุณติดตั้ง คำขอรายชื่อผู้ติดต่อที่ไม่มีหน้าจอเกี่ยวกับรายชื่อผู้ติดต่อไม่มีอะไรจะอธิบาย ข้อโต้แย้งเรื่องการเข้ารหัสก็ใช้ไม่ได้ เพราะการปกป้องแพ็กเก็ตไม่ได้บอกอะไรเกี่ยวกับว่าคุณเป็นเพื่อนกับใคร ผลิตภัณฑ์ที่ชอบด้วยเหตุผลยังขอมากเกินไปผ่านไลบรารีที่รวมมาได้ และนั่นคือข้อบกพร่องที่ควรยกขึ้นมา ไม่ใช่อาชญากรรมที่ควรรายงาน
บันทึกคำขอและฟีเจอร์ที่มันแมปไว้ แล้วจึงตัดสินใจ บันทึกนั้นยังเป็นสิ่งที่คุณแสดงต่อฝ่ายสนับสนุนเมื่อฟีเจอร์เสียหลังจากการปฏิเสธ
การอ่านคำขอบนอุปกรณ์
รายการในร้านค้าอธิบายเจตนา ขณะที่แพ็กเกจที่ติดตั้งอธิบายความจริง ถามตัวจัดการแพ็กเกจว่ามีการประกาศอะไรและให้สิทธิ์อะไรก่อนอนุมัติสิ่งอื่นใด คู่นี้สำคัญที่สุดเมื่อรายการกับแมนิเฟสต์ไม่ตรงกัน
สองคำสั่งครอบคลุมส่วนใหญ่:
adb shell dumpsys package com.example.vpn | grep -E "requested permissions|install permissions" -A 30 adb shell cmd appops get com.example.vpn
คำสั่งแรกแสดงรายการสิทธิ์ที่ประกาศเทียบกับที่ให้ไป ซึ่งเป็นการเปรียบเทียบที่เผยแมนิเฟสต์ที่กว้างเกินไป คำสั่งที่สองแสดง app-ops ขณะรัน รวมถึงการเข้าถึงพิเศษที่ไม่เคยปรากฏเป็นสิทธิ์ปกติ ที่ใดไม่มีเครื่องมือนักพัฒนา ให้อ่านข้อเท็จจริงเดียวกันจากหน้าจอการตั้งค่าของแพลตฟอร์ม
หน้าจอเหล่านั้นใช้เวลาหนึ่งนาทีและไม่ต้องใช้ซอฟต์แวร์ ความสามารถในการเข้าถึง การบริหารอุปกรณ์ และที่เก็บใบรับรอง แต่ละอย่างแสดงรายชื่อแอปที่ถือสิทธิ์
การตัดสินใจ แล้วจำกัดความเสียหาย
ให้สิทธิ์เครือข่ายกับลูกค้าที่คุณเลือก และถือว่าคำขอเพิ่มเติมแต่ละรายการเป็นการตัดสินใจของตัวเอง ปฏิเสธรายการที่ไม่มีฟีเจอร์ที่ตรงกัน แล้วดูว่าอะไรพัง ลูกค้าการกำหนดเส้นทางที่ล้มเหลวเมื่อถูกปฏิเสธการเข้าถึงรายชื่อผู้ติดต่อไม่เคยขอรายชื่อผู้ติดต่อแทนคุณ
การเพิกถอนสิทธิ์หนึ่งมักปิดฟีเจอร์เดียวโดยไม่ต้องถอนการติดตั้งแอปหรือรื้อโปรไฟล์แต่ละอัน กลับมาเชื่อมต่อใหม่แล้วยืนยันว่าอุโมงค์ยังสร้างได้
แยกสองคำถามที่พรอมต์มักรวมเข้าด้วยกัน: โปรแกรมนี้ทำอะไรบนอุปกรณ์ได้ และผู้ให้บริการทำอะไรกับทราฟฟิกเมื่ออุโมงค์ขึ้นแล้ว คำถามแรกได้คำตอบตรงนี้ คำถามที่สองต้องการนโยบายการเก็บรักษา และไม่มีกล่องโต้ตอบใดให้มา