RESUMO: as VPNs usam cifras e protocolos de criptografia para converter o seu tráfego web em código ilegível, protegendo a sua atividade de navegação do monitoramento de terceiros. Uma VPN segura não deve usar nada menos que a cifra AES-256 ou ChaCha20 para criptografar seus dados.
O que é um túnel VPN?
Um túnel VPN é simplesmente um canal seguro estabelecido entre seu dispositivo e o servidor VPN, criando uma rota segura e privada pela internet pública.
É chamado de túnel porque o tráfego original é criptografado e encapsulado em uma camada de tráfego descriptografado.
É como pegar um envelope com uma carta em seu interior e colocá-lo em um segundo envelope com um novo endereço, ocultando a mensagem original e a tornando ilegível para qualquer pessoa que possa interceptá-lo.
Esse processo é conhecido como encapsulamento e é realizado por protocolos de tunelamento.
Cifras de criptografia VPN
A criptografia transforma dados em texto simples em um código secreto, tornando-os ilegíveis para pessoas sem a chave necessária para descriptografá-los.
As VPNs usam a criptografia para ocultar informações da sua atividade de navegação entre o seu dispositivo e o servidor VPN, protegendo você de vários tipos de vigilância.
As VPNs usam cifras de criptografia para converter sua atividade online em código ilegível. Uma cifra é apenas um algoritmo (ou seja, um conjunto de regras) que criptografa e descriptografa dados, muitas vezes usada com um comprimento de chave específico.
A chave é uma cadeia de caracteres usados para alterar os dados, para que sejam criptografados. Apenas alguém que tenha a mesma chave pode descriptografar os dados.
Geralmente, quanto maior a chave, mais segura a criptografia. Por exemplo, a AES-256 é considerada mais segura do que a AES-128.
Alguns protocolos VPN usam chaves estáticas, projetadas para uso de longo prazo, enquanto outros usam chaves efêmeras que expiram depois de uma única sessão ou transação.
Veja como as cifras de criptografia funcionam:
- A cifra usa uma chave para criptografar os dados antes de enviá-los.
- A mesma chave ou uma relacionada é usada para descriptografar os dados ao final.
- Apenas quem tiver a chave correta pode descriptografar e ler as informações.
A cifra usada pela VPN muitas vezes é determinada pelo nível em que os desenvolvedores priorizaram a segurança em vez do desempenho, já que cifras mais robustas tendem a exigir um poder de processamento maior.
Cifras mais recentes também aparecem de vez em quando, sendo incorporadas por serviços de maior qualidade.
As cifras mais usadas em VPNs são:
-
Advanced Encryption Standard (AES)
- Padrão-ouro para criptografia online
- Disponível nos comprimentos de chave de 128 e 256 bits
- AES-256 é a preferência para proteção mais robusta
- Considerada resistente à quântica
- Blowfish
- Criada em 1993, em grande parte substituída pela AES-256
- Comprimento de chave de 128 bits (32 a 448 bits são possíveis)
- Vulnerabilidades conhecidas
- Usada como plano de contingência para a AES-256
- ChaCha20
- Cifra mais recente, está ganhando popularidade
- Comprimento de chave de 256 bits
- Segurança comparável à AES-256
- Desempenho mais rápido, em especial em celulares
- Camellia
- Criada em 2000
- Segurança e velocidade comparável à da AES
- Não é certificada pela NIST
- Disponibilidade limitada em VPNs
Os modos de criptografia determinam como cifras como a AES criptografam dados. São cruciais para segurança de VPNs, afetando tanto a privacidade quanto o desempenho. Confira abaixo os modos mais comuns usados em VPNs:
- CBC (modo de encadeamento de bloco)
- Modo tradicional
- Cria uma cadeira de blocos dependentes
- Pode ser mais lento do que modos mais recentes
- Requer medidas de segurança adicionais
- GCM (modo de Galois/Contador)
- Fornece criptografia e autenticação
- Mais rápido que o CBC
- Considerado muito seguro
- Amplamente usado em VPNs modernas
- CTR (Contador)
- Transforma cifras de bloco em cifras de fluxo
- Rápido e permite o processamento paralelo
- Não fornece autenticação isoladamente
- Usado por ChaCha20
- OCB (modo Offset Codebook)
- Fornece criptografia autenticada em um único passe
- Muito eficiente
- Adoção limitada devido a questões de patente
É melhor evitar outros modos em VPNs. O ECB (livro de códigos eletrônico), em particular, é simples demais para ser seguro, enquanto o CFB (retroalimentação de cifra) e o OFB ambos tendem a ser mal configurados por serem complexos, além de serem considerados desatualizados. Qualquer modo sem verificações de integridade também deve ser evitado a não ser que seja combinado com um mecanismo de autenticação separado.
A maioria das principais VPNs agora usam o modo GCM com a AES ou o conjunto ChaCha20-Poly1305, por oferecerem um bom equilíbrio de segurança e desempenho. Ao avaliar VPNs, buscamos por esses modos modernos e autenticados de criptografia.
Protocolos VPN
Protocolos VPN são regras e processos usados para estabelecer uma conexão segura entre seu dispositivo e o servidor VPN.
Determinam como o túnel VPN é formado e administrado, enquanto as cifras de criptografia protegem os dados no túnel.
Cada protocolo oferece um equilíbrio único de velocidade, segurança e compatibilidade. A maioria das VPNs usam um protocolo específico por padrão, mas permitem que você o altere nas configurações do aplicativo.
Protocolos VPN comuns:
- OpenVPN: código aberto, extremamente seguro, de ampla compatibilidade e altamente configurável.
- WireGuard: incrivelmente rápido e muito eficiente. Relativamente novo, mas vêm sendo adotado de forma ampla rapidamente.
- IKEv2/IPsec: bom para celular graças à rápida reconexão, mas de código fechado e com suspeita de comprometimento.
- SoftEther: é rápido, seguro e contorna censura, mas não conta com boa compatibilidade.
- L2TP/IPsec: mais lento e potencialmente comprometido.
- SSTP: lida bem com firewalls, mas é de código fechado e potencialmente vulnerável.
- PPTP: desatualizado e inseguro. Deve ser evitado.
Para ter uma análise mais detalhada dos diferentes tipos de protocolos VPN, veja o nosso guia sobre protocolos VPN.
Handshakes de VPN
Os Handshakes de VPN são essenciais para iniciar conexões seguras. Esse processo envolve:
- Autenticação: verificação da identidade de ambos o cliente e servidor VPN.
- Troca de chaves: compartilhamento seguro de chaves de criptografia para a sessão.
- Negociação de parâmetros: acordando regras de comunicação e pacotes de cifras.
Durante o Handshake da VPN, o seu dispositivo e o servidor VPN trocam informações para estabelecer um canal seguro. Essas trocas resultam em uma chave secreta compartilhada, usada para criptografar e descriptografar dados durante a sessão de VPN.
Os Handshakes de VPN geralmente usam o algoritmo RSA (Rivest-Shamir-Adleman). O RSA é a base da segurança que tem sido usada na internet nas últimas duas décadas. No entanto, o comprimento da chave é crucial.
Para uma segurança adequada, use VPNs que implementam RSA-2048 ou RSA-4096. O RSA-1024 não é mais considerado seguro devido a avanços no poder computacional.
Ainda que seja amplamente seguro, o processo de Handshake gera uma “chave mestra” que poderia potencialmente descriptografar todas as sessões no servidor caso seja comprometido.
Nesse tipo de cenário, um criminoso poderia invadir o servidor VPN e obter acesso a todos os dados que passam pelo túnel VPN.
Para evitar isso, recomendamos o uso de serviços de VPN configurados com o PFS.
Perfect Forward Secrecy
O PFS (Perfect Forward Secrecy) é um recurso essencial de segurança em protocolos VPN modernos. Ele utiliza o algoritmo de troca de chaves Diffie-Hellman (DH) ou Elliptic Curve Diffie-Hellman (ECDH) para gerar chaves de sessão temporárias.
O PFS garante que a chave de criptografia nunca seja trocada na conexão.
Os benefícios do PFS incluem:
- Geração independente de chaves: tanto o servidor quanto o cliente VPN derivam, de forma independente, a mesma chave de criptografia sem trocá-la.
- Isolamento de sessão: cada conexão usa uma chave única, limitando o dano potencial de uma única sessão.
- Segurança temporal: chaves são temporárias e descartadas após o uso, impedindo a descriptografia futura de quaisquer dados capturados.
Ainda que o RSA seja crucial para a autenticação, ele não pode fornecer o PFS por si só. Para implementá-lo, o DH ou o ECDH devem ser incluídos no conjunto de cifras do RSA. O ECDH oferece uma segurança robusta para Handshakes, ao passo que o DH deve apenas ser usado juntamente com outras medidas devido às potenciais vulnerabilidades.
Os dois protocolos VPN que recomendamos (OpenVPN e WireGuard) são compatíveis com o PFS.
Autenticação de Hash
Os algoritmos seguros de Hash (SHA) desempenham um papel essencial de segurança ao:
- Verificar a integridade dos dados durante a transmissão
- Autenticar conexões cliente-servidor
- Prevenir a manipulação não autorizada de dados
Os SHAs usam uma função Hash para converter os dados fonte em cadeias de caracteres de comprimento fixo, conhecidos como “valor de Hash”. É uma função unidirecional e não pode ser revertida. Ao alterar apenas um caractere dos dados de origem de entrada, você muda totalmente a saída.
É assim que isso funciona nas comunicações de VPN:
- O emissor aplica uma função acordada de Hash nos dados.
- O recipiente gera um Hash dos dados recebidos usando a mesma função.
- Caso o Hash gerado corresponda ao Hash transmitido, a integridade dos dados é confirmada.
- Hashes não correspondentes indicam uma adulteração potencial e os dados são descartados.
A autenticação de Hash por SHA impede ataques man-in-the-middle, pois consegue detectar qualquer adulteração de um certificado, impedindo que hackers se passem por servidores VPN legítimos.
Para garantir a máxima segurança, recomendamos usar VPNs que adotam o SHA-2 ou superior. O SHA-1 tem vulnerabilidades que podem comprometer a sua segurança.