Gara qabiyyee isaatti darbaa
Gara Nymchat tti deebi'a

Bu’uura beekumsaa Hoodii jalatti

Ijaarsa mirkaneessuu

Open source kan gargaaru yoo koodii ati hojjechaa jirtu koodii ture ta'e qofa maxxanfame. Nymchat deterministically waan ijaarameef ofii keetii sana sakatta'uu dandeessa, keessaa app ykn tarminaala irraa.

Ijaarsa irra deebi’amee hojjetamuu danda’u

Appicha ijaaruun a build-manifest.json kan madda commit of keessaa qabu, a SHA-256 hash qabeenya HTML, JavaScript fi CSS tajaajilame hunda, fi tokko bundleHash qabeenya sana hunda irratti tuuta.

Bu'aan qabiyyee madda qofa irratti hundaa'a — yeroon ijaarsa galmaa'e illee kan commit's timestamp yeroo ijaarsi sun fiige caalaa — kanaaf namni kamiyyuu kanuma deebisee ijaaru commit faayilii baayitii walfakkaataa fi walfakkaataa argata bundleHash.

Sana booda Tarkaanfiin GitHub tokkoon tokkoon waadaa of danda'ee deebisee ijaara fi ijaarsa-madda mallatteessa ragaa hash fi manifest, kanaaf galmee mallatteeffame kan a hidhu jira bundleHash gara commit kuusaa keessa jirutti, kan waan biraatiin kan oomishame bobbaa gochuudha.

Maal qaaqa Waa'ee sakatta'a

Waa'ee mataduree keessatti sakatta'iinsa kallattiin hojjeta, biraawzari kee keessatti.

Qaaqa Waa'ee Nymchat, kan agarsiisu, qulqullina ijaaruu fi haala kanaarii wabii.
Qaaqa Waa'ee: version, ijaarsa qulqullina, warrant canary fi sarara kallattiin gara developer.

Tokkoon tokkoon qabeenya fuul-barruun qabatamaan hojjechaa jiru irra deebi'ee fida, API Kiriiptoo Weebii waliin haash godha, fi kan mul’ataa wajjin wal bira qaba. Sana booda — kutaan barbaachisaa ta’es kunis — it irra deebi'ee shallaga bundleHash hashes irraa isa irraa miti kan shallagame qofa waan manifestiin himatu kamiyyuu, fi sana ragaawwan mallattaa'an kuusaa keessatti ilaala karaa API GitHub.

Kanatu bobbii ofii isaatiif akka hin mirkaneessine kan dhorkudha: faayiloota fooyya'an waliin tajaajiluu manifest walsimsiisaa ammallee ni kufa, sababni isaas haashiin irra deebi'amee shallagame ragaa hin qabu.

SadarkaaJechuun
&sakatta'uu; Appii ofiisaa mirkanaa'e (n/n) .Qabeenyi hundi walsimsiisa, haashiin baandaa irra deebi'amee shallagame kuusaan mirkanaa'a, . fi fuul-barruun kan tajaajilamu domeenii ofiisaa irraati.
⚠ Verified build · appii ofiisaa mitiKoodichi dhugaa fi mirkanaa'eedha, garuu kun daawwitii domeenii biraa irratti argamudha. Daawwitiin akeekkachiisa kana osoo mirkaneessuu hin kufin haquu hin danda'u.
✗ Wal hin simneQabeenyi tokko waan manifest jedhutti hin hash godhu.
✗ Ijaarsa ofiisaa hin taaneHaashiin baandaa irra deebi'amee shallagame kuusaa irraa ragaa hin qabu — manifest ofumaan hojjetame.
⚠ Maddi isaa kan hin dhaqqabneAPIn GitHub bira ga'amuu hin dandeenye, kanaaf ragaan karaa lamaanuu sakatta'amuu hin dandeenye.

Ofii keetii mirkaneessuu

Maqaa qaaqa waa'ee raawwachuu irra deebi'ii ijaariitii wal bira qabi:

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

Haashiin maxxanfame kan qaaqa Waa'ee keessa jiruu fi kan raawwachuu sana keessa jiru lamaan walsimsiisuu qaba gabaabduu fiigicha ijaarsa-madda. Akkasumas mallattoo kallattiin GitHub CLI waliin ilaaluu dandeessa:

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

Appilikeeshiniiwwan Andirooyidii fi iOS

Cheekiin armaan olii sakatta'iinsa web-app yoo ta'u, sababni isaas ifatti ibsuun barbaachisaadha: appii dhalootaa ofii isaatiis akkasuma gochuu hin danda’u. Wanti bilbila keessan irratti hojjetu koodii maashinii qindaa'eedha malee kan... madda kuusaa keessa jiru, fi wanti appichi meeshaa irratti shallaguu danda'u tokkollee tokko kan kan biroo.

Android waan itti aanu isa gaarii hojjechuu danda'a. Kan fe'ame .apk faayila appichi dubbisuu danda'uudha fi hash, fi hash gadhiifama maxxanfame hunda duraanuu ummataaf ifa ta'a: maxxansuu gara Zapstore taatee Nostr kan APK's SHA-256 fi ragaa mallattoo isaa SHA-256 qabate mallatteessa. Kanaaf kan... Android Waa'ee dialog APK irraa hojjechaa jiru hash godha, kanneen mallattaa'an fida taateewwan, kanneen furtuu qopheessaatiin mallattaa'an qofa eega, fi wal bira qaba. Lamaan agarsiisa hashes akkasumas, kanaaf check off meeshaa irra deebi'uu dandeessu: APK maxxanfame buufadhu, fiigi sha256sum irratti, taatee wal fakkaatu ofuma keetii ilaali.

Appiin Google Play irraa install ta'e haala kanaan check gochuun hin danda'amu...kun immoo waan tokko dogoggora akka qabu agarsiisu miti. Google uffata (upload) hunda furtii mataa isaa qabuun deebisee mallatteessa, akkasumas meeshaa (device) tokko tokkoof APK adda addaa ijaara, kanaafuu bilbila kee irratti argamu faayilii ogeessi (developer) hojjetee dhiyeesse miti, 'hash' isaas waan dhiyeeffame kamiyyuu waliin wal hin simatu. Appilikeeshiniin kun fe'umsi Play irraa dhufe akka ta'e beeka, akkasumas dogoggora akka jiru namatti hin himu, garuu akka ta'e siif hima. Ijaarsa (build) ofii keetiif mirkaneeffachuuf, APK kan kallattiin dhiyeeffame fe'i (install).

iOS tasumaa sakatta'amuu hin danda'u. Applen tokkoon tokkoon buufannaa encrypt godhee irra deebi'ee mallatteessa dhuunfaan, kanaaf hash iPhone keessan irratti shallagame iPhone keessaniif adda waan ta'eef homaa wajjin wal hin simne bakka kamittuu maxxanfame. Qaaqa Waa'ee kanaa kan tasgabbeessuu agarsiisuu caalaa ifatti dubbata sadarkaa jechuun homaa jechuu miti. Yoo Nymchat kan Apple hardware irratti mirkaneessuu dandeessan barbaaddan web fayyadamaa app, kan faayilii hojjechaa jiru hunda sakatta'u.

Waan kun tokkollee hin mirkaneessine

Cheekiin appiin tokko ofuma isaatiin hojjetu appichi amanamaa ta'uu isaa mirkaneessuu hin danda'u — eenyullee fooyyesse cheekichas balleessuu danda’a ture. Wanti inni mirkaneessu dhimma idileedha: akka waraabbii si install ta'e waraabbii maxxanfamedha. Sun qabaachuu kan malu sababni isaas gatii isaaf kenna wal bira qabamee kan ilaalamu ummataaf waan ta'eef, namni si ala ta'e isaan sakatta'uu danda'a, fi walii hin galle.

Waraanticha kanaarii

Warrant canary jechuun ibsa, sagantaa murtaa’een maxxanfame, kan misoomsaan qabudha miti ajaja mootummaa dhoksaa akka hin ibsine dhorkaman argatan — a Xalayaa Nageenya Biyyaalessaa, ajaja FISA. Misoomsaan waa'ee isaa callisee akka turu dirqisiifamuu danda'a ajaja akkasii, garuu sobuuf dirqisiifamuu hin danda’u, kanaaf kanaariin going stale ykn baduu ta’a ofii isaatii mallattoo.

Keessa jiraata canary.json hundee kuusaa irratti kan argamu yoo ta'u kallattiin kan fidamudha GitHub irraa, kanaaf seenaan isaa waan marsariitiin bobbaafame jedhu irraa walaba ta'ee odiitii ta'a. Qaaqa Waa'ee halluu-koodii itti godha:

HalluuJechuun
Magariisa — hunduu ifaMallatteeffame, ammaa, fi mallattoon furtuu qopheessaa wajjin walsima. Ajajni dhoksaa hin geenye.
Keelloo — yeroon isaa darbe, ykn hunduu ifa mitiGuyyaa ibsameen hin haaromfamne, ykn isaa allClear alaabaa soba. Ajajni callisee kennamu haaluun hin danda’amu.
Diimaa — mallattoo sirrii hin taane, ykn badeMallattoon furtuu guddiftuu wajjin wal hin simne, ykn faayilii guutummaatti haqameera. Kana akka akeekkachiisa cimaatti ilaalaa.

Anchor haaraa ta'uu

Kanaariin mallatteeffame kun yeroo mallatteessetti olka'iinsa bilookii Bitkoyin isa haaraa fi haashiin itti galcha. Haashiin sun osoo bilookichi hin jiraatin beekamuu hin danda'u ture, kunis kanaariin akka ture mirkaneessa mallatteesse booda ji’oota dura baay’inaan dursanii mallattaa’uu caalaa yeroo murtaa’e. Qaaqa Waa'ee ankuraa qorataa ugguraa waliin walqabsiisa kanaaf akka ati sakatta'uu dandeessuuf.