Aplikacja VPN prosi o kontakty i ułatwienia dostępu: na co pozwolić
VPN potrzebuje jednego upoważnienia sieciowego. Ułatwienia dostępu, kontakty i instalacja certyfikatu wymagają własnego uzasadnienia, którego funkcja routingu nie zapewni.
Instalator prosi o dostęp do sieci, a następnie o kontakty, ułatwienia dostępu i instalację certyfikatu. Tylko pierwsza prośba należy do zadania. Drugi ekran to miejsce, w którym zapada rzeczywista decyzja.
Oceniaj każdą prośbę względem funkcji, którą wybrałeś, na platformie, której używasz. Żadna uniwersalna lista uprawnień nie obejmuje każdego produktu VPN, a długa lista sama w sobie niczego nie dowodzi.
Jedno uprawnienie, którego to zadanie naprawdę potrzebuje
Android prosi użytkownika o zatwierdzenie usługi VPN w oknie systemowym, zanim zacznie się jakikolwiek tunel, a usługa aplikacji deklaruje BIND_VPN_SERVICE, aby system mógł się do niej przywiązać. Operacyjnie aplikacja wykonuje pracę routingu. Zgodę wyraża osoba trzymająca urządzenie, w oknie, które nazywa aplikację, a późniejsze jej wycofanie jest obsługiwanym działaniem.
Platformy Apple wyrażają tę samą ideę przez rozszerzenie sieciowe plus zatwierdzenie instalacji, a nie przez ekran uprawnień. Windows używa sterownika wirtualnego adaptera i monitu o podniesienie uprawnień. Dwa kształty, jedno znaczenie: ten program może obsługiwać pakiety. Nic w tym upoważnieniu nie obejmuje czytania książki adresowej ani wydania sobie certyfikatu urzędu certyfikacji.
Dodatkowy dostęp to odrębne uprawnienie o odrębnych skutkach. Klient routingu, który go chce, potrzebuje własnego uzasadnienia.
Gdzie dodatkowe prośby potrzebują własnej historii
Usługa ułatwień dostępu może czytać zawartość ekranu i działać w Twoim imieniu, co wykracza daleko poza routing. Administracja urządzeniem może egzekwować zasady blokady i usuwać dane. Certyfikat główny zainstalowany przez użytkownika pozwala temu, kto ma pasujący klucz, czytać ruch, który TLS chroniłby w innym razie.
Każde z nich może być uzasadnione. Produkty do zarządzanych urządzeń i kontroli rodzicielskiej mogą potrzebować uprawnień polityki, a narzędzie wsparcia może potrzebować ułatwień dostępu, aby przeprowadzić Cię przez ustawienia.
Wymogiem jest identyfikowalność: prośba wskazuje nazwaną funkcję, a ta funkcja jest widoczna w produkcie, który zainstalowałeś. Prośba o kontakty bez ekranu zwróconego ku kontaktom nie ma nic do wyjaśnienia. Argument o szyfrowaniu też nie przechodzi, bo ochrona pakietów nie mówi nic o tym, kim są Twoi znajomi. Uzasadniony produkt nadal może prosić o zbyt wiele przez dołączoną bibliotekę, a to jest wadą do zgłoszenia, nie przestępstwem do zawiadomienia.
Zapisz prośbę i funkcję, do której prowadzi, a potem zdecyduj. Ta notatka to także to, co pokazujesz wsparciu, gdy funkcja przestaje działać po odmowie.
Czytanie prośby na urządzeniu
Wpis w sklepie opisuje intencję, a zainstalowany pakiet opisuje rzeczywistość. Zapytaj menedżera pakietów, co zadeklarowano i co przyznano, zanim zatwierdzisz cokolwiek innego. Ta para ma największe znaczenie, gdy wpis i manifest się nie zgadzają.
Dwa zapytania obejmują większość z tego:
adb shell dumpsys package com.example.vpn | grep -E "requested permissions|install permissions" -A 30 adb shell cmd appops get com.example.vpn
Pierwsze wymienia zadeklarowane uprawnienia wobec przyznanych, i to jest porównanie, które ujawnia zbyt szeroki manifest. Drugie pokazuje app-ops w czasie działania, w tym specjalne dostępy, które nigdy nie pojawiają się jako zwykłe uprawnienia. Gdzie narzędzia deweloperskie są niedostępne, odczytaj te same fakty z ekranów ustawień platformy.
Te ekrany zajmują minutę i nie wymagają oprogramowania. Ułatwienia dostępu, administracja urządzeniem i magazyn certyfikatów każdy z osobna wymienia aplikacje, które mają uprawnienie.
Decyzja, a potem ograniczenie szkód
Przyznaj upoważnienie sieciowe wybranemu klientowi, a każdą dodatkową prośbę traktuj jako własną decyzję. Odrzuć te bez pasującej funkcji, a potem zobacz, co się psuje. Klient routingu, który zawodzi, gdy odmówiono mu dostępu do kontaktów, nigdy nie prosił o kontakty w Twoim imieniu.
Wycofanie jednego uprawnienia zwykle wyłącza jedną funkcję bez odinstalowywania aplikacji czy rozbierania każdego profilu. Połącz się ponownie i potwierdź, że tunel nadal się nawiązuje.
Oddziel dwa pytania, które okno zwykle łączy: co ten program może robić na urządzeniu i co jego operator robi z ruchem, gdy tunel jest już podniesiony. Na pierwsze odpowiada się tutaj. Drugie wymaga zasady przechowywania, a żadne okno jej nie dostarcza.