Android-VPN teen app-toestemmings: wat die waarskuwing beteken
Die Android-VPN-toestemmingsvenster gee 'n pakketposisie, nie toegang tot jou e-pos, foto's of kontakte nie. Hier is waar daardie grens werklik lê.
Twee Android-vensters word heeltyd deurmekaar gehanteer: die VPN-toestemmingsvenster en die toestemmings wat 'n app vir jou data vra. Die eerste gee 'n netwerkposisie oor, die plek waar pakkette gelees en herskryf kan word. Die tweede gee gestoorde inhoud oor wat Android app vir app beskerm. Om hulle as een ding te behandel, oordryf óf wat 'n tonnel kan sien, óf dit onderskat ernstig wat 'n vasbeslote app volgende sal vra.
Wat die toestemmingsvenster werklik oordra
'n App wat VpnService implementeer en BIND_VPN_SERVICE verklaar, vra die stelsel om die toestel se VPN te word. Na goedkeuring skep die raamwerk 'n tun-koppelvlak en gee die app 'n lêerhandle daarvoor. Alles wat die app daarna doen, vloei deur daardie handle: dit lees IP-pakkette uit, besluit wat om daarmee te doen en skryf pakkette terug in.
Die omvang van daardie koppelvlak is eksplisiet. Roetes bepaal watter bestemmings vasgevang word, en addAllowedApplication of addDisallowedApplication bepaal watter apps daaraan voer. 'n per-app VPN wat twee apps lys, sien nie die res van die toestel nie.
Dit is 'n toestemming op pakketvlak, nie op datavlak nie. Die diens sien die grepe wat 'n app aan die netwerkstapel oorhandig, geadresseer aan 'n bestemming. Dit kry geen toegang tot die app se private berging, sy databasislêers of sy ontsleutelde geheue nie. Lêers wat 'n app in sy eie sandput gestoor het, bly net so moeilik leesbaar soos voorheen.
Waar die pakketbeeld ophou
TLS doen steeds sy werk binne die tonnel, want die handshake loop tussen die app en die bediener, nie tussen die app en die VPN nie. Die VPN stuur syferteks aan wat dit nie sonder die sessiesleutels kan ontsleutel nie. Daarom openbaar 'n tonnel alleen nie die inhoud van 'n HTTPS-bladsy of 'n beskermde e-posessie nie.
Die metadata rondom die syferteks is 'n ander storie, en dit is waar die meeste selfversekerde bewerings uitmekaarval. Bestemmings-IP, poort, pakketgroottes en tydsberekening is alles sigbaar, plus die bedienernaam in die TLS ClientHello, wat gewoonlik in die ope lug gestuur word selfs onder TLS 1.3. Encrypted Client Hello verander dit, maar dit is nie algemeen nie. Gewone DNS lek name net so maklik wanneer navrae onversleuteld uitgaan.
Ouer of verkeerd opgestelde protokolle gee meer oor. Gewone HTTP, IMAP sonder TLS en 'n aantal speletjie- en IoT-protokolle stel hul vragte bloot aan enigiets wat die tun-handle het.
Die toestemmings wat nooit daarmee kom nie
Om 'n VPN goed te keur, keur nie kontakte, SMS, foto's of die mediastoor goed nie. Dit is afsonderlike looptydtoestemmings, elk met sy eie venster en sy eie herroepingspad in die app se instellingsbladsy. 'n VPN-kliënt wat jou oproeplog wil hê, moet daarvoor vra soos enige ander app, en jy kan weier terwyl jy die tonnel behou.
Sertifikaatinstallasie is die een om dop te hou, want dit lyk soos deel van VPN-opstelling en is nie. Om 'n gebruiker-CA in die geloofsbriewestoor te installeer, verander watter sertifikate Android sal aanvaar, en sedert Android 7.0 ignoreer 'n app wat op API 24 of later teiken gebruiker-bygevoegde CA's, tensy sy netwerksekuriteitskonfigurasie met 'n gebruiker-vertrouensanker ingeskakel het. 'n Kliënt wat op 'n CA aandring, doen moontlik wettige ondernemingsonderskepping, of hy vra vir iets wat die VPN-venster nooit genoem het nie.
Toeganklikheidstoegang sit nog verder uit. 'n Diens met toeganklikheid geaktiveer kan die skerminhoud van ander apps lees, wat geen posisie op pakketvlak bied nie.
Plaaslike filter of afgeleë poort
Dieselfde API dek twee produkte wat verskillende vlakke van vertroue verdien. 'n Brandmuur of advertensieblokkeerder op die toestel neem die tun-handle en beantwoord die verkeer plaaslik, en stuur dit nooit na 'n bediener wat hy bedryf nie. 'n Ware tonnel stuur daardie pakkette na 'n poort elders, en daardie operateur sien dieselfde metadata van die ander kant af terwyl hy ook besluit wat terugkom.
'n Praktiese manier om hulle te onderskei is om jou publieke adres met die VPN aan en af te kontroleer, en te kyk of die kennisgewing 'n afgeleë eindpunt noem. As die adres nooit verander nie, loop die verkeer waarskynlik op die toestel self terug.
Albei gevalle is steeds 'n pakketposisie. Die verskil is wie anders by die uitgang staan.
Ouditeer wat jy goedgekeur het
Maak Instellings oop, dan Netwerk en internet, dan VPN, en lees die inskrywing eerder as die ikoon in die statusbalk. Altyd-aan VPN en Blokkeer verbindings sonder VPN is toestelinstellings wat die koppelvlak lewendig hou en lekke afsny; hulle verbreed niks nie. Vanaf dieselfde skerm kan jy die profiel vergeet en die toestemming herroep.
Gaan dan die ander toestemmings na. App-inligting wys watter looptydtoestemmings die kliënt het, en Sekuriteitsinstellings wys of 'n gebruiker-sertifikaat terselfdertyd geïnstalleer is. Enigeen van die twee kan onafhanklik verwyder word.
Die vraag wat werd is om te antwoord, is eng: watter pakkette kom hierdie diens binne, waarheen gaan hulle, en wat hou die implementering. Alles anders in die venster is geraas. Die VpnService-verwysing is die gesaghebbende lys van wat die koppelvlak blootstel.