Penyematan TLS dan penerimaan VPN menjawab pertanyaan berbeda
Penyematan membatasi server mana yang dipercaya aplikasi; kebijakan VPN memutuskan siapa yang mencapai jaringan. Keduanya tidak mencakup otorisasi atau perangkat yang hilang.
Letakkan aplikasi seluler privat di belakang VPN dan orang yang masuk akal akan bertanya apakah aplikasi itu masih perlu penyematan sertifikat. Pertanyaan itu terdengar seperti pilihan antara dua kontrol yang setara, padahal sebenarnya pertanyaan tentang dua gerbang berbeda. VPN memutuskan apakah perangkat ini boleh memakai jalur itu sama sekali; aplikasi memutuskan apakah server yang dicapainya adalah server yang diharapkannya. Jawab keduanya secara terpisah dan desainnya menjadi lebih sederhana.
Dua gerbang, dua pertanyaan
Penerimaan jaringan menyangkut klien: apakah perangkat ini terdaftar, apakah kredensialnya valid, dan apakah kebijakan mengizinkannya masuk ke jalur ini? Kepercayaan aplikasi menyangkut server: apakah koneksi mencapai layanan dengan identitas yang diterima aplikasi? Jawaban itu datang dari sistem berbeda, gagal karena alasan berbeda, dan diperbaiki tim berbeda. Jabat tangan VPN bisa berhasil sementara aplikasi berbicara dengan sertifikat kedaluwarsa di balik rekan. Aplikasi yang tersemat sempurna tetap bisa tak terjangkau siapa pun, karena perangkatnya tidak pernah masuk ke jaringan.
Keduanya bertambah. Menghapus salah satu menghilangkan kontrol; menambahkan yang lain tidak menggantikannya.
Apa yang sebenarnya dibatasi penyematan
Penyematan mempersempit himpunan identitas server yang akan diterima aplikasi, biasanya dengan menyebut kunci publik atau hash sertifikat alih-alih memercayai setiap rantai yang dijamin suatu penyimpanan. Ini batasan yang dilapiskan pada validasi biasa, bukan penggantinya. Validasi biasa menjawab apakah rantai itu tepercaya sama sekali; penyematan menjawab apakah itu rantai yang diharapkan aplikasi ini. Implementasi yang melewati langkah pertama tidak memperoleh keamanan, hanya kebaruan.
Objek yang disematkan berbeda antarplatform, jadi kata itu sendiri sedikit sekali memberi tahu Anda. Menyalin hash dari penyimpanan kepercayaan satu produk dan memperlakukannya sebagai hal yang sama di aplikasi seluler adalah kesalahan umum dan senyap.
Penyematan di platform adalah konfigurasi, bukan kebijakan
Android mengekspos penyematan melalui konfigurasi keamanan jaringannya, tempat satu set sematan menyimpan intisari kunci publik dan rantai harus memuat setidaknya satu di antaranya. Berkas itu per aplikasi dan memerlukan perubahan build yang disengaja. iOS tidak punya mekanisme manifes yang setara, jadi penyematan di sana hidup dalam kode evaluasi kepercayaan aplikasi itu sendiri.
Karena mekanismenya berbeda, persyaratan harus ditulis per platform. Kebijakan yang mengatakan sematkan sertifikat tanpa menyebut platformnya tidak dapat diterapkan.
Rotasi menentukan apakah penyematan bertahan
Bagian sulitnya bukan rilis pertama, melainkan pembaruan sertifikat sesudahnya. Kebijakan kepercayaan yang ketat menolak kunci baru yang sah sekeras kunci penyerang.
Dua mekanisme membuat rotasi bisa dilalui: sematan cadangan yang sudah dipercaya sebelum dibutuhkan, dan tanggal kedaluwarsa pada set sematan agar penegakan berhenti alih-alih melumpuhkan aplikasi. Keduanya keputusan kebijakan, dan kedaluwarsa khususnya adalah pengurangan keamanan yang disengaja, bukan pewaktu tak berbahaya. Sebutkan siapa yang mengendalikan build aplikasi, titik akhir TLS, dan pembaruan sertifikat, lalu satukan mereka dalam satu proses perubahan. Jika itu tiga tim berbeda, penyematan akhirnya akan menyebabkan gangguan yang tidak direncanakan siapa pun.
Perangkat yang hilang adalah masalah ketiga
Mencabut kredensial VPN tidak selalu mengakhiri sesi aplikasi, dan penyematan server sama sekali tidak berbuat apa-apa terhadap ponsel di tangan orang lain. Kunci perangkat, penyimpanan kredensial, masa sesi, dan pencabutan jarak jauh adalah keputusan terpisah dengan pemilik terpisah. Melipatnya ke dalam diskusi penyematan menjamin tak satu pun darinya dirancang.
Uji empat hubungan alih-alih satu yang Anda lihat: server dan operasi yang dimaksud, akun yang seharusnya ditolak, identitas server yang seharusnya dibuang, dan rotasi yang direncanakan. VPN yang berfungsi hanya melatih yang pertama. Tuliskan apa yang dibuktikan setiap uji, karena orang berikutnya akan menganggap terowongan hijau berarti keempatnya lulus.