Aplicația VPN cere contacte și accesibilitate: ce să permiți
Un VPN are nevoie de o singură autorizare de rețea. Accesibilitatea, contactele și instalarea unui certificat au nevoie de un motiv propriu pe care o funcție de rutare nu îl poate oferi.
Instalatorul cere acces la rețea, apoi contacte, accesibilitate și instalarea unui certificat. Doar prima cerere ține de sarcină. Al doilea ecran este locul unde se află decizia reală.
Judecă fiecare cerere în raport cu o funcție pe care ai ales-o, pe platforma pe care o folosești. Nicio listă universală de permisiuni nu acoperă fiecare produs VPN, iar o listă lungă nu dovedește nimic prin ea însăși.
Singura permisiune de care sarcina are cu adevărat nevoie
Android cere utilizatorului să aprobe un serviciu VPN printr-un dialog de sistem înainte de a porni orice tunel, iar serviciul aplicației declară BIND_VPN_SERVICE astfel încât sistemul să se poată lega de el. Operațional, aplicația face munca de rutare. Consimțământul vine de la persoana care ține dispozitivul, într-un dialog care numește aplicația, iar revocarea ulterioară este o acțiune acceptată.
Platformele Apple exprimă aceeași idee printr-o extensie de rețea plus o aprobare de instalare, în loc de un ecran de permisiuni. Windows folosește un driver de adaptor virtual și o solicitare de ridicare a privilegiilor. Două forme, un singur sens: acest program poate gestiona pachete. Nimic din acea autorizare nu acoperă citirea agendei tale sau emiterea unei autorități de certificare pentru sine.
Accesul suplimentar este o aprobare separată cu efecte separate. Un client de rutare care îl dorește are nevoie de propriul motiv.
Unde cererile suplimentare au nevoie de propria poveste
Un serviciu de accesibilitate poate citi conținutul ecranului și poate acționa în numele tău, ceea ce depășește cu mult rutarea. Administrarea dispozitivului poate impune politici de blocare și poate șterge date. Un certificat rădăcină instalat de utilizator permite oricui deține cheia potrivită să citească traficul pe care TLS l-ar proteja altfel.
Oricare dintre acestea poate fi legitimă. Produsele pentru dispozitive gestionate și control parental pot avea nevoie de puteri de politică, iar un instrument de suport poate avea nevoie de accesibilitate pentru a te ghida prin setări.
Cerința este trasabilitatea: cererea indică o funcție numită, iar acea funcție este vizibilă în produsul pe care l-ai instalat. O cerere de contacte fără un ecran orientat spre contacte nu are nimic de explicat. Nici argumentul criptării nu se transferă, pentru că protejarea pachetelor nu spune nimic despre cine sunt prietenii tăi. Un produs legitim poate totuși cere prea mult printr-o bibliotecă inclusă, iar aceasta este o deficiență de semnalat, nu o infracțiune de raportat.
Notează cererea și funcția căreia îi corespunde, apoi decide. Acea notă este și ceea ce arăți suportului când o funcție se strică după o respingere.
Citirea cererii pe dispozitiv
Listarea din magazin descrie intenția, în timp ce pachetul instalat descrie realitatea. Întreabă managerul de pachete ce a fost declarat și ce a fost acordat înainte de a aproba orice altceva. Perechea contează cel mai mult când o listare și un manifest nu sunt de acord.
Două interogări acoperă cea mai mare parte:
adb shell dumpsys package com.example.vpn | grep -E "requested permissions|install permissions" -A 30 adb shell cmd appops get com.example.vpn
Prima listează permisiunile declarate față de cele acordate, iar aceasta este comparația care expune un manifest prea larg. A doua arată app-ops la execuție, inclusiv accesări speciale care nu apar niciodată ca permisiuni obișnuite. Acolo unde instrumentele de dezvoltator nu sunt disponibile, citește aceleași fapte de pe ecranele de setări ale platformei.
Acele ecrane durează un minut și nu necesită software. Accesibilitatea, administrarea dispozitivului și stocarea certificatelor fiecare listează aplicațiile care dețin aprobarea.
Decizia, apoi limitarea daunelor
Acordă autorizarea de rețea unui client pe care l-ai ales și tratează fiecare cerere suplimentară ca pe o decizie proprie. Respinge-le pe cele fără o funcție potrivită, apoi vezi ce se strică. Un client de rutare care eșuează când accesul la contacte este refuzat nu a cerut niciodată contacte în numele tău.
Revocarea unei permisiuni dezactivează de obicei o singură funcție fără a dezinstala aplicația sau a demonta fiecare profil. Reconectează-te după aceea și confirmă că tunelul se mai stabilește.
Separă cele două întrebări pe care un dialog tinde să le unească: ce poate face acest program pe dispozitiv și ce face operatorul său cu traficul odată ce tunelul este ridicat. Prima primește răspuns aici. A doua are nevoie de o politică de păstrare, iar niciun dialog nu o oferă.