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

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 nkɔmmɔbɔ no kɔla-kɔde no:

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.