Um protocolo de VPN é o conjunto de instruções que a sua aplicação de VPN utiliza para configurar, proteger e gerir a sua ligação a um servidor de VPN. O OpenVPN é um protocolo de VPN que não tem fragilidades conhecidas e é eficaz a contornar determinados métodos de censura online. O OpenVPN também tem a vantagem de ser suportado numa enorme variedade de plataformas e dispositivos.
Existem implementações de código fechado do OpenVPN, mas também existe uma Community Edition gratuita e de código aberto.
Neste artigo, analisamos em detalhe como funciona o OpenVPN, como mantém segura a comunidade do Proton VPN e como se compara a outros protocolos de VPN. Este artigo será mais útil se já compreender como funciona uma VPN.
- Como é que o OpenVPN me mantém seguro?
- Canais de OpenVPN
- O OpenVPN consegue ultrapassar a censura de VPN?
- O OpenVPN já foi auditado?
- OpenVPN vs. WireGuard®
Saiba mais sobre como funciona uma VPN
Lançado originalmente em 2001, o OpenVPN está a começar a mostrar a sua idade em termos de velocidade, desempenho e eficiência. No entanto, continua a ser amplamente considerado seguro, uma perceção reforçada por documentos divulgados pelo denunciante da NSA Edward Snowden em 2013.
Estes documentos indicavam fortemente que, desde que não utilize chaves partilhadas previamente(nova janela), o OpenVPN era o único protocolo de VPN comummente utilizado na altura que a NSA não conseguia quebrar. O WireGuard®, um protocolo de VPN mais recente e seguro, ainda não tinha sido desenvolvido em 2013. Embora o WireGuard seja mais rápido, mais leve e mais eficiente, não consegue igualar o historial comprovado do OpenVPN.
Prós do OpenVPN:
- Código aberto
- Segurança testada e comprovada
- Pode funcionar através de UDP ou TCP
- Amplamente compatível
Contras do OpenVPN:
- O desempenho atual não consegue igualar o do WireGuard (embora se esteja a trabalhar para melhorar este aspeto)
- Base de código relativamente grande e complexa
O Proton VPN suporta o OpenVPN em todas as nossas aplicações:
- Windows
- macOS
- Android
- Android TV (através do Smart Protocol)
- iOS e iPadOS
- Aplicação Linux e CLI
- Chrome OS
Como é que o OpenVPN me mantém seguro?
O OpenVPN utiliza várias tecnologias criptográficas para manter os seus dados seguros e não tem vulnerabilidades conhecidas. As tecnologias utilizadas pela maioria das implementações modernas do OpenVPN (incluindo as do Proton VPN) são:
AES
O Advanced Encryption Standard (AES) é uma cifra de chave simétrica utilizada para encriptar e desencriptar os dados transmitidos através da sua ligação de VPN.
É certificado pelo National Institute of Standards and Technology(nova janela) (NIST) e utilizado pelo governo dos Estados Unidos para proteger dados classificados. O AES tem um tamanho máximo de chave de 256 bits (AES-256), com o governo dos EUA a considerar o AES-256 suficiente para proteger informações “ultrassecretas”(nova janela).
Quando utilizado como parte do pacote de encriptação OpenVPN, o AES pode ser utilizado nos modos AES-CBC (Cipher Block Chaining) ou AES-GCM (Galois/Counter Mode). Para efeitos de aprendizagem de como o Proton VPN funciona, apenas precisa de saber sobre o AES-GCM
Embora seja igualmente seguro, o mais moderno AES-GCM é uma cifra de encriptação autenticada com dados associados(nova janela) (AEAD) que pode autenticar dados além de os proteger. O HMAC SHA (ver abaixo) continua a ser necessário para autenticar a ligação TLS, mas o AES-GCM é mais eficiente (e, portanto, mais rápido) a autenticar dados do que o SHA.
Saiba mais sobre a encriptação AES
RSA
O OpenVPN depende do AES para proteger os seus dados, mas para os enviar através da ligação de VPN, o OpenVPN aplica a criptografia de chave pública(nova janela). Este sistema criptográfico utiliza uma troca de chaves assimétrica, na qual os seus dados são encriptados utilizando a chave pública partilhada abertamente pelo destinatário pretendido. Estes dados só podem então ser desencriptados pela chave privada secreta do seu destinatário, .
A encriptação de chave assimétrica é eficaz para enviar dados secretamente através da Internet, mas é lenta em comparação com sistemas de encriptação simétrica, como o AES. É por isso que é utilizada principalmente em VPNs para autenticar ligações entre o cliente de VPN e o servidor de VPN. O OpenVPN utiliza o criptossistema RSA(nova janela) para este fim.
Os comprimentos das chaves RSA podem ser de quase qualquer tamanho, mas uma chave de 4096 bits é suficientemente segura sem incorrer numa elevada sobrecarga computacional que seria um desperdício e abrandaria a sua ligação.
DHE
Uma troca de chaves Diffie–Hellman(nova janela) (DHE) pode ser utilizada para proteger a troca de chaves TLS de forma semelhante ao RSA, exceto com a vantagem de também fornecer forward secrecy(nova janela). A forward secrecy garante que são utilizadas novas chaves para cada sessão de modo a que, mesmo que uma sessão seja de alguma forma comprometida, nenhuma outra sessão seja afetada. A forward secrecy garante que os atacantes não consigam desencriptar sessões de VPN anteriores com uma única chave comprometida.
No entanto, devido ao facto de o DHE reutilizar um conjunto limitado de números primos, pode ser vulnerável a ataques Logjam(nova janela). Este problema é de menor importância se forem utilizados tamanhos de chave suficientemente grandes, mas a sua utilização para proteger as trocas de chaves TLS continua a ser controversa.
Por esta razão, o Proton VPN utiliza o suporte DHE no pacote de encriptação OpenVPN para fornecer forward secrecy, mas não para proteger a troca de chaves em si.
HMAC SHA
O OpenVPN utiliza o HMAC SHA para validar os certificados TLS utilizados na troca de chaves TLS. Isto protege contra ataques man-in-the-middle.
A família SHA(nova janela) de funções hash criptográficas(nova janela) é utilizada para autenticar dados. Quando estas funções matemáticas complexas são executadas num conjunto de dados, criam uma impressão digital única. Se apenas um bit desses dados se alterar, a impressão digital do SHA também se altera.
Sabe-se que o SHA-1 (uma função hash de 160 bits) é vulnerável a ataques de colisão(nova janela), mas o SHA-2 continua a ser considerado seguro. Mais importante ainda, o OpenVPN apenas utiliza o SHA para calcular valores de código de autenticação de mensagens em hash(nova janela) (HMAC). Estes são muito mais difíceis de atacar do que o algoritmo SHA isoladamente, ao ponto de até o SHA-1 ainda ser considerado suficientemente seguro para HMAC(nova janela).
Canais de OpenVPN
O OpenVPN utiliza dois canais separados para transferir dados de forma segura entre o seu dispositivo e o servidor de VPN.

O canal de dados
Antes de enviar os seus dados através do túnel de VPN, o OpenVPN encripta-os com uma cifra de chave simétrica.
O Proton VPN utiliza até AES-256 no modo GCM para verificar os dados.
O canal de controlo
Assim que os dados estejam encriptados, podem ser enviados através do túnel de VPN. O canal de controlo estabelece uma ligação TLS entre o cliente de VPN e o servidor de VPN. Esta é protegida utilizando uma cifra de chave simétrica, mas com uma troca de chaves assimétrica.
O Proton VPN utiliza até AES-256-GCM para a sua cifra simétrica, com autenticação hash RSA-4096 e HMAC SHA-384 para verificar os certificados TLS. O conjunto de encriptação que utilizamos também inclui um acordo de chave Diffie-Hellman (DHE) para fornecer segurança de encaminhamento.
O OpenVPN consegue contornar a censura de VPN?
Uma das grandes vantagens do OpenVPN é que pode ser executado tanto no protocolo de transmissão UDP como no TCP, que são os dois principais protocolos que gerem a forma como os dados são enviados através da internet. O UDP é mais rápido, enquanto o TCP é mais fiável, mas a principal vantagem desta flexibilidade é que o TCP é útil para contornar a censura por parte de governos e de outras organizações.
Saiba mais sobre a diferença entre UDP e TCP
A porta TCP 443 é utilizada pelo HTTPS(nova janela), o padrão de encriptação que protege a web. Isto torna difícil bloquear o OpenVPN quando este é executado através da porta TCP 443 sem bloquear todo o tráfego HTTPS, tornando o OpenVPN útil para contornar bloqueios de VPN de baixo nível.
No entanto, formas mais avançadas de inspeção profunda de pacotes podem detetar facilmente a diferença entre pacotes HTTPS e VPN.
Saiba mais sobre a inspeção profunda de pacotes
O OpenVPN já foi auditado?
Após uma campanha de financiamento coletivo, o OpenVPN 2.4 foi auditado de forma independente(nova janela) pela OSTIF e pela QuarksLab em 2016. Os resultados foram muito positivos e a única vulnerabilidade crítica/elevada detetada prendia-se com a suscetibilidade a uma recusa de serviço e não afetou a segurança dos utilizadores. Este problema também foi rapidamente corrigido.
No entanto, já passou algum tempo desde 2016 e o OpenVPN 2.6.1 é a versão mais recente à data em que este artigo foi escrito.
OpenVPN vs. WireGuard
O mais recente protocolo WireGuard é seguro, rápido e eficiente, razão pela qual o Proton VPN o utiliza agora como o nosso protocolo VPN predefinido. A capacidade de execução do OpenVPN através de TCP continua a ser uma vantagem em relação ao WireGuard padrão, mas o Proton VPN desenvolveu agora uma implementação do WireGuard que também funciona através de TCP.
O WireGuard também constitui a base do nosso protocolo de ofuscação Stealth, que é muito mais eficaz a contornar bloqueios de censura do que a execução do OpenVPN através de TCP.
O facto de a segurança do OpenVPN continuar a ser mais testada do que a do WireGuard pode ainda atrair alguns, mas existem poucos motivos para o escolher em detrimento do WireGuard, a menos que o seu dispositivo atual não suporte o WireGuard.
Pensamentos finais
Durante muitos anos, o OpenVPN foi efetivamente o protocolo VPN predefinido e, por esta razão, continua a ser amplamente suportado em routers e outros dispositivos com ligação à internet. Continua a ser altamente seguro, mas oferece poucas vantagens em relação ao WireGuard mais moderno (especialmente as implementações personalizadas do Proton VPN do protocolo mais recente).







