Baza znanja Pod pokrovom
Preverjanje zgradbe
Odprta koda pomaga le, če je koda, ki jo izvajate, koda, ki je bila objavljeno. Nymchat je zgrajen deterministično, tako da lahko to preverite sami, od znotraj aplikacije ali iz terminala.
Ta stran je zaradi priročnosti strojno prevedena. Velja angleški izvirnik.
Ponovljive zgradbe
Gradnja aplikacije oddaja a build-manifest.json ki vsebuje izvorno potrditev, a
Zgoščena vrednost SHA-256 vsakega uporabljenega sredstva HTML, JavaScript in CSS ter enega samega
bundleHash nad tem celotnim naborom sredstev.
Izhod je odvisen le od izvorne vsebine - tudi zabeleženi čas gradnje je pomemben
časovni žig potrditve namesto trenutka, ko se je izdelava izvajala — tako da vsakdo, ki znova gradi isto
commit dobi bajtno enake datoteke in iste bundleHash.
Dejanje GitHub nato znova zgradi vsako objavo neodvisno in podpiše izvor gradnje
potrdila za hash in manifest, tako da obstaja podpisan zapis, ki povezuje a
bundleHash na objavo v repozitoriju, ki jo je ustvaril nekaj drugega kot
uvajanje.
Kaj preveri pogovorno okno O programu
O tem v glavi zažene preverjanje v živo v vašem brskalniku.
Ponovno pridobi vsako sredstvo, ki se stran dejansko izvaja, ga zgosti z vmesnikom Web Crypto API in
primerja z manifestom. Potem - in to je tisti del, ki je pomemben - to
ponovno izračuna bundleHash iz hašiša to samo izračunano, ne iz
vse, kar zahteva manifest, in to poišče v podpisanih potrdilih skladišča
prek API-ja GitHub.
To je tisto, kar prepreči, da bi uvedba jamčila zase: streženje spremenjenih datotek skupaj z ujemajoči se manifest še vedno ne uspe, ker ponovno izračunana zgoščena vrednost nima potrdila.
| Stanje | Pomeni |
|---|---|
| &preveri; Preverjena uradna aplikacija (n/n) | Vsako sredstvo se ujema, ponovno izračunano zgoščeno vrednost svežnja potrdi repozitorij, in stran je postrežena z uradne domene. |
| ⚠ Preverjena zgradba · ni uradna aplikacija | Koda je pristna in potrjena, vendar je to ogledalo na drugi domeni. Zrcalo ne more odstraniti tega opozorila brez neuspešnega preverjanja. |
| ✗ Neujemanje | Sredstvo se ne ujema s tem, kar piše v manifestu. |
| ✗ Neuradna zgradba | Ponovno izračunana zgoščena vrednost svežnja nima potrdila iz repozitorija – lastnoročno izdelan manifest. |
| ⚠ Izvor nedosegljiv | API-ja GitHub ni bilo mogoče doseči, zato potrdila tako ali tako ni bilo mogoče preveriti. |
Preverite sami
Ponovno zgradite objavo imen pogovornega okna O in primerjajte:
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>"
Natisnjena zgoščena vrednost se mora ujemati s tisto v pogovornem oknu About in s tisto v tej objavi povzetek poteka gradnje-provenence. Podpis lahko preverite tudi neposredno z GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Upravni kanarček
Nalogni kanarček je izjava, objavljena po določenem urniku, ki jo ima razvijalec ne prejel tajni vladni ukaz, ki ga je prepovedano razkriti — a Dopis o nacionalni varnosti, odredba FISA. Razvijalca je mogoče prisiliti, da o tem molči takšen ukaz, vendar ga ni mogoče prisiliti v laž, zato kanarček zastara ali izgine sam signal.
Živi v canary.json v korenu repozitorija in se pridobi neposredno
iz GitHuba, tako da je njegovo zgodovino mogoče revidirati neodvisno od tega, kar piše na nameščenem mestu.
Pogovorno okno O tem ga barvno kodira:
| barva | Pomeni |
|---|---|
| zelena — vse jasno | Podpisano, veljavno in podpis se ujema s ključem razvijalca. Prejeto ni bilo nobeno tajno naročilo. |
| Rumena — zamuja ali ni vse jasno | Ni bil osvežen do navedenega datuma ali njegovega allClear zastava je lažna. Zamolčanega naročila ni mogoče izključiti. |
| Rdeča — neveljaven podpis ali izginil | Podpis se ne ujema s ključem razvijalca ali pa je bila datoteka v celoti odstranjena. Vzemite to kot resno opozorilo. |
Sidro svežine
Podpisani kanarček v trenutku podpisa vdela zadnjo višino bloka Bitcoin in zgoščeno vrednost. Ta hash ni mogel biti znan, preden je blok obstajal, kar dokazuje, da je bil kanarček podpisan po določeno časovno točko, namesto vnaprej podpisanih več mesecev prej. Pogovorno okno About povezuje sidro z raziskovalcem blokov, tako da ga lahko preverite.