diff options
| author | murilo ijanc | 2026-03-24 21:41:06 -0300 |
|---|---|---|
| committer | murilo ijanc | 2026-03-24 21:41:06 -0300 |
| commit | f186b71ca51e83837db60de13322394bb5e6d348 (patch) | |
| tree | cd7940eaa16b83d2cde7b18123411bfb161f7ebb /pt-br/news/phase4-shamir-heir-recovery/index.html | |
| download | website-f186b71ca51e83837db60de13322394bb5e6d348.tar.gz | |
Initial commit
Import existing tesseras.net website content.
Diffstat (limited to 'pt-br/news/phase4-shamir-heir-recovery/index.html')
| -rw-r--r-- | pt-br/news/phase4-shamir-heir-recovery/index.html | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/pt-br/news/phase4-shamir-heir-recovery/index.html b/pt-br/news/phase4-shamir-heir-recovery/index.html new file mode 100644 index 0000000..d2df99f --- /dev/null +++ b/pt-br/news/phase4-shamir-heir-recovery/index.html @@ -0,0 +1,209 @@ +<!DOCTYPE html> +<html lang="pt-br"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Fase 4: Recuperação de Chaves por Herdeiros com Shamir's Secret Sharing — Tesseras</title> + <meta name="description" content="Tesseras agora permite dividir sua identidade criptográfica em fragmentos distribuídos a herdeiros de confiança — qualquer limiar deles pode reconstruir suas chaves, mas menos que isso não revela nada."> + <!-- Open Graph --> + <meta property="og:type" content="article"> + <meta property="og:title" content="Fase 4: Recuperação de Chaves por Herdeiros com Shamir's Secret Sharing"> + <meta property="og:description" content="Tesseras agora permite dividir sua identidade criptográfica em fragmentos distribuídos a herdeiros de confiança — qualquer limiar deles pode reconstruir suas chaves, mas menos que isso não revela nada."> + <meta property="og:image" content="https://tesseras.net/images/social.jpg"> + <meta property="og:image:width" content="1200"> + <meta property="og:image:height" content="630"> + <meta property="og:site_name" content="Tesseras"> + <!-- Twitter Card --> + <meta name="twitter:card" content="summary_large_image"> + <meta name="twitter:title" content="Fase 4: Recuperação de Chaves por Herdeiros com Shamir's Secret Sharing"> + <meta name="twitter:description" content="Tesseras agora permite dividir sua identidade criptográfica em fragmentos distribuídos a herdeiros de confiança — qualquer limiar deles pode reconstruir suas chaves, mas menos que isso não revela nada."> + <meta name="twitter:image" content="https://tesseras.net/images/social.jpg"> + <link rel="stylesheet" href="https://tesseras.net/style.css?h=21f0f32121928ee5c690"> + + + <link rel="alternate" type="application/atom+xml" title="Tesseras" href="https://tesseras.net/atom.xml"> + + + <link rel="icon" type="image/png" sizes="32x32" href="https://tesseras.net/images/favicon.png?h=be4e123a23393b1a027d"> + +</head> +<body> + <header> + <h1> + <a href="https://tesseras.net/pt-br/"> + <img src="https://tesseras.net/images/logo-64.png?h=c1b8d0c4c5f93b49d40b" alt="Tesseras" width="40" height="40" class="logo"> + Tesseras + </a> + </h1> + <nav> + + <a href="https://tesseras.net/pt-br/about/">Sobre</a> + <a href="https://tesseras.net/pt-br/news/">Notícias</a> + <a href="https://tesseras.net/pt-br/releases/">Lançamentos</a> + <a href="https://tesseras.net/pt-br/faq/">FAQ</a> + <a href="https://tesseras.net/pt-br/subscriptions/">Inscrições</a> + <a href="https://tesseras.net/pt-br/contact/">Contato</a> + + </nav> + <nav class="lang-switch"> + + <a href="https://tesseras.net/news/phase4-shamir-heir-recovery/">English</a> | <strong>Português</strong> + + </nav> + </header> + + <main> + +<article> + <h2>Fase 4: Recuperação de Chaves por Herdeiros com Shamir's Secret Sharing</h2> + <p class="news-date">2026-02-15</p> + <p>O que acontece com suas memórias quando você morre? Até agora, Tesseras +conseguia preservar conteúdo ao longo de milênios — mas as chaves privadas e +seladas morriam com o dono. A Fase 4 continua com uma solução: Shamir's Secret +Sharing, um esquema criptográfico que permite dividir sua identidade em +fragmentos e distribuí-los para as pessoas em quem você mais confia.</p> +<p>A matemática é elegante: você escolhe um limiar T e um total N. Qualquer T +fragmentos reconstroem o segredo completo; T-1 fragmentos não revelam +absolutamente nada. Isso não é "quase nada" — é informação-teoricamente seguro. +Um atacante com um fragmento a menos que o limiar tem exatamente zero bits de +informação sobre o segredo, independentemente do poder computacional que tenha.</p> +<h2 id="o-que-foi-construido">O que foi construído</h2> +<p><strong>Aritmética de corpo finito GF(256)</strong> (<code>tesseras-crypto/src/shamir/gf256.rs</code>) — +Shamir's Secret Sharing requer aritmética em um corpo finito. Implementamos +GF(256) usando o mesmo polinômio irredutível do AES (x^8 + x^4 + x^3 + x + 1), +com tabelas de lookup para logaritmo e exponenciação computadas em tempo de +compilação. Todas as operações são em tempo constante via consulta a tabelas — +sem ramificações baseadas em dados secretos. O módulo inclui o método de Horner +para avaliação de polinômios e interpolação de Lagrange em x=0 para recuperação +do segredo. 233 linhas, exaustivamente testado: todos os 256 elementos para +propriedades de identidade/inverso, comutatividade e associatividade.</p> +<p><strong>ShamirSplitter</strong> (<code>tesseras-crypto/src/shamir/mod.rs</code>) — A API principal de +split/reconstruct. <code>split()</code> recebe uma fatia de bytes do segredo, uma +configuração (limiar T, total N) e a chave pública Ed25519 do dono. Para cada +byte do segredo, constrói um polinômio aleatório de grau T-1 sobre GF(256) com o +byte do segredo como termo constante, e então o avalia em N pontos distintos. +<code>reconstruct()</code> recebe T ou mais fragmentos e recupera o segredo via +interpolação de Lagrange. Ambas as operações incluem validação extensiva: +limites do limiar, consistência de sessão, correspondência de impressão digital +do dono e verificação de checksum BLAKE3.</p> +<p><strong>Formato HeirShare</strong> — Cada fragmento é um artefato autocontido e serializável +com:</p> +<ul> +<li>Versão do formato (v1) para compatibilidade futura</li> +<li>Índice do fragmento (1..N) e metadados de limiar/total</li> +<li>ID de sessão (8 bytes aleatórios) — impede mistura de fragmentos de sessões +diferentes</li> +<li>Impressão digital do dono (primeiros 8 bytes do hash BLAKE3 da chave pública +Ed25519)</li> +<li>Dados do fragmento (os y-values de Shamir, mesmo comprimento do segredo)</li> +<li>Checksum BLAKE3 sobre todos os campos anteriores</li> +</ul> +<p>Os fragmentos são serializados em dois formatos: <strong>MessagePack</strong> (binário +compacto, para uso programático) e <strong>texto base64</strong> (legível por humanos, para +impressão e armazenamento físico). O formato texto inclui um cabeçalho com +metadados e delimitadores:</p> +<pre><code>--- TESSERAS HEIR SHARE --- +Format: v1 +Owner: a1b2c3d4e5f6a7b8 (fingerprint) +Share: 1 of 3 (threshold: 2) +Session: 9f8e7d6c5b4a3210 +Created: 2026-02-15 + +<dados MessagePack codificados em base64> +--- END HEIR SHARE --- +</code></pre> +<p>Este formato é projetado para ser impresso em papel, armazenado em um cofre +bancário ou gravado em metal. O cabeçalho é informacional — apenas o payload +base64 é analisado durante a reconstrução.</p> +<p><strong>Integração com CLI</strong> (<code>tesseras-cli/src/commands/heir.rs</code>) — Três novos +subcomandos:</p> +<ul> +<li><code>tes heir create</code> — divide sua identidade Ed25519 em fragmentos de herdeiros. +Solicita confirmação (sua identidade completa está em jogo), gera arquivos +<code>.bin</code> e <code>.txt</code> para cada fragmento e escreve <code>heir_meta.json</code> no diretório de +identidade.</li> +<li><code>tes heir reconstruct</code> — carrega arquivos de fragmentos (detecta +automaticamente formato binário vs texto), valida consistência, reconstrói o +segredo, deriva o par de chaves Ed25519 e opcionalmente o instala em +<code>~/.tesseras/identity/</code> (com backup automático da identidade existente).</li> +<li><code>tes heir info</code> — exibe metadados do fragmento e verifica o checksum sem expor +nenhum material secreto.</li> +</ul> +<p><strong>Formato do blob secreto</strong> — As chaves de identidade são serializadas em um +blob versionado antes da divisão: um byte de versão (0x01), um byte de flags +(0x00 para somente Ed25519), seguido da chave secreta Ed25519 de 32 bytes. Isso +deixa espaço para expansão futura quando as chaves privadas X25519 e ML-KEM-768 +forem integradas ao sistema de fragmentos de herdeiros.</p> +<p><strong>Testes</strong> — 20 testes unitários para ShamirSplitter (roundtrip, todas as +combinações de fragmentos, fragmentos insuficientes, dono errado, sessão errada, +limite threshold-1, segredos grandes até o tamanho de chave ML-KEM-768). 7 +testes unitários para aritmética GF(256) (propriedades de campo exaustivas). 3 +testes baseados em propriedades com proptest (segredos arbitrários até 5000 +bytes, configurações T-de-N arbitrárias, verificação de segurança +informação-teórica). Testes de roundtrip de serialização para ambos os formatos +MessagePack e texto base64. 2 testes de integração cobrindo o ciclo de vida +completo de herdeiros: gerar identidade, dividir em fragmentos, serializar, +desserializar, reconstruir, verificar par de chaves e assinar/verificar com +chaves reconstruídas.</p> +<h2 id="decisoes-de-arquitetura">Decisões de arquitetura</h2> +<ul> +<li><strong>GF(256) ao invés de GF(primo)</strong>: usamos GF(256) ao invés de um corpo primo +porque ele mapeia naturalmente para bytes — cada elemento é um único byte, +cada fragmento tem o mesmo comprimento do segredo. Sem aritmética de inteiros +grandes, sem redução modular, sem padding. Esta é a mesma abordagem usada pela +maioria das implementações reais de Shamir, incluindo SSSS e Hashicorp Vault.</li> +<li><strong>Tabelas de lookup em tempo de compilação</strong>: as tabelas LOG e EXP para +GF(256) são computadas em tempo de compilação usando <code>const fn</code>. Isso +significa zero custo de inicialização em tempo de execução e operações em +tempo constante via consulta a tabelas ao invés de loops.</li> +<li><strong>ID de sessão previne mistura entre sessões</strong>: cada chamada a <code>split()</code> gera +um novo ID de sessão aleatório. Se um herdeiro acidentalmente usar fragmentos +de duas sessões diferentes de divisão (por exemplo, antes e depois de uma +rotação de chaves), a reconstrução falha de forma limpa com um erro de +validação ao invés de produzir dados corrompidos.</li> +<li><strong>Checksums BLAKE3 detectam corrupção</strong>: cada fragmento inclui um checksum +BLAKE3 sobre seu conteúdo. Isso captura degradação de bits, erros de +transmissão e truncamento acidental antes de qualquer tentativa de +reconstrução. Um fragmento impresso em papel e escaneado via OCR vai falhar no +checksum se um único caractere estiver errado.</li> +<li><strong>Impressão digital do dono para identificação</strong>: os fragmentos incluem os +primeiros 8 bytes de BLAKE3(chave pública Ed25519) como impressão digital. +Isso permite aos herdeiros verificar a qual identidade um fragmento pertence +sem revelar a chave pública completa. Durante a reconstrução, a impressão +digital é verificada contra a chave recuperada.</li> +<li><strong>Formato duplo para resiliência</strong>: ambos os formatos binário (MessagePack) e +texto (base64) são gerados porque mídias físicas têm modos de falha diferentes +de armazenamento digital. Um pendrive pode falhar; papel sobrevive. Um QR code +pode ficar ilegível; texto base64 pode ser digitado manualmente.</li> +<li><strong>Versionamento do blob</strong>: o segredo é envolvido em um blob versionado +(versão + flags + material de chave) para que versões futuras possam incluir +chaves adicionais (X25519, ML-KEM-768) sem quebrar compatibilidade com +fragmentos existentes.</li> +</ul> +<h2 id="o-que-vem-a-seguir">O que vem a seguir</h2> +<ul> +<li><strong>Fase 4 continuada: Resiliência e Escala</strong> — NAT traversal avançado +(STUN/TURN), ajuste de performance (pool de conexões, cache de fragmentos, +SQLite WAL), auditorias de segurança, integração de nós institucionais, +empacotamento para sistemas operacionais</li> +<li><strong>Fase 5: Exploração e Cultura</strong> — navegador público de tesseras por +era/localização/tema/idioma, curadoria institucional, integração com +genealogia, exportação para mídia física (M-DISC, microfilme, papel livre de +ácido com QR)</li> +</ul> +<p>Com Shamir's Secret Sharing, Tesseras fecha a última lacuna crítica na +preservação a longo prazo. Suas memórias sobrevivem a falhas de infraestrutura +através de erasure coding. Sua privacidade sobrevive a computadores quânticos +através de criptografia híbrida. E agora, sua identidade sobrevive a você — +passada adiante para as pessoas que você escolheu, exigindo a cooperação delas +para desbloquear o que você deixou para trás.</p> + +</article> + + </main> + + <footer> + <p>© 2026 Tesseras Project. <a href="/atom.xml">News Feed</a> · <a href="https://git.sr.ht/~ijanc/tesseras">Source</a></p> + </footer> +</body> +</html> |