Kunnskapsgrunnlag Under panseret
Verifiserer bygget
Åpen kildekode hjelper bare hvis koden du kjører er koden som var publisert. Nymchat er bygget deterministisk slik at du kan sjekke det selv, fra innsiden av app eller fra en terminal.
Denne siden er maskinoversatt for enkelhets skyld. Den engelske originalen er versjonen som gjelder.
Reproduserbare bygg
Å bygge appen avgir en build-manifest.json som inneholder kildebekreftelsen, en
SHA-256-hash for hver servert HTML-, JavaScript- og CSS-element, og en enkelt
bundleHash over hele aktivasettet.
Utgangen avhenger bare av kildeinnholdet - selv den registrerte byggetiden er
commits tidsstempel i stedet for øyeblikket byggingen kjørte - så alle som bygger om det samme
commit får byte-identiske filer og det samme bundleHash.
En GitHub-handling gjenoppbygger deretter hver forpliktelse uavhengig og signerer byggeherkomst
attester for hashen og manifestet, så det er en signert post som knytter en
bundleHash til en commit i depotet, produsert av noe annet enn
utplassering.
Hva Om-dialogen sjekker
Om i overskriften kjører sjekken live, i nettleseren din.
Den henter på nytt hver ressurs siden faktisk kjører, hasheser den med Web Crypto API og
sammenligner med manifestet. Så - og dette er den delen som betyr noe - det
beregner på nytt bundleHash fra hashen den bare beregnet, ikke fra
alt manifestet hevder, og slår det opp i depotets signerte attester
gjennom GitHub API.
Det er det som stopper en distribusjon fra å gå god for seg selv: servere modifiserte filer sammen med et samsvarende manifest mislykkes fortsatt, fordi den omberegnet hashen ikke har noen attestasjon.
| Status | Betyr |
|---|---|
| &sjekke; Verifisert offisiell app (n/n) | Hvert aktiva samsvarer, den omberegnet bunt-hash attesteres av depotet, og siden serveres fra det offisielle domenet. |
| ⚠ Verifisert bygg · ikke den offisielle appen | Koden er ekte og attestert, men dette er et speil på et annet domene. Et speil kan ikke fjerne denne advarselen uten sviktende verifisering. |
| ✗ Mismatch | En eiendel hash ikke til det manifestet sier. |
| ✗ Uoffisiell konstruksjon | Den omberegnede pakkehashen har ingen attestasjon fra depotet – et selvlaget manifest. |
| ⚠ Herkomst uoppnåelig | GitHub API kunne ikke nås, så attestasjonen kunne ikke sjekkes uansett. |
Verifiserer det selv
Gjenoppbygg navnene på commit the About-dialogboksen og sammenlign:
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>"
Den utskrevne hashen skal samsvare med både den i Om-dialogen og den i den forpliktelsen oppsummering av bygge-herkomst. Du kan også sjekke signaturen direkte med GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Warrantkanarifuglen
En garanti kanarifugl er en erklæring, publisert på en fast tidsplan, som utvikleren har ikke mottatt en hemmelig myndighetsordre de er forbudt å avsløre — a National Security Letter, en FISA-ordre. Utvikleren kan bli tvunget til å tie om en slik ordre, men kan ikke tvinges til å lyve, så kanarifuglen blir foreldet eller forsvinner selve signalet.
Den bor i canary.json ved roten av depotet og hentes direkte
fra GitHub, så historien kan revideres uavhengig av hva det distribuerte nettstedet sier.
Dialogboksen Om fargekoder det:
| Farge | Betyr |
|---|---|
| Grønn – alt klart | Signert, gjeldende og signaturen samsvarer med utviklerens nøkkel. Ingen hemmelig ordre er mottatt. |
| Gul — forsinket, eller ikke helt klart | Den ble ikke oppdatert etter den angitte datoen, eller dens allClear flagget er falskt. En fortiet ordre kan ikke utelukkes. |
| Rød — ugyldig signatur, eller borte | Signaturen samsvarer ikke med utviklerens nøkkel, eller filen har blitt fjernet helt. Behandle dette som en alvorlig advarsel. |
Friskhetsankeret
Den signerte kanarifuglen legger inn den siste Bitcoin-blokkhøyden og hashen i signeringsøyeblikket. Den hasjen kunne ikke vært kjent før blokken eksisterte, noe som beviser at kanarifuglen var det signert etter et bestemt tidspunkt i stedet for forhåndssignert i bulk måneder tidligere. Dialogboksen Om kobler ankeret til en blokkutforsker slik at du kan sjekke det.