Эчтәлеккә күчү
Нимчатка кире кайту

Белем базасы Башлык астында

Төзелешне тикшерү

Ачык чыганак сез эшләгән код булган очракта гына ярдәм итә бастырылган. Nymchat детерминистик рәвештә төзелгән, шуңа күрә сез үзегезне, эчтән тикшерә аласыз кушымта яки терминалдан.

Репродуктив корылмалар

Кушымта төзү а build-manifest.json чыганакны үз эченә алган, а SHA-256 һәрбер HTML, JavaScript һәм CSS активы, һәм бер bundleHash бөтен активлык өстендә.

Чыгыш чыганак эчтәлегенә генә бәйле - хәтта язылган төзү вакыты да төзү вакыты түгел, ә вакыт срокы ясагыз - шуңа күрә кем дә булса яңадан торгызыла тапшыру байтка охшаган файллар ала һәм шул ук bundleHash.

GitHub Action аннары һәрбер эшне мөстәкыйль торгыза һәм төзү-раслауга кул куя хэш һәм манифест өчен аттестацияләр, шуңа күрә имзаланган язма бар bundleHash аннан башка берәр нәрсә җитештергән резервуарда урнаштыру.

Диалог тикшерүләре турында

Турында башламда чекны турыдан-туры эшли, браузерыгызда.

Nymchat Диалог турында, версиясен күрсәтеп, сафлыкны һәм канар статусын булдыру.
Диалог турында: версия, бөтенлекне төзү, гарантияле канар һәм төзүчегә туры сызык.

Ул бит эшләгән һәр активны яңадан ала, аны Web Crypto API белән юа һәм манифест белән чагыштыра. Аннары - һәм бу мөһим өлеш - ул .әр сүзнең bundleHash гашлардан Бу исәпләнә, түгел манифест таләп иткән нәрсә, һәм репозитарий имзаланган аттестациядә GitHub API аша.

Нәкъ менә моны урнаштыруны туктату: үзгәртелгән файлларга хезмәт күрсәтү туры килгән манифест һаман да уңышсыз, чөнки исәпләнгән гашның аттестациясе юк.

СтатусМәгънәсе
& тикшерү; Тикшерелгән рәсми кушымта (n / n)Everyәрбер актив туры килә, исәпләнгән тупланма хэш склад белән расланган, һәм бит рәсми доменнан бирелә.
⚠ Тикшерелгән төзү · рәсми кушымта түгелКод чын һәм аттестацияләнгән, ләкин бу бүтән домендагы көзге. Көзге бу кисәтүне тикшермичә бетерә алмый.
Mat туры килмәүАктив манифестта әйтелгәннәргә ашыкмый.
Off Рәсми булмаган төзелешХисапланган тупланма гашның саклагычтан аттестациясе юк - үзеннән-үзе ясалган манифест.
⚠ Прованска ирешеп булмыйGitHub APIга ирешеп булмады, шуңа күрә аттестацияне ике яктан да тикшереп булмый.

Моны үзегез тикшерегез

Диалог исемнәре турында бурычны яңадан торгызыгыз һәм чагыштырыгыз:

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

Басылган хэш "About" диалогындагы һәм бу бурычка туры килергә тиеш төзү-раслау. Сез имзаны турыдан-туры GitHub CLI белән тикшерә аласыз:

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

Android һәм iOS кушымталары

Aboveгарыдагы чек - веб-кушымтаны тикшерү, һәм сәбәбен ачык итеп әйтергә кирәк: туган кушымта үзенә бер үк эш эшли алмый. Телефоныгызда нәрсә эшли, машина коды саклагычтагы чыганак, һәм кушымта җайланмада исәпли алмаган бернәрсә дә аның белән бәйләнешле түгел бүтән.

Android иң яхшы эшне эшли ала. Урнаштырылган .apk кушымта укый ала торган файл һәм хэш, һәм бастырылган һәр чыгарылыш хэш инде ачык: нәшер итү Zapstore APK-ның SHA-256 һәм имзалау сертификатының SHA-256 алып барган Nostr вакыйгасына кул куя. Шулай итеп Android Турында диалог ул эшли торган APKны юа, имзаланганнарны ала вакыйгалар, ясаучы ачкычы белән имзаланганнарны гына саклый, чагыштыра. Бу икесен күрсәтә хэшлар шулай ук, сез җайланманы тикшерүне кабатлый аласыз: басылган APK-ны йөкләгез, эшләгез sha256sum өстендә, һәм шул ук вакыйганы үзең кара.

Google Play'тан урнаштырылган кушымтаны болай тикшереп булмый... һәм бу бернәрсе ялшы булганлыгының билгесе түгел. Google һәр загрузканы үзенең ачкычы белән кайта имзалый һәм һәр аппарат өчен төрле APK төзә, шуңа күрә телефоныңа килгән файл разработкер ясалган файл түгел һәм аның хэш-коды публикацияланган нинди дә файлга туктамый. Приложение Play аша урнаштырылганын танырга һәм хата турында хәбәр итүдән күрә, шулай икәнен әйтә. Үзең сборканы тикшерәргә өчен, турадан-туры публикацияланган APK-ны урнаштыры.

iOS бөтенләй тикшереп булмый. Apple һәр йөкләүне шифрлый һәм яңадан имза куя индивидуаль, шуңа күрә сезнең iPhone-та исәпләнгән хэш сезнең iPhone өчен уникаль һәм бернәрсәгә дә туры килми теләсә кайда бастырылган. "Диалог" диалогы тынычландыру урынына моны ачык итеп әйтә берни дә аңлатмый торган статус. Әгәр дә сез Nymchat телисез икән, сез Apple аппаратында тикшерә аласыз, вебны кулланыгыз эшләгән һәр файлны тикшерә торган кушымта.

Моның берсе дә расламый

Кушымта эшләгән тикшерү кушымтаның намуслы булуын раслый алмый - кем аны үзгәртсә чекны да бетерә алыр иде. Моны исбатлаучы гади очрак: сезне күчереп алу урнаштырылган - бастырылган күчермә. Бу булырга тиеш, чөнки аны бәялиләр чагыштыру җәмәгать, шуңа күрә сездән башка берәү аларны тикшерә ала, риза түгел.

Гарантия канариясе

Гарантия канариясе - билгеле бер график буенча бастырылган, эшкәртүченең түгел яшерен хөкүмәт заказы алды, аларга ачу тыелды - а Милли Куркынычсызлык Хаты, FISA заказы. Төзүче эндәшергә мәҗбүр булырга мөмкин андый тәртип, ләкин ялганларга мәҗбүр ителми, шуңа күрә канар искергән яки юкка чыга үзе сигнал.

Ул яши canary.json саклагычның тамырында һәм турыдан-туры китерелә GitHub'тан, шуңа күрә аның тарихы урнаштырылган сайт нәрсә әйтсә дә бәйсез рәвештә тикшерелә. Диалог төс-кодлары турында:

ТөсМәгънәсе
Яшел - барысы да аңлаешлыИмзаланган, агымдагы һәм имза төзүче ачкычына туры килә. Яшерен заказ алынмады.
Сары - вакыт узган, яки барысы да аңлашылмыйБилгеләнгән датасы, яисә аның белән яңартылмады allClear флаг ялган. Тынычландырылган тәртипне дә искәртеп булмый.
Кызыл - имза дөрес түгел, яисә киттеИмза эшкәртүченең ачкычына туры килми, яки файл бөтенләй бетерелде. Моны җитди кисәтү итеп карагыз.

Яңалык якоры

Имзаланган канар соңгы Bitcoin блок биеклеген һәм гашны имзалаган вакытта үз эченә ала. Бу хэш блок булганчы билгеле булмаган, бу канарның булуын раслый имзаланган аннан соң билгеле бер пункт, моннан берничә ай алдан күп имзаланганчы. "Диалог" диалогын якорны блок эзләүче белән бәйли, сез аны тикшерә аласыз.