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.
Halaman ini diterjemahkan mesin untuk kemudahan. Versi asal bahasa Inggeris ialah versi yang digunakan.
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.
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.
| Status | Bermakna |
|---|---|
| &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 rasmi | Kod ini tulen dan disahkan, tetapi ini adalah cermin pada domain lain. Cermin tidak boleh mengalih keluar amaran ini tanpa gagal pengesahan. |
| ✗ Tidak padan | Aset tidak mencincang apa yang dinyatakan oleh manifes. |
| ✗ Binaan tidak rasmi | Cincang bundle yang dikira semula tidak mempunyai pengesahan daripada repositori - manifes yang dibuat sendiri. |
| ⚠ Asal tidak dapat dicapai | API 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:
| warna | Bermakna |
|---|---|
| hijau - semua jelas | Ditandatangani, semasa dan tandatangan sepadan dengan kunci pembangun. Tiada pesanan rahsia diterima. |
| kuning — tertunggak, atau tidak semuanya jelas | Ia tidak dimuat semula mengikut tarikh yang dinyatakan, atau tarikhnya allClear bendera adalah palsu. Perintah yang disenyapkan tidak boleh diketepikan. |
| merah — tandatangan tidak sah, atau hilang | Tandatangan 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.