From f186b71ca51e83837db60de13322394bb5e6d348 Mon Sep 17 00:00:00 2001 From: murilo ijanc Date: Tue, 24 Mar 2026 21:41:06 -0300 Subject: Initial commit Import existing tesseras.net website content. --- pt-br/news/phase4-encryption-sealed/index.html | 187 +++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 pt-br/news/phase4-encryption-sealed/index.html (limited to 'pt-br/news/phase4-encryption-sealed/index.html') diff --git a/pt-br/news/phase4-encryption-sealed/index.html b/pt-br/news/phase4-encryption-sealed/index.html new file mode 100644 index 0000000..3cbd9bf --- /dev/null +++ b/pt-br/news/phase4-encryption-sealed/index.html @@ -0,0 +1,187 @@ + + + + + + Fase 4: Criptografia e Tesseras Seladas — Tesseras + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ + + Tesseras + +

+ + +
+ +
+ +
+

Fase 4: Criptografia e Tesseras Seladas

+

2026-02-14

+

Algumas memórias não são para todos. Um diário privado, uma carta para ser +aberta em 2050, um segredo de família selado até que os netos tenham idade +suficiente. Até agora, toda tessera na rede era aberta. A Fase 4 muda isso: +Tesseras agora criptografa conteúdo privado e selado com um esquema +criptográfico híbrido projetado para resistir tanto a ataques clássicos quanto +quânticos.

+

O princípio continua o mesmo — criptografar o mínimo possível. Memórias públicas +precisam de disponibilidade, não de sigilo. Mas quando alguém cria uma tessera +privada ou selada, o conteúdo agora é trancado por criptografia AES-256-GCM com +chaves protegidas por um mecanismo híbrido de encapsulamento de chaves +combinando X25519 e ML-KEM-768. Ambos os algoritmos precisam ser quebrados para +acessar o conteúdo.

+

O que foi construído

+

Encriptador AES-256-GCM (tesseras-crypto/src/encryption.rs) — Criptografia +simétrica de conteúdo com nonces aleatórios de 12 bytes e dados autenticados +associados (AAD). O AAD vincula o texto cifrado ao seu contexto: para tesseras +privadas, o hash do conteúdo é incluído; para tesseras seladas, tanto o hash do +conteúdo quanto o timestamp open_after são vinculados no AAD. Isso significa +que mover texto cifrado entre tesseras com datas de abertura diferentes causa +falha na decriptação — você não consegue enganar o sistema para abrir uma +memória selada antecipadamente trocando o texto cifrado para uma tessera com uma +data de selo anterior.

+

Mecanismo Híbrido de Encapsulamento de Chaves (tesseras-crypto/src/kem.rs) +— Troca de chaves usando X25519 (Diffie-Hellman clássico em curva elíptica) +combinado com ML-KEM-768 (o KEM pós-quântico baseado em reticulados padronizado +pelo NIST, anteriormente Kyber). Ambos os segredos compartilhados são combinados +via blake3::derive_key com uma string de contexto fixa ("tesseras hybrid kem +v1") para produzir uma única chave de criptografia de conteúdo de 256 bits. Isso +segue a mesma filosofia "dual desde o início" das assinaturas duplas do projeto +(Ed25519 + ML-DSA): se qualquer algoritmo for quebrado no futuro, o outro ainda +protege o conteúdo.

+

Envelope de Chave Selada (tesseras-crypto/src/sealed.rs) — Encapsula uma +chave de criptografia de conteúdo usando o KEM híbrido, para que apenas o dono +da tessera possa recuperá-la. O KEM produz uma chave de transporte, que é XORed +com a chave de conteúdo para produzir uma chave encapsulada armazenada junto ao +texto cifrado do KEM. Ao desselar, o dono decapsula o texto cifrado do KEM para +recuperar a chave de transporte, depois faz XOR novamente para recuperar a chave +de conteúdo.

+

Publicação de Chave (tesseras-crypto/src/sealed.rs) — Um artefato assinado +independente para publicar a chave de conteúdo de uma tessera selada após a data +open_after ter passado. O dono assina a chave de conteúdo, o hash da tessera e +o timestamp de publicação com suas chaves duais (Ed25519, com placeholder +ML-DSA). O manifesto permanece imutável — a publicação da chave é um documento +separado. Outros nós verificam a assinatura contra a chave pública do dono antes +de usar a chave publicada para decriptar o conteúdo.

+

EncryptionContext (tesseras-core/src/enums.rs) — Um tipo de domínio que +representa o contexto AAD para criptografia. Ele vive em tesseras-core e não em +tesseras-crypto porque é um conceito de domínio (não um detalhe de implementação +criptográfica). O método to_aad_bytes() produz serialização determinística: um +byte de tag (0x00 para Private, 0x01 para Sealed), seguido do hash de conteúdo +e, para Sealed, o timestamp open_after como i64 little-endian.

+

Validação de domínio (tesseras-core/src/service.rs) — +TesseraService::create() agora rejeita tesseras Sealed e Private que não +fornecem chaves de criptografia. Esta é uma validação no nível de domínio: a +camada de serviço garante que você não pode criar uma memória selada sem a +maquinaria criptográfica para protegê-la. A mensagem de erro é clara: "missing +encryption keys for visibility sealed until 2050-01-01."

+

Atualizações de tipos do coreTesseraIdentity agora inclui um campo +opcional encryption_public: Option<HybridEncryptionPublic> contendo tanto as +chaves públicas X25519 quanto ML-KEM-768. KeyAlgorithm ganhou as variantes +X25519 e MlKem768. O layout do sistema de arquivos de identidade agora +suporta node.x25519.key/.pub e node.mlkem768.key/.pub.

+

Testes — 8 testes unitários para AES-256-GCM (roundtrip, chave errada, texto +cifrado adulterado, AAD errado, falha de decriptação cross-context, nonces +únicos, mais 2 testes baseados em propriedades para payloads arbitrários e +unicidade de nonces). 5 testes unitários para HybridKem (roundtrip, par de +chaves errado, X25519 adulterado, determinismo do KDF, mais 1 teste baseado em +propriedades). 4 testes unitários para SealedKeyEnvelope e KeyPublication. 2 +testes de integração cobrindo o ciclo de vida completo de tesseras seladas e +privadas: gerar chaves, criar chave de conteúdo, criptografar, selar, desselar, +decriptar, publicar chave e verificar — o ciclo completo.

+

Decisões de arquitetura

+ +

O que vem a seguir

+ +

Tesseras seladas fazem do Tesseras uma verdadeira cápsula do tempo. Um pai agora +pode gravar uma mensagem para o neto que ainda não nasceu, selá-la até 2060 e +saber que o envelope criptográfico vai resistir — mesmo que os computadores +quânticos do futuro tentem abri-lo antes da hora.

+ +
+ +
+ + + + -- cgit v1.2.3