miércoles, 27 de agosto de 2014

ASO y HSM Wallet (Parte 1 de 2)

En el anterior artículo hablamos de cifrar datos mediante el uso de una fichero que almacena nuestra clave maestra (wallet), ahora veremos como asegurar ese fichero para, evitar ataques, es una capa más para tener mayores garantías de que nuestros datos están asegurados. 

Mini guía de Integración de Oracle Database con HSM Thales ncipher
Debido a anteriores experiencias laborales, estuve trabajando con esta tecnología, integrando los HSM de mi anterior compañía, Thales, con las Bases de Datos Oracle. HSM son las siglas de "Hardware Security Module" (Módulo de Seguridad Hardware).


Un HSM es un dispositivo criptográfico basado en hardware que genera, almacena y protege claves criptográficas y suele aportar aceleración hardware para operaciones criptográficas. Estos dispositivos pueden tener conectividad SCSI / IP u otras y aportar funcionalidad criptográfica de clave pública (PKI) de alto rendimiento que se efectúa dentro del propio hardware.


Oracle Database 11g Release 2 TDE cifra de forma transparente los datos que se almacenan en la base de datos Oracle, sin requerir ningún cambio de código en la aplicación que se ejecuta. Es compatible tanto con TDE cifrado de tabla y columna de cifrado TDE. El HSM asegura la clave maestra para cifrar tablespaces y tablas.

El HSM es usado en lugar del fichero Oracle Wallet para proveer un más alto nivel de garantía de seguridad, incluyendo:
  • Almacenamiento centralizado y gestión de las claves maestras. El fichero de clave ya no está en servidor de base de datos, reside en el hardware.
  • Gestión del ciclo de vida completo de la clave (s) de cifrado principal.
  • Mayor nivel de garantía de la seguridad, las claves nunca se almacenan en el dispositivo como texto plano.
  • Certificación FIPS 140-2 level 3 en el hardware. Añade resistencia a la intrusión física con fines de desmontaje o modificación, de manera que dificulta al máximo los ataques. Si se detecta la intrusión, el dispositivo debe ser capaz de borrar los parámetros de seguridad críticos. El Nivel 3 también incluye protección criptográfica eficaz y administración de claves, autenticación basada en la identidad y separación física o lógica entre las interfaces a través de las que se accede a los parámetros de seguridad crítica y se sale de ellos.
  • Soporte de fallos.

 Dependiendo de cómo esté tu instalación de la base de datos esta pequeña guía servirá para:
  • Crear e inicializar un nuevo Wallet protegido mediante un dispositivo HSM. Si no tienes ninguna tabla o tablespace cifrado.
  • Migrar de un Oracle Wallet, que actualmente cifra tablas y tablespaces a un Wallet protegido mediante un HSM.

Al utilizar Oracle TDE, Yo recomiendo utilizar un fichero Wallet separada para almacenar la clave de cifrado principalLa integración entre el HSM y Oracle TDE utiliza la API criptográfica PKCS # 11. La integración ha sido probado con éxito en, y sólo se admite en las siguientes configuraciones:


Para integrar Oracle Database 11g Release 2 TDE con un HSM tendremos que pasar por las siguientes fases:
  • Instalar Oracle Database 11g Release 2 y aplicar los correspondientes parches.
  • Instalar el dispositivo HSM.
  • Instalar el software de soporte y configurar el HSM.
  • Configurar Oracle Database 11g Release 2 TDE para usar el HSM.

Nos centraremos únicamente en la configuración de la base de datos, dado, que los otros pasos se salen del ámbito de esta guía, instalar la base de datos es algo trivial y lo relacionado con los HSM de Thales  se salen de ámbito de este blog, para cualquier duda al respecto, deberéis consultar la web del fabricante, o consultar a algún experto.

Configurar Oracle Database 11g Release 2 TDE para usar el HSM


Copiar la librería  PKCS #11 localizada en  /opt/nfast/toolkits/pkcs11/libcknfast-64.so (o libcknfast.so dependiendo de la arquitectura de tu Sistema operativo) a una de las siguientes localizaciones dependiendo del sistema operativo:

    • Red Hat Enterprise Linux 5 (x86) /opt/oracle/extapi/32/hsm/libcknfast.so
    • Solaris 10 SPARC (64-bit) /opt/oracle/extapi/64/hsm/libcknfast-64.so
    • IBM AIX (PPC64) /opt/oracle/extapi/64/hsm/libcknfast-64.so
Asegúrese de que el directorio existe y que oracle: oinstall es el propietario:grupo del
directorio con acceso de lectura.

Agregue el usuario oracle al grupo nFast. Puede verificar esta adición al ver la entrada correspondiente el grupo nFast en /etc/group.

En el archivo $TNS_ADMIN /sqlnet.ora  añadir o editar las líneas siguientes, dependiendo de si está migrando desde un Oracle wallet:


Autentícate en la base de datos usando uno de estos comandos:
  • Si estás en la shell con UNIX: sqlplus / as sysdba
  • Si estás en SQL*Plus: connect / as sysdba

Cree la clave de cifrado principal dentro del HSM usando uno de los siguientes comandos, dependiendo de cómo desea proteger la clave y si está migrando desde un Oracle wallet:

Protección mediante una tarjeta del juego de operador de HSM (OCS):


Protección de clave OCS requiere una tarjeta OCS para ser insertada en la ranura del módulo. Debe Especificar el nombre de la tarjeta OCS después de la clave de esta,  para identificar una tarjeta OCS en particular en el dominio de seguridad del HSM. 
En el archivo cknfastrc, debe establecer CKNFAST_LOADSHARING = 1

Protección mediante una tarjeta "soft", tarjeta virtual:

Protección de clave soft debe especificar el nombre de la tarjeta soft después de la clave de esta, en el archivo cknfastrc, debe establecer CKNFAST_LOADSHARING = 1

Protección solo HSM:



Esta forma admite cualquier clave dada, únicamente ha de ser alfanumérica de 8 dígitos, en el archivo cknfastrc, debe establecer CKNFAST_FAKE_ACCELERATOR_LOGIN=1