Capítulo 12 — Segurança quântica e pós-quântica: fluxos de dados
Mapa da aula
Aula 12 publicada. Mapa, exemplo, EX023.
flowchart TD
N0["12.1 Rastreando os fluxos"]
N1["12.2 A CBOM"]
N2["12.3 Atividade prática — Laboratório I"]
N3["12.4 Controladores"]
N4["12.5 Caso resolvido"]
N5["12.7 Mantendo os rastreamentos atualizados"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX023"]
Desenho lógico
flowchart LR
N0["12.1 Rastreando os fluxos"]
N1["12.2 A CBOM"]
N2["12.3 Atividade prática — Laboratório I"]
N3["12.4 Controladores"]
N4["12.5 Caso resolvido"]
N5["12.7 Mantendo os rastreamentos atualizados"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX023"]
[12.1 Rastreando os fluxos]
|
v
[12.2 A CBOM]
|
v
[12.3 Atividade prática — Laboratório I]
|
v
[12.4 Controladores]
|
v
[12.5 Caso resolvido]
|
v
[12.7 Mantendo os rastreamentos atualizados]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX023]
Objetivos de aprendizagem
Você vai (1) rastrear os fluxos de dados de ponta a ponta através dos pontos de terminação; (2) montar uma lista de materiais criptográficos (CBOM) a partir de várias fontes; (3) calcular as frações de cobertura e de desconhecidos; e (4) identificar qual parte controla cada segmento.
12.1 Rastreando os fluxos
Um fluxo só está protegido com a força do seu segmento mais fraco. Rastreie os dados de embarque desde o sistema de um cliente através da CDN, do balanceador de carga da origem, do ingress, da malha de serviços, da fila de mensagens, da replicação do banco de dados e da cópia de backup. Em cada segmento, registre o protocolo, a troca de chaves, a autenticação, o tempo de vida dos dados e o controlador.
Na KLS, o rastreamento de um registro de embarque tem sete segmentos, e só o primeiro era híbrido quando o rastreamento foi desenhado. A regra do segmento mais fraco fez com que o fluxo fosse reportado como clássico, e não como um sétimo migrado.
12.2 A CBOM
Uma CBOM lista, por ativo e função, o algoritmo, os parâmetros, a implementação e a fonte da evidência. Monte-a mesclando exportações de configuração, resumos de logs, varreduras de imagens e declarações de fornecedores.
A CBOM da KLS mescla quatro alimentações: exportações de configuração do ingress e dos balanceadores de carga, logs de handshake do gateway, varreduras de imagens do registro e respostas de fornecedores. Cada linha mantém a sua fonte, para que um leitor possa ver que a entrada RSA-kex do banco de dados de faturamento veio da configuração, enquanto a troca de chaves do leitor veio de captura passiva. As linhas conflitantes são mantidas lado a lado e abrem uma tarefa, em vez de serem fundidas num único valor adivinhado.
12.3 Atividade prática — Laboratório I
# Lab I (ch 12): aggregate a synthetic cryptographic bill of materials (CBOM) and measure coverage.
records = [ # (asset, function, algorithm, source)
("api-gateway", "key-exchange", "X25519MLKEM768", "passive"), ("api-gateway", "signature", "RSA-2048", "config"),
("warehouse-scanner", "key-exchange", "ECDHE-P256", "passive"), ("warehouse-scanner", "signature", "ECDSA-P256", "code"),
("billing-db", "key-exchange", "RSA-kex", "config"), ("billing", "data-at-rest", "AES-256-GCM", "code"),
("forklift-telemetry", "unknown", "unknown", "none"), ("office-vpn", "key-exchange", "ECDHE-P384", "config")]
VULN = {"RSA-2048", "ECDHE-P256", "ECDSA-P256", "RSA-kex", "ECDHE-P384"}
assets = {r[0] for r in records}
unknown = {r[0] for r in records if r[2] == "unknown"}
vuln = [r for r in records if r[2] in VULN]
print(f"assets {len(assets)}, unknown {len(unknown)} ({100*len(unknown)/len(assets):.0f}%)")
print(f"quantum-vulnerable uses {len(vuln)}:", ", ".join(f"{a}/{f}" for a, f, _, _ in vuln))
print("hybrid key exchange present on:", [r[0] for r in records if "MLKEM" in r[2]])
Saída esperada:
assets 6, unknown 1 (17%)
quantum-vulnerable uses 5: api-gateway/signature, warehouse-scanner/key-exchange, warehouse-scanner/signature, billing-db/key-exchange, office-vpn/key-exchange
hybrid key exchange present on: ['api-gateway']
A unidade de telemetria da empilhadeira não tem nenhuma evidência; até que o fornecedor responda, ela continua desconhecida e bloqueia uma decisão de nível para a rede do armazém.
O Laboratório I conta ativos e usos separadamente, o que importa para os relatórios. Seis ativos e oito usos produzem dois denominadores diferentes: um ativo em seis é desconhecido (17 %), enquanto cinco usos em oito são vulneráveis ao quântico. A linha de dados em repouso de billing, AES-256-GCM, está corretamente ausente da lista de vulneráveis. O api-gateway aparece duas vezes, como híbrido na troca de chaves e vulnerável pela sua assinatura RSA-2048, que é o estado habitual de um serviço depois do seu primeiro passo de migração. Mude um registro para X25519MLKEM768 e execute de novo para ver as contagens mudarem.
12.4 Controladores
A KLS controla os seus balanceadores de carga, o ingress e o código; o provedor da CDN controla a borda; o provedor de nuvem controla a replicação do banco de dados gerenciado; os parceiros controlam os seus clientes SFTP. Anote o controlador ao lado de cada segmento e abra um chamado ou um pedido ao fornecedor para cada segmento que a KLS não pode mudar.
A coluna de controlador transforma o rastreamento num plano de trabalho. Os segmentos que a KLS controla recebem chamados de configuração; os segmentos controlados por outros recebem pedidos com um contato nomeado e uma data de acompanhamento. Na KLS, isso significou chamados para o balanceador de carga da origem, o ingress e o Kafka, e pedidos à CDN, ao provedor do banco de dados e aos mantenedores do SDK do armazenamento de objetos.
12.5 Caso resolvido
Rastreando um registro de embarque: cliente da API do cliente → borda da CDN (híbrido, controlada pela CDN) → LB da origem (clássico, KLS) → ingress (clássico, KLS) → pod da API → Kafka (TLS clássico, KLS) → replicação do Postgres gerenciado (provedor, algoritmo não documentado) → backup noturno para o armazenamento de objetos por HTTPS (SDK do provedor num job da KLS, clássico). Sete segmentos, quatro que a KLS pode mudar, um desconhecido.
Os quatro segmentos controlados pela KLS — balanceador de carga da origem, ingress, Kafka e a configuração do SDK do job de backup — entraram numa única sprint. A replicação do Postgres gerenciado se tornou uma pergunta ao provedor com prazo, e a sua situação de desconhecida manteve o fluxo inteiro fora da contagem de migrados até que o provedor respondesse por escrito.
12.6 Erros comuns e limites
- Parar o rastreamento na borda.
- Tratar os serviços gerenciados como "seguros por padrão" sem evidências.
- Ignorar os caminhos de backup e de replicação.
Parar na borda produziu a primeira afirmação errada da KLS de que o caminho do cliente era híbrido. Tratar o banco de dados gerenciado como seguro por padrão deixou o seu algoritmo de replicação sem documentação por meses; "gerenciado" diz quem o opera, não o que ele negocia. E o envio noturno de backup, que transporta os mesmos registros de dez anos, ficou totalmente de fora do primeiro rastreamento porque roda a partir de um job em lote, e não de um caminho de requisição. Rastreamentos desenhados só a partir dos caminhos de requisição costumam deixar de fora o tráfego de lote e de replicação.
12.7 Mantendo os rastreamentos atualizados
As arquiteturas mudam mais rápido do que os diagramas. Refaça o rastreamento de cada fluxo de nível 1 sempre que um salto for acrescentado ou substituído — uma nova fila de mensagens, um novo recurso da CDN, uma migração de bancos de dados autogerenciados para gerenciados — e acrescente o rastreamento à checklist de mudança desses trabalhos. Guarde o rastreamento como dados estruturados (segmento, protocolo, controlador, algoritmo, evidência) ao lado da CBOM, para que uma consulta possa listar todo fluxo de nível 1 com pelo menos um segmento clássico ou desconhecido. Essa consulta é a resposta honesta a "este fluxo está migrado?", porque um único segmento clássico deixa o fluxo inteiro exposto à gravação naquele ponto.
Exercícios
- EX023 — Fração de desconhecidos. No Laboratório I, que fração dos usos criptográficos (não dos ativos) é vulnerável ao quântico? Rubrica: 3 = 5 de 8 registros ≈ 63 %, observando o registro desconhecido.
- EX024 — Chamados por controlador. Para o rastreamento do caso resolvido deste capítulo, liste os pedidos externos que a KLS precisa abrir. Rubrica: 3 = CDN (suporte no salto até a origem), provedor do banco de dados gerenciado (criptografia da replicação), armazenamento de objetos/SDK.
Síntese
Os rastreamentos de ponta a ponta e uma CBOM de várias fontes mostram o algoritmo e o controlador de cada segmento; os desconhecidos e os segmentos externos se tornam pedidos explícitos.
Continue estudando — capítulo 12 de 30
← Capítulo 11 · Índice de capítulos do curso · Capítulo 13 →
Siga para a próxima lição escrita.