Projeto Rosenpass traz VPN resistente a computadores quânticos

Conheça o Projeto Rosenpass, que traz VPN resistente a computadores quânticos. Confira os detalhes dessa novidade interessante.

Recentemente, surgiram notícias de que um grupo de pesquisadores, desenvolvedores e criptógrafos alemães lançou a primeira versão do projeto Rosenpass, que desenvolve VPNs e mecanismos de troca de chaves resistentes a ataques de computadores quânticos.

Projeto Rosenpass traz VPN resistente a computadores quânticos

Projeto Rosenpass traz VPN resistente a computadores quânticos
Projeto Rosenpass traz VPN resistente a computadores quânticos

Rosenpass usa WireGuard VPN sob o capô junto com algoritmos de criptografia padrão e chaves usadas como transporte e complementa com ferramentas de troca de chaves protegidas contra hack em computadores quânticos (ou seja, Rosenpass protege adicionalmente a troca de chaves sem alterar os algoritmos operacionais e métodos de criptografia do WireGuard).

O Rosenpass também pode ser usado separadamente do WireGuard na forma de uma ferramenta genérica de troca de chaves adequada para proteger outros protocolos de ataques de computadores quânticos.

Rosenpass é escrito em Rust e usa liboqs 1 e libsodium 2, a ferramenta define uma chave simétrica e a fornece ao WireGuard.

Como você fornece uma chave ao WireGuard por meio da função PSK, usar Rosenpass+WireGuard não é menos criptograficamente seguro do que usar WireGuard sozinho (“segurança híbrida”).

O trabalho está em andamento para verificar formalmente o protocolo, os algoritmos criptográficos e a implementação para fornecer uma prova matemática de confiabilidade.

No momento, utilizando o ProVerif, já foi realizada uma análise simbólica do protocolo e sua implementação básica na linguagem Rust.

O protocolo Rosenpass é baseado no mecanismo de troca de chave pós-quântica autenticado PQWG (Post-quantum WireGuard), construído usando o criptosistema McEliece, que é resistente à força bruta em um computador quântico.

A chave gerada pelo Rosenpass é usada na forma de uma chave simétrica WireGuard Pre-Shared Key (PSK), implementando uma camada adicional de proteção para a conexão VPN híbrida.

“Rosenpass atribui duas portas UDP; se a porta N for especificada para rosenpass, ela atribuirá a porta N+1 para WireGuard.

Como o WireGuard, o Rosenpass não impõe nenhuma separação entre clientes e servidores. Se você não especificar a opção de escuta, Rosenpass e WireGuard escolherão portas aleatórias; este é o modo cliente.

Se você não especificar o endpoint, o Rosenpass não tentará se conectar ao ponto e, em vez disso, aguardará as conexões do mesmo nível. Este é o modo de servidor. Você pode especificar ambos. Ignorar ambos não é proibido, mas também não é muito útil.”

O Rosenpass fornece um processo de segundo plano separado que é usado para gerar chaves WireGuard predefinidas e proteger as trocas de chaves durante o processo de handshake usando técnicas criptográficas pós-quânticas.

Como o WireGuard, as chaves simétricas no Rosenpass são atualizadas a cada dois minutos. Para proteger a conexão, são usadas chaves compartilhadas (em cada lado, um par de chaves públicas e privadas é gerado, após o que os participantes transferem as chaves públicas entre si).

Como em qualquer aplicativo, há um pequeno risco de problemas críticos de segurança (como estouro de buffer, execução remota de código); o aplicativo Rosenpass é escrito na linguagem de programação Rust, que é muito menos propensa a esses tipos de problemas.

O Rosenpass também pode gravar chaves em arquivos em vez de fornecê-las ao WireGuard.

Com um pouco de script, o modo independente de implantação pode ser usado para executar seu aplicativo em um contêiner, VM ou outro host. Este modo também pode ser usado para integrar outras ferramentas além do WireGuard com o Rosenpass.

Vale ressaltar que Rosenpass tem algumas desvantagens; ele é executado como root, o que requer acesso às chaves privadas WireGuard e Rosenpass, assume o controle da interface e funciona com exatamente uma interface.

Se você não tem certeza se deve executar o Rosenpass como root, você deve usar o modo autônomo para criar uma configuração mais segura usando containers, jails ou máquinas virtuais.

O código do kit de ferramentas é escrito em Rust e distribuído sob as licenças MIT e Apache 2.0. Os algoritmos criptográficos e primitivos são emprestados das bibliotecas C liboqs e libsodium.

A base de código publicada é posicionada como uma implementação de referência: com base nas especificações fornecidas, opções de ferramentas alternativas podem ser desenvolvidas usando outras linguagens de programação.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.