VPN-appen begär kontakter och tillgänglighet: vad du bör tillåta
En VPN behöver ett nätverksgodkännande. Tillgänglighet, kontakter och certifikatinstallation behöver en egen motivering som en routingfunktion inte kan ge.
Installationsprogrammet begär nätverksåtkomst, sedan kontakter, tillgänglighet och en certifikatinstallation. Bara den första begäran hör till jobbet. Den andra skärmen är där det faktiska beslutet ligger.
Bedöm varje begäran mot en funktion du valde, på den plattform du kör. Ingen universell behörighetslista täcker alla VPN-produkter, och en lång lista bevisar ingenting i sig.
Den enda behörighet jobbet verkligen behöver
Android ber användaren godkänna en VPN-tjänst i en systemdialog innan någon tunnel startar, och appens tjänst deklarerar BIND_VPN_SERVICE så att systemet kan binda till den. Operativt utför appen routingarbetet. Samtycket kommer från personen som håller enheten, i en dialog som namnger appen, och att återkalla det senare är en stödd åtgärd.
Apples plattformar uttrycker samma idé genom ett nätverkstillägg plus ett installationsgodkännande i stället för en behörighetsskärm. Windows använder en drivrutin för en virtuell adapter och en prompt om förhöjda rättigheter. Två former, en betydelse: det här programmet får hantera paket. Inget i det godkännandet omfattar att läsa din adressbok eller att utfärda en egen certifikatmyndighet.
Extra åtkomst är ett separat beviljande med separata effekter. En routingklient som vill ha det behöver en egen motivering.
Där de extra begärandena behöver sin egen historia
En tillgänglighetstjänst kan läsa skärminnehåll och agera å dina vägnar, vilket ligger långt utanför routing. Enhetsadministration kan upprätthålla låspolicyer och radera data. Ett användarinstallerat rotcertifikat låter den som har motsvarande nyckel läsa trafik som TLS annars skulle skydda.
Vilket som helst av dessa kan vara legitimt. Produkter för hanterade enheter och föräldrakontroll kan behöva policysbefogenheter, och ett supportverktyg kan behöva tillgänglighet för att leda dig genom inställningarna.
Kravet är spårbarhet: begäran pekar på en namngiven funktion, och den funktionen syns i produkten du installerade. En kontaktbegäran utan en kontaktyta har ingenting att förklara. Krypteringsargumentet överförs inte heller, eftersom skydd av paket inte säger något om vilka dina vänner är. En legitim produkt kan ändå begära för mycket via ett medföljande bibliotek, och det är en brist att ta upp, inte ett brott att anmäla.
Anteckna begäran och funktionen den hör till, besluta sedan. Den anteckningen är också det du visar supporten när en funktion går sönder efter ett avslag.
Att läsa begäran på enheten
Butikslistningen beskriver avsikten, medan det installerade paketet beskriver verkligheten. Fråga pakethanteraren vad som deklarerats och vad som beviljats innan du godkänner något annat. Paret spelar störst roll när en listning och ett manifest inte stämmer.
Två kommandon täcker det mesta:
adb shell dumpsys package com.example.vpn | grep -E "requested permissions|install permissions" -A 30 adb shell cmd appops get com.example.vpn
Det första listar deklarerade mot beviljade behörigheter, och det är jämförelsen som avslöjar ett för brett manifest. Det andra visar app-ops vid körning, inklusive särskilda åtkomster som aldrig visas som vanliga behörigheter. Där utvecklarverktyg saknas, läs samma fakta på plattformens inställningsskärmar.
De skärmarna tar en minut och kräver ingen programvara. Tillgänglighet, enhetsadministration och certifikatlagring listar var för sig apparna som har beviljandet.
Att besluta och sedan begränsa skadan
Ge nätverksgodkännandet till en klient du valde, och behandla varje extra begäran som ett eget beslut. Neka dem utan en matchande funktion och se vad som går sönder. En routingklient som misslyckas när kontaktåtkomst nekas bad aldrig om kontakter å dina vägnar.
Att återkalla en behörighet stänger vanligtvis av en enda funktion utan att avinstallera appen eller riva ner varje profil. Anslut igen efteråt och bekräfta att tunneln fortfarande upprättas.
Skilj på de två frågorna som en dialog tenderar att slå ihop: vad programmet får göra på enheten, och vad dess operatör gör med trafiken när tunneln är uppe. Den första besvaras här. Den andra kräver en lagringspolicy, och ingen dialog levererar en.