Crear y gestionar claves

Las claves y los datos relacionados con claves están asociados con un almacén de claves. Puede crear varios almacenes de claves y claves, que se gestionan mediante cualquier interfaz SQL, por ejemplo ODBC. Antes de crear o importar una clave, primero debe crear el almacén de claves para que contenga la clave.

Importante: Dado que una clave se almacena como una tabla externa, no es capturada por una función normal de copia de seguridad/restauración. Asegúrese de realizar una copia de seguridad de la clave después de crearla. Debe guardar todas las claves, en el almacén de claves o exportándolas utilizando SHOW, para verificar las firmas en la base de datos de auditoría.
Para crear un almacén de claves, utilice la misma sintaxis que en el ejemplo siguiente:
CREATE KEYSTORE <name> TYPE <type> PASSWORD <password>;
<name>
Nombre del almacén de claves.
<type>
El valor es LOCAL, el único tipo soportado actualmente.
&amp;lt;password>
Contraseña que se utiliza como clave de cifrado por clave (KEK) para las claves criptográficas que cree y asocie con ese almacén de claves.

Para crear una clave en un almacén de claves, utilice el mandato siguiente:

CREATE CRYPTO KEY <keystore name>.<key name> TYPE <type>
<keystore name>
Nombre del almacén de claves.
<key name>
Nombre de la clave.
<type>
Tipo de cifrado. Los tipos soportados son claves asimétricas de DSA_KEYPAIR o DSA_KEYPAIR_2048 y claves asimétricas del tipo AES_256.

Netezza Performance Server utiliza una clave de cifrado basada en el almacén de claves para cifrar y descifrar todas las claves de dicho almacén.

Para importar una clave a un almacén de claves, utilice el mandato CREATE CRYPTO KEY con dos campos adicionales VALUE y PASSWORD, como en el ejemplo siguiente:

CREATE CRYPTO KEY <keystore name>.<key name> TYPE <type> VALUE <value> 
PASSWORD <password>
<keystore name>
Nombre del almacén de claves.
<key name>
Nombre de la clave.
<type>
Tipo de cifrado. Los tipos soportados son claves asimétricas de DSA_KEYPAIR o DSA_KEYPAIR_2048 y claves asimétricas del tipo AES_256.
<valor>
El par de claves (formulario cifrado) que desea importar al almacén de claves. La clave importada tiene un formato necesario que incluye tres partes separadas por el carácter de signo de dólar ($):
  • La primera parte de la clave es el valor salt utilizado para crear la clave basada en la contraseña. Está codificada en base64 de 16 bytes, produciendo una serie de 23 bytes rellenos. Netezza Performance Server utiliza PBKDF2-SHA256 para derivar la clave de contraseña a partir de la cadena de contraseña y la sal.
  • La segunda y tercera partes son la clave cifrada (32 bytes) y el vector de inicialización (16 bytes), que suman un total de 48 bytes codificados en base64 que producen una serie de 64 bytes. La clave está cifrada en modalidad CBC. Netezza Performance Server utiliza la biblioteca Botan para las funciones de codificación base64 y cifrado/descifrado.
&amp;lt;password>
Se utiliza para descifrar la clave <value> cuando se importa una clave.

A continuación se muestra un mandato de ejemplo para importar una clave criptográfica:

create crypto key mykeyst.mykey1 type aes_256 value
'c2vaXGjnR4b2Sj8hdRqaMQ==$q6fdHB4wfXNm3ySRpugjhzSUuTloPWa7MwhdBUKWUISK
fPJBcfSul/krWk3hG1+7' password 'mysecureword';
Se han añadido extensiones de lenguaje SQL para las operaciones de clave y almacén de claves, como se muestra en la tabla siguiente. Debe tener privilegios MANAGE SECURITY para utilizar estos mandatos.
Tabla 1. Extensiones de lenguaje SQL
Mandato Significado
CREATE keystore Crea un almacén de claves
SHOW keystore Visualiza la configuración de almacén de claves en formato resumido o detallado (VERBOSE)
ALTER keystore Cambia los parámetros de almacén de claves
DROP keystore Suprime un almacén de claves
CREATE CRYPTO KEY Establece una entrada de clave
SHOW CRYPTO KEY Visualiza detalles de entrada de clave
DROP CRYPTO KEY Suprime una entrada de clave