Mengunduh klien VPN adalah keputusan sekali saja; menambahkan repositori APT-nya bukan. Yang kedua memberi tahu manajer paket dari mana perangkat lunak mendatang boleh datang, dan itu adalah pemindahan wewenang yang tetap, bukan unduhan. Itu bisa menjadi pengaturan yang tepat ketika vendor memelihara repositori dengan benar. Meski begitu, hal itu layak mendapat keputusan yang sadar, dan sebagian besar panduan pemasangan melewatkannya.

Tanda tangan mengesahkan arsip, bukan kodenya

APT memverifikasi metadata repositori yang ditandatangani lalu memercayai checksum di dalam metadata itu untuk paket yang diambilnya. Yang dibuktikan adalah bahwa arsip cocok dengan yang diterbitkan pemegang kunci, dan bukan apa pun tentang kode di dalamnya. Paket yang ditandatangani dengan benar tetap bisa membawa skrip pemelihara yang tidak aman, dan skrip itu berjalan sebagai root saat paket dipasang. Panduan apt-secure menarik garis persis ini antara pengesahan arsip dan peninjauan perangkat lunak.

Jadi pertanyaan yang berguna bukanlah apakah tanda tangannya valid, karena tanda tangan yang rusak tetap menghentikan pemasangan. Pertanyaannya adalah tanda tangan siapa yang Anda pilih untuk dipercaya mulai sekarang. Kunci penandatangan yang dicuri lebih buruk daripada paket yang dicuri, karena penyerang terus menghasilkan metadata yang sah jauh setelah rilis buruk pertama. Rotasi adalah satu-satunya perbaikan, dan itu bergantung pada vendor yang menerbitkan kunci baru melalui saluran yang dapat Anda verifikasi sendiri.

Itulah sebabnya identitas kunci layak mendapat perhatian sebanyak URL repositori. Kunci yang diambil dari alamat dalam jawaban forum lama tidak membuktikan apa pun tentang penerbit, sementara HTTPS melindungi pengangkutan sampai ke siapa pun yang menjawab telepon. Keamanan pengangkutan dan identitas penerbit adalah pertanyaan terpisah, dan hanya yang pertama diselesaikan oleh sertifikat.

Batasi kunci pada sumbernya, bukan pada sistemnya

APT modern menerima referensi Signed-By yang khusus untuk sumber. Kunci yang dikelola operator dapat berada di bawah /etc/apt/keyrings/, dan entri sumber menyebut kunci yang boleh mengesahkan arsip itu. Itu lebih sempit daripada menjatuhkan kunci yang sama ke kumpulan yang dipercaya secara global, di mana kunci itu bisa menjamin sumber yang tidak pernah ingin Anda izinkan. Ikuti versi APT yang terpasang dan instruksi vendor saat ini alih-alih mencampur potongan dari generasi panduan yang berbeda.

curl -fsSL https://repo.example.com/vpn-key.gpg -o /etc/apt/keyrings/vpn.gpg
echo "deb [signed-by=/etc/apt/keyrings/vpn.gpg] https://repo.example.com/debian stable main" > /etc/apt/sources.list.d/vpn.list

Jangan pernah memperbaiki kegagalan tanda tangan dengan mematikan verifikasi atau menandai arsip tak dikenal sebagai tepercaya. Itu menukar kesalahan yang terlihat dengan yang tak terlihat, dan yang tak terlihat bertahan sampai seseorang mengaudit daftar sumber. Jika kunci tidak cocok, perbaikan yang benar adalah menemukan kunci yang tepat, bukan menghapus pemeriksaan.

Dapatkan detail repositori dan identitas kunci dari proyek atau administrator terkelola. Kunci yang disalin dari tulisan blog adalah klaim tentang kepengarangan, bukan buktinya. Ketika vendor menerbitkan saluran rotasi, catatlah bersamaan dengan kuncinya, karena saluran itulah yang memungkinkan rotasi berikutnya.

Penyematan sumber bukan daftar putih paket

Membatasi kunci pada satu sumber membatasi arsip mana yang boleh disahkannya, bukan paket mana yang boleh diterbitkan arsip itu. Repositori dapat mengirim jauh lebih banyak daripada klien VPN yang Anda inginkan, dan pemilihan kandidat serta prioritas APT yang menentukan versi layak mana yang menang. Tinjau transaksi yang diusulkan sebelum mengonfirmasinya, termasuk daftar dependensi, karena dependensi datang dari arsip yang sama. Cakupan kunci tidak dapat menyatakan ’hanya paket ini’.

Jika Anda membutuhkan kendali yang lebih kuat, nyatakan sebagai kebijakan atas nama atau versi paket dan pertahankan kebijakan itu di bawah manajemen konfigurasi. Membaca transaksi memakan waktu satu menit; menemukan paket tak terduga enam bulan kemudian memakan waktu satu tinjauan.

Paket tak terduga adalah saat untuk berhenti, bukan melanjutkan, dan pertanyaan bagi pemilik arsip adalah mengapa paket itu diperlukan. Repositori yang menerbitkan selusin paket di sekitar satu klien adalah hal normal bagi vendor yang mengirim rangkaian desktop. Itu juga permukaan yang lebih luas daripada yang disiratkan panduan pemasangan, dan bagian itulah yang layak dicatat. Tidak ada dari kedua hasil itu yang menjadi alasan untuk tidak memercayai tanda tangan; keduanya adalah alasan untuk menuliskan apa yang Anda terima.

Catat wewenangnya dan cara menghapusnya

Tuliskan pemilik arsip, rilis sistem operasi yang didukung, saluran rotasi kunci, dan prosedur penghapusan. Empat fakta itu adalah yang dibutuhkan penerus ketika klien dipensiunkan atau vendor merotasi kuncinya. Tanpanya, orang berikutnya mewarisi satu baris sumber dan satu berkas kunci tanpa cerita apa pun.

Penghapusan adalah langkah yang dilewati, jadi tuliskan saat pemasangan. Hapus entri sumber dan kunci khususnya bersamaan, dan periksa apakah kunci itu dirujuk di tempat lain sebelum menghapus berkasnya. Kunci bersama yang dihapus tanpa pemeriksaan itu mengubah pembersihan menjadi gangguan tak terkait, yang merupakan hasil terburuk untuk perubahan rutin. Lalu pastikan pembaruan biasa masih terselesaikan setelah entri itu hilang.

Satu hal tersisa setelah repositori dihapus: paket apa pun yang sudah terpasang darinya terus berjalan sampai sesuatu menggantikannya. Pertanyaan jujurnya adalah wewenang apa yang Anda tambahkan, dan seberapa sempit perannya dinyatakan.

Artikel terkait