
Jim Salter
WireGuard جدید است نوع VPN که هدف از آن ساده تر تنظیم و نگهداری از VPN های فعلی و ارائه درجه امنیتی بالاتر است. این نرم افزار رایگان و منبع باز است – دارای مجوز GPLv2 است ، همان مجوز هسته لینوکس است – که همیشه یک کتاب عالی در کتاب من است. همچنین به گونه ای طراحی شده است که به راحتی بین سیستم عامل ها قابل حمل باشد. همه اینها ممکن است شما را به این سؤال سوق دهد که: در دنیایی که دارای IPSEC ، PPTP ، L2TP ، OpenVPN و یک آرایه سرسخت از VPN های اختصاصی SSL است ، آیا ما نیاز داریم نوع دیگری از VPN؟
خوب ، اما چرا؟
من چند سال طراحی VPN جدید را دیدم که در چند سال اخیر ظاهر می شود – ZeroTier و Tinc به ذهن می آیند – و هر بار ، من فکر کردم ، "من واقعاً باید به آن توجه کنم." و سپس من چنین نکرده ام. من از OpenVPN به شدت استفاده می کنم؛ من کاملاً با آن آشنا هستم ، و اکثر خارش های مربوط به VPN را خراشیده می کنم.
بنابراین چگونه WireGuard قفس من را به اندازه کافی سخت کرد تا بتواند من را به واقع با آن بازی کند؟ این چیزی بود که تقریباً هرگز آن را نمی بینید: یک نظر مثبت درباره کد آن از هیچ کس به غیر از لینوس توروالدز.
آیا می توانم یک بار دیگر عشق خود را برای [WireGuard] بیان کنم و امیدوارم که به زودی ادغام شود؟ شاید کد مناسب نباشد ، اما من آن را کم کم کردم و در مقایسه با وحشت هایی که OpenVPN و IPSec دارند ، این یک اثر هنری است.
لینوس توروالدز ، در لیست پستی لینوکس هسته لینوکس
همین کافی بود تا مرا مجبور به نشستن و توجه کردن کند. اگر فکر می کنید "ممکن است کامل نباشد ، اما با ستایش کمرنگ کمرنگ است ، شما به روشنی با سبک نگارش اسکرابیک Torvalds آشنا نیستید.
خطوط کمتری از کد
کمی تحقیق بیشتر به من بینش داد. به همین دلیل ممکن است توروالدز آنقدر غیرتشخصی مثبت باشد. WireGuard حدود 4000 خط کد دارد. این با 600000 کل خط کد برای OpenVPN + OpenSSL یا 400000 کل خط کد برای XFRM + StrongSwan برای یک IPSEC VPN مقایسه می کند. دو مرتبه خط کمتر از کد به معنای تعداد زیادی سطح حمله کمتر برای یافتن نقص هستند.
یک کد کد بسیار کوچکتر همچنین به معنی کدی است که احتمالاً به روشی که می خواهد کار کند. یکی از بزرگترین گوشت گاوهای عملیاتی من با OpenVPN ، چگونگی سقوط یا قطع شدن تونل های آن است.
این احتمالاً به اندازه کافی برای شما اتفاق نمی افتد که اگر فقط چند ده مشتری داشته باشید ، توجه کنید که اغلب آنها به صورت دستی کار می کنند. با کلیک کردن روی چیزی برای اتصال و قطع کردن تونل آنها در صورت نیاز. اما اگر می خواهید شبکه ای با صدها مشتری داشته باشید ، که همه آنها باید به طور خودکار تونل های همیشگی خود را مدیریت کنند ، یک مشکل بزرگ است.
ویژگی های OpenVPN پینگ و پینگ-شروع مجدد. استدلال های پیکربندی مبنی بر اینکه باید از این موضوع برای شما مراقبت کند ، اما آنها این کار را نمی کنند. من بیشتر وقت خود را صرف ساختن و نگهداشتن اسکریپت های نگهبانی کرده ام که با دقت بررسی ، کشتن -9 ، و راه اندازی مجدد سرویس های OpenVPN از آنچه دوست دارم در مورد آن فکر کنم ، می باشد. من می خواهم را دوست داشته باشم که بتوانم آنها را با چیزی که درست کار می کند جایگزین کنم.
راه اندازی ساده
من نمی خواهم این را بهم بپوشاند: VPN ساده نیست و WireGuard نمی کند. ناگهان آنها را به یک پروژه مهدکودک تبدیل کنید. با این گفته ، قبل از اینکه OpenVPN را به خوبی درک کردم ، چند روز مطالعه ، پیاده سازی و تست دقیق ، مصمم و اختصاصی برایم طول کشید تا واقعاً تصور کنم که چه کاری انجام می دادم. چند سال بعد ، برای ساختن یک شبکه مبتنی بر OpenVPN در مقیاس بزرگ ، به یک یا دو هفته دیگر نیاز داشتم که اینترنت را برای چگونگی انجام کارها و جمع کردن آنها در کنار هم جمع کنم. من قبل از به روزرسانی تنظیمات من برای راهنمای سال گذشته Ars Technica OpenVPN ، خواندن جدیدترین پیشرفت های مربوط به تنظیمات و بهترین روش ها را تقریباً نیم روز دیگر صرف کردم.
با کنتراست نسبتاً تیز ، من تنظیمات کاری ، پایدار و مستند را برای مقیاس پذیر ایجاد کردم ، شبکه WireGuard را در حدود شش ساعت یکشنبه ظهر ایمن کنید. بخش عمده ای از این سادگی بیشتر در تنظیمات و پیکربندی ها به دلیل رد عمدی و اصولی WireGuard از چابکی رمزنگاری است.
الگوریتم های قوی تر
WireGuard به طور عمد از الگوریتم های "استاندارد صنعت" جلوگیری می کند که ضعف های دیرینه به نفع جدیدترین ها دارند ، سخت ترین بدوی ها. از وب سایت WireGuard:
این همه به اندازه کافی چشمگیر به نظر می رسد ، اما من رمزنگاری نیستم. من هنوز کمی در مورد امنیت آینده WireGuard نگران بودم ، زیرا هیچ چیزی در مورد آن قابل تنظیم نیست و کلیدهای آن به طور قابل توجهی کوچکتر از آنچه من قبلاً عادت کرده بودند بود. خوشبختانه برای من ، انتشار سه پیکربندی اول WireGuard VPN در وبلاگ خودم برای جلب توجه جیسون دونفلد ، نویسنده و توسعه دهنده اصلی WireGuard کافی بود. این به من فرصتی برای کمی پرسش و پاسخ مورد نیاز مطلوب داد (لطفاً خطایی را در معدن محتوای زیر در نظر بگیرید ، نه در مورد جیسون. آیا ذکر کردم که رمزنگاری نیستم؟)
به عنوان کسی که واقعاً رمزنگاری را درک نمی کند اما 20 سال است که به طور فعال از آن استفاده می کند ، ترکیب یک کلید کوتاه و هیچ گزینه پیکربندی را برای من ایجاد نکرد. کمی عصبی. با استفاده از OpenVPN ، دوست دارم با استفاده از یک کلید بزرگ honking از طرف احتیاط خطا کنم. چرا نمی توانم همین کار را با WireGuard انجام دهم؟ چرا من به WireGuard محدود به یک کلید 256 بیتی هستم ، در حالی که OpenVPN 4،096 بیت به من پیشنهاد می دهد؟ به نظر می رسد که یک کلید 4،096 بیتی نوعی مسخره است.
اگر شما باید یک کلید 256 بیتی را زور بزنید ، باید 2 256 را با هم ترکیب کنید. اگر فرض کنید که ، به طور متوسط ، شما راه حل را در نیمه راه از طریق مجموعه مشکل کشف می کنید ، که هنوز هم شما را با 2 شکست 255 قبل از موفقیت ترک می کند. حال فرض کنید که شما یک سیستم بسیار قدرتمند دارید ، قادر به امتحان کردن 38،000،000 کلید در هر ثانیه ، و دسترسی محلی به قسمت عمومی صفحه کلید. اگر به نیروی بی رحمانه تکیه می کنید ، به طور میانگین کمی بیشتر از 10 1.5 1.52 [10 69 ثانیه به طول می انجامد تا بتوانید کلید برنده شوید. با توجه به اینکه سن تخمین زده شده در جهان خود 10 4. 32/4 17 ثانیه است ، احتمالاً کافی است.
دلیل OpenVPN (و تقریبا همه راه حل های VPN) از چنین کلیدهای مسخره ای طولانی استفاده می کند این است که شما نمی کنید. را دارند تا آنها را به زور وادار کنند. حمله رمزنگاری واقعی به الگوریتم هایی که معمولاً برای VPN ها استفاده می شود (یا برای اتصالات HTTPS به وب سایت ها) بیشتر شبیه حمله دیکشنری است تا یک حمله بی رحمانه. شما می توانید موارد زیادی را از فضای مشکل تخفیف دهید بدون اینکه واقعاً آنها را امتحان کنید.
طول کلیدی فوق العاده — و در برخی موارد ، اعدام های مکرر از همان الگوریتم (هر کس دیگری DES vs 3DES را بخاطر بسپارد؟) – اساساً ساده لوحانه است " خوب ، آن را سخت تر از آن انجام دهید! " کاهش این تلاش برای مقابله با حملات رمزنگاری شده یا گسترش مسئله برای چیزی بسیار جالب و بی پروا که حتی اگر فقط بتوانید به جز 0.000000001 درصد از آن را دور بیندازید ، هنوز هم خیلی زیاد نیست.
تا زمانی که الگوریتم های اساسی در آن وجود داشته باشد. WireGuard بدون شکست باقی می ماند ، یک کلید 256 بیتی فقط "به اندازه کافی قوی نیست تا سرعت کامپیوترها سریعتر شود." به اندازه کافی قدرتمند است که فیزیک ساده حداقل تا زمانی که محاسبات کوانتومی به کار خود ادامه دهد ، از یک رویکرد ناخواسته جلوگیری می کند. رایانه های کوانتومی جانوران عجیب و غریب هستند که موارد استفاده بسیار متفاوتی نسبت به رایانه های معمولی دارند ، اما یکی از مواردی که در آنها بسیار خوب است حمله به رمزنگاری نامتقارن (کلید عمومی یا خصوصی) است. ما قادر به ایجاد یک کامپیوتر کوانتومی به اندازه کافی بزرگ برای حمله به یک کلید 256 بیتی نیستیم ، اما انتظار می رود این اتفاق در نهایت رخ دهد. اگر به اندازه کافی پارانوئید هستید که می خواهید آینده را در برابر QC تصحیح کنید ، می توانید به صورت اختیاری یک لایه PSK (Key Pre-Shared Key) به رمزگذاری WireGuard اضافه کنید.
