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
-
EX073 — Cinco testes. Liste três dos cinco testes. Rubrica: 3 = três entre decifração correta, adulteração falha, dados associados trocados falham, chave errada falha, saídas diferentes;; 2 = dois;; 1 = um;; 0 = nenhuma.
-
EX074 — Bug do nonce. Que bug os testes revelaram? Rubrica: 3 = um nonce fixo copiado de um trecho de exemplo, tornando idênticas as cifrações repetidas;; 2 = nonce fixo;; 1 = vago;; 0 = nenhuma.
-
EX075 — Limitações do relatório. Cite uma limitação do relatório. Rubrica: 3 = transferência manual da chave ou falta de revisão de canais laterais;; 2 = uma;; 1 = vago;; 0 = nenhuma.
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.