Cómo habilitar el cifrado/encriptación en Oracle con ASO

Cuando instalamos una base de datos Oracle , tenemos que tener en cuenta que la instalación por defecto configura muchos parámetros de seguridad, pero hay diversos elementos que no son seguros. De hecho, la información entre las aplicaciones y Oracle por defecto no está cifrada y un hacker podría capturar con un sniffer parte de la información e intentar un ataque.

Para mejorar nuestra base de datos Oracle, podemos utilizar un producto denominado Oracle Advanced Security (ASO). ASO es un producto que permite mejorar la seguridad de Oracle. Entre sus características principales permite:

– Habilitar sistemas de autenticación más fuertes tal como Radius, Kerberos o Certificados.
– Habilitar el cifrado de las comunicaciones de la Oracle Network.
– Habilitar el cifrado de los tablespaces (acceso a los ficheros físicos cifrados).
– Habilitar el backup cifrado en disco.

http://www.oracle.com/lad/products/database/options/advanced-security/overview/index.html

 

ASO viene como un componente que podemos añadir a la versión Oracle Enterprise. Una vez añadido, podemos acceder a la configuración de red de oracle con el comando netmgr, y ver que aparecen un conjunto de opciones nuevas de seguridad. Una de ellas es la pestaña Encryption, que es la que nos permite configurar el cifrado transparente de las aplicaciones.

 

Cifrado con Oracle Advanced Security
Cifrado con Oracle Advanced Security

 

En esta pestaña debemos indicar si lo que estamos configurando es el SERVER o el CLIENT, si el cifrado es obligatorio en los dos sentidos (required), una semilla para generar las claves del cifrado y los algoritmos de cifrado (AES, 3DES, RC4..). Este comando debemos ejecutarlo y configurarlo tanto en el servidor donde está instalado Oracle, como en los clientes que queremos que la información vaya cifrada. En el caso del cliente, si queremos cifrar la comunicación de las aplicaciones, debemos instalar las librerías del cliente de Oracle.

http://www.oracle.com/technetwork/topics/winsoft-085727.html

 

Una vez habilitado, ya sólo nos queda probar que el cifrado funciona. Para ello, abrimos dos sesiones en el servidor de Oracle de SQL Plus para simular la conexión del cliente y consultamos la información de la sesión del usuario con la vista v$session_connect_info, filtrando el usuario con el que hemos iniciado sesión en la vista v$session.  Podemos utilizar esta consulta:

 

select authentication_type, osuser, network_service_banner, Client_connection
from v$session_connect_info
where sid = (select sid from v$session where username = ‘HR’);

 

Cifrado activado en sqlplus
Cifrado activado en sqlplus

 

Si nos fijamos en la salida de la columna network_service_banner, veremos que indica que está cifrando la red de Oracle usando el algoritmo AES256.

 

Cómo habilitar el cifrado/encriptación en Oracle con ASO