База на знаење Под хаубата
Потврдување на изградбата
Отворениот код помага само ако кодот што го извршувате е кодот што беше објавено. Nymchat е изграден детерминистички за да можете сами да го проверите тоа, од внатре апликација или од терминал.
Оваа страница е машински преведена за погодност. Англискиот оригинал е верзијата што се применува.
Репродуктивни градби
Градењето на апликацијата емитува a build-manifest.json што ја содржи изворната заложба, а
SHA-256 хаш на секој сервиран HTML, JavaScript и CSS средство и едно
bundleHash над целиот тој сет на средства.
Излезот зависи само од изворната содржина - дури и снименото време за градење е
временскиот печат на commit наместо моментот кога работи изградбата - така што секој што ќе го обнови истото
commit добива датотеки со идентични бајти и истото bundleHash.
Потоа, GitHub Action ја обновува секоја заложба независно и потпишува build-provenance
атестации за хашот и манифестот, така што постои потпишан запис кој врзува a
bundleHash на заложба во складиштето, произведена од нешто друго освен од
распоредување.
Што проверува дијалогот About
За во заглавјето се извршува проверката во живо, во вашиот прелистувач.
Повторно го презема секое средство што страницата всушност го работи, го хашира со Web Crypto API и
споредува против манифестот. Тогаш - и ова е делот што е важен - тоа
повторно го пресметува bundleHash од хашите тоа само пресметано, не од
сè што тврди манифестот и тоа го бара во потпишаните потврди на складиштето
преку GitHub API.
Тоа е она што го спречува распоредувањето да се гарантира за себе: сервирање на изменети датотеки заедно со манифестот што се совпаѓа сè уште не успева, бидејќи повторно пресметаниот хаш нема атест.
| Статус | Средства |
|---|---|
| &провери; Потврдена официјална апликација (n/n) | Секое средство се совпаѓа, хашот на повторно пресметаниот пакет е потврден од складиштето, и страницата се сервира од официјалниот домен. |
| ⚠ Потврдена верзија · не е официјална апликација | Кодот е оригинален и потврден, но ова е огледало на друг домен. Огледалото не може да го отстрани ова предупредување без неуспешна потврда. |
| ✗ Несовпаѓање | Средството не се хашира со она што го кажува манифестот. |
| ✗ Неофицијална градба | Повторно пресметаниот хаш на пакетот нема потврда од складиштето - манифест направен самостојно. |
| ⚠ Потеклото е недостапно | Не можеше да се достигне GitHub API, така што атестирањето не можеше да се провери на ниту еден начин. |
Потврдете го сами
Повторно изградете ги имињата на дијалогот за commit и споредете:
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>"
Испечатениот хаш треба да одговара и на оној во дијалогот About и на оној во тој заложба резиме на изведба на изведба. Можете исто така да го проверите потписот директно со GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Налогот канаринци
Налог канари е изјава, објавена на фиксен распоред, што ја има инвеститорот не добиле тајна владина наредба која им е забрането да ја објават - а Писмо за национална безбедност, наредба на ФИСА. Инвеститорот може да биде принуден да молчи таква наредба, но не може да се принуди да лаже, па затоа канаринот застоел или исчезнува е самиот сигнал.
Живее во canary.json во коренот на складиштето и се зема директно
од GitHub, така што неговата историја може да се ревидира независно од тоа што вели распоредената локација.
Дијалогот About го шифрира со боја:
| Боја | Средства |
|---|---|
| Зелена - се е јасно | Потпишаниот, тековниот и потписот се совпаѓаат со клучот на развивачот. Не е добиена тајна наредба. |
| Жолта - задоцнето, или не е јасно | Тоа не беше освежено од неговиот наведен датум, или неговиот allClear знамето е лажно. Не може да се исклучи замолчената наредба. |
| Црвено — неважечки потпис или исчезна | Потписот не се совпаѓа со клучот на развивачот или датотеката е целосно отстранета. Третирајте го ова како сериозно предупредување. |
Сидро за свежина
Потпишаниот канаринец ја вградува најновата висина на блокот на Биткоин и хаш во моментот на потпишување. Тој хаш не можеше да се знае пред да постои блокот, што докажува дека канаринецот бил потпишан после специфична временска точка наместо претходно потпишана на големо неколку месеци порано. Дијалогот About го поврзува сидрото со блок-истражувач за да можете да го проверите.