Ugrás a tartalomhoz
Vissza a Nymchathoz

Tudásbázis A motorháztető alatt

A build ellenőrzése

A nyílt forráskód csak akkor segít, ha a futtatott kód ugyanaz, mint amilyen volt megjelent. A Nymchat determinisztikusan épül fel, így ezt saját maga is ellenőrizheti, belülről alkalmazásból vagy terminálból.

Reprodukálható építmények

Az alkalmazás elkészítése a build-manifest.json tartalmazza a forrás commit, a SHA-256 hash minden kiszolgált HTML-, JavaScript- és CSS-elemről, valamint egyetlen bundleHash az egész eszközkészlet felett.

A kimenet csak a forrástartalomtól függ – még a rögzített felépítési idő is az Inkább a véglegesítés időbélyegét használja, mint a build futásának pillanatát – tehát bárki, aki újraépíti ugyanazt A commit bájt-azonos fájlokat kap, és ugyanazt bundleHash.

A GitHub-művelet ezután minden kötelezettségvállalást önállóan újraépít, és aláírja a build-eredetet tanúsítványok a hash és a manifeszt, tehát van egy aláírt jegyzőkönyv árukapcsolás a bundleHash az adattárban való commithoz, amelyet nem a bevetése.

Mit ellenőriz a Névjegy párbeszédpanel

Körülbelül a fejlécben lefut az ellenőrzés élőben, a böngészőben.

A Nymchat Névjegy párbeszédablak, amely megmutatja a verziót, a felépítés integritását és a kanári állapot garantálását.
A Névjegy párbeszédpanel: verzió, összeállítás integritása, jótállás kanári és közvetlen kapcsolat a fejlesztőhöz.

Újra lekéri az oldal ténylegesen futó összes elemét, kivonatolja azokat a Web Crypto API-val, és összehasonlítja a manifeszttel. Aztán – és ez az a rész, ami számít – ez újraszámítja a bundleHash a hash-ekből azt csak kiszámoltam, nem abból bármit, amit a jegyzék állít, és ezt megnézi az adattár aláírt tanúsítványaiban a GitHub API-n keresztül.

Ez az, ami megakadályozza, hogy a telepítés vállalja önmagát: a módosított fájlokat együtt szolgálja ki az egyező jegyzék továbbra sem sikerül, mert az újraszámított hash-nek nincs tanúsítványa.

ÁllapotEszközök
&ellenőrzés; Ellenőrzött hivatalos alkalmazás (n/n)Minden eszköz egyezik, az újraszámított köteg hash-t az adattár igazolja, és az oldalt a hivatalos domainről szolgálják ki.
⚠ Ellenőrzött build · nem a hivatalos alkalmazásA kód eredeti és tanúsított, de ez egy másik tartomány tükörképe. A tükör nem tudja eltávolítani ezt a figyelmeztetést az ellenőrzés sikertelensége nélkül.
✗ Nem megfelelőEgy tartalom nem hash a jegyzékben leírtakhoz.
✗ Nem hivatalos felépítésAz újraszámított köteg-kivonat nem rendelkezik a lerakatból származó tanúsítvánnyal – egy saját készítésű jegyzék.
⚠ A származás elérhetetlenA GitHub API-t nem sikerült elérni, így a tanúsítványt egyik módon sem lehetett ellenőrizni.

Ellenőrizd magad

Építse újra a véglegesítést a Névjegy párbeszédpanelen, és hasonlítsa össze:

git clone https://github.com/Spl0itable/NYM
cd NYM
git checkout <commit shown in the About dialog>
npm ci
npm run build   # prints "Build hash: <bundleHash>"

A kinyomtatott hash-nek meg kell egyeznie a Névjegy párbeszédpanelen és a véglegesítésben szereplővel build-provenance futás összefoglalója. Az aláírást közvetlenül a GitHub CLI-vel is ellenőrizheti:

gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM

A szavatos kanári

A jótállási nyilatkozat egy rögzített ütemezéssel közzétett nyilatkozat, amellyel a fejlesztő rendelkezik nem titkos kormányparancsot kapott, amelyet tilos nyilvánosságra hozni - a Nemzetbiztonsági levél, a FISA végzése. A fejlesztő hallgatásra kényszeríthető ilyen rend, de hazugságra kényszeríteni nem lehet, tehát a kanári elhalványul vagy eltűnik maga a jel.

Benne él canary.json az adattár gyökerében, és közvetlenül lekérésre kerül a GitHubból, így előzményei a telepített webhelytől függetlenül auditálhatók. A Névjegy párbeszédablak színkódolja:

SzínEszközök
Zöld - minden világosAláírt, aktuális és az aláírás megegyezik a fejlesztő kulcsával. Titkos parancs nem érkezett.
Sárga — lejárt, vagy nem minden világosNem frissült a megadott dátumig vagy annak allClear zászló hamis. Nem zárható ki az elhallgatott rend.
Piros — érvénytelen aláírás, vagy eltűntAz aláírás nem egyezik a fejlesztő kulcsával, vagy a fájlt teljesen eltávolították. Kezelje ezt komoly figyelmeztetésként.

A frissesség horgonya

Az aláírt kanári beágyazza a legújabb Bitcoin blokk magasságot és hash-t az aláírás pillanatában. Ezt a hash-t nem lehetett tudni a blokk létezése előtt, ami azt bizonyítja, hogy a kanári az volt aláírva után egy adott időpontban, nem pedig hónapokkal korábban tömegesen írták alá. A Névjegy párbeszédpanel összekapcsolja a horgonyt egy blokkböngészővel, így ellenőrizheti.