
Memverifikasi unduhan dompet: checksum, tanda tangan, dan build yang dapat direproduksi
Saat memasang dompet, Anda percaya bahwa berkas di komputer Anda persis sama dengan perangkat lunak yang dirilis pengembangnya, bukan salinan yang dimodifikasi dari situs web yang dibobol, halaman unduhan tiruan, atau build yang telah dirusak. Bagi kebanyakan orang, memasang dari toko resmi sudah cukup. Namun bagi siapa saja yang ingin memeriksa alih-alih sekadar percaya, dompet sumber terbuka dapat menyediakan tiga alat yang makin kuat: checksum, tanda tangan, dan build yang dapat direproduksi.
Berikut apa yang dibuktikan oleh masing-masing alat, dan cara menggunakannya dengan SSP Wallet.
Checksum: apakah ini berkas yang sama?
Checksum adalah sidik jari sebuah berkas, yang dihasilkan oleh fungsi hash seperti SHA-256. Ubah satu byte saja, sidik jarinya berubah total. Jika checksum berkas yang Anda unduh cocok dengan yang dipublikasikan pengembang, Anda memiliki berkas yang sama.
Di macOS atau Linux, Anda dapat menghitungnya di terminal:
shasum -a 256 ssp-wallet-chrome-v2.1.3.zip
Checksum saja punya kelemahan: jika penyerang menguasai halaman unduhan, mereka dapat mengganti berkasnya sekaligus checksum yang dipublikasikan. Karena itulah langkah berikutnya penting.
Tanda tangan: apakah pengembang yang mempublikasikannya?
Tanda tangan membuktikan siapa yang mempublikasikan checksum. Pengembang menandatangani berkas checksum dengan kunci privat, dan siapa pun yang memiliki kunci publik pasangannya dapat memverifikasi tanda tangan tersebut. Penyerang yang mengubah berkas atau checksum tidak dapat membuat tanda tangan yang sah tanpa kunci privat itu.
Satu hal yang harus Anda pastikan benar adalah kunci publik itu sendiri. Dapatkan dari sumber resmi proyek, cocokkan sidik jarinya melalui lebih dari satu saluran resmi, lalu sejak itu gunakan kunci yang sama untuk setiap rilis.
Build yang dapat direproduksi: apakah berkas ini benar-benar dibangun dari kode yang dipublikasikan?
Tanda tangan membuktikan siapa yang merilis berkas, bukan apa isinya. Mesin build milik pengembang bisa saja dibobol dan menandatangani hasil berbahaya dengan itikad baik.
Build yang dapat direproduksi, atau deterministik, menutup celah itu. Proses build dikunci sehingga kode sumber yang sama selalu menghasilkan berkas yang identik byte demi byte, di mesin mana pun. Siapa pun dapat membangun ulang sebuah rilis dari kode publik dan membandingkan checksum-nya. Jika cocok, berkas yang dirilis berisi persis apa yang tertulis di kode sumber, tidak lebih. Serangan rantai pasokan dan build deterministik menjelaskan mengapa hal ini sangat penting bagi dompet.
Memverifikasi SSP Wallet
Rilis SSP Wallet di GitHub (RunOnFlux/ssp-wallet) dibangun secara deterministik untuk Chrome dan Firefox dan menyertakan dua berkas tambahan: SHA256SUMS, yang mencantumkan checksum setiap paket, dan SHA256SUMS.asc, tanda tangan GPG atas daftar tersebut.
1. Unduh berkas rilis. Dari halaman rilis, unduh paket untuk peramban Anda, dengan nama seperti ssp-wallet-chrome-v2.1.3.zip atau ssp-wallet-firefox-v2.1.3.zip, beserta SHA256SUMS dan SHA256SUMS.asc, ke dalam satu folder.
2. Periksa tanda tangan. Setelah kunci publik penandatanganan rilis SSP diimpor ke GPG:
gpg --verify SHA256SUMS.asc SHA256SUMS
GPG seharusnya melaporkan tanda tangan yang sah dari kunci yang diharapkan. Jika melaporkan tanda tangan buruk atau kunci yang tidak dikenal, berhentilah.
3. Cocokkan berkas dengan daftar.
sha256sum -c SHA256SUMS
Di macOS, shasum -a 256 -c SHA256SUMS melakukan hal yang sama. Setiap berkas yang Anda unduh seharusnya melaporkan OK. Daftar ini mencakup paket Chrome maupun Firefox; jika Anda hanya mengunduh salah satunya, tambahkan --ignore-missing agar yang lain tidak dilaporkan hilang.
4. Opsional: bangun sendiri. Kloning repositori pada tag rilis dan jalankan build deterministik:
git clone https://github.com/RunOnFlux/ssp-wallet.git
cd ssp-wallet
git checkout <release-tag>
yarn build:deterministic
Build berjalan di lingkungan Docker yang dikunci dan menulis SHA256SUMS miliknya sendiri. Jika checksum Anda cocok dengan yang dipublikasikan, Anda telah memastikan secara mandiri bahwa rilis tersebut dibangun dari kode sumber itu.
Bagaimana dengan toko peramban?
Kebanyakan orang memasang SSP Wallet dari Chrome Web Store atau Firefox Add-ons, dan itu pilihan yang wajar: instalasi dari toko diperbarui secara otomatis dan toko memiliki proses peninjauan sendiri. Checksum di atas berlaku untuk paket rilis di GitHub. Jika Anda memasang dari toko, pemeriksaan terpenting lebih sederhana: Anda membuka halaman ekstensi dari situs web resmi, dan penerbitnya sesuai. Mengenali aplikasi dompet palsu membahas langkah-langkah tersebut, dan kebersihan ekstensi peramban membahas cara menjaga peramban Anda tetap aman sesudahnya.
Ringkasan yang jujur
Checksum membuktikan bahwa Anda memiliki berkas yang sama; tanda tangan membuktikan siapa yang mempublikasikannya; build yang dapat direproduksi membuktikan bahwa berkas berasal dari kode yang dipublikasikan. Setiap langkah menghilangkan jenis kepercayaan yang berbeda.
Kebanyakan orang akan memasang dari toko resmi, dan itu tidak masalah. Jika Anda ingin memverifikasi sendiri, rilis SSP Wallet menyediakan ketiga alat tersebut: daftar checksum yang ditandatangani, pemeriksaan satu baris, dan build yang dapat Anda reproduksi byte demi byte.


