Qual é a melhor escolha: Wireguard ou OpenVPN? VPN favorita de Linus Torvalds





As tecnologias VPN raramente são objeto de muito escrutínio: sim e não. O criador do Wireguard Jason A. Donenfeld teve sorte após a avaliação severamente laudatória de Linus Torvalds sobre a qualidade do código.



Posso apenas mais uma vez declarar meu amor por ele e esperar que seja mesclado em breve? Talvez o código não seja perfeito, mas eu dei uma olhada nele e, em comparação com os horrores que são OpenVPN e IPSec, é uma obra de arte.


Pouco depois disso, o Wireguard acabou no upstream do kernel Linux estável. Por que o Wireguard é tão bom e diferente de outras VPNs?



Criptografia: Diferenças entre Wireguard e OpenVPN



O Wireguard adota uma abordagem minimalista e objetiva para a criptografia, eliminando deliberadamente a flexibilidade e as opções de protocolo que são muito caras. Se não houver escolha de protocolos, não há processo de negociação em que brechas de segurança sejam tradicionalmente encontradas. Além disso, as vulnerabilidades SSL / TLS, chegando em um fluxo uniforme, também não favorecem a riqueza de escolha.



Wireguard





Ao contrário do OpenVPN, o Wireguard não usa certificados X.509 e não tem problemas associados . Em vez disso, o Wireguard usa criptografia de chave pública e privada assimétrica.



Protocolos de criptografia OpenVPN



OpenVPN suporta muitos algoritmos criptográficos usando a biblioteca OpenSSL . Mais especificamente, os algoritmos a seguir são usados ​​para criptografia e autenticação. Essas funções estão disponíveis para somas hash. O OpenVPN em conjunto com o OpenSSL oferece suporte aos padrões PKI RSA, DSA e ECDSA, mas nem todos são adequados para todos os cenários de usuário. Por exemplo, as chaves ECDSA ainda não receberam amplo suporte de CAs raiz.



aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb

aes-256-cbc aes-256-ecb aria-128-cbc aria-128-cfb

aria-128-cfb1 aria-128-cfb8 aria-128-ctr aria-128-ecb

aria-128-ofb aria-192-cbc aria-192-cfb aria-192-cfb1

aria-192-cfb8 aria-192-ctr aria-192-ecb aria-192-ofb

aria-256-cbc aria-256-cfb aria-256-cfb1 aria-256-cfb8

aria-256-ctr aria-256-ecb aria-256-ofb base64

bf bf-cbc bf-cfb bf-ecb

bf-ofb camellia-128-cbc camellia-128-ecb camellia-192-cbc

camellia-192-ecb camellia-256-cbc camellia-256-ecb cast

cast-cbc cast5-cbc cast5-cfb cast5-ecb

cast5-ofb des des-cbc des-cfb

des-ecb des-ede des-ede-cbc des-ede-cfb

des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb

des-ede3-ofb des-ofb des3 desx

idea idea-cbc idea-cfb idea-ecb

idea-ofb rc2 rc2-40-cbc rc2-64-cbc

rc2-cbc rc2-cfb rc2-ecb rc2-ofb

rc4 rc4-40 rc5 rc5-cbc

rc5-cfb rc5-ecb rc5-ofb seed

seed-cbc seed-cfb seed-ecb seed-ofb

sm4-cbc sm4-cfb sm4-ctr sm4-ecb












(1:701)$ openssl dgst --list



Supported digests:



-blake2b512 -blake2s256 -md4

-md5 -md5-sha1 -mdc2

-ripemd -ripemd160 -rmd160

-sha1 -sha224 -sha256

-sha3-224 -sha3-256 -sha3-384

-sha3-512 -sha384 -sha512

-sha512-224 -sha512-256 -shake128

-shake256 -sm3 -ssl3-md5

-ssl3-sha1 -whirlpool











  • UDP / TCP - como um protocolo da camada de transporte;
  • O sigilo perfeito para encaminhamento é o princípio de evitar o comprometimento das chaves de sessão.


Conclusões sobre criptografia e padrões de segurança



O Wireguard é arquitetonicamente mais seguro devido ao fato de que a superfície de ataque é muito menor em comparação com o OpenVPN. No entanto, o OpenVPN é considerado muito seguro e confiável, tendo passado por auditorias de código independentes muitas vezes. Devido a isso, o OpenVPN se beneficia de uma abordagem conservadora para escolher uma solução VPN.



Ao mesmo tempo, a falta de flexibilidade e escolha do método de criptografia cria obstáculos significativos para o uso do Wireguard no segmento corporativo de usuários VPN. Imagine uma situação típica para nossos funcionários em que eles se conectam a uma rede de trabalho via VPN de vários dispositivos. Em tal situação, a falta de flexibilidade e escolha criará muito mais problemas do que pode eliminá-los.



Comparação de desempenho



Como o Wireguard é implementado no espaço do kernel e o OpenVPN está no espaço do usuário, o primeiro deve ter uma vantagem de velocidade. Isso se deve ao fato de que os pacotes são constantemente copiados de um espaço para outro e, além disso, é necessário um serviço OpenVPN constante em segundo plano.



Tudo isso precisa ser verificado na prática, felizmente, existem muitas medidas de velocidade para túneis VPN. Para começar, você pode dar uma olhada nos resultados do derby VPN do próprio autor do Wireguard. Aqui estão alguns detalhes e resultados de medição.



  • Tecnologias - IPSEC, OpenVPN e Wireguard;
  • Processadores IntelCore i7-3820QM e Intel Core i7-5200U;
  • Placas de rede - Intel 82579LM e Intel I218LM gigabit Ethernet;






Comparação de desempenho de VPN de Jason A. Donenfeld



Em ambos os testes de rendimento e resposta de ping, o Wireguard superou significativamente o OpenVPN, bem como as duas variações de IPSec. Além disso, durante o teste de taxa de transferência usando OpenVPN e IPSec, a utilização da CPU atingiu 100% . Ao mesmo tempo, a utilização do Wireguard não carregava tanto o processador central, possibilitando a utilização completa dos recursos da placa de rede Gigabit Ethernet.



É natural supor que o autor do Wireguard pode ser tendencioso ao criar scripts e interpretar os resultados da medição do desempenho das tecnologias VPN. Portanto, faz sentido examinar outros testes de velocidade de VPNs diferentes. Felizmente, tudo o que é necessário para isso é um servidor VPS, VPN e pacote iperf3.



Mas outros testes semelhantes mostram a superioridade do Wireguard em testes de desempenho.





Comparação do desempenho do Wireguard e do OpenVPN



Um fato inesperado é que o openvpn-tcp é mais rápido que o openvpn-udp, mas após uma inspeção mais detalhada, tudo se encaixa. O fluxo TCP tem menos testes concluídos do que UDP. Em qualquer caso, o Wireguard mostra os melhores resultados de desempenho aqui também.



Na mesma série de testes, é interessante comparar a velocidade de uma conexão VPN em função do número de sockets abertos. Com um aumento em seu número, o desempenho do Wireguard cai abruptamente, embora continue a ser mais alto do que openvpn-tcp e openvpn-udp.





Comparação do desempenho do Wireguard e do OpenVPN dependendo do número de soquetes abertos. TestID 0-600 corresponde a openvpn-udp, 700-1200 a openvpn-tcp e 1300-1800 a Wireguard



Conclusões sobre a velocidade da conexão VPN



Testes de velocidade sintética de vários autores usando o pacote iperf3 sugerem que o Wireguard é mais rápido que o OpenVPN.



Dados privados



Os protocolos VPN enfatizam muito mais a segurança da conexão do que a privacidade. No entanto, a possibilidade de manter o anonimato também importa - quem quer escrever notas explicativas sobre o fato de baixar um livro de Oracle ou um emulador de topologia Cisco? Nada denuncia uma violação tão bem quanto o endereço IP do usuário.



As configurações do Wireguard contêm explicitamente os endereços IP dos usuários e esta circunstância não permitirá que eles passem despercebidos depois que o servidor estiver interessado nas agências de aplicação da lei. Obviamente, você não conseguirá ler o tráfego da rede, mas poderá identificar os participantes da conexão segura.



Configurar uma conexão segura Wireguard em si é bastante simples. Instalação primeiro.



(1:530)$ sudo emerge -av wireguard-modules wireguard-tools
These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary  N     ] net-dns/openresolv-3.11.0  USE="(-selinux)" 
[binary  N     ] virtual/resolvconf-1 
[ebuild  N     ] net-vpn/wireguard-modules-1.0.20201221  USE="module -debug -module-src" 
[binary  N     ] net-vpn/wireguard-tools-1.0.20200827  USE="wg-quick" 

Would you like to merge these packages? [Yes/No] 
      
      





Criamos chaves públicas e privadas.



(1:531)$ wg genkey | tee privatekey | wg pubkey > publickey
      
      





Em seguida, você precisa configurar o arquivo /etc/wireguard/wg0.conf.



/etc/wireguard/wg0.conf

[Interface]
Address = 10.0.0.1/24, fdc9:1f28:04d7:9ee9::1/64
SaveConfig = true
ListenPort = 51820
PrivateKey = 2JtKAUFzecmgIVzbscQh3iUZrZanxIzvbejcIkvC5Hk= #PEER_A_PRIVATE_KEY

[Peer]
PublicKey = rgqd1cHKgRWX3IkYYSlrKA/SW3qZUhSJMqwTq4+3eFs= #PEER_B_PUBLIC_KEY
PresharedKey = PEER_A-PEER_B-PRESHARED_KEY
AllowedIPs = 10.0.0.2/32, fdc9:1f28:04d7:9ee9::2/128
Endpoint = pb.example.com:51280
      
      





A conexão do segundo participante deve ser configurada no mesmo arquivo, especificando-a em sua chave privada e chave pública do participante A. Para conectar cada parte cumpre wg-quick up interface_name.







Isso mostra que ao definir o endereço IP Wireguard ou nome do host especificado de forma explícita e são visível nos arquivos de log do sistema e tabelas SNMP até que o servidor seja reinicializado.

O OpenVPN protege melhor a confidencialidade das conexões do cliente, uma vez que não requer a configuração dos endereços IP ou nome de rede dos computadores clientes antes de estabelecer uma conexão segura.



Conclusões sobre privacidade de dados



Nesta nomeação, o OpenVPN tem uma vantagem definitiva devido ao fato de que apenas o Wireguard assume o armazenamento dos endereços IP dos usuários em um servidor VPN por um longo tempo.



Conclusão: Qual VPN escolher?



Há uma miríade de casos de uso de VPN personalizados por aí, e é improvável que a mesma recomendação seja boa para todos. Assim, para diferentes cenários, dois grupos podem ser distinguidos com a solução VPN mais adequada.



  • Se você é um usuário regular;
  • Você precisa de uma VPN para contornar quaisquer restrições RKN ridículas;
  • a velocidade é importante para você, por exemplo, para compartilhamento de arquivos ou a operação de seu aplicativo;


Use Wireguard.



  • Usuários empresariais de médias e grandes empresas que utilizam VPN para acesso remoto à rede interna;
  • usuários de negócios que fornecem acesso remoto via VPN a recursos de TI contendo dados confidenciais ou segredos comerciais;
  • qualquer pessoa que precise de uma solução VPN confiável e comprovada;




Melhor usar o OpenVPN.



Bem, você já sabe qual VPS usar para VPN.






All Articles