◇ OpenCyber Academy
Graduação · Capítulo 9 · Português

Capítulo 9 — Dados e bancos 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 9 — Dados e bancos de dados

Mapa da aula

Aula 09 publicada. Mapa, exemplo, EX017.

flowchart TD
  N0["9.1 Modelar dados"]
  N1["9.2 Tempos de vida dos dados"]
  N2["9.3 Cifração em repouso"]
  N3["9.5 Atividade prática"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX017"]

Desenho lógico

flowchart LR
  N0["9.1 Modelar dados"]
  N1["9.2 Tempos de vida dos dados"]
  N2["9.3 Cifração em repouso"]
  N3["9.5 Atividade prática"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX017"]
[9.1 Modelar dados]
    |
    v
[9.2 Tempos de vida dos dados]
    |
    v
[9.3 Cifração em repouso]
    |
    v
[9.5 Atividade prática]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX017]

Objetivos de aprendizagem

Você vai (1) modelar dados com entidades, atributos e relacionamentos; (2) escrever consultas SQL simples; (3) associar aos dados tempos de retenção e de confidencialidade; e (4) explicar como o tempo de vida dos dados determina a urgência quântica.

9.1 Modelar dados

Um banco de dados relacional guarda tabelas de linhas. Uma entidade (associado, conta, documento) se torna uma tabela; os atributos se tornam colunas; os relacionamentos se tornam chaves que ligam as tabelas. As consultas SQL selecionam, filtram e juntam: SELECT host FROM services WHERE kex_group = 'ECDHE-P256' devolve os hosts que usam um determinado grupo. Modelos bem feitos tornam a análise possível: se uma equipe de migração guarda cada observação criptográfica com a sua fonte e a sua data, ela pode depois perguntar quais observações estão desatualizadas.

A tabela de inventário da HCU registra, para cada linha, o host, o protocolo, o grupo, a fonte e a data da observação. A coluna de fonte distingue uma exportação de configuração de uma captura passiva, que têm confiabilidades diferentes.

9.2 Tempos de vida dos dados

Toda classe de dados tem um período de retenção (quanto tempo é guardada) e um tempo de confidencialidade (por quanto tempo a sua divulgação causaria dano). Eles diferem: as mensagens de autorização de cartão são guardadas por sete anos para disputas, mas são quase inofensivas depois que o cartão expira; os documentos de financiamento imobiliário são guardados e continuam sensíveis por 30 anos. Michele Mosca (2018) formulou a consequência quântica: se x é o tempo durante o qual os dados precisam continuar seguros, y o tempo para migrar e z o tempo até um computador quântico capaz, então x + y > z significa que os dados já estão em risco. Os bancos de dados são onde x é registrado, então um modelo de dados com atributos de tempo de vida é a primeira ferramenta quantitativa do planejamento da migração.

9.3 Cifração em repouso

Os bancos de dados cifram os dados em repouso com algoritmos simétricos como o AES-256, cujas chaves são envelopadas por chaves de cifração de chaves. A camada simétrica não é o problema quântico. O problema é como as chaves viajam: se as chaves do banco de dados são copiadas para outro local por um canal que usa transporte de chaves RSA ou ECDH, os backups gravados podem expô-las depois. O inventário, portanto, segue as chaves, e não apenas os dados.

Os jobs de backup da HCU, por exemplo, copiam chaves envelopadas entre os data centers pela mesma VPN que transporta o arquivo de financiamentos imobiliários.

9.4 Exemplo resolvido

A HCU modela data_class(name, retention_years, confidentiality_years, transfer_channel). Uma consulta encontra as classes com confidentiality_years >= 15 AND transfer_channel = 'vpn-ecdh': os documentos de financiamento imobiliário e os registros de identidade dos associados. Essas duas classes se tornam as primeiras candidatas à troca de chaves híbrida, antes do tráfego de cartões, de alto volume mas de vida curta.

O tráfego de cartões é alto em volume, mas perde o seu valor em poucos dias, então o "colete agora, decifre depois" importa pouco para ele. Os registros de financiamento imobiliário e de identidade mantêm o seu valor por décadas. Ordenar a migração pelo tempo de confidencialidade, e não pelo volume de tráfego ou pela facilidade, põe o esforço onde a exposição futura é maior. O resultado da consulta é uma lista inicial para a discussão com os donos dos dados, que podem conhecer outras classes de vida longa que a tabela ainda não contém.

9.5 Atividade prática

Crie uma tabela de cinco linhas com classes de dados sintéticas da HCU, com retenção, tempo de confidencialidade e canal. Escreva a consulta acima e justifique a ordem de migração que ela sugere.

Inclua pelo menos uma classe cuja retenção seja longa, mas cujo tempo de confidencialidade seja curto, como os relatórios anuais publicados, para que a diferença fique visível. A sua justificativa deve explicar por que cada classe cai onde cai e qual hipótese mudaria a sua posição. Compare a sua ordenação com a de um colega e anote qualquer classe que vocês posicionaram de forma diferente, com o motivo. Guarde a tabela; capítulos posteriores a ampliam.

9.6 Erros comuns e limites

A retenção é quanto tempo um registro é guardado; o tempo de confidencialidade é por quanto tempo a sua divulgação causaria dano. Eles muitas vezes diferem. A cifração em repouso protege as cópias armazenadas, mas não diz nada sobre as cópias enviadas por uma rede. Os tempos de vida mudam quando mudam as leis, os contratos ou as práticas de negócio, então cada um precisa de um responsável e de uma data de revisão; caso contrário, as prioridades da migração se afastam lentamente da realidade.

Exercícios

Síntese

Modelos de dados com atributos de tempo de vida transformam a pergunta quântica numa consulta. É preciso seguir as chaves, e não apenas os dados, para encontrar a exposição.

Continue estudando — capítulo 09 de 40

← Capítulo 08 · Índice de capítulos do curso · Capítulo 10 →

Siga para a próxima lição escrita.