Ipilẹ imo Labẹ awọn Hood
Ijerisi Kọ
Orisun ṣiṣi ṣe iranlọwọ nikan ti koodu ti o nṣiṣẹ jẹ koodu ti o jẹ atejade. Nymchat wa ni itumọ ti deterministically ki o le ṣayẹwo ti ara rẹ, lati inu awọn app tabi lati kan ebute.
Oju-iwe yii jẹ itumọ ẹrọ fun irọrun. Atilẹba Gẹẹsi jẹ ẹya ti o kan.
Reproducible kọ
Ilé awọn app emits a build-manifest.json ti o ni awọn ileri orisun, a
SHA-256 hash ti gbogbo HTML ti a nṣe, JavaScript ati dukia CSS, ati ẹyọkan
bundleHash lori gbogbo ṣeto dukia.
Ijade da lori akoonu orisun nikan - paapaa akoko kikọ ti o gbasilẹ jẹ
ṣẹ's timestamp kuku ju akoko ti kikọ naa ṣiṣẹ - nitorinaa ẹnikẹni tun tun ṣe kanna
ṣẹ gba baiti-aami awọn faili ati awọn kanna bundleHash.
Iṣe GitHub kan lẹhinna tun ṣe iṣẹ kọọkan ni ominira ati awọn ami-ifihan-ifihan
awọn ẹri fun elile ati ifihan, nitorina igbasilẹ ti o fowo si wa ti tying a
bundleHash to a dá ni ibi ipamọ, yi ni ohun miiran ju awọn
imuṣiṣẹ.
Kini Awọn sọwedowo ibaraẹnisọrọ Nipa
Nipa ninu awọn akọsori nṣiṣẹ awọn ayẹwo ifiwe, ninu rẹ browser.
O tun mu dukia kọọkan ti oju-iwe naa nṣiṣẹ nitootọ, o hashes pẹlu API Crypto Wẹẹbu, ati
afiwe lodi si awọn farahan. Lẹhinna - ati eyi ni apakan ti o ṣe pataki - o
recomputes awọn bundleHash lati awọn hashes o o kan iṣiro, ko lati
ohunkohun ti o han gbangba nperare, ati ki o wo ti o soke ni awọn ibi ipamọ ká wole attestations
nipasẹ GitHub API.
Iyẹn ni ohun ti o da imuṣiṣẹ duro lati ṣe ẹri fun ararẹ: ṣiṣe awọn faili ti a yipada papọ pẹlu ifihan ti o baamu tun kuna, nitori hash ti a ṣe iṣiro ko ni ẹri.
| Ipo | Itumo |
|---|---|
| & ṣayẹwo; Ìṣàfilọ́lẹ̀ ìṣàmúlò (n/n) | Gbogbo awọn ibaamu dukia, hash lapapo ti a ṣe iṣiro jẹ ẹri nipasẹ ibi ipamọ, ati oju-iwe naa ti wa ni iṣẹ lati agbegbe aṣẹ. |
| ⚠ Iṣeduro kọ · kii ṣe ohun elo osise | Koodu naa jẹ ojulowo ati jẹri, ṣugbọn eyi jẹ digi lori agbegbe miiran. Digi ko le yọ ikilọ yii kuro laisi ṣiṣe iṣeduro kuna. |
| ✗ Ibamu | Ohun dukia ko ni hash si ohun ti ifihan sọ. |
| ✗ Kọ laigba aṣẹ | Hash budle ti a ṣe iṣiro ko ni ẹri lati ibi ipamọ - iṣafihan ti ara ẹni ti a ṣe. |
| ⚠ Provenance ko le de ọdọ | GitHub API ko le de ọdọ, nitorinaa ijẹrisi naa ko le ṣe ayẹwo ni ọna mejeeji. |
Ṣiṣayẹwo rẹ funrararẹ
Ṣe atunto ifaramọ Nipa awọn orukọ ajọṣọ ki o ṣe afiwe:
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 ti a tẹjade yẹ ki o baramu mejeeji ọkan ti o wa ninu ibaraẹnisọrọ About ati ọkan ninu ifaramo yẹn kọ-provenance run Lakotan. O tun le ṣayẹwo ibuwọlu taara pẹlu GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Awọn ohun elo Android ati iOS
Ayẹwo loke jẹ ayẹwo ohun elo wẹẹbu kan, ati pe idi naa tọ lati sọ ni gbangba: ohun elo abinibi kan ko le ṣe ohun kanna si ara rẹ. Ohun ti nṣiṣẹ lori foonu rẹ jẹ koodu ẹrọ ti o ṣajọ, kii ṣe orisun ninu awọn ibi ipamọ, ati ohunkohun awọn app le ṣe iṣiro lori ẹrọ tijoba ọkan si awọn miiran.
Android le ṣe ohun ti o dara julọ ti o tẹle. Ti fi sori ẹrọ .apk jẹ faili ti app le ka
ati hash, ati elile ti gbogbo idasilẹ ti a tẹjade jẹ ti gbogbo eniyan tẹlẹ: titẹjade si awọn
Zapstore
fowo si iṣẹlẹ Nostr kan ti n gbe apk's SHA-256 ati iwe-ẹri ibuwọlu rẹ SHA-256. Nitorina awọn
Android Nipa dialog hashes apk ti o nṣiṣẹ lati, o mu awọn ti o fowo si
iṣẹlẹ, ntọju nikan ni eyi ti o wole nipasẹ awọn Olùgbéejáde ká bọtini, ati ki o safiwe. O fihan awọn meji
hashes daradara, nitorinaa o le tun ṣayẹwo ẹrọ naa: ṣe igbasilẹ apk ti a tẹjade, ṣiṣe
sha256sum lori rẹ, ati ki o wo iṣẹlẹ kanna funrararẹ.
Ohun elo ti a fi sii lati Google Play ko le ṣe ayẹwo ni ọna yii, ati pe o jẹ ko si iroyin eyikeyi ni iṣoro. Google re-signs kọọkan gbigbe pẹlu awọn oniwe-ẹrọ rẹ ati ṣeto kan apk kan fun kọọkan ẹrọ, ki o si eyi ti o ba wa lori foonu rẹ jẹ ko awọn faili ti awọn onibara gbóògì ati awọn oniwe-hachi ni ibamu nikan ti o le ṣẹda. Awọn app mọ a Play installer ati wí pé ki o si fi ọrọ kan. Lati tẹsiwaju a build nikan, fi apk ti a ṣẹda nikan.
iOS ko le ṣayẹwo ni gbogbo. Apple encrypts ati tun-aami igbasilẹ kọọkan leyo, ki a hash iṣiro lori rẹ iPhone jẹ oto si rẹ iPhone ati ki o ibaamu ohunkohun atejade nibikibi. Ọrọ sisọ About sọ eyi taara kuku ju fifi ifọkanbalẹ han ipo ti o tumo si ohunkohun. Ti o ba fẹ Nymchat o le rii daju lori ohun elo Apple, lo wẹẹbu naa app, eyiti o ṣayẹwo gbogbo faili ti o nṣiṣẹ.
Ṣayẹwo ohun elo kan funrarẹ ko le jẹri pe ohun elo naa jẹ ooto - ẹnikẹni ti o ṣe atunṣe tun le yọ ayẹwo naa kuro. Ohun ti o jẹri ni ọran lasan: pe ẹda naa iwọ ti fi sori ẹrọ ni ẹda ti a tẹjade. Iyẹn tọ lati ni nitori awọn iye rẹ afiwera wa ni gbangba, ki ẹnikan miiran ju o le ṣayẹwo wọn, ki o si koo.
Canary atilẹyin ọja
Canary atilẹyin ọja jẹ alaye kan, ti a tẹjade lori iṣeto ti o wa titi, ti olupilẹṣẹ naa ni kii ṣe gba aṣẹ ijọba aṣiri ti wọn jẹ ewọ lati ṣafihan - a Iwe Aabo Orilẹ-ede, aṣẹ FISA kan. Olùgbéejáde le fi agbara mu lati dakẹ nipa iru aṣẹ bẹ, ṣugbọn ko le fi agbara mu lati purọ, nitorinaa canary ti n lọ stale tabi ti sọnu ni ara ifihan agbara.
O ngbe inu canary.json ni root ti awọn ibi ipamọ ati ki o ti wa ni mu taara
lati GitHub, nitorinaa itan-akọọlẹ rẹ jẹ ifọwọyi ni ominira ohunkohun ti aaye ti a fi ranṣẹ sọ.
Awọn About dialog awọ-koodu rẹ:
| Àwọ̀ | Itumo |
|---|---|
| Alawọ ewe - gbogbo kedere | Ti fowo si, lọwọlọwọ, ati ibuwọlu ni ibaamu bọtini olumugbese. Ko si aṣẹ ikoko ti a ti gba. |
| Yellow - ti pẹ, tabi kii ṣe gbogbo rẹ | O ko ni itunu nipasẹ ọjọ ti a sọ, tabi rẹ allClear asia jẹ eke. Aṣẹ ipalọlọ ko le ṣe parẹ. |
| Pupa - Ibuwọlu ti ko tọ, tabi lọ | Ibuwọlu naa ko baramu bọtini olumugbese, tabi faili ti yọkuro patapata. Toju eyi bi ikilọ pataki kan. |
Awọn freshness oran
Canary ti o fowo si ṣe ifibọ giga bulọọki Bitcoin tuntun ati hash ni akoko iforukọsilẹ. Hash yẹn ko le ti mọ ṣaaju ki bulọki naa wa, eyiti o jẹri pe canary jẹ fowo si lẹhin aaye kan pato ni akoko kuku ju ibuwọlu tẹlẹ ni awọn oṣu pupọ sẹyin. Ibanisọrọ About About ṣopọ mọ oran si oluwakiri idinaki ki o le ṣayẹwo.