Kode sumber diterbitkan, lisensinya bersih, dan koneksinya tetap tidak dapat diverifikasi dari ujung ke ujung. Celah itu biasa, dan bukan skandal. Menerbitkan kode membuat satu komponen dapat diperiksa oleh orang yang tidak diundang, dan itu sifat nyata dan tidak lazim. Dari situ tidak berarti biner yang Anda pasang berasal dari kode tersebut, atau bahwa apa pun yang dijalankan penyedia di sisi lain telah ditinjau sama sekali.

Pisahkan komponen dari produk

Empat hal dapat menyandang label sumber terbuka, dan jarang semuanya terbuka. Aplikasi klien adalah yang dimaksud orang. Implementasi protokol di bawahnya adalah artefak lain, kadang pustaka dan kadang kode di dalam pohon. Perangkat lunak server adalah yang ketiga, dan infrastruktur penyedia sendiri, portal akun, serta perkakas dukungan adalah yang keempat. Masing-masing dapat terbuka atau tertutup secara mandiri.

Karena itu pernyataan seperti "aplikasi kami sumber terbuka" menggambarkan butir pertama dan membiarkan sisanya tanpa jawaban, yang bukan ketidakjujuran melainkan pergeseran kategori. Pertanyaan yang berguna adalah repositori mana, pada tag mana, yang sesuai dengan komponen yang Anda andalkan.

Pembedaan itu juga menjelaskan mengapa dua produk dengan klien terbuka yang identik dapat menawarkan jaminan yang sangat berbeda. Klien adalah bagian yang dapat Anda periksa; perilaku operator adalah bagian yang harus Anda nilai dengan cara lain.

Cocokkan build terpasang dengan tag yang diterbitkan

Repositori adalah catatan niat; biner di disk Anda adalah yang berjalan. Menutup celah itu adalah latihan mekanis, dan dimulai dengan mengidentifikasi persis apa yang terpasang, bukan apa yang diiklankan halaman unduhan.

ComponentWhat inspection can showWhat it leaves untouched
Client sourceHow profiles, packets and optional telemetry are handledWhether the shipped binary matches that source
Build outputWhether a declared build reproduces a matching artefactWhether the source is correct or the toolchain is clean
Server softwareWhat the implementation is capable of loggingWhat the operator actually configures and retains
Account and support systemsAlmost nothing, unless they are separately publishedEverything about how those systems treat your data

Metadata paket memberi tahu versi dan asalnya, yang menyingkirkan kasus sepele paket usang atau diganti. Metadata itu tidak memberi tahu bagaimana paket dikompilasi, dan justru pertanyaan itulah yang ada untuk dijawab oleh build yang dapat direproduksi. Build yang dapat direproduksi memungkinkan pihak independen membangun ulang dari sumber yang sama dan membandingkan keluarannya byte demi byte, sehingga ketidakcocokan menjadi bukti, bukan kecurigaan.

Bahkan kecocokan sempurna membuktikan lebih sedikit daripada harapan orang. Itu menunjukkan artefak sesuai dengan sumber dan resep build, bukan bahwa sumber bebas cacat, dan bukan bahwa rantai alat yang dipakai tepercaya. Keduanya tetap layak diketahui, tetapi itu klaim yang berbeda.

dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wg

Dari mana gejala biasanya bermula

Keluhan yang memicu pembacaan ini jarang berupa "kodenya tertutup". Biasanya pengamatan spesifik: klien yang menelepon ke tempat tak terduga, versi yang berbeda dari catatan rilis, atau proses dukungan yang meminta lebih dari yang seharusnya dibutuhkan tunnel. Setiap poin itu menunjuk komponen yang berbeda.

Lalu lintas jaringan tak terduga dari klien adalah pertanyaan kode sumber klien, dan dapat dijawab dengan membaca jalur kode yang membuka koneksi. Ketidakcocokan versi adalah pertanyaan pengemasan. Proses dukungan yang meminta dokumen identitas adalah pertanyaan sistem akun, dan tidak ada audit klien yang akan menyelesaikannya.

Menamai komponen mengubah ketidakpercayaan kabur menjadi pemeriksaan spesifik. Pemeriksaan spesifik dapat dijawab, diperdebatkan, atau ditutup. Alternatifnya adalah kecurigaan permanen tanpa langkah berikutnya.

Yang tidak dapat dijangkau tinjauan, dan apa yang harus dilakukan sebagai gantinya

Retensi di server penyedia berada di luar jangkauan klien. Demikian pula perilaku portal penagihan, vendor pemeriksa penipuan, atau meja dukungan yang menyimpan lampiran. Tinjauan klien yang diperluas menjadi "kami mengaudit layanannya" membuat klaim yang tidak didukung bukti.

Bacalah apa yang diterbitkan operator tentang retensi dan permintaan, catat tanggalnya, dan perlakukan itu sebagai pernyataan pihak berkepentingan, bukan pengukuran. Itu bentuk bukti yang lebih lemah, dan bersikap eksplisit tentang perbedaannya lebih berguna daripada menaikkannya saat diceritakan ulang.

Lalu gunakan apa yang Anda punya sebagai salah satu dari beberapa masukan: identitas rilis yang terpasang, apakah perangkat lunaknya dipelihara, bagaimana klien dikonfigurasi, dan apa yang dikatakan operator tentang sistemnya sendiri. Kode terbuka memperkuat penilaian itu pada satu titik. Ia tidak menggantikan sisanya.

Klaim audit harus selalu menyebutkan komponen dan versinya. Jika laporan tidak dapat menyebut repositori dan build mana yang diperiksa, laporan itu menggambarkan niat, bukan produk.

Artikel terkait