Langkau ke kandungan
Kembali ke Nymchat

Pangkalan pengetahuan Di bawah tudung

Mengesahkan binaan

Sumber terbuka hanya membantu jika kod yang anda jalankan ialah kod yang digunakan diterbitkan. Nymchat dibina secara deterministik supaya anda boleh menyemaknya sendiri, dari dalam apl atau daripada terminal.

Binaan yang boleh dihasilkan semula

Membina aplikasi mengeluarkan a build-manifest.json mengandungi komit sumber, a Cincang SHA-256 bagi setiap aset HTML, JavaScript dan CSS yang disajikan, dan satu bundleHash atas keseluruhan set aset itu.

Output hanya bergantung pada kandungan sumber — walaupun masa binaan yang direkodkan ialah cap masa commit dan bukannya saat binaan dijalankan — jadi sesiapa yang membina semula perkara yang sama commit mendapat fail yang sama bait dan sama bundleHash.

Tindakan GitHub kemudian membina semula setiap commit secara bebas dan menandatangani build-provenance pengesahan untuk cincang dan manifes, jadi terdapat rekod yang ditandatangani yang mengikat a bundleHash kepada komit dalam repositori, dihasilkan oleh sesuatu selain daripada penempatan.

Perkara yang disemak oleh dialog Perihal

Tentang dalam pengepala menjalankan semakan secara langsung, dalam penyemak imbas anda.

Dialog Nymchat About, menunjukkan versi, membina integriti dan menjamin status kenari.
Dialog Perihal: versi, bina integriti, waran kenari dan talian terus kepada pembangun.

Ia mengambil semula setiap aset yang halaman sebenarnya sedang dijalankan, mencincangnya dengan Web Crypto API, dan membandingkan dengan nyata. Kemudian - dan ini adalah bahagian yang penting - ia mengira semula bundleHash daripada cincang ia hanya dikira, bukan dari apa sahaja yang dituntut oleh manifes, dan mencarinya dalam pengesahan yang ditandatangani repositori melalui API GitHub.

Itulah yang menghalang penggunaan daripada menjamin dirinya sendiri: menyampaikan fail yang diubah suai bersama-sama dengan manifes yang sepadan masih gagal, kerana cincang yang dikira semula tidak mempunyai pengesahan.

StatusBermakna
&semak; Apl rasmi yang disahkan (n/n)Setiap aset sepadan, cincangan berkas yang dikira semula disahkan oleh repositori, dan halaman dihidangkan daripada domain rasmi.
⚠ Binaan yang disahkan · bukan apl rasmiKod ini tulen dan disahkan, tetapi ini adalah cermin pada domain lain. Cermin tidak boleh mengalih keluar amaran ini tanpa gagal pengesahan.
✗ Tidak padanAset tidak mencincang apa yang dinyatakan oleh manifes.
✗ Binaan tidak rasmiCincang bundle yang dikira semula tidak mempunyai pengesahan daripada repositori - manifes yang dibuat sendiri.
⚠ Asal tidak dapat dicapaiAPI GitHub tidak dapat dicapai, jadi pengesahan tidak boleh disemak sama ada.

Mengesahkan sendiri

Bina semula komit nama dialog Perihal dan bandingkan:

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

Cincang yang dicetak harus sepadan dengan kedua-dua dalam dialog Perihal dan satu dalam komit itu ringkasan run build-provenance. Anda juga boleh menyemak tandatangan secara langsung dengan GitHub CLI:

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

kenari waran

Penari waran ialah penyata, diterbitkan pada jadual tetap, yang dimiliki oleh pemaju bukan menerima perintah rahsia kerajaan mereka dilarang untuk mendedahkan - a Surat Keselamatan Negara, perintah FISA. Pembangun boleh dipaksa untuk berdiam diri perintah sedemikian, tetapi tidak boleh dipaksa untuk berbohong, jadi kenari akan basi atau hilang adalah isyarat itu sendiri.

Ia tinggal di canary.json di akar repositori dan diambil secara langsung daripada GitHub, jadi sejarahnya boleh diaudit secara bebas daripada apa sahaja yang dikatakan tapak yang digunakan. Kod warna dialog Perihal itu:

warnaBermakna
hijau - semua jelasDitandatangani, semasa dan tandatangan sepadan dengan kunci pembangun. Tiada pesanan rahsia diterima.
kuning — tertunggak, atau tidak semuanya jelasIa tidak dimuat semula mengikut tarikh yang dinyatakan, atau tarikhnya allClear bendera adalah palsu. Perintah yang disenyapkan tidak boleh diketepikan.
merah — tandatangan tidak sah, atau hilangTandatangan tidak sepadan dengan kunci pembangun, atau fail telah dialih keluar sepenuhnya. Anggap ini sebagai amaran yang serius.

Penambat kesegaran

Kenari yang ditandatangani membenamkan ketinggian dan cincang blok Bitcoin terkini pada saat menandatangani. Hash itu tidak mungkin diketahui sebelum blok itu wujud, yang membuktikan kenari itu ditandatangani selepas titik masa tertentu dan bukannya ditandatangani secara pukal beberapa bulan lebih awal. Dialog Perihal memautkan sauh kepada penjelajah blok supaya anda boleh menyemaknya.