База знања Испод хаубе
Верификација израде
Отворени код помаже само ако је код који користите онај који је био објављено. Нимцхат је изграђен детерминистички тако да то можете сами да проверите изнутра апликације или са терминала.
Ова страница је машински преведена ради практичности. Енглески оригинал је верзија која се примењује.
Репродуцибилне грађе
Изградња апликације емитује а build-manifest.json који садржи изворно урезивање, а
СХА-256 хеш сваког испорученог ХТМЛ, ЈаваСцрипт и ЦСС елемента и појединачно
bundleHash преко целог скупа средстава.
Излаз зависи само од изворног садржаја — чак је и забележено време израде
временска ознака урезивања, а не тренутак када је изградња покренута — тако да свако ко поново прави исту
цоммит добија датотеке идентичне бајтовима и исте bundleHash.
ГитХуб Акција затим поново гради сваки урезивање независно и потписује порекло
потврде за хеш и манифест, тако да постоји потписани запис који везује а
bundleHash на урезивање у спремишту, произведено нечим другим осим
распоређивање.
Шта проверава дијалог О
Абоут у заглављу покреће проверу уживо, у вашем претраживачу.
Поново преузима свако средство које страница заправо ради, хешира га са Веб Црипто АПИ-јем и
упоређује са манифестом. Онда - и ово је део који је важан - то
поново израчунава bundleHash од хашиша то само израчунато, а не из
све што манифест тврди, и тражи то у потписаним атестима складишта
преко ГитХуб АПИ-ја.
То је оно што спречава примену да гарантује за себе: послуживање модификованих датотека заједно са манифест подударања и даље не успева, јер поново израчунати хеш нема атест.
| Статус | Средства |
|---|---|
| &цхецк; Верификована званична апликација (н/н) | Свако средство се поклапа, поново израчунати хеш пакета је потврђен од стране спремишта, и страница се сервира са званичног домена. |
| ⚠ Верификована верзија · није званична апликација | Код је оригиналан и атестиран, али ово је огледало на другом домену. Огледало не може да уклони ово упозорење без неуспешне верификације. |
| ✗ Неподударање | Имовина се не хешује са оним што каже манифест. |
| ✗ Незванична израда | Поново израчунати хеш пакета нема потврду из спремишта — манифест који је сам направио. |
| ⚠ Недоступно порекло | ГитХуб АПИ није могао бити доступан, тако да се атестација није могла проверити ни на један начин. |
Потврдите сами
Поново направите урезивање имена дијалога Абоут и упоредите:
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>"
Одштампани хеш треба да се подудара и са оним у дијалогу Абоут и са оним у том урезивању буилд-провенанце рун суммари. Такође можете проверити потпис директно помоћу ГитХуб ЦЛИ:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Канаринац за потерницу
Налог канаринца је изјава, објављена по фиксном распореду, коју има програмер не примили тајну владину наредбу коју им је забрањено открити — а Писмо о националној безбедности, наредба ФИСА. Програмер може бити приморан да ћути такав поредак, али не може бити приморан да лаже, тако да канаринац устајао или нестао јесте сам сигнал.
Живи у canary.json у корену спремишта и директно се преузима
са ГитХуб-а, тако да се његова историја може ревидирати независно од тога шта распоређени сајт каже.
Дијалог О томе означава га бојама:
| Боја | Средства |
|---|---|
| Зелена — све јасно | Потписано, актуелно и потпис одговара кључу програмера. Није примљено никакво тајно наређење. |
| Жута — касни, или није све јасно | Није освежено ни до наведеног датума, нити до његовог allClear застава је лажна. Не може се искључити прећутано наређење. |
| Црвени — неважећи потпис, или нестао | Потпис се не подудара са кључем програмера или је датотека у потпуности уклоњена. Третирајте ово као озбиљно упозорење. |
Сидро свежине
Потписани канаринац уграђује најновију висину Битцоин блока и хеш у тренутку потписивања. Тај хеш није могао бити познат пре него што је блок постојао, што доказује да је канаринац био потписан после одређеном тренутку, а не унапред потписаним у групи месецима раније. Дијалог Абоут повезује сидро са истраживачем блокова тако да можете да га проверите.