Gean nei de ynhâld
Werom nei Nymchat

Kennisbasis Under de motorkap

Ferifiearje de bou

Iepen boarne helpt allinich as de koade dy't jo útfiere de koade is dy't wie publisearre. Nymchat is boud deterministysk sadat jo kontrolearje dat sels, fan binnen de app of fan in terminal.

Reproducible builds

It bouwen fan de app stjoert in build-manifest.json befettet de boarne commit, a SHA-256 hash fan elke tsjinne HTML, JavaScript en CSS asset, en ien bundleHash oer dy hiele asset set.

De útfier hinget allinich ôf fan 'e boarne ynhâld - sels de opnommen boutiid is de commit's timestamp yn stee fan it momint dat de build rûn - dus elkenien dy't itselde werbout commit krijt byte-identike bestannen en itselde bundleHash.

In GitHub-aksje bout dan elke commit selsstannich op en tekenet build-herkomst attestaasjes foar de hash en it manifest, dus der is in tekene record tying a bundleHash ta in commit yn de repository, produsearre troch wat oars as de ynset.

Wat it dialoochfinster Oer kontrolearret

Oer yn de kop rint de kontrôle live, yn jo blêder.

It dialoochfinster Nymchat Oer, de ferzje sjen litte, yntegriteit bouwe en kanaryske status garandearje.
De Oer dialooch: ferzje, build yntegriteit, warrant canary en in direkte line nei de ûntwikkelder.

It werhellet elke asset op 'e side dy't eins rint, hashes it mei de Web Crypto API, en fergelike mei it manifest. Dan - en dit is it diel dat fan belang is - it recomputes de bundleHash fan de hasj it krekt berekkene, net út alles wat it manifest beweart, en sjocht dat op yn 'e ûndertekene attestaasjes fan it repository fia de GitHub API.

Dat is wat stopet in ynset fan vouching foar himsels: tsjinjen feroare triemmen tegearre mei in oerienkommende manifest mislearret noch, om't de opnij berekkene hash gjin attest hat.

StatusMiddels
&kontrôle; Ferifiearre offisjele app (n/n)Elke asset komt oerien, de opnij berekkene bondelhash wurdt attest troch it repository, en de side wurdt betsjinne fan it offisjele domein.
⚠ Ferifiearre bou · net de offisjele appDe koade is echt en attestearre, mar dit is in spegel op in oar domein. In spegel kin dizze warskôging net fuortsmite sûnder mislearre ferifikaasje.
✗ MismatchIn asset hash net oan wat it manifest seit.
✗ Unoffisjele bouDe opnij berekkene bondelhash hat gjin attest fan 'e repository - in selsmakke manifest.
⚠ Herkomst net te berikkenDe GitHub API koe net berikt wurde, sadat de attestaasje op beide manieren net kontrolearre wurde koe.

Ferifiearje it sels

Bou de commit de nammen fan it dialoochfinster opnij op en fergelykje:

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

De printe hash moat oerienkomme mei sawol de iene yn it dialoochfinster Oer as dy yn dy commit build-herkomst run gearfetting. Jo kinne de hantekening ek direkt kontrolearje mei de GitHub CLI:

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

De warrant kanarie

In warrant canary is in ferklearring, publisearre op in fêst skema, dat de ûntwikkelder hat net krigen in geheime regear oarder se binne ferbean te iepenbierjen - a National Security Letter, in FISA oarder. De ûntwikkelder kin twongen wurde om stil te bliuwen sa'n oarder, mar kin net twongen wurde om te lizzen, sa't de kanarie giet mâle of ferdwine is sels it sinjaal.

It wennet yn canary.json by de woartel fan it repository en wurdt direkt ophelle fan GitHub, dus syn skiednis is auditable ûnôfhinklik fan wat de ynset side seit. It dialoochfinster Oer kleurkodeart it:

KleurMiddels
Grien - alles dúdlikUndertekene, aktueel en de hantekening komt oerien mei de kaai fan 'e ûntwikkelder. Gjin geheime oarder is ûntfongen.
Giel - efterstallich, of net allegear dúdlikIt waard net ferfarske troch syn oantsjutte datum, of syn allClear flagge is falsk. In stille oarder kin net útsletten wurde.
Read - ûnjildige hantekening, of fuortDe hantekening komt net oerien mei de kaai fan de ûntwikkelder, of it bestân is hielendal fuortsmiten. Behannelje dit as in serieuze warskôging.

De frisheid anker

De ûndertekene kanaryske embeds de lêste Bitcoin-blokhichte en hash op it momint fan ûndertekening. Dat hasj koe net bekend wêze foardat it blok bestie, wat bewiist dat de kanarie wie ûndertekene nei in spesifyk punt yn 'e tiid ynstee fan foarôf ûndertekene yn bulk moannen earder. It dialoochfinster Oer ferbynt it anker oan in blokferkenner, sadat jo it kinne kontrolearje.