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.

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.

Obtenha o Proton VPN

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.

Uma visão geral de como funciona o OpenVPN

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.

Saiba mais sobre o WireGuard

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.

Saiba mais sobre o Stealth

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).