Grupa niemieckich badaczy, programistów i kryptografów opublikowała pierwszy numer projektu Rosenpass, rozwijającego VPN i mechanizm wymiany kluczy odporny na włamania z wykorzystaniem komputerów kwantowych. Jako transport używany jest VPN WireGuard z standardowymi algorytmami szyfrowania i kluczami, a Rosenpass uzupełnia go środkami wymiany kluczy, chronionymi przed włamania na komputerach kwantowych (tj. Rosenpass dodatkowo zabezpiecza wymianę kluczy, nie zmieniając algorytmów działania i metod szyfrowania WireGuard). Rosenpass może również być używany niezależnie od WireGuard w formie uniwersalnego narzędzia do wymiany kluczy, odpowiedniego do ochrony innych protokołów przed atakami komputerów kwantowych.
Kod narzędzia napisany jest w języku Rust i jest rozpowszechniany na podstawie licencji MIT i Apache 2.0. Algorytmy i prymitywy kryptograficzne zostały pozyskane z bibliotek liboqs i libsodium, napisanych w języku C. Opublikowana baza kodu jest pozycjonowana jako wzorcowa implementacja — na podstawie dostarczonych specyfikacji mogą być opracowywane alternatywne wersje narzędzia z wykorzystaniem innych języków programowania. W chwili obecnej prowadzone są prace nad formalną weryfikacją protokołu, algorytmów kryptograficznych i implementacji w celu zapewnienia matematycznego dowodu niezawodności. Obecnie przy pomocy ProVerif dokonano już analizy symbolicznej protokołu oraz jego podstawowej implementacji w języku Rust.
Protokół Rosenpass oparty jest na mechanizmie postkwantowej uwierzytelnionej wymiany kluczy PQWG (Post-quantum WireGuard), zbudowanego z wykorzystaniem kryptosystemu McEliece, odpornego na łamanie przez komputery kwantowe. Klucz generowany w Rosenpass używany jest w formie wspólnego klucza symetrycznego (PSK, pre-shared key) WireGuard, realizując dodatkową warstwę dla hybrydowej ochrony VPN-połączenia.
Rosenpass oferuje oddzielnie działający proces w tle, wykorzystywany do generowania predefiniowanych kluczy WireGuard i ochrony wymiany kluczy podczas negocjacji połączenia (handshake) przy wykorzystaniu metod postkwantowej kryptografii. Podobnie jak w WireGuard, symetryczne klucze w Rosenpass są aktualizowane co dwie minuty. Do zabezpieczenia połączenia używane są klucze dzielone (na każdej stronie generowana jest para kluczy publicznego i prywatnego, a następnie uczestnicy wymieniają się kluczami publicznymi).
Źródło: opennet.ru
