Base de coneixement Sota el capó
Verificant la construcció
El codi obert només ajuda si el codi que esteu executant és el codi que hi havia publicat. Nymchat es construeix de manera determinista perquè ho pugueu comprovar vosaltres mateixos, des de dins aplicació o des d'un terminal.
Aquesta pàgina està traduïda automàticament per comoditat. L'original en anglès és la versió que s'aplica.
Construccions reproductibles
La construcció de l'aplicació emet a build-manifest.json que conté la confirmació d'origen, a
Hash SHA-256 de tots els actius HTML, JavaScript i CSS publicats, i un únic
bundleHash sobre tot aquest conjunt d'actius.
La sortida depèn només del contingut d'origen, fins i tot el temps de creació enregistrat és el
la marca de temps de commit en lloc del moment en què es va executar la compilació, de manera que qualsevol persona que reconstrueixi el mateix
commit obté fitxers idèntics al byte i el mateix bundleHash.
A continuació, una acció de GitHub reconstrueix cada commit de manera independent i signa la procedència de la construcció
certificacions per al hash i el manifest, de manera que hi ha un registre signat que lliga a
bundleHash a una confirmació al repositori, produïda per una altra cosa que no sigui el
desplegament.
Què comprova el diàleg Sobre
Sobre a la capçalera s'executa la comprovació en directe, al vostre navegador.
Torna a obtenir cada actiu que s'està executant la pàgina, l'ha hash amb l'API Web Crypto i
compara amb el manifest. Aleshores, i aquesta és la part que importa, això
torna a calcular el bundleHash dels hashes això només calculat, no a partir
qualsevol cosa que el manifest reclama i ho cerca als atestats signats del dipòsit
mitjançant l'API de GitHub.
Això és el que impedeix que un desplegament es garanteixi per si mateix: servir fitxers modificats juntament amb un manifest coincident encara falla, perquè el hash recalculat no té cap certificació.
| Estat | Mitjans |
|---|---|
| &comprova; Aplicació oficial verificada (n/n) | Cada actiu coincideix, el repositori certifica el hash del paquet recalculat, i la pàgina es publica des del domini oficial. |
| ⚠ Build verificada · no és l'aplicació oficial | El codi és genuí i certificat, però això és un mirall en un altre domini. Un mirall no pot suprimir aquest avís sense fallar la verificació. |
| ✗ Incompatibilitat | Un actiu no s'ajusta al que diu el manifest. |
| ✗ Construcció no oficial | El hash del paquet recalculat no té cap certificació del repositori: un manifest fet per si mateix. |
| ⚠ Procedència inabastable | No s'ha pogut accedir a l'API de GitHub, de manera que l'acreditació no s'ha pogut comprovar de cap manera. |
Verificant-ho tu mateix
Reconstruïu els noms del diàleg Sobre la confirmació i compareu:
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>"
El hash imprès hauria de coincidir tant amb el del diàleg Quant a com amb el d'aquest commit resum de l'execució de la construcció i la procedència. També podeu comprovar la signatura directament amb la CLI de GitHub:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
El canari d'ordre
Un warrant canari és una declaració, publicada en un horari fix, que té el promotor no va rebre una ordre secreta del govern que tenen prohibit revelar - a Carta de seguretat nacional, una ordre FISA. El desenvolupador es pot veure obligat a romandre en silenci tal ordre, però no es pot obligar a mentir, de manera que el canari es torna ranci o desapareix. el mateix senyal.
Viu a canary.json a l'arrel del dipòsit i s'obté directament
de GitHub, de manera que el seu historial es pot auditar independentment del que digui el lloc desplegat.
El diàleg Sobre el codi de colors el codifica:
| Color | Mitjans |
|---|---|
| Verd —tot clar | Signat, actual i la signatura coincideix amb la clau del desenvolupador. No s'ha rebut cap ordre secreta. |
| Groc — vençut, o no del tot clar | No s'ha actualitzat per la data indicada, ni per la seva allClear la bandera és falsa. No es pot descartar una ordre silenciada. |
| Vermell — Signatura no vàlida o desapareguda | La signatura no coincideix amb la clau del desenvolupador o el fitxer s'ha eliminat completament. Tracteu això com un avís seriós. |
L'àncora de la frescor
El canari signat incrusta l'última alçada de bloc de Bitcoin i hash en el moment de la signatura. Aquell haxix no es podia haver conegut abans que existís el bloc, la qual cosa demostra que el canari ho era signat després un moment concret en lloc de signar prèviament a granel mesos abans. El diàleg Quant a enllaça l'àncora a un explorador de blocs perquè pugueu comprovar-ho.