Ti kpo yi emenyawo gbɔ
Trɔ yi Nymchat dzi

Sidzedze ƒe gɔmeɖoanyi Le ʋuƒoa te

Xɔtutua ƒe kpeɖodzinana

Ne code si zãm nèle lae nye code si nɔ anyi ko hafi open source kpena ɖe ame ŋu wotae. Wotu Nymchat deterministically ale be wò ŋutɔ nàte ŋu akpɔe ɖa, tso ememe app alo tso terminal aɖe dzi.

Tu siwo woate ŋu agbugbɔ awɔ

App la tutu doa a build-manifest.json si me dzɔtsoƒe ƒe commit, a SHA-256 hash na HTML, JavaScript kple CSS nunɔamesi ɖesiaɖe si wosubɔ, kple ɖeka bundleHash le nunɔamesi blibo ma si woɖo ɖi dzi.

Nusi dona la nɔ te ɖe dzɔtsoƒe me nyawo dzi ko — xɔtutu ƒe ɣeyiɣi si woŋlɔ ɖi gɔ̃ hãe nye commit ƒe ɣeyiɣi ƒe dzesi tsɔ wu ɣeyiɣi si me xɔtutua ƒu du — eyata amesiame si le nu ma ke gbugbɔ tum commit xɔa byte-identical files kple esiwo sɔ bundleHash.

Emegbe GitHub Action gbugbɔ tua commit ɖesiaɖe le eɖokui si eye wòdea asi build-provenance te ɖaseɖiɖiwo na hash kple manifest la, eyata nuŋlɔɖi si wode asi ete si bla a bundleHash na commit le nudzraɖoƒea, si wowɔ to nane si menye dɔwɔwɔ ɖe dɔ me.

Nusi About ƒe nyatakakadzraɖoƒea léa ŋku ɖe eŋu

Ku ɖe le tanya la me la, ewɔa check la live, le wò browser me.

Nymchat About ƒe nyatakaka, si ɖea tɔtrɔa fiana, tu fɔmaɖimaɖi eye wòɖe mɔ na canary ƒe nɔnɔme.
The About dialog: version, build integrity, warrant canary kple fli tẽ na dɔwɔla.

Egaxɔa nunɔamesi ɖesiaɖe si axaa le dɔ wɔm ŋutɔŋutɔ, tsɔa Web Crypto API wɔa hash nɛ, eye tsɔe sɔ kple esi dze ƒã. Emegbe — eye esiae nye akpa si le vevie — eyae gbugbɔ bu akɔnta le bundleHash tso hashes-awo me e ɖeko wobu akɔnta, ke menye tso o nusianu si manifest la gblɔ, eye wòdia ema le nudzraɖoƒea ƒe ɖaseɖiɖi siwo wode asi na me to GitHub API dzi.

Emae nye nusi xea mɔ na dɔwɔwɔ be wòagaɖo kpe eɖokui dzi o: subɔsubɔ faɛl siwo ŋu wotrɔ asi le ɖekae kple a matching manifest gakpɔtɔ do kpo nu, elabena hash si wogbugbɔ bu akɔnta la mekpɔ kpeɖodzi aɖeke o.

ƉoƒeGᴐme nye
&le ŋku ɖe eŋu; Dɔdamɔnu si dziɖuɖua ɖo kpee (n/n) .Nu ɖesiaɖe si sɔ la, nudzraɖoƒea ɖo kpe bundle hash si wogbugbɔ bu akɔnta le la dzi, . kple wosubɔa axaa tso dziɖuɖua ƒe domenyinyi dzi.
⚠ Verified build · menye app si dziɖuɖua da asi ɖo oKɔdasia nye nyateƒe eye woɖo kpe edzi, gake esia nye ahuhɔ̃e le domenyiŋusẽfianu bubu dzi. Ahuhɔ̃e mate ŋu aɖe nuxlɔ̃ame sia ɖa ne medo kpo kpeɖodzinana o.
✗ MasɔmasɔNunɔamesi aɖe mewɔa hash ɖe nusi manifest gblɔ ŋu o.
✗ Xɔ si womewɔ le se nu oBundle hash si wogbugbɔ ŋlɔ la mekpɔ kpeɖodzi aɖeke tso nudzraɖoƒea o — manifest si wowɔ le wo ɖokui si.
⚠ Womate ŋu aɖo afisi wotso oWometeŋu ɖo GitHub API gbɔ o, eyata wometeŋu lé ŋku ɖe ɖaseɖiɖia ŋu le mɔ eveawo siaa nu o.

Wò ŋutɔ nàɖo kpe edzi

Gbugbɔ tu commit si nye About dialog ŋkɔwo eye nàtsɔe asɔ kple wo nɔewo:

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

Ele be hash si wota la nasɔ kple esi le About ƒe nyatakaka me kple esi le commit ma me siaa build-provenance duƒuƒu ƒe kpukpui. Àteŋu akpɔ asidede agbalẽ te tẽ hã kple GitHub CLI:

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

Mɔɖegbalẽa canary

Warrant canary nye nya aɖe, si wota ɖe ɖoɖowɔɖi aɖe si woɖo ɖi dzi, si le ewɔla si o woxɔ dziɖuɖu ƒe sedede aɖe si woxe mɔ na wo be woagaɖee afia o — a Dukɔa ƒe Dedienɔnɔ Ŋuti Lɛta, si nye FISA ƒe sedede. Woate ŋu azi ewɔla dzi be wòazi ɖoɖoe le eŋu sedede sia tɔgbe, gake womate ŋu azi edzi be wòada alakpa o, eyata canary si le gbegblẽm alo le bubum la nye ŋutɔe nye dzesi.

Enɔa agbe le canary.json le nudzraɖoƒea ƒe ke me eye woxɔnɛ tẽ tso GitHub gbɔ, eyata woateŋu adzro eƒe ŋutinya me le eɖokui si le nusianu si nyatakakadzraɖoƒe si woɖo la agblɔ me. About ƒe nyatakakadzraɖoƒea dea amadede-kɔdae be:

AmadedeGᴐme nye
Gbemu — wo katã me kɔWode asi ete, fifia, kple asidede ete sɔ kple amesi wɔe ƒe safui. Womexɔ sedede aɖeke le adzame o.
Aŋgbaɖiɖi — ɣeyiɣi si va yi, alo menye wo katã me kɔ oWometsɔ ŋkeke si wogblɔ, alo eƒe allClear aflaga nye alakpa. Womate ŋu agbe sedede si wozi ɖoɖoe o.
Dzẽ — asidede agbalẽ te si mesɔ o, alo dzoAsidede agbalẽa te mewɔ ɖeka kple amesi wɔe ƒe safui o, alo woɖe faɛl la ɖa keŋkeŋ. Bu esia abe nuxlɔ̃ame vevi aɖe ene.

Freshness ƒe seke la

Canary si wode asi ete la tsɔa Bitcoin block ƒe kɔkɔme kple hash yeyetɔ dea eme le ɣeyiɣi si me wode asi ete. Womate ŋu anya hash ma hafi block la nanɔ anyi o, si ɖo kpe edzi be canary la nɔ anyi wode asi ete emegbe ɣeyiɣi aɖe koŋ tsɔ wu be woade asi ete do ŋgɔ le agbɔsɔsɔ gã me ɣleti aɖewo do ŋgɔ. Nyatakakadzraɖoƒea doa ka kple sekea kple block explorer ale be nàte ŋu akpɔe ɖa.