◇ OpenCyber Academy
Engenharia · Capítulo 13 · Português

Capítulo 13 — Sistemas de dados

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 13 — Sistemas de dados

Mapa da aula

Aula 13 publicada. Mapa, exemplo, EX037.

flowchart TD
  N0["13.1 Três ferramentas para dados armazenados"]
  N1["13.2 Armazenar senhas"]
  N2["13.3 Cifração em repouso"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX037"]

Desenho lógico

flowchart LR
  N0["13.1 Três ferramentas para dados armazenados"]
  N1["13.2 Armazenar senhas"]
  N2["13.3 Cifração em repouso"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3 --> Q["EX037"]
[13.1 Três ferramentas para dados armazenados]
    |
    v
[13.2 Armazenar senhas]
    |
    v
[13.3 Cifração em repouso]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX037]

Objetivos de aprendizagem

Você vai (1) escolher entre hash, cifração e tokenização para dados armazenados; (2) armazenar senhas com funções que exigem muita memória (memory-hard); (3) planejar a cifração em repouso com chaves separadas.

13.1 Três ferramentas para dados armazenados

O banco de dados da Ridgeway guarda nomes, endereços e dados bancários dos clientes, além das leituras dos medidores. Aiyana aprende a escolher a ferramenta certa para cada campo. A cifração esconde dados que precisarão ser lidos depois, como os dados bancários para débito automático. A tokenização substitui os dados por uma referência sem significado guardada em outro lugar, útil quando a maioria dos sistemas precisa apenas de um marcador. O hash, que é de mão única, serve para valores que só precisam ser conferidos, nunca recuperados. Escolher a ferramenta errada, como calcular o hash de dados bancários que precisam ser usados ou cifrar senhas que nunca precisam ser decifradas, cria sistemas quebrados ou riscos desnecessários.

13.2 Armazenar senhas

As senhas do portal dos clientes nunca devem ser armazenadas em texto claro nem apenas com um hash rápido como o SHA-256, porque atacantes que roubem a tabela podem testar bilhões de palpites por segundo. Aiyana recomenda uma função de hash de senhas memory-hard, o Argon2id da RFC 9106, que obriga cada palpite a usar memória e tempo significativos, com um salt aleatório único por usuário. Se o Argon2 não estiver disponível, o scrypt da RFC 7914 ou o PBKDF2 com um número alto de iterações são alternativas. O hashlib do Python oferece scrypt e pbkdf2_hmac; o código de produção ainda assim usa uma biblioteca avaliada de hash de senhas, com padrões sensatos.

13.3 Cifração em repouso

Para os dados bancários, a Ridgeway usa cifração do banco de dados com uma chave de cifração de dados, ela própria cifrada por uma chave de cifração de chaves guardada no serviço de chaves, um padrão chamado cifração envelopada (envelope encryption). Aiyana explica seu benefício: rotacionar a chave de cifração de chaves exige recifrar apenas as pequenas chaves de dados, e não o banco de dados inteiro. Ela também anota um limite: a cifração em repouso protege contra discos e backups roubados, mas não contra um atacante que consulta a aplicação em execução, que decifra os dados para os usuários legítimos. O controle de acesso e o monitoramento continuam essenciais ao lado da cifração.

Exemplo resolvido

Aiyana atribui a cifração aos dados bancários, tokens aos sistemas de relatórios e o Argon2id com salts por usuário às senhas do portal, e projeta a cifração envelopada com as chaves no serviço de chaves.

Caso sintético. O banco de dados é inventado; a RFC 9106 e a RFC 7914 são reais.

Erros e limites

A cifração em repouso não impede o roubo pelo nível da aplicação. Um hash de senha lento ainda falha se os usuários escolherem senhas muito comuns, então limitação de tentativas e verificação de vazamentos ajudam.

Exercícios

Síntese

Associar hash, cifração e tokenização a cada campo, com hash de senhas resistente em memória e cifração envelopada, protege os dados armazenados de forma proporcional.

Continue estudando — aula 13 (capítulo 13 de 50)

← Capítulo 12 · Índice das aulas · Capítulo 14 →

Continue para a próxima aula já escrita.