Kennisbasis Onder die enjinkap
Verifieer tans die bou
Oopbron help net as die kode wat jy gebruik die kode is wat was gepubliseer. Nymchat is deterministies gebou sodat jy dit self kan kontroleer, van binne die app of vanaf 'n terminaal.
Hierdie bladsy is gerieflikheidshalwe masjienvertaal. Die Engelse oorspronklike is die weergawe wat van toepassing is.
Reproduceerbare bouwerk
Die bou van die toepassing gee 'n uit build-manifest.json wat die bronverpligting bevat, a
SHA-256-hash van elke bediende HTML-, JavaScript- en CSS-bate, en 'n enkele
bundleHash oor daardie hele batestel.
Die uitset hang slegs af van die broninhoud - selfs die aangetekende boutyd is die
commit se tydstempel eerder as die oomblik wat die bou geloop het - dus enigiemand wat dieselfde herbou
commit kry byte-identiese lêers en dieselfde bundleHash.
'n GitHub-aksie herbou dan elke verbintenis onafhanklik en teken bouherkoms
attests vir die hash en die manifes, so daar is 'n getekende rekord wat a
bundleHash na 'n commit in die bewaarplek, geproduseer deur iets anders as die
ontplooiing.
Wat die Oor-dialoog kontroleer
Oor in die kop loop die tjek regstreeks, in jou blaaier.
Dit herhaal elke bate wat die bladsy eintlik loop, hashes dit met die Web Crypto API, en
vergelyk met die manifes. Dan - en dit is die deel wat saak maak - dit
herbereken die bundleHash uit die hashes dit net bereken, nie van nie
enigiets wat die manifes beweer, en soek dit op in die bewaarplek se ondertekende attesten
deur die GitHub API.
Dit is wat keer dat 'n ontplooiing vir homself instaan: die diens van gewysigde lêers saam met 'n bypassende manifes misluk steeds, omdat die herberekende hash geen attest het nie.
| Status | Beteken |
|---|---|
| ✓ Geverifieerde amptelike program (n/n) | Elke bate stem ooreen, die herberekende bondel-hash word deur die bewaarplek bevestig, en die bladsy word bedien vanaf die amptelike domein. |
| ⚠ Geverifieerde bou · nie die amptelike toepassing nie | Die kode is eg en bekragtig, maar dit is 'n spieël op 'n ander domein. 'n Spieël kan nie hierdie waarskuwing verwyder sonder om verifikasie te misluk nie. |
| ✗ Mismatch | 'n Bate stem nie ooreen met wat die manifes sê nie. |
| ✗ Nie-amptelike bou | Die herberekende bundel-hash het geen attest van die bewaarplek nie - 'n selfgemaakte manifes. |
| ⚠ Herkoms onbereikbaar | Die GitHub API kon nie bereik word nie, dus kon die attestasie nie nagegaan word nie. |
Verifieer dit self
Herbou die commit die Oor-dialoogname en vergelyk:
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>"
Die gedrukte hash moet ooreenstem met beide die een in die Oor dialoog en die een in daardie commit s'n bou-herkomslopie opsomming. U kan ook die handtekening direk met die GitHub CLI nagaan:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Die lasbrief kanarie
'n Lasbriefkanarie is 'n verklaring, gepubliseer op 'n vaste skedule, wat die ontwikkelaar het nie 'n geheime regeringsbevel ontvang wat hulle verbied word om bekend te maak — a Nasionale Veiligheidsbrief, 'n FISA-bevel. Die ontwikkelaar kan gedwing word om stil te bly oor so 'n bevel, maar kan nie gedwing word om te lieg nie, so die kanarie wat verjaar of verdwyn is self die sein.
Dit woon in canary.json aan die wortel van die bewaarplek en word direk gehaal
van GitHub, dus is die geskiedenis daarvan ouditeerbaar, onafhanklik van wat ook al die ontplooide webwerf sê.
Die Oor-dialoog kleurkodeer dit:
| Kleur | Beteken |
|---|---|
| Groen - alles duidelik | Geteken, huidige en die handtekening pas by die ontwikkelaar se sleutel. Geen geheime bevel is ontvang nie. |
| Geel — agterstallig, of nie alles duidelik nie | Dit is nie verfris teen sy vermelde datum, of sy allClear vlag is vals. ’n Gestilde bevel kan nie uitgesluit word nie. |
| Rooi — ongeldige handtekening, of weg | Die handtekening pas nie by die ontwikkelaar se sleutel nie, of die lêer is heeltemal verwyder. Behandel dit as 'n ernstige waarskuwing. |
Die varsheid anker
Die getekende kanarie sluit die nuutste Bitcoin-blokhoogte en hash in op die oomblik van ondertekening. Daardie hasj kon nie bekend gewees het voordat die blok bestaan het nie, wat bewys die kanarie was onderteken na 'n spesifieke tydstip eerder as wat maande vroeër in grootmaat vooraf onderteken is. Die Oor-dialoog koppel die anker aan 'n blokverkenner sodat jy dit kan nagaan.