Model penandatanganan APK di Android menetapkan bahwa kunci penandatanganan harus sama selama masa hidup aplikasi. Hal ini bisa dilihat dari rekomendasi Google bahwa kunci penandatanganan Android sebaiknya memiliki masa berlaku lebih dari 20 tahun. Selain itu, memigrasikan aplikasi ke kunci baru adalah hal yang cukup sulit. Karena kunci penandatanganan merupakan elemen penting untuk mencegah APK dipalsukan, kunci penandatanganan Android harus dijaga keamanannya sepanjang umur aplikasi.
Kunci penandatanganan repositori F-Droid mengikuti model yang sangat mirip: kunci penandatanganan adalah cara utama untuk mengidentifikasi repositori F-Droid dengan aman. Pertimbangan yang sama berlaku untuk kunci penandatanganan repositori F-Droid maupun kunci APK. Hal ini juga memberikan banyak manfaat penting. Karena integritas berkas indeks repositori dan APK dijamin oleh tanda tangan repositori, berkas-berkas tersebut dapat dikirimkan melalui metode apa pun yang paling nyaman, dan integritasnya akan diverifikasi secara otomatis oleh aplikasi klien F-Droid, proses penerapan f-droid.org, serta Repomaker.
Ini berarti beban keamanan dipindahkan dari server web publik ke mesin privat penandatanganan. Menjauhkan mesin tersebut dari paparan publik sudah secara signifikan meningkatkan keamanan. Ada sejumlah langkah tambahan yang dapat diambil untuk semakin meningkatkan keamanan proses penandatanganan. Berikut beberapa pendekatan, dimulai dari yang termudah dan paling tidak aman, hingga yang lebih aman namun memerlukan lebih banyak upaya untuk diatur dan dijalankan. Proses penandatanganan tidak memerlukan sumber daya besar, sehingga mesin apa pun bahkan laptop sederhana berusia 10 tahun pun dapat digunakan. Disarankan untuk menggunakan instalasi Debian minimal dan membangun ulang mesin dari awal secara berkala.
Server Penandatanganan Otomatis dengan HSM
Untuk pengaturan penandatanganan otomatis sepenuhnya, mesin yang menjalankan proses penandatanganan harus selalu online dan aktif. Idealnya, mesin ini tidak memiliki akses jarak jauh; jika pun ada, akses tersebut harus dikontrol dan dipantau dengan sangat hati-hati. Laptop adalah pilihan mudah karena memiliki keyboard dan layar bawaan, bahkan ketika akses jarak jauh dinonaktifkan. Jika akses jarak jauh diperlukan, PC dasar pun sudah memadai. Menggunakan Hardware Security Module (HSM) untuk menyimpan kunci akan mencegah kuncinya dicuri jika server disusupi. Penyerang hanya dapat menjalankan proses penandatanganan pada server tersebut tanpa menyalin kuncinya.
Idealnya, mesin ini hanya dapat diakses melalui Tor. Hal ini menyembunyikan lokasi fisik server dan melindungi lalu lintas dari pemantauan jaringan, sehingga jauh lebih sulit bagi penyerang untuk menemukan dan menyerang mesin sebenarnya.
Untuk HSM, kami merekomendasikan perangkat Nitrokey karena bersifat perangkat keras dan perangkat lunak bebas, serta menawarkan berbagai pilihan. Gunakan mesin terpisah untuk memuat kunci penandatanganan ke dalam HSM. HSM yang baik akan menyimpan log audit tentang jumlah tanda tangan yang dibuat, dan informasi tersebut dapat digunakan untuk membuat proses audit otomatis yang memberikan peringatan jika jumlah tanda tangan melebihi batas normal—indikasi bahwa server mungkin disusupi dan digunakan untuk menandatangani paket yang tidak sah.
Kemungkinan lain adalah menggunakan pengaturan seperti Sigul milik Fedora, yang melibatkan tiga mesin berbeda dalam proses penandatanganan.
Laptop dasar khusus untuk penandatanganan
Mulailah dengan laptop yang dapat dihapus bersih dan dibangun ulang dari awal. Hal yang paling penting adalah hanya menginstal perangkat lunak yang benar-benar diperlukan dan tidak ada lainnya. Jangan menyertakan peramban web sama sekali, misalnya, karena itu adalah vektor serangan yang paling umum. Jangan menginstal atau mengonfigurasi akses jarak jauh (misalnya SSH atau VNC). Untuk menandatangani aplikasi dan repositori, seseorang akan mengeluarkan laptop ini, menghubungkannya ke jaringan, dan menjalankan proses penandatanganan. Hasil yang telah ditandatangani kemudian dapat dipublikasikan melalui koneksi jaringan. Setelah proses penandatanganan selesai, mesin dapat dimatikan, dicabut, dan disimpan di tempat yang aman.
Proses ini dapat dibuat otomatis dengan menggunakan beberapa skrip khusus. Orang yang menjalankan proses hanya perlu mengambil mesin tersebut, menghubungkannya, menyalakannya, menunggu hingga proses selesai, lalu menyimpannya kembali.
Laptop penandatanganan sepenuhnya offline dengan USB flash drive
Proses ini didasarkan pada laptop dasar yang sama seperti contoh sebelumnya. Namun kali ini, konektivitas jaringan harus dinonaktifkan sepenuhnya sebelum proses instalasi. Misalnya, pada banyak laptop sangat mudah untuk mencabut kartu Wi-Fi secara fisik. Karena itu, disarankan menggunakan laptop yang tidak memiliki port ethernet, karena komponen tersebut biasanya tidak dapat dilepas. Alternatif lain adalah melakukan pemblokiran semua modul kernel yang terkait dengan jaringan. Karena mesin ini benar-benar offline, penggunaan HSM menjadi kurang penting, tetapi tidak ada salahnya tetap menggunakannya.
Unduh citra “CD” atau “DVD” Debian secara penuh untuk menjalankan instalasinya. Pastikan untuk memverifikasi tanda tangan GPG dan hash SHA-256-nya. Untuk memperbarui mesin offline, diperlukan pengaturan “apt offline”.
Untuk kehati-hatian ekstra, semua perangkat lunak yang digunakan harus diverifikasi. Chromebook merupakan laptop murah yang baik dan dapat menjalankan Linux secara native. Perangkat ini juga menggunakan Coreboot untuk BIOS-nya.
- Belilah komputer langsung di toko menggunakan uang tunai; hindari pengiriman, terutama lintas negara.
- Buy a Debian-supported Chromebook with removeable WiFi hardware, and needs no binary blobs
- Install a reproducibly built Coreboot binary
- Instal menggunakan citra Debian yang dapat dibangun ulang, menghapus sistem Chrome OS sepenuhnya.
Lingkungan Fisik
Hal terakhir yang perlu dipertimbangkan adalah lokasi fisik tempat penandatanganan dilakukan dan tempat penyimpanan peralatan penting. Lingkungan penandatanganan harus aman secara fisik. Jika tidak, tidak ada cara untuk mencegah laptop atau HSM hilang atau digunakan untuk menandatangani konten yang tidak sah. Untuk mesin offline, menyimpannya di ruangan terkunci adalah langkah awal yang baik. Untuk mesin online, memaksa semua lalu lintas dan akses jarak jauh melewati Tor akan menyembunyikan lokasi fisik mesin dari pengamat jaringan.
Untuk kunci penandatanganan berisiko tinggi, penting untuk menggunakan beberapa lapis pertahanan:
- Akses fisik terbatas ke HSM atau kartu pintar.
- Kamera keamanan.
- Penjaga keamanan di lokasi.
- Pencatatan pengunjung.
- Brankas server tahan alat untuk server penandatanganan kode daring.
Server penandatanganan harus dipisahkan secara fisik dari infrastruktur lainnya. Log, mesin, dan jaringan juga harus diaudit secara berkala.
Keputusan Sulit
Idealnya, semua praktik ini diberlakukan. Namun, setiap langkah keamanan tambahan datang dengan biaya dalam hal kesulitan, pengeluaran, dan kompleksitas. Selain itu, kebijakan keamanan yang terlalu ketat juga dapat memperlambat proses pembaruan rutin. Dengan demikian, ada risiko baik dari terlalu banyak maupun terlalu sedikit penerapan keamanan.
