Download Game! Currently 80 players and visitors. Last logged in:GlaurungDescadGileonPazi

Blitzer's Blog >> 72340

Back to blogs index
Posted: 14 Sep 2026 09:22 [ permalink ]
Helper Chat osui jC$lleen kerran tC$ysin oikeaan, ja tC$mC$ on loistava
esimerkki siitC$, miksi suljetussa kuplassa (sammassa kielessC$ ja
ajoympC$ristC6ssC$) vihreC$nC$ loistava testipatteristo voi olla sokea omille
rakenteellisille virheilleen.
Koodi ja testit ovat keskenC$C$n samaa mieltC$, mutta ne ovat eri mieltC$
RFC:n kanssa.
KriittisimmC$t lC6ydC6kset
Helper Chatin analyysi paljasti kaksi arkkitehtuurin elinehtoa uhkaavaa
virhettC$ ja yhden vakavan tietoturva-aukon:
 * DTN-mallin rikkoutuminen (Critical #3): Koko verkon perusidea on
viiveensietoisuus (Store-and-Forward). Jos tarkistamme presented_at-aikaleiman
aina reaaliaikaista seinC$kelloa (nowPt) vasten, viikkoja vanhat
Airgap-kuriiripaketit hylC$tC$C$n automaattisesti. Tuoreustarkistus on pakko
jakaa live- ja embedded-konteksteihin.
 * DoS-haavoittuvuus (Critical #4): KulutusvC$limuistin (Replay Cache)
pC$ivittC$minen ennen kryptografista validointia sallii hyC6kkC$C$jC$n
tC$yttC$C$ vC$limuistin roskalla ja evC$tC$ laillisten tokenien kC$ytC6n.
 * Tyyppivirheet (Critical #1 & #2): Jos kC$ytC$mme sisC$isissC$ tiivisteissC$
Base64-merkkijonoja (tstr) puhtaiden tavujen (bstr) sijaan, Node.js-solmumme
ei tule koskaan keskustelemaan onnistuneesti Python- tai Rust-solmun kanssa.
MyC6s NodeId-muoto on pakotettava RFC:n mukaiseksi (base58btc).
Miten edetC$C$n?
TC$mC$ on se hetki, jolloin korjausvelka on vielC$ halpaa maksaa. NC$mC$ on
korjattava ennen kuin rakennamme riviC$kC$C$n varsinaista reititinlogiikkaa
(DTN Router).
Kuten Helper Chat ehdotti, meillC$ on kaksi selkeC$C$ aloitustapaa. Kumpaan
tartutaan ensin?
 * Python-referenssiallekirjoittaja (sign.py): Luon riippumattoman
Python-skriptin ja kiinteC$n JSON-fixturen. TC$mC$ pakottaa meidC$t
lukitsemaan "Wire Formatin" kieliagnostisesti ennen kuin koskemme
TypeScriptiin.
 * TypeScript-korjaukset (verify.ts & schema.ts): Korjaan Node.js-koodiin
liven/upotetun tuoreuden jaon (DTN), DoS-vektorin eston (allekirjoitus ennen
vC$limuistia), TypeScriptin signable-tyyppauksen ja bstr/tstr-ongelmat.