Fa'ase'e i le anotusi
Toe foʻi i Nymchat

Fa'avae poto I lalo o le pulou

Fa'amaonia le fausiaina

Na'o le fa'amatalaga tatala e fesoasoani pe afai o le code o lo'o e fa'atinoina o le code lea sa i ai lomia faasalalau. Nymchat ua fausia deterministically ina ia mafai ona e siakiina oe lava, mai totonu o le app pe mai se nofoaga.

Fausia toe gaosia

Fausiaina o le app emiti a build-manifest.json o loo i ai le puna commit, a SHA-256 hash o HTML uma, JavaScript ma CSS aseta, ma se tasi bundleHash i luga o lena seti aseta atoa.

E fa'alagolago na'o le mea o lo'o maua mai ai - e o'o lava i le taimi fa'amaumau fau o le commit's timestamp nai lo le taimi na fau ai le fale - o lea e toe fausia e se tasi commit e maua faila e tutusa lelei ma tutusa bundleHash.

O le GitHub Action ona toe fausia ai lea o mea ta'itasi ta'ito'atasi ma fa'ailoga fau-fuafuaga fa'amaoniga mo le hash ma le fa'aaliga, o lea o lo'o i ai se fa'amaumauga sainia e fusia ai a bundleHash i se tautinoga i totonu o le fale teu oloa, gaosia e se mea e ese mai i le fa'atinoina.

O le a le mea e siaki e le About dialog

E uiga i i le ulutala o loʻo faʻatautaia le siaki ola, i lau suʻega.

O le Nymchat About dialog, faʻaalia le faʻamatalaga, fausia le amiosaʻo ma faʻamaonia tulaga canary.
O le Fa'amatalaga Fa'amatalaga: fa'aliliuga, fausia le fa'amaoni, saisai canary ma se laina sa'o i le fa'atupuina.

E toe aumai aseta ta'itasi o lo'o tamo'e moni ai le itulau, fa'asalaina i le Web Crypto API, ma faatusatusa i le faaaliga. Ona - ma o le vaega lea e taua - o toe faitau le bundleHash mai fa'ailoga lea na ona fuafua, ae le mai so'o se mea o lo'o ta'u mai e le fa'aaliga, ma va'ai i luga i fa'amaumauga saini a le faleteuoloa e ala i le GitHub API.

O le mea lena e taofia ai se fa'agaioiga mai le fa'amaonia mo ia lava: tu'uina atu faila fa'aopoopo fa'atasi ma e le'i manuia lava se fa'aaliga fa'atusa, ona e leai se fa'amaoniga o le hash toe fa'atulagaina.

TulagaO lona uiga
&sia; Talosaga aloa'ia fa'amaonia (n/n)So'o se aseta e fetaui, o le fa'asologa o fusi fa'amau e fa'amaonia e le fale teu oloa, ma o le itulau e tautuaina mai le vaega aloa'ia.
⚠ Fausia faʻamaonia · e le o le app aloaiaO le code e moni ma faʻamaonia, ae o se faʻata i luga o se isi vaega. E le mafai e se fa'ata ona aveese lenei lapataiga e aunoa ma le fa'amaoniaina.
✗ Le fetauiO se aseta e le fetaui i mea o loʻo fai mai ai le faʻaaliga.
✗ Faiga lē aloaiaE leai se fa'amaoniga mai le fale teu oloa - o se fa'aaliga na faia e le tagata lava ia.
⚠ Fa'atupuina e le mafai ona mauaLe GitHub API e leʻi mafai ona oʻo i ai, o lea e le mafai ai ona siaki le faʻamaoniga.

Fa'amaonia e oe lava

Toe fausia le ta'utinoga e uiga i igoa talatalanoaga ma fa'atusatusa:

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

O le hash lolomi e tatau ona fetaui ma le tasi i le About dialog ma le tasi i lena tautinoga build-provenance run summary. E mafai foi ona e siaki saʻo le saini i le GitHub CLI:

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

O polokalame Android ma iOS

O le siaki o lo'o i luga o se upegatafa'ilagi-app siaki, ma o le mafua'aga e tatau ona ta'u manino: o se fa'aoga masani e le mafai ona faia le mea lava e tasi ia te ia lava. O le mea o loʻo taʻavale i luga o lau telefoni o loʻo tuʻufaʻatasia le numera masini, ae le o le puna i totonu o le fale teu oloa, ma e leai se mea e mafai e le app ona faʻatusatusa i luga o le masini e faʻatatau le tasi i le isi.

E mafai e Android ona faia le isi mea sili. Le fa'apipi'i .apk o se faila e mafai e le app ona faitau ma hash, ma le hash o fa'asalalauga ta'itasi uma ua fa'asalalauina fa'alaua'itele: fa'asalalau i le Zapstore saini se mea Nostr o lo'o tauaveina le APK a le SHA-256 ma lona saini SHA-256 tusi faamaonia. O lea la o le Android E uiga i fa'atalanoaina le APK o lo'o tamo'e mai ai, aumai i latou na sainia mea tutupu, na'o mea na sainia e le tagata e faia le ki, ma fa'atusatusa. O loʻo faʻaalia ai le lua faʻapea foʻi ma hashes, ina ia mafai ona e toe faia le siaki mai le masini: download le APK lolomi, tamoe sha256sum i luga, ma vaai i le mea lava e tasi na tupu.

E le mafai ona siaki se app fa'apipi'i mai le Google Play i lenei auala, ma e lē o se faailoga o loo sese se mea. E toe faatumuina e le Google le faailoga i setiapu upload i lona lava ki ma fausia se APK eseese mo masini taatasi, o lea le mea e oo atu i lau telefoni e lē o le failauga na fatuina e le tagata atia'e ma e lē tutusa lona hash ma se mea e mafai ona faasalalauina. E iloa e le polokalame le faaputuuga mai le Play ma faailoa atu lea nai lo le faailoa o se mea ua sese. Ina ia siaki lou lava le fausiina, faaputu le APK na faasalalauina sa'o.

iOS e le mafai ona siaki uma. E fa'ailoga ma toe saini a Apple i laiga ta'itasi ta'ito'atasi, o le mea lea o se hash computed i lau iPhone e tulaga ese i lau iPhone ma e leai se mea e fetaui lomia i soo se mea. O le tala fa'atatau e fai mai sa'o lenei mea nai lo le fa'aalia o se fa'amautinoaga tulaga e leai se uiga. Afai e te manaʻo i se Nymchat e mafai ona e faʻamaonia ile Apple hardware, faʻaoga le upega tafaʻilagi app, lea e siaki faila uma o loʻo taʻavale.

O le a se mea e leai se tasi o nei mea e faamaonia

Ole siaki ole app e tamo'e lava e le mafai ona fa'amaonia le fa'amaoni o le app - po'o ai lava na suia e mafai foi ona aveese le siaki. O le mea e faamaonia ai o le tulaga masani: o le kopi o oe fa'apipi'i o le kopi na fa'asalalau. E taua le mauaina ona o le taua fa'atusatusaga fa'alaua'itele, o lea e mafai ai e se isi nai lo oe ona siaki i latou, ma le ioe.

Le saisai canary

O le tusi saisai canary o se faʻamatalaga, faʻasalalau i luga o se taimi faʻatulagaina, o loʻo i ai i le tagata atiaʻe e leai maua se poloaiga faalilolilo a le malo ua faasaina ona latou faailoa atu - a National Security Letter, o se poloaiga a le FISA. E mafai ona fa'amalosia le fa'atupuina e nofo filemu o se fa'atonuga fa'apea, ae le mafai ona fa'amalosi e pepelo, o le mea lea o le canary o lo'o mapu pe mou atu lava ia le faailo.

E nofo i totonu canary.json i le a'a o le faleteuoloa ma e aumai sa'o mai GitHub, o lona talaʻaga e mafai ona suʻeina tutoatasi mai soʻo se mea e fai mai ai le upega tafaʻilagi. O le About dialog color-codes:

LanuO lona uiga
Lanu meamata - manino umaO le saini, o lo'o iai, ma le saini e fetaui ma le ki a le tagata atia'e. E leai se poloaiga faalilolilo ua maua.
Lanu samasama - tuai, pe le manino umaE leʻi faʻafouina i lona aso taʻua, poʻo lona allClear e pepelo le fu'a. E le mafai ona fa'ate'aina se fa'atonuga fa'alologo.
Lanu mumu — le saini saini, pe ua aluE le fetaui le saini ma le ki a le tagata atia'e, pe ua aveese atoa le faila. Ia fai lenei mea o se lapataiga ogaoga.

O le taula fou

O le canary ua sainia e faʻapipiʻi ai le maualuga o poloka Bitcoin lata mai ma le hash i le taimi o le saini. E le mafai ona iloa lena hash a'o le'i i ai le poloka, lea e faamaonia ai sa iai le canary sainia mulimuli ane se vaega patino i le taimi nai lo le saini muamua i le tele o masina muamua atu. O le Tala Fa'atatau e feso'ota'i le taula i se poloka su'esu'e ina ia mafai ona e siakiina.