کسی یک خودکارسازی ساخته است که وقتی زبانه ناشناس ظاهر می‌شود VPN را روشن می‌کند و این کار به‌طور قابل اتکا انجام نمی‌شود. دلیلی ساختاری برای آن وجود دارد و ارزش دارد پیش از تنظیم خودکارسازی آن را بفهمید. قواعد VPN مبتنی بر برنامه اندروید بسته‌های برنامه را انتخاب می‌کنند و حالت ناشناس وضعیتی درون یک بسته است، پس قاعده نمی‌تواند این دو را از هم تشخیص دهد. اعلان پس از آنکه مرورگر کار خود را آغاز کرده منتشر می‌شود، پس حتی یک محرک درست هم دیر می‌رسد. بررسی‌های زیر را به ترتیب انجام دهید؛ شکست در بررسی چهارم یعنی رویکرد باید تغییر کند، نه پیکربندی.

بررسی یکم: تأیید کنید قاعده مبتنی بر برنامه چه چیزی را می‌تواند انتخاب کند

یک برنامه VPN اندروید تونل خود را با فهرست برنامه‌های مجاز یا غیرمجاز می‌سازد و این فهرست‌ها نام بسته می‌گیرند. Chrome در حالت عادی و Chrome در حالت ناشناس همان بسته با همان شناسه کاربر و همان مجوز شبکه هستند، پس قاعده‌ای که Chrome را شامل یا حذف می‌کند برای هر دو یکسان اعمال می‌شود. هیچ هویت وابسته به زبانه‌ای برای تطبیق سکو وجود ندارد.

این نقصی نیست که دورش بزنید؛ این همان سطح دانه‌بندی است که API ارائه می‌دهد. اگر نیاز شما عبور ترافیک Chrome از تونل و بیرون ماندن بقیه است، قاعده مبتنی بر برنامه آن را دقیق بیان می‌کند. اگر نیاز شما فقط عبور زبانه‌های خصوصی از تونل و رفتن زبانه‌های عادی به‌صورت مستقیم است، هیچ قاعده مبتنی بر برنامه نمی‌تواند آن را بیان کند و هیچ مقدار منطق اعلان گزینشگری را که سکو ندارد اضافه نمی‌کند.

هنگام بررسی مراقب تله هویت بسته باشید. نسخه بتا یا ساخت فروشنده بسته‌ای متفاوت از مرورگر پایدار است، پس قاعده‌ای که یکی را پوشش می‌دهد دیگری را بی‌صدا از دست می‌دهد:

adb shell pm list packages | grep -i chrome

بررسی دوم: آزمایش کنید که آیا محرک هرگز می‌تواند به‌اندازه کافی زود باشد

یک شنونده اعلان اعلان‌هایی را که مجاز به دیدنشان است مشاهده می‌کند. مشاهده رهگیری نیست: مرورگر تا زمانی که اعلان وجود دارد نام را حل کرده و اتصال را باز کرده است و هیچ چیز در آن مسیر منتظر تمام شدن خودکارسازی شما نمی‌ماند. وظیفه‌ای که سپس کلاینت VPN را اجرا می‌کند باید منتظر رابط کاربری کلاینت، هر اعلان رضایت و دست‌دهی تونل بماند که با ثانیه سنجیده می‌شود، در حالی که نخستین درخواست با میلی‌ثانیه سنجیده می‌شود.

تشخیص خودش به دلیل دومی هم شکننده است. متن اعلان میان نسخه‌ها و بومی‌سازی‌ها تغییر می‌کند، پس الگویی که با یک انتشار مطابقت دارد پس از به‌روزرسانی دیگر مطابقت نمی‌کند و شکست بی‌صدا است. نبودن اعلان شاهد نبودن مرور خصوصی نیست؛ شاید فقط یعنی رشته تغییر کرده یا کانال بی‌صدا شده است.

نسخه مشروعی از این جریان کار وجود دارد و ترتیبی است نه واکنشی: نخست VPN تأییدشده را وصل کنید، سیگنال آمادگی را تأیید کنید که واقعاً اثبات می‌کند تونل ترافیک را حمل می‌کند، سپس نشست ناشناس را از طریق کنترل‌های پشتیبانی‌شده مرورگر باز کنید و اگر بررسی آمادگی شکست خورد متوقف شوید. این نشستی را که در آستانه شروع آن هستید محافظت می‌کند بدون آنکه ادعا کند نشستی را که از قبل در حال اجراست محافظت می‌کند.

بررسی سوم: مجوزی را که می‌خواهید بدهید حسابرسی کنید

دسترسی به اعلان مجوزی حساس است که به یک سرویس اجازه می‌دهد اعلان‌های همه برنامه‌ها را بخواند، نه فقط مرورگر. دادن آن به ابزار خودکارسازی ناآشنا برای دیدن یک وضعیت مرورگر معامله بدی است و دسترسی پس از پایان آزمایش هم باقی می‌ماند. ضربه‌های مبتنی بر دسترس‌پذیری بدترند: آن‌ها لایه اسکریپت روی رابط کاربری هستند، نه رابط کنترل VPN پشتیبانی‌شده، و با هر تغییر چیدمان می‌شکنند.

پیش از دادن هر چیزی بپرسید آیا همان نتیجه با مکانیزم پشتیبانی‌شده قابل دستیابی است. اگر پاسخ یک الزام سیاستی است، معمولاً هست: سکو می‌تواند تونلی برای یک برنامه یا پروفایل بدون هیچ سرویس شنونده‌ای اجرا کند.

بررسی چهارم: وقتی الزام اجراست از همیشه‌روشن و مسدودسازی استفاده کنید

اگر مرورگر هرگز نباید بیرون از تونل ارتباط برقرار کند، اجرا به تنظیمات سکو تعلق دارد نه به یک ماکرو. اندروید VPN همیشه‌روشن با حالت مسدودسازی پشتیبانی می‌کند که وقتی تونل برقرار نیست ترافیک را جلوگیری می‌کند و دستگاه‌های مدیریت‌شده می‌توانند آن را با سیاست دریافت کنند. تأیید کنید دستگاه اکنون چه دارد به‌جای فرض کردن:

adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown

مقدار غیرپوچ برنامه یعنی بسته‌ای به‌عنوان همیشه‌روشن پیکربندی شده است و مقدار مسدودسازی برابر 1 یعنی اتصال‌های بیرون تونل مسدود هستند. همین جفت است که یک عادت بهترین تلاش را به تضمین تبدیل می‌کند و مسابقه را کاملاً حذف می‌کند، چون تونل پیش از مجاز شدن ترافیک برنامه برقرار می‌شود.

دو مرز ارزش گفتن دارد. پروفایل‌های کاری پیکربندی VPN خودشان را دارند، پس قاعده‌ای که در پروفایل شخصی تأیید شده چیزی درباره پروفایل کاری نمی‌گوید. و مرورگر جداگانه نصب‌شده، زبانه سفارشی بازشده توسط برنامه دیگر، یا وب‌ویوی درون‌برنامه‌ای بسته یا بافت متفاوتی با مسیریابی خودش است، پس بسته واقعی را تأیید کنید نه اینکه فرض کنید پنجره‌ای با ظاهر متفاوت دامنه‌ای جداست.

بررسی پنجم: جریان کار را بنویسید و مسیر شکست را آزمایش کنید

هر چه انتخاب کنید، ترتیب و شرط توقف را مستند کنید. برای جریان راحتی یعنی: تونل بالا، آمادگی اثبات‌شده، ناشناس باز، و توقف سخت اگر آمادگی شکست خورد. برای مسیر اجرا یعنی: برنامه همیشه‌روشن پیکربندی‌شده، مسدودسازی فعال، و رفتار مورد انتظار وقتی تونل اصلاً بالا نمی‌آید، که نبود ترافیک است نه ترافیک بی‌محافظ.

سپس شکست را آزمایش کنید، نه فقط موفقیت. تونل را در طول یک نشست قطع کنید و ببینید مرورگر چه می‌کند؛ فرایند برنامه VPN را مسدود کنید و تأیید کنید چیزی نشت نمی‌کند. در پایان دو مدل حریم خصوصی را در مستندات کاربر جدا نگه دارید: ناشناس وضعیت موقت مرورگر را کنترل می‌کند و ترافیک را از شبکه پنهان نمی‌کند، در حالی که VPN ترافیک را حمل می‌کند اما ورودها یا هر چیزی که در نشست خصوصی ارسال شده را پاک نمی‌کند.

مقالات مرتبط