A partir de la release 1 de Oracle 11g, Oracle ofrece a los DBA's la posibilidad de encriptar los tablespaces al completo, para proteger datos sensibles en su interior y accesibles desde Sistema Operativo. Es decir, el objetivo de esta nueva funcionalidad no es proteger datos sensibles de usuarios de la Base de Datos, sino de proteger la información de los datafiles de tablespaces.
Para explicar la utilidad de esta funcionalidad, lo mejor es explicar situaciones en las que sin esta funcionalidad nuestros datos serian vulnerables. Por ejemplo, en el caso de que el fichero de un backup físico de un tablespace de base de datos llegase a manos no deseadas, podría ver algunos datos “en claro” sin problemas. A modo de ejemplo, una simple edición del tablespace (o un simple “cat”) que contuviera la tabla empleados, nos mostraría los campos varchar2 en claro, pudiendo extraer datos sensibles (no os lo creéis, probadlo!).
Para esta funcionalidad, Oracle utiliza el TDE – Transparent Data Encryption, mediante la creación de una Oracle Wallet que se almacena en disco. Por defecto, en la localización $ORACLE_BASE/admin/$ORACLE_SID/wallet, pero es recomendable cambiar su localización mediante el uso del parámetro ENCRYPTION_WALLET_LOCATION en el sqlnet.ora.
Para la creación de esta Wallet:
ALTER SYSTEM SET ENCRYPTION KEY AUTHENTICATED BY "myPassword";
El tablespace encriptado se puede crear de la siguiente manera:
CREATE TABLESPACE seguro_tbs
DATAFILE '/oradata/seguro_ts01.dbf.dbf' SIZE 1M
ENCRYPTION USING 'AES256'
DEFAULT STORAGE(ENCRYPT);
Si no se indica lo contrario, el algoritmo de encriptación usado es el AES256 (Advanced Encryption Standard), pero los siguientes algoritmos también están permitidos:
AES256, AES192, AES128 y 3DES168
Al reiniciar la base de datos, deberemos abrir la wallet para poder consultar los datos de los tablespaces encriptados:
ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "myPassword";
También podemos cerrarla en cualquier momento:
ALTER SYSTEM SET WALLET CLOSE;
Si no abrimos una wallet, el resultado de cualquier query sobre alguna tabla de dicho tablespace es el error ORA-28365 “wallet is not open”.
La consulta de si un tablespace está encriptado o no, se puede realizar desde la misma vista dba_tablespaces:
SQL> SELECT tablespace_name, encrypted FROM dba_tablespaces;
TABLESPACE_NAME ENCRYPTED
------------------------------ ---------
SYSTEM NO
SYSAUX NO
UNDOTBS1 NO
TEMP NO
SEGURO_TBS YES
Espero que os sea útil.
Oscar Paredes
IT Manager
Oracle DBA
como puedo hacer esa
Submitted by Anonimo (not verified) on 19 March, 2014 - 20:32
como puedo hacer esa encriptacion del tablespace en Oracle Express, ya que asi como tu lo has hecho yo tambien pero sobre la version Enterprise y requiero hacerlo sobre la version Express 11g
Por favor si tienen una
Submitted by Emilio (not verified) on 27 July, 2015 - 18:48