د Android VPN پرته له root: اجازه، لارې او بندول چا ته دي
اجازه، د TUN انټرفیس او د سیستم د بندولو تګلاره درې بېلې اجازې دي. مخکې لدې چې د Android VPN اپ ارزونه وکړئ، ومومئ چې هره یوه کوم برخې ته اړه لري.
root هغه څه نه دي چې د Android VPN اپ ته اجازه ورکوي ترافیک انتقال کړي، لیکونه بند کړي یا له بیا پیل وروسته پاتې شي. خلک دا ټول „اپ د VPN اجازه لري“ ته لنډوي، چې درې جلا میکانیزمونه پټوي: د کارونکي اجازه، هغه پاکټ انټرفیس چې سیستم جوړوي، او د پلیټفارم د بندولو تګلاره چې د اپ کار نه دی چې تعریف یې کړي. د Android VPN ډیزاین ارزونه پدې معنا ده چې وپوښتې یو ادعا په رېښتیا د دې درېیو له کوم یو ولاړه ده، ځکه هر یو خپل مالک او خپل د ناکامۍ ډول لري.
اجازه د یوې سیسټم د فعالیت له لارې راځي
VpnService.prepare() هیڅ نه ورکوي. کله چې اجازه نه وي، دا د سیستم اجازې فعالیت ته intent بیرته ورکوي، او اپ دا خبرې اترې پرانیزي تر څو کارونکي خدمت ومني. د اپ خپل بهیر پیلول، په manifest کې اجازه زیاتول، یا د „VPN فعال کړه“ ځانګړی سکرین ښودل اجازه نه جوړوي.
اجازه هم په ساحه کې محدوده ده. دا د کارونکي په پروفایل کې د یو بستې اړوندې ده، نو شخصي کاپي او کاري کاپي جلا پرېکړې دي، او د وسیلې مالک کولای شي مدیریت شوی پروفایل له شخصي څخه په بله توګه چمتو کړي. که خبرې اترې هېڅکله ونه ښکار شي او prepare() null بیرته راولي، نو په هغه پروفایل کې د هغې بستې لپاره اجازه له مخکې شته; دا د اپ د باوري کېدو ثبوت نه دی، یوازې د دې ښکارندوی دی چې اجازه موجوده ده.
انټرفیس هغه غوښتنه ده چې سیستم یې پوره کوي
له اجازې وروسته اپ په VpnService.Builder سره بیانوي چې څه غواړي: پتې، لارې، DNS سرورونه، MTU او چېرې چې ملاتړ وي، هغه اپونه چې شامل یا خارج شي. establish() له سیستم څخه غواړي چې د تونل انټرفیس جوړ کړي او ورته سم ترافیک ور واړوي. د لارښوونې پرېکړه د سیستم ده; اپ د فایل ښودونکی ترلاسه کوي او بیا باید له پاکټونو سره یو ګټور کار وکړي.
| What you observe | Who actually owns it |
|---|---|
| VPN consent dialog | The system, triggered by prepare() |
| Routes, DNS and app lists | The app requests them; the system applies them |
| One active VPN per profile | The platform; a new service replaces the old one |
| Always-on and block-without-VPN | Device policy enforced by the platform |
هغه جدول په یوه ځای کې معماري ده. اپ د پاکټونو په سمبالښت کې برخه اخلي; انټرفیس، د لارښوونې جدول یا د چلېدونکو خدماتو شمېر د دې نه دی.
د تونل ساکټ باید له خپل تونل ووځي
هغه اړیکه چې کوډ شوی ترافیک انتقالوي، پخپله یو ساکټ دی. که دا بېرته هغه انټرفیس ته واړول شي چې اپ همدا اوس جوړ کړی، تونل پر تونل تکیه کوي او ودروي. VpnService.protect() هغه ساکټ له لاندې شبکې سره تړي تر څو له نیولو تېر شي، او له همدې کبله سم کلاینټ د لومړي لاسوهنې مخکې خپل بهرنی ساکټ خوندي کوي.
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
دا командې نصب شوې VPN شبکه، تل فعال بسته او دا چې ایا قفل ټاکل شوی ښیي. دا یوازې د لوستلو کتنې دي: که ارزښتونه د ډیزاین له ادعا سره سمون نه لري، ادعا د اپ د انټرفیس په اړه ده نه د سیستم د حالت.
بندول کېدای شي د پلیټفارم وي
Android هغه تګلاره مستنده کوي چې هغه اړیکې بندوي چې VPN نه کاروي. هغه پلي کول د پلیټفارم تړون دی، نه اپ چې په لوپ کې اړیکې بیا هڅه کوي. سوئیچ د وسیلې د VPN په تنظیماتو کې د „پرته له VPN اړیکې بند کړه“ په نوم دی، او په مدیریت شوې وسیله کې مالک کولای شي دا د ټول پروفایل لپاره فعال کړي. دا توپیر هغه وخت مهم دی چې یوه بازارموندنې ادعا ارزوئ: کلاینټ کولای شي د قلف نښه وښیي او په تېزۍ بیا ونښلي په داسې حال کې چې مستقیم ترافیک لا هم ممکن دی، یا پوښل شوي اپونه آفلاین پاتې شي ځکه سیستم قفل پلي کوي.
د قلف نښه اپ رسم کوي، نو یوازې دا ثبوتوي چې اپ ځان نښلول شوی ګڼي. چې بله اپ خپله شبکهيي لاسرسی له لاسه ورکوي که نه، پلیټفارم پرېکړه کوي، نو ګټوره کتنه دا ده چې هغه اپ وګورئ چې د تونل د فعالېدو پر مهال ناکامېږي.
د اپ پلورنځي „تل فعال“ لیبل هم هغه تړون نه بدلوي. تل فعال او قفل د وسیلې تنظیمات دي چې ډېری وختونه مالک یې پلي کوي، او د خارج شوو اپونو لپاره یې چلند پلیټفارم ټاکي. تنظیم ولولئ، نښه نه.
د ډیزاین د ارزونې لپاره څلور پوښتنې
لومړی، چا اجازه ورکړه: کومه بسته، کوم پروفایل، او ایا کارونکی و یا د مدیریت شوې وسیلې تګلاره؟ دوهم، اپ څه وغوښتل: کومې لارې، کومې پتې کورنۍ، کوم اپونه شامل یا خارج؟ درېیم، کله چې تونل نه وي، څه پېښېږي: سیستم بندوي که ترافیک لاندې شبکې ته بیرته ځي؟ څلورم، اپ د ترلاسه شوو پاکټونو سره څه کوي؟
څلورمه پوښتنه هغه ده چې د اجازې ماډل ځواب ورکولای نه شي. اجازه او TUN انټرفیس ثبوتوي چې اپ ترافیک ترلاسه کولای شي، نه دا چې کوډ یې کوي، سیال تصدیق کوي یا پاک بیا رغېږي. دا د پلي کولو ځانګړنې دي، او رېښتینې ارزونه خپل وخت همالته تېروي.
بې اړتیا root غوښتنه په دې نه قانوني کېږي چې پایله یې kill switch ونومو، او د اجازې خبرې اترې امنیتي پلټنه نه ده. درې اجازې جلا وساتئ او هره ادعا به د کتنې وړ شي.