Ir ao contido
Volver a Nymchat

Base de coñecemento Baixo o capó

Verificando a construción

O código aberto só axuda se o código que estás executando é o que estaba publicado. Nymchat está construído de forma determinista para que poidas comprobalo ti mesmo, desde o interior aplicación ou desde un terminal.

Construcións reproducibles

A creación da aplicación emite a build-manifest.json que contén o commit de orixe, a Hash SHA-256 de todos os recursos HTML, JavaScript e CSS servidos e un único bundleHash sobre todo ese conxunto de activos.

A saída depende só do contido de orixe, incluso o tempo de compilación rexistrado é o a marca de tempo de commit en lugar do momento en que se executou a compilación, polo que calquera que reconstruíse o mesmo commit obtén ficheiros idénticos ao byte e o mesmo bundleHash.

Despois, unha acción de GitHub reconstruíu cada commit de forma independente e asina a orixe da compilación atestados para o hash e o manifesto, polo que hai un rexistro asinado que vincula a bundleHash a un commit no repositorio, producido por algo distinto do despregamento.

Que comproba o diálogo Acerca de

Sobre na cabeceira execútase a comprobación en directo, no teu navegador.

O diálogo Acerca de Nymchat, que mostra a versión, a integridade da compilación e o estado de canario.
O diálogo Acerca de: versión, integridade da compilación, garantía de canario e unha liña directa co programador.

Volve a buscar cada recurso que realmente está a executar a páxina, emíteo coa API Web Crypto e compara co manifesto. Entón, e esta é a parte que importa recalcula o bundleHash dos hashes iso só calculado, non de calquera cousa que reclame o manifesto e búscaseo nas certificacións asinadas do repositorio a través da API de GitHub.

Iso é o que impide que unha implementación se avala por si mesma: servir ficheiros modificados xunto con un manifesto de coincidencia aínda falla porque o hash recalculado non ten ningún certificado.

EstadoMedios
&verifica; Aplicación oficial verificada (n/n)Cada activo coincide, o repositorio certifica o hash do paquete recalculado, e a páxina é servida desde o dominio oficial.
⚠ Compilación verificada · non é a aplicación oficialO código é xenuíno e certificado, pero este é un espello noutro dominio. Un espello non pode eliminar esta advertencia sen fallar a verificación.
✗ IncompatibilidadeUn activo non responde ao que di o manifesto.
✗ Construción non oficialO hash do paquete recalculado non ten ningunha certificación do repositorio: un manifesto feito por si mesmo.
⚠ Procedencia inalcanzableNon se puido acceder á API de GitHub, polo que non se puido comprobar a certificación de ningún xeito.

Verificándoo vostede mesmo

Reconstruír os nomes do diálogo Sobre a confirmación e comparar:

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>"

O hash impreso debe coincidir tanto co que aparece no diálogo Acerca de como co que se atopa no commit resumo da execución da construción-procedencia. Tamén podes comprobar a sinatura directamente coa CLI de GitHub:

gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM

O mandado canario

Un canario de orde é unha declaración, publicada nun horario fixo, que ten o promotor non recibiu unha orde secreta do goberno que teñen prohibido revelar - a Carta de Seguridade Nacional, unha orde da FISA. O desenvolvedor pode verse obrigado a permanecer en silencio tal orde, pero non se pode obrigar a mentir, polo que o canario queda rancio ou desaparece. el mesmo o sinal.

Vive en canary.json na raíz do repositorio e obtense directamente de GitHub, polo que o seu historial é auditable independentemente do que diga o sitio despregado. O diálogo Sobre o código de cores:

CorMedios
Verde - todo claroAsinado, actual e a sinatura coincide coa clave do programador. Non se recibiu ningunha orde secreta.
Amarelo - atrasado, ou non todo claroNon se actualizou na data indicada ou na súa allClear bandeira é falsa. Non se pode descartar unha orde silenciada.
Vermello — sinatura non válida ou desaparecidaA sinatura non coincide coa clave do programador ou o ficheiro eliminouse por completo. Trata isto como unha advertencia seria.

A áncora da frescura

O canario asinado incorpora a última altura de bloque de Bitcoin e hash no momento da sinatura. Ese haxix non se puido coñecer antes de que existise o bloque, o que proba que o canario o era asinado despois un momento específico en lugar de asinar previamente a granel meses antes. O diálogo Acerca de enlaza a áncora cun explorador de bloques para que poidas comprobalo.