Маркер VPN на прыладзе ці адрас выхаду: што з гэтага што даказвае?
Сеткавы маркер, прачытаны на прыладзе, і адрас, які бачыць сервер, — розныя доказы. Вызначце, які з іх патрэбны менавіта вашаму пытанню.
Прыкладанне на тэлефоне і аддалены сервер пачынаюць з розных фактаў, і ніводзін не можа пазычыць факты іншага. Прыкладанне можа спытаць у аперацыйнай сістэмы пра сетку, якую яно выкарыстоўвае, а вось сервер ведае толькі тое, што прыходзіць па злучэнні. Калі вы запускаеце ўласную канчатковую кропку, яна перапісвае другі бок і пакідае першы нязменным. Які з іх адкажа на ваша пытанне, залежыць ад самога пытання.
Дзве кропкі назірання, два віды доказаў
Лакальныя доказы апісваюць прыладу. Яны ахопліваюць інтэрфейс, які нясе трафік, транспарт, які паведамляе платформа, і тое, што можа запытаць прыкладанне. Аддаленыя доказы апісваюць злучэнне: адрас крыніцы, пратакол, час і ўсё, што прыкладанне вырашыць адправіць. Ні адна кропка назірання не ўтрымлівае іншую цалкам.
Змешванне двух дае сцвярджэнні, якія гучаць дакладна і не паддаюцца праверцы. Маркер даказвае нешта пра сеткавы аб'ект на прыладзе, а не пра тое, як аддаленая служба класіфікуе запыт.
Перш чым спрачацца пра выяўленне, запішыце, якой кропкі тычыцца пытанне. Пытанне ў тым, ці можа пэўнае прыкладанне ўбачыць, што тунель актыўны, ці ў тым, ці можа служба вывесці, адкуль прыйшоў запыт? Гэта асобныя даследаванні, і адказ на адно нічога не гаворыць пра другое.
Што можа паведаміць лакальны інтэрфейс платформы
Android прапануе пэўны маркер. Аб'ект NetworkCapabilities можа паведамляць пра TRANSPORT_VPN, а hasTransport правярае, ці прысутнічае гэты транспарт на аб'екце. Прыкладанне атрымлівае аб'ект ад службы злучнасці і чытае яго з улікам дазволу на стан сеткі.
Вынік — лакальная інфармацыя платформы, а не запыт да дыяпазонаў адрасоў пастаўшчыка. Яна апісвае сетку, якую выкарыстоўвае прыкладанне.
Важныя два абмежаванні. Правіла split-tunnel, якое выключае прыкладанне, можа даць на тым жа тэлефоне іншы адказ, чым бачыць калега, бо прыкладанне можа быць прывязана да іншага месца. Маркер існуе таксама таму, што АС мадэлюе VPN-інтэрфейсы, а не таму, што яго збірае пэўнае прыкладанне. Ці чытае прыкладанне гэтае поле, ці перадае яго далей, ці ігнаруе — гэта ўласцівасць менавіта гэтага прыкладання. Яго маніфест і дакументацыя — адзіная надзейная крыніца для гэтага пытання.
adb shell dumpsys connectivity | grep -i -m5 vpn
Што можа бачыць аддаленая служба
Сервер бачыць адрас крыніцы злучэння, транспарт і час, і ён можа ўзбагаціць адрас данымі рэестра або маршрутызацыі. Ён таксама можа атрымаць усё, што адпраўляе прыкладанне, у тым ліку месцазнаходжанне, калі прыкладанне просіць яго і карыстальнік згаджаецца. Гэтыя каналы асобныя, і толькі адзін з іх падобны на запыт адраса.
Адрас, зарэгістраваны на хастынг-правайдэра, наводзіць на тунель, а зарэгістраваны ў жылой сетцы — на хатняе злучэнне. Абодва — статыстычныя намёкі, а не факты пра прыладу.
Жылы адрас не змяшчае чалавека па гэтым адрасе, а хастынг-адрас не называе аператара ці краіну. Служба, якая прымае выснову за пэўнасць, часам будзе памыляцца, не маючы магчымасці гэтага выявіць. Калі патрабуецца надзейнасць, а не эўрыстыка, даныя адрасоў не могуць яе даць, і праект, які гэта прызнае, сумленнейшы за той, які хавае здагадку.
| Доказ | На што адказвае | Чаго не можа паказаць |
|---|---|---|
| Лакальны маркер транспарту | Ці з'яўляецца гэты сеткавы аб'ект VPN | Хто кіруе выхадам або дзе знаходзіцца прылада |
| Аддалены адрас крыніцы | Які адрас дасягнуў службы | Ці нясе прылада таксама тунель |
| Карысная нагрузка прыкладання | Што прыкладанне вырашыла адправіць | Усё, што прыкладанне не адправіла |
Чаму ўласны выхад змяняе толькі адзін бок
Запуск уласнай канчатковай кропкі змяняе адрас крыніцы, які бачыць аддаленая служба, і гэта можа вывесці яго за дыяпазоны, якія служба звязвае з камерцыйнымі правайдэрамі. У лакальнай мадэлі сеткі нічога не змяняецца, бо тунель застаецца тунелем, і АС па-ранейшаму паведамляе пра яго.
Адзін бок доказаў рухаецца, другі застаецца нерухомым. Разрыў паміж імі — месца, дзе ламаюцца чаканні.
Браўзер — трэці выпадак са сваімі інтэрфейсамі і абмежаваннямі. Вэб-кантэнт не можа чытаць натыўны аб'ект магчымасцяў, і ставіцца да функцыі мабільнай АС як да даступнай вэб-старонцы — гэта памылка катэгорыі. Калі пытанне датычыцца вэб-сайта, вывучайце, што сайт сапраўды можа атрымаць, замест таго каб перапісваць API платформы.
Вырашайце, зыходзячы з пытання, якое ставіце
Калі пытанне ў тым, ці можа пэўнае прыкладанне назіраць стан тунеля, інтэрфейс платформы — правільнае месца, і адказ ляжыць у кодзе і дазволах гэтага прыкладання. Калі пытанне ў тым, што можа вывесці служба, доказ — метаданыя злучэння. Прававое або дагаворнае пытанне не вырашае ні тое, ні другое.
Назвіце пытанне адным сказам, перш чым нешта збіраць. Гэты сказ вызначае, якая кропка назірання важная, і не дае даследаванню з'ехаць у іншую спрэчку.
Пазначайце кожнае назіранне паводле яго крыніцы, калі паведамляеце пра яго, бо сцвярджэнне без пазнакі немагчыма праверыць. Лакальны маркер і выснова з адраса абодва карысныя, і ніводнае не канчатковае, таму зліваць іх у адзін вердыкт — памылка.
Калі служба адхіляе дазволенае злучэнне, скарыстайцеся яе падтрыманым шляхам разгляду замест таго каб змяняць лакальную наладу, каб схаваць сігнал. Выдаленне аднаго назірання ніколі не даказвае, што іншыя зніклі.