Capítulo 45 — Revisão independente de projeto
Mapa da aula
Aula 45 publicada. Mapa, exemplo, EX133.
flowchart TD
N0["45.1 Preparar a revisão"]
N1["45.2 Achados da revisão"]
N2["45.3 Responder"]
N3["Síntese"]
N0 --> N1 --> N2 --> N3
N3 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX133"]
Desenho lógico
flowchart LR
N0["45.1 Preparar a revisão"]
N1["45.2 Achados da revisão"]
N2["45.3 Responder"]
N3["Síntese"]
N0 --> N1 --> N2 --> N3 --> Q["EX133"]
[45.1 Preparar a revisão]
|
v
[45.2 Achados da revisão]
|
v
[45.3 Responder]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX133]
Objetivos de aprendizagem
Você vai (1) preparar um projeto para revisão independente; (2) responder aos achados da revisão; (3) distinguir achados bloqueantes de achados consultivos.
45.1 Preparar a revisão
O projeto de revogação de Aiyana vai para uma banca de revisão independente: um criptógrafo de outra companhia, uma engenheira de confiabilidade e um auditor. Ela envia um pacote com uma semana de antecedência, com os requisitos, o modelo de ameaça, a arquitetura, os contratos de interface, o plano de testes e as questões em aberto. Ela lista as premissas explicitamente, como a de que a fila de mensagens preserva a ordem por medidor. Um bom pacote permite que os revisores gastem seu tempo com julgamento, e não reconstruindo o projeto a partir de anotações dispersas. Ela também inclui uma lista das fraquezas conhecidas, para que os revisores partam de uma base honesta.
45.2 Achados da revisão
A banca levanta cinco achados. Dois são bloqueantes: as mensagens de revogação não são autenticadas, de modo que um atacante na rede interna poderia forjar revogações e causar negação de serviço, e não há comportamento definido se um verificador perder mensagens enquanto estiver offline. Três são consultivos: nomenclatura, disposição do painel e uma sugestão de reutilizar um repositório de auditoria existente. Aiyana valoriza especialmente o primeiro achado: ela tinha protegido as leituras com cuidado, mas tratado as mensagens internas de controle como confiáveis. Cada achado é registrado com sua severidade e o revisor que o levantou.
45.3 Responder
Para os achados bloqueantes, Aiyana assina as mensagens de revogação com uma chave dedicada guardada no serviço de chaves e verificada por todos os assinantes da fila, e acrescenta uma etapa de reconciliação em que os verificadores, ao se reconectar, baixam a lista completa de revogação e comparam um hash dela com o valor publicado. Dos achados consultivos, ela aceita dois e recusa um, com uma justificativa. Ela reapresenta à banca o projeto alterado, e a banca encerra os achados bloqueantes. A revisão independente pegou uma falha que teria custado caro em produção.
Exemplo resolvido
A banca encontra mensagens de revogação não autenticadas e falta de comportamento offline; Aiyana acrescenta revogações assinadas e a reconciliação na reconexão e encerra os dois achados bloqueantes.
Caso sintético. A banca e os achados são inventados.
Erros e limites
Pacotes de revisão que escondem premissas recebem revisões superficiais. Tratar as mensagens internas como confiáveis é uma falha de projeto comum.
Exercícios
-
EX133 — Pacote de revisão. Liste quatro itens do pacote de revisão de Aiyana. Rubrica: 3 = quatro entre requisitos, modelo de ameaça, arquitetura, contratos, plano de testes, questões em aberto, premissas;; 2 = três;; 1 = um;; 0 = nenhuma.
-
EX134 — Revogação forjada. Por que as mensagens de revogação não autenticadas foram um achado bloqueante? Rubrica: 3 = atacantes na rede interna poderiam forjar revogações, causando negação de serviço;; 2 = falsificação;; 1 = menor;; 0 = nenhuma.
-
EX135 — Correção offline. Como o projeto revisado trata os verificadores que estiveram offline? Rubrica: 3 = baixam a lista completa de revogação na reconexão e comparam seu hash com o valor publicado;; 2 = baixar;; 1 = ignorar;; 0 = nenhuma.
Síntese
Uma revisão independente com um pacote completo encontra falhas que os projetistas deixam passar, especialmente a confiança depositada em mensagens internas.
Continue estudando — aula 45 (capítulo 45 de 50)
← Capítulo 44 · Índice das aulas · Capítulo 46 →
Continue para a próxima aula já escrita.