Kebutuhan akan Informasi yang Aman
Oracle Database 10g Release 2 Transparent Database Encryption menyederhanakan encryption dari informasi personal yang sensitif seperti nomor credit card dan nomor jaminan sosial. Transparent Data Encryption memenuhi kebutuhan untuk menyimpan encryption routines dalam aplikasi-apalikasi yang telah ada dan secara dramatis menurunkan biaya dan kompleksitas dari encryption. Dengan beberapa perintah sederhana, data aplikasi yang sensitif dapat di-encrypt.
Automatic Encryption dari Sensitive Information
Banyak solusi encryption mengharuskan panggilan spesifik untuk fungsi encryption dalam kode aplikasi. Hal ini mahal karena khususnya mengharuskan pemahaman lebih lanjut dari sebuah aplikasi sebaik kemampuan untuk menulis dan me-maintain software. Secara umum, banyak organisasi tidak memiliki waktu atau keahlian untuk memodifikasi aplikasi yang telah ada untuk membuat panggilan untuk encryption routines. Oracle Transparent Data Encryption menempatkan encryption problem dengan menyimpan encryption didalam Oracle database.
Application logic dijalankan melalui SQL akan terus bekerja tanpa modifikasi. Karena itu, aplikasi dapat menggunakan Syntax yang sama untuk memasukkan data kedalam sebuah tabel aplikasi dan Oracle database secara otomatis meng-encrypt data sebelum menulis informasi ke disk. Operasi-operasi yang dipilih berikutnya akan memiliki data yang secara transparan di-decrypt sehingga aplikasi akan terus bekerja secara normal.
Menggunakan sebuah Encryption Key
Oracle Transparent Data Encryption menyediakan kunci infrasuktur manajemen yang diharuskan untuk penerapan encryption. Encryption bekerja dengan cara menghapus clear text data mendekati sebuah secret, dikenal sebagai key, kedalam sebuah encryption program. Encryption program meng-encrypt clear text data menggunakan key yang tersedia dan mengembalikan data encrypted. Secara historis, beban membuat dan menjaga secret atau key telah berada pada aplikasi. Oracle Transparent Data Encryption memecahkan masalah ini secara otomatis dengan menghasilkan sebuah master key untuk database tersebut. Pada starting up Oracle database, seorang administrator harus membuka sebuah objek yang dikenal dengan Oracle Wallet dengan sebuah password yang terpisah dari sistem atau password DBA. Wallet menggunakan sertifikat dari Certificate Authority. Administrator kemudian meng-instal database master key. Master key secara otomatis dihasilkan.
Process TDE
Meskipun otorisasi dan autentikasi mekanisme keamanan secara efektif melindungi data dalam database, mereka tidak menghalangi akses ke file-file sistem operasi dimana data disimpan. Transparent Data Encryption memungkinkan encryption dari sensitive data dalam kolom database seperti ia ditempatkan, menjaga, dan diperoleh kembali dari file-file sistem operasi.
TDE menggunakan External Security Module (ESM) untuk menciptakan kunci-kunci encryption, untuk menyediakan fungsi-fungsi untuk encryption dan decryption, dan untuk menyimpan kunci-kunci dengan aman didalam dan diluar database.
Ketika sebuah tabel berisi kolom-kolom encrypted, sebuah single column key digunakan tanpa memperhatikan jumlah kolom encrypted dalam tabel tersebut. Kunci-kunci untuk seluruh tabel yang berisi kolom-kolom encrypted disimpan dalam sebuah single kolom dalam sebuah tabel dictionary dalam database. Kolom tersebut di-encrypt dengan master key dari database server, mencegah berbagai penggunaan kunci tanpa adanya akses otorisasi. Master key disimpan dalam sebuah wallet diluar database. Wallet tersebut dibuat menggunakan Oracle Wallet Manager, dan master key dihasilkan oleh ESM.
Mengimplementasikan Transparent Data Encryption
- Anda perlu membuat sebuah wallet. Hal ini dapat dilakukan baik dengan menggunakan Oracle Wallet Manager atau membiarkan software Transparent Data Encryption (TDE) membuatnya secara otomatis ketika direktori untuk wallet tersebut dispesifikkan dalam file SQLNET.ORA . Secara default, sebuah unencrypted wallet (cwallet.sso) dibuat ketika database diinstall. Bagaimana pun juga, sebuah encrypted wallet (ewallet.p12) direkomendasikan untuk menggunakannya dengan TDE. Berikut beberapa contoh dari sebuah entry untuk file SQLNET.ORA anda:
ENCRYPTION_WALLET_LOCATION= (SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=/opt/oracle/product/10.2.0/db_1/))) - Set master key dari dalam instance anda :
ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY <password>; - Open wallet dari dalam instance anda (future):
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY <password>; - Membuat tables yang berisi column encrypted :
CREATE TABLE emp (
first_name VARCHAR2(128),
last_name VARCHAR2(128),
empID NUMBER ENCRYPT NO SALT,
salary NUMBER(6) ENCRYPT USING ’3DES168′,
comm NUMBER(6) ENCRYPT
);