Luncat ka eusi
Balik deui ka Nymchat

Dasar pangaweruh Handapeun tiung

Verifikasi wangunan

Open source ngan ukur ngabantosan upami kode anu anjeun jalankeun nyaéta kode anu tadi diterbitkeun. Nymchat diwangun deterministically sangkan anjeun bisa pariksa yen diri, ti jero aplikasi atanapi ti terminal.

Reproducible ngawangun

Ngawangun aplikasi emits a build-manifest.json ngandung komit sumber, a SHA-256 hash tina unggal dilayanan HTML, JavaScript jeung CSS asset, sarta tunggal bundleHash leuwih eta sakabeh asset set.

Kaluaran ngan ukur gumantung kana eusi sumber - bahkan waktos ngawangun anu dirékam nyaéta commit's timestamp tinimbang momen ngawangun jalan - janten saha waé anu ngawangun deui sami commit meunang file bait-idéntik sareng sami bundleHash.

A Aksi GitHub teras ngawangun deui masing-masing komitmen sacara mandiri sareng nandatanganan build-provenance attestations pikeun Hash jeung manifest, jadi aya catetan ditandatanganan tying a bundleHash mun commit dina Repository nu, dihasilkeun ku hal lian ti panyebaran.

Naon cek dialog Ngeunaan

Ngeunaan dina lulugu ngajalankeun cek hirup, dina panyungsi anjeun.

Dialog Nymchat Ngeunaan, nunjukkeun versi, ngawangun integritas sareng ngajamin status kenari.
Dialog Ngeunaan: versi, ngawangun integritas, ngajamin kanari sareng jalur langsung ka pamekar.

Ieu ulang fetches unggal asset kaca sabenerna ngajalankeun, hashes eta kalawan Web Crypto API, sarta compares ngalawan manifest. Teras - sareng ieu mangrupikeun bagian anu penting - éta recomputes nu bundleHash ti hashes éta ngan diitung, teu ti naon waé anu diklaim ku nyata, sareng katingalina dina attestasi anu ditandatanganan ku gudang ngaliwatan GitHub API.

Éta anu ngeureunkeun panyebaran pikeun ngajamin sorangan: ngalayanan file anu dirobih sareng a manifest cocog masih gagal, sabab Hash recomputed teu boga attestation.

StatusMaksadna
& pariksa; Aplikasi resmi anu diverifikasi (n/n)Unggal aset cocog, hash kebat anu diitung deui dibuktikeun ku gudang, jeung kaca dilayanan ti domain resmi.
⚠ Wangunan anu diverifikasi · sanés aplikasi resmiKodeu asli sareng dibuktikeun, tapi ieu mangrupikeun eunteung dina domain sanés. Eunteung teu bisa nyabut peringatan ieu tanpa gagal verifikasi.
✗ Teu cocogHiji asset teu hash kana naon nyebutkeun manifest.
✗ Wangunan teu resmiHash kebat anu diitung deui teu aya kasaksian ti gudang - manifest sorangan.
⚠ Asalna teu tiasa dihontalThe GitHub API teu bisa ngahontal, jadi attestation nu teu bisa dipariksa boh cara.

Verifying eta sorangan

Bangun deui komitmen nami dialog Ngeunaan sareng bandingkeun:

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 anu dicitak kedah cocog sareng anu aya dina dialog Ngeunaan sareng anu aya dina komitmen éta ngawangun-provenance run kasimpulan. Anjeun ogé tiasa pariksa tanda tangan langsung sareng GitHub CLI:

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

Aplikasi Android sareng ios

Cék di luhur mangrupikeun cék aplikasi wéb, sareng alesanna kedah dijelaskeun sacara jelas: aplikasi asli teu bisa ngalakukeun hal nu sarua ka sorangan. Naon anu dijalankeun dina telepon anjeun nyaéta kode mesin anu disusun, sanés sumber dina Repository nu, jeung euweuh aplikasi nu bisa ngitung dina alat relates hiji ka séjén.

Android tiasa ngalakukeun hal anu pangsaéna. Dipasang .apk mangrupikeun file anu tiasa dibaca ku aplikasi sarta Hash, sarta Hash unggal release diterbitkeun geus umum: medarkeun ka Zapstore nandatanganan acara Nostr mawa APK SHA-256 jeung sertipikat Signing na SHA-256. Janten éta Android Ngeunaan dialog hashes APK eta ngajalankeun ti, fetches maranéhanana ditandatanganan acara, tetep ngan hiji ditandatanganan ku konci pamekar, sarta ngabandingkeun. Ieu nembongkeun dua hashes ogé, sangkan bisa ngulang pariksa kaluar alat: ngundeur APK diterbitkeun, ngajalankeun sha256sum ka dinya, sarta kasampak dina acara anu sarua diri.

Aplikasi anu dipasang ti Google Play teu tiasa dipariksa ku cara ieu, sarta éta teu tanda naon anu salah. Google re-signs unggal upload jeung kunci sorangan sarta ngembangkeun hiji APK anu béda pikeun unggal alat, jadi naon anu landa dina telepon anjeun teu file developer dihasilkeun jeung hash na cocog kitu nu bisa diterbitkeun. aplikasi ngarti hiji Play installer jeung nyebutkeun eta leuwih ti neraptar hiji gagal. Pikeun nempo hiji build sorangan, masang APK diterbitkeun langsung.

ios teu tiasa dipariksa pisan. Apple encrypts na ulang tanda unggal undeuran individual, jadi Hash diitung dina iPhone anjeun unik pikeun iPhone anjeun sarta cocog nanaon diterbitkeun mana. Dialog Ngeunaan nyebutkeun ieu outright tinimbang némbongkeun reassuring a status nu hartina euweuh. Upami anjeun hoyong Nymchat anjeun tiasa pariksa dina hardware Apple, nganggo wéb app, anu mariksa unggal file anu dijalankeun.

Naon euweuh ieu ngabuktikeun

Cék aplikasi anu dijalankeun nyalira henteu tiasa ngabuktikeun yén aplikasi éta jujur - saha waé anu ngarobih bisa miceun cék ogé. Anu dibuktikeun nyaéta kasus biasa: yén salinan anjeun dipasang nyaéta salinan anu diterbitkeun. Éta patut boga sabab nilai eta compares anu umum, jadi batur lian ti anjeun tiasa pariksa aranjeunna, sarta teu satuju.

Kenari jaminan

Kanaria ngajamin mangrupikeun pernyataan, diterbitkeun dina jadwal anu tetep, anu gaduh pamekar henteu narima paréntah pamaréntah rusiah aranjeunna dilarang pikeun nyingkab - a Surat Kaamanan Nasional, pesenan FISA. Pamekar bisa dipaksa pikeun cicing jempé ngeunaan parentah kitu, tapi teu bisa dipaksa bohong, jadi kenari bade bulukan atawa leungit téh sorangan sinyal.

Éta hirup di canary.json dina akar gudang sarta dipulut langsung ti GitHub, ku kituna sajarahna tiasa diaudit sacara mandiri tina naon waé anu dicarioskeun ku situs anu disebarkeun. The About dialog warna-kode éta:

WarnaMaksadna
Héjo - sadayana jelasDitandatanganan, ayeuna, sareng tanda tangan cocog sareng konci pamekar. Henteu aya pesenan rahasia anu katampa.
Konéng - telat, atanapi henteu sadayana jelasIeu teu refreshed ku tanggal nyatakeun na, atawa na allClear bandéra téh palsu. A urutan silenced teu bisa maréntah kaluar.
Beureum - tanda tangan teu sah, atanapi musnaTanda tangan henteu cocog sareng konci pamekar, atanapi filena parantos dipupus. Ngubaran ieu salaku warning serius.

Jangkar kasegaran

Kanaria anu ditandatanganan nampilkeun jangkungna blok Bitcoin panganyarna sareng hash dina waktos ditandatanganan. Hash nu teu bisa geus dipikawanoh saméméh blok aya, nu ngabuktikeun kanaria éta ditandatanganan sanggeus titik husus dina jangka waktu tinimbang pre-ditandatanganan dina bulk bulan saméméhna. Dialog Ngeunaan numbu jangkar ka blok explorer ku kituna anjeun bisa pariksa eta.