Farðu yfir í innihaldið
Aftur á: Nymchat

Þekkingargrunnur Undir húddinu

Staðfestir bygginguna

Opinn uppspretta hjálpar aðeins ef kóðinn sem þú ert að keyra er kóðinn sem var birt. Nymchat er smíðað ákveðna þannig að þú getur athugað það sjálfur, innan frá app eða frá flugstöð.

Endurtakanlegar byggingar

Að byggja upp appið gefur frá sér a build-manifest.json sem inniheldur heimildarskuldbindinguna, a SHA-256 kjötkássa fyrir hverja þjóna HTML, JavaScript og CSS eign, og einn bundleHash yfir allt eignasafnið.

Framleiðslan fer aðeins eftir upprunainnihaldinu - jafnvel skráður byggingartími er tímastimpil commit frekar en augnablikið sem smíðin rann - svo allir sem endurbyggja það sama commit fær bætisams konar skrár og það sama bundleHash.

GitHub Action endurbyggir síðan hverja skuldbindingu sjálfstætt og skrifar undir uppruna vottorð fyrir hass og upplýsingaskrá, svo það er undirrituð skrá sem bindur a bundleHash að skuldbinda sig í geymslunni, framleitt af einhverju öðru en dreifing.

Það sem um gluggann athugar

Um í hausnum keyrir athugunin í beinni, í vafranum þínum.

Nymchat About valmyndin, sýnir útgáfuna, byggir upp heilleika og ábyrgist stöðu kanarífugla.
Um svarglugginn: útgáfa, byggir heilleika, ábyrgist kanarífugl og bein lína til framkvæmdaraðila.

Það sækir aftur hverja eign sem síðan er í raun að keyra, hassar hana með Web Crypto API og ber saman við upplýsinguna. Síðan - og þetta er sá hluti sem skiptir máli - það endurreiknar bundleHash úr hassinu það bara reiknað, ekki frá allt sem upplýsingaskráin heldur fram og flettir því upp í undirrituðum vottorðum geymslunnar í gegnum GitHub API.

Það er það sem kemur í veg fyrir að dreifing ábyrgist sjálfa sig: að þjóna breyttum skrám ásamt samsvörunarskrá mistekst enn vegna þess að endurreiknað kjötkássa hefur enga staðfestingu.

StaðaÞýðir
&athugaðu; Staðfest opinbert forrit (n/n)Sérhver eign passar, endurreiknað búnt kjötkássa er staðfest af geymslunni, og síðan er þjónað frá opinbera léninu.
⚠ Staðfest smíði · ekki opinbera appiðKóðinn er ósvikinn og staðfestur, en þetta er spegill á öðru léni. Spegill getur ekki fjarlægt þessa viðvörun án þess að staðfesting misheppnist.
✗ ÓsamræmiEign samsvarar ekki því sem segir í upplýsingaskránni.
✗ Óopinber smíðiEndurreiknað búnt kjötkássa hefur enga staðfestingu frá geymslunni - sjálfgerð upplýsingaskrá.
⚠ Uppruni ekki hægt að náEkki tókst að ná í GitHub API, þannig að ekki var hægt að athuga staðfestingu á hvorn veginn sem er.

Að sannreyna það sjálfur

Endurbyggðu commit Um glugganöfnin og berðu saman:

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

Prentað kjötkássa ætti að passa við bæði það sem er í Um glugganum og það sem er í þeirri skuldbindingu samantekt bygg-uppruna keyrslu. Þú getur líka athugað undirskriftina beint með GitHub CLI:

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

Android og iOS forritin

Ávísunin hér að ofan er ávísun á vefforrit og ástæðan er þess virði að segja berum orðum: innbyggt app getur ekki gert það sama við sjálfan sig. Það sem keyrir á símanum þínum er samsettur vélkóði, ekki uppspretta í geymslunni og ekkert sem appið getur reiknað í tækinu tengist annað.

Android getur gert það næstbesta. Hið uppsetta .apk er skrá sem appið getur lesið og kjötkássa, og kjötkássa hvers útgefna útgáfu er nú þegar opinber: birting til Zapstore undirritar Nostr atburð sem ber SHA-256 APK og undirritunarskírteini þess SHA-256. Þannig að Android Um dialog hashes APK sem það er að keyra frá, sækir þá sem eru undirritaðir atburðir, heldur aðeins þeim sem eru undirritaðir af lykli þróunaraðila og ber saman. Það sýnir þetta tvennt kjötkássa líka, svo þú getir endurtekið hakið af tækinu: halaðu niður útgáfu APK, keyrðu sha256sum á það, og skoðaðu sama atburðinn sjálfur.

Ekki er hægt að athuga forrit sem er sett upp frá Google Play með þessum hætti, og það er ekki merki um að eitthvað sé rangt. Google endurskrifir hvert uppsetningu með eigin lykli og byggir sérstakt APK fyrir hvert tæki, þannig að það sem landar á símanum þínum er ekki skrárin sem verktaki framleiðir og hash hennar passa ekkert sem gæti verið gefið út. Appinn þekkir Play uppsetningu og segir það frekar en að tilkynna mistök.

Það er alls ekki hægt að athuga iOS. Apple dulkóðar og endurskrifar hvert niðurhal fyrir sig, þannig að kjötkássa sem er reiknuð á iPhone þínum er einstakt fyrir iPhone þinn og passar ekkert birt hvar sem er. Um gluggann segir þetta hreint út frekar en að sýna hughreystandi staða sem þýðir ekkert. Ef þú vilt Nymchat geturðu staðfest á Apple vélbúnaði, notaðu vefinn app, sem athugar allar skrár sem það er að keyra.

Það sem ekkert af þessu sannar

Athugun sem forrit keyrir á sjálft getur ekki sannað að appið sé heiðarlegt - hver sem breytti því gæti fjarlægt ávísunina líka. Það sem það sannar er venjulegt tilfelli: að afritið þú uppsett er afritið sem var gefið út. Það er þess virði að hafa vegna þess að það metur það samanburður er opinber, svo einhver annar en þú getur athugað þá og verið ósammála.

Heimildarkanarífuglinn

Ábyrgðarkanarífugl er yfirlýsing, birt á föstu áætlun, sem framkvæmdaraðili hefur ekki fengið leynileg skipun stjórnvalda sem þeim er bannað að birta — a Þjóðaröryggisbréf, tilskipun FISA. Framkvæmdaraðilinn getur verið þvingaður til að þegja um slík skipun, en ekki er hægt að þvinga það til að ljúga, þannig að kanarífuglinn er að verða gamall eða hverfa sjálft merki.

Það býr í canary.json í rót geymslunnar og er sótt beint frá GitHub, þannig að saga þess er endurskoðanleg óháð því sem uppsett síða segir. Um glugginn litkóðar hann:

LiturÞýðir
Grænn — allt á hreinuUndirritaður, núverandi og undirskriftin passar við lykil þróunaraðilans. Engin leynileg pöntun hefur borist.
Gulur — tímabært, eða ekki allt ljóstÞað var ekki endurnýjað af tilgreindri dagsetningu, eða þess allClear fáninn er falskur. Ekki er hægt að útiloka þaggaða skipun.
Rauður — ógild undirskrift, eða farinUndirskriftin passar ekki við lykil þróunaraðilans, eða skráin hefur verið fjarlægð að öllu leyti. Líttu á þetta sem alvarlega viðvörun.

Ferskleika akkerið

Undirritaður kanarífugl fellir inn nýjustu Bitcoin blokkarhæð og kjötkássa við undirritun. Það hass gæti ekki hafa verið vitað áður en blokkin var til, sem sannar að kanarífuglinn var það undirritaður eftir ákveðinn tímapunkt frekar en fyrirfram undirritað í lausu mánuði fyrr. Um valmyndin tengir akkerið við blokkkönnuði svo þú getir athugað það.