Tarkibga o'tish
Nymchat sahifasiga qaytish

Bilimlar bazasi Kaput ostida

Qurilishni tekshirish

Ochiq manba faqat siz ishlatayotgan kod bo'lsa yordam beradi nashr etilgan. Nymchat deterministik tarzda qurilgan, shuning uchun uni ichkaridan o'zingiz tekshirishingiz mumkin ilovadan yoki terminaldan.

Qayta tiklanadigan tuzilmalar

Ilovani yaratish a. chiqaradi build-manifest.json manba majburiyatini o'z ichiga olgan, a Har bir taqdim etilgan HTML, JavaScript va CSS aktivlarining SHA-256 xeshi va bitta bundleHash bu butun aktivlar to'plami ustidan.

Chiqish faqat manba tarkibiga bog'liq - hatto yozib olingan qurilish vaqti ham Qurilish boshlangan paytdan ko'ra, majburiyatning vaqt tamg'asi - shuning uchun hamma uni qayta tiklaydi commit baytga o'xshash fayllarni oladi va xuddi shunday bundleHash.

Keyin GitHub Action har bir majburiyatni mustaqil ravishda qayta tiklaydi va qurilish isbotiga imzo chekadi hash va manifest uchun attestatsiyalar, shuning uchun a bog'lab imzolangan rekord bor bundleHash dan boshqa narsa tomonidan ishlab chiqarilgan ombordagi majburiyatga joylashtirish.

Haqida muloqot oynasi nimani tekshiradi

Haqida sarlavhada tekshirish jonli, brauzeringizda ishlaydi.

Nymchat haqida dialog oynasi versiyani ko'rsatib, yaxlitlikni ta'minlaydi va kanareyka holatini kafolatlaydi.
Haqida dialog oynasi: versiya, qurilish yaxlitligi, kafolatli kanareyka va ishlab chiquvchiga to'g'ridan-to'g'ri yo'l.

U sahifada ishlayotgan har bir aktivni qayta oladi, uni Web Crypto API bilan xeshlaydi va manifest bilan solishtiradi. Keyin - va bu muhim qism - bu ni qayta hisoblab chiqadi bundleHash xeshlardan bu dan emas, balki faqat hisoblangan manifest da'vo qilgan har qanday narsa va uni omborning imzolangan sertifikatlarida ko'rib chiqadi GitHub API orqali.

Bu tarqatishni o'z-o'zidan kafolatlashdan to'xtatadigan narsa: o'zgartirilgan fayllar bilan birga xizmat ko'rsatish mos keladigan manifest hali ham muvaffaqiyatsiz tugadi, chunki qayta hisoblangan xeshda sertifikat yo'q.

Statusvositalari
&tekshirish; Tasdiqlangan rasmiy ilova (n/n)Har bir aktiv mos keladi, qayta hisoblangan to'plam xeshi ombor tomonidan tasdiqlanadi, va sahifa rasmiy domendan taqdim etiladi.
⚠ Tasdiqlangan tuzilish · rasmiy ilova emasKod haqiqiy va tasdiqlangan, ammo bu boshqa domendagi oyna. Ko'zgu bu ogohlantirishni tekshirmasdan turib olib tashlay olmaydi.
✗ Mos kelmaydiObyekt manifestda aytilgan narsaga xesh qilmaydi.
✗ Norasmiy qurilishQayta hisoblangan to'plam xeshida ombordan sertifikat yo'q — o'z-o'zidan yaratilgan manifest.
⚠ Kelib chiqishi aniq emasGitHub API bilan bog‘lanib bo‘lmadi, shuning uchun attestatsiyani har ikki usulda tekshirib bo‘lmadi.

Buni o'zingiz tasdiqlash

Haqida muloqot oynasi nomlarini qayta tiklang va solishtiring:

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

Chop etilgan xesh "Haqida" dialog oynasidagiga ham, ushbu majburiyatdagiga ham mos kelishi kerak Build-provenance ishga tushirish xulosasi. Shuningdek, imzoni bevosita GitHub CLI bilan tekshirishingiz mumkin:

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

Android va iOS ilovalari

Yuqoridagi tekshirish veb-ilovani tekshirish bo'lib, sababini ochiq-oydin aytib o'tish kerak: mahalliy ilova o'ziga xuddi shunday ishni qila olmaydi. Telefoningizda ishlaydigan narsa kompilyatsiya qilingan mashina kodi, emas manba omborida va ilova qurilmada hisoblay oladigan hech narsa biriga tegishli emas boshqa.

Android keyingi eng yaxshi ishni qila oladi. O'rnatilgan .apk ilova oʻqishi mumkin boʻlgan fayldir va xesh va har bir nashr etilgan relizning xeshi allaqachon ochiq: nashr qilish Zapstore APK'ning SHA-256 va uning imzolash sertifikatining SHA-256-ni o'z ichiga olgan Nostr hodisasiga imzo chekadi. Shunday qilib Android Haqida dialog o'zi ishlayotgan APK-ni xeshlaydi, imzolanganlarni oladi hodisalar, faqat ishlab chiquvchi kaliti tomonidan imzolanganlarni saqlaydi va taqqoslaydi. Bu ikkalasini ko'rsatadi xeshlar ham mavjud, shuning uchun siz qurilmani tekshirishni takrorlashingiz mumkin: nashr etilgan APK-ni yuklab oling, ishga tushiring sha256sum ustiga, va xuddi shu voqeani o'zingiz ko'ring.

Google Play'dan o'rnatilgan ilovani shu tarzda tekshirib bo'lmaydiGoogle re-signs cada upload with its own key and builds a separate APK for each device, so what lands on your phone is not the file the developer produced and its hash matches nothing that could be published. The app recognizes a Play install and says so rather than reporting a failure. To check a build yourself, install the APK published directly.

iOS-ni umuman tekshirib bo'lmaydi. Apple har bir yuklab olishni shifrlaydi va qayta imzolaydi individual ravishda, shuning uchun iPhone-da hisoblangan xesh iPhone-ga xos bo'lib, hech narsaga mos kelmaydi istalgan joyda chop etiladi. "Haqida" muloqot oynasi bu ishonchni ko'rsatishdan ko'ra aniq aytilgan hech narsani anglatmaydigan holat. Agar siz Nymchat-ni istasangiz, Apple uskunasida tekshirishingiz mumkin, internetdan foydalaning ishlayotgan har bir faylni tekshiradigan ilova.

Bularning hech biri nimani isbotlamaydi

Ilovaning o'z-o'zidan ishlashini tekshirish ilovaning halolligini isbotlay olmaydi - uni kim o'zgartirgan bo'lsa ham chekni ham olib tashlashi mumkin. Bu shuni isbotlaydiki, oddiy holat: sizni nusxalash nashr etilgan nusxasi o'rnatilgan. Bunga arziydi, chunki uni qadrlaydi taqqoslashlar ommaviydir, shuning uchun sizdan boshqa kimdir ularni tekshirishi va rozi bo'lmasligi mumkin.

Garantli kanareyka

Garantli kanareyka - bu ishlab chiquvchiga tegishli bo'lgan qat'iy jadval bo'yicha nashr etilgan bayonot emas ularga oshkor qilish taqiqlangan maxfiy hukumat buyrug'ini oldi - a Milliy xavfsizlik xati, FISA buyrug'i. Ishlab chiquvchi bu haqda jim turishga majbur bo'lishi mumkin Bunday tartib, lekin yolg'on gapirishga majbur bo'lmaydi, shuning uchun kanareyka eskiradi yoki yo'qoladi o'zi signaldir.

U yashaydi canary.json omborning ildizida va to'g'ridan-to'g'ri olinadi GitHub dan, shuning uchun uning tarixi joylashtirilgan sayt nima deyishidan qat'iy nazar tekshirilishi mumkin. Haqida muloqot oynasi uni rang bilan kodlaydi:

Rangvositalari
Yashil - hammasi aniqImzolangan, joriy va imzo ishlab chiquvchi kalitiga mos keladi. Hech qanday maxfiy buyurtma olinmagan.
Sariq - muddati o'tgan yoki hammasi aniq emasU ko'rsatilgan sana yoki unga ko'ra yangilanmagan allClear bayroq noto'g'ri. Ovozsiz tartibni istisno qilib bo'lmaydi.
Qizil - imzo noto'g'ri yoki yo'qolganImzo ishlab chiquvchi kalitiga mos kelmaydi yoki fayl butunlay oʻchirib tashlangan. Buni jiddiy ogohlantirish sifatida qabul qiling.

Yangilik langari

Imzolangan kanareyka imzolash paytida so'nggi bitkoin blokining balandligi va xeshini joylashtiradi. Blok mavjud bo'lgunga qadar bu xeshni bilish mumkin emas edi, bu esa kanareyka ekanligini isbotlaydi imzolangan keyin oylar oldin ommaviy ravishda oldindan imzolangandan ko'ra, vaqtning ma'lum bir nuqtasi. Haqida muloqot oynasi langarni blok tadqiqotchisiga bog'laydi, shunda siz uni tekshirishingiz mumkin.