Kunskapsbas Under huven
Verifierar konstruktionen
Öppen källkod hjälper bara om koden du kör är den som var publiceras. Nymchat är byggt deterministiskt så att du kan kontrollera det själv, inifrån app eller från en terminal.
Den här sidan är maskinöversatt för enkelhetens skull. Det engelska originalet är den version som gäller.
Reproducerbara konstruktioner
Att bygga appen avger en build-manifest.json som innehåller källans commit, a
SHA-256-hash för varje serverad HTML-, JavaScript- och CSS-tillgång, och en singel
bundleHash över hela tillgångsuppsättningen.
Utdata beror bara på källinnehållet - även den inspelade byggtiden är den
commits tidsstämpel snarare än det ögonblick då bygget kördes - så alla som bygger om detsamma
commit får byte-identiska filer och detsamma bundleHash.
En GitHub Action bygger sedan om varje commit oberoende och undertecknar bygghärkomst
intyg för hashen och manifestet, så det finns en signerad post som knyter a
bundleHash till en commit i förvaret, producerad av något annat än
utplacering.
Vad kontrollerar dialogen Om
Om i rubriken körs kontrollen live, i din webbläsare.
Den återhämtar varje tillgång som sidan faktiskt kör, hashas den med Web Crypto API och
jämför med manifestet. Sedan - och det här är den del som betyder något - det
räknar om bundleHash från hasharna det bara beräknat, inte från
allt som manifestet hävdar, och letar upp det i förvarets undertecknade intyg
genom GitHub API.
Det är det som hindrar en distribution från att garantera sig själv: servera modifierade filer tillsammans med ett matchande manifest misslyckas fortfarande, eftersom den omräknade hashen inte har något attestation.
| Status | Medel |
|---|---|
| &kontrollera; Verifierad officiell app (n/n) | Varje tillgång matchar, den omräknade pakethashen intygas av förvaret, och sidan serveras från den officiella domänen. |
| ⚠ Verifierad konstruktion · inte den officiella appen | Koden är äkta och bestyrkt, men det här är en spegel på en annan domän. En spegel kan inte ta bort denna varning utan att verifieringen misslyckas. |
| ✗ Missmatch | En tillgång hash inte till vad manifestet säger. |
| ✗ Inofficiell konstruktion | Den omräknade pakethashen har inget intyg från förvaret – ett självgjort manifest. |
| ⚠ Ursprung oåtkomligt | GitHub API kunde inte nås, så attestationen kunde inte kontrolleras på något sätt. |
Verifierar det själv
Bygg om commit the About-dialognamnen och jämför:
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 utskrivna hashen bör matcha både den i Om-dialogrutan och den i den commitens bygg-härkomst kör sammanfattning. Du kan också kontrollera signaturen direkt med GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Den beordrade kanariefågeln
En warrant canary är ett uttalande, publicerat enligt ett fast schema, som byggherren har inte fått en hemlig regeringsorder som de är förbjudna att avslöja — a National Security Letter, en FISA-order. Utvecklaren kan tvingas vara tyst om en sådan order, men kan inte tvingas att ljuga, så kanariefågeln försvinner eller försvinner själv signalen.
Den bor i canary.json i roten av förvaret och hämtas direkt
från GitHub, så dess historik kan granskas oberoende av vad den distribuerade webbplatsen säger.
Dialogrutan Om färgkodar det:
| Färg | Medel |
|---|---|
| Grön – allt klart | Signerad, aktuell och signaturen matchar utvecklarens nyckel. Ingen hemlig order har mottagits. |
| Gul — försenad, eller inte helt klart | Den uppdaterades inte av det angivna datumet eller dess allClear flaggan är falsk. En nedtystad order kan inte uteslutas. |
| Röd — ogiltig signatur, eller borta | Signaturen matchar inte utvecklarens nyckel, eller så har filen tagits bort helt. Behandla detta som en allvarlig varning. |
Friskhetsankaret
Den signerade kanariefågeln bäddar in den senaste Bitcoin-blockhöjden och hashen vid undertecknandet. Den haschen kunde inte ha varit känd innan blocket existerade, vilket bevisar att kanariefågeln var det undertecknad efter en specifik tidpunkt snarare än förhandstecknad i bulk månader tidigare. Dialogrutan Om länkar ankaret till en blockutforskare så att du kan kontrollera det.