Criptografia Prática
A criptografia é a espinha dorsal matemática de toda a segurança da informação contemporânea. Compreender a diferença entre cifras de bloco e fluxo, o poder das curvas elípticas, a unidirecionalidade das funções hash e a cadeia de confiança X.509 é essencial para garantir confidencialidade, integridade, autenticidade e não-repúdio em aplicações modernas.
Introdução e Pilares Fundamentais da Criptografia
Historicamente vista como a arte de ocultar mensagens militares, a criptografia moderna é uma ciência exata baseada na teoria da informação, teoria dos números e complexidade computacional. No contexto corporativo, ela atua fornecendo quatro garantias de segurança primordiais:
Confidencialidade
Assegura que somente destinatários autorizados que possuem a chave criptográfica consigam decifrar e ler o conteúdo da mensagem.
Integridade
Garante que a informação não foi adulterada, corrompida ou truncada durante o trânsito ou armazenamento não autorizado.
Autenticidade
Comprova inequivocamente a identidade do emissor ou a legitimidade da origem do documento ou serviço.
Não-Repúdio
Impede que o emissor negue a autoria da transação ou mensagem enviada, garantido pela assinatura digital com chave privada única.
O Princípio de Kerckhoffs e a Máxima de Shannon
Formulado em 1883 por Auguste Kerckhoffs e refinado por Claude Shannon ("the enemy knows the system"), este é o dogma mais importante da criptografia: a segurança de um sistema criptográfico deve depender exclusivamente do sigilo da chave, e não do segredo do algoritmo. Algoritmos proprietários e secretos ("segurança por obscuridade") quase invariavelmente contêm falhas matemáticas catastróficas. Padrões abertos e amplamente escrutinados pela comunidade científica internacional (como o AES e o SHA-2) são os únicos confiáveis.
Os Três Estados dos Dados
Toda estratégia de defesa em profundidade deve contemplar a proteção criptográfica nos três estados da informação:
- Dados em Trânsito (Data in Transit): Dados trafegando por redes públicas ou internas. Protegidos por protocolos de camada de transporte e rede, como TLS 1.3, IPsec, SSH e WireGuard.
- Dados em Repouso (Data at Rest): Dados gravados em discos rígidos, fitas, bancos de dados ou buckets de nuvem. Protegidos por criptografia de disco completo (LUKS, BitLocker), TDE (Transparent Data Encryption) em bancos de dados e chaves gerenciadas por KMS (Key Management Service).
- Dados em Uso (Data in Use): Dados carregados na memória RAM e processados pela CPU. Estado historicamente mais vulnerável, hoje mitigado por tecnologias de Confidential Computing e enclaves de hardware protegidos (como AMD SEV e Intel SGX).
Criptografia Simétrica, Assimétrica, Hashes e PKI
1. Criptografia Simétrica: Velocidade e Cifras Modernas
Na criptografia simétrica, a mesma chave secreta é utilizada para cifrar e decifrar os dados. Sua grande vantagem é o alto desempenho computacional, permitindo cifrar terabytes de tráfego de rede ou discos inteiros com impacto quase nulo na CPU graças a instruções aceleradas por hardware (como o conjunto AES-NI).
| Algoritmo / Modo | Tipo | Tamanho de Chave | Status Atual | Avaliação de Segurança & Recomendação |
|---|---|---|---|---|
| AES-GCM | Bloco (128 bits) com AEAD | 128, 256 bits | Recomendado (Padrão Ouro) | Galois/Counter Mode. Oferece confidencialidade e autenticação integrada em uma única passada. Padrão do TLS 1.3 e do NIST. |
| ChaCha20-Poly1305 | Fluxo com AEAD | 256 bits | Recomendado | Excelente desempenho em processadores móveis (ARM) que não possuem aceleração AES por hardware. Utilizado no WireGuard e TLS 1.3. |
| AES-CBC | Bloco (128 bits) | 128, 256 bits | Legado / Cautela | Cipher Block Chaining. Exige IV (Vetor de Inicialização) imprevisível e esquema HMAC externo (Encrypt-then-MAC). Vulnerável a ataques de Padding Oracle se mal implementado. |
| AES-ECB | Bloco (128 bits) | 128, 256 bits | PROIBIDO | Electronic Codebook. Cifra blocos idênticos de texto claro em blocos idênticos de texto cifrado, preservando padrões visuais e estruturais dos dados (ex.: famoso Tux do Linux visível após cifragem). |
| DES / 3DES | Bloco (64 bits) | 56 / 112 bits | OBSOLETO / BANIDO | Chaves curtas quebráveis por força bruta e vulnerabilidade ao ataque Sweet32 devido ao tamanho de bloco minúsculo de 64 bits. |
2. Criptografia Assimétrica e Curvas Elípticas
A criptografia assimétrica soluciona o clássico problema da distribuição de chaves seguras: ela utiliza um par de chaves matematicamente correlacionadas:
- Chave Pública: Pode ser distribuída abertamente para qualquer pessoa. Utilizada para cifrar mensagens destinadas ao proprietário ou para verificar assinaturas digitais emitidas por ele.
- Chave Privada: Mantida sob sigilo absoluto pelo proprietário. Utilizada para decifrar dados recebidos ou para assinar digitalmente documentos.
RSA vs Curvas Elípticas (ECC) e Perfect Forward Secrecy
O RSA baseia sua segurança na dificuldade de fatorar o produto de dois grandes números primos. Por exigir chaves de no mínimo 2048 bits (com recomendação atual de 3072 ou 4096 bits), ele demanda alto consumo computacional.
A criptografia de Curvas Elípticas (ECC), como o algoritmo ECDSA e as modernas curvas Ed25519 / X25519, alcança o mesmo nível de segurança criptográfica com chaves de apenas 256 bits, gerando assinaturas menores, conexões mais rápidas e menor consumo de energia.
Em protocolos como o TLS 1.3, a troca de chaves ocorre exclusivamente via ECDHE (Elliptic Curve Diffie-Hellman Ephemeral), garantindo a propriedade de Perfect Forward Secrecy (PFS): mesmo que a chave privada de longa duração do servidor seja comprometida no futuro, gravações de tráfego passado realizadas por atacantes não poderão ser decifradas, pois cada sessão usou chaves temporárias descartadas após o término da conexão.
3. Funções de Resumo Criptográfico (Hash) e Assinaturas Digitais
Uma função hash criptográfica recebe uma entrada de dados de qualquer tamanho e produz um resumo (digest) de tamanho fixo. Suas propriedades obrigatórias são:
- Unidirecionalidade (Pre-image Resistance): É computacionalmente inviável recuperar a entrada original a partir do seu hash digest.
- Efeito Avalanche: A alteração de um único bit na entrada muda drasticamente mais de 50% dos bits do hash de saída.
- Resistência a Colisões (Collision Resistance): É computacionalmente inviável encontrar duas entradas diferentes que produzam exatamente o mesmo hash.
Aposentadoria do MD5 e SHA-1 • Hashes para Senhas vs Hashes de Integridade
Algoritmos como MD5 (quebrado em 2004) e SHA-1 (colisão prática demonstrada pelo Google em 2017 no ataque SHAttered) foram formalmente aposentados e não devem ser usados para segurança. O padrão mínimo atual é a família SHA-2 (SHA-256, SHA-512) ou SHA-3.
Atenção para Armazenamento de Senhas: Funções como SHA-256 foram projetadas para serem extremamente rápidas (milhões de hashes por segundo em GPUs). Por isso, nunca devem ser usadas puras para senhas, pois facilitam ataques de força bruta e tabelas rainbow. Senhas exigem funções lentas com fator de trabalho ajustável, consumo de memória e salting aleatório, como Argon2id (vencedor da Password Hashing Competition), bcrypt ou PBKDF2.
4. Infraestrutura de Chaves Públicas (PKI) e o Padrão X.509
Como ter certeza de que uma chave pública que alega pertencer a banco.com.br realmente pertence ao banco?
Essa garantia é fornecida pela PKI (Public Key Infrastructure) por meio de uma cadeia de confiança hierárquica:
- Autoridade Certificadora Raiz (Root CA): Entidade de máxima confiança pré-instalada no repositório de certificados do sistema operacional ou navegador. Possui um certificado autoassinado (Root Certificate) protegido em hardware de alta segurança (HSM) offline.
- Autoridade Certificadora Intermediária (Intermediate CA): Emite certificados finais no dia a dia. Se for comprometida, a Root CA pode revogá-la sem afetar a confiança de toda a cadeia global.
- Certificado Final / Folha (End-Entity / Leaf): Emitido para o domínio corporativo no padrão X.509, contendo a chave pública do servidor, período de validade, nome do domínio e SAN (Subject Alternative Name), assinado digitalmente pela autoridade intermediária.
Para revogar certificados vazados antes da expiração, utilizavam-se listas de revogação volumosas (CRL). O padrão moderno substituiu esse modelo por consultas em tempo real via OCSP (Online Certificate Status Protocol) e, mais eficientemente, pelo OCSP Stapling, no qual o próprio servidor web anexa a resposta da CA assinada junto ao handshake TLS, eliminando gargalos de desempenho e preservando a privacidade do usuário.
Laboratório Interativo: Web Crypto API Nativa
O laboratório abaixo executa operações criptográficas reais e matematicamente autênticas
diretamente no seu navegador via window.crypto.subtle (Web Crypto API do W3C). Não há simulações
estáticas nem envio de dados pela rede: tudo ocorre na memória da sua máquina.
Playground Criptográfico: Hashes, Cifragem AES-GCM e Cadeia PKI
Gerador de Digest e Demonstração do Efeito Avalanche
Digite qualquer mensagem abaixo. O digest SHA-256 é recalculado em tempo real. Clique em "Alterar 1 Caractere" para observar a completa alteração estatística do hash resultante.
Calculando...
Checklist de Auditoria e Governança Criptográfica
Utilize este checklist em análises de arquitetura, testes de intrusão ou auditorias de conformidade (PCI-DSS,
ISO 27001, LGPD). O estado dos itens é preservado no localStorage do seu navegador.
Procedimento de Verificação de Segurança Criptográfica
Questões de Fixação e Concursos Públicos
Analise os cenários abaixo, responda mentalmente e expanda para conferir o gabarito fundamentado com foco em concursos de alto nível (PF, Bacen, TCU) e certificações CompTIA Security+ e CISSP.
Questão 1 • TLS • Perfect Forward Secrecy
Um adversário avançado realizou a captura passiva de terabytes de tráfego HTTPS criptografado entre clientes
e o servidor de um tribunal durante seis meses. Anos depois, o invasor conseguiu invadir o servidor e extrair
a chave privada de longa duração do certificado digital da instituição. Sabendo que o servidor operava com
TLS 1.3 utilizando a suíte de troca de chaves ECDHE (Elliptic Curve Diffie-Hellman Ephemeral), o atacante
conseguirá decifrar o tráfego histórico gravado? Justifique.
Fundamentação Técnica:
O TLS 1.3 implementa obrigatoriamente mecanismos com Perfect Forward Secrecy (PFS), como o ECDHE. No Diffie-Hellman efêmero, as chaves simétricas de sessão que cifram cada conexão são geradas dinamicamente a partir de parâmetros matemáticos temporários descartados da memória RAM assim que a sessão é concluída. A chave privada do certificado do servidor é utilizada exclusivamente para autenticação digital (assinatura da troca de chaves), e não para decifrar a sessão. Portanto, mesmo com a chave privada mestre em mãos anos depois, o invasor não possui as chaves efêmeras de sessão e é matematicamente incapaz de decifrar o histórico capturado.
Questão 2 • Funções Hash • Ataques de Colisão
Diferencie uma "Colisão de Hash" de um "Ataque de Pré-Imagem" e explique por que a demonstração de colisão prática
em algoritmos como MD5 e SHA-1 compromete imediatamente a confiabilidade de sistemas de assinatura digital de contratos
e emissão de certificados digitais.
Fundamentação Técnica:
No Ataque de Pré-Imagem, o atacante recebe um hash específico H e tenta encontrar uma mensagem M tal que hash(M) = H.
Já no Ataque de Colisão, o atacante precisa apenas encontrar duas mensagens arbitrárias quaisquer M1 ≠ M2 que produzam o mesmo hash hash(M1) = hash(M2).
Pelo Teorema do Aniversário, encontrar colisões é ordens de grandeza mais fácil.
Em assinaturas digitais, assina-se o hash do documento. Se um atacante consegue gerar um contrato inofensivo M1 e um contrato malicioso M2 com o mesmo hash, ele pode colher a assinatura legítima em M1 e anexá-la a M2, que será validada como perfeitamente autêntica pela vítima.
Questão 3 • Infraestrutura PKI • Validação de Revogação
Ao acessar um website via HTTPS, o navegador precisa verificar se o certificado do servidor foi revogado antes
de seu vencimento natural. Quais são as principais limitações das Listas de Revogação de Certificados (CRL) e
como a tecnologia de OCSP Stapling soluciona os problemas simultâneos de latência e privacidade dos usuários?
Fundamentação Técnica:
A CRL exige o download periódico de listas que podem alcançar dezenas de megabytes, consumindo banda e introduzindo atrasos no handshake. O OCSP tradicional resolve o tamanho fazendo consultas pontuais ao servidor respondedor da CA para cada conexão; contudo, além de adicionar latência de rede adicional (RTT) antes da página carregar, o OCSP tradicional expõe para a Autoridade Certificadora o histórico de navegação de cada usuário em tempo real (problema sério de privacidade). O OCSP Stapling (RFC 6066) resolve ambos: o próprio servidor web consulta periodicamente a CA, armazena a resposta de status assinada em cache e a "grampeia" (staple) diretamente dentro do handshake TLS enviado ao navegador do usuário.
Fatos Essenciais e Conexões da Trilha
Tabela de referência rápida de forças criptográficas equivalentes segundo a recomendação oficial do NIST SP 800-57:
Equivalente a RSA de 3072 bits e Curva Elíptica (ECC) de 256 bits (ex.: ECDSA P-256 ou Ed25519).
Equivalente a RSA de 15360 bits e Curva Elíptica de 512 bits. Recomendado para dados top secret e era pós-quântica.
96 bits de Vetor de Inicialização único. Nunca reutilize o mesmo IV com a mesma chave AES em modo GCM!
Limite máximo imposto por navegadores e CA/Browser Forum para certificados públicos TLS X.509.
Resistente a ataques paralelos em GPU e ataques de canal lateral (side-channel). Vencedor da PHC.
Chaves efêmeras garantem que o vazamento futuro da chave do servidor não comprometa tráfego histórico gravado.