Sciobazo Sub la kapuĉo
Kontrolante la konstruon
Malferma fonto nur helpas se la kodo, kiun vi funkcias, estas la kodo, kiu estis eldonita. Nymchat estas konstruita determinisme tiel vi povas kontroli tion mem, de ene de la app aŭ de terminalo.
Ĉi tiu paĝo estas maŝintradukita por komforto. La angla originalo estas la versio kiu validas.
Reprodukteblaj konstruoj
Konstrui la apon elsendas a build-manifest.json enhavanta la fontan kommit, a
SHA-256 hash de ĉiu servita HTML, JavaScript kaj CSS valoraĵo, kaj unuopa
bundleHash super tiu tuta valoraĵo.
La eligo dependas nur de la fonta enhavo — eĉ la registrita konstrutempo estas la
commit-tempomarko prefere ol la momento kiam la konstruo kuris — do iu ajn rekonstruanta la saman
commit ricevas bajt-identajn dosierojn kaj same bundleHash.
GitHub-Ago tiam rekonstruas ĉiun devontigon sendepende kaj subskribas konstru-devenon
atestoj por la haŝiŝo kaj la manifesto, do estas subskribita rekordo liganta a
bundleHash al commit en la deponejo, produktita de io alia ol la
deplojo.
Kion kontrolas la dialogo Pri
Pri en la kaplinio ruliĝas la kontrolo viva, en via retumilo.
Ĝi rekolektas ĉiun valoraĵon, kiun la paĝo efektive funkcias, haŝigas ĝin per la Web Crypto API, kaj
komparas kontraŭ la manifesto. Tiam — kaj ĉi tiu estas la parto kiu gravas — ĝi
rekalkulas la bundleHash el la haŝoj ĝi nur kalkulita, ne de
ion ajn la manifesto asertas, kaj serĉas tion en la subskribitaj atestoj de la deponejo
per la GitHub API.
Tio estas kio malhelpas deplojon garantii por si mem: servi modifitajn dosierojn kune kun kongrua manifesto ankoraŭ malsukcesas, ĉar la rekalkulita haŝiŝo havas neniun ateston.
| Statuso | Rimedoj |
|---|---|
| ✓ Kontrolita oficiala aplikaĵo (n/n) | Ĉiu valoraĵo kongruas, la rekalkulita pakaĵo hash estas atestita de la deponejo, kaj la paĝo estas servata de la oficiala domajno. |
| ⚠ Verkita konstruo · ne la oficiala aplikaĵo | La kodo estas aŭtenta kaj atestita, sed ĉi tio estas spegulo sur alia domajno. Spegulo ne povas forigi ĉi tiun averton sen malsukcesi kontrolon. |
| ✗ Miskongruo | Valoraĵo ne haŝas al tio, kion diras la manifesto. |
| ✗ Neoficiala konstruo | La rekalkulita pakaĵo hash havas neniun ateston de la deponejo - memfarita manifesto. |
| ⚠ Deveno neatingebla | La GitHub API ne povis esti atingita, do la atesto ne povis esti kontrolita de ajna maniero. |
Kontrolante ĝin mem
Rekonstruu la enmetu la nomojn pri dialogoj pri kaj komparu:
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>"
La presita hash devus kongrui kaj tiu en la Pri dialogo kaj tiu en tiu kommit's konstruo-deveno kura resumo. Vi ankaŭ povas kontroli la subskribon rekte per la GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
La mandato kanario
Mandato-kanario estas deklaro, publikigita laŭ fiksa horaro, kiun la programisto havas ne ricevis sekretan registaran ordonon, kiun ili estas malpermesite malkaŝi - a Nacia Sekurecletero, FISA-ordo. La programisto povas esti devigita silenti pri tio tia ordo, sed ne povas esti devigita mensogi, do la kanario malfreŝa aŭ malaperanta estas mem la signalo.
Ĝi loĝas en canary.json ĉe la radiko de la deponejo kaj estas prenita rekte
de GitHub, do ĝia historio estas aŭdebla sendepende de ĉio, kion diras la deplojita retejo.
La dialogo Pri kolorkodoj ĝin:
| Koloro | Rimedoj |
|---|---|
| Verda — ĉio klara | Subskribita, aktuala kaj la subskribo kongruas kun la ŝlosilo de la programisto. Neniu sekreta ordono estis ricevita. |
| Flava — malfruiĝinta, aŭ ne tute klara | Ĝi ne estis refreŝigita de ĝia deklarita dato, aŭ ĝia allClear flago estas falsa. Silentita ordo ne povas esti ekskludita. |
| Ruĝa — nevalida subskribo, aŭ malaperis | La subskribo ne kongruas kun la ŝlosilo de la programisto, aŭ la dosiero estis tute forigita. Traktu ĉi tion kiel seriozan averton. |
La freŝeco ankro
La subskribita kanario enigas la lastan Bitcoin-blokan altecon kaj haŝiŝon en la momento de subskribo. Tiu haŝiŝo ne povus estinti konata antaŭ ol la bloko ekzistis, kio pruvas ke la kanario estis subskribita post specifa punkto en tempo prefere ol antaŭsubskribita en grandaj monatoj antaŭe. La dialogo Pri ligas la ankron al bloka esploristo por ke vi povu kontroli ĝin.