Cara Memverifikasi Keaslian Software Linux dengan Tanda Tangan Digital
Saat Anda mengunduh perangkat lunak (Software) dari Internet, Anda harus dapat memercayai pengembang bahwa program mereka tidak berbahaya.
Namun, Anda juga harus khawatir tentang peretas. Ada banyak hal yang dapat diperoleh penyerang dari meretas situs web dan mengganti perangkat lunak dengan versi pintu belakang.
Pikirkan tentang situs yang menghosting utilitas dompet Bitcoin. Jika penyerang berhasil mengganti versi yang sah dengan yang jahat, ia berpotensi mencuri uang dari puluhan ribu pengguna. Target berharga lainnya untuk pintu belakang adalah sistem operasi. Ini terjadi pada Linux Mint di masa lalu.
Jadi, apa yang dapat Anda lakukan?
Hash dan Tanda Tangan
Pengembang yang sadar akan keamanan akan sering menggabungkan file penyiapan atau arsip mereka dengan checksum yang dapat Anda verifikasi. Anda dapat membaca cara memverifikasinya di Windows atau Linux.
Masalah dengan hash ini, bagaimanapun, adalah jika seorang peretas mengganti file di situs web, dia juga dapat dengan mudah mengganti hash. Ini membuat hash sendiri hampir tidak berguna, terutama jika di-host di server yang sama tempat program berada.
Untuk membuat checksum ini berguna, pengembang juga dapat menandatanganinya secara digital, dengan bantuan pasangan kunci publik dan pribadi. Hanya orang yang memiliki kunci pribadi ini yang dapat membuat tanda tangan.
Ini hanya dapat diverifikasi dengan kunci publik yang sesuai, yang dipublikasikan di Internet. Jika verifikasi lolos, Anda dapat (hampir selalu) yakin bahwa pemilik kunci pribadi menandatangani perangkat lunaknya.
Bagi seorang peretas untuk melewati mekanisme keamanan ini, ia harus mencuri kunci pribadi, yang jauh lebih sulit dilakukan jika pemiliknya mengambil tindakan yang tepat untuk merahasiakannya. Dan bahkan ketika kunci dicuri, pemiliknya dapat membatalkannya dengan mencabut dan mengumumkannya.
Jika ini terjadi, saat Anda mengunduh kunci publiknya dan mencoba menggunakannya untuk memverifikasi tanda tangan, Anda akan diberi tahu bahwa ini telah dicabut.
Cara Memverifikasi Tanda Tangan Menggunakan GnuPG (GPG)
Utilitas gpg biasanya diinstal secara default di semua distro. Jika, karena alasan tertentu, hilang, Anda dapat menginstalnya dengan perintah di bawah ini. Pada beberapa distribusi, jika Anda mendapatkan kesalahan seperti "gpg: failed to start the dirmngr'/usr/bin/dirmngr’': No such file or directory", Anda juga harus menginstal dirmngr.
Di Debian, Ubuntu atau distro berbasis Debian, jalankan:
sudo apt install gnupg dirmngr
Untuk RedHat/CentOS:
sudo yum install gnupg dirmngr
dan di Fedora:
sudo dnf install gnupg dirmngr
Anda dapat mengikuti contoh di bawah ini untuk menguji bagaimana Anda akan memverifikasi ISO penginstal Debian 9.8.0.
Unduh “SHA256SUMS”, “SHA256SUMS.sign”, dan “debian-9.8.0-amd64-netinst.iso”. Anda mungkin harus mengklik kanan pada dua file pertama dan memilih "Save link as" atau yang setara, di browser web Anda. Jika tidak, mengkliknya mungkin hanya menampilkan kontennya alih-alih mengunduh secara otomatis.
Buka emulator terminal dan ubah ke direktori tempat unduhan Anda berada.
cd Downloads//
Memverifikasi Checksum
Tunggu unduhan ISO selesai. Selanjutnya, verifikasi checksum SHA256.
sha256sum -c SHA256SUMS
Anda akan melihat nama file diikuti dengan pesan "OK" ketika checksum baik. Untuk memverifikasi jenis checksum lainnya, Anda memiliki perintah berikut:
sha1sum
, sha512sum
, md5sum
. Tetapi disarankan Anda menggunakan setidaknya jumlah SHA256, atau lebih tinggi, jika tersedia.Beberapa situs tidak menawarkan file seperti SHA256SUMS, di mana nama file dan checksum dikelompokkan bersama untuk memudahkan verifikasi. Jika mereka hanya menampilkan jumlah di situs mereka, maka verifikasi hash file dengan perintah seperti:
sha256sum debian-9.8.0-amd64-netinst.iso
Menggunakan GPG untuk Verify Signed Checksums
Dalam contoh ini tim Debian menandatangani file “SHA256SUMS” dengan kunci pribadi mereka dan menyimpannya di file “SHA256SUMS.sign”. Verifikasi tanda tangan dengan:
gpg --verify SHA256SUMS.sign SHA256SUMS
Anda akan mendapatkan pesan ini:
gpg: Signature made Sun 17 Feb 2019 05:10:29 PM EET
gpg: using RSA key DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: Can't check signature: No public key
Ini berarti Anda tidak memiliki kunci publik di komputer Anda, yang normal. Anda harus mengimpornya dari server kunci.
gpg --keyserver keyring.debian.org --recv-keys DF9B9C49EAA9298432589D76DA87E80D6294BE9B
Jika server kunci tidak berfungsi, Anda dapat menggunakan yang lain. Misalnya, Anda dapat mengganti
keyring.debian.org
dengan keyserver.ubuntu.com
.Tapi bagaimana Anda tahu kunci ini sah? Sayangnya, untuk benar-benar yakin, Anda perlu membangun sesuatu yang disebut jaringan terpecaya. Jelas, Anda tidak memilikinya pada saat ini. Tetapi ada beberapa hal yang dapat Anda lakukan.
Google sidik jari kuncinya (DF9B9C49EAA9298432589D76DA87E80D6294BE9B). Jika Anda tidak menemukan apa pun, coba Google hanya delapan karakter terakhir (6294BE9B). Kunci yang sah akan disebutkan di banyak situs web mengenai perangkat lunak serupa. Selain itu, pos biasanya akan berlangsung selama bertahun-tahun karena kunci yang dijaga dengan aman akan digunakan untuk waktu yang lama.
Jika Anda benar-benar paranoid, unduh gambar BitTorrent dan kemudian verifikasi checksum dan tanda tangan. Cara kerja torrent, tidak mungkin mengganti file yang diunggah oleh ratusan pengguna berbeda. Selain itu, BitTorrent juga memiliki mekanisme sendiri untuk memverifikasi integritas setiap potongan data yang diunduh.
Sekarang setelah Anda memiliki kunci publik, Anda akhirnya dapat memverifikasi tanda tangan:
gpg --verify SHA256SUMS.sign SHA256SUMS
Jika Anda melihat "Good signature", itu berarti semuanya sudah selesai. Jangan khawatir tentang peringatan itu – itu normal karena, seperti yang disebutkan, Anda tidak memiliki jaringan kepercayaan yang mapan untuk kunci publik.
Sering kali ketika pengguna telah mengunduh sistem operasi pintu belakang, atau perangkat lunak dompet Bitcoin, mereka dapat menghindari masalah jika mereka memeriksa tanda tangan, karena tanda tangan tersebut belum dirusak.