Criptografia - Conceito e Aplicabilidade
A criptografia está presente em praticamente todas as interações digitais que fazemos: quando acessamos um site com HTTPS, quando conectamos em um servidor via SSH, quando enviamos uma mensagem em um aplicativo de conversa ou quando fazemos uma compra online. Mesmo que passe despercebida, ela é a tecnologia que garante que informações sensíveis não sejam interceptadas, alteradas ou forjadas por terceiros.
Este é o primeiro post de uma série dedicada a explorar a criptografia sob a ótica de quem administra sistemas Linux. Aqui vamos entender o que é, para que serve e onde ela se aplica, a base conceitual necessária para os próximos posts, que abordarão criptografia simétrica, assimétrica, hashes, assinaturas digitais, certificados e implementações práticas.
O que é Criptografia?
Section titled “O que é Criptografia?”A palavra criptografia tem origem no grego kryptós (oculto) e gráphein (escrita), significando literalmente “escrita oculta”. Trata-se do conjunto de técnicas e princípios matemáticos utilizados para transformar informações legíveis em um formato ininteligível, de forma que apenas as partes autorizadas consigam recuperar o conteúdo original.
Em termos práticos, a criptografia responde a uma pergunta fundamental da segurança da informação:
Como posso enviar ou armazenar uma mensagem de tal forma que, mesmo que ela seja interceptada, ninguém além do destinatário legítimo consiga lê-la?
A resposta a essa pergunta evoluiu ao longo de milênios, de cifras rudimentares usadas por generais romanos até algoritmos matemáticos complexos que sustentam a internet moderna.
Objetivos da Criptografia
Section titled “Objetivos da Criptografia”A criptografia moderna vai muito além de simplesmente esconder mensagens. Ela é a base para atingir quatro objetivos fundamentais da segurança da informação:
| Objetivo | O que garante | Exemplo prático |
|---|---|---|
| Confidencialidade | Apenas o destinatário autorizado consegue ler a informação | Mensagens criptografadas em aplicativos de conversa |
| Integridade | Detectar se a informação foi alterada durante a transmissão ou armazenamento | Verificação de hash em downloads de imagens ISO |
| Autenticidade | Confirmar a identidade real do emissor da informação | Certificado digital de um site HTTPS |
| Não-repúdio | Impedir que o autor negue posteriormente ter produzido a informação | Assinatura digital em documentos e contratos |
Esses quatro pilares se relacionam diretamente com a chamada tríade CID (Confidencialidade, Integridade e Disponibilidade), amplamente utilizada como referência em segurança da informação.
Elementos Fundamentais
Section titled “Elementos Fundamentais”Para entender qualquer sistema criptográfico, é essencial conhecer os componentes básicos que fazem parte do processo:
- Texto claro (plaintext): a informação original, legível.
- Texto cifrado (ciphertext): o resultado após a aplicação do algoritmo criptográfico, ininteligível sem a chave correta.
- Cifra ou algoritmo: o método matemático utilizado para transformar o texto claro em texto cifrado (e vice-versa).
- Chave: o valor secreto (ou par de valores) que parametriza o algoritmo e determina o resultado da transformação.
- Cifragem (encryption): o processo de transformar texto claro em texto cifrado.
- Decifragem (decryption): o processo inverso, de recuperar o texto claro a partir do texto cifrado.
O fluxo básico pode ser representado assim:
Texto claro ──► [ Algoritmo + Chave ] ──► Texto cifradoTexto cifrado ──► [ Algoritmo + Chave ] ──► Texto claroUm Exemplo Simples no Linux
Section titled “Um Exemplo Simples no Linux”Antes de entrar em algoritmos complexos, podemos ilustrar o conceito com uma cifra clássica: a cifra de César, que desloca cada letra do alfabeto um número fixo de posições. Ela não é segura hoje em dia, mas é excelente para ilustrar o conceito.
Podemos aplicá-la diretamente no terminal Linux usando o utilitário tr:
# Cifragem (desloca 3 posições, clássica cifra de César)echo "criptografia" | tr 'a-zA-Z' 'd-za-cD-ZA-C'Saída:
fulswrjudildPara decifrar, basta aplicar o deslocamento inverso:
# Decifragemecho "fulswrjudild" | tr 'd-za-cD-ZA-C' 'a-zA-Z'Saída:
criptografiaNote que neste exemplo o “algoritmo” é o deslocamento de letras e a “chave” é o número 3. Qualquer pessoa que conheça esses dois elementos consegue reverter a mensagem, o que evidencia por que cifras assim são inseguras. Nos próximos posts veremos algoritmos modernos que resistem inclusive a análise por décadas.
Aplicabilidade no Mundo Real
Section titled “Aplicabilidade no Mundo Real”A criptografia deixou de ser um assunto militar ou acadêmico e passou a ser parte da infraestrutura básica da computação moderna. Alguns dos usos mais comuns:
Comunicação em Rede
Section titled “Comunicação em Rede”- HTTPS / TLS: protege o tráfego entre navegadores e sites, incluindo credenciais e dados de cartão.
- SSH: permite conexões remotas seguras a servidores.
- VPNs (IPsec, OpenVPN, WireGuard): criam túneis criptografados entre redes ou dispositivos.
- DNS sobre HTTPS/TLS (DoH/DoT): protege as consultas de DNS contra interceptação.
Armazenamento e Sistemas de Arquivos
Section titled “Armazenamento e Sistemas de Arquivos”- Criptografia de disco completo: LUKS/dm-crypt no Linux, BitLocker no Windows, FileVault no macOS.
- Criptografia por arquivo/diretório: eCryptfs, fscrypt, EFS.
- Mídias removíveis: proteção de pendrives e HDs externos.
Autenticação e Identidade
Section titled “Autenticação e Identidade”- Hashes de senha: armazenados em
/etc/shadowno Linux, utilizando algoritmos como SHA-512, bcrypt ou Argon2. - Chaves SSH: substituem senhas por pares de chaves criptográficas.
- Certificados digitais: identificam servidores, pessoas e dispositivos.
- Autenticação multifator (MFA): frequentemente baseada em algoritmos como TOTP.
Integridade de Dados
Section titled “Integridade de Dados”- Verificação de downloads: hashes SHA-256 publicados junto de imagens ISO ou pacotes.
- Assinaturas de pacotes: APT, DNF/YUM e outros gerenciadores verificam assinaturas digitais antes de instalar pacotes.
- Git: cada commit é identificado por um hash SHA que garante a integridade do histórico.
Documentos e Comunicação Pessoal
Section titled “Documentos e Comunicação Pessoal”- PGP / GPG: criptografia e assinatura de e-mails e arquivos.
- S/MIME: criptografia de e-mails baseada em certificados X.509.
- Assinatura digital de documentos: com validade jurídica em muitos países, incluindo o Brasil (ICP-Brasil).
Outras Aplicações
Section titled “Outras Aplicações”- Criptomoedas e blockchain: apoiadas em hashes e assinaturas digitais.
- Backups criptografados: ferramentas como
restic,borgeduplicity. - DRM e proteção de conteúdo digital.
A Criptografia no Dia a Dia de um Administrador Linux
Section titled “A Criptografia no Dia a Dia de um Administrador Linux”Para quem administra servidores Linux, a criptografia aparece em praticamente todas as camadas do sistema:
| Camada | Onde a criptografia atua |
|---|---|
| Autenticação | Hashes de senha em /etc/shadow, chaves SSH, PAM |
| Acesso remoto | SSH, SFTP, SCP, mosh |
| Armazenamento | LUKS, dm-crypt, eCryptfs, criptografia de swap |
| Rede | TLS em serviços (HTTPS, IMAPS, SMTPS), VPN, IPsec |
| Integridade | Verificação de pacotes (APT/DNF), AIDE, checksums |
| Aplicações | Bancos de dados com TLS, cofres de senha, GPG em backups |
Dominar os fundamentos da criptografia é, portanto, indispensável para configurar corretamente serviços, escolher algoritmos adequados, interpretar mensagens de erro em certificados e responder a incidentes de segurança.
Terminologia Essencial
Section titled “Terminologia Essencial”Para acompanhar os próximos posts da série, vale familiarizar-se desde já com alguns termos que aparecerão com frequência:
| Termo | Significado |
|---|---|
| Algoritmo | Método matemático usado para cifrar ou decifrar |
| Chave | Valor secreto que parametriza o algoritmo |
| Chave simétrica | Uma única chave é usada tanto para cifrar quanto para decifrar |
| Chave assimétrica | Um par de chaves (pública e privada) com funções complementares |
| Hash | Resumo de tamanho fixo gerado a partir de qualquer entrada |
| Assinatura digital | Combinação de hash + criptografia assimétrica para autenticar dados |
| Certificado digital | Documento eletrônico que associa uma chave pública a uma identidade |
| PKI | Infraestrutura de Chaves Públicas, o ecossistema de CAs, certificados e políticas |
| Autoridade Certificadora (CA) | Entidade confiável que emite e assina certificados digitais |
Considerações Finais
Section titled “Considerações Finais”A criptografia é, ao mesmo tempo, uma disciplina matemática antiga e uma das tecnologias mais dinâmicas da computação moderna. Neste post estabelecemos as bases: o que é, para que serve e onde é aplicada. Nos próximos artigos desta série, vamos aprofundar cada um dos temas apresentados aqui, começando pela distinção entre criptografia simétrica e criptografia assimétrica, passando por hashes, assinaturas digitais e chegando à implementação prática de certificados digitais e autoridades certificadoras em ambientes Linux.
Se este é seu primeiro contato com o tema, guarde uma ideia central: criptografia bem aplicada não impede que dados sejam interceptados, ela garante que, mesmo interceptados, não sirvam para nada a quem não possui a chave.
