База ведаў Пад капотам
Праверка зборкі
Адкрыты зыходны код дапамагае толькі ў тым выпадку, калі код, які вы выкарыстоўваеце, гэта той самы код апублікавана. Nymchat пабудаваны дэтэрмінаваным чынам, так што вы можаце праверыць гэта самастойна, знутры прыкладання або з тэрмінала.
Для зручнасці гэтая старонка перакладзена машынай. Прымяняецца англійская арыгінал.
Узнаўляльныя зборкі
Стварэнне прыкладання вылучае a build-manifest.json які змяшчае зыходны фікс, a
Хэш SHA-256 кожнага абслугоўванага актыву HTML, JavaScript і CSS, а таксама асобнага
bundleHash над усім наборам актываў.
Выхад залежыць толькі ад зыходнага кантэнту - нават запісаны час зборкі з'яўляецца
пазнака часу фіксацыі, а не момант запуску зборкі - таму кожны, хто перабудоўвае тое ж самае
commit атрымлівае ідэнтычныя па байту файлы і тое ж самае bundleHash.
Затым дзеянне GitHub перабудоўвае кожнае фіксаванне незалежна і падпісвае паходжанне зборкі
атэстацыі для хэша і маніфеста, таму ёсць падпісаны запіс, які звязвае a
bundleHash да фіксацыі ў сховішчы, створанай чымсьці іншым, чым
разгортванне.
Што правярае дыялогавае акно "Аб".
Аб у загалоўку запускае праверку ў прамым эфіры ў вашым браўзеры.
Ён паўторна атрымлівае кожны актыв, на якім фактычна запушчана старонка, хэшуе яго з дапамогай Web Crypto API і
параўноўвае з маніфестам. Затым - і гэта частка, якая мае значэнне - гэта
пералічвае bundleHash з хэшаў гэта проста разлічваецца, а не з
усё, што сцвярджае маніфест, і шукае гэта ў падпісаных атэстацыях сховішча
праз API GitHub.
Вось што перашкаджае разгортванню паручыцца само за сябе: абслугоўванне змененых файлаў разам з адпаведны маніфест па-ранейшаму не атрымліваецца, таму што паўторна вылічаны хэш не мае атэстацыі.
| Статус | Сродкі |
|---|---|
| &праверыць; Праверанае афіцыйнае прыкладанне (н/н) | Кожны актыв супадае, перавылічаны хэш пакета пацверджаны рэпазіторыем, і старонка абслугоўваецца з афіцыйнага дамена. |
| ⚠ Правераная зборка · не з'яўляецца афіцыйным дадаткам | Код сапраўдны і зацверджаны, але гэта люстэрка ў іншым дамене. Люстэрка не можа выдаліць гэтае папярэджанне без праверкі. |
| ✗ Неадпаведнасць | Актывы не хэшуюць тое, што сказана ў маніфесце. |
| ✗ Неафіцыйная зборка | Паўторна вылічаны хэш пакета не мае атэстацыі з рэпазіторыя — гэта самаробны маніфест. |
| ⚠ Паходжанне недасяжнае | API GitHub недасяжны, таму атэстацыю немагчыма праверыць у любым выпадку. |
Правяраючы гэта самастойна
Аднавіце фіксацыю імёнаў дыялогавых вокнаў «Аб» і параўнайце:
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>"
Надрукаваны хэш павінен адпавядаць і таму, што ў дыялогавым акне «Аб праграме», і таму, што ёсць у гэтай фіксацыі рэзюмэ па паходжанні зборкі. Вы таксама можаце праверыць подпіс непасрэдна з GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Ордэрная канарэйка
Ордэрная канарэйка - гэта апублікаваная па фіксаваным графіку заява, якую мае распрацоўшчык не атрымалі сакрэтны ўрадавы загад, ім забаронена разгалошваць — а Ліст нацыянальнай бяспекі, загад FISA. Забудоўшчыка можна прымусіць маўчаць такі парадак, але нельга прымусіць хлусіць, таму канарэйка чэрствае або знікае сам сігнал.
Жыве ў canary.json у корані сховішча і атрымоўваецца непасрэдна
з GitHub, таму яго гісторыю можна правяраць незалежна ад таго, што сказана на разгорнутым сайце.
Дыялогавае акно "Аб" пазначае яго колерам:
| Колер | Сродкі |
|---|---|
| Зялёны — усё зразумела | Падпісана, актуальна, і подпіс адпавядае ключу распрацоўшчыка. Ніякага сакрэтнага загаду не паступала. |
| Жоўты — пратэрмінавана, ці не ўсё зразумела | Ён не быў абноўлены да заяўленай даты або яго allClear сцяг ілжывы. Нельга выключаць і замоўчаны загад. |
| Чырвоны — подпіс несапраўдны, або яго няма | Подпіс не супадае з ключом распрацоўшчыка, або файл быў цалкам выдалены. Успрымайце гэта як сур'ёзнае папярэджанне. |
Якар свежасці
Падпісаная канарэйка ўбудоўвае апошнюю вышыню блока біткойнаў і хэш на момант падпісання. Гэты хэш не мог быць вядомы да існавання блока, што даказвае, што канарэйка была падпісаны пасля канкрэтны момант часу, а не папярэдне падпісаныя масава месяцамі раней. Дыялогавае акно «Аб праграме» звязвае прывязку з правадыром блокаў, каб вы маглі праверыць яе.