Masalahnya: Kepercayaan Buta
Saat memasang aplikasi monitor bayi, Anda memberinya akses ke tempat yang sangat pribadi: kamar bayi Anda. Aplikasi ini mendengarkan, dan kadang juga memantau lewat kamera. Namun, orang tua sering tidak bisa melihat apa yang terjadi di balik layar: apakah siaran melewati server pihak ketiga, apakah data penggunaan dikumpulkan, dan siapa yang secara teknis dapat mengaksesnya?
Jawaban jujurnya: pada banyak aplikasi, Anda tidak tahu. Kodenya tertutup dan arsitekturnya hanya sebatas klaim. Pada akhirnya, Anda diminta memercayai penyedianya.
Kode Tertutup, Celah Terbuka
Dalam beberapa tahun terakhir, sudah cukup banyak laporan tentang monitor bayi yang diretas. Orang asing dapat menguping, menggerakkan kamera, atau berbicara melalui speaker. Sebagian besar bukan serangan yang rumit, melainkan kegagalan mendasar: koneksi tanpa enkripsi, kata sandi bawaan, atau autentikasi yang tidak ada.
Pada perangkat lunak berpemilik, pihak luar sering baru melihat kelemahan tersebut setelah sesuatu terjadi. Peneliti keamanan, pengembang independen, dan orang tua melihat produk jadi hanya dari luar. Untuk perangkat di kamar bayi, pendekatan seperti ini tergolong lemah.
Transparansi sebagai Prinsip Keamanan
Keamanan informasi memiliki aturan lama yang tetap berguna: prinsip Kerckhoffs. Keamanan tidak boleh bergantung pada desain yang dirahasiakan. Sebuah sistem harus tetap aman meski orang mengetahui cara sistem itu dibuat.
Kode yang didokumentasikan secara terbuka tidak serta-merta membuat perangkat lunak aman. Namun, hal ini membuat klaim-klaimnya dapat diperiksa. Orang yang memahami bidang ini dapat meninjau alur data, derivasi kunci, dan aturan yang digunakan, alih-alih hanya membaca materi pemasaran.
Pendekatan Timmy: Inti Keamanan yang Terpisah
Di Timmy, sekarang saya membedakan dengan sangat jelas bagian mana yang benar-benar penting bagi keamanan. Tidak setiap baris antarmuka pengguna menentukan apakah produk ini layak dipercaya. Bagian yang menentukan adalah logika backend, kontrak pensinyalan, kriptografi penyandingan, dan data apa yang sampai ke server.
Itulah sebabnya inti keamanan kini berada di repositori publik baby-monitor-timmy-core. Kode aplikasi lengkap saat ini belum tersedia untuk umum. Komponen yang sangat penting bagi keamanan dipisahkan dari UI dan logika produk agar dapat didokumentasikan dan ditinjau secara mandiri.
Apa artinya secara konkret?
- Batas yang jelas: komponen keamanan dipisahkan dari UI dan logika produk.
- Alur data yang dapat diaudit: penyandingan, pensinyalan, dan antarmuka backend dapat didokumentasikan secara terpisah.
- Tanpa pelacak tersembunyi: jalur kritis hanya berisi hal-hal yang secara teknis memang diperlukan.
- Mudah dipelihara dalam jangka panjang: inti terpisah lebih mudah ditinjau daripada monolit yang tidak terstruktur.
Kesimpulan: Orang Tua Berhak Mendapatkan Transparansi
Saat sebuah aplikasi memiliki akses ke kamar bayi, aplikasi tersebut harus menjelaskan pertanyaan-pertanyaan penting secara konkret: Data apa yang dibuat? Ke mana data itu dikirim? Siapa yang dapat membacanya? Orang tua berhak mendapatkan lebih dari sekadar lencana privasi di bagian bawah halaman.
Baby Monitor Timmy seharusnya menunjukkan bahwa produk yang baik dan keamanan yang dapat diaudit dapat berjalan beriringan. Bagi saya, ini bukan berarti setiap bagian aplikasi harus dibuka untuk umum. Ini berarti membuka bagian-bagian yang menentukan penyandingan, pensinyalan, akses backend, dan alur data.