O que é criptografia e por que ela é importante
A criptografia é a ciência de proteger e verificar informações em trânsito e em repouso. Neste artigo, vamos tratar apenas da criptografia moderna usada em tecnologias computacionais. A criptografia moderna se baseia em quatro funções principais:
- A confidencialidade garante que apenas o destinatário autorizado possa ler os dados.
- A autenticação comprova a real origem dos dados e/ou a identidade do destinatário, dependendo das circunstâncias.
- O não repúdio garante que o remetente não possa negar o envio dos dados.
- A integridade garante que os dados não foram modificados nem adulterados de alguma forma no armazenamento ou durante a transmissão.
Sem a criptografia, seus dados online seriam transmitidos em texto em claro, permitindo que qualquer pessoa no caminho pudesse lê-los. Os algoritmos de criptografia embaralham esses dados e os transformam em texto cifrado. Assim, mesmo que um hacker capture seu tráfego, os bytes parecem apenas ruído sem a chave. É o mesmo princípio por trás de um túnel VPN.
Sempre que você compra algo online, a criptografia garante a transmissão segura dos dados do seu cartão para o site ou processador de pagamento. Os protocolos de autenticação verificam as transações.
O mesmo se aplica à comunicação privada em aplicativos com criptografia de ponta a ponta (E2EE), como o WhatsApp, ao armazenamento em nuvem, à navegação privada, aos gerenciadores de senhas e aos sistemas de registros médicos. Sempre que seus dados precisam permanecer confidenciais enquanto trafegam pela internet ou ficam armazenados em um servidor que não é seu, a criptografia está por trás do processo.
Como a criptografia funciona: princípios fundamentais e chaves
Outros quatro conceitos sustentam todo o restante.
- Texto em claro (plaintext) refere-se aos dados originais não modificados, como mensagens de texto e senhas.
- Texto cifrado (ciphertext) refere-se aos dados criptografados e embaralhados, que só podem ser convertidos novamente em texto em claro com o uso de chaves criptográficas.
- A chave criptográfica é uma sequência de bits binários (0 e 1, geralmente exibidos como números e letras em formato legível para humanos). Ela é gerada por um algoritmo específico para o tipo de criptografia em uso. O tamanho da chave e a aleatoriedade são as duas métricas de segurança mais importantes, porque juntas determinam quanto tempo um ataque de força bruta levaria.
- A cifra é o algoritmo matemático que transforma o texto em claro em texto cifrado. As cifras modernas são projetadas para resistir a atalhos que permitiriam a um invasor recuperar o texto em claro sem a chave.
Este é o fluxo simplificado. Antes que qualquer dado saia do seu dispositivo, a cifra e a chave criptográfica transformam o texto em claro em texto cifrado. Quando os dados chegam, o servidor usa uma chave correspondente para descriptografar o texto cifrado e transformá-lo novamente em texto em claro. A resposta passa pelo mesmo processo no sentido inverso: é criptografada no servidor e descriptografada no seu dispositivo.
Essa é a versão simplificada do processo. Na realidade, a comunicação online funciona como um túnel bidirecional em tempo real e, com a criptografia assimétrica, mais de uma chave criptográfica está envolvida. Isso nos leva à próxima seção.
Tipos de criptografia: simétrica vs. assimétrica
A criptografia simétrica e a assimétrica são os dois métodos mais usados, cada um com suas próprias vantagens e desvantagens. Em muitos protocolos usados na prática, elas são usadas em conjunto, combinando os pontos fortes de ambas. Essa abordagem é conhecida como criptografia híbrida.
A criptografia simétrica usa a mesma chave secreta para criptografar e descriptografar os dados. Seu dispositivo criptografa os dados com essa chave, e o servidor os descriptografa usando a mesma chave secreta criptográfica.
O problema é que ambas as partes precisam ter a chave secreta. Se você a enviar online, qualquer pessoa monitorando o canal pode capturá-la e, nesse ponto, a criptografia deixa de ser útil contra esse invasor.
Por outro lado, é uma solução que consome poucos recursos, o que a torna ideal para criptografar dados em repouso. Como você não precisa enviar os dados para nenhum lugar, você é o único detentor da chave secreta e pode usá-la para a descriptografia. Em um ambiente corporativo, a chave secreta é compartilhada entre vários usuários, mas a estrutura subjacente é a mesma.
A criptografia assimétrica resolve problemas de segurança relacionados ao compartilhamento de chaves. Ela usa uma chave pública para criptografar dados e uma chave privada para descriptografá-los. Qualquer pessoa pode usar a chave pública para criptografar dados e enviá-los ao seu dispositivo.
No entanto, apenas você tem a chave privada necessária para descriptografá-los. Por exemplo, as mensagens que você recebe em aplicativos com E2EE são criptografadas com uma chave pública, mas apenas a sua chave privada exclusiva pode transformar o texto cifrado em texto em claro.
O inverso também acontece: sempre que você navega em um site, usa a chave pública dele para criptografar a requisição HTTPS. O processo completo envolve um certificado SSL/TLS, um handshake e a negociação de chaves simétricas de sessão que os dois lados usam pelo restante da sessão.
O detalhe importante é que a chave pública não pode descriptografar dados que foram criptografados com ela. Apenas a chave privada correspondente pode fazer isso. E as chaves privadas nunca trafegam pela rede; elas permanecem no servidor local ou no dispositivo do usuário que as gerou.
Vale notar que a criptografia assimétrica exige muito processamento. Na prática, os protocolos a usam apenas no handshake inicial, somente pelo tempo necessário para chegar a um acordo seguro sobre uma chave de sessão compartilhada. Depois disso, eles mudam para a criptografia simétrica pelo restante da comunicação, o que é muito mais rápido para a maior parte do tráfego.
Métodos e algoritmos criptográficos comuns
Depois da teoria, estes são os algoritmos que realizam o trabalho na prática na internet moderna.
Advanced Encryption Standard (AES)
O AES é o atual padrão global de criptografia de dados. Ele é considerado praticamente inquebrável por força bruta, mas herda o problema de distribuição de chaves que todo método simétrico possui. O protocolo OpenVPN, amplamente usado por NordVPN, Proton VPN, Surfshark e muitos outros, usa AES-256, em que 256 se refere ao tamanho da chave em bits.
ChaCha20
O ChaCha20 é uma cifra simétrica mais recente, desenvolvida especificamente para ter bom desempenho em dispositivos sem aceleração de hardware dedicada para AES, como smartphones mais básicos, equipamentos IoT e chips móveis mais antigos.
Ele é otimizado para software em vez de ser dependente de hardware, o que o mantém tão seguro quanto o AES em teoria, mas com desempenho visivelmente mais rápido na prática em CPUs mais fracas. O ChaCha20, combinado com o Poly1305 para autenticação, é usado no protocolo VPN WireGuard, razão pela qual o WireGuard tende a ser mais ágil do que o OpenVPN em um celular.
RSA (Rivest-Shamir-Adleman)
O RSA é o algoritmo assimétrico original e popularizou o modelo de chaves pública e privada. Mesmo que um invasor intercepte cada byte de uma troca protegida por RSA, a chave privada nunca é transmitida junto com os dados.
Portanto, não há como derivá-la a partir dos dados que trafegam pela rede. O problema é que obter uma segurança adequada aos padrões atuais com RSA exige chaves muito grandes, de 2.048 ou 4.096 bits, e é por isso que métodos mais recentes vêm ocupando seu lugar aos poucos.
ECC (criptografia de curva elíptica)
A ECC é a resposta moderna ao problema do tamanho das chaves do RSA. Ela baseia sua segurança na dificuldade dos cálculos com curvas elípticas, em vez da fatoração de números inteiros, e o resultado prático é que uma chave ECC de 256 bits oferece aproximadamente a mesma segurança que uma chave RSA de 3.072 bits.
Chaves menores significam handshakes mais rápidos e menos uso de largura de banda, exatamente o motivo pelo qual a ECC está substituindo gradualmente o RSA no TLS moderno, em aplicativos de mensagens e em carteiras de criptomoedas.
Usos no mundo real
A criptografia moderna funciona silenciosamente em segundo plano em quase tudo o que você faz online.
O caso mais óbvio é o próprio navegador: todo site acessado via HTTPS usa criptografia para proteger a conexão entre você e o servidor. O ícone de cadeado ao lado de uma URL é apenas o sinal visível de que o handshake foi concluído com sucesso.
A partir daí, a lista segue. Aplicativos de mensagens com E2EE, como WhatsApp e Signal, dependem dela para manter as mensagens legíveis apenas para o destinatário. Os protocolos VPN usam criptografia para encapsular seu tráfego em um túnel criptografado. As redes de criptomoedas usam ECC para assinar transações. E os serviços em nuvem usam AES internamente para proteger os dados armazenados em seus discos.
Perguntas frequentes
+ Qual é a diferença entre criptografia simétrica e assimétrica?+ A criptografia é o mesmo que encriptação?
+ O que é criptografia quântica e ela é segura?