تثبیت TLS و پذیرش VPN به دو پرسش متفاوت پاسخ میدهند
تثبیت محدود میکند که برنامه به کدام کارساز اعتماد کند؛ سیاست VPN تعیین میکند چه کسی به شبکه میرسد. هیچکدام مجوزدهی یا دستگاه گمشده را پوشش نمیدهد.
یک برنامه موبایلی خصوصی را پشت VPN بگذارید تا هر آدم معقولی بپرسد آیا هنوز به تثبیت گواهی نیاز دارد. پرسش شبیه انتخابی میان دو کنترل همارز به نظر میرسد، و در واقع پرسش درباره دو دروازه متفاوت است. VPN تعیین میکند آیا این دستگاه اصلاً اجازه استفاده از مسیر را دارد؛ برنامه تعیین میکند آیا کارسازی که به آن رسیده همان است که انتظار داشت. به هر دو جداگانه پاسخ دهید تا طراحی سادهتر شود.
دو دروازه، دو پرسش
پذیرش در شبکه به کارخواه مربوط است: آیا این دستگاه ثبت شده، آیا اعتبارنامهاش معتبر است، و آیا سیاست اجازه ورودش به این مسیر را میدهد؟ اعتماد برنامه به کارساز مربوط است: آیا اتصال به خدمتی رسیده که هویتی مورد پذیرش برنامه دارد؟ این پاسخها از سامانههای متفاوت میآیند، به دلایل متفاوت شکست میخورند و تیمهای متفاوت آنها را درست میکنند. دستدادن VPN میتواند موفق شود در حالی که برنامه با گواهی منقضیشدهای پشت همتا گفتوگو میکند. برنامهای که کامل تثبیت شده هم میتواند برای همه دستنیافتنی بماند، چون دستگاه هرگز به شبکه نرسیده است.
هر دو با هم جمع میشوند. حذف هر یک کنترلی را برمیدارد؛ افزودن یکی جایگزین دیگری نمیشود.
تثبیت در واقع چه چیزی را محدود میکند
تثبیت مجموعه هویتهای کارسازی را که برنامه میپذیرد تنگ میکند، معمولاً با نامبردن از یک کلید عمومی یا درهمساز گواهی بهجای اعتماد به هر زنجیرهای که مخزنی ضمانت کند. این محدودیتی است که روی اعتبارسنجی معمول گذاشته میشود، نه جایگزین آن. اعتبارسنجی معمول پاسخ میدهد آیا زنجیره اصلاً قابل اعتماد است؛ تثبیت پاسخ میدهد آیا همان زنجیرهای است که این برنامه انتظار دارد. پیادهسازیای که گام نخست را رد کند امنیت به دست نیاورده، فقط تازگی.
شیء تثبیتشده میان سکوها متفاوت است، پس خود واژه چیز کمی میگوید. کپیکردن درهمسازی از مخزن اعتماد یک محصول و برخورد با آن بهعنوان همان چیز در یک برنامه موبایلی خطایی رایج و خاموش است.
تثبیت روی سکو یک پیکربندی است، نه سیاست
اندروید تثبیت را از طریق پیکربندی امنیت شبکه ارائه میدهد، جایی که مجموعه تثبیت خلاصههای یک کلید عمومی را نگه میدارد و زنجیره باید دستکم یکی از آنها را داشته باشد. آن پرونده برای هر برنامه جداست و تغییری آگاهانه در ساخت میخواهد. iOS سازوکار مانیفست همارزی ندارد، پس تثبیت آنجا در کد ارزیابی اعتماد خود برنامه زندگی میکند.
چون سازوکار متفاوت است، الزام باید برای هر سکو نوشته شود. سیاستی که بگوید گواهی را تثبیت کن بدون نامبردن از سکو، اجراشدنی نیست.
چرخش تعیین میکند آیا تثبیت زنده میماند
بخش سخت نخستین انتشار نیست، تمدید گواهی پس از آن است. سیاست اعتماد سختگیرانه یک کلید تازه مشروع را همانقدر محکم رد میکند که کلید یک مهاجم را.
دو سازوکار چرخش را تابآور میکند: تثبیت پشتیبانی که پیش از نیاز به آن مورد اعتماد است، و تاریخ انقضا روی مجموعه تثبیت تا اجرا فروکش کند نه اینکه برنامه را از کار بیندازد. هر دو تصمیم سیاستیاند، و انقضا بهویژه کاهشی آگاهانه در امنیت است نه زمانسنجی بیخطر. نام ببرید چه کسی ساخت برنامه، نقطه پایانی TLS و تمدید گواهی را کنترل میکند، و آنها را در یک فرایند تغییر بگذارید. اگر آن سه تیمهای متفاوت باشند، تثبیت دستآخر قطعیای ایجاد میکند که هیچکس برنامهریزی نکرده بود.
دستگاه گمشده مسئله سوم است
لغو یک اعتبارنامه VPN لزوماً نشست برنامه را پایان نمیدهد، و تثبیت کارساز هیچ کاری درباره تلفنی در دست دیگری نمیکند. قفل دستگاه، ذخیره اعتبارنامه، عمر نشست و لغو از راه دور تصمیمهایی جدا با صاحبان جدا هستند. تا زدن آنها در بحث تثبیت تضمین میکند هیچیک طراحی نشود.
چهار رابطه را بیازمایید نه آن یکی که میبینید: کارساز و عملیات مورد نظر، حسابی که باید رد شود، هویت کارسازی که باید کنار گذاشته شود، و چرخش برنامهریزیشده. VPN کارکننده فقط اولی را تمرین میکند. بنویسید هر آزمون چه چیزی را ثابت کرد، چون نفر بعدی فرض میکند تونل سبز یعنی هر چهار مورد گذشت.