Ir-root mhuwiex dak li jippermetti lill-app VPN Android iġġorr it-traffiku, timblokka l-infiq jew tippersisti wara restard. In-nies jiġbru dan kollu bħala „l-app għandha l-permess VPN“, li jaħbi tliet mekkaniżmi separati: kunsens mogħti mill-utent, interface tal-pakketti li s-sistema tistabbilixxi, u politika tal-imblukkar tal-pjattaforma li mhix tal-app biex tiddefiniha. Li tirrevedi disinn VPN Android ifisser li tistaqsi fuq liema mit-tlieta tassew tistrieħ xi stqarrija, għax kull wieħed għandu sid differenti u mod ta' falliment differenti.

Il-kunsens jiġi permezz ta' attività tas-sistema

VpnService.prepare() ma jagħti xejn. Dan jirritorna intent lill-attività tal-kunsens tas-sistema meta jkun nieqes il-kunsens, u l-app tniedi dak id-djalogu biex l-utent japprova s-servizz. Li tibda l-proċess tal-app innifisha, li żżid permess fil-manifest, jew li turi skrin personalizzat „ixgħel il-VPN“ ma joħloqx il-permess.

Il-permess huwa wkoll limitat fl-ambitu. Huwa jappartjeni lil pakkett fi profil tal-utent, għalhekk il-kopja personali u l-kopja tax-xogħol huma deċiżjonijiet separati, u s-sid tat-tagħmir jista' jipprepara profil ġestit b'mod differenti minn wieħed personali. Jekk id-djalogu qatt ma jidher u prepare() jirritorna null, il-kunsens diġà jeżisti għal dak il-pakkett f'dak il-profil; dan mhuwiex prova li l-app hija affidabbli, biss li l-permess hemm.

L-interface hija talba li s-sistema tissodisfa

Wara l-kunsens, l-app tiddeskrivi x'tirid bl-VpnService.Builder: indirizzi, rotot, servers DNS, MTU u, fejn appoġġjat, l-applikazzjonijiet li għandhom jiġu inklużi jew esklużi. establish() jitlob lis-sistema toħloq l-interface tal-mina u ddawwar it-traffiku li jaqbel fiha. Is-sistema tippossjedi d-deċiżjoni tar-routing; l-app tirċievi d-deskrittur tal-fajl u mbagħad trid tagħmel xi ħaġa utli bil-pakketti.

What you observeWho actually owns it
VPN consent dialogThe system, triggered by prepare()
Routes, DNS and app listsThe app requests them; the system applies them
One active VPN per profileThe platform; a new service replaces the old one
Always-on and block-without-VPNDevice policy enforced by the platform

Dik it-tabella hija l-arkitettura f'post wieħed. L-app tipparteċipa fl-immaniġġjar tal-pakketti; m'għandhiex l-interface, it-tabella tar-routing jew l-għadd ta' servizzi li jistgħu jaħdmu.

Is-socket tal-mina trid taħrab mill-mina tagħha

Il-konnessjoni li ġġorr it-traffiku kriptat hija nnifisha socket. Jekk tiġi ddawwra lura fl-interface li l-app għadha kif ħolqot, il-mina tiddependi fuq il-mina u tieqaf. VpnService.protect() jorbot dak is-socket man-netwerk ta' taħt biex jevita l-qbid, u għalhekk klijent korrett jipproteġi s-socket ta' barra tiegħu qabel l-ewwel handshake.

adb shell dumpsys connectivity | grep -i -A5 vpn
adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown

Dawn il-kmandi juru n-netwerk VPN installat, il-pakkett dejjem mixgħul u jekk huwiex issettjat il-lockdown. Dawn huma osservazzjonijiet ta' qari biss: jekk il-valuri ma jaqblux ma' dak li tiddikjara d-disinn, l-istqarrija hija dwar l-interface tal-app u mhux dwar l-istat tas-sistema.

L-imblukkar jista' jkun tal-pjattaforma

Android jiddokumenta politika li timblokka konnessjonijiet li ma jużawx il-VPN. Dak l-infurzar huwa kuntratt tal-pjattaforma, mhux app li terġa' tipprova konnessjonijiet f'linja. Is-swiċċ jinsab fis-settings tal-VPN tat-tagħmir bħala Imblokka konnessjonijiet mingħajr VPN, u fuq tagħmir ġestit is-sid jista' jixgħelha għall-profil kollu. Id-differenza tgħodd meta tevalwa stqarrija tal-marketing: klijent jista' juri ikona ta' katnazz u jerġa' jikkonnettja b'mod aggressiv waqt li t-traffiku dirett għadu possibbli, jew l-apps koperti jistgħu jibqgħu offline għax is-sistema tinforza l-lockdown.

L-ikona tal-katnazz tinġibed mill-app, għalhekk turi biss li l-app temmen li hija konnessa. Jekk app oħra titlef l-aċċess għan-netwerk tiddeċidiha l-pjattaforma, għalhekk il-verifika utli hija li tara dik l-app tfalli waqt li l-mina hija attiva.

Anki t-tikketta „dejjem mixgħul“ mill-ħanut tal-apps ma tissostitwix dak il-kuntratt. Dejjem mixgħul u lockdown huma settings tat-tagħmir, spiss applikati mis-sid, u l-imġiba tagħhom għall-apps esklużi tiddefiniha l-pjattaforma. Aqra s-setting, mhux il-badge.

Erba' mistoqsijiet għal reviżjoni tad-disinn

L-ewwel, min ta l-kunsens: liema pakkett, liema profil, u kien l-utent jew politika ta' tagħmir ġestit? It-tieni, x'talbet l-app: liema rotot, liema familji ta' indirizzi, liema apps inklużi jew esklużi? It-tielet, x'jiġri meta l-mina mhijiex disponibbli: is-sistema timblokka, jew it-traffiku jaqa' lura għan-netwerk ta' taħt? Ir-raba', x'tagħmel l-app bil-pakketti li tirċievi?

Ir-raba' mistoqsija hija dik li l-mudell tal-permessi ma jistax iwieġeb. Il-kunsens u interface TUN juru li l-app tista' tirċievi traffiku, mhux li tikkriptah, tawtentika sieħeb jew tirkupra b'mod nadif. Dawk huma proprjetajiet tal-implimentazzjoni, u hemmhekk reviżjoni onesta tqatta' ħinha.

Talba root bla bżonn ma ssirx leġittima billi r-riżultat jissejjaħ kill switch, u djalogu tal-kunsens mhuwiex verifika tas-sigurtà. Żomm it-tliet permessi separati u kull stqarrija ssir verifikabbli.

Artikli relatati