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.
Esta páxina está traducida por máquina para maior comodidade. O orixinal en inglés é a versión que se aplica.
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.
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.
| Estado | Medios |
|---|---|
| &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 oficial | O código é xenuíno e certificado, pero este é un espello noutro dominio. Un espello non pode eliminar esta advertencia sen fallar a verificación. |
| ✗ Incompatibilidade | Un activo non responde ao que di o manifesto. |
| ✗ Construción non oficial | O hash do paquete recalculado non ten ningunha certificación do repositorio: un manifesto feito por si mesmo. |
| ⚠ Procedencia inalcanzable | Non 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:
| Cor | Medios |
|---|---|
| Verde - todo claro | Asinado, actual e a sinatura coincide coa clave do programador. Non se recibiu ningunha orde secreta. |
| Amarelo - atrasado, ou non todo claro | Non 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 desaparecida | A 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.