Rekọja si akoonu
Pada si Nymchat

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.

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.

Nymchat Nipa ajọṣọrọsọ, fifi ẹya han, kọ iduroṣinṣin ati ipo canary atilẹyin ọja.
Ọrọ sisọ About: ẹya, kọ iduroṣinṣin, canary atilẹyin ọja ati laini taara si olupilẹṣẹ.

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.

IpoItumo
& ṣ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 osiseKoodu 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.
✗ IbamuOhun 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ṣẹ.

Ohun ti ko si eyi jẹri

Ṣ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 kedereTi 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.