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

Capítulo 34 — Criptografia e serviços de confiança: integração

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 34 — Criptografia e serviços de confiança: integração

Mapa da aula

Aula 34 publicada. Mapa, exemplo, EX100.

flowchart TD
  N0["34.1 Pontos de integração"]
  N1["34.2 Contratos de interface"]
  N2["34.3 Testes de ponta a ponta"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX100"]

Desenho lógico

flowchart LR
  N0["34.1 Pontos de integração"]
  N1["34.2 Contratos de interface"]
  N2["34.3 Testes de ponta a ponta"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3 --> Q["EX100"]
[34.1 Pontos de integração]
    |
    v
[34.2 Contratos de interface]
    |
    v
[34.3 Testes de ponta a ponta]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX100]

Objetivos de aprendizagem

Você vai (1) integrar o serviço de confiança ao faturamento, às operações de campo e ao monitoramento; (2) definir contratos de interface; (3) testar os fluxos de ponta a ponta.

34.1 Pontos de integração

O serviço de confiança toca muitos sistemas: o faturamento verifica as leituras, as operações de campo provisionam medidores substitutos, o monitoramento recebe alertas, o sistema de build solicita assinaturas de firmware e o gerenciamento de identidades controla o acesso da equipe. Aiyana lista cada integração com seus dados, protocolo e autenticação. Ela descobre que a ferramenta portátil das operações de campo precisa solicitar uma nova chave de medidor durante a substituição, o que não tinha sido projetado. A análise de integração revela fluxos ausentes como esse antes da implantação, quando mudar as interfaces ainda é barato. Ela registra cada fluxo numa tabela compartilhada que as equipes donas revisam juntas.

34.2 Contratos de interface

Para cada integração, Aiyana escreve um contrato: formatos de requisição e de resposta, códigos de erro, limites de taxa, método de autenticação e o que acontece quando o tempo se esgota (timeout). O contrato de assinatura diz que o sistema de build envia o digest do manifesto, e não a imagem inteira, e só recebe uma assinatura se dois aprovadores tiverem autorizado a versão. O contrato de provisionamento de chaves diz que as ferramentas portáteis nunca recebem chaves de medidor; elas recebem um blob cifrado que só o elemento seguro do medidor de destino consegue desembrulhar. Os contratos permitem que as equipes trabalhem de forma independente, preservando as propriedades de segurança.

34.3 Testes de ponta a ponta

Aiyana executa testes de ponta a ponta que atravessam todas as integrações: provisionar um medidor substituto, obter uma leitura, verificá-la no faturamento, enviar uma atualização de firmware, revogar o medidor antigo e confirmar que suas leituras são rejeitadas. Os testes rodam num ambiente de homologação (staging) com chaves sintéticas. Um teste revela que o faturamento ainda aceita as leituras do medidor antigo, porque o evento de revogação vai para o monitoramento, mas não para o faturamento. A correção encaminha as revogações por uma fila de mensagens que todos os verificadores assinam. Esses testes rodam antes de cada versão de qualquer sistema conectado.

Exemplo resolvido

Aiyana mapeia cinco integrações, escreve contratos para a assinatura e o provisionamento e descobre, com testes de ponta a ponta, que os eventos de revogação nunca chegavam ao faturamento.

Caso sintético. Os sistemas são inventados.

Erros e limites

Os contratos se desviam se não forem testados automaticamente. Os testes de ponta a ponta são lentos, então mantenha-os focados nos fluxos críticos para a segurança.

Exercícios

Síntese

A integração com contratos explícitos e testes de ponta a ponta faz o serviço de confiança funcionar entre sistemas sem vazar chaves nem perder eventos.

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

← Capítulo 33 · Índice das aulas · Capítulo 35 →

Continue para a próxima aula já escrita.