گروهی از محققان، توسعهدهندگان و رمزنگاران آلمانی اولین نسخه از پروژه Rosenpass را منتشر کردند که در حال توسعه یک مکانیسم VPN و تبادل کلید است که در برابر هک کردن رایانههای کوانتومی مقاوم است. WireGuard VPN با الگوریتمها و کلیدهای رمزگذاری استاندارد بهعنوان یک انتقال استفاده میشود و Rosenpass آن را با ابزارهای تبادل کلید که از هک در رایانههای کوانتومی محافظت میشوند، تکمیل میکند (یعنی Rosenpass علاوه بر این از تبادل کلید بدون تغییر الگوریتمهای عملیاتی و روشهای رمزگذاری WireGuard محافظت میکند). Rosenpass همچنین می تواند به طور جداگانه از WireGuard در قالب یک جعبه ابزار تبادل کلید جهانی مناسب برای محافظت از پروتکل های دیگر در برابر حملات به رایانه های کوانتومی استفاده شود.
کد جعبه ابزار به زبان Rust نوشته شده است و تحت مجوز MIT و Apache 2.0 توزیع شده است. الگوریتمهای رمزنگاری و الگوریتمهای اولیه از کتابخانههای liboqs و libsodium که به زبان C نوشته شدهاند وام گرفته شدهاند. پایه کد منتشر شده به عنوان یک پیاده سازی مرجع قرار می گیرد - بر اساس مشخصات ارائه شده، نسخه های جایگزین جعبه ابزار را می توان با استفاده از سایر زبان های برنامه نویسی توسعه داد. در حال حاضر کار برای تأیید رسمی پروتکل، الگوریتمهای رمزنگاری و پیادهسازی برای ارائه اثبات ریاضی قابلیت اطمینان در حال انجام است. در حال حاضر با استفاده از ProVerif، تحلیل نمادین پروتکل و پیاده سازی اولیه آن در زبان Rust قبلا انجام شده است.
پروتکل Rosenpass مبتنی بر مکانیزم تبادل کلید تایید شده PQWG (Post-quantum WireGuard) است که با استفاده از سیستم رمزنگاری McEliece ساخته شده است که در برابر نیروی بی رحم بر روی یک کامپیوتر کوانتومی مقاوم است. کلید تولید شده توسط Rosenpass به شکل کلید از پیش اشتراکگذاری شده WireGuard (PSK) استفاده میشود که یک لایه اضافی برای امنیت اتصال VPN ترکیبی فراهم میکند.
Rosenpass یک فرآیند پسزمینه در حال اجرا جداگانه را ارائه میکند که برای تولید کلیدهای از پیش تعریفشده WireGuard و ایمن کردن تبادل کلید در طول فرآیند دست دادن با استفاده از تکنیکهای رمزنگاری پس کوانتومی استفاده میشود. مانند WireGuard، کلیدهای متقارن در Rosenpass هر دو دقیقه یکبار به روز می شوند. برای ایمن سازی اتصال، از کلیدهای مشترک استفاده می شود (یک جفت کلید عمومی و خصوصی در هر طرف ایجاد می شود و پس از آن شرکت کنندگان کلیدهای عمومی را به یکدیگر منتقل می کنند).
منبع: opennet.ru