Secara umum, enkripsi data pada database dapat dilakukan dengan 2 cara berikut ini:
- Data in Transit (data yang dikirim lewat jaringan komputer) -> contoh aplikasi web server dengan database di server lain
- Data at Rest (data yang disimpan di hard disk)
Data in Transit
2 hal yang perlu dilakukan penyerang:
- Menyadap komunikasi
- Memahami komunikasi untuk ekstraksi data
Mekanisme Enkripsi
- Database-specific features (e.g., Oracle Advanced Security)
- Connection-based methods (e.g., using the Secure Sockets Layer [SSL])
- Secure tunnels (e.g., using Secure Shell [SSH] tunnels)
- Relying on the operating system (e.g., IPSec encryption)
SSL
- Beberapa software database sudah ada fitur SSL
- SSL mesti diaktifkan di server & client
- SSL memerlukan komputasi, sehingga dapat memperlambat proses
- SSL pada MySQL:https://dev.mysql.com/doc/refman/5.0/en/ssl-connections.html
SSH Tunnels
SSH secara umum bermanfaat untuk:
- Secure shell sebagai secure console. Misal untuk login ke server Ubuntu
- Secure copy (SCP, SFTP). Misal dengan software Filezilla
- Encrypted Tunnel -> dapat dipakai untuk ditumpangi komunikasi database
Fitur Encrypted Tunnel disebut juga sebagai port forwarding.
Ilustrasi SSH Tunnel
SSH Tunnel
Contoh perintah SSH Tunnel
ssh –L 10000:localhost:3306 192.168.3.33 –l mylogin –i ~/.ssh/ id –N –g
- -L : port forwarding
- 1000:localhost:3306 port lokal 1000, dikirim ke port 3306 di remote
- 192.168.3.33 : alamat server database
- -l mylogin: nama user
Data at Rest
- Data yang disimpan di database dienkripsi terlebih dahulu
- Algoritma simetrik / asimetrik
- Metode ini sebagai layer keamanan tambahan, bukan yang utama
Skenario Keamanan Data at Rest
- User mengakses data yang tidak semestinya. Dengan enkripsi maka meskipun punya hak akses tidak dapat membaca datanya.
- Hard disk yang dicuri
- Hard disk bekas yang dijual
Remembrance of Data Passed: A Study of Disk Sanitization Practices
- Peneliti: SIMSON L. GARFINKEL & ABHI SHELAT (MIT)
- The students analyzed 158 disk drives that were purchased through eBay and other sources of used computer hardware (costing a total of less than $1,000).
- 74% of the drives contained data that could be recovered and read, including sensitive data such as detailed personal and corporate financial records, credit card numbers, medical records, love letters, and so on.
Implementasi enkripsi data-at-rest
- Enkripsi pada aplikasi
- Enkripsi pada filesystem
- Enkripsi pada database
- Enkripsi pada HDD (storage)
Implementasi data-at-rest Enkripsi pada aplikasi
Keuntungan:
- Transparan bagi database. Database tidak tahu menahu tentang adanya enkripsi.
Kelemahan
- Enkripsi/dekripsi mesti dibuat di beberapa tempat dengan beberapa library.
- Data tidak dapat diakses tanpa aplikasi
- Tidak menyederhanakan masalah, hanya memindahkan enkripsi ke aplikasi.
Implementasi data-at-rest Enkripsi pada file system
- Menggunakan filesystem yang mendukung enkripsi
Implementasi data-at-rest Enkripsi pada database
- Menggunakan fitur enkripsi pada database (jika databasenya mendukung).
Hal-hal penting pada enkripsi data-at-rest
- Key Management
- Recovery (jika kunci hilang)
- Integrasi dengan Public Key Infrastructure
- Backup & Restore
- Clustering (database tersebar pada beberapa komputer berbeda untuk performance)
- Replication
- Performance
- Disk space (enkripsi menambah ukuran data)
- Audit trail (penggunaan key & password)
Contoh praktek Enkripsi Data in Transit
- Menyadap komunikasi database (Apache <-> MySQL) dengan tcpdump / wireshark
- Implementasi security data-in-transit dengan fitur internal MySQL
- Implementasi security data-in-transit dengan SSH Tunnel
- Pengukuran performance (CPU load) pada setiap implementasi.
Contoh praktek Aplikasi
- Membuat aplikasi database sederhana (misal menampilkan daftar peserta kuliah, daftar anggota MPR, dsb)
- Mencoba mencari data dari data file MySQL
- Implementasi security data-at-rest dengan aplikasi
- Mencoba mencari data dari data file MySQL (versi terenkripsi)
- Pengukuran performance (CPU load) pada setiap implementasi.
Homomorphic Encryption
- https://www.forbes.com/sites/andygreenberg/2011/12/19/an-mit-magic-trick-computing-on-encrypted-databases-without-ever-decrypting-them
- https://www.google.com/search?q=Homomorphic+Encryption++database+securityb
- http://iamtrask.github.io/2017/03/17/safe-ai/ -> crazyhttps://twitter.com/iamtrask
Referensi
- Ben Natan R, Implementing Database Security and Auditing, Elsevier 2005
- Database Encryption
- Data security in Google Cloud
Satu tanggapan pada “Enkripsi Database”