Zināšanu bāze Zem pārsega
Konstrukcijas pārbaude
Atvērtais kods palīdz tikai tad, ja jūsu darbinātais kods ir tāds pats kods, kāds bija publicēts. Nymchat ir izveidots deterministiski, lai jūs varētu to pārbaudīt pats, no iekšpuses lietotnē vai no termināļa.
Ērtības labad šī lapa ir mašīntulkota. Piemērotā versija ir oriģināls angļu valodā.
Reproducējamas konstrukcijas
Lietojumprogrammas izveide rada a build-manifest.json kas satur avota apņemšanos, a
SHA-256 jaukšana katram rādītajam HTML, JavaScript un CSS īpašumam un vienam
bundleHash visā aktīvu komplektā.
Izvade ir atkarīga tikai no avota satura — pat reģistrētais izveides laiks ir
commit laika zīmogs, nevis brīdis, kad tika palaists būvējums — tātad ikviens, kurš pārbūvē to pašu
commit iegūst baitiem identiskus failus un to pašu bundleHash.
Pēc tam GitHub darbība pārbūvē katru apņemšanos atsevišķi un paraksta būvēšanas izcelsmi
apliecības par hash un manifestu, tāpēc ir parakstīts ieraksts, kas piesaista a
bundleHash saistību izpildei repozitorijā, ko veido kaut kas cits, nevis
izvietošana.
Kas tiek pārbaudīts dialoglodziņā Par
Par galvenē palaiž pārbaudi tiešraidē jūsu pārlūkprogrammā.
Tas atkārtoti ienes katru līdzekli, ko lapa faktiski darbojas, sajauc to ar Web Crypto API un
salīdzina ar manifestu. Tad — un šī ir svarīgākā daļa — tas
pārrēķina bundleHash no hashēm to tikai aprēķināts, nevis no
viss, ko apgalvo manifests, un to meklē repozitorija parakstītajos apliecinājumos
izmantojot GitHub API.
Tas neļauj izvietošanai galvot par sevi: modificēto failu apkalpošana kopā ar atbilstošs manifests joprojām neizdodas, jo pārrēķinātajam hash nav apstiprinājuma.
| Statuss | Līdzekļi |
|---|---|
| ✓ Verificēta oficiālā lietotne (n/n) | Katrs līdzeklis atbilst, repozitorijs apstiprina pārrēķināto paketes hash, un lapa tiek apkalpota no oficiālā domēna. |
| ⚠ Verificēta versija · nav oficiālā lietotne | Kods ir īsts un apstiprināts, taču tas ir spogulis citā domēnā. Spogulis nevar noņemt šo brīdinājumu bez pārbaudes. |
| ✗ Neatbilstība | Līdzeklis nesakrīt ar manifestā teikto. |
| ✗ Neoficiāla konstrukcija | Pārrēķinātajam paketes hash nav apliecinājuma no repozitorija — paštaisīta manifesta. |
| ⚠ Izcelsme nav sasniedzama | GitHub API nevarēja sasniegt, tāpēc apliecinājumu nevarēja pārbaudīt nevienā veidā. |
Pārbaudi pats
Atkārtoti izveidojiet apņemšanās dialoglodziņa Par nosaukumus un salīdziniet:
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>"
Drukātajam jaucējam ir jāatbilst gan dialoglodziņā Par, gan tam, kas norādīts šajā saistībā būvēt-izcelsmes palaišanas kopsavilkums. Varat arī pārbaudīt parakstu tieši, izmantojot GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Android un iOS lietotnes
Iepriekš minētā pārbaude ir tīmekļa lietotņu pārbaude, un iemesls ir skaidri jānorāda: vietējā lietotne nevar izdarīt to pašu ar sevi. Tas, kas darbojas jūsu tālrunī, ir kompilēts mašīnas kods, nevis avots repozitorijā, un nekas, ko lietotne var aprēķināt ierīcē, nav saistīts ar cits.
Android var paveikt nākamo labāko. Uzstādītais .apk ir fails, ko lietotne var lasīt
un jaucējkods, un katra publicētā laidiena jaucējkods jau ir publisks: publicēšana vietnē
Zapstore
paraksta Nostr notikumu, kurā ir APK SHA-256 un tā parakstīšanas sertifikāta SHA-256. Tātad
Android Par dialoglodziņš sajauc APK, no kura tas darbojas, un ienes parakstītos
notikumus, saglabā tikai tos, kas parakstīti ar izstrādātāja atslēgu, un salīdzina. Tas parāda divus
arī jaucējkrānus, lai jūs varētu atkārtot pārbaudi no ierīces: lejupielādējiet publicēto APK, palaidiet
sha256sum uz to un aplūkojiet to pašu notikumu.
Šādā veidā nevar pārbaudīt lietotni, kas instalēta no pakalpojuma Google Play, un tas nav zīme, ka kaut kas ir nepareizi. Google atkārtoti paraksta katru augšupielādi ar savu atslēgu un izveido atsevišķu APK katrai ierīcei, tāpēc tas, kas nokrīt uz jūsu tālruņa, nav izstrādātāja ražotais fails un tā hash neatbilst nekam, kas varētu tikt publicēts. lietotne atpazīst Play instalāciju un saka tā, nevis ziņo par neveiksmi.
iOS vispār nevar pārbaudīt. Apple šifrē un atkārtoti paraksta katru lejupielādi atsevišķi, tāpēc jūsu iPhone tālrunī aprēķinātais jaukums ir unikāls jūsu iPhone tālrunim un nekam neatbilst publicēts jebkur. Dialoglodziņā Par to ir teikts tieši, nevis pārliecinoši statuss, kas neko nenozīmē. Ja vēlaties Nymchat, kuru varat pārbaudīt, izmantojot Apple aparatūru, izmantojiet tīmekli lietotni, kas pārbauda katru failu, kas tajā darbojas.
Pārbaude, ko lietotne darbojas pati par sevi, nevar pierādīt, ka lietotne ir godīga — neatkarīgi no tā, kurš to ir mainījis varētu noņemt arī čeku. Tas pierāda parasts gadījums: ka jūs kopē instalēta ir publicētā kopija. Tas ir tā vērts, jo cilvēki to novērtē salīdzinājumi ir publiski, tāpēc kāds cits, nevis jūs, var tos pārbaudīt un nepiekrist.
Garantijas kanārijputniņš
Garantija ir izstrādātāja paziņojums, kas publicēts pēc noteikta grafika nē saņēma slepenu valdības rīkojumu, kuru viņiem aizliegts izpaust — a Nacionālās drošības vēstule, FISA rīkojums. Izstrādātājs var būt spiests klusēt tāda kārtība, bet nevar piespiest melot, tāpēc kanārijputniņš iet nost vai pazūd ir pats signāls.
Tas dzīvo iekšā canary.json repozitorija saknē un tiek iegūts tieši
no GitHub, tāpēc tās vēsturi var pārbaudīt neatkarīgi no tā, ko saka izvietotā vietne.
Dialoglodziņā Par to ir norādīts krāsu kods:
| Krāsa | Līdzekļi |
|---|---|
| Zaļš - viss skaidrs | Parakstīts, pašreizējais un paraksts atbilst izstrādātāja atslēgai. Neviens slepens pasūtījums nav saņemts. |
| Dzeltens — nokavēts vai ne viss skaidrs | Tas netika atsvaidzināts pēc norādītā datuma vai tā allClear karogs ir nepatiess. Nevar izslēgt klusu pasūtījumu. |
| Sarkans — nederīgs paraksts vai pazudis | Paraksts neatbilst izstrādātāja atslēgai, vai fails ir pilnībā noņemts. Uztveriet to kā nopietnu brīdinājumu. |
Svaiguma enkurs
Parakstītais kanārijputniņš iegulst jaunāko Bitcoin bloka augstumu un hash parakstīšanas brīdī. Šis hash nevarēja būt zināms pirms bloka pastāvēšanas, kas pierāda, ka kanārijputniņš bija parakstīts pēc konkrēts brīdis, nevis iepriekš parakstīts vairumā mēnešus iepriekš. Dialoglodziņā Par enkuru tiek piesaistīts bloku pārlūkam, lai jūs varētu to pārbaudīt.