وقتی یک اپلیکیشن VPN را باز میکنید، ممکن است گزینهای به نام «پروتکل» ببینید با نامهایی مثل WireGuard. بیشتر مردم هیچوقت به آن دست نمیزنند و این کاملاً اشکالی ندارد. اما اگر تا به حال برایتان سؤال بوده که این نامها چه معنایی دارند، این مقاله بدون ریاضیات و اصطلاحات پیچیده توضیحش میدهد.
پروتکل VPN چیست
پروتکل در واقع مجموعهای از قواعد توافقشده است. دستگاه شما و سرور VPN پیش از آنکه بتوانند بهصورت خصوصی با هم حرف بزنند، باید بر سر سه چیز به توافق برسند:
- چه کسی، چه کسی است. هر طرف باید مطمئن شود که با طرف درست صحبت میکند، نه با یک شیاد.
- از کدام کلیدهای مخفی استفاده شود. آنها به کلیدهای مشترکی نیاز دارند که هیچکس دیگری از آنها خبر نداشته باشد.
- دادهها چگونه بستهبندی شوند. هر تکه از ترافیک باید قفل شود، برچسب بخورد و طوری ارسال شود که طرف مقابل بتواند قفلش را باز کند.
پروتکل VPN دستورالعملی است که هر سه مورد را پوشش میدهد. دستورالعملهای مختلف، میان سادگی، سرعت و شکل ظاهری ترافیک در شبکه، انتخابها و مصالحههای متفاوتی دارند.
رمزنگاری در یک پاراگراف
رمزنگاری دادههای خوانا را به دادههایی درهمریخته تبدیل میکند که فقط کسی که کلید درست را دارد میتواند آن را به حالت اول برگرداند. راهنمای Surveillance Self-Defense از سازمان EFF رمزنگاری را یکی از راههای اصلی محافظت از اطلاعات در برابر افراد بدخواه و ارائهدهندگان خدمات میداند و یادآوری میکند که اگر درست به کار رود، شکستن آن عملاً غیرممکن است. رمزنگاری مدرن دستکاری را هم تشخیص میدهد. اگر کسی حتی بخش بسیار کوچکی از یک پیام رمزنگاریشده را در مسیر تغییر دهد، گیرنده متوجه میشود و آن را دور میاندازد.
در این میان دو نوع کلید وجود دارد:
- کلیدهای عمومی و خصوصی. قفلی را تصور کنید که آزادانه به همه میدهید (کلید عمومی) و تنها کلیدی که آن را باز میکند و نزد خودتان نگه میدارید (کلید خصوصی). به این ترتیب دو غریبه میتوانند بدون دیدار حضوری، یک راز مشترک بسازند.
- کلیدهای نشست. وقتی دو طرف به هم اعتماد کردند، برای خود دادهها کلیدهای تازه و موقتی میسازند. استفاده از این کلیدها سریع است و بهطور منظم جایگزین میشوند.
«هندشیک» چیست
هندشیک (دستدادن) گفتوگوی کوتاهی است که در آغاز یک اتصال انجام میشود. در این مرحله هر دو طرف هویت خود را ثابت میکنند و بر سر کلیدهای نشست به توافق میرسند. دو نفر را تصور کنید که در ایستگاه قطار با هم قرار دارند: جملهای از پیش تعیینشده را رد و بدل میکنند، هویت یکدیگر را تأیید میکنند و بعد برای باقی سفر به زبانی خصوصی حرف میزنند که فقط خودشان میفهمند.
یک هندشیک خوب سریع است، جعل کردنش دشوار است و کلیدها را برای کسی که گوش ایستاده فاش نمیکند.
WireGuard: مدرن و عمداً کوچک
WireGuard را Jason Donenfeld طراحی کرده و در یک مقالهی فنی عمومی (whitepaper) شرح داده شده است. ایدهی اصلی آن کوچک و ساده نگه داشتن همهچیز است، چون بررسی کد سادهتر برای یافتن اشتباه آسانتر است. وبسایت این پروژه میگوید هدفش این است که پیکربندی و راهاندازی آن آسان باشد و طوری ساخته شده که «یک نفر بهتنهایی بتواند آن را بهطور کامل بازبینی کند»، بهجای آنکه بررسیاش به تیمهای بزرگ نیاز داشته باشد.
به زبان ساده، اینها ویژگیهایی است که WireGuard را متفاوت میکند:
- مجموعهای ثابت از اجزای قوی. پروتکلهای قدیمیتر به هر طرف اجازه میدهند از میان فهرست بلندی از گزینهها مذاکره کند، که هم پیچیدگی را بیشتر میکند و هم جا برای خطا باز میگذارد. WireGuard فقط از یک مجموعهی مدرن استفاده میکند. طبق صفحهی پروتکل آن، این مجموعه شامل ChaCha20 و Poly1305 برای رمزنگاری و محافظت از دادهها، Curve25519 برای توافق بر سر کلیدها، BLAKE2s برای هش کردن و HKDF برای استخراج کلیدهاست.
- هندشیکی مبتنی بر Noise. هندشیک WireGuard بر پایهی Noise Protocol Framework ساخته شده است؛ روشی که بهخوبی مطالعه و بررسی شده و برای طراحی تبادل کلید به کار میرود. این هندشیک کوتاه است: یک پیام از دستگاه شما، یک پاسخ از سرور، و تونل آماده است.
- کلیدهایی که مدام عوض میشوند. مستندات WireGuard میگوید هندشیک هر چند دقیقه یک بار تکرار میشود تا کلیدها چرخانده شوند و به این ترتیب محرمانگی پیشرو کامل (perfect forward secrecy) فراهم شود. به زبان روزمره: حتی اگر روزی کلیدی به هر شکلی دزدیده شود، نمیتوان با آن ترافیک نشستهای قبلی را باز کرد.
- ذاتاً بیصدا. سرور WireGuard به بستههایی که ثابت نکنند از یک کلید شناختهشده آمدهاند پاسخ نمیدهد. از دید یک اسکنر غیرمجاز، سرور اصلاً جوابی نمیدهد.
- سازگار با دستگاههای در حال جابهجایی. اگر گوشی شما از Wi-Fi به اینترنت همراه منتقل شود، WireGuard میتواند بدون اتصال دوبارهی کامل، تونل را از نشانی جدید ادامه دهد.
همین ترکیب است که باعث شده WireGuard به انتخابی محبوب برای اپلیکیشنهای مدرن VPN تبدیل شود.
جایگاه TLS کجاست
شما هر روز بدون آنکه متوجه شوید از پروتکل مهم دیگری هم استفاده میکنید: TLS، همان «S» در HTTPS. وقتی نماد قفل در مرورگرتان ظاهر میشود، TLS از آن صفحه محافظت میکند. نسخهی فعلی، یعنی TLS 1.3، در RFC 8446 تعریف شده است. این پروتکل هم برای توافق بر سر کلیدها از هندشیک استفاده میکند و سپس گفتوگو را رمزنگاری میکند.
TLS برای VPNها اهمیت دارد، چون برخی پروتکلهای VPN بر پایهی آن ساخته شدهاند. ترافیک آنها درون همان نوع اتصال رمزنگاریشدهای قرار میگیرد که وبسایتهای امن معمولی از آن استفاده میکنند.
چرا برخی شبکهها با ترافیک VPN متفاوت رفتار میکنند
رمزنگاری محتوای درون یک بسته را پنهان میکند، اما هر پروتکلی همچنان یک طرح کلی قابلتشخیص دارد. پاکت نامه را در نظر بگیرید: نمیتوانید نامه را بخوانید، اما اندازه و شکل پاکت و الگوی رسیدن نامهها را میبینید. تجهیزات شبکه میتوانند همین طرحهای کلی را بررسی کنند؛ تکنیکی که اغلب طبقهبندی ترافیک یا بازرسی عمیق بستهها (deep packet inspection) نامیده میشود.
سازمانها به دلایل زیادی از این روش استفاده میکنند. ممکن است شبکهی یک شرکت فقط اجازهی عبور انواع خاصی از ترافیک را بدهد. شبکهی یک هتل ممکن است هر چیزی را که نمیشناسد محدود کند. برخی ارائهدهندگان اینترنت هم ترافیک را بر اساس نوع آن مدیریت میکنند.
از آنجا که WireGuard قالب پیام ثابت و فشردهای دارد، بستههایش ممکن است بهراحتی شناسایی شوند. این به معنای ضعف در رمزنگاری آن نیست، که همچنان قوی باقی میماند، اما یعنی برخی شبکهها میتوانند آن را تشخیص دهند و سرعتش را کم کنند یا متوقفش کنند.
به همین دلیل برخی پروتکلهای مدرن فقط به این توجه نمیکنند که ترافیک چگونه قفل میشود، بلکه به اینکه چگونه به نظر میرسد هم اهمیت میدهند. بهطور کلی دو رویکرد وجود دارد:
- تنظیم طرح کلی. تغییر اندازهی بستهها یا افزودن دادهی پرکننده (padding) تا ترافیک با یک الگوی ساده و ثابت مطابقت نداشته باشد.
- استفاده از یک پاکت آشنا. قرار دادن تونل درون یک اتصال TLS تا شبیه ترافیک رمزنگاریشدهی وبی شود که بیشتر شبکهها بهطور معمول با آن سروکار دارند.
هر دو رویکرد دادههای شما را در تمام مسیر میان دستگاهتان و سرور VPN رمزنگاریشده نگه میدارند. هدف آنها یک اتصال پایدار و خصوصی است. همیشه از قوانین و مقررات شبکهای که شامل حال شما میشود پیروی کنید.
پروتکلهای موجود در اپلیکیشنهای VPNRice
VPNRice سه پروتکل بهعلاوهی یک حالت Auto (خودکار) ارائه میدهد:
- WireGuard. همان پروتکل استانداردی که در بالا توضیح داده شد. گزینهی پیشفرض خوبی برای بیشتر شبکههای خانگی و موبایل.
- RiceGuard. همان WireGuard با مبهمسازی (obfuscation) اضافهی بستهها. رمزنگاری WireGuard را حفظ میکند اما طرح کلی بستهها را تغییر میدهد.
- RiceGuardX. ساختهشده بر پایهی VLESS همراه با REALITY، که یک پروتکل مبتنی بر TLS است؛ بنابراین تونل درون یک اتصال TLS منتقل میشود.
- Auto. اپلیکیشن خودش یک پروتکل را برای شما انتخاب میکند و اگر اتصالی کار نکند، آن را عوض میکند.
هر سه پروتکل بههمراه Auto در Android و Android TV در دسترساند. در iPhone و iPad، حالت Auto از RiceGuardX استفاده نمیکند. اپلیکیشن Windows گزینههای WireGuard، RiceGuardX و Auto را ارائه میدهد. افزونههای Chrome و Firefox به شکل دیگری کار میکنند: آنها پراکسی مرورگر هستند و فقط ترافیک مرورگر شما را از طریق سرورهای VPNRice عبور میدهند (سایتهایی که با HTTPS باز میکنید همچنان بهصورت سرتاسری رمزنگاریشده میمانند).
کدام را انتخاب کنید؟
برای بیشتر افراد، پاسخ صادقانه این است: آن را روی Auto بگذارید. اگر میخواهید امتحان کنید:
- وقتی شبکهتان معمولی است و یک پیکربندی ساده و شناختهشده میخواهید، از WireGuard استفاده کنید.
- اگر اتصال در شبکهای خاص ناپایدار است، Auto پروتکل دیگری را امتحان میکند؛ خودتان هم میتوانید آن را بهصورت دستی عوض کنید.
هر کدام را که انتخاب کنید، اصول پایه یکسان میماند: رمزنگاری قوی، هندشیکی سریع و کلیدهایی که بهطور منظم عوض میشوند.
نکات کلیدی
- پروتکل، دفترچهی قواعدی است که دستگاه شما و سرور VPN برای گفتوگوی خصوصی از آن پیروی میکنند.
- هندشیک هویتها را ثابت میکند و کلیدهای تازه میسازد.
- WireGuard مدرن و فشرده است و از مجموعهای ثابت از رمزنگاری قوی استفاده میکند.
- برخی شبکهها ترافیک VPN را از روی طرح کلیاش تشخیص میدهند، هرچند نمیتوانند محتوای آن را بخوانند.
- پروتکلهای جدیدتر شکل ظاهری ترافیک را تغییر میدهند و در عین حال آن را رمزنگاریشده نگه میدارند.
کنجکاوید این پروتکلها را در عمل ببینید؟ VPNRice را دانلود کنید، تنظیمات پروتکل را باز کنید و میان آنها جابهجا شوید تا ببینید کدامیک در شبکهی شما خوب کار میکند.