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.
See leht on mugavuse huvides masintõlgitud. Kohaldatav on ingliskeelne originaalversioon.
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.
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.
| Olek | Tähendab |
|---|---|
| ✓ Kinnitatud ametlik rakendus (n/n) | Iga vara kattub, hoidla kinnitab ümberarvutatud kogumi räsi, ja lehte serveeritakse ametlikust domeenist. |
| ⚠ Kinnitatud konstruktsioon · pole ametlik rakendus | Kood on ehtne ja kinnitatud, kuid see on teise domeeni peegel. Peegel ei saa seda hoiatust eemaldada ilma kontrollimiseta. |
| ✗ Mittevastavus | Vara ei räsi manifestis olevale. |
| ✗ Mitteametlik ehitus | Ümberarvutatud kogumi räsil ei ole hoidlast kinnitust – see on ise tehtud manifest. |
| ⚠ Päritolu on kättesaamatu | GitHubi 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.
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ärv | Tähendab |
|---|---|
| Roheline - kõik selge | Allkirjastatud, kehtiv ja allkiri vastab arendaja võtmele. Ühtegi salajast tellimust pole tulnud. |
| Kollane — hilinenud või pole kõik selge | Seda 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 kadunud | Allkiri 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.