TLS کجای OpenVPN قرار دارد و چه چیزی شکل را تغییر میدهد
OpenVPN پروتکل TLS را برای کانال کنترلی خود درون چارچوب خود اجرا میکند، پس بایتهای نخست یک دستدادن وب نیستند. سه گزینه واقعاً آنچه دیده میشود را تغییر میدهند.
OpenVPN واقعاً از TLS استفاده میکند، و مردم معمولاً این را به ادعایی گسترش میدهند که تاب آن را ندارد: اینکه یک تونل به همین دلیل شبیه مرورگری است که از سایتی بازدید میکند. بخش اول درست است. بخش دوم نیست. TLS اینجا به کانال کنترلی تعلق دارد که درون محفظهٔ خود OpenVPN سفر میکند، در کنار یک کانال بار مفید با رمزنگاری کاملاً متفاوت، پس هرکس بایتهای آغازین را بررسی کند OpenVPN میبیند.
دو گفتوگو در یک پاکت
یک نشست را دو گفتوگو بدانید که یک پاکت را شریکاند. یکی گواهیها را اعتبارسنجی میکند و مادهٔ کلید را استخراج میکند. دیگری آنچه را واقعاً میفرستید رمز میکند، با استفاده از آنچه اولی تولید کرده است.
پاکت همان پروتکل است. هر بسته با سرآیند کوچکی آغاز میشود که نوعش را نام میبرد، و آن سرآیند پیش از هر چیز دیگری میرسد.
واقعاً چه چیزی اول میرسد
به دلیل همین ترتیب، نخستین چیز روی سیم یک رکورد TLS نیست. سرآیند OpenVPN است، و پس از آن محتوای هر کانالی که سرآیند اعلام میکند. یک ClientHello در آنجا وجود دارد، فقط نه در بایت صفر. برای تشخیص تفاوت هیچ رمزگشایی لازم نیست، چون خودِ شکل آن را لو میدهد.
مقادیر پیشفرض هم اینجا اهمیت دارند. جریان UDP به 1194 است مگر اینکه پروفایل TCP را انتخاب کند. در هر دو حالت ظاهر بیرونی یک تونل است نه درخواست وب.
سه راه صادقانه برای تغییر شکل
یک پایانهٔ TLS مانند stunnel در هر سر یک پورت TLS میپذیرد و جریان رمزگشاییشده را محلی به OpenVPN میسپارد، پس شبکه TLS به آن پورت میبیند. پروتکلی که از نخستین بایت TLS است جور دیگری رفتار میکند: تبادل سازگار با AnyConnect که ocserv پیاده میکند شبیه دسترسی از راه دور سازمانی است که بسیاری از شبکهها از قبل انتظارش را دارند. SSTP که همراه Windows میآید همین ویژگی را در محصولی دیگر دارد.
در Linux، گزینهٔ -w در SSH یک پیوند نقطهبهنقطه را درون نشست SSH حمل میکند، که وقتی SSH تنها پروتکل مجاز است سودمند است. اگر SSH از همان شبکه کار کند، ارزانترین از چهار گزینه است، و اگر کار نکند کمفایدهترین.
چیزی که هیچکدام تغییر نمیدهند
هیچیک از اینها تغییر نمیدهد که تونل به کجا میتواند برسد. آنها یک نشانی مسدود را دسترسپذیر نمیکنند، کسی را احراز هویت نمیکنند و مسیرها را تعیین نمیکنند.
یک پوشش همچنین یک مؤلفه از شما میگیرد. دو شنونده و دو فایل پیکربندی یعنی دو جای خرابی، و هر دو از جای کاربر یکسان به نظر میرسند. پیش از پذیرفتن یکی، بودجهاش را در نظر بگیرید. نشست یک جریان رمزشدهٔ واحد و دیرپا به یک مقصد میماند، و حجم و زمانبندی آن دیدنی میماند.
اول تشخیص، سپس انتخاب
پس اول تشخیص بدهید. UDP افتاده با حالت TCP پاسخ میگیرد، و امضای شناختهشده با پروتکل دیگر یا یک پوشش. انتخاب ابزار پیش از شناختن مانع همان کاری است که مردم را به نگهداری سه لایه میکشاند که همه به یک دلیل شکست میخورند.
شبکهای که فقط پورتهای وب را مجاز میکند انتخاب را به پروتکلی مبتنی بر TLS روی 443 محدود میکند. اعمال هر سه با هم پشتهای میدهد که هیچکس نمیتواند اشکالزدایی کند، پس یک چیز را تغییر دهید و همان جریان را دوباره بیازمایید.
اگر هیچیک مصداق نداشت، پاسخ دقیق این است که این شبکه تونلی برای شما حمل نخواهد کرد. این یک یافته است نه شکست تلاش. چرخیدن میان گزینههای بیشتر تصمیم سیاستی گرفتهشده در بالادست را برنمیگرداند.
یک مرز پیش روی همهٔ اینها است. اجازهٔ اجرای تونل روی شبکهٔ دیگری یک مسئلهٔ سیاستی است که جدا از کارکرد سازوکار تصمیمگیری میشود. این واقعیتها توضیح میدهند که ناظر چه میبیند، و اجازه نمیدهند.