Saltatu edukira
Itzuli Nymchat-era

Ezagutza oinarria Kaputxa azpian

Eraikuntza egiaztatzea

Kode irekiak exekutatzen ari zaren kodea zen kodea bada bakarrik laguntzen du argitaratua. Nymchat modu deterministikoan eraikita dago, zuk zeuk egiaztatu ahal izateko, barrutik aplikazioa edo terminal batetik.

Eraikuntza erreproduzigarriak

Aplikazioa eraikitzeak a igortzen du build-manifest.json iturburu-konpromisoa duena, a Hornitutako HTML, JavaScript eta CSS aktibo bakoitzaren SHA-256 hash eta bakarra bundleHash aktibo multzo osoaren gainean.

Irteera iturburu-edukiaren araberakoa da soilik - grabatutako eraikuntza-denbora ere bada commit-en denbora-zigilua, eraikuntza exekutatu zen unea baino, beraz, edonork berdina berreraikitzen du commit-ek byte-berdinak diren fitxategiak eta berdinak lortzen ditu bundleHash.

Gero, GitHub Ekintza batek konpromiso bakoitza modu independentean berreraikitzen du eta eraikuntza-jatorria sinatzen du hash-aren eta manifestuaren egiaztagiriak, beraz, a lotzen duen erregistro sinatutako bat dago bundleHash biltegiko konpromezu bati, ez beste zerbaitek ekoitzitakoa hedapena.

Honi buruz elkarrizketa-koadroak egiaztatzen duena

Buruz goiburuan egiaztapena zuzenean exekutatzen da, zure arakatzailean.

Nymchat-i buruz elkarrizketa-koadroa, bertsioa, eraikitzeko osotasuna eta kanari-egoera bermatzen dituena.
Honi buruz elkarrizketa-koadroa: bertsioa, eraikitzeko osotasuna, canary bermatu eta garatzailearekiko zuzeneko lerroa.

Orrialdeak exekutatzen ari den aktibo bakoitza berriro lortzen du, hashes egiten du Web Crypto APIarekin eta manifestuarekin alderatzen du. Orduan, eta hau da axola duena birkalkulatzen du bundleHash hasheetatik hura kalkulatu besterik ez dago, ez Manifestuak aitortzen duen edozer gauza, eta hori biltegiko sinatutako egiaztagirietan bilatzen du GitHub APIaren bidez.

Hori da inplementazio batek bere burua ziurtatzeari uzten diona: aldatutako fitxategiak batera hornitzea bat datorren manifestu batek huts egiten du oraindik, birkalkulatutako hashak ez duelako egiaztagiririk.

EgoeraBitartekoak
& egiaztatu; Egiaztatutako aplikazio ofiziala (z/g)Aktibo bakoitza bat dator, birkalkulatutako sorta hash-a biltegiak egiaztatzen du, eta orrialdea domeinu ofizialetik hornitzen da.
⚠ Egiaztatutako eraikuntza · ez da aplikazio ofizialaKodea benetakoa eta egiaztatua da, baina hau beste domeinu bateko ispilua da. Ispilu batek ezin du abisu hau kendu egiaztapena huts egin gabe.
✗ Bat ez datozenakAktibo batek ez du hash egiten manifestuak dioenarekin.
✗ Eraikuntza ez-ofizialaBirkalkulatutako sorta hash-ak ez du biltegiaren egiaztapenik - norberak egindako manifestua.
⚠ Jatorria iritsi ezinaEzin izan da GitHub APIra iritsi, beraz, egiaztagiria ezin izan da egiaztatu.

Zuk zeuk egiaztatzea

Berreraiki ezazu Honi buruz elkarrizketa-izenak eta alderatu:

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

Inprimatutako hashak Honi buruz elkarrizketa-koadrokoarekin eta konpromiso horretakoarekin bat etorri behar du eraikitze-jatorrizko exekuzioaren laburpena. Sinadura zuzenean ere egiaztatu dezakezu GitHub CLI-rekin:

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

Android eta iOS aplikazioak

Goiko egiaztapena web-aplikazioaren egiaztapena da, eta arrazoia argi eta garbi adieraztea merezi du: jatorrizko aplikazioa ezin du bere buruari gauza bera egin. Zure telefonoan exekutatzen dena konpilatutako makina kodea da, ez iturburua biltegian, eta aplikazioak gailuan kalkulatu dezakeen ezer ez du horrekin erlazionatzen beste.

Android-ek hurrengo gauza onena egin dezake. Instalatutakoa .apk aplikazioak irakur dezakeen fitxategi bat da eta hash, eta argitaratutako argitalpen bakoitzaren hash-a dagoeneko publikoa da: argitaratzea Zapstore APK-ren SHA-256 eta bere sinadura-ziurtagiria SHA-256 dituen Nostr-en gertaera bat sinatzen du. Beraz, Android Buruz elkarrizketa-koadroak exekutatzen ari den APK hashes egiten du, sinatutakoak lortzen ditu gertaerak, garatzailearen giltzak sinatutakoak bakarrik gordetzen ditu eta konparatzen ditu. Bi erakusten ditu hashak ere bai, gailuan egiaztapena errepikatu ahal izateko: deskargatu argitaratutako APK, exekutatu sha256sum gainean, eta begiratu gertaera bera.

Google Play-tik instalatutako aplikazio bat ezin da modu honetan egiaztatu, eta ez da zerbait gaizki dagoen adierazle bat. Googlek igotzen den bakoitzari bere gakoarekin berriro sinatzen dio eta gaili bakoitzterako APK ezberdin bat eraikitzen du, beraz, zure telefonoan sartzen dena ez da programatzaileak sortu zuen fitxategia eta bere hashak ez du argitaratuta egon daitekeen ezerrekin bat etan. Aplikazioak Play instalazio bat ezagutzen du eta hori dio, ez errore bat jakinarazi beharrean. Eraikuntza bat berak egiaztatu nahi baduzu, zuzenean argitaratutako APKa instalatu.

iOS ezin da batere egiaztatu. Apple-k deskarga bakoitza enkriptatu eta berriro sinatzen du banaka, beraz, zure iPhonean kalkulatutako hash bat zure iPhonerako bakarra da eta ez dator bat ezer edonon argitaratua. Honi buruz elkarrizketa-koadroak hori argi eta garbi esaten du lasaigarri bat erakutsi beharrean ezer esan nahi ez duen egoera. Nymchat bat nahi baduzu Apple hardwarean egiaztatu dezakezu, erabili weba aplikazioa, exekutatzen ari den fitxategi guztiak egiaztatzen dituena.

Honek ezerk frogatzen ez duena

Aplikazio batek bere kabuz exekutatzen duen egiaztapenak ezin du frogatu aplikazioa zintzoa denik, nork aldatu duen txekea ere kendu lezake. Frogatzen duena kasu arrunta da: kopiatu duzula instalatuta argitaratu den kopia da. Hori izateak balio duelako merezi du alderaketak publikoak dira, beraz, zu ez den norbaitek egiaztatu ahal izango ditu, eta ez dago ados.

Agindu kanarioa

Berme-kanarioa sustatzaileak duen adierazpen bat da, ordutegi finko batean argitaratua ez gobernu-agindu sekretu bat jaso zuten debekatuta dago zabaltzea - a Segurtasun Nazionaleko Gutuna, FISA agindua. Garatzailea isilik egotera behartu daiteke agindu hori, baina ezin da gezurra derrigortu, beraz, kanarioa zaharkituta edo desagertzen ari da. bera seinalea.

Bertan bizi da canary.json biltegiaren erroan eta zuzenean lortzen da GitHub-etik, beraz, bere historia ikuskagarria da zabaldutako guneak dioenaren arabera. Honi buruz elkarrizketa-koadroak kolorez adierazten du:

KoloreaBitartekoak
Berdea - dena argiSinadura, egungoa eta sinadura garatzailearen gakoarekin bat datoz. Ez da sekretu agindurik jaso.
Horia — atzeratua, edo ez dena argiEz zen freskatu adierazitako datarekin, edo bere allClear bandera faltsua da. Isilarazitako agindua ezin da baztertu.
Gorria — sinadura baliogabea edo desagertu egin daSinadura ez dator bat garatzailearen gakoarekin, edo fitxategia guztiz kendu da. Tratatu hau abisu larri gisa.

Freskotasunaren aingura

Sinatutako kanarioak Bitcoin blokearen azken altuera eta hash txertatzen ditu sinatzeko unean. Hash hori ezin zen ezagutu blokea existitu baino lehen, eta horrek frogatzen du kanarioa zela sinatua ondoren une zehatz bat hilabete lehenago aurrez sinatu beharrean. Honi buruz elkarrizketa-koadroak aingura bloke-esploratzaile batekin lotzen du, egiazta dezazun.