Laktaw sa sulod
Balik ngadto ha Nymchat

Base sa kahibalo Ubos sa tabon

Pagpamatuod sa pagtukod

Ang bukas nga tinubdan makatabang lamang kung ang code nga imong gipadagan mao ang code nga kaniadto gipatik. Ang Nymchat gitukod deterministiko aron masusi nimo kana sa imong kaugalingon, gikan sa sulod sa app o gikan sa usa ka terminal.

Reproducible nga mga pagtukod

Ang pagtukod sa app nagpagawas sa usa ka build-manifest.json naglangkob sa tinubdan commit, a SHA-256 hash sa matag gisilbi nga HTML, JavaScript ug CSS asset, ug usa bundleHash ibabaw nianang tibuok set sa asset.

Ang output nagdepende ra sa gigikanan nga sulud - bisan ang natala nga oras sa pagtukod mao ang commit kay sa higayon nga ang pagtukod midagan - mao nga bisan kinsa nga nagtukod pag-usab sa mao gihapon nga commit makakuha og byte-parehas nga mga file ug parehas bundleHash.

Usa ka GitHub Action unya nagtukod pag-usab sa matag commit nga independente ug nagpirma sa build-provenance mga pagpamatuod alang sa hash ug sa manifest, mao nga adunay gipirmahan nga rekord nga naghigot sa a bundleHash sa usa ka commit sa repository, nga gihimo sa usa ka butang gawas sa pagdeploy.

Unsa ang gisusi sa About dialog

Mahitungod sa sa header nagpadagan ang tseke nga buhi, sa imong browser.

Ang Nymchat About dialog, nga nagpakita sa bersyon, pagtukod sa integridad ug warrant canary status.
Ang About dialog: version, build integrity, warrant canary ug direktang linya sa developer.

Gikuha niini pag-usab ang matag asset nga aktwal nga gipadagan sa panid, gi-hash kini sa Web Crypto API, ug nagtandi batok sa dayag. Unya - ug kini ang bahin nga hinungdanon - kini gi-compute pag-usab ang bundleHash gikan sa mga hash kini kalkulado lang, dili gikan bisan unsa nga giangkon sa dayag, ug tan-awon kana sa gipirmahan nga mga pagpamatuod sa repository pinaagi sa GitHub API.

Mao kana ang nagpahunong sa usa ka pag-deploy gikan sa paggarantiya sa kaugalingon: pag-alagad sa giusab nga mga file kauban ang ang usa ka pagpares nga manifest napakyas gihapon, tungod kay ang gi-compute nga hash walay pamatuod.

StatusNagpasabot
&susi; Gi-verify nga opisyal nga app (n/n)Ang matag asset magkatugma, ang gi-compute nga bundle hash gipamatud-an sa repository, ug ang panid giserbisyuhan gikan sa opisyal nga dominyo.
⚠ Napamatud-an nga pagtukod · dili ang opisyal nga appAng code tinuod ug gipamatud-an, apan kini usa ka salamin sa laing domain. Ang usa ka salamin dili makatangtang niini nga pasidaan nga dili mapakyas sa pag-verify.
✗ Dili tugmaAng usa ka asset dili hash sa unsay gisulti sa manifest.
✗ Dili opisyal nga pagtukodAng recomputed bundle hash walay pamatuod gikan sa repository - usa ka self-made manifest.
⚠ Provenance dili maabotAng GitHub API dili maabot, busa ang pamatuod dili masusi sa bisan asa nga paagi.

Pag-verify niini sa imong kaugalingon

Pagtukod pag-usab sa commit ang About dialog names ug itandi:

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>"

Ang giimprinta nga hash kinahanglan nga motakdo sa usa sa About dialog ug sa usa sa commit's build-provenance run summary. Mahimo usab nimo nga susihon ang pirma direkta sa GitHub CLI:

gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM

Ang warrant canary

Ang warrant canary usa ka pahayag, nga gipatik sa usa ka piho nga iskedyul, nga naa sa developer dili nakadawat ug sekretong mando sa gobyerno nga gidid-an sila sa pagbutyag — a Sulat sa Nasyonal nga Seguridad, usa ka mando sa FISA. Ang developer mahimong mapugos sa pagpabilin nga hilom mahitungod sa ang ingon nga usa ka mando, apan dili mapugos sa pagpamakak, mao nga ang kanaryo madaot o mawala mismo ang signal.

Kini nagpuyo sa canary.json sa gamut sa repository ug direkta nga gikuha gikan sa GitHub, mao nga ang kasaysayan niini ma-audit nga independente sa bisan unsa nga gisulti sa gi-deploy nga site. Ang About dialog color-codes niini:

KolorNagpasabot
Berde - klaro ang tananAng pinirmahan, kasamtangan, ug ang pirma motakdo sa yawe sa developer. Walay sekretong order nga nadawat.
Dilaw - overdue, o dili tanan klaroWala kini gi-refresh sa gipahayag nga petsa, o niini allClear bandera kay bakak. Ang usa ka gipahilom nga mando dili mahimong isalikway.
Pula — dili balido nga pirma, o nawalaAng pirma dili motakdo sa yawe sa developer, o ang file hingpit nga natangtang. Tagda kini ingong seryosong pasidaan.

Ang kabag-o nga angkla

Ang gipirmahan nga canary nag-embed sa pinakabag-o nga Bitcoin block gitas-on ug hash sa higayon sa pagpirma. Kana nga hash dili unta mahibal-an sa wala pa ang block, nga nagpamatuod nga ang kanaryo gipirmahan pagkahuman usa ka espesipikong punto sa panahon imbes nga gipirmahan nang daan sa daghang mga bulan sa sayo pa. Ang About dialog nagsumpay sa angkla ngadto sa block explorer aron masusi nimo kini.