Baza znanja Ispod haube
Provjera građe
Otvoreni kod pomaže samo ako je kod koji izvodite onaj koji je bio objavljeno. Nymchat je izgrađen deterministički tako da to možete sami provjeriti iznutra aplikacije ili s terminala.
Ova stranica je strojno prevedena radi praktičnosti. Engleski izvornik je verzija koja se primjenjuje.
Ponovljive građe
Izrada aplikacije emitira a build-manifest.json koji sadrži izvornu predaju, a
SHA-256 raspršivanje svakog posluženog HTML, JavaScript i CSS elementa i jednog
bundleHash nad tim cijelim skupom sredstava.
Izlaz ovisi samo o izvornom sadržaju — čak je i zabilježeno vrijeme izrade
vremensku oznaku uvrštenja, a ne trenutak kada je izgradnja pokrenuta — tako da svatko ponovno izrađuje istu
commit dobiva bajt-identične datoteke i iste bundleHash.
GitHub radnja zatim ponovno gradi svaki commit neovisno i potpisuje podrijetlo izgradnje
potvrde za hash i manifest, tako da postoji potpisani zapis koji povezuje a
bundleHash na predaju u spremištu, koju proizvodi nešto što nije
raspoređivanje.
Što provjerava dijaloški okvir O
Oko u zaglavlju pokreće provjeru uživo, u vašem pregledniku.
Ponovno dohvaća svako sredstvo koje stranica zapravo pokreće, hashira ga s Web Crypto API-jem i
uspoređuje s manifestom. Zatim - a ovo je dio koji je važan - to
ponovno izračunava bundleHash od haseva to samo izračunato, ne iz
sve što manifest tvrdi, i to traži u potpisanim atestima repozitorija
putem GitHub API-ja.
To je ono što sprječava implementaciju da jamči za sebe: posluživanje izmijenjenih datoteka zajedno s odgovarajući manifest i dalje ne uspijeva jer ponovno izračunati hash nema potvrdu.
| Status | Sredstva |
|---|---|
| &provjeriti; Potvrđena službena aplikacija (n/n) | Svako se sredstvo podudara, repozitorij potvrđuje ponovno izračunati hash paketa, i stranica se poslužuje sa službene domene. |
| ⚠ Provjerena verzija · nije službena aplikacija | Kod je originalan i potvrđen, ali ovo je ogledalo na drugoj domeni. Zrcalo ne može ukloniti ovo upozorenje bez neuspjele provjere. |
| ✗ Neusklađenost | Sredstvo se ne raspršuje prema onome što kaže manifest. |
| ✗ Neslužbena izrada | Ponovno izračunati hash paketa nema potvrdu iz repozitorija — vlastiti manifest. |
| ⚠ Podrijetlo nedostupno | Nije bilo moguće doći do GitHub API-ja, pa se atest nije mogao provjeriti ni na koji način. |
Uvjerite se sami
Ponovno izgradite commit imena dijaloškog okvira O i usporedite:
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>"
Ispisani hash trebao bi odgovarati i onom u dijaloškom okviru About i onom u tom urezivanju build-provenance run summary. Također možete provjeriti potpis izravno pomoću GitHub CLI-ja:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Kanarinac s nalogom
Kanarinac naloga je izjava, objavljena prema fiksnom rasporedu, koju ima programer ne primili su tajnu vladinu naredbu koju je zabranjeno otkriti — a Pismo o nacionalnoj sigurnosti, nalog FISA-e. Programer može biti prisiljen šutjeti o tome takav red, ali se ne može prisiliti na laž, tako da kanarinac ustajao ili nestaje sam signal.
Živi u canary.json u korijenu repozitorija i izravno se dohvaća
s GitHuba, tako da se njegova povijest može revidirati neovisno o tome što kaže postavljeno mjesto.
Dijaloški okvir O označava ga bojom:
| Boja | Sredstva |
|---|---|
| zelena — sve jasno | Potpisan, aktualan, a potpis odgovara ključu programera. Nikakva tajna naredba nije primljena. |
| Žuta boja — kasni ili nije sve jasno | Nije osvježeno do navedenog datuma, niti je allClear zastava je lažna. Ne može se isključiti prešućena naredba. |
| crveno — nevažeći potpis ili nestao | Potpis ne odgovara ključu programera ili je datoteka u potpunosti uklonjena. Shvatite ovo kao ozbiljno upozorenje. |
Sidro svježine
Potpisani kanarinac ugrađuje najnoviju visinu i hash bloka Bitcoina u trenutku potpisivanja. Taj hash nije mogao biti poznat prije nego što je blok postojao, što dokazuje da je kanarinac bio potpisan nakon određenoj točki u vremenu, a ne unaprijed potpisanim skupnim mjesecima ranije. Dijaloški okvir About povezuje sidro s block explorerom tako da ga možete provjeriti.