Hla mus rau cov ntsiab lus
Rov qab mus rau Nymchat

Kev paub hauv paus Hauv qab hood

Txheeb xyuas qhov tsim

Qhib qhov chaw tsuas yog pab yog tias tus lej koj tab tom khiav yog tus lej uas yog luam tawm. Nymchat yog tsim los txiav txim siab yog li koj tuaj yeem tshawb xyuas koj tus kheej, los ntawm sab hauv app los yog los ntawm lub davhlau ya nyob twg.

Reproducible tsim

Tsim lub app emits a build-manifest.json muaj cov lus cog tseg, a SHA-256 hash ntawm txhua qhov kev pabcuam HTML, JavaScript thiab CSS khoom vaj khoom tsev, thiab ib qho bundleHash tshaj qhov khoom vaj khoom tsev tag nrho.

Qhov tso zis tsuas yog nyob ntawm qhov chaw cov ntsiab lus - txawm tias lub sijhawm sau cia yog qhov cog lus lub sij hawm es tsis yog lub sij hawm tsim khiav - yog li leej twg rebuilding tib yam commit tau txais cov ntaub ntawv byte-zoo tib yam thiab tib yam bundleHash.

Ib qho GitHub Action tom qab ntawd rov tsim dua txhua qhov kev cog lus ntawm nws tus kheej thiab kos npe ua pov thawj ntawv pov thawj rau lub hash thiab cov manifest, yog li ntawd muaj ib tug kos npe rau tying a bundleHash rau kev cog lus nyob rau hauv lub repository, tsim los ntawm lwm yam uas tsis yog lub kev xa tawm.

Yuav Ua Li Cas Txog dialog checks

Txog nyob rau hauv header sau daim tshev nyob, hauv koj tus browser.

Lub Nymchat Hais txog kev sib tham, qhia cov version, tsim kev ncaj ncees thiab lav canary raws li txoj cai.
Cov lus hais txog: version, tsim kev ncaj ncees, lav canary thiab ib txoj kab ncaj nraim rau tus tsim tawm.

Nws rov ua dua txhua cov khoom vaj khoom tsev nplooj ntawv tab tom ua haujlwm, hashes nrog Web Crypto API, thiab piv rau qhov tshwm sim. Tom qab ntawd - thiab qhov no yog qhov tseem ceeb - nws recomputes cov bundleHash los ntawm hashs nws tsuas yog xam, tsis yog los ntawm txhua yam uas manifest thov, thiab zoo li ntawd nyob rau hauv lub repository tus kos npe pov thawj los ntawm GitHub API.

Qhov ntawd yog dab tsi txwv kev xa tawm los ntawm vouching rau nws tus kheej: pab hloov cov ntaub ntawv ua ke nrog ib qho kev sib piv manifest tseem ua tsis tau, vim hais tias cov recomputed hash tsis muaj ntawv pov thawj.

xwm txheejtxhais tau tias
& tshawb xyuas; Verified official app (n/n)Txhua qhov khoom vaj khoom tsev sib tw, cov khoom siv rov ua dua tshiab tau lees paub los ntawm qhov chaw cia khoom, thiab nplooj ntawv no tau txais kev pab los ntawm official domain.
⚠ Verified build · tsis yog lub official appCov cai yog qhov tseeb thiab lees paub, tab sis qhov no yog daim iav ntawm lwm tus sau. Daim iav tsis tuaj yeem tshem tawm cov lus ceeb toom no yam tsis ua pov thawj tsis tiav.
✗ Tsis sib haumLub cuab tam tsis hash rau qhov manifest hais.
✗ Kev tsim tsis raug caiLub recomputed bundle hash tsis muaj ntaub ntawv pov thawj los ntawm lub chaw cia khoom - ib qho kev tshwm sim ntawm tus kheej.
⚠ Cov ntawv pov thawj tsis tuaj yeem ncav cuagGitHub API tsis tuaj yeem ncav cuag, yog li tsis tuaj yeem kuaj xyuas ob txoj kev.

Txheeb xyuas koj tus kheej

Rebuild lub cog lus hais txog lub npe dialog thiab sib piv:

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

Cov ntawv luam tawm yuav tsum phim ob qho tib si hauv Cov Lus Qhia thiab ib qho hauv qhov kev cog lus ntawd build-provenance run summary. Koj tuaj yeem tshawb xyuas qhov kos npe ncaj qha nrog GitHub CLI:

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

Android thiab iOS apps

Daim tshev saum toj no yog lub web-app check, thiab yog vim li cas tsim nyog hais meej: ib txwm app ua tsis tau ib yam rau nws tus kheej. Yuav ua li cas khiav ntawm koj lub xov tooj yog compiled tshuab code, tsis lub qhov chaw nyob rau hauv lub repository, thiab tsis muaj dab tsi lub app yuav xam tau rau ntawm lub ntaus ntawv hais txog ib tug mus rau lub lwm yam.

Android tuaj yeem ua qhov zoo tshaj plaws tom ntej. Cov ntsia .apk yog ib cov ntaub ntawv uas app tau nyeem thiab hash, thiab cov hash ntawm txhua qhov kev tshaj tawm tau tshaj tawm rau pej xeem: tshaj tawm rau lub Zapstore kos npe rau Nostr kev tshwm sim nqa lub APK's SHA-256 thiab nws daim ntawv pov thawj kos npe SHA-256. Yog li cov Android Txog dialog hashs lub APK nws tab tom khiav los ntawm, nqa cov kos npe xwm txheej, tsuas yog cov uas kos npe los ntawm tus tsim tawm tus yuam sij, thiab sib piv. Nws qhia ob hashes ib yam nkaus, yog li koj tuaj yeem rov ua qhov kos tawm ntawm lub cuab yeej: rub tawm APK luam tawm, khiav sha256sum ntawm nws, thiab saib tib qhov xwm txheej koj tus kheej.

Ib qho app ntsia los ntawm Google Play tsis tuaj yeem kuaj tau li no, thiab qhov ntawd tsis yog ib qho cim tias muaj dab tsi tsis zoo. Google tshiab sau (re-signs) txhua yam uas muaj nqis rau nrog nws tus key thiab tsim ib lub APK twg rau txhua lub cuav, yog li ntawd yam uas tau los rau hauv koj lub xov tooj tsis yog lub file uas tus tsim tau tsim tawm los thiab nws lub hash tsis sib haum xeeb nrog dab tsi uas yuav tsum tau tshaj tawm. Lub app paub tias yog tau txais los ntawm Play thiab qhia li ntawd, tsis yog qhia tias nws tsis ua tau. Txhawm rau tshawb xyuas build koj tus kheej, tsuas yog ntxiv lub APK uas tau tshaj tawm ncaj qha.

iOS tsis tuaj yeem kuaj xyuas txhua. Apple encrypts thiab rov kos npe rau txhua qhov rub tawm ib tus zuj zus, yog li tus hash xam ntawm koj iPhone yog tshwj xeeb rau koj iPhone thiab tsis muaj dab tsi luam tawm nyob qhov twg. Lub dialog hais txog qhov no outright es tsis qhia ib tug reassuring xwm txheej uas txhais tsis muaj dab tsi. Yog tias koj xav tau Nymchat koj tuaj yeem tshawb xyuas ntawm Apple hardware, siv lub vev xaib app, uas kuaj xyuas txhua cov ntaub ntawv nws tab tom khiav.

Dab tsi tsis muaj qhov no ua pov thawj

Ib daim tshev app khiav ntawm nws tus kheej tsis tuaj yeem ua pov thawj tias lub app ncaj ncees - leej twg hloov nws tuaj yeem tshem tawm daim tshev thiab. Qhov nws ua pov thawj yog cov ntaub ntawv zoo tib yam: uas luam koj ntsia yog daim ntawv luam tawm. Qhov ntawd yog tsim nyog muaj vim qhov muaj nuj nqis nws kev sib piv yog pej xeem, yog li lwm tus neeg uas tsis yog koj tuaj yeem tshawb xyuas lawv, thiab tsis pom zoo.

Lub warrant canary

Daim ntawv cog lus canary yog ib nqe lus, luam tawm ntawm lub sijhawm teem tseg, uas tus tsim tawm muaj tsis yog tau txais tsab ntawv ceeb toom tseem ceeb uas lawv txwv tsis pub tshaj tawm - a Tsab Ntawv Kev Ruaj Ntseg Hauv Tebchaws, FISA xaj. Tus tsim tawm tuaj yeem yuam kom nyob twj ywm txog xws li kev txiav txim, tab sis tsis tuaj yeem yuam kom dag, yog li tus canary mus stale lossis ploj mus nws tus kheej lub teeb liab.

Nws nyob hauv canary.json ntawm lub hauv paus ntawm lub repository thiab yog nqa ncaj qha los ntawm GitHub, yog li nws keeb kwm tuaj yeem tshawb xyuas ntawm nws tus kheej ntawm txhua qhov chaw xa tawm hais. Qhov Hais txog dialog xim-codes nws:

Ximtxhais tau tias
Ntsuab - txhua yam meejKos npe, tam sim no, thiab kos npe sib tw nrog tus tsim tawm tus yuam sij. Tsis tau txais kev txiav txim zais cia.
Daj - dhau sijhawm, lossis tsis meejNws tsis tau rov kho dua los ntawm nws cov hnub teev, lossis nws allClear chij yog cuav. Kev txiav txim uas ntsiag to tsis tuaj yeem txiav tawm.
Liab - kos npe tsis raug, lossis ploj musQhov kos npe tsis phim tus tsim tawm tus yuam sij, lossis cov ntaub ntawv raug tshem tawm tag nrho. Kho qhov no raws li kev ceeb toom loj.

Freshness thauj tog rau nkoj

Tus kos npe canary embeds qhov tseeb Bitcoin thaiv qhov siab thiab hash thaum lub sijhawm kos npe. Qhov hash tsis tuaj yeem paub ua ntej qhov thaiv muaj, uas ua pov thawj tias canary yog kos npe tom qab ib lub ntsiab lus tshwj xeeb hauv lub sijhawm tsis yog kos npe ua ntej hauv ntau lub hlis ua ntej. Cov lus hais txog txuas lub thauj tog rau nkoj mus rau block explorer yog li koj tuaj yeem tshawb xyuas nws.