Resumo
- Anunciado em 5 de setembro de 2026,
draft-templeman-scitt-framing-space-00é um rascunho Informational individual. Não é RFC, consenso da IETF nem proposta de linguagem normativa. - Seis escolhas binárias de framing geraram 64 sequências de bytes, todas aceitas pelo decoder. Houve 64 data-hash diferentes, mas um único Sig_structure e a mesma assinatura válida.
- Em 31 casos, decodificar e recodificar trocou silenciosamente os bytes pela forma canônica A. Se o serviço guardou apenas a recodificação, perdeu a preimage necessária para reproduzir o identificador já divulgado.
Dois operadores podem concordar que uma assinatura é válida e ainda assim procurar o registro em endereços diferentes. Um usa o hash do corpo recebido. Outro decodifica o corpo, emite novamente a mesma informação e calcula o hash dessa nova emissão. A semântica coincide; os bytes, não.
O rascunho de Nicholas Templeman, tornado público no anúncio de 5 de setembro, mede essa distância. O próprio documento evita uma conclusão maior: não define requisitos, não propõe redação e não fala pela IETF. Ele oferece um resultado reprodutível para trabalhos SCITT ainda em curso.
A assinatura vê uma fronteira menor
RFC 9052 manda construir um Sig_structure para assinar e verificar COSE. No COSE_Sign1, entram o contexto, atributos protegidos, dados externos autenticados e payload. Nem toda escolha usada para enquadrar o container CBOR exterior participa desse input.
RFC 8949 permite que o mesmo valor tenha mais de uma serialização. Arrays e maps podem usar comprimentos definidos ou indefinidos. Byte strings podem ser inteiras ou divididas em chunks. Um profile pode aceitar a presença ou ausência de uma tag. O decoder chega ao mesmo item, embora a rede tenha carregado outra sequência.
O objeto inicial A tem 165 octetos. O teste alterna seis eixos: tag 18; forma de comprimento do array exterior; forma do map de header não protegido; e codificação inteira ou fragmentada das byte strings de header protegido, payload e assinatura.
As 64 combinações variam entre 164 e 170 octetos. O cbor2 6.1.3 aceitou todas. Todas produziram o mesmo Sig_structure de 109 octetos. Por isso, a mesma assinatura pôde ser verificada 64 vezes.
Quando o SHA-256 foi aplicado aos bytes transmitidos, surgiram 64 data-hash distintos, sem colisão. É exatamente o que se espera de inputs diferentes. A assinatura também se comportou como esperado sobre seu input invariável. O risco nasce quando um painel resume as duas provas como “objeto válido”.
Uma operação sem erro pode destruir a evidência
Trinta e uma entradas retornaram exatamente aos bytes de A em um ciclo de leitura e nova emissão. O decoder não recusou nenhuma. A transformação, portanto, pode ocorrer como efeito normal de uma biblioteca.
Imagine que a API devolva o data-hash dos bytes recebidos e envie ao banco somente um valor parseado. O banco serializa esse valor quando precisa armazená-lo. Mais tarde, o serviço tenta auditar o ID usando o material salvo. Nos casos medidos, pode calcular o hash de A, não o da requisição original.
Se data-hash for chave de busca, deduplicação, registro, receipt ou segunda attestation, a perda deixa de ser interna. O mesmo conteúdo assinado aparece com duas identidades práticas. Um registro existente parece ausente. Uma segunda cópia passa por uma deduplicação que só comparava hashes.
O artefato de framing publica o procedimento e os resultados; o vetor de data-hash fornece o objeto inicial. A versão do decoder e a plataforma estão registradas, e um dos eixos foi recomputado independentemente em outra pilha.
Isso sustenta a observação técnica, não uma estatística sobre produção. O experimento também não varia largura de integers nem ordem de map keys. Portanto, 64 é uma demonstração do crescimento combinatório, não o limite do universo possível.
A fronteira correta vem antes do decoder
Listar framings proibidos é uma defesa fraca. Proibir tag ausente não resolve chunks nem comprimentos indefinidos; cada liberdade nova multiplica as combinações. A organização precisa definir a preimage, não apenas colecionar casos ruins.
Se a identidade é “como transmitido”, o serviço receptor deve preservar o corpo recebido em armazenamento imutável antes de decodificar. O hash é calculado sobre essa cópia e ligado a uma produção de bytes nomeada. A forma parseada e qualquer versão normalizada ficam como derivados com proveniência própria.
Se a identidade é uma forma determinística, o protocolo deve especificá-la e o receptor precisa rejeitar o que estiver fora dela. A seção 4.2 de RFC 8949 oferece uma base. O fato de um encoder emitir a preferred serialization não prova que o decoder aplicou uma política determinística à entrada.
O projeto as-transmitted, anterior à medição, usa nenhuma canonicalização e exige um seletor para a sequência exata definida pelo formato. Ele também é individual. O novo teste quantifica uma razão para essa precisão, mas não o transforma em padrão.
O hash não decide a autoridade de uso
RFC 9943 separa Signed Statement, Transparency Service, Receipt e avaliação. Os trabalhos atuais das APIs SCITT e do perfil CCF mostram por que data-hash pode se tornar coordenada real de inclusão e recuperação.
Ainda assim, cada prova tem voz limitada. Raw bytes registram o que um componente recebeu. A assinatura válida demonstra integridade do Sig_structure sob uma chave; a aplicação precisa verificar identidade e autorização. Receipt demonstra uma inclusão segundo regras do serviço. Nenhuma dessas etapas sozinha prova verdade semântica, atualidade ou permissão para agir.
Heng Lu pede realidade antes de narrativa. Aqui, a realidade não exige acusar uma empresa: decoder tolerante e encoder normalizador podem estar corretos isoladamente. A falha é tratá-los como conservadores da mesma evidência.
Sua primazia do código em execução leva o teste por gateway, fila, banco e API de leitura. A distinção entre capacidade técnica e autoridade impede que uma biblioteca, apenas porque consegue recodificar, ganhe o poder de renomear a prova fornecida ao cliente.
Canonicalização e wire hash não são respostas universais rivais. São escolhas de identidade. O erro é fazer uma escolha pública e destruir, no primeiro parse, a evidência que a justificava.
Sources
- https://councilof.ai/interop/scrapi-ccf/data-hash-framing-space.json
- https://councilof.ai/interop/scrapi-ccf/data-hash-vector.json
- https://datatracker.ietf.org/doc/draft-templeman-scitt-framing-space/
- https://datatracker.ietf.org/doc/draft-templeman-scitt-framing-space/history/
- https://datatracker.ietf.org/doc/html/draft-ietf-scitt-receipts-ccf-profile-04
- https://datatracker.ietf.org/doc/html/draft-ietf-scitt-scrapi-11
- https://datatracker.ietf.org/doc/html/draft-mih-sokolov-scitt-payload-binding-02
- https://heng.lu/on-data-sovereignty-technical-vs-practical-realities/
- https://heng.lu/on-why-btw-media-exists-and-why-reality-not-advocacy-is-the-product/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://mailarchive.ietf.org/arch/msg/i-d-announce/SWmiBXyZxMzQa7hNqWtnsJVqolc/
- https://www.ietf.org/archive/id/draft-templeman-scitt-framing-space-00.html
- https://www.rfc-editor.org/rfc/rfc8949.html
- https://www.rfc-editor.org/rfc/rfc9052.html
- https://www.rfc-editor.org/rfc/rfc9943.html
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
