Bisakah rantai sertifikat server menimpa penyimpanan kepercayaan klien?
Rantai lengkap adalah bukti, bukan instruksi. Validasi terjadi di klien dengan jangkar miliknya sendiri, jadi tidak ada server yang bisa memaksakan keputusan kepercayaan.
Browser menampilkan peringatan sertifikat pada situs yang rantainya lengkap, dan naluri pertama adalah memperbaiki server. Biasanya server menyajikan persis apa yang seharusnya. Klien memutuskan jangkar mana yang diterima, dan tidak ada susunan sertifikat perantara yang dapat mengubah keputusan itu dari ujung koneksi yang lain. Batas itulah yang menjelaskan sebagian besar hal yang tampak seperti masalah sertifikat.
Validasi berjalan di klien, dengan jangkar milik klien
Validasi jalur mengambil sertifikat yang disajikan dan membangun rantai ke jangkar kepercayaan yang sudah dimiliki sistem validasi. RFC 5280 menjelaskan model itu, dan menempatkan pemilihan jangkar pada implementasi lokal, bukan pada server. Aplikasi dapat menambahkan kebijakannya sendiri di atasnya: kunci yang disematkan, penyimpanan kepercayaan perusahaan, atau pemeriksaan identitas yang lebih ketat. Daftar sertifikat yang dikirim server adalah bukti yang ditawarkan kepada proses itu, bukan pernah menjadi instruksi kepadanya.
Jadi rantai lengkap membuktikan server memiliki bagian-bagiannya. Itu tidak membuktikan klien akan menerimanya.
Untuk melihat apa yang sebenarnya dikirim server, jalankan openssl s_client -connect app.example.net:443 -servername app.example.net -showcerts dan hitung sertifikat pada keluarannya. Rantai tidak lengkap di sana adalah perbaikan di sisi server. Rantai lengkap memindahkan pertanyaan ke klien dan jangkarnya, tempat server tidak punya suara.
Apa yang sebenarnya diubah oleh inspeksi TLS
Perangkat inspeksi mengakhiri sesi TLS sisi klien dan membuka sesi terpisah ke layanan sebenarnya. Klien lalu memvalidasi sertifikat perangkat itu, yang harus berantai ke jangkar yang dipercaya klien. Itulah sebabnya perangkat terkelola menerima akar inspeksi melalui manajemen perangkat, dan itulah sebabnya perangkat pribadi tanpanya menampilkan peringatan.
Pengaturan itu disengaja dan lokal. Tidak ada apa pun dalam rantai server asli yang dapat memaksa browser tak terkelola menerima identitas pengganti, dan tidak ada apa pun di dalamnya yang mencegah perangkat terkelola melakukannya.
Terminasi VPN bukan dekripsi HTTPS
Lapisan VPN membawa paket antara klien dan gateway. Menghapusnya, atau membaca konfigurasinya, tidak membuka muatan HTTPS di dalamnya.
Sesi TLS masih berjalan antara browser dan server web, dengan aturan validasi yang sama, kecuali sesuatu mengakhirinya secara eksplisit. Mencampuradukkan kedua lapisan menghasilkan permintaan kepada administrator VPN untuk menyediakan sertifikat, padahal sertifikat yang dimaksud milik proksi inspeksi atau milik situs itu sendiri. Tanyakan komponen mana yang menyajikan sertifikat sebelum mengubah penyimpanan kepercayaan apa pun.
Tetapkan ekspektasi pada komponen yang Anda kendalikan
Jika Anda mengoperasikan aplikasi dan kliennya, definisikan bersama identitas layanan yang diharapkan, penerbit yang diterima, dan persyaratan penyematan atau autentikasi klien. Rencanakan pembaruan dan pemulihan agar perubahan sertifikat yang sah tidak menjadi gangguan. Jika Anda hanya mengoperasikan server publik, dokumentasikan autentikasi apa yang Anda perlukan dan lingkungan klien apa yang Anda dukung. Mengirim rantai yang disukai tidak mensertifikasi perangkat orang asing.
Pada perangkat terkelola, selesaikan ketidakcocokan melalui pemilik aplikasi dan jaringan. Menonaktifkan verifikasi, menambahkan akar tanpa penjelasan, atau mencoba bertahan terhadap kebijakan inspeksi tidak membangun hubungan rekan yang dimaksud.
Uji hasilnya pada profil klien yang bersih, bukan pada mesin yang sudah diberi pengecualian. Itulah satu-satunya pemeriksaan yang menunjukkan apa yang akan dialami perangkat baru.