Saltar al contingut
Torna a Nymchat

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.

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.

El diàleg Quant a Nymchat, que mostra la versió, la integritat de la construcció i garanteix l'estat canari.
El diàleg Quant a: versió, integritat de la construcció, garantia canari i una línia directa amb el desenvolupador.

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

EstatMitjans
&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ó oficialEl 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ó.
✗ IncompatibilitatUn actiu no s'ajusta al que diu el manifest.
✗ Construcció no oficialEl hash del paquet recalculat no té cap certificació del repositori: un manifest fet per si mateix.
⚠ Procedència inabastableNo 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:

ColorMitjans
Verd —tot clarSignat, actual i la signatura coincideix amb la clau del desenvolupador. No s'ha rebut cap ordre secreta.
Groc — vençut, o no del tot clarNo 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 desaparegudaLa 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.