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

Capítulo 25 — Laboratório I

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 25 — Laboratório I

Mapa da aula

Aula 25 publicada. Mapa, exemplo, EX073.

flowchart TD
  N0["25.1 A tarefa do laboratório"]
  N1["25.2 Testes"]
  N2["25.3 O relatório do laboratório"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX073"]

Desenho lógico

flowchart LR
  N0["25.1 A tarefa do laboratório"]
  N1["25.2 Testes"]
  N2["25.3 O relatório do laboratório"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3 --> Q["EX073"]
[25.1 A tarefa do laboratório]
    |
    v
[25.2 Testes]
    |
    v
[25.3 O relatório do laboratório]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX073]

Objetivos de aprendizagem

Você vai (1) construir num laboratório uma pequena ferramenta de exportação protegida; (2) testá-la com casos positivos e negativos; (3) escrever um relatório de laboratório.

25.1 A tarefa do laboratório

No Laboratório I, a equipe de Priya constrói uma ferramenta que exporta registros sintéticos de leitores para uma biblioteca parceira, protegidos com cifração autenticada de uma biblioteca avaliada, usando os parâmetros do Capítulo 23. A ferramenta carrega uma chave de um cofre de segredos de teste, cifra cada registro com dados associados e grava um arquivo que a parceira consegue decifrar com a chave compartilhada. O laboratório usa apenas registros sintéticos; nenhum dado real de leitores entra no ambiente do laboratório. Cada membro da equipe revisa o código de outro antes de os testes rodarem, para que os erros sejam pegos cedo.

25.2 Testes

A equipe escreve os testes: a decifração devolve os registros originais; um byte adulterado causa falha; trocar os dados associados de dois registros causa falha; uma chave errada causa falha; e cifrar o mesmo registro duas vezes produz saídas diferentes. Um teste falha de início porque a equipe reutilizou por acidente um nonce fixo de um trecho de exemplo, de modo que as cifrações repetidas coincidiam. Eles removem o nonce fixo e deixam a biblioteca gerá-lo. O teste que falhou impediu que um erro perigoso chegasse à produção. Eles também acrescentam um teste de regressão para o bug do nonce.

25.3 O relatório do laboratório

Priya escreve o relatório: objetivo, projeto, parâmetros com citações, testes e resultados, o bug do nonce e sua correção, e as limitações. As limitações incluem o compartilhamento da chave por transferência manual, que um laboratório posterior vai substituir, e a falta de revisão de canais laterais. Ela inclui a saída dos testes e declara claramente que a ferramenta depende da criptografia da biblioteca e que a equipe não implementou nenhuma primitiva. O Dr. Echeverría avalia o relatório pela clareza e pela honestidade, além da correção. Ela também anexa os logs dos testes como apêndice.

Exemplo resolvido

A ferramenta de exportação da equipe passa em cinco testes depois que um bug de nonce fixo, vindo de um trecho de exemplo, é pego e removido, e o relatório de Priya declara as limitações.

Caso sintético. O laboratório e os registros são inventados.

Erros e limites

Códigos de exemplo muitas vezes contêm chaves ou nonces fixos para demonstração; nunca os copie. A transferência manual de chaves é um ponto fraco.

Exercícios

Síntese

O trabalho de laboratório comprova as escolhas de projeto com testes, e relatórios honestos registram tanto os bugs quanto os limites.

Continue estudando — aula 25 (capítulo 25 de 40)

← Capítulo 24 · Índice das aulas · Capítulo 26 →

Continue para a próxima aula já escrita.