تعریف Wireguard
Wireguard یک شبکه خصوصی مجازی متمرکز بر امنیت (VPN) است که به دلیل سادگی و سهولت استفاده شناخته شده است. از پروتکل های رمزنگاری شده و الگوریتم های ثابت شده برای محافظت از داده ها استفاده می کند. در ابتدا برای هسته لینوکس توسعه یافته است ، اکنون قابل استفاده در ویندوز ، macOS ، BSD ، iOS و Android است.
شبکه های خصوصی مجازی (VPN) برای مشاغل ضروری است. آنها شعب دفاتر از راه دور را به شبکه اصلی شرکتها پیوند می دهند ، به کارمندان رومینگ اجازه می دهند از برنامه های داخلی شرکت استفاده کنند و سرورهای ابری را قادر سازند بخشی از همان شبکه به عنوان محل های موجود باشند. زمان قبل ، بنابراین آنها بسیار کند هستند و بیش از حد مهندسی شده اند. Enter Wireguard را وارد کنید ، پروژه ای که امنیت و سادگی را در اولویت قرار دهد.
محقق امنیتی و توسعه دهنده هسته جیسون دونفلد در سال 2017 در حالی که نیاز به یک راه حل مخفی تونل سازی ترافیکی داشت که می تواند در طی تست های تست نفوذ استفاده شود ، ایده Wireguard را دریافت کرد. هرچه او بیشتر به گزینه های موجود نگاه کند ، بیشتر متوجه می شد که تونل های VPN مانند IPsec و OpenVPN عملکرد خوبی ندارند و پیکربندی و مدیریت صحیح آن دشوار است.
بنابراین ، او تصمیم گرفت تا یک پروتکل VPN کاملاً جدید ایجاد کند. این امر از برخی تصمیمات طراحی جلوگیری می کند که سایر فن آوری های تونل سازی را به پروژه های هیولا با پایه های بزرگ کد و دستگیره ها و سوئیچ های بی شماری تبدیل می کنند.
نحوه رمزنگاری Wireguard
چگونه کار می کند. برای اولین بار ، پروتکل Wireguard با چابکی رمزنگاری شده – مفهوم ارائه گزینه ها در بین الگوریتم های رمزگذاری ، تبادل کلید و هشدارهای مختلف – زیرا این امر منجر به استقرار ناامن با سایر فناوری ها شده است. در عوض پروتکل از گزیده ای از رمزنگاری اولیه مدرن ، کاملاً آزمایش شده و بررسی شده استفاده می کند که منجر به گزینه های رمزنگاری پیش فرض شدید می شود که کاربران قادر به تغییر یا سوء استفاده از آن نیستند. اگر هر گونه آسیب پذیری جدی در رمزنگاری اولیه استفاده شده کشف شود ، نسخه جدیدی از پروتکل منتشر می شود و مکانیسم مذاکره برای نسخه پروتکل بین همسالان وجود دارد.
Wireguard از ChaCha20 برای رمزگذاری متقارن با Poly1305 برای تأیید اعتبار پیام استفاده می کند. عملکرد بیشتری نسبت به AES در معماری های CPU تعبیه شده که شتاب سخت افزاری رمزنگاری ندارند. Curve25519 برای توافق کلیدی منحنی بیضوی-منحنی Diffie-Hellman (ECDH). BLAKE2 برای هس کردن ، که سریعتر از SHA-3 است. و یک دست زدن به 1.5 Round Trip Time (1.5-RTT) که بر اساس چارچوب سر و صدا تنظیم شده و رازداری را به جلو ارائه می دهد. این همچنین شامل محافظت داخلی در مقابل جعل هویت کلیدی ، انکار سرویس و حملات پخش مجدد ، و همچنین برخی مقاومت رمزنگاری پس از کوانتومی است.
در پروتکل Wireguard ، هر یک از همسالان از طریق کلیدهای عمومی کوتاه در یک روشی مشابه نحوه تأیید اعتبار مبتنی بر کلید در OpenSSH. از کلیدهای عمومی نیز استفاده می شود تا مشخص شود که آدرس های IP به هر یک از همسالان درون تونل به عنوان بخشی از مفهوم جدیدی که توسعه دهندگان Wireguard آن را مسیریابی cryptokey می نامند ، استفاده می شوند.
پروتکل همچنین مخفی است ، زیرا به هیچ بسته ای پاسخ نمی دهد. آن را تشخیص نمی دهد ، بنابراین یک اسکن شبکه فاش نمی کند که Wireguard روی یک دستگاه کار می کند. علاوه بر این ، ارتباط بین همسالان ، که می توانند همزمان به عنوان مشتری و سرور عمل کنند ، در هنگام عدم تبادل اطلاعات سکوت می کنند.
پروتکل Wireguard توسط تیم های مختلفی از محققان امنیتی بخش خصوصی و دانشگاه ها بررسی شده است. و به طور رسمی در مدلهای مختلف محاسباتی تأیید شده است.
اجرای اصلی Wireguard برای لینوکس است و به صورت ماژول هسته ارائه می شود. این کد به راحتی قابل شنیدن است ، با بیان اینکه دونفلد می گوید بعد از ظهر قابل خواندن است.
در مقایسه با OpenVPN که دارای بیش از 100،000 خط کد است و به OpenSSL بستگی دارد – یکی دیگر از پایگاه های بزرگ رمزگذاری – ماژول هسته Wireguard است. 4000 خط کد و کد رمزنگاری در آن ساخته شده است. این بدان معنی است که در مقایسه با سایر پروژه های VPN از سطح حمله کمتری برخوردار است و از آنجا که به بسته های غیرمجاز پاسخ نمی دهد ، حمله به آن بسیار سخت تر است.
Wireguard چقدر خوب عمل می کند؟
در لینوکس ، Wireguard منحصراً کار می کند. در فضای هسته ، بنابراین عملکرد آن بسیار بهتر از OpenVPN است که در فضای کاربر زندگی می کند و از درایور رابط شبکه مجازی استفاده می کند. بسیاری از معیارهای Wireguard – از جمله در وب سایت خود پروژه – حداکثر چهار برابر عملکرد و سرعت اتصال بهتر از OpenVPN و سرعت بهتری نسبت به VPN های مبتنی بر IPsec در همان سخت افزار نشان می دهند.
با این حال ، پیاده سازی های Wireguard برای اندروید ، iOS ، macOS ، OpenBSD و ویندوز به زبان برنامه نویسی حافظه Go نوشته شده اند. گذشته از برخی پروژه های سیستم عامل آندروید با پشتیبانی جامعه که ماژول هسته Wireguard را ادغام کرده اند ، پیاده سازی های غیر Linux Linux Wireguard در فضای کاربر اجرا می شوند و از عملکرد مشابه عملکرد هسته بهره نمی برند. به گفته این ، آنها هنوز هم در اکثر موارد هنوز هم می توانند از OpenVPN مطابقت داشته یا از آن همخوانی داشته باشند.
چگونه Wireguard به هسته لینوکس ادغام می شود.
ماژول هسته Wireguard در مخازن بسته بندی همه توزیع های عمده لینوکس و حتی برخی موارد خاص موجود است. با این حال ، دونفلد از سال گذشته تلاش کرده تا آن را مستقیماً در هسته اصلی لینوکس ادغام کند. پیشرفت کند بوده است زیرا ادغام در آن نیاز به تغییرات مهمی در API رمزنگاری هسته لینوکس و پشته شبکه دارد ، اما بررسی خوبی را از لینوس توروالدز دریافت کرده است.
"من می بینم که جیسون در واقع درخواست جلب توجه را برای داشتن مفتول گنجانیده است. در هسته ، "Torvalds گفت یک سال پیش در لیست پستی هسته لینوکس. "آیا می توانم یک بار دیگر عشق خود را برای آن ابراز کنم و امیدوارم که به زودی ادغام شود؟ شاید کد کامل نباشد ، اما من آن را کم کم کردم و در مقایسه با وحشت هایی که OpenVPN و IPSec دارند ، این یک اثر هنری است. "
دلیل اصلی پیشرفت کند است زیرا Donenfeld در تلاش است تا اضافه کردن API رمزنگاری جداگانه را به هسته لینوکس که او را روی نامید. به گفته وی ، روی در مقایسه با استفاده از API رمزنگاری موجود هسته که برای اکثر موارد استفاده بسیار پیچیده است ، برای توسعه دهندگان امکان انجام عملیات رمزنگاری در برنامه های خود را آسانتر خواهد کرد. وی در سخنرانی در مورد روی ، لینوکس API رمزنگاری را به عنوان یک API "فوق العاده دیوانه" توصیف کرد که بسیار مستعد به شکست است و استفاده از آن بسیار سخت است. "
تلاش های او برای ادغام ثانیه. crypto API پاسخهای متفاوتی را از دیگر توسعه دهندگان هسته دریافت کرده است که نگرانی های مختلفی را در مورد تکثیر ویژگی ها ایجاد کرده اند و اینکه آیا به جای رفع مشکلات با API موجود ، آیا واقعاً لازم است؟
آخرین ارسال پچ روی در مارس بود و بحث در ماه آوریل متوقف شد. با این حال ، شایان ذکر است که تغییرات هسته بزرگ مانند این معمولاً به طول می انجامد ، و روی نیز پاسخهای مطلوبی را دریافت کرده است ، از جمله از لینوس توروالدز و هربرت زو ، نگهدارنده زیر سیستم کریپتو هسته.
اگر روی است. ادغام شده ، مرحله بعدی ایجاد تغییرات مورد نیاز Wireguard در زیر سیستم شبکه هسته است. این ممکن است مدتی طول بکشد ، اما به محض دستیابی به یکپارچه سازی ، Wireguard با استفاده از نسخه های جدید هسته ، به تعداد بسیار زیادی از دستگاه ها راه پیدا می کند.
تا این اتفاق می افتد ، Wireguard نیز در OpenWRT موجود است. سیستم عامل جامعه برای روترها و سایر دستگاه های جاسازی شده و EdgeOS ، که در دستگاه های شبکه Ubiquiti استفاده می شود.
ویندوز و یک درایور جدید TUN
برای بهبود عملکرد Wireguard در ویندوز ، Donenfeld و دیگر توسعه دهندگان Wireguard جدید و ساده تر ایجاد کرده اند. درایور منبع باز TUN بنام Wintun. ویندوز دستگاه مجازی TUN محلی ارائه نمی دهد و در حالی که برخی از درایور ها برای دستیابی به این هدف از پروژه هایی مانند OpenVPN یا SoftEther وجود دارند ، آنها مدت ها پیش نوشته شده بودند و دارای موضوعات مختلفی بودند.
"این پروژه ها در دوره های مختلفی نوشته شده بودند دوران NDIS5 ، و سپس بعداً به NDIS6 منتقل شد. "دونفلد در ماه مارس در نامه ای با اعلام این پروژه نوشت. وی گفت: "این بدان معناست که آنها از چیزهایی مانند NdisMediumIP ویندوز 7 بهره نمی برند ، که اجازه می دهد تا لایه برداری 3 لایه بومی ، بدون نیاز به انجام لایه 2 را انجام دهد. درایورهایی مانند tap-windows6 OpenVPN نیز برخی کارهای ناگوار را انجام می دهند ، مانند تقلید DHCP از درون هسته برای پیکربندی شبکه. کد قدیمی و پیچیده است. طبق معمول ، من می خواستم به جای آن چیزی كوچك و گنگ باشد كه می توانیم در مورد آن استدلال كنیم ، و این كارها را به روشی صحیح و "خسته كننده" برای كیفیت استفاده محدودتر انجام می دهد: لایه 3 TUN. " به نظر می رسد با همان تمرکز بر سادگی ، قابلیت شنیداری و امنیت توسعه یافته است. توسعه دهندگان پروژه OpenVPN همچنین در تلاشند تا پشتیبانی OpenVPN را اضافه كنند تا از آن به عنوان یك جایگزین برای درایور قدیمی خود استفاده كنند.
چه موقع Wireguard آماده خواهد شد؟
اگرچه Wireguard هنوز به طور رسمی به نسخه پایدار نرسیده است ، اما در حال حاضر در تولید استفاده می شود. برخی از ارائه دهندگان خدمات VPN تجاری سرورهای Wireguard را ارائه می دهند و تلاش های زیادی برای ساخت ابزارهای شبکه مش در اطراف آن انجام می شود. هنوز "آماده سازی سازمانی" نیست و هنوز مشخص نیست که آیا این برنامه وجود خواهد داشت زیرا توسعه دهندگان آن تمایلی به اضافه کردن ویژگی های جدیدی ندارند که فقط برای زیرمجموعه های کاربران مفید باشد یا موارد مورد نظر را پوشش می دهد ، زیرا اینگونه پروژه های دیگر بسیار پیچیده شدند.
با این حال ، Wireguard می تواند یک ساختمان ساختمانی باشد که در بالای آن می توان راه حل های پیچیده تری ایجاد کرد. به عنوان مثال ، شرکت ها نیاز به نصب و پیکربندی نرم افزارهای جدید در تعداد زیادی رایانه به صورت خودکار دارند ، اما توزیع کلیدهای عمومی در بین همسالان و مدیریت کلید تحت پوشش خود پروژه Wireguard نیست و باید به صورت جداگانه پیاده سازی شود. ابزار.
کپی رایت © 2019 IDG ارتباطات ، شرکت
