Liikuge sisu juurde
Tagasi Nymchati

Teadmistebaas Kapoti all

Ehitise kontrollimine

Avatud lähtekoodiga on abi ainult siis, kui teie kasutatav kood on sama, mis oli avaldatud. Nymchat on üles ehitatud deterministlikult, nii et saate seda ise kontrollida rakendusest või terminalist.

Reprodutseeritavad konstruktsioonid

Rakenduse loomine kiirgab a build-manifest.json mis sisaldab lähtekoodi, a SHA-256 räsi iga esitatud HTML-i, JavaScripti ja CSS-i vara kohta ning üksik bundleHash üle kogu selle varade komplekti.

Väljund sõltub ainult allika sisust - isegi salvestatud ehitusaeg on commit'i ajatempel, mitte järgu käivitamise hetk – nii et igaüks ehitab sama uuesti commit saab baitidentsed failid ja sama bundleHash.

GitHubi toiming taastab seejärel iga kohustuse iseseisvalt ja allkirjastab ehituse päritolu räsi ja manifesti tõendid, seega on siduv allkirjastatud protokoll a bundleHash hoidlas olevale kohustusele, mille on loonud midagi muud kui kasutuselevõtt.

Mida dialoog Teave kontrollib

Umbes päises käivitab kontrolli otse teie brauseris.

Dialoog Nymchat About, mis näitab versiooni, konstruktsiooni terviklikkust ja garantii kanaari staatust.
Dialoog Teave: versioon, konstruktsiooni terviklikkus, garantii kanaarile ja otseliin arendajale.

See hangib uuesti iga vara, mida leht tegelikult töötab, räsib selle Web Crypto API-ga ja võrreldakse manifestiga. Siis – ja see on oluline osa – see arvutab ümber bundleHash räsidest seda lihtsalt arvutatud, mitte alates kõike, mida manifest väidab, ja otsib seda hoidla allkirjastatud tõenditest GitHubi API kaudu.

Just see takistab juurutamist enda eest garanteerimast: muudetud failide teenindamine koos sobiv manifest ikka ebaõnnestub, kuna ümberarvutatud räsil puudub kinnitus.

OlekTähendab
✓ Kinnitatud ametlik rakendus (n/n)Iga vara kattub, hoidla kinnitab ümberarvutatud kogumi räsi, ja lehte serveeritakse ametlikust domeenist.
⚠ Kinnitatud konstruktsioon · pole ametlik rakendusKood on ehtne ja kinnitatud, kuid see on teise domeeni peegel. Peegel ei saa seda hoiatust eemaldada ilma kontrollimiseta.
✗ MittevastavusVara ei räsi manifestis olevale.
✗ Mitteametlik ehitusÜmberarvutatud kogumi räsil ei ole hoidlast kinnitust – see on ise tehtud manifest.
⚠ Päritolu on kättesaamatuGitHubi API-ga ei õnnestunud ühendust saada, seega ei saanud kinnitust mõlemal juhul kontrollida.

Ise kontrollides

Ehitage uuesti sidumise dialoogiakna Teave kohta nimed ja võrrelge:

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

Trükitud räsi peaks ühtima nii dialoogis Teave kui ka selle sissekandmises olevaga build-provenance jooksu kokkuvõte. Allkirja saate kontrollida ka otse GitHubi CLI-ga:

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

Androidi ja iOS-i rakendused

Ülaltoodud kontroll on veebirakenduse kontroll ja põhjus tasub selgelt välja tuua: omarakendus ei saa endale sama asja teha. See, mis teie telefonis töötab, on kompileeritud masinkood, mitte allikas hoidlas ja miski, mida rakendus saab seadmes arvutada, ei ole seotud sellega muud.

Android suudab teha järgmise parima asja. Paigaldatud .apk on fail, mida rakendus saab lugeda ja räsi ning iga avaldatud väljalase räsi on juba avalik: avaldamine aadressile Zapstore allkirjastab Nostri sündmuse, mis kannab APK SHA-256 ja selle allkirjastamissertifikaati SHA-256. Nii et Android Umbes dialoog räsib APK, millest see töötab, toob need allkirjastatud sündmused, säilitab ainult arendaja võtmega allkirjastatud sündmused ja võrdleb. See näitab kahte samuti räsid, nii et saate seadme kontrollimist korrata: laadige alla avaldatud APK, käivitage sha256sum ja vaadake ise sama sündmust.

Google Playst installitud rakendust ei saa sel viisil kontrollida, ja see ei ole märk sellest, et midagi on valesti. Google allkirjastab iga üleslaadimise oma võtmega ja ehitab iga seadme jaoks eraldi APK-i, nii et see, mis teie telefonile maandub, ei ole arendaja toodetud fail ja selle hash ei vasta midagi, mida saaks avaldada. rakendus tunneb Play install ja ütleb nii, selle asemel, et teatada ebaõnnestumisest.

iOS-i ei saa üldse kontrollida. Apple krüpteerib ja allkirjastab uuesti iga allalaadimise individuaalselt, nii et teie iPhone'is arvutatud räsi on teie iPhone'i jaoks ainulaadne ega ühti mitte millegagi avaldatakse igal pool. Dialoogiaknas Teave ütleb see pigem otse, mitte ei näita rahustavat staatus, mis ei tähenda midagi. Kui soovite Nymchati, mida saate Apple'i riistvaraga kinnitada, kasutage veebi rakendus, mis kontrollib iga töötavat faili.

Mida ükski sellest ei tõesta

Kontroll, mida rakendus ise töötab, ei saa tõestada, et rakendus on aus – olenemata sellest, kes seda muutis võiks ka tšeki eemaldada. Mida see tõestab, on tavaline juhtum: see kopeerib teid installitud on avaldatud koopia. See on seda väärt, sest see väärtustab võrdlused on avalikud, nii et keegi teine peale teie saab neid kontrollida ja mitte nõustuda.

Garantii kanaarilind

Warrant Canary on fikseeritud ajakava alusel avaldatud avaldus, mis arendajal on mitte saanud salajase valitsuse korralduse, mida neil on keelatud avaldada — a Rahvusliku julgeoleku kiri, FISA korraldus. Arendaja võib olla sunnitud sellest vaikima selline käsk, aga valetama ei saa sundida, nii et kanaarilind on kopitanud või kaduv ise signaal.

See elab sisse canary.json hoidla juurtes ja tuuakse otse GitHubist, nii et selle ajalugu on auditeeritav sõltumata sellest, mida juurutatud sait ütleb. Dialoog Teave värvib selle:

VärvTähendab
Roheline - kõik selgeAllkirjastatud, kehtiv ja allkiri vastab arendaja võtmele. Ühtegi salajast tellimust pole tulnud.
Kollane — hilinenud või pole kõik selgeSeda ei värskendatud märgitud kuupäeva või selle järgi allClear lipp on vale. Vaigistatud tellimust ei saa välistada.
Punane — kehtetu allkiri või kadunudAllkiri ei ühti arendaja võtmega või fail on täielikult eemaldatud. Käsitle seda tõsise hoiatusena.

Värskuse ankur

Allkirjastatud kanaarilind sisaldab allkirjastamise hetkel uusimat Bitcoini ploki kõrgust ja räsi. Seda räsi ei saanud teada enne ploki olemasolu, mis tõestab, et kanaarilind oli allkirjastatud pärast konkreetsel ajahetkel, mitte aga hulgi kuud varem eelnevalt allkirjastatud. Dialoog Teave lingib ankru plokiuurijaga, et saaksite seda kontrollida.