Basis pengetahuan Di bawah tenda
Memverifikasi build
Open source hanya membantu jika kode yang Anda jalankan adalah kode yang tadinya diterbitkan. Nymchat dibuat secara deterministik sehingga Anda dapat memeriksanya sendiri, dari dalam aplikasi atau dari terminal.
Halaman ini diterjemahkan dengan mesin untuk kenyamanan. Versi asli bahasa Inggris adalah versi yang berlaku.
Bangunan yang dapat direproduksi
Membangun aplikasi menghasilkan a build-manifest.json berisi komit sumber, a
Hash SHA-256 dari setiap aset HTML, JavaScript, dan CSS yang disajikan, dan satu
bundleHash atas seluruh kumpulan aset itu.
Outputnya hanya bergantung pada konten sumber — bahkan waktu pembuatan yang tercatat pun demikian
stempel waktu komit, bukan saat pembangunan dijalankan - jadi siapa pun yang membangunnya kembali akan melakukan hal yang sama
commit mendapat file yang identik dengan byte dan hal yang sama bundleHash.
Tindakan GitHub kemudian membangun kembali setiap komitmen secara independen dan menandatangani asal pembangunan
pengesahan untuk hash dan manifes, sehingga ada catatan bertanda tangan yang mengikat a
bundleHash ke komit di repositori, dihasilkan oleh sesuatu selain
penyebaran.
Apa yang diperiksa oleh dialog Tentang
Tentang di header jalankan pemeriksaan langsung, di browser Anda.
Ini mengambil ulang setiap aset yang sebenarnya dijalankan halaman tersebut, melakukan hash dengan Web Crypto API, dan
dibandingkan dengan manifes. Lalu - dan inilah bagian yang penting - itu
menghitung ulang bundleHash dari hash dia hanya dihitung, bukan dari
apa pun yang diklaim oleh manifes, dan mencarinya di pengesahan yang ditandatangani repositori
melalui API GitHub.
Hal inilah yang menghentikan penerapan untuk menjamin dirinya sendiri: menyajikan file yang dimodifikasi bersama-sama manifes yang cocok masih gagal, karena hash yang dihitung ulang tidak memiliki pengesahan.
| Status | Cara |
|---|---|
| &memeriksa; Aplikasi resmi terverifikasi (n/n) | Setiap aset cocok, hash bundel yang dihitung ulang dibuktikan oleh repositori, Dan halaman disajikan dari domain resmi. |
| ⚠ Versi terverifikasi · bukan aplikasi resmi | Kode ini asli dan dibuktikan, tetapi ini adalah cerminan di domain lain. Mirror tidak dapat menghapus peringatan ini tanpa gagal dalam verifikasi. |
| ✗ Ketidakcocokan | Aset tidak sesuai dengan apa yang dinyatakan dalam manifes. |
| ✗ Bangunan tidak resmi | Hash bundel yang dihitung ulang tidak memiliki pengesahan dari repositori — manifes yang dibuat sendiri. |
| ⚠ Asalnya tidak terjangkau | GitHub API tidak dapat dijangkau, sehingga pengesahan tidak dapat diperiksa. |
Memverifikasinya sendiri
Bangun kembali komit nama dialog Tentang 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>"
Hash yang dicetak harus cocok dengan yang ada di dialog Tentang dan yang ada di komit itu ringkasan proses build-asalnya. Anda juga dapat memeriksa tanda tangan secara langsung dengan GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Burung kenari waran
Warrant canary adalah pernyataan, yang diterbitkan pada jadwal tetap, yang dimiliki oleh pengembang bukan menerima perintah rahasia pemerintah yang dilarang untuk diungkapkan — a Surat Keamanan Nasional, perintah FISA. Pengembang mungkin terpaksa tetap bungkam perintah seperti itu, namun tidak bisa dipaksa untuk berbohong, sehingga burung kenari menjadi basi atau hilang itu sendiri sinyalnya.
Ia tinggal di canary.json di root repositori dan diambil secara langsung
dari GitHub, sehingga riwayatnya dapat diaudit secara independen, apa pun yang dikatakan situs yang diterapkan.
Dialog Tentang memberi kode warna pada itu:
| Warna | Cara |
|---|---|
| Hijau — semuanya jelas | Ditandatangani, terkini, dan tanda tangan cocok dengan kunci pengembang. Tidak ada perintah rahasia yang diterima. |
| Kuning — terlambat, atau tidak semuanya jelas | Itu tidak disegarkan pada tanggal yang disebutkan, atau tanggalnya allClear bendera salah. Perintah yang dibungkam tidak dapat dikesampingkan. |
| Merah — tanda tangan tidak sah, atau hilang | Tanda tangan tidak cocok dengan kunci pengembang, atau file telah dihapus seluruhnya. Perlakukan ini sebagai peringatan serius. |
Jangkar kesegaran
Canary yang ditandatangani menyematkan tinggi blok dan hash Bitcoin terbaru pada saat penandatanganan. Hash itu tidak mungkin diketahui sebelum blok itu ada, yang membuktikan bahwa kenari itu ada ditandatangani setelah pada titik waktu tertentu, bukannya ditandatangani sebelumnya dalam jumlah besar beberapa bulan sebelumnya. Dialog Tentang menghubungkan jangkar ke penjelajah blok sehingga Anda dapat memeriksanya.