Գիտելիքների բազա Կափարիչի տակ
Կառուցման ստուգում
Բաց կոդն օգնում է միայն այն դեպքում, եթե ձեր գործարկվող կոդը հենց այն կոդը է, որը եղել է հրապարակված. Nymchat-ը կառուցված է դետերմինիստականորեն, որպեսզի կարողանաք ստուգել դա ինքներդ՝ ներսից հավելվածից կամ տերմինալից:
Այս էջը թարգմանված է մեքենայական հարմարության համար: Անգլերեն բնօրինակը կիրառելի տարբերակն է:
Վերարտադրվող շինություններ
Հավելվածի կառուցումը թողարկում է ա build-manifest.json աղբյուրի պարտավորություն պարունակող, ա
SHA-256 հեշ յուրաքանչյուր սպասարկվող HTML, JavaScript և CSS ակտիվի և մեկ առանձին
bundleHash ամբողջ ակտիվների հավաքածուի վրա:
Արդյունքը կախված է միայն աղբյուրի բովանդակությունից, նույնիսկ գրանցված կառուցման ժամանակը
commit-ի ժամանակացույցը, այլ ոչ թե այն պահը, երբ build-ը գործարկվեց, այնպես որ ցանկացած ոք, ով վերակառուցում է նույնը
commit-ը ստանում է բայթ-նույնական ֆայլեր և նույնը bundleHash.
GitHub Action-ը այնուհետև վերակառուցում է յուրաքանչյուր պարտավորություն ինքնուրույն և ստորագրում է կառուցման ծագումը
Հեշի և մանիֆեստի հավաստագրերը, ուստի կա ստորագրված արձանագրություն, որը կապում է a
bundleHash պահոցում կատարվող պարտավորություն, որը արտադրվել է այլ բանի կողմից, քան
տեղակայում.
Ինչ է ստուգում About երկխոսությունը
Մոտ վերնագրում ստուգումն աշխատում է ուղիղ եթերում, ձեր բրաուզերում:
Այն նորից վերցնում է յուրաքանչյուր ակտիվ, որը էջն իրականում աշխատում է, հաշում է այն Web Crypto API-ի միջոցով և
համեմատում է մանիֆեստի դեմ. Այնուհետև, և սա այն մասն է, որը կարևոր է
վերահաշվում է bundleHash հեշերից այն պարզապես հաշվարկված, ոչ թե
այն ամենը, ինչ պնդում է մանիֆեստը, և դա փնտրում է պահեստի ստորագրված ատեստավորումներում
GitHub API-ի միջոցով:
Դա այն է, ինչը խանգարում է տեղակայմանը երաշխավորել իր համար՝ փոփոխված ֆայլերի հետ միասին սպասարկումը համապատասխան մանիֆեստը դեռևս ձախողվում է, քանի որ վերահաշվարկված հեշը չունի ատեստավորում:
| Կարգավիճակ | Միջոցներ |
|---|---|
| &ստուգել; Ստուգված պաշտոնական հավելված (n/n) | Յուրաքանչյուր ակտիվ համընկնում է, փաթեթի վերահաշվարկված հեշը հաստատվում է պահեստի կողմից, և էջը սպասարկվում է պաշտոնական տիրույթից։ |
| ⚠ Ստուգված կառուցվածքը · ոչ պաշտոնական հավելվածը | Կոդը իսկական է և վավերացված, բայց սա այլ տիրույթի հայելին է: Հայելին չի կարող հեռացնել այս նախազգուշացումը առանց ստուգման ձախողման: |
| ✗ Անհամապատասխանություն | Ակտիվը չի համընկնում մանիֆեստի հետ: |
| ✗ Ոչ պաշտոնական կառուցում | Փաթեթի վերահաշվարկված հեշը չունի շտեմարանից ատեստավորում՝ ինքնուրույն պատրաստված մանիֆեստ: |
| ⚠ Ծագումը անհասանելի է | GitHub API-ին չհաջողվեց միանալ, ուստի ատեստավորումը չհաջողվեց ստուգել որևէ կերպ: |
Ինքներդ ստուգեք
Վերակառուցեք commit մասին երկխոսության անունները և համեմատեք.
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-ի երկխոսության, այնպես էլ այդ կոմիտի մեջ գտնվողի հետ build-provenance run ամփոփագիր: Դուք կարող եք նաև ստուգել ստորագրությունը անմիջապես GitHub CLI-ի միջոցով.
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Android և iOS հավելվածները
Վերևի ստուգումը վեբ հավելվածի ստուգում է, և դրա պատճառը պետք է հստակ նշել. հայրենի հավելված չի կարող նույն բանն ինքն իրեն անել: Այն, ինչ աշխատում է ձեր հեռախոսում, կազմված է մեքենայի կոդը, այլ ոչ թե աղբյուրը պահոցում, և այն, ինչ հավելվածը չի կարող հաշվարկել սարքում, չի առնչվում դրա հետ այլ.
Android-ը կարող է անել հաջորդ լավագույն բանը: Տեղադրված .apk ֆայլ է, որը կարող է կարդալ հավելվածը
և hash-ը, և յուրաքանչյուր հրապարակված թողարկման հեշն արդեն հրապարակային է՝ հրապարակում է
Zapstore
ստորագրում է Nostr միջոցառումը, որը կրում է APK-ի SHA-256-ը և դրա ստորագրման վկայականի SHA-256-ը: Այսպիսով,
Android Մոտ երկխոսության միջոցով հեշավորում է APK-ն, որտեղից աշխատում է, վերցնում է ստորագրվածները
իրադարձությունները, պահում է միայն մշակողի բանալիով ստորագրվածները և համեմատում։ Այն ցույց է տալիս երկուսը
նաև հեշեր, այնպես որ կարող եք կրկնել սարքի անջատումը. ներբեռնեք հրապարակված APK-ն, գործարկեք
sha256sum դրա վրա և ինքներդ նայեք նույն իրադարձությանը:
Google Play-ից տեղադրված հավելվածն այս կերպ չի կարող ստուգվելGoogle-ը վերականգնում է ամեն բեռնելը իր սեփական սեղմով եւ ստեղծում է մի մասնավոր APK-ը յուրաքանչյուր սարքի համար, այնպես որ այն, ինչ կանգնած է ձեր հեռախոսին, չի արտադրել արտադրողը արտադրված ֆայլը եւ իր hash- ը միասնական չէ, որը կարող է հայտնվել: Ապրանքը ճանաչում է Play- ի տեղադրման եւ ասում է, թե ինչպես է այն, այլեւ հաղորդում է սխալը: Ստուգեք build- ը ձեզ համար, տեղադրեք APK-ը, որը գրվել է ուղղակիորեն:
iOS-ն ընդհանրապես չի կարող ստուգվել։ Apple-ը գաղտնագրում և վերստորագրում է յուրաքանչյուր ներբեռնում առանձին-առանձին, այնպես որ ձեր iPhone-ում հաշվարկված հեշը եզակի է ձեր iPhone-ի համար և ոչինչ չի համապատասխանում հրապարակված ցանկացած վայրում: «Մի մասին» երկխոսությունը սա ուղղակիորեն ասում է, այլ ոչ թե հուսադրող կարգավիճակ, որը ոչինչ չի նշանակում: Եթե ցանկանում եք Nymchat, կարող եք հաստատել Apple-ի ապարատում, օգտվեք համացանցից հավելվածը, որը ստուգում է իր գործած յուրաքանչյուր ֆայլ:
Հավելվածի ստուգումն ինքնին չի կարող ապացուցել, որ հավելվածն ազնիվ է, ով էլ որ այն փոփոխել է կարող է հեռացնել նաև չեկը: Դա ապացուցում է սովորական դեպքը տեղադրված պատճենն է, որը հրապարակվել է: Դա արժե ունենալ, քանի որ գնահատում է այն համեմատությունները հրապարակային են, այնպես որ ձեզանից այլ մեկը կարող է ստուգել դրանք և չհամաձայնվել:
Երաշխիքային դեղձանիկ
Երաշխիքային դեղձանիկը ֆիքսված ժամանակացույցով հրապարակված հայտարարություն է, որը մշակողը ունի ոչ ստացել են կառավարության գաղտնի հրաման, որին արգելվում է բացահայտել. ա Ազգային անվտանգության նամակ, FISA հրաման. Մշակողին կարելի է ստիպել լռել դրա մասին նման հրաման է, բայց չի կարելի ստիպել նրան ստել, ուստի դեղձանիկը հնացած կամ անհետանալն է ինքնին ազդանշան:
Այն ապրում է canary.json պահոցի հիմքում և բեռնվում է ուղղակիորեն
GitHub-ից, այնպես որ դրա պատմությունը ստուգելի է անկախ այն բանից, թե ինչ է ասում տեղակայված կայքը:
About երկխոսության գունային կոդավորումը.
| Գույն | Միջոցներ |
|---|---|
| Կանաչ - ամեն ինչ պարզ է | Ստորագրված, ընթացիկ և ստորագրությունը համապատասխանում է մշակողի բանալին: Ոչ մի գաղտնի հրաման չի ստացվել։ |
| Դեղին — ուշացած, կամ ոչ բոլորը պարզ | Այն չի թարմացվել իր նշված ամսաթվով կամ իր allClear դրոշը կեղծ է. Չի կարելի բացառել լռեցված հրամանը. |
| Կարմիր — անվավեր ստորագրություն, կամ գնացել է | Ստորագրությունը չի համապատասխանում մշակողի բանալիին, կամ ֆայլն ամբողջությամբ հեռացվել է: Վերաբերվեք սա որպես լուրջ նախազգուշացման: |
Թարմության խարիսխը
Ստորագրված դեղձանիկը տեղադրում է բիթքոյնի բլոկի վերջին բարձրությունը և հաշը ստորագրման պահին: Այդ հաշը չէր կարող հայտնի լինել մինչև բլոկի գոյությունը, ինչը վկայում է, որ դեղձանիկը եղել է ստորագրված հետո կոնկրետ ժամանակային կետ, այլ ոչ թե նախապես ստորագրված զանգվածաբար ամիսներ առաջ: Օգտվողի երկխոսությունը խարիսխը կապում է բլոկի հետազոտողի հետ, որպեսզի կարողանաք ստուգել այն: