Documento Operacional · Fluxo de Captura · Público
Fluxo Operacional de uma Gravação Fato
Descrição do procedimento técnico aplicado em todas as gravações finalizadas pela plataforma, da autenticação inicial à publicação do manifesto contra-assinado. Acompanha o Documento Técnico de Segurança e a Especificação de Hash.
Visão geral do fluxo
Toda gravação Fato percorre, sem exceção, os seis estágios representados abaixo. As marcas em destaque indicam pontos de produção ou verificação criptográfica.
Figura 1. Estágios sequenciais de uma gravação. Os blocos destacados produzem ou consomem prova criptográfica.
Sequência operacional
As oito etapas a seguir são executadas em ordem rigorosa para cada gravação. Nenhuma exige confiança no operador, no servidor ou na rede — a integridade é demonstrada matematicamente em cada estágio.
- 1.
Autenticação e abertura de sessão
O cliente — versão web ou aplicativo desktop — abre uma conexão WebSocket autenticada com o token JWT do operador no endpoint /ws/record/{id}. A conexão permanece ativa durante toda a captura.
- 2.
Geração da chave de sessão
O cliente gera localmente um par de chaves ed25519 efêmero, válido apenas para a sessão corrente. A chave pública é transmitida no quadro inicial de metadados; a privada não transita pela rede.
- 3.
Streaming de vídeo em blocos
A tela é codificada em H.264 + AAC e transmitida ao servidor em blocos binários de aproximadamente um segundo. Cada bloco é gravado imediatamente em arquivo temporário — não há buffer em memória sujeito a perda em falhas.
- 4.
Cálculo do hash encadeado
À medida que cada bloco é recebido, o servidor calcula o SHA-256 do bloco concatenado ao hash do bloco anterior. A construção forma uma cadeia em que a modificação de qualquer segmento invalida todos os hashes subsequentes (vide Especificação de Hash).
- 5.
Monitoramento de adulteração
O cliente monitora, em tempo real, o ambiente de captura: alterações no DOM, revogação de permissões, troca de dispositivos de áudio, encerramento prematuro de janelas. Eventos suspeitos são registrados como tamperEvent com carimbo de tempo e incluídos no manifesto.
- 6.
Encerramento e composição do manifesto
Ao parar a gravação, o cliente envia o quadro {type:"stop"} com o hash do último bloco. O servidor calcula o SHA-256 do arquivo completo, compõe o manifesto JSON da sessão e o assina com sua chave ed25519 persistente.
- 7.
Publicação no armazenamento imutável
O arquivo finalizado e o manifesto assinado são publicados no bucket S3 (ou em armazenamento local, em ambiente de desenvolvimento). O registro no banco recebe a marca finalized = true e a gravação torna-se acessível no portal para download e auditoria.
- 8.
Verificação independente a qualquer tempo
Qualquer parte detentora do arquivo, do manifesto e das chaves públicas pode verificar offline a autenticidade e a integridade da gravação, sem depender da plataforma Fato. O procedimento é descrito no Documento de Segurança, § 5.
Campos registrados em cada gravação
Cada gravação registra, ao lado do conteúdo de vídeo, o conjunto de metadados abaixo. Todos os campos são incluídos no manifesto descrito no Documento de Segurança, § 2.3.
| Categoria | Conteúdo registrado |
|---|---|
| Identidade | E-mail do operador autenticado, identificador único da sessão (UUID v4), endereço IP de origem da conexão. |
| Sistema | Sistema operacional e versão; navegador e versão (versão web); modelo de hardware (versão desktop). |
| Tela | Resolução, escala DPI, monitor selecionado, idioma do sistema operacional. |
| Tempo | Carimbos de início e encerramento em UTC (ISO-8601), timezone local, duração total em milissegundos. |
| Contexto | URL e título da aba capturada (versão web); motivo da captura declarado pelo operador. |
| Integridade | Chave pública ed25519 do cliente; hash SHA-256 final; hash da cadeia (§ 2.2 do Documento de Segurança); lista de eventos de adulteração detectados. |