Ale nan kontni an
Retounen nan Nymchat

Konesans baz Anba kapo a

Verifye konstriksyon an

Sous louvri sèlman ede si kòd ou ap kouri a se kòd ki te pibliye. Nymchat se bati detèminism pou ou ka tcheke sa tèt ou, soti nan andedan an app oswa soti nan yon tèminal.

Repwodiksyon bati

Bati app a emèt yon build-manifest.json ki gen komite sous la, a SHA-256 hash nan chak HTML, JavaScript ak CSS byen sèvi, ak yon sèl bundleHash sou tout seri byen sa a.

Pwodiksyon an depann sèlman sou kontni sous la - menm tan an anrejistreman bati se la timestamp kommit olye ke moman konstriksyon an te kouri - kidonk nenpòt moun ki rebati menm bagay la komèt vin byte ki idantik dosye ak menm bagay la bundleHash.

Yon Aksyon GitHub Lè sa a, rebati chak komèt poukont li epi siyen build-provenance attestasyon pou hash la ak manifest la, kidonk gen yon dosye siyen ki mare a bundleHash nan yon komèt nan depo a, ki te pwodwi pa yon lòt bagay pase la deplwaman.

Ki sa ki sou dyalòg la tcheke

Konsènan nan header la kouri chèk la ap viv, nan navigatè ou a.

Nymchat About dyalòg la, ki montre vèsyon an, bati entegrite ak garanti estati Canary.
An dyalòg About: vèsyon, bati entegrite, manda canary ak yon liy dirèk nan pwomotè a.

Li re-chache chak byen paj la aktyèlman ap kouri, hashes li ak Web Crypto API a, ak konpare ak manifest la. Lè sa a, - e sa a se pati ki enpòtan - li rekalkule la bundleHash soti nan hashes yo li jis kalkile, pa soti nan nenpòt bagay manifest la reklamasyon, epi li sanble ke nan ateste siyen depo a atravè API GitHub.

Sa a se sa ki sispann yon deplwaman soti nan garanti pou tèt li: sèvi dosye modifye ansanm ak yon manifest matche toujou echwe, paske hash la recalculé pa gen okenn atestasyon.

EstatiVle di
&tcheke; Aplikasyon ofisyèl verifye (n/n)Chak avantaj matche, se hash nan pake recalculé sètifye pa repozitwa a, epi paj la sèvi nan domèn ofisyèl la.
⚠ Konstriksyon verifye · pa aplikasyon ofisyèl laKòd la se otantik ak sètifye, men sa a se yon glas sou yon lòt domèn. Yon glas pa ka retire avètisman sa a san li pa manke verifikasyon.
✗ DiferansYon avantaj pa hash a sa manifest la di.
✗ Konstriksyon pa ofisyèlHash pake recalculé a pa gen okenn atestasyon nan repozitwa a - yon manifeste pwòp tèt ou fè.
⚠ Pwovens inaccessibleAPI GitHub pa t 'kapab jwenn, kidonk ateste a pa t' kapab tcheke nenpòt fason.

Verifye li tèt ou

Rekonstwi non yo komite sou dyalòg la epi konpare:

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

Hash ki enprime a ta dwe matche ak tou de youn nan dyalòg Konsènan ak youn nan komèt sa a bati-pwovens kouri rezime. Ou ka tcheke siyati a tou dirèkteman ak GitHub CLI:

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

Aplikasyon android ak iOS yo

Tèks ki pi wo a se yon chèk web-app, ak rezon ki fè yo vo di klèman: yon app natif natal pa ka fè menm bagay la pou tèt li. Ki sa ki kouri sou telefòn ou se konpile kòd machin, pa la sous nan repozitwa a, e pa gen anyen aplikasyon an ka kalkile sou aparèy la ki gen rapò youn ak la lòt.

Android ka fè pwochen pi bon bagay la. Enstale a .apk se yon fichye aplikasyon an ka li ak hash, ak hash la nan chak lage pibliye deja piblik: pibliye nan la Zapstore siyen yon evènman Nostr ki pote SHA-256 APK a ak sètifika siyati SHA-256 li a. Se konsa, la Android Konsènan dyalòg hashes APK li ap kouri nan, chache sa yo siyen evènman, kenbe sèlman sa yo ki siyen pa kle pwomotè a, epi konpare. Li montre de la hashes tou, konsa ou ka repete chèk la sou aparèy la: telechaje APK ki te pibliye a, kouri sha256sum sou li, epi gade nan menm evènman an tèt ou.

Yon aplikasyon ki enstale nan Google Play pa ka tcheke fason sa a, ak sa a se pa yon sinyal ke tout bagay se mal. Google re-signe chak upload ak kle pwòp li yo ak bati yon APK separe pou chak aparèy, se konsa sa ki ateris sou telefòn ou se pa dosye a devlopè a pwodwi ak hash li yo matche pa gen anyen ki ta ka pibliye. Aplikasyon an rekonèt yon Play enstale ak di li anvan rapòte yon rezo. Pou tcheke yon build tèt ou, enstale APK a pibliye dirèkteman.

iOS pa ka tcheke nan tout. Apple ankripte ak re-siyen chak download endividyèlman, kidonk yon hash kalkile sou iPhone ou a inik nan iPhone ou epi li pa matche ak anyen pibliye nenpòt kote. Dyalòg sou la di sa kareman olye ke montre yon rasire estati ki pa vle di anyen. Si ou vle yon Nymchat ou ka verifye sou Apple pyès ki nan konpitè, sèvi ak entènèt la app, ki tcheke chak dosye li ap kouri.

Ki sa ki okenn nan sa a pwouve

Yon chèk yon aplikasyon kouri sou tèt li pa ka pwouve ke aplikasyon an onèt - nenpòt moun ki modifye li ta ka retire chèk la tou. Ki sa li pwouve se ka a òdinè: ke kopi a ou enstale se kopi ki te pibliye a. Sa vo genyen paske valè li konpare yo piblik, kidonk yon lòt moun pase ou ka tcheke yo, epi yo pa dakò.

Manda kanari a

Yon manda canary se yon deklarasyon, pibliye sou yon orè fiks, ke pwomotè a genyen pa te resevwa yon lòd gouvènman sekrè yo entèdi divilge - a Lèt Sekirite Nasyonal, yon lòd FISA. Pwomotè a ka oblije rete an silans sou tankou yon lòd, men yo pa ka oblije bay manti, kidonk kanari a ap vin rasi oswa disparèt. li menm siyal la.

Li ap viv nan canary.json nan rasin nan depo a epi yo chache dirèkteman soti nan GitHub, kidonk istwa li yo kapab verifye poukont sa sit deplwaye a di. Koulè dyalòg Konsènan a kòd li:

KoulèVle di
Vèt - tout klèSiyen, aktyèl, ak siyati a matche ak kle pwomotè a. Yo pa resevwa okenn lòd sekrè.
Jòn — anreta, oswa pa tout klèLi pa te rafrechi pa dat li deklare, oswa li allClear drapo a fo. Yon lòd fèmen bouch pa ka eskli.
Wouj — siyati valab, oswa aleSiyati a pa matche ak kle pwomotè a, oswa yo te retire dosye a nèt. Trete sa a kòm yon avètisman grav.

Jete lank la fraîcheur

Canary ki siyen an entegre dènye wotè blòk Bitcoin ak hachaj nan moman siyen an. Sa hash pa t 'kapab konnen anvan blòk la te egziste, ki pwouve Canary a te siyen apre yon pwen espesifik nan tan olye ke pre-siyen nan en mwa pi bonè. Dyalòg About la konekte lank la ak yon eksploratè blòk pou ou ka tcheke li.