VPN tersambung, klien membuka sesi, dan semua orang menganggap koneksi basis data aman. Tiga hal berbeda baru saja dicampur. Apakah listener sama sekali dapat dijangkau, apakah server menerima pengguna, dan apakah Firebird menegosiasikan enkripsi kabel adalah mekanisme terpisah dengan bukti terpisah. Terowongan hanya menjawab yang pertama, dan hanya untuk sumber yang Anda izinkan.

Dua batas yang tidak tumpang tindih

Batas VPN melindungi paket antara klien dan gateway. Enkripsi kabel Firebird melindungi protokol basis data antara pustaka klien dan proses server. Keduanya bisa ada, dan tidak ada yang menggantikan yang lain.

Jika terowongan berakhir sebelum host basis data, lalu lintas di luarnya hanya dilindungi oleh apa yang dinegosiasikan sesi basis data. Di celah itulah tinjauan biasanya menemukan kejutan. Diagram terowongan berakhir di gateway, dan koneksi yang membawa kueri Anda berlanjut melewatinya. Siapa pun yang membaca diagram itu nanti mewarisi asumsinya.

Batas satu: siapa yang boleh membuka listener

Identifikasi alamat server sebenarnya dan port yang dikonfigurasi, yaitu 3050 kecuali diubah, lalu izinkan hanya sumber VPN yang disetujui di firewall host dan jaringan. Pertimbangkan penerjemahan alamat apa pun di gateway VPN, dan beri host basis data rute balik ke kumpulan klien jika gateway terpisah.

Lalu buktikan sisi negatifnya. Jalur eksternal yang seharusnya ditolak harus tetap ditolak, karena membuka terowongan tidak dengan sendirinya membatasi listener Firebird.

Batas dua: apa yang dinegosiasikan Firebird

Firebird 3 memperkenalkan kerangka enkripsi kabel dengan kebijakan server yang dapat dinonaktifkan, diaktifkan, atau diwajibkan. Kebijakan menetapkan batas bawah. Sesi sebenarnya tetap bergantung pada pustaka klien yang dimuat aplikasi dan plugin yang didukung kedua sisi.

Dalam catatan rilis Firebird 3 Arc4 terdaftar sebagai plugin enkripsi kabel bawaan untuk rilis itu. Arc4 adalah bawaan historis, bukan rekomendasi cipher modern, dan tidak sama dengan perlindungan VPN luar.

Autentikasi adalah variabel ketiga dalam negosiasi yang sama. Server menerima sekumpulan plugin autentikasi, pustaka klien menawarkan sebagiannya, dan keduanya harus tumpang tindih.

Jebakan Legacy_Auth

Mendukung Legacy_Auth mengharuskan pelonggaran kebijakan enkripsi wajib bawaan server. Itulah biaya kompatibilitas yang didokumentasikan, dan itulah sebabnya menurunkan kebijakan untuk membungkam kesalahan koneksi adalah perubahan keamanan, bukan perbaikan.

Jika klien tiba-tiba gagal setelah peningkatan server, bandingkan daftar plugin sebelum melemahkan apa pun. Kegagalan biasanya ketidakcocokan negosiasi, dan jawabannya adalah plugin yang didukung di kedua sisi.

Periksa koneksi yang penting

Pada build yang menyediakan variabel konteks, kueri ini melaporkan status enkripsi koneksi saat ini:

SELECT RDB$GET_CONTEXT('SYSTEM', 'WIRE_ENCRYPTED')
FROM RDB$DATABASE;

Jalankan melalui koneksi aplikasi itu sendiri, bukan melalui sesi administrator di server yang sama. Koneksi admin yang terenkripsi tidak mengatakan apa pun tentang sesi pustaka klien lain, dan build lama yang tidak mendukung variabel itu bukan bukti bahwa enkripsi mati.

Catat versi pustaka klien, build server, dan hasilnya bersama-sama, karena salah satu saja tidak terbaca.

Hak akses dan jalur peningkatan

Membatasi sumber dan mengenkripsi transportasi tidak menggantikan autentikasi atau hak akses paling rendah. Periksa izin pengguna basis data biasa pada objek yang benar-benar disentuhnya.

Terakhir, perlakukan penerapan berumur panjang sebagai pertanyaan pemeliharaan. Terowongan tidak membuat pustaka klien usang aman selamanya, dan jalur peningkatan yang didukung lebih murah daripada menemukan bahwa plugin yang dibutuhkannya telah dihapus.

Artikel terkait