نام میزبان VPN عمومی چه چیزی را میتواند اثبات کند و چه چیزی را نه
نام میزبان یک نقطه پایانی را نشان میدهد و کم چیزی بیش از آن. نه پروتکل را اثبات میکند، نه مکان خروج و نه سیاست نگهداری اپراتور را، در هیچ روز مشخصی.
نامهای میزبان و پرچم کشورها شبیه واقعیتهایی درباره یک سرور به نظر میرسند، در حالی که هیچکدام واقعیت نیستند. یک نام به نشانیهایی اشاره میکند که میتوانند تغییر کنند، و واژههای درون آن را کسی انتخاب کرده که آن را ثبت کرده است. پروتکل، مکان خروج و رفتار ثبت گزارش هر یک شواهد خود را لازم دارند. با آنچه نام واقعاً به آن تجزیه میشود شروع کنید، سپس تصمیم بگیرید چه چیزی هنوز ناشناخته است.
نام تجزیه میشود و هیچ چیز دیگری روشن نیست
نام میزبان اشارهگری در DNS است، و رکوردهای پشت آن میتوانند بسته به حلکننده، بسته به ساعت روز و بسته به خانواده نشانیای که کلاینت ترجیح میدهد متفاوت باشند. دو نفر که یک مدخل راهنما را میخوانند میتوانند بهطور کاملاً مشروع به ماشینهای متفاوتی برسند. نام میگوید چه بخواهید، نه اینکه چه پاسخ میدهد.
نتایج جستجو نیز بدون اطلاع تغییر میکنند، و این زمانی مهم است که یک پروفایل بهجای نام، نشانی را ثابت میکند. پروفایلی که نشانی قدیمی را سختکد کرده است پس از جابهجایی سرویس توسط اپراتور همچنان شکست میخورد، و این شکست شبیه یک درگاه مسدود به نظر میرسد. نشانیهای تجزیهشده را کنار پروفایل نگه دارید تا مقایسه بعدی یک خط پایه داشته باشد. هیچیک از اینها چیزی درباره اینکه چه کسی طرف دیگر را اداره میکند نمیگوید.
dig +short vpn.example.net A
dig +short vpn.example.net AAAA
dig +short vpn.example.net A @1.1.1.1
انتقال و هویت دو پرسش جداگانهاند
یک صفحه وب باز در نام میزبان یک شنونده را روی یک درگاه آزمایش میکند. OpenVPN و IPsec و SSTP جای دیگری و روی درگاهها و پروتکلهای خودشان گوش میدهند، پس یک وبسرور در دسترس هیچ چیزی درباره آنها نمیگوید.
مدخل راهنما و پروفایل باید درباره انتقال، درگاه و اعتبارنامهها توافق داشته باشند. هویت با زنجیره گواهی یا اثر انگشت کلید همتا که کلاینت با آن پیکربندی شده تأیید میشود، نه با املای نام میزبان. نامی که یک واژه آشنای پروژه را در خود دارد فقط اثبات میکند که کسی آن را ثبت کرده است. گواهیای را که سرویس ارائه میدهد بخوانید و صادرکننده و موضوع را با آنچه پروفایل انتظار دارد مقایسه کنید.
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net </dev/null 2>/dev/null |
openssl x509 -noout -subject -issuer -dates
واژههای کشورها حسابرسی مکان نیستند
برچسب jp یا de در یک راهنما یک ثبت است، و پایگاههای داده موقعیت جغرافیایی IP بهقدر کافی با هم اختلاف دارند که هیچکدام شایسته آن نباشد که حقیقت مطلق تلقی شود. میزبانی مشترک، anycast و پیکربندی نادرست ساده همه مکان مشاهدهشده را از برچسب دور میکنند.
آزمون عملی مسیر خود برنامه است: به کدام نشانی میرسد، و بررسی نشانی خروج از درون نشست چه نشان میدهد. نشانی خروج مشاهدهشده ویژگی مسیر در همان لحظه است، نه تضمینی که به نام بسته شده باشد. راهنماهای داوطلبانه لایه دیگری اضافه میکنند، زیرا کسی که یک مدخل را ثبت کرده لزوماً کسی نیست که ماشین را اداره میکند. بنویسید چه چیزی را اندازه گرفتید و چه زمانی، نه آنچه مدخل وعده داده بود.
سرویس ارائهشده را بررسی کنید، سپس اپراتور را
وقتی انتقال و هویت روشن شد، پرسش باقیمانده رفتار اپراتور است، و این به شواهد مستند نیاز دارد نه استنتاج. سیاست حفظ حریم خصوصی، راه تماس منتشرشده و اعلان شفافیت شواهد نیت هستند؛ هیچکدام عمل را اثبات نمیکند، و نبود هر سه نیز خود اطلاعاتی است.
برای یک گره عمومی یا ادارهشده توسط داوطلبان، فرض کنید خروج مشترک است و هر کسی آن را اداره میکند میتواند ببیند چه چیزی از آن میگذرد. این فرض، نه نام میزبان، باید تعیین کند چه چیزی را از تونل میفرستید.
curl -sSI https://vpn.example.net/ | head -n 5
whois 203.0.113.25 | grep -i -E 'orgname|netname'
نام را برای کاری نگه دارید که در آن خوب است: یافتن یک نقطه پایانی و اتصال به آن. هر چیز فراتر از آن باید جداگانه آزمایش شود، در روزی که اهمیت دارد.