Un gruppo di ricercatori, sviluppatori e crittografi tedeschi ha pubblicato il primo rilascio del progetto Rosenpass, che sviluppa un VPN e un meccanismo di scambio di chiavi resistenti agli attacchi di computer quantistici. Come trasporto viene utilizzato il VPN WireGuard con algoritmi di crittografia e chiavi standard, e Rosenpass lo integra con mezzi di scambio di chiavi protetti contro la compromissione da computer quantistici (cioè, Rosenpass protegge ulteriormente lo scambio di chiavi senza modificare gli algoritmi e i metodi di crittografia di WireGuard). Rosenpass può anche essere utilizzato indipendentemente da WireGuard come strumento universale per lo scambio di chiavi, adatto a proteggere altri protocolli contro attacchi di computer quantistici.
Il codice dello strumento è scritto in Rust e distribuito sotto le licenze MIT e Apache 2.0. Gli algoritmi crittografici e i primitivi sono presi in prestito dalle librerie liboqs e libsodium, scritte in linguaggio C. La base di codice pubblicata è posizionata come implementazione di riferimento: sulla base delle specifiche fornite possono essere sviluppate alternative con altri linguaggi di programmazione. Attualmente sono in corso lavori per la verifica formale del protocollo, degli algoritmi crittografici e dell'implementazione per fornire una dimostrazione matematica dell'affidabilità. Finora, la verifica simbolica del protocollo e della sua implementazione di base in Rust è stata completata con ProVerif.
Il protocollo Rosenpass si basa su un meccanismo di scambio di chiavi autenticato post-quantistico PQWG (Post-quantum WireGuard), costruito utilizzando il sistema crittografico McEliece, resistente al cracking su computer quantistici. La chiave generata in Rosenpass è utilizzata come chiave simmetrica condivisa (PSK, pre-shared key) di WireGuard, realizzando un ulteriore strato per una protezione ibrida VPN-connessione.
Rosenpass fornisce un processo in background autonomo, utilizzato per generare chiavi WireGuard predefinite e per proteggere lo scambio di chiavi durante il processo di negoziazione della connessione (handshake) utilizzando metodi di crittografia post-quantistica. Come in WireGuard, le chiavi simmetriche in Rosenpass vengono aggiornate ogni due minuti. Per proteggere la connessione, vengono utilizzate chiavi condivise (su ciascun lato viene generata una coppia di chiavi pubblica e privata, dopo di che i partecipanti si scambiano le chiavi pubbliche).
Fonte: opennet.ru
