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.
Kaca ieu ditarjamahkeun ku mesin pikeun genah. Asli Inggris nyaéta versi anu lumaku.
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.
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.
| Status | Maksadna |
|---|---|
| & 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 resmi | Kodeu asli sareng dibuktikeun, tapi ieu mangrupikeun eunteung dina domain sanés. Eunteung teu bisa nyabut peringatan ieu tanpa gagal verifikasi. |
| ✗ Teu cocog | Hiji asset teu hash kana naon nyebutkeun manifest. |
| ✗ Wangunan teu resmi | Hash kebat anu diitung deui teu aya kasaksian ti gudang - manifest sorangan. |
| ⚠ Asalna teu tiasa dihontal | The 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.
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:
| Warna | Maksadna |
|---|---|
| Héjo - sadayana jelas | Ditandatanganan, ayeuna, sareng tanda tangan cocog sareng konci pamekar. Henteu aya pesenan rahasia anu katampa. |
| Konéng - telat, atanapi henteu sadayana jelas | Ieu 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 musna | Tanda 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.