Fundamentos: o que a criptografia resolve
Em concursos e na prática do Judiciário, criptografia é cobrada como um conjunto de mecanismos para atender quatro necessidades: sigilo (confidencialidade), autenticação (provar identidade/origem), integridade (detectar alteração) e não repúdio (dificultar que o autor negue a autoria). Cada mecanismo criptográfico atende melhor a uma ou mais dessas necessidades.
- Sigilo: criptografia simétrica ou híbrida (simétrica + assimétrica).
- Autenticação: certificados, assinaturas digitais, HMAC (em contexto de chave compartilhada).
- Integridade: hash, HMAC, assinatura digital.
- Não repúdio: assinatura digital com chave privada + certificado (e, frequentemente, carimbo do tempo).
Criptografia simétrica
Conceito
Na criptografia simétrica, a mesma chave é usada para criptografar e descriptografar. É rápida e adequada para grandes volumes de dados (arquivos, bancos, tráfego de rede após a sessão estabelecida).
Exemplos de algoritmos: AES (padrão mais comum), ChaCha20. (DES/3DES aparecem em provas como legados, com ressalvas de segurança/desempenho.)
Modos de operação e IV/nonce (noções cobradas)
Algoritmos como AES operam em blocos e precisam de um modo de operação. Em provas, é comum aparecer:
- CBC: usa IV; exige padding; não fornece integridade.
- CTR: transforma em fluxo; usa nonce/contador; não fornece integridade.
- GCM: modo autenticado (AEAD): fornece sigilo e integridade/autenticidade dos dados.
IV/nonce não é “senha”: é um valor que deve ser único (e, em alguns modos, imprevisível) para evitar reutilização perigosa de chaves/fluxos. Reutilizar nonce no CTR/GCM pode comprometer a segurança.
Continue em nosso aplicativo
Você poderá ouvir o audiobook com a tela desligada, ganhar gratuitamente o certificado deste curso e ainda ter acesso a outros 5.000 cursos online gratuitos.
ou continue lendo abaixo...Baixar o aplicativo
Problema central: distribuição de chaves
O desafio da criptografia simétrica é como duas partes passam a compartilhar a chave com segurança. Em ambientes com muitos usuários (ex.: sistemas públicos), distribuir e proteger chaves simétricas individualmente não escala bem. Por isso, usa-se criptografia assimétrica para estabelecer chaves de sessão (modelo híbrido).
Passo a passo prático: criptografia híbrida (arquivo sigiloso)
Cenário: enviar um documento sigiloso entre sistemas (ou armazenar com proteção) de forma eficiente.
- 1) Gerar uma chave simétrica aleatória (ex.: 256 bits para AES).
- 2) Criptografar o arquivo com AES (preferencialmente AES-GCM), gerando: ciphertext + nonce/IV + tag de autenticação (no GCM).
- 3) Proteger a chave simétrica criptografando-a com a chave pública do destinatário (RSA-OAEP) ou usando um esquema baseado em EC (ECIES, conforme biblioteca/padrão).
- 4) Enviar/armazenar: (chave simétrica criptografada) + (nonce/IV) + (ciphertext) + (tag).
- 5) Destinatário usa sua chave privada para recuperar a chave simétrica e então descriptografar/verificar o arquivo.
Pacote típico (conceitual): { enc_key, nonce, ciphertext, tag }Criptografia assimétrica (chave pública)
Conceito
Na criptografia assimétrica, há um par de chaves matematicamente relacionadas: chave pública (pode ser distribuída) e chave privada (deve ser protegida). O que é cifrado com a pública só é decifrado com a privada (em esquemas de criptografia), e assinaturas são feitas com a privada e verificadas com a pública.
Exemplos: RSA, ECC (curvas elípticas, como P-256). Em geral, assimétrica é mais lenta e usada para: troca de chaves, assinaturas digitais e autenticação.
Troca de chaves: (EC)DH
Em vez de “criptografar dados” diretamente com RSA, muitos protocolos usam Diffie-Hellman (DH) ou Elliptic Curve Diffie-Hellman (ECDH) para que as partes cheguem a um segredo compartilhado sem transmiti-lo em claro. Esse segredo é então derivado em chaves simétricas de sessão.
Ponto de prova: DH/ECDH por si só não autentica as partes; sem autenticação, é vulnerável a man-in-the-middle. A autenticação é feita com certificados/assinaturas no protocolo (ex.: TLS).
Passo a passo prático: assinatura digital de um documento
Cenário: assinar digitalmente um PDF de peça/processo para garantir autoria e integridade.
- 1) Calcular o hash do documento (ex.: SHA-256).
- 2) Assinar o hash com a chave privada do signatário (ex.: RSA-PSS ou ECDSA).
- 3) Anexar a assinatura ao documento (ou gerar um arquivo de assinatura) e incluir o certificado do signatário (ou referência à cadeia).
- 4) Verificação: o verificador recalcula o hash do documento e valida a assinatura com a chave pública do certificado, além de validar a cadeia de confiança e o status de revogação.
Assinatura digital (conceitual): assinatura = Sign(privKey, Hash(documento))Funções hash
Conceito
Uma função hash criptográfica transforma uma entrada de tamanho arbitrário em uma saída de tamanho fixo (ex.: 256 bits). Propriedades esperadas: resistência a pré-imagem (difícil achar mensagem a partir do hash), segunda pré-imagem e resistência a colisões (difícil achar duas mensagens diferentes com mesmo hash).
Exemplos: SHA-256, SHA-3. Em provas, MD5 e SHA-1 aparecem como algoritmos com colisões conhecidas (não recomendados para integridade/assinatura).
Usos típicos
- Integridade: comparar hash antes/depois (com ressalva: sem chave, não autentica a origem).
- Assinatura digital: assina-se o hash, não o arquivo inteiro.
- Armazenamento de senhas: não é “criptografar senha”; usa-se hash com salt e função lenta (ex.: bcrypt, scrypt, Argon2). (Em provas, diferenciar hash de criptografia é recorrente.)
HMAC (Hash-based Message Authentication Code)
Conceito
HMAC combina uma chave secreta compartilhada com uma função hash (ex.: HMAC-SHA-256) para produzir um código que garante integridade e autenticidade entre partes que compartilham a chave. Diferente de “hash puro”, o HMAC impede que terceiros forjem o código sem a chave.
Quando usar
- Comunicação entre serviços internos que compartilham segredo (ex.: integração entre módulos).
- Validação de mensagens em filas/integrações quando não há PKI envolvida.
Passo a passo prático: integridade/autenticidade de mensagem com HMAC
- 1) Emissor define a mensagem (payload) e calcula
hmac = HMAC(chave, payload). - 2) Envia payload + hmac.
- 3) Receptor recalcula o HMAC com a mesma chave e compara em tempo constante.
- 4) Se bater: mensagem íntegra e autenticada (para quem conhece a chave).
Exemplo (conceitual): hmac = HMAC_SHA256(chave_compartilhada, payload_json)Certificados digitais e PKI
O que é um certificado digital
Um certificado digital (ex.: X.509) vincula uma chave pública a uma identidade (pessoa, órgão, servidor, sistema). Ele é assinado por uma Autoridade Certificadora (CA). Em termos práticos, o certificado responde: “esta chave pública pertence a quem diz pertencer”.
Campos/ideias comuns em prova: Subject (titular), Issuer (quem emitiu), validade, uso de chave (Key Usage/Extended Key Usage), número de série, algoritmo de assinatura.
PKI (Public Key Infrastructure): conceito
PKI é o conjunto de políticas, processos e componentes para emitir, gerenciar, distribuir, revogar e validar certificados. Componentes típicos:
- CA (Autoridade Certificadora): emite e assina certificados.
- RA (Autoridade de Registro): valida identidade e solicita emissão à CA (em muitos modelos).
- Repositórios: publicação de certificados e listas/serviços de revogação.
- Políticas: CP/CPS (política e declaração de práticas), regras de emissão e uso.
Cadeia de confiança (chain of trust)
Na validação, o sistema constrói uma cadeia: certificado do titular → CA intermediária → CA raiz. A raiz é confiada porque está no repositório de “raízes confiáveis” do sistema/navegador/ambiente corporativo.
- Intermediárias reduzem exposição da raiz (boa prática: raiz offline).
- Validação inclui: assinatura de cada certificado pelo emissor, período de validade, usos permitidos e revogação.
Revogação: CRL e OCSP (noções)
Mesmo dentro da validade, um certificado pode ser revogado (ex.: comprometimento de chave, desligamento, erro de emissão).
- CRL: lista de certificados revogados publicada periodicamente.
- OCSP: consulta online do status de um certificado (bom para status mais atual).
Carimbo do tempo (timestamp)
Carimbo do tempo é um mecanismo para provar que uma assinatura/documento existia em um determinado momento. Uma Autoridade de Carimbo do Tempo (TSA) assina um token contendo o hash do documento e a data/hora confiável.
Uso típico: preservar validade probatória quando o certificado do signatário expira posteriormente, ou para reforçar a linha do tempo de atos processuais e documentos.
TLS/HTTPS: noções aplicadas
O que o TLS entrega
TLS (usado no HTTPS) fornece, em geral: sigilo (criptografia do tráfego), integridade e autenticação do servidor (e opcionalmente do cliente, em mTLS). Ele usa criptografia híbrida: assimétrica para autenticar/trocar chaves e simétrica para trafegar dados.
Handshake (visão prática)
- 1) Cliente conecta e propõe versões/cipher suites.
- 2) Servidor envia seu certificado (cadeia) e parâmetros de troca de chaves.
- 3) Cliente valida a cadeia (raiz confiável, validade, revogação, nome do servidor) e executa ECDH/DH para derivar chaves.
- 4) A partir daí, dados trafegam com criptografia simétrica (ex.: AES-GCM/ChaCha20-Poly1305) e integridade embutida (AEAD).
mTLS (mutual TLS) adiciona certificado do cliente para autenticação forte entre sistemas (comum em integrações sensíveis).
Certificados e assinaturas eletrônicas em sistemas públicos
Assinatura eletrônica x assinatura digital (distinção útil em prova)
- Assinatura eletrônica: termo amplo para qualquer método eletrônico de aceite/autoria (login/senha, biometria, clique, etc.). Pode ou não ter criptografia assimétrica.
- Assinatura digital: tipo específico de assinatura eletrônica baseada em criptografia assimétrica e certificado digital, com verificação por chave pública e potencial de não repúdio.
Fluxo típico de uso de certificado em um sistema
Cenário: um usuário assina um documento em um sistema institucional.
- 1) Identificação do certificado do usuário (token/cartão/arquivo/armazenamento seguro) e seleção do certificado adequado (uso para assinatura).
- 2) Geração do hash do documento no padrão exigido.
- 3) Assinatura do hash com a chave privada (que não deve sair do dispositivo seguro, quando aplicável).
- 4) Inclusão de cadeia de certificados e, quando requerido, carimbo do tempo.
- 5) Validação por terceiros: assinatura, cadeia, revogação e políticas.
Cuidados práticos cobrados
- Sigilo não é assinatura: assinatura garante integridade/autoria; para sigilo, é preciso criptografar.
- Hash não autentica: sem chave (HMAC) ou sem assinatura, qualquer um pode recalcular o hash.
- Certificado expirado x assinatura válida: com carimbo do tempo e validação adequada, a assinatura pode continuar verificável como “feita quando o certificado era válido”, dependendo da política.
- Proteção da chave privada: comprometimento da chave invalida confiança; revogação é essencial.
Exercícios (mecanismo apropriado por necessidade)
Parte A — Identifique o mecanismo principal
Para cada situação, indique o mecanismo mais apropriado: criptografia simétrica, criptografia assimétrica, hash, HMAC, assinatura digital, TLS/HTTPS, certificado/PKI, carimbo do tempo. (Algumas situações podem envolver combinação; escolha o principal.)
- 1) Proteger o conteúdo de um arquivo grande armazenado em disco para que terceiros não leiam.
- 2) Garantir que um documento não foi alterado desde que foi publicado, sem necessariamente provar autoria.
- 3) Garantir integridade e autenticidade de mensagens entre dois microserviços que compartilham um segredo.
- 4) Permitir que qualquer pessoa verifique que um servidor é realmente o domínio acessado via navegador.
- 5) Provar que um usuário assinou um documento e dificultar que ele negue posteriormente.
- 6) Estabelecer um canal seguro para tráfego web entre cliente e servidor, com sigilo e integridade.
- 7) Garantir que uma assinatura foi realizada em uma data/hora específica, mesmo que o certificado expire depois.
- 8) Enviar uma chave de sessão para criptografia simétrica de forma segura a um destinatário específico.
Parte B — Relacione necessidade ao objetivo de segurança
Associe cada item a um objetivo: sigilo, autenticação, integridade, não repúdio. (Pode haver mais de um.)
- 1) AES-GCM em um arquivo.
- 2) SHA-256 de um arquivo publicado em site.
- 3) HMAC-SHA-256 em uma requisição de API.
- 4) Assinatura ECDSA com certificado X.509.
- 5) Certificado de servidor validado no HTTPS.
- 6) Carimbo do tempo anexado à assinatura.
Parte C — Questões de armadilha (marque V/F)
- 1) ( ) Hash garante integridade e autenticação do emissor.
- 2) ( ) Criptografia simétrica é, em geral, mais rápida que assimétrica.
- 3) ( ) Diffie-Hellman sozinho impede ataque man-in-the-middle.
- 4) ( ) Assinatura digital é feita com a chave privada e verificada com a chave pública.
- 5) ( ) TLS usa criptografia assimétrica para todo o tráfego de dados após o handshake.
- 6) ( ) Um certificado revogado não deve ser aceito mesmo dentro do prazo de validade.