Rosenpass е важна предпазна мярка срещу това, което предстои:
наскоро на новина, че група от iГермански изследователи, разработчици и криптографи публикуваха първата версия на проекта Rosenpass, който разработва VPN и механизми за обмен на ключове, които са устойчиви на квантови компютърни атаки.
rosenpass използва WireGuard VPN под капака заедно със стандартни алгоритми и ключове за криптиране който се използва като транспорт и го допълва със защитени от хакове инструменти за обмен на ключове на квантови компютри (т.е. Rosenpass допълнително защитава обмена на ключове, без да променя работните алгоритми и методите за криптиране на WireGuard).
Rosenpass може да се използва и отделно от WireGuard под формата на общ инструмент за обмен на ключове, подходящ за защита на други протоколи от квантови компютърни атаки.
Относно Rosenpass
Rosenpass е написан на Rust и използва liboqs 1 и libsodium 2, инструментът създава симетричен ключ и го предоставя на WireGuard. Тъй като предоставяте на WireGuard ключ чрез функцията PSK, използването на Rosenpass+WireGuard е не по-малко криптографски защитено от използването на WireGuard самостоятелно („хибридна сигурност“).
В момента се работи за официална проверка на протокола, криптографски алгоритми и имплементация за осигуряване на математическо доказателство за надеждност. В момента, използвайки ProVerif, вече е извършен символичен анализ на протокола и неговата основна реализация на езика Rust.
протокола Rosenpass се основава на PQWG пост-квантов удостоверен механизъм за обмен на ключове (Post-quantum WireGuard), изграден с помощта на криптосистемата McEliece, отколкото устойчив на груба сила на квантов компютър. Ключът, генериран от Rosenpass, се използва под формата на WireGuard Pre-Shared Key (PSK) симетричен ключ, внедряващ допълнителен слой на защита за хибридната VPN връзка.
Rosenpass присвоява два UDP порта; ако порт N е указан за rosenpass, той ще присвои порт N+1 за WireGuard.
Подобно на WireGuard, Rosenpass не налага никакво разделение между клиенти и сървъри. Ако не посочите опцията listen, Rosenpass и WireGuard ще изберат произволни портове; това е клиентски режим. Ако не посочите крайна точка, Rosenpass няма да се опита да се свърже с партньора и вместо това ще изчака партньорски връзки. Това е сървърен режим. Можете да посочите и двете. Пропускането на двете не е забранено, но не е и много полезно.
Rosenpass предоставя отделен фонов процес който се използва за генериране на предварително дефинирани WireGuard ключове и защитен обмен на ключове по време на процеса на ръкостискане, използвайки пост-квантови криптографски техники.
Подобно на WireGuard, симетричните ключове в Rosenpass се актуализират на всеки две минути. За защита на връзката се използват споделени ключове (от всяка страна се генерира двойка публичен и частен ключ, след което участниците си предават публичните ключове един на друг).
Както при всяко приложение, има малък риск от проблеми критици на сигурността (като препълване на буфер, дистанционно изпълнение на код); приложението Rosenpass е написано на езика за програмиране Rust, който е много по-малко предразположен към подобни проблеми. Rosenpass може също да записва ключове към файлове, вместо да ги предоставя на WireGuard. С малко скриптове, независимият от внедряването режим може да се използва за стартиране на вашето приложение в контейнер, виртуална машина или друг хост. Този режим може да се използва и за интегриране на инструменти, различни от WireGuard, с Rosenpass.
Струва си да се спомене, че Rosenpass има някои недостатъци; той работи като root, което изисква достъп до частните ключове на WireGuard и Rosenpass, поема контрола върху интерфейса и работи с точно един интерфейс. Ако не сте сигурни дали да стартирате Rosenpass като root, трябва да използвате самостоятелен режим, за да създадете по-сигурна настройка с помощта на контейнери, затвори или виртуални машини.
Кодът на инструментариума е написан на Rust и се разпространява под лицензите MIT и Apache 2.0. Криптографските алгоритми и примитивите са заимствани от C библиотеките liboqs и libsodium.
Публикуваната кодова база е позиционирана като референтна реализация: въз основа на предоставените спецификации могат да се разработят алтернативни опции за инструменти, като се използват други езици за програмиране.
И накрая, ако имате интерес да научите повече за него, можете да се консултирате с подробностите В следващия линк.