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.
Ez az oldal a kényelem kedvéért gépi fordítással készült. Az eredeti angol nyelvű változat az érvényes.
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.
Ú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.
| Állapot | Eszkö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ás | A 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és | Az ú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érhetetlen | A 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ín | Eszközök |
|---|---|
| Zöld - minden világos | Aláí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ágos | Nem 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űnt | Az 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.