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.

I2132 — Hello jmenuje runtime, pro který je určeno, a žádný jiný runtime ho nepřijme

Svázat každý hello linku s jeho zamýšleným příjemcem uvnitř podepsaných bajtů, odmítnout hello adresovaný jinam a zařídit, aby zdokumentované pořadí kontrol bylo tím, které kód skutečně provádí.

HOTOVO vlna 0 · p1 · 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.

Cíl

Svázat každý hello linku s jeho zamýšleným příjemcem uvnitř podepsaných bajtů, odmítnout hello adresovaný jinam a zařídit, aby zdokumentované pořadí kontrol bylo tím, které kód skutečně provádí.

Proč

Hello (apps/majordomus-cli/src/mesh/link.rs:444-456) nejmenuje žádné publikum. Cache nonce, která odmítá replay, je na každého odpovídajícího zvlášť, drží se v paměti a kontroluje se po důvěře (apps/majordomus-cli/src/mesh/cooperation.rs:1847-1875), takže zachycený hello lze přehrát jinému runtime téhož repozitáře, nebo témuž runtime po restartu, v rámci okna odchylky 300 s (hrozba T6). Účinkem je vytlačené příchozí spojení a falešné 'connected' pro skutečného peera (apps/majordomus-cli/src/mesh/cooperation.rs:1918-1934); přehrávač nemůže synchronizovat. docs/MESH.md:128-136 a bod 1 pravidla project.mesh-cooperation-is-authenticated kladou kontrolu nonce před protokol, sebe, repozitář a důvěru; kód ji kontroluje naposled záměrně, aby cizinci nemohli zaplnit cache, zatímco závazné pravidlo říká 'ověřuj v tomto pořadí'. Základní audit z 2026-10-09 na master 1fb8d6be44, mezera mesh 9 a drift 1.

Aktuální stav

Platné hello je přijato každým runtime repozitáře, který jeho klíči důvěřuje a neviděl jeho nonce.

Cílový stav

Hello nese volitelné to (klíč běhu, kterého chce dosáhnout) uvnitř svých podepsaných bajtů; volající jej vyplní, kdykoli klíč zná (cíl registru nebo běh, s nímž se dříve propojil); accept_hello odmítne hello adresované jinam jako misaddressed, dříve než cache replay uvidí jeho nonce; hello bez to je stále přijato (seedy, první kontakty, releasy před tímto), takže verze protokolu spojení je beze změny a smíšená flotila se dál propojuje. docs/MESH.md uvádí pořadí, v němž kód kontroluje, a proč je cache nonce poslední. Odložená část, přivést pravidlo project.mesh-cooperation-is-authenticated k pořadí kontrol kódu, je I2703.

Rozsah

  • apps/majordomus-cli/src/mesh/link.rs
  • apps/majordomus-cli/src/mesh/cooperation.rs
  • apps/majordomus-cli/tests/mesh_cooperation.rs
  • docs/MESH.md
  • .ai/repo/rules/project/mesh-cooperation-is-authenticated.v1.md

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • Hello zachycené z linku k runtime A a přehrané na runtime B v rámci okna posunu hodin je odmítnuto typovaným odmítnutím a nemění žádný link runtime B
  • Hello přehrané A po restartu A nemůže vytlačit navázané spojení

Validace

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

Požadované důkazy

  • hello_replay_to_another_runtime_refused_test

Důkazy

pokrývátypcommandvýsledeku commitu
hello_replay_to_another_runtime_refused_testtestcargo test --lib -- mesh::; cargo test --test mesh_cooperation319 passed včetně a_hello_addressed_to_one_runtime_is_refused_by_another; mesh_cooperation 7 passed (kód na masteru od aa28332ca86; znovu spuštěno na masteru 01227a0)01227a0

Časová osa

zahájeno
2026-10-17T12:01:16Z
ověřeno
2026-10-17T12:01:30Z
dokončeno
2026-10-17T12:01:38Z

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/I2132.yaml. Zpětně ho přečtete pomocí majordomus plan show I2132.

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