Creare e gestire le chiavi

Le chiavi e i dati relativi alle chiavi sono associati a un keystore. È possibile creare più keystore e chiavi, che vengono gestiti attraverso qualsiasi interfaccia SQL, come ODBC. Prima di creare o importare una chiave, è necessario creare il keystore che la contiene.

Importante: poiché una chiave è memorizzata come una tabella esterna, non viene catturata da una normale funzione di backup/ripristino. Assicurarsi di eseguire il backup della chiave dopo averla creata. È necessario salvare tutte le chiavi, nel keystore o esportandole tramite SHOW, per verificare le firme nel database di audit.
Per creare un keystore, utilizzare la sintassi riportata nell'esempio seguente:
CREATE KEYSTORE <name> TYPE <type> PASSWORD <password>;
<nome>
Il nome del keystore.
<type>
Il valore è LOCAL, l'unico tipo attualmente supportato.
<password>
Password utilizzata come chiave di crittografia (KEK) per tutte le chiavi crittografiche create e associate a quel keystore.

Per creare una chiave in un keystore, utilizzare il seguente comando:

CREATE CRYPTO KEY <keystore name>.<key name> TYPE <type>
<nome archivio chiavi>
Nome del keystore.
<nome chiave>
Nome della chiave.
<type>
Il tipo di crittografia. I tipi supportati sono chiavi asimmetriche di tipo DSA_KEYPAIR o DSA_KEYPAIR_2048 e chiavi simmetriche di tipo AES_256.

Netezza Performance Server utilizza una chiave di crittografia basata sul keystore per crittografare e decrittografare tutte le chiavi in tale keystore.

Per importare una chiave in un keystore, si usa il comando CREATE CRYPTO KEY con due campi aggiuntivi VALUE e PASSWORD, come nel comando seguente:

CREATE CRYPTO KEY <keystore name>.<key name> TYPE <type> VALUE <value> 
PASSWORD <password>
<nome archivio chiavi>
Nome del keystore.
<nome chiave>
Nome della chiave.
<type>
Il tipo di crittografia. I tipi supportati sono chiavi asimmetriche di tipo DSA_KEYPAIR o DSA_KEYPAIR_2048 e chiavi simmetriche di tipo AES_256.
<valore>
La coppia di chiavi (in forma criptata) che si desidera importare nel keystore. La chiave importata ha un formato obbligatorio che comprende tre parti separate dal segno del dollaro ($):
  • La prima parte della chiave è il valore del sale utilizzato per creare la chiave in base alla password. Si tratta di 16 byte codificati in base64, che risultano in una stringa di 23 byte imbottiti. Netezza Performance Server utilizza PBKDF2-SHA256 per ricavare la chiave password dalla stringa di password e dal sale.
  • La seconda e la terza parte sono la chiave crittografata (32 byte) e il vettore di inizializzazione (16 byte), per un totale di 48 byte codificati base64 che danno luogo a una stringa di 64 byte. La chiave viene crittografata in modalità CBC. Netezza Performance Server utilizza la libreria Botan per le funzioni di codifica base64 e di codifica/decodifica.
<password>
Utilizzato per decifrare la chiave <valore> quando si importa una chiave.

Di seguito è riportato un esempio di comando per importare una chiave crittografica:

create crypto key mykeyst.mykey1 type aes_256 value
'c2vaXGjnR4b2Sj8hdRqaMQ==$q6fdHB4wfXNm3ySRpugjhzSUuTloPWa7MwhdBUKWUISK
fPJBcfSul/krWk3hG1+7' password 'mysecureword';
Sono state aggiunte estensioni del linguaggio SQL per le operazioni sulle chiavi e sul keystore, come mostrato nella tabella seguente. Per utilizzare questi comandi è necessario disporre dei privilegi di MANAGE SECURITY.
Tabella 1. Estensioni del linguaggio SQL
Comando Significato
Crea memorizzazione chiavi Crea un keystore
MOSTRA il keystore Visualizza la configurazione del keystore in formato riassuntivo o dettagliato (VERBOSE)
ALTER keystore Modifica i parametri del keystore
GETTARE il keystore Elimina un keystore
CREARE UNA CHIAVE CRITTOGRAFICA Imposta una voce di chiave
MOSTRA CHIAVE CRITTOGRAFICA Visualizza i dettagli dell'inserimento dei tasti
RILASCIARE LA CHIAVE CRITTOGRAFICA Elimina una voce di chiave