Pereiti prie turinio
Grįžti į Nymchat

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

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.

„Nymchat About“ dialogo langas, kuriame rodoma versija, konstrukcijos vientisumas ir garantuojamas „Canary“ statusas.
Dialogo langas Apie: versija, kūrimo vientisumas, garantija ir tiesioginė linija kūrėjui.

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ūsenaReiš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 programaKodas yra autentiškas ir patvirtintas, tačiau tai yra kito domeno veidrodis. Veidrodis negali pašalinti šio įspėjimo be nesėkmingo patikrinimo.
✗ NeatitikimasTurtas neturi maišos su tuo, kas sakoma manifeste.
✗ Neoficiali konstrukcijaPerskaičiuota rinkinio maiša neturi saugyklos patvirtinimo – savaime sukurtas manifestas.
⚠ Kilmė nepasiekiamaNepavyko 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:

SpalvaReiškia
Žalia - viskas aiškuPasirašytas, dabartinis ir parašas atitinka kūrėjo raktą. Jokio slapto užsakymo negauta.
Geltona — pavėluota arba ne viskas aiškuJis nebuvo atnaujintas pagal nurodytą datą arba jos allClear vėliava netikra. Neatmestina ir nutildyta tvarka.
Raudona — neteisingas parašas arba dingoParaš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.