Žinių bazė Po gaubtu
Konstrukcijos tikrinimas
Atvirasis šaltinis padeda tik tuo atveju, jei naudojamas kodas yra toks, koks buvo paskelbta. „Nymchat“ sukurtas deterministiškai, todėl galite tai patikrinti patys iš vidaus programėlę arba iš terminalo.
Patogumui šis puslapis išverstas mašininiu būdu. Tinkama versija anglų kalba.
Atkuriamos konstrukcijos
Programėlės kūrimas skleidžia a build-manifest.json kuriame yra šaltinio įsipareigojimas, a
SHA-256 maiša kiekvienam teikiamam HTML, JavaScript ir CSS ištekliui ir vienam
bundleHash per visą tą turto rinkinį.
Išvestis priklauso tik nuo šaltinio turinio – netgi įrašytas kūrimo laikas
įsipareigojimo laiko žyma, o ne momentas, kai buvo paleistas kūrimas – taigi, bet kas atkuria tą patį
commit gauna baitų tapačius failus ir tuos pačius bundleHash.
Tada „GitHub Action“ atkuria kiekvieną įsipareigojimą atskirai ir pasirašo kūrimo kilmę
maišos ir manifesto patvirtinimai, todėl yra pasirašytas įrašas, susiejantis a
bundleHash į įsipareigojimą saugykloje, kurį sukūrė kažkas kitas nei
dislokavimas.
Ką tikrina dialogo langas Apie
Apie antraštėje paleidžiamas tiesioginis patikrinimas jūsų naršyklėje.
Jis iš naujo gauna kiekvieną išteklį, kurį puslapis iš tikrųjų veikia, sumaišo jį su Web Crypto API ir
lygina su manifestu. Tada – ir tai yra svarbiausia dalis – tai
perskaičiuoja bundleHash iš maišos tai tik paskaičiavo, o ne iš
viskas, ko reikalauja manifestas, ir tai peržiūri saugyklos pasirašytuose patvirtinimuose
per GitHub API.
Būtent tai neleidžia diegimui laiduoti už save: modifikuotų failų aptarnavimas kartu su atitikties manifestas vis tiek nepavyksta, nes perskaičiuota maiša neturi patvirtinimo.
| Būsena | Reiškia |
|---|---|
| ✓ Patvirtinta oficiali programa (n/n) | Kiekvienas išteklius atitinka, perskaičiuotą paketo maišą patvirtina saugykla, ir puslapis aptarnaujamas iš oficialaus domeno. |
| ⚠ Patvirtinta konstrukcija · ne oficiali programa | Kodas yra autentiškas ir patvirtintas, tačiau tai yra kito domeno veidrodis. Veidrodis negali pašalinti šio įspėjimo be nesėkmingo patikrinimo. |
| ✗ Neatitikimas | Turtas neturi maišos su tuo, kas sakoma manifeste. |
| ✗ Neoficiali konstrukcija | Perskaičiuota rinkinio maiša neturi saugyklos patvirtinimo – savaime sukurtas manifestas. |
| ⚠ Kilmė nepasiekiama | Nepavyko pasiekti „GitHub“ API, todėl patvirtinimo nepavyko patikrinti nė vienu būdu. |
Pats tai patikrinęs
Iš naujo sukurkite įsipareigojimo dialogo lange Apie pavadinimus ir palyginkite:
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>"
Spausdinta maiša turi atitikti ir tą, kuri yra dialogo lange Apie, ir tą, kuri yra tame įsipareigojime statybos kilmės paleidimo santrauka. Taip pat galite patikrinti parašą tiesiogiai naudodami „GitHub CLI“:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Garantinis kanarėlė
Garantinis kanarėlė yra pareiškimas, paskelbtas fiksuotu grafiku, kurį kūrėjas turi ne gavo slaptą vyriausybės įsakymą, kurį jiems draudžiama atskleisti – a Nacionalinio saugumo laiškas, FISA įsakymas. Kūrėjas gali būti priverstas tylėti tokia tvarka, bet negalima priversti meluoti, todėl kanarėlė pasensta ar dingsta pats signalas.
Tai gyvena canary.json saugyklos šaknyje ir gaunamas tiesiogiai
iš „GitHub“, todėl jos istoriją galima patikrinti nepriklausomai nuo to, ką sako įdiegta svetainė.
Dialogo lange „Apie“ tai užkoduota spalvomis:
| Spalva | Reiškia |
|---|---|
| Žalia - viskas aišku | Pasirašytas, dabartinis ir parašas atitinka kūrėjo raktą. Jokio slapto užsakymo negauta. |
| Geltona — pavėluota arba ne viskas aišku | Jis nebuvo atnaujintas pagal nurodytą datą arba jos allClear vėliava netikra. Neatmestina ir nutildyta tvarka. |
| Raudona — neteisingas parašas arba dingo | Parašas neatitinka kūrėjo rakto arba failas buvo visiškai pašalintas. Laikykite tai rimtu įspėjimu. |
Šviežumo inkaras
Pasirašyta kanarėlė įdeda naujausią Bitcoin bloko aukštį ir maišą pasirašymo momentu. Šis maišas negalėjo būti žinomas prieš blokui egzistuojant, o tai įrodo, kad kanarėlė buvo pasirašė po to konkrečiu momentu, o ne iš anksto pasirašyta daugybe mėnesių anksčiau. Dialogo langas Apie susieja inkarą su blokų naršykle, kad galėtumėte jį patikrinti.