Motheo wa tsebo Ka tlase ga hood
Go netefatša go aga
Mohlodi o bulegilego o thuša feela ge e ba khoutu yeo o e sepetšago e le khoutu yeo e bego e le yona e gatišitšwego. Nymchat e agilwe ka tsela ya go ikemišetša gore o kgone go lekola seo ka bowena, go tšwa ka gare ga tirišo goba go tšwa go terminal.
Letlakala le le fetoletšwe ka motšhene bakeng sa go ba bonolo. Seisemane sa mathomo ke phetolelo yeo e šomago.
Di-haga tšeo di ka tšweletšwago gape
Go aga tirišo go ntšha a build-manifest.json e nago le mohlodi wa go itlama, a
SHA-256 hash ya mong le e mong sebeletsa HTML, JavaScript le CSS letlotlo, le e le 'ngoe
bundleHash godimo ga sete yeo ka moka ya letlotlo.
The dipholo tsa itšetlehile feela ka mohloli dikahare - esita le rekotilwe haha nako ke
commit ya timestamp go e na le motsotso wo go aga go kitimilego — ka fao mang le mang yo a agago lefsa go swana
itlama o hwetša difaele tše di swanago tša byte le tše di swanago bundleHash.
Ke moka Tiro ya GitHub e aga lefsa boikgafo bjo bongwe le bjo bongwe ka go ikemela gomme e saena go aga-provenance
dihlatse tša hash le manifest, ka fao go na le rekoto ye e saennwego yeo e tlamago a
bundleHash go itlama ka polokelong, yeo e tšweleditšwego ke selo se sengwe ntle le
go tsenywa tirišong.
Seo poledišano ya Mabapi e se hlahlobago
Mabapi le ka hlogo e matha tšheke phela, ka sephephediši sa gago.
E lata gape letlotlo le lengwe le le lengwe leo letlakala le tlogago le le šoma, e le hashes ka Web Crypto API, gomme
e bapetša kgahlanong le se se bonagalago. Ka morago ga moo — gomme ye ke karolo yeo e lego bohlokwa — yona
recomputes the bundleHash go tšwa go di-hash sona e no balwa, e sego go tšwa
selo se sengwe le se sengwe seo se bonagalago se se bolelago, gomme se lebelela seo godimo ka gare ga dihlatse tše di saennwego tša polokelo
ka API ya GitHub.
Ke seo se thibelago go tsenywa tirišong go hlatsela ka boyona: go hlankela difaele tše di fetotšwego mmogo le manifesto ya go swana e sa palelwa, ka gobane hash yeo e balwago gape ga e na bohlatse.
| Maemo | Ra gore |
|---|---|
| &lekola; Tiriso ye e netefaditšwego ya semmušo (n/n) . | Letlotlo le lengwe le le lengwe le a swana, hash ya sehlopha yeo e balwago gape e hlatselwa ke polokelo, . le letlakala le hlankelwa go tšwa go domain name ya semmušo. |
| ⚠ Netefalitsoeng haha · eseng tiriso ye semmuso | Khoutu ke ya nnete ebile e hlatsetšwe, eupša se ke seipone go domain ye nngwe. Seipone se ka se tloše temošo ye ntle le go palelwa ke netefatšo. |
| ✗ Go se swane | Letlotlo ga le hash go seo manifest e se bolelago. |
| ✗ Kago yeo e sego ya semmušo | The recomputed bundle hash ha e na le bopakiso ho tloha polokelong - e intša entsoeng bonahatsa. |
| ⚠ Provenance ga e fihlelelege | API ya GitHub e be e sa kgone go fihlelelwa, ka fao bohlatse bo be bo sa kgone go hlahlobja ka tsela efe goba efe. |
Go e netefatša ka bowena
Aga gape go itlama ya Mabapi le maina a poledišano gomme o bapetše:
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>"
Hash ye e gatišitšwego e swanetše go swana le bobedi yeo e lego ka go poledišano ya Mabapi le yeo e lego ka go ya go itlama yeo go aga-provenance matha kakaretso. Gape o ka hlahloba mosaeno ka go lebanya ka CLI ya GitHub:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
The Android le iOS ditiriso tse dingwe
Tlhahlobo ye e lego ka mo godimo ke tšheke ya wepe-app, gomme lebaka le swanetše go bolelwa ka mo go kwagalago: tirišo ya setlogo e ka se kgone go itirela selo se se swanago. Seo se šomago mo founong ya gago ke khoutu ya motšhene yeo e kgobokeditšwego, e sego ya mohlodi ka polokelong, 'me ha ho ntho eo tiriso ye ka compute ka sesebediswa amanang e mong le tše dingwe.
Android e ka dira selo se se latelago se sebotse kudu. The hlomamisa .apk ke faele yeo tirišo e ka e bala
le hash, gomme hash ya tokollo ye nngwe le ye nngwe ye e phatlaladitšwego e šetše e le ya setšhaba: go phatlalatša go
Zapstore
e saena tiragalo ya Nostr yeo e rwelego SHA-256 ya APK le SHA-256 ya setifikeiti sa yona sa go saena. Ka fao ba
Android Mabapi le poledišano e hashes APK yeo e matha go tšwa go yona, e lata bao ba saennwego
ditiragalo, e boloka fela tšeo di saennwego ke senotlelo sa mogaši, gomme e bapetša. E bontšha tše pedi tšeo
hashes hammoho, kahoo u ka pheta hlahloba tima sesebediswa: thowuni phatlalatsoa APK, matha
sha256sum godimo ga yona, gomme o lebelele tiragalo ye e swanago ka bowena.
Sedirišwa seo se tsentšwego go tšwa go Google Play se ka se hlahlobje ka tsela ye, and that's not a sign anything is wrong. Google re-signs every upload with its own key and builds a separate APK for each device, so what lands on your phone is not the file the developer produced and its hash matches nothing that could be published. The app recognizes a Play install and says so rather than reporting a failure. To check a build yourself, install the APK published directly.
iOS e ka se hlahlobje le gatee. Apple encrypts le hape saena mong le e mong download ka bomong, kahoo hash computed ka iPhone hao e ikhethang ho iPhone hao le matches letho e gatišitšwego kae le kae. Poledišano ya Mabapi e bolela se ka go lebanya go e na le go bontšha se se kgonthišetšago maemo ao a sa bolelego selo. Ge o nyaka Nymchat yeo o ka e netefatšago go didirišwa tša Apple, šomiša wepe tiriso ye, yeo e dirago go hlahloba faele ye nngwe le ye nngwe yeo e e sepetšago.
A hlahloba tiriso ye matha ka boeona e ka se hlatsele tiriso ye e a botega — mang le mang yo a e fetotšego e be e ka tloša tšheke le yona. Seo e se hlatselago ke taba ye e tlwaelegilego: gore kopi ya gago hlomamisa ke khopi yeo e phatlaladitšwego. Seo se swanetše go ba le sona ka gobane se se tšeela godimo bapetša ke phatlalatša, ka fao motho yo mongwe ntle le wena a ka di hlahloba, gomme a se dumelelane.
The lengwalo la tumelelo canary
A warrant canary ke polelo, e phatlaladitšwego ka lenaneo le le sa fetogego, leo motšweletši a nago le lona ga se amogetše taelo ya mmušo ya sephiri yeo ba ileditšwego go e utolla — a Lengwalo la Tšhireletšo ya Setšhaba, taelo ya FISA. Mohlami a ka gapeletšega go homola ka taelo ye bjalo, eupša e ka se gapeletšege go bolela maaka, ka fao canary go ya stale goba go nyamelela ke ka boyona leswao.
E dula ka canary.json modung wa polokelo gomme e tšewa ka go lebanya
go tšwa go GitHub, ka fao histori ya yona e a hlahlobja ka go ikemela ka eng kapa eng yeo sebaka se se rometšwego se se bolelago.
Poledišano ya Mabapi e e mebala-khoutu:
| Mmala | Ra gore |
|---|---|
| Talamorogo - tsohle hlakile | E saennwe, ya bjale, le mosaeno di swana le senotlelo sa mogaši. Ga go na taelo ya sephiri yeo e amogetšwego. |
| Serolane - overdue, kapa ha se tsohle hlakileng | Ga se ya lapološwa ke letšatši-kgwedi la yona leo le boletšwego, goba la yona allClear folaga ke maaka. Taelo yeo e homoditšwego e ka se ke ya lahlwa. |
| Khubedu - saena sa nepahalang, kapa ile | Mosaeno ga o swane le senotlelo sa mogaši, goba faele e tlošitšwe ka botlalo. Swara se e le temošo e kgolo. |
Ankora ya go ba foreše
The saennwe canary embeds morao-rao Bitcoin thibela bophahamo le hash ka motsotso oa saena. Hash yeo e be e ka se tsebje pele ga ge boloko e le gona, e lego seo se hlatselago gore canary e be e le gona e saennwe morago ga ntlha e itšego ya nako go e na le go saenwa pele ka bontši dikgweding tša pejana. Poledišano ya Mabapi e kgokaganya ankora go monyakišiši wa boloko gore o kgone go e hlahloba.