Kill switch za posamezne aplikacije se sliši kot previdna izbira: ko tunel pade, omrežje izgubi le delovni odjemalec, vse drugo pa deluje naprej. Potem nekdo opazi, da je osebni brskalnik vseeno naložil stran, da je pomočnik za sinhronizacijo iz istega paketa še naprej poskušal, in da se je predpomnjeno ime še vedno razreševalo na naslov, ki se tunela ni nikoli dotaknil. Oznaka na funkciji in množica povezav, ki jih resnično ščiti, sta dve različni stvari. Najprej določite zaščiteno množico, ker prav ta množica odloči, ali je pošten opis izvajanje po posameznih aplikacijah ali zaklep celotne naprave.

Začnite z množico, ne z oznako

Politika za posamezne aplikacije ščiti izbrane aplikacije. Zaklep naprave cilja na širšo omrežno mejo, običajno z dokumentiranimi izjemami za lokalno tiskanje, upravljalni promet ali captive portale. Nobena oznaka ni popolna, dokler ne morete odgovoriti na tri vprašanja: kaj se zgodi z izključenimi aplikacijami, kaj se zgodi s pomočniki, ki jih te aplikacije zaženejo, in kaj se zgodi s povezavami, odprtimi, ko zaščita ni na voljo.

Te odgovore zapišite, preden se dotaknete katere koli nastavitve odjemalca. Če je zahteva "ta plačilni odjemalec ne sme nikoli govoriti z internetom zunaj tunela, moj brskalnik pa sme", je množica majhna in izvajanje po posameznih aplikacijah ustreza. Če je zahteva "nič na tej napravi ne doseže interneta brez zaščite, razen storitve za posodobitve", nobena politika za posamezne aplikacije tega ne bo ustvarila, ker so problem aplikacije, ki jih niste imenovali.

Izvajanje po posameznih aplikacijah se ujema z identifikatorji, ne z imeni programov

Android ponuja VPN za posamezne aplikacije prek paketov, njegova dokumentacija VpnService pa opisuje, kako to deluje skupaj z načinom vedno vklopljeno in blokiranjem. iOS nastavi VPN za posamezne aplikacije prek upravljalnega profila in se ujema po aplikaciji ali po domeni. Windows in Linux nimata nobene poti po procesu, zato se ista zamisel približa s pravilom požarnega zidu, omejenim na program, ali s pravilom, ki se ujema z lastnikom uporabnikom.

Meja je identifikator in identifikatorje je lahko obiti. Aplikacija, ki URL preda sistemskemu brskalniku ali odpre dokument v pregledovalniku, preide v proces, ki ga vaša politika ni nikoli imenovala. Možnost zaključka ob padcu tudi ni paketni filter: ubije aplikacijo, ki ste jo nastavili, medtem ko lahko podrejeni proces, delavec čakalne vrste ali zavihek brskalnika ohrani obstoječi socket živ.

Zaklep pokriva, česar politika za posamezne aplikacije ne vidi

Zaklep celotne naprave odvzame izbiro. Vsak odhodni paket, ki ne pripada tunelu, se zavrže, vključno s prometom procesov, za katere vaša politika aplikacij ni nikoli vedela. V Androidu je to VPN z vedno vklopljenim načinom v kombinaciji z nastavitvijo za blokiranje povezav, izvajanje pa poteka v sistemu, ne v oknu odjemalca. Na namizju je to trajno pravilo požarnega zidu ali privzeta pot proti nedosegljivim vratom.

Cena je, da se vse drugo ustavi, zato izjeme postanejo del zasnove in ne poznejša misel. Lokalni tiskalniki, odkrivanje storitev, prijava na captive portale, upravljalni agenti in posodobitve OS vsak potrebujejo dokumentirano luknjo, ker je vsak pot, ki ostane odprta, ko tunel ne deluje. Zaklep je le toliko močan, kolikor je najkrajši vnos na tem seznamu.

DNS, IPv6 in pomočniki v ozadju skrivajo uhajanja

To, da zaščitena aplikacija ne more razrešiti imena, ne dokazuje, da so predpomnjeni odgovori ali neposreden IP promet blokirani. Če je razreševalnik zunaj tunela še dosegljiv, se ime razreši in povezava spodleti, kar je videti kot delujoč kill switch in ni. Še huje, predpomnjen zapis lahko kaže na naslov, ki ga tunel ne prenaša, zato povezava odide neposredno, medtem ko aplikacija poroča napako VPN.

IPv6 potrebuje svoje pravilo na vsaki platformi, ki ga izvaja, ker pravilo zavrženja za v4 ne pokriva poti v6. Na mobilnem napravah lahko nastavitev zasebnega DNS premakne razreševanje v šifriran kanal, ki ga politika naprave ne pregleduje. In pomočniki v ozadju so običajni krivec na namizju: proces za posodobitve ali sinhronizacijo v pladnju se zažene pred odjemalcem VPN in obdrži svojo povezavo, zato nikoli ne vidi spremenjene poti.

Preizkusite tri aplikacije in dva prehoda

TestWhat it proves
Included app, by name and by direct IPthe policy is applied, not just the resolver
Excluded app, same checksthe exclusion is intentional and documented
Helper or updater processnothing inherited an older route
Tunnel drop, then Wi-Fi to cellularthe block survives the transition

Zaženite vsako vrstico dvakrat, enkrat z imenom gostitelja in enkrat z dobesednim naslovom, in še enkrat prek IPv6, če omrežje to ponuja. Uspeh pomeni, da se je vključena aplikacija ustavila, izključena se je vedla, kot ste zapisali, pomočnik pa ni ušel. Zapišite neposredno vedenje, ki ste ga ocenili kot sprejemljivo, da bo naslednji skrbnik lahko ločil namerno izjemo od okvare.

Nato rezultat opišite v enem stavku, ki poimenuje aplikacije in pogoje, na primer: plačilni odjemalec nima poti zunaj tunela, brskalnik je neposreden po zasnovi, vse drugo pa se ustavi, ko tunel ne deluje. Če je ta stavek težko napisati, so politike še vedno dve politiki, ki se borita druga proti drugi.

Sorodni članki