Twa Android-dialogen wurde hieltyd trochinoar helle: de VPN-tastimmingsoantrêd en de tastimmings dy't in app foar dyn gegevens oanfreget. De earste jout in netwurkposysje oer, it plak dêr't pakketten lêzen en oerskreaun wurde kinne. De twadde jout bewarre ynhâld oer dy't Android app foar app beskermet. As jo se as ien ding behannelje, oerdriuwe jo itsij wat in tunnel sjen kin, itsij ûnderskatte jo slim wat in fêstberne app de folgjende kear freegje sil.

Wat de tastimmingdialooch echt oerjout

In app dy't VpnService ymplementearret en BIND_VPN_SERVICE ferklearret, freget it systeem om de VPN fan it apparaat te wurden. Nei goedkarring makket it ramt in tun-ynterface oan en jout de app dêrfoar in triemdeskriptor. Alles wat de app dêrnei docht, rint troch dy deskriptor: hy lêst IP-pakketten út, beslút wat der mei te dwaan en skriuwt pakketten werom nei binnen.

De omfang fan dy ynterface is eksplisyt. Rûtes beslute hokker bestimmingen fongen wurde, en addAllowedApplication of addDisallowedApplication beslút hokker apps der fieding oan jouwe. In per-app VPN dy't twa apps listet, sjocht de rest fan it apparaat net.

Dat is in tastimming op pakketnivo, net op gegevensnivo. De tsjinst sjocht de bytes dy't in app oan de netwurkstapel oerjout, adressearre oan in bestimming. Hy krijt gjin tagong ta de private opslach fan de ferstjoerende app, ta har databasetriemmen of ta har ûntsifere ûnthâld. Triemmen dy't in app yn syn eigen sânbak bewarre hat, bliuwe krekt like dreech te lêzen as earder.

Wêr't it pakketbyld ophâldt

TLS docht noch altyd syn wurk binnen de tunnel, want de hânskudding rint tusken de app en de tsjinner, net tusken de app en de VPN. De VPN stjoert siferttekst troch dy't er sûnder de sesjekaaien net ûntsiferje kin. Dêrom iepenbieret in tunnel allinnich net de ynhâld fan in HTTPS-side of in beskerme mailsesje.

De metadata om de siferttekst hinne is in oar ferhaal, en hjirre falt it measte fan 'e selsfertroude bewearings útinoar. Bestimmings-IP, poarte, pakketgrutten en timing binne allegear sichtber, plus de tsjinnernamme yn 'e TLS ClientHello, dy't normaal sels ûnder TLS 1.3 iepen ferstjoerd wurdt. Encrypted Client Hello feroaret dat, mar it is net algemien. Gewoane DNS lekket nammen like maklik as fragen ûnfersterke nei bûten geane.

Aldere of ferkeard konfigurearre protokollen jouwe mear oer. Gewoane HTTP, IMAP sûnder TLS en in oantal spul- en IoT-protokollen lizze har lading bleat foar alles wat de tun-deskriptor hat.

De tastimmings dy't nea meikomme

In VPN goedkarre is gjin goedkarring foar kontakten, SMS, foto's of de mediabank. Dat binne aparte tastimmings by it útfieren, elk mei syn eigen dialooch en syn eigen ynlûkpaad op 'e ynstellingsside fan 'e app. In VPN-klant dy't dyn skiednis fan oproppen wol, moat dêrom freegje lykas elke oare app, en do kinst wegerje wylst do de tunnel hâldst.

It ynstallearjen fan sertifikaten is dejinge om op te passen, want it liket diel fan 'e VPN-ynstelling en is it net. In brûkers-CA yn it bewiisopslach ynstallearje feroaret hokker sertifikaten Android akseptearje sil, en sûnt Android 7.0 negearret in app dy't rjochte is op API 24 of letter troch brûkers tafoege CA's, útsein as har netwurkfeiligenskonfiguraasje dêrmei ynstimt mei in brûkersfertrouwensanker. In klant dy't op in CA oanstiet, docht miskien legitime bedriuwsôffangst, of hy freget wat de VPN-dialooch nea neamd hat.

Tagong ta berikberens sit noch fierder bûten. In tsjinst mei berikberens oan kin de skermynhâld fan oare apps lêze, wat gjin posysje op pakketnivo jout.

Lokale filter of opôfstânspoarte

Deselde API beslacht twa produkten dy't ferskillende nivo's fan fertrouwen fertsjinje. In brânmuorre of advertinsjeblokkerder op it apparaat nimt de tun-deskriptor en beantwurdet it ferkear lokaal, sûnder it ea nei in tsjinner te stjoeren dy't er sels beheart. In echte tunnel stjoert dy pakketten troch nei in poarte earne oars, en dy operator sjocht deselde metadata fan 'e oare kant en beslút tagelyk wat weromkomt.

In praktyske manier om se te ûnderskieden is dyn iepenbiere adres te kontrolearjen mei de VPN oan en út, en te sjen oft de notifikaasje in opôfstânseinpunt neamt. As it adres nea feroaret, rint it ferkear wierskynlik op it apparaat sels yn it rûntsje.

Beide gefallen binne noch altyd in pakketposysje. It ferskil is wa't der noch mear by de útgong stiet.

Kontrolearje watsto goedkard hast

Iepenje Ynstellingen, dan Netwurk en ynternet, dan VPN, en lês de ynfier yn stee fan it ikoan yn 'e statusbalke. Always-on VPN en Blokkearje ferbiningen sûnder VPN binne apparaatynstellingen dy't de ynterface libben hâlde en lekken ôfsnije; se ferbreedzje neat. Fan itselde skerm kinst it profyl ferjitte en de tastimming ynlûke.

Gean dan de oare tastimmings bylâns. App-ynfo lit sjen hokker tastimmings by it útfieren de klant hat, en de feiligensynstellingen litte sjen oft der tagelyk in brûkerssertifikaat ynstallearre is. Beide kinne apart fuorthelle wurde.

De fraach dy't it antwurdjen wurdich is, is smel: hokker pakketten komme dizze tsjinst yn, wêr geane se hinne, en wat hâldt de ymplemintaasje. Al it oare yn 'e dialooch is lûd. De VpnService-referinsje is de gesachhawwende list fan wat de ynterface bleatleit.

Relatearre artikelen