gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

⎇ main trust/README.md Markdown · 45 líneas · 2.0 KB Historia crudo

repo: clave de release ESTABLE y un publicador por perfil — se acabó firmar con una clave efímera c0545ea40 · Sergio ·

1# `trust/` — la raíz de confianza del repositorio de paquetes
2
3Acá vive **la clave PÚBLICA** con la que se firma el índice del repositorio. La privada **no está en
4git y no va a estarlo**: vive en `~/.config/takana/keys/release.ed25519`, modo 0600, fuera del repo —
5el mismo trato que las credenciales del Storage Box.
6
7## Por qué existe este directorio
8
9Hasta el 2026-09-10 `scripts/build-repo.sh` firmaba con una **clave efímera**: si no se le pasaba
10`KEY=`, generaba una nueva en cada corrida. Un índice firmado con una clave que nadie conoce y que
11cambia en cada build no lo verifica nadie — es decoración. El [SDD 19 §3.2](../docs/19-lanzamiento-publico.md)
12lo dice sin vueltas: *la firma sin gestión de claves es teatro*.
13
14Con la clave estable, un cliente puede hacer:
15
16```sh
17takana install <paquete> --repo <url> --trust <ruta a este dir> --require-signed
18```
19
20y eso **falla** si el índice no está firmado por esta clave. Que falle es el punto.
21
22## ⚠ Lo que esto NO es todavía
23
24Esto cierra el agujero de la clave efímera. **No cierra el SDD 19 §3.2**, que pide tres cosas más y
25ninguna existe:
26
271. **Una clave raíz FUERA DE LÍNEA** que firme a las de release. Hoy hay un solo nivel: si esta clave
28   se filtra, no hay nada por encima que permita revocarla y emitir otra.
292. **Rotación**: ningún procedimiento escrito de cómo se reemplaza, ni clientes que sepan aceptar más
30   de una clave durante la transición.
313. **Qué hacer si se filtra**: sin lo anterior, la respuesta honesta hoy es «reinstalar la confianza a
32   mano en cada cliente», que no escala más allá de nuestras propias máquinas.
33
34Mientras la distribución sea privada (SDD 28 §2, «operativo pero privado») eso es aceptable. **Antes
35de la primera descarga pública, no.**
36
37## La clave vigente
38
39| | |
40|---|---|
41| fichero | `release.ed25519.pub` |
42| algoritmo | Ed25519 |
43| creada | 2026-09-10 |
44| pública (b64) | `FRrKg+eXlFuCHUzHNMCaN7eJAesFcgVOQI8KD06IXws=` |
45| privada | `~/.config/takana/keys/release.ed25519` (0600, **nunca a git**) |

README.md

trust/ — la raíz de confianza del repositorio de paquetes

Acá vive la clave PÚBLICA con la que se firma el índice del repositorio. La privada no está en git y no va a estarlo: vive en ~/.config/takana/keys/release.ed25519, modo 0600, fuera del repo — el mismo trato que las credenciales del Storage Box.

Por qué existe este directorio

Hasta el 2026-09-10 scripts/build-repo.sh firmaba con una clave efímera: si no se le pasaba KEY=, generaba una nueva en cada corrida. Un índice firmado con una clave que nadie conoce y que cambia en cada build no lo verifica nadie — es decoración. El SDD 19 §3.2 lo dice sin vueltas: la firma sin gestión de claves es teatro.

Con la clave estable, un cliente puede hacer:

takana install <paquete> --repo <url> --trust <ruta a este dir> --require-signed

y eso falla si el índice no está firmado por esta clave. Que falle es el punto.

⚠ Lo que esto NO es todavía

Esto cierra el agujero de la clave efímera. No cierra el SDD 19 §3.2, que pide tres cosas más y ninguna existe:

  1. Una clave raíz FUERA DE LÍNEA que firme a las de release. Hoy hay un solo nivel: si esta clave se filtra, no hay nada por encima que permita revocarla y emitir otra.
  2. Rotación: ningún procedimiento escrito de cómo se reemplaza, ni clientes que sepan aceptar más de una clave durante la transición.
  3. Qué hacer si se filtra: sin lo anterior, la respuesta honesta hoy es «reinstalar la confianza a mano en cada cliente», que no escala más allá de nuestras propias máquinas.

Mientras la distribución sea privada (SDD 28 §2, «operativo pero privado») eso es aceptable. Antes de la primera descarga pública, no.

La clave vigente

ficherorelease.ed25519.pub
algoritmoEd25519
creada2026-09-10
pública (b64)FRrKg+eXlFuCHUzHNMCaN7eJAesFcgVOQI8KD06IXws=
privada~/.config/takana/keys/release.ed25519 (0600, nunca a git)