Мазмунга өтүү
Nymchat барагына кайтуу

Билим базасы Капоттун астында

Курулушту текшерүү

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

Репродуктивдүү түзүлүштөр

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

Чыгуу булактын мазмунуна гана көз каранды — ал тургай жазылган куруу убактысы да куруу аяктаган учурга караганда, милдеттенменин убакыт белгиси - ошондуктан кимдир бирөө ошол эле нерсени кайра курат commit байт окшош файлдарды алат жана ошол эле bundleHash.

GitHub аракети андан кийин ар бир милдеттенмени өз алдынча калыбына келтирет жана куруунун далилине кол коёт хэш жана манифест үчүн аттестациялар, ошондуктан кол коюлган жазуу байлап бар bundleHash репозиторийден башка нерсе тарабынан жасалган милдеттенмеге жайгаштыруу.

Жөнүндө диалог терезеси эмнени текшерет

Жөнүндө баш бөлүмдө сиздин браузериңизде текшерүү түз жүрөт.

Нымчат жөнүндө диалог, версияны көрсөтүп, бүтүндүктү түзүп, канар статусуна кепилдик берет.
"Жөнүндө" диалогу: версия, бүтүндүктү куруу, кепилдик канар жана иштеп чыгуучуга түз линия.

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

Бул жайгаштырууну өзүнө кепилдикке алууну токтотот: өзгөртүлгөн файлдарды бирге тейлөө дал келген манифест дагы эле ишке ашпай жатат, анткени кайра эсептелген хэште аттестация жок.

Статусбилдирет
&текшерүү; Текшерилген расмий колдонмо (n/n)Ар бир актив дал келет, кайра эсептелген таңгак хэш репозиторий тарабынан тастыкталат, жана баракча расмий доменден тейленет.
⚠ Текшерилген куруу · расмий колдонмо эмесКод чыныгы жана тастыкталган, бирок бул башка домендеги күзгү. Күзгү бул эскертүүнү текшерүүдөн өтпөстөн өчүрө албайт.
✗ Дал келбөөАктив манифестте айтылгандарга хэш болбойт.
✗ Расмий эмес курулушКайра эсептелген таңгак хэштин репозиторийден эч кандай тастыктамасы жок — бул өзү жасаган манифест.
⚠ Келип чыгышы мүмкүн эмес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>"

Басылып чыккан хэш "Жөнүндө" диалогундагыга да, ошол милдеттенмедегиге да дал келиши керек куруу-провананс боюнча кыскача. Сиз ошондой эле GitHub CLI менен түздөн-түз кол текшере аласыз:

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

Android жана iOS колдонмолору

Жогорудагы текшерүү бул веб-колдонмолорду текшерүү жана себебин ачык эле айтуу керек: жергиликтүү колдонмо өзүнө бир эле нерсени жасай албайт. Телефонуңузда иштеген нерсе компиляцияланган машина коду, эмес репозиторийдеги булак жана колдонмо түзмөктө эсептей ала турган эч нерсе бирине тиешелүү эмес башка.

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'тан, ошондуктан анын тарыхы жайгаштырылган сайт эмне десе, көз карандысыз текшерилет. About диалогу аны түс менен коддойт:

Түсбилдирет
Жашыл — баары ачыкКол коюлган, учурдагы жана кол иштеп чыгуучунун ачкычына дал келет. Эч кандай жашыруун буйрук түшкөн жок.
Сары — мөөнөтү өтүп кеткен, же баары так эмесАл көрсөтүлгөн датасы боюнча жаңыртылган эмес allClear желек жалган. Үнсүз буйрукту жокко чыгарууга болбойт.
Кызыл — жараксыз кол, же жокКолтамга иштеп чыгуучунун ачкычына дал келбейт, же файл толугу менен өчүрүлгөн. Муну олуттуу эскертүү катары кабыл алыңыз.

Свежий казык

Кол коюлган канарея кол коюу учурунда акыркы Bitcoin блоктун бийиктигин жана хэшти камтыйт. Бул хэш блок бар болгонго чейин белгилүү болушу мүмкүн эмес болчу, бул канариянын болгонун далилдейт кол койду кийин бир нече ай мурда алдын ала кол коюлган эмес, белгилүү бир учур. Жөнүндө диалог терезеси анкерди блок изилдөөчүсүнө байланыштырат, андыктан аны текшере аласыз.