Base di cunniscenza Sottu u cappucciu
Verificà a custruzione
Open source aiuta solu se u codice chì site in esecuzione hè u codice chì era publicatu. Nymchat hè custruitu deterministically cusì pudete verificà chì tù stessu, da l'internu app o da un terminal.
Questa pagina hè tradutta in macchina per comodità. L'uriginale in inglese hè a versione chì si applica.
Custruzzioni riproducibili
Custruisce l'app emette a build-manifest.json chì cuntene l'impegnu fonte, a
SHA-256 hash di ogni asset HTML, JavaScript è CSS servitu, è un solu
bundleHash nantu à tuttu questu set di attivu.
L'output dipende solu da u cuntenutu di a fonte - ancu u tempu di creazione registratu hè u
commit's timestamp piuttostu cà u mumentu chì a custruzione hè stata fatta - cusì qualcunu ricustruisce u listessu
commit riceve i schedarii identici à i byte è u listessu bundleHash.
Una Azione GitHub poi ricostruisce ogni impegnu indipindente è firma a custruzzione-provenza
attestazioni per l'hash è u manifestu, cusì ci hè un registru firmatu ligatu a
bundleHash à un commit in u repository, pruduttu da qualcosa altru ch'è u
implementazione.
Ciò chì verifica u dialogu About
À propositu in l'intestazione corre u cuntrollu in diretta, in u vostru navigatore.
Recupera ogni attivu chì a pagina hè veramente in esecuzione, l'hash cù l'API Web Crypto, è
compara cun u manifestu. Allora - è questu hè a parte chì importa - hè
ricalcula u bundleHash da i hashes lu appena calculatu, micca da
tuttu ciò chì u manifestu pretende, è cerca chì in l'attestati firmati di u repository
attraversu l'API GitHub.
Hè ciò chì impedisce à una implementazione di cunfirmà per sè stessu: serve i schedari mudificati inseme cù un manifestu currispundente falla sempre, perchè l'hash recalculatu ùn hà micca attestazione.
| Status | I mezi |
|---|---|
| & verificate; App ufficiale verificata (n/n) | Ogni asset currisponde, l'hash di bundle ricalculatu hè attestatu da u repository, è a pagina hè servita da u duminiu ufficiale. |
| ⚠ Custruzione verificata · micca l'app ufficiale | U codice hè genuinu è attestatu, ma questu hè un specchiu nantu à un altru duminiu. Un specchiu ùn pò micca sguassà stu avvisu senza verificazione falluta. |
| ✗ Mismatch | Un attivu ùn hà micca à ciò chì u manifestu dice. |
| ✗ Custruzione non ufficiale | L'hash di bundle recalculatu ùn hà micca attestazione da u repository - un manifestu self-made. |
| ⚠ Provenienza inaccessibile | L'API GitHub ùn pò micca esse ghjunta, cusì l'attestazione ùn pò esse verificata in ogni modu. |
Verificà lu stessu
Ricustruite l'impegnu di i nomi di dialogu About è paragunate:
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>"
L'hash stampatu deve currisponde à quellu in u dialogu About è quellu in quellu commit's riassuntu di custruzzione-provenza. Pudete ancu verificà a firma direttamente cù u GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
U mandatu canarinu
Un canarinu di mandatu hè una dichjarazione, publicata in un calendariu fissu, chì u sviluppatore hà micca ricivutu un ordine secretu di u guvernu chì sò pruibiti di divulgà - a Lettera di Sicurezza Naziunale, un ordine FISA. U sviluppatore pò esse obligatu à stà in silenziu un tali ordine, ma ùn pò micca esse obligatu à menti, cusì u canarinu chì si stanca o sparisce hè ellu stessu u signale.
Vive in canary.json à a radica di u repositoriu è hè ritruvatu direttamente
da GitHub, cusì a so storia hè auditable indipindente di ciò chì dice u situ implementatu.
U dialogu About u codifica in culore:
| Culore | I mezi |
|---|---|
| Verde - tuttu chjaru | Firmatu, attuale, è a firma currisponde à a chjave di u sviluppatore. Nisun ordine secretu hè statu ricevutu. |
| Ghjallu - tardu, o micca tuttu chjaru | Ùn hè statu rinfriscatu da a so data dichjarata, o u so allClear a bandiera hè falsa. Un ordine silenziu ùn pò micca esse esclusu. |
| Rossu - firma invalida, o andata | A firma ùn currisponde à a chjave di u sviluppatore, o u schedariu hè statu eliminatu sanu. Trattate questu cum'è un avvirtimentu seriu. |
L'ancora di freschezza
U canarinu firmatu incorpora l'ultime altezza di bloccu Bitcoin è hash à u mumentu di a firma. Ddu hash ùn pudia esse cunnisciutu prima chì u bloccu esiste, chì prova chì u canarinu era firmatu dopu un puntu specificu in u tempu piuttostu cà pre-firmatu in bulk mesi prima. U dialogu About liga l'ancora à un esploratore di blocchi per pudè verificà.