Beberapa Database Management System yang mendukung encryption dalam layanan database nya adalah :
MongoDB
MongoDB adalah database NoSQL yang
berbasis dokumen yang bersifat cross-platform, open-source, dan dapat digunakan
secara gratis. MongoDB telah hadir sebagai salah satu database NoSQL yang
sedang naik daun seiring dengan makin populernya penggunaan database NoSQL pada
era Big Data sekarang ini.
Sebelum tahun 2015, MongoDB tidak
menyediakan layanan enkripsi untuk keseluruhan database, namun data di dalamnya
bisa di enkripsi sendiri-sendiri. Pengguna pun mengakalinya dengan
meng-enkripsi direktori tempat database tersebut disimpan, atau meng-enkripsi
koneksi soketnya. Namun pada November 2015, MongoDB versi 3.2 telah dilengkapi
dengan encryption storage engine. Sehingga pengguna nya tidak perlu lagi
menggunakan API pihak ketiga untuk meng-enkripsi data nya. Enkripsi mesin
penyimpanan milik MongoDB ini bekerja dengan WiredTiger storage engine, mengizinkan
MongoDB untuk meng-enkripsi sebagian file data saja dan baru bisa dibaca
setelah menggunakan kunci dekripsi.
Database pada
MongoDB dibagi menjadi dua kelompok besar, yaitu Lapisan untuk integrasi
penyimpanan (Storage Integration Layer) dan Lapisan MongoDB lainnya yang
digabung menjadi satu. Pada awalnya, Storage Integration Layer dihubungkan
WiredTiger. WiredTiger merupakan storage engine yang digunakan MongoDB. Setiap satu database pada MongoDB dipetakan
ke banyak tabel WiredTiger. Pada lapisan atas (Various MongoDB Layers),
terdapat encryption Key Manager. Encryption Key Manager digunakan untuk membuat
master key yang nantinya akan disimpan di luar MongoDB , juga kunci yang
digunakan pada masing – masing database. Dalam data yang disimpan di
WiredTiger, Metadata akan dienkripsi menggunakan master key, sementara database
akan dienkripsi menggunakan kuncinya masing – masing. Jadi Encryption Key
Manager yang penting berperan dalam enkripsi database MongoDB dengan WiredTiger
ini.
Firebird
Firebird (juga disebut FirebirdSQL)
adalah sistem manajemen basis data relasional yang menawarkan fitur-fitur yang
terdapat dalam standar ANSI SQL-99 dan SQL-2003. RDBMS ini berjalan baik di
Linux, Windows, maupun pada sejumlah platform Unix. Firebird di diarahkan dan
di-maintain oleh FirebirdSQL Foundation. Ia merupakan turunan dari Interbase
versi open source milik Borland. Modul-modul kode baru ditambahkan pada
Firebird dan berlisensi di bawah Initial Developer’s Public License (IDPL),
sementara modul-modul aslinya dirilis oleh Inprise berlisensi di bawah
InterBase Public License 1.0. Kedua lisensi tersebut merupakan versi modifikasi
dari Mozilla Public License 1.1.Namun dalam perkembangannya, Interbase yang
komersial di-bundle oleh Borland menjadi Phoenix, sedangkan Firebird adalah
interbase yang dikembangkan oleh komunitas Open Source, sehingga menjadikannya
sebagai produk Database Server yang FREE. Open source DBMS ini dimotori oleh
para developer Interbase 6.x open-source.
Firebird tidak memiliki metode enkripsi
yang terintegrasi, namun ada banyak solusi yang bisa dilakukan. Cara pertama
adalah meng-enkripsi seluruh data di client sebelum menyimpan data ke kolom
database, dan mendekripsi ketika akan membacanya. Namun cara ini akan
menyulitkan saat kita akan melakukan pencarian dan peng-indeks-an.
Peng-indeks-an foreign key dan primary key masih bisa dilakukan, namun index
tidak bisa lagi dipakai saat melakukan pencarian data dengan kata kunci
“Dimulai dari’ atau menggunakan operator numeric, karena harus dilakukan
dekripsi dahulu untuk membandingkan data.
Solusi
kedua adalah dengan meng-enkripsi file sistem tempat database disimpan. Contoh
enkripsi yang bisa dilakukan adalah VeraCrypt, EncFS, BestScript;
Namun untuk Firebird 3, data yang
disimpan dalam database sudah bisa dienkripsi, namun tidak semuanya. Hanya
data, index dan blob pages saja. Untuk dapat meng-enkripsi keseluruhan database
harus memerlukan database-crypt plug-in.
SQLite
SQLite merupakan sebuah sistem
manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran
pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan
proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp.
SQLite
memiliki built-in untuk enkripsi yang dapat diimplementasikan, misalnya SEE,
wxSQLite, SQLCipher, SQLiteCrypt, botansqlite3, SQLiteCrypto.
Disini
akan dijelaskan salah satu metode enkripsi SQLite yang, yaitu SEE (SQLite
Encryption Extension). SEE merupakan add-on pada SQLite versi domain public
yang mengizinkan sebuah aplikasi untuk membaca dan menulis file database. 4
algoritme enkripsi yang berbeda yang diimplementasikan dalam SEE adalah : RC4,
AES128 in OFB mode, AES128 in CCM mode dan
AES256 in OFB mode. Versi dari SQLite yang memiliki SEE bisa
membaca dan menulis file database biasa menggunaakan verisi domain public
SQLite dan juga bisa membaca dan menulis file yang dienkripsi. Dalam satu
aplikasi bisa menggunakan perintah ATTACH supaya SQLite bisa berkomunikasi
secara kontinu dengan dua atau lebih file database yang dienkripsi ataupun
tidak dienkripsi. Setiap file database meiliki kunci enkripsinya endiri.
PostgreSQL
PostgreSQl menyediakan enkripsi
dalam beberapa level, dan menyediakan fleksibilitas dalam memproteksi data dari
database server theft, atau jaringan yang tidak aman. Enkripsi juga diperlukan
untuk melindungi data yang sensitive seperti rekam media atau transaksi
finansial.
Enkripsi penyimpanan password
Database password user disimpan
dengan metode hashing MD5, jadi admin tidak dapat menentukan password
sesungguhnya milik user. Jika MD5 enkripsi dipakai untuk authentikasi client,
password yang tidak di enkripsi tetap tidak terlihat oleh server karena
enkripsi MD5 pada client sudah dilakukan sebelum dikirim melalui jaringan.
Enkripsi untuk Kolom Tertentu
Enkripsi kolom tertentu menggunakan
fungsi library pgcrypto. Client akan memiliki kunci untuk dekripsi, yang akan
digunakan saat dia menerima data dai server. Data yang didekripsi dan kunci
dekripsi tersedia di dalam server saat data didekripsi dan saat client-server
berkomunikasi. Pada saat ini data dan kuncinya dapat dilihat oleh pihak yang
memiliki akses penuh ke server, misalnya admin.
Data Partition Encryption
Enkripsi ini bisa dilakukan pada
platform linux dengan menggunakan sebuah file system yaitu loopback device.
File system ini mengizinkan seluruh bagian file sistem dienkripsi di disk, dan
didekripsi oleh Sistem Operasi. Meng-enkripsi data sebagian menghindari data
yang tidak dienkripsi bisa dibaca dari drive (penyimpanan) jika drive atau
komputer nya dicuri.
Encrypting Password Across a Network
Metode authentikasi MD5 dengan
menduplikasi enkripsi password pada client sebelum dikirim melalui server.
Pertama-tama MD5 men-enkripsi berdasarkan username, dan men-enkripsi nya lagi
berdasarkan dari nilai (random salt) yang dikirimkan server ketika koneksi
database dilakukan. Nilai yang sudah di enkripsi dua kali inilah yang dikirim
ke server melalui jaringan.
Encrypting
Data Across A Network
Koneksi SSL men-enkripsi semua data
yang dikirim melalui jaringan : password, query, dan data yang dikembalikan.
File pg_hba.cof mengizinkan administrator untuk menspesifikasi host mana yang
bisa dipakai untuk koneksi non-enkripsi dan mana yang membutuhkan koneksi SSl.
Client juga bisa menspesifikasikan bahwa mereka terhubung ke server hanya
melalui SSL.
SSL
Host Authentication
Server dan client sama – sama
menyediakan koneksi SSL satu sama lain, hal ini dapat menghindari attack untuk
data yang dikirim, misalnya komputer yang berpura- pura menjadi server ,
sehingga bisa membaca password yang dikirim oleh client. Selain itu, cara ini
juga bisa menghindari man in the middle attacks.
Client
Side Encryption
Jika admin sistem untuk server tidak
bisa dipercaya, sangat penting untuk client men-enkripsi data nya, sehingga
data yang masuk ke server semuanya merupakan data yang dienkripsi.
MariaDB
MariaDB
adalah sistem manajemen database relasional yang dikembangkan dari MySQL.
MariaDB dikembangkan oleh komunitas pengembang yang sebelumnya berkontribusi
untuk database MySQL.
MariaDB
mendukung enkripi, dan enkripsinya didukung oleh XtraDB dan InnoDB Storage
Enginers. Sebagai tambahan, enkripsi nya juga didukung untuk Aria Storage
Engine, namun hanya untuk tabel yang dibuat dengan perintah ROW_FORMAT=PAGE. MariaDB mengizinkan pengguna untuk mengatur
fleksibilitas mengenai apa yang ingin dienkripsi. Dalam XtraDb atau InnoDB,
pengguna dapat memilih untuk men-enkripsi semua tablespaces (semua tabel),
tabel individu, atau semuanya kecuali tabel
individual.
Namun
enkripsi pada MariDB dibatasi dengan aturan – aturan tertentu, misalnya hanya
data dan hanya itu saja yang bisa dienkripsi. Metadata yang dikirimkan bersama
data tidak dienkripsi. Lalu,hanya MariaDB server saja yang tahu bagaiman
mendekripsi data, dan sebagainya.
Source : Web Resmi DBMS diatas
Tidak ada komentar:
Posting Komentar