Անցեք բովանդակությանը
Վերադարձ դեպի Nymchat

Գիտելիքների բազա Կափարիչի տակ

Կառուցման ստուգում

Բաց կոդն օգնում է միայն այն դեպքում, եթե ձեր գործարկվող կոդը հենց այն կոդը է, որը եղել է հրապարակված. Nymchat-ը կառուցված է դետերմինիստականորեն, որպեսզի կարողանաք ստուգել դա ինքներդ՝ ներսից հավելվածից կամ տերմինալից:

Վերարտադրվող շինություններ

Հավելվածի կառուցումը թողարկում է ա build-manifest.json աղբյուրի պարտավորություն պարունակող, ա SHA-256 հեշ յուրաքանչյուր սպասարկվող HTML, JavaScript և CSS ակտիվի և մեկ առանձին bundleHash ամբողջ ակտիվների հավաքածուի վրա:

Արդյունքը կախված է միայն աղբյուրի բովանդակությունից, նույնիսկ գրանցված կառուցման ժամանակը commit-ի ժամանակացույցը, այլ ոչ թե այն պահը, երբ build-ը գործարկվեց, այնպես որ ցանկացած ոք, ով վերակառուցում է նույնը commit-ը ստանում է բայթ-նույնական ֆայլեր և նույնը bundleHash.

GitHub Action-ը այնուհետև վերակառուցում է յուրաքանչյուր պարտավորություն ինքնուրույն և ստորագրում է կառուցման ծագումը Հեշի և մանիֆեստի հավաստագրերը, ուստի կա ստորագրված արձանագրություն, որը կապում է a bundleHash պահոցում կատարվող պարտավորություն, որը արտադրվել է այլ բանի կողմից, քան տեղակայում.

Ինչ է ստուգում About երկխոսությունը

Մոտ վերնագրում ստուգումն աշխատում է ուղիղ եթերում, ձեր բրաուզերում:

Nymchat About երկխոսությունը, որը ցույց է տալիս տարբերակը, ամբողջականությունը և երաշխավորում է դեղձանիկի կարգավիճակը:
Մոտ երկխոսություն. տարբերակ, կառուցվածքի ամբողջականություն, երաշխիք Canary և ուղիղ գիծ ծրագրավորողին:

Այն նորից վերցնում է յուրաքանչյուր ակտիվ, որը էջն իրականում աշխատում է, հաշում է այն 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 դրոշը կեղծ է. Չի կարելի բացառել լռեցված հրամանը.
Կարմիր — անվավեր ստորագրություն, կամ գնացել էՍտորագրությունը չի համապատասխանում մշակողի բանալիին, կամ ֆայլն ամբողջությամբ հեռացվել է: Վերաբերվեք սա որպես լուրջ նախազգուշացման:

Թարմության խարիսխը

Ստորագրված դեղձանիկը տեղադրում է բիթքոյնի բլոկի վերջին բարձրությունը և հաշը ստորագրման պահին: Այդ հաշը չէր կարող հայտնի լինել մինչև բլոկի գոյությունը, ինչը վկայում է, որ դեղձանիկը եղել է ստորագրված հետո կոնկրետ ժամանակային կետ, այլ ոչ թե նախապես ստորագրված զանգվածաբար ամիսներ առաջ: Օգտվողի երկխոսությունը խարիսխը կապում է բլոկի հետազոտողի հետ, որպեսզի կարողանաք ստուգել այն: