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