Preskočiť na obsah
Späť na Nymchat

Znalostná báza Pod kapotou

Overenie zostavy

Open source pomáha iba vtedy, ak kód, ktorý používate, je kód, ktorý bol zverejnené. Nymchat je postavený deterministicky, takže si to môžete skontrolovať sami zvnútra aplikácie alebo z terminálu.

Reprodukovateľné zostavy

Vytvorenie aplikácie vydáva a build-manifest.json obsahujúci zdrojový commit, a SHA-256 hash každého poskytnutého podkladu HTML, JavaScript a CSS a jedného bundleHash nad celým týmto súborom aktív.

Výstup závisí len od zdrojového obsahu – dokonca aj zaznamenaný čas zostavenia je časovú pečiatku odovzdania namiesto momentu spustenia zostavy – takže ktokoľvek prebuduje to isté commit dostane bajtovo identické súbory a to isté bundleHash.

Akcia GitHub potom prebuduje každý záväzok nezávisle a podpíše pôvod zostavenia atestácie pre hash a manifest, takže existuje podpísaný záznam viažuci a bundleHash na odovzdanie v úložisku, vytvorené niečím iným ako nasadenie.

Čo kontroluje dialógové okno Informácie

O v hlavičke spustí kontrolu naživo vo vašom prehliadači.

Dialógové okno O Nymchat, ktoré zobrazuje verziu, integritu zostavy a stav záruky.
Dialógové okno Informácie: verzia, integrita zostavy, záruka a priama linka na vývojára.

Znova načítava každé aktívum, na ktorom je stránka skutočne spustená, hašuje ho pomocou rozhrania Web Crypto API a porovnáva s manifestom. Potom – a to je tá časť, na ktorej záleží – to prepočítava bundleHash z hashov to len vypočítané, nie z čokoľvek, čo manifest tvrdí, a vyhľadá to v podpísaných atestáciách úložiska cez GitHub API.

To je to, čo bráni nasadeniu ručiť za seba: obsluhovať upravené súbory spolu s zodpovedajúci manifest stále zlyhá, pretože prepočítaný hash nemá žiadne osvedčenie.

StavProstriedky
&skontrolovať; Overená oficiálna aplikácia (n/n)Každé aktívum sa zhoduje, prepočítaný haš zväzku je potvrdený úložiskom, a stránka je obsluhovaná z oficiálnej domény.
⚠ Overená zostava · nie je oficiálnou aplikáciouKód je pravý a overený, ale toto je zrkadlo na inej doméne. Zrkadlo nemôže odstrániť toto varovanie bez neúspešného overenia.
✗ NesúladAktívum nehašuje to, čo hovorí manifest.
✗ Neoficiálne zostaveniePrepočítaný haš zväzku nemá žiadne potvrdenie z úložiska – vlastný manifest.
⚠ Miesto pôvodu je nedosiahnuteľnéRozhranie GitHub API sa nepodarilo dosiahnuť, takže atestáciu nebolo možné skontrolovať ani v jednom prípade.

Overte si to sami

Obnovte názvy dialógov o odovzdaní a porovnajte:

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

Vytlačený hash by sa mal zhodovať s hashom v dialógovom okne About aj s hashom v tomto odovzdaní zhrnutie chodu výroby a výroby. Podpis môžete skontrolovať aj priamo pomocou GitHub CLI:

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

Oprávnený kanárik

Warrant kanárik je vyhlásenie zverejnené podľa pevného harmonogramu, ktoré má developer nie dostali tajný vládny príkaz, ktorý je zakázané zverejniť — a Národný bezpečnostný list, príkaz FISA. Vývojár môže byť nútený mlčať takýto príkaz, ale nemožno ho prinútiť klamať, takže kanárik zatuchne alebo zmizne samotný signál.

Žije v canary.json v koreňovom adresári úložiska a načítava sa priamo z GitHub, takže jeho história je auditovateľná nezávisle od toho, čo hovorí nasadená stránka. Dialógové okno Informácie ho farebne odlíši:

FarbaProstriedky
Zelená — všetko jasnéPodpísané, aktuálne a podpis sa zhoduje s kľúčom vývojára. Nebol prijatý žiadny tajný príkaz.
Žltá — po lehote splatnosti alebo nie je všetko jasnéNebolo obnovené podľa uvedeného dátumu alebo jeho allClear vlajka je falošná. Nie je možné vylúčiť umlčanie objednávky.
Červená — neplatný podpis alebo prečPodpis sa nezhoduje s kľúčom vývojára alebo bol súbor úplne odstránený. Berte to ako vážne varovanie.

Kotva čerstvosti

Podpísaný kanárik vkladá najnovšiu výšku bitcoinového bloku a hash v momente podpisu. Tento hash nemohol byť známy skôr, ako blok existoval, čo dokazuje, že kanárik ním bol podpísané po v konkrétnom časovom okamihu, a nie vopred hromadne podpísané mesiace skôr. Dialógové okno Informácie spája kotvu s prieskumníkom blokov, aby ste ju mohli skontrolovať.