Два дыялогі Android пастаянна блытаюць: запрос згоды на VPN і запыты дазволаў, якія праграма робіць на вашыя даныя. Першы перадае месца ў сетцы, кропку, дзе пакеты можна чытаць і перапісваць. Другі перадае захаваны змест, які Android ахоўвае асобна для кожнай праграмы. Калі лічыць іх адным і тым жа, то альбо перабольшваецца тое, што можа бачыць тунель, альбо моцна недаацэньваецца тое, што настойлівая праграма папросіць наступным крокам.

Што насамрэч перадае дыялог згоды

Праграма, якая рэалізуе VpnService і абвяшчае BIND_VPN_SERVICE, просіць сістэму стаць VPN прылады. Пасля згоды фрэймворк стварае інтэрфейс tun і выдае праграме файлавы дэскрыптар для яго. Усё, што праграма робіць пасля, ідзе праз гэты дэскрыптар: яна чытае адтуль IP-пакеты, вырашае, што з імі рабіць, і запісвае пакеты назад.

Абсяг гэтага інтэрфейсу вызначаны яўна. Маршруты вырашаюць, якія прызначэнні захопліваюцца, а addAllowedApplication або addDisallowedApplication вырашае, якія праграмы ў яго падаюць. VPN для асобных праграм, які пералічвае дзве праграмы, не бачыць астатнюю частку прылады.

Гэта дазвол на ўзроўні пакетаў, а не на ўзроўні даных. Сэрвіс бачыць байты, якія праграма перадае сеткаваму стэку па адрасе прызначэння. Ён не атрымлівае доступу да прыватнага сховішча праграмы, што адпраўляе, да яе файлаў базы даных або да яе расшыфраванай памяці. Файлы, якія праграма захавала ў сваёй пясочніцы, застаюцца гэткімі ж цяжкімі для чытання, як і раней.

Дзе сканчаецца від на пакеты

TLS па-ранейшаму выконвае сваю работу ўнутры тунеля, бо рукапоціск ідзе паміж праграмай і серверам, а не паміж праграмай і VPN. VPN перасылае шыфраваны тэкст, які не можа расшыфраваць без ключоў сесіі. Менавіта таму адзін тунель не раскрывае змест старонкі HTTPS або абароненай паштовай сесіі.

Метаданыя вакол шыфраванага тэксту — іншая гісторыя, і менавіта тут большасць упэўненых сцвярджэнняў развальваецца. IP прызначэння, порт, памеры пакетаў і час іх адпраўкі ўсё бачныя, плюс імя сервера ў TLS ClientHello, якое звычайна адпраўляецца ў адкрытым выглядзе нават пры TLS 1.3. Encrypted Client Hello гэта змяняе, але яно не ўніверсальнае. Звычайны DNS гэтак жа лёгка выдае імёны, калі запыты выходзяць без шыфравання.

Старыя або няправільна наладжаныя пратаколы перадаюць больш. Звычайны HTTP, IMAP без TLS і шэраг гульнявых пратаколаў ды пратаколаў IoT адкрываюць свае нагрузкі ўсяму, што трымае дэскрыптар tun.

Дазволы, якія ніколі не даюцца разам з ім

Ухваленне VPN не ўхваляе кантакты, SMS, фотаздымкі або медыятэку. Гэта асобныя дазволы часу выканання, кожны са сваім дыялогам і сваім шляхам адклікання на старонцы налад праграмы. VPN-кліент, які хоча ваш журнал выклікаў, павінен папрасіць яго, як і любая іншая праграма, і вы можаце адмовіць, захаваўшы тунель.

Усталяванне сертыфіката — гэта тое, за чым варта сачыць, бо яно выглядае як частка наладкі VPN, але ёй не з'яўляецца. Усталяванне каранёвага сертыфіката карыстальніка ў сховішча ўліковых даных змяняе тое, якія сертыфікаты Android будзе прымаць, а з Android 7.0 праграма, якая нацэлена на API 24 або навейшую версію, ігнаруе дададзеныя карыстальнікам CA, калі яе канфігурацыя сеткавай бяспекі не ўключае давяральны якар карыстальніка. Кліент, які настойвае на CA, можа займацца законным карпаратыўным перахопам, а можа прасіць нешта, пра што дыялог VPN зусім не згадваў.

Доступ да сродкаў даступнасці знаходзіцца яшчэ далей. Сэрвіс з уключанай даступнасцю можа чытаць змест экрана іншых праграм, чаго не дае ніякае месца на ўзроўні пакетаў.

Лакальны фільтр або аддалены шлюз

Тое ж API ахоплівае два прадукты, якія заслугоўваюць рознага ўзроўню даверу. Файрвол або блакавальнік рэкламы на прыладзе бярэ дэскрыптар tun і адказвае на трафік лакальна, ніколі не адпраўляючы яго на сервер, якім ён кіруе. Сапраўдны тунель перасылае гэтыя пакеты на шлюз у іншым месцы, і гэты аператар бачыць тыя ж метаданыя з іншага канца, а таксама вырашае, што вернецца.

Практычны спосаб адрозніць іх — праверыць свой публічны адрас з уключаным і выключаным VPN і паглядзець, ці называе апавяшчэнне аддалены канчатковы пункт. Калі адрас ніколі не змяняецца, трафік, хутчэй за ўсё, круціцца ўнутры прылады.

Абодва выпадкі ўсё яшчэ месца на ўзроўні пакетаў. Розніца ў тым, хто яшчэ стаіць на выхадзе.

Праверце, што вы ўхвалілі

Адкрыйце Налады, затым Сетка і інтэрнэт, затым VPN, і чытайце запіс, а не значок у радку стану. Пастаянны VPN і Блакаваць злучэнні без VPN — гэта налады прылады, якія трымаюць інтэрфейс жывым і адсякаюць уцечкі; яны нічога не пашыраюць. З таго ж экрана вы можаце забыць профіль і адклікаць дазвол.

Затым прайдзіце па іншых дазволах. Звесткі пра праграму паказваюць, якія дазволы часу выканання мае кліент, а Налады бяспекі паказваюць, ці быў адначасова ўсталяваны сертыфікат карыстальніка. Любы з іх можна выдаліць незалежна.

Пытанне, на якое варта адказаць, вузкае: якія пакеты ўваходзяць у гэты сэрвіс, куды яны ідуць і што захоўвае рэалізацыя. Усё астатняе ў дыялогу — шум. Даведнік па VpnService — гэта аўтарытэтны пералік таго, што адкрывае інтэрфейс.

Падобныя артыкулы