Huruw kɔ emu nsɛm no so
San kɔ Nymchat so

Nimdeɛ a wɔde gyina so Wɔ hood no ase

Sɛ́ wobɛhwɛ sɛ ɔdansi no yɛ nokware

Open source boa sɛ code a woreyɛ no yɛ code a na ɛwɔ hɔ no nkutoo a a wotintimii. Wɔasi Nymchat deterministically sɛnea ɛbɛyɛ a wubetumi ahwɛ sɛ w’ankasa, afi mu app anaasɛ efi terminal bi so.

Nneɛma a wotumi san yɛ bio

Sɛ wokyekye app no ​​a, ɛma a build-manifest.json a ɛwɔ source commit no mu, a SHA-256 hash a ɛwɔ HTML, JavaScript ne CSS agyapade biara a wɔsom, ne biako bundleHash wɔ saa agyapade a wɔahyehyɛ no nyinaa so.

Output no gyina source content no nkutoo so — mpo recorded build time no ne commit's timestamp mmom sen bere a ɔdan no tuu mmirika — enti obiara a ɔresan asi saa ara commit nya fael a ɛne baiti yɛ pɛ ne nea ɛte saa ara bundleHash.

Afei GitHub Adeyɛ bi san kyekye commit biara a ɛde ne ho na ɛde ne nsa hyɛ build-provenance ase adansedie ma hash ne manifest no, enti kyerɛwtohɔ bi a wɔde wɔn nsa ahyɛ aseɛ a ɛkyekyere a bundleHash to a commit wɔ repository no mu, a biribi foforo a ɛnyɛ the deployment a wɔde di dwuma.

Nea About nkɔmmɔbɔ no hwɛ

Fa ho wɔ header no mu no, ɛyɛ check no live, wɔ wo browser no mu.

Nymchat About nkɔmmɔbɔ no, a ɛkyerɛ version no, si nokwaredi na ɛma canary tebea.
The About dialog: version, build integrity, warrant canary ne line tẽẽ kɔ developer no nkyɛn.

Ɛsan fa agyapadeɛ biara a krataafa no reyɛ adwuma ankasa, de Web Crypto API no hashes, na de toto nea ɛda adi no ho. Afei — na eyi ne ɔfã a ɛho hia — ɛno san de kɔmputa di dwuma wɔ bundleHash efi hashes no mu ɛno wɔabu akontaa kɛkɛ, ɛnyɛ nea efi mu biribiara a manifest no ka, na ɔhwehwɛ saa wɔ akorae no adansedi nkrataa a wɔde wɔn nsa ahyɛ ase no mu ɛnam GitHub API so.

Ɛno ne nea esiw deployment bi kwan sɛ ɛbɛhyɛ ne ho adanse: ɛsom fael a wɔasesa abom ne a matching manifest da so ara di nkogu, efisɛ hash a wɔasan asusuw ho no nni adanse biara.

GyinabeaKyerɛ sɛ
&hwɛ; Aban app a wɔagye atom (n/n) .Agyapadeɛ biara a ɛne no hyia, bundle hash a wɔasan asusuw ho no, akoraeɛ no di ho adanseɛ, . ne wɔde krataafa no fi aban domain no so na ɛsom.
⚠ Verified build · ɛnyɛ aban app noCode no yɛ nokware na wɔadi ho adanse, nanso eyi yɛ ahwehwɛ a ɛwɔ domain foforo so. Ahwehwɛ ntumi nyi kɔkɔbɔ yi mfi hɔ a entumi nyɛ nokware.
✗ Nsɛm a ɛnhyiaAgyapade bi ntumi nkɔ nea manifest no ka no so.
✗ Ɔdan a ɛnyɛ aban deBundle hash a wɔasan asusuw ho no nni adanse biara a efi akorae no mu — manifest a ɔno ankasa ayɛ.
⚠ Provenance a wontumi nkɔ hɔWɔantumi ankɔ GitHub API no so, enti wɔantumi anhwɛ adansedi no wɔ ɔkwan biara so.

W’ankasa wobɛhwɛ sɛ ɛyɛ nokware

San kyekye commit no About dialog din ahorow no na fa toto ho:

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

Ɛsɛ sɛ hash a wɔatintim no ne nea ɛwɔ About dialog no mu ne nea ɛwɔ saa commit no mu no nyinaa hyia build-provenance run nsɛm a wɔaboaboa ano. Wubetumi nso de GitHub CLI ahwɛ nsaano nkyerɛwee no tẽẽ:

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

Android ne iOS app ahorow no

Check a ɛwɔ atifi hɔ no yɛ web-app check, na ɛfata sɛ yɛka nea enti a ɛte saa no pefee: native app ntumi nyɛ ade koro no ara mma ne ho. Nea ɛkɔ so wɔ wo fon so no yɛ mfiri koodu a wɔaboaboa ano, ɛnyɛ... source wɔ repository no mu, na biribiara nni hɔ a app no betumi asusuw ho wɔ device no so a ɛde biako bata afoforo nso.

Android betumi ayɛ ade a edi hɔ a eye sen biara. Nea wɔde ahyɛ mu no .apk yɛ fael a app no betumi akenkan ne hash, na hash a ɛwɔ biribiara a wɔatintim a wɔayi no adi no yɛ baguam dedaw: publishing to the Zapstore ɔde ne nsa hyɛ Nostr adeyɛ bi ase a ɛkura APK no SHA-256 ne ne nsaano nkyerɛwee adansedi krataa no SHA-256. Enti na Android Fa ho dialog hashes APK a ɛretu mmirika afi mu, fa wɔn a wɔde wɔn nsa ahyɛ ase no nsɛm a esisi, de nea developer no safe de ne nsa ahyɛ ase nkutoo sie, na ɛde toto ho. Ɛkyerɛ abien no hashes nso, enti wubetumi asan ayɛ check off device no: twe APK a wɔatintim no, tu mmirika sha256sum so, na w’ankasa hwɛ adeyɛ koro no ara.

Wontumi nhwɛ app bi a wɔde afi Google Play so ahyɛ mu wɔ saa kwan yi so, na ɛnyɛ sɛ biribi ho nyɛ. Google de ne n'adesua so adi si n'adesua bio na ɔyɛ APK kɔtɔ kɔtɔ ma device biara, enti nea ɛba wo fon so nyɛ file a developer no yɛɛ no na ne hash no nso nnyɛ biribi a wɔbɛtumi ahyɛ aseɛ. App no hu sɛ Play na ɛde hyɛɛ aseɛ na ɛkyerɛ saa, na ɛnyɛ sɛ ɛkyerɛ sɛ ɛyɛɛ ɔkwan a ɛnnyɛ. Sɛ wopɛ sɛ wopɛ build no anom a, hyɛ APK a wɔahyɛ aseɛ no hyɛ wo fon so.

Wontumi nhwɛ iOS koraa. Apple de encrypt na ɛsan de ne nsa hyɛ download biara ase ankorankoro, enti hash a wɔabɔ ho kɔmputa wɔ wo iPhone so no yɛ soronko wɔ wo iPhone ho na ɛne biribiara nhyia a wotintimii wɔ baabiara. About nkɔmmɔbɔ no ka eyi pefee sen sɛ ɛbɛkyerɛ awerɛhyem gyinabea a ɛnkyerɛ hwee. Sɛ wopɛ Nymchat a wobɛtumi agye atom wɔ Apple hardware so a, fa wɛb no di dwuma app, a ɛyɛ hwɛ fael biara a ɛreyɛ adwuma.

Nea eyinom mu biara nkyerɛ sɛ ɛyɛ nokware

Check a app bi tu mmirika wɔ n’ankasa so no ntumi nkyerɛ sɛ app no yɛ nokware — obiara a ɔsesaa no betumi ayi check no nso afi hɔ. Nea ɛkyerɛ ne asɛm a ɛyɛ mpapahwekwa: sɛ copy wo installed ne copy a wotintimii no. Ɛno fata sɛ wunya efisɛ ɛsom bo compares yɛ baguam, enti obi foforo a ɔnyɛ wo betumi ahwɛ mu, na woampene so.

Na tumi krataa no canary

Warrant canary yɛ asɛm bi, a wotintim wɔ nhyehyɛe pɔtee bi so, a nea ɔyɛe no wɔ n nsa kaa aban ahyɛdeɛ bi a ɛwɔ kokoam a wɔabara wɔn sɛ wɔbɛda no adi — a Ɔman Ahobammɔ Krataa, FISA ahyɛde. Wobetumi ahyɛ nea ɔreyɛ no ma wayɛ komm wɔ ho ahyɛde a ɛte saa, nanso wontumi nhyɛ no sɛ onni atoro, enti canary a ɛrekɔ dedaw anaasɛ ɛyera no te saa ankasa ne sɛnkyerɛnne no.

Ɛte mu canary.json wɔ akorae no ntini mu na wɔfa no tẽẽ efi GitHub, enti n’abakɔsɛm yɛ auditable a ɛde ne ho fi nea deployed site no ka biara ho. About dialog no de kɔla-codes no di dwuma:

AhosuoKyerɛ sɛ
Ahabanmono — ne nyinaa mu da adiWɔde wɔn nsa ahyɛ aseɛ, mprempren, ne nsaano nkyerɛwee no ne developer no safoa hyia. Wɔn nsa nkaa kokoam ahyɛde biara.
Yɛlo — a ɛboro so, anaasɛ ɛnyɛ ne nyinaa mu da hɔWɔamfa da a wɔaka no, anaasɛ ne allClear frankaa yɛ atoro. Wontumi nnye ahyɛde a wɔayɛ komm ntom.
Kɔkɔɔ — nsaano nkyerɛwee a enni mu, anaasɛ akɔNsaano nkyerɛwee no ne developer no safoa no nhyia, anaasɛ wɔayi fael no afi hɔ koraa. Fa eyi sɛ kɔkɔbɔ a anibere wom.

Na freshness anchor no yɛ nea ɛyɛ foforo

Canary a wɔde wɔn nsa ahyɛ aseɛ no de Bitcoin block sorokɔ ne hash a ɛtwa toɔ no hyɛ mu wɔ berɛ a wɔde wɔn nsa ahyɛ aseɛ no. Anka wɔrentumi nhu saa hash no ansa na block no reba, a ɛkyerɛ sɛ na canary no te saa wɔde wɔn nsa ahyɛ ase wie a bere pɔtee bi sen sɛ wobedi kan de wɔn nsa ahyɛ ase wɔ dodow mu asram bi a atwam. About dialog no de anchor no bata block explorer ho sɛnea ɛbɛyɛ a wubetumi ahwɛ mu.