Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I2705 — Klíč uzlu lze rotovat, peeři následují nový klíč a starý klíč je odmítnut

Nabídnout rotaci klíče uzlu, kterou peeři, kteří důvěřovali starému klíči, mohou následovat k novému, po níž se hello starého klíče odmítne, a vyčistit události stažených klíčů z běžícího žurnálu bez čekání na restart.

PŘIPRAVENO vlna 1 · p0 · profil implementation · běží samostatně

Součást runtime-trust — Runtime je bezpečné zpřístupnit z jiného stroje a připojení k mesh nikomu nevěří omylem.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2705 bude přijato.

Cíl

Nabídnout rotaci klíče uzlu, kterou peeři, kteří důvěřovali starému klíči, mohou následovat k novému, po níž se hello starého klíče odmítne, a vyčistit události stažených klíčů z běžícího žurnálu bez čekání na restart.

Proč

Odděleno od I2134 dne 2026-10-14. I2134 zařídil, že klíč stažený z trust.allow ztratí své odkazy bez restartu (Cooperation::retrust), a jeho desired_state říkal „Tady neděláno“ o rotaci klíče uzlu a o vymazání událostí staženého klíče z běžícího žurnálu, zatímco jeho kritéria přijetí rotaci stále vyžadovala, takže nikdy nemohl být uzavřen. Kompromitovaný klíč lze nyní odříznout živě, ale nelze ho nahradit: neexistuje tok rotace (hrozba T11). Výchozí audit z 2026-10-09 na master 1fb8d6be44, mezera meshe 6 a řádek identity.

Aktuální stav

Identita uzlu se vytvoří jednou a načítá se ze souboru klíče (apps/majordomus-cli/src/mesh/identity.rs); nic ji nenahrazuje a žádná zpráva neříká peerovi, že klíč, kterému důvěřuje, nahrazuje jiný. Cooperation::retrust (apps/majordomus-cli/src/mesh/cooperation.rs), volaný z živého znovunačtení (apps/majordomus-cli/src/live.rs) přes capability::builtin::mesh::retrust, ukončuje spojení klíčů, kterým se už nedůvěřuje; události staženého klíče zůstávají v běžícím žurnálu, dokud znovunačtení po dalším restartu neuplatní platnou důvěru (I2124). Soubor klíče se zapisuje s režimem podle umask a poté se chmoduje na 0600 (apps/majordomus-cli/src/mesh/identity.rs); relace prismatic-majordomus-6e to opravuje přesně v této podobě na své větvi a není to práce tohoto úkolu.

Cílový stav

Příkaz rotuje klíč tohoto uzlu: novou identitu podepisuje stará, peeři, kteří starému klíči důvěřovali, přijmou nástupnictví a připojí se k novému klíči a další hello starého klíče se odmítne. Klíči staženému z platné důvěry se jeho události vyřadí z běžícího žurnálu při reloadu, který jej stáhl. docs/MESH.md popisuje rotaci a co peer při ní dělá.

Rozsah

  • apps/majordomus-cli/src/mesh/identity.rs
  • apps/majordomus-cli/src/mesh/trust.rs
  • apps/majordomus-cli/src/mesh/cooperation.rs
  • apps/majordomus-cli/src/mesh/journal.rs
  • apps/majordomus-cli/src/capability/builtin/mesh.rs
  • apps/majordomus-cli/tests/mesh_cooperation.rs
  • docs/MESH.md

Mimo rozsah

  • Ukončení odkazů staženého klíče bez restartu, což dodalo I2134
  • Vytvoření souboru klíče jen pro vlastníka od prvního bajtu, což opravuje relace prismatic-majordomus-6e na vlastní větvi pod I2134
  • Opětovné načtení žurnálu s uplatněním platné důvěry, což je věc I2124

Závislosti

Kritéria přijetí

  • Po rotaci se peeři, kteří důvěřovali starému klíči, propojí s novým a další hello starého klíče je odmítnuto
  • Klíči odebranému z trust.allow na běžícím runtime se jeho události zahodí z běžícího deníku při znovunačtení, které jej odebralo, bez restartu

Validace

  • bin/majordomus plan validate
  • cargo test --test mesh_cooperation
  • cargo test --lib mesh::identity

Požadované důkazy

  • key_rotation_test

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Kanonický záznam: .ai/repo/project/issues/I2705.yaml. Přečtěte jej zpět přes majordomus plan show I2705.

Prohledává názvy a popisy všech stránek, které tento web publikuje.