Cifra i dati nel database di origine

La cifratura trasparente dei dati (TDE) cifra in modo trasparente i dati a riposo in un Oracle Database. Arresta i tentativi non autorizzati del sistema operativo di accedere ai dati del database memorizzati nei file, senza influire sul modo in cui le applicazioni accedono ai dati mediante SQL. TDE è completamente integrato con Oracle Database e può cifrare interi backup del database (RMAN), esportazioni Data Pump, intere tablespace di applicazione o colonne riservate specifiche. I dati cifrati rimangono cifrati nel database, indipendentemente dal fatto che si trovino nei file di memorizzazione delle tablespace, nelle tablespace temporanee, nelle tablespace di undo o in altri file quali i redo log.

Determinare se TDE è abilitato nel database di origine

Quando la cifratura trasparente dei dati (TDE) non è abilitata nel database di origine, i dati non vengono cifrati quando si esegue la migrazione del database in Oracle Cloud Infrastructure (OCI) o durante il recupero di emergenza. È necessario cifrare manualmente i dati non cifrati. Una volta entrati in OCI, tutti i nuovi dati vengono cifrati automaticamente.

  1. Determinare se la tablespace è cifrata.
    SQL> select tablespace_name, encrypted from dba_tablespaces;

    Quando la tablespace non è cifrata, l'output sarà simile al seguente:

    TABLESPACE_NAME 	       		ENC
    ------------------------------ ---
    SYSTEM                          NO
    SYSAUX                          NO
    UNDOTBS1                        NO
    TEMP                            NO
    USERS			      NO
  2. Trovare i file di dati del database associati (. dbf ) nel file system.
    SQL> select TABLESPACE_NAME, FILE_NAME from dba_data_files;

    L'output sarà simile al seguente:

    TABLESPACE_NAME
    ------------------------------
    FILE_NAME
    
    SYSTEM
    /opt/oracle/oradata/ORCLCDB/system01.dbf
    
    SYSAUX
    /opt/oracle/oradata/ORCLCDB/sysaux01.dbf
    
    UNDOTBS1
    /opt/oracle/oradata/ORCLCDB/undotbs01.dbf
    
    USERS
    /opt/oracle/oradata/ORCLCDB/users01.dbf

Abilita cifratura TDE nel database di origine

La cifratura trasparente dei dati (TDE) consente di cifrare i dati riservati memorizzati nelle tabelle e nelle tablespace. I dati cifrati vengono decifrati in modo trasparente per un utente o un'applicazione del database che dispone dell'accesso ai dati.

  1. Andare alla directory $ORACLE_BASE nel database di origine.
    bash-4.2$ pwd
    /opt/oracle/admin/ORCLCDB
  2. Creare una directory denominata wallet.
    $ mkdir wallet
  3. Creare il wallet insieme a una password sicura che utilizzi una combinazione di caratteri alfanumerici.
    Questo passo crea e apre il wallet. Dopo l'apertura del database, il wallet rimane aperto finché il wallet non viene chiuso in modo esplicito oppure il database viene chiuso, al momento della chiusura automatica del wallet.
    SQL> alter system set encryption key identified by "wallet_password";
  4. Riaprire un wallet chiuso dopo il riavvio del database.
    SQL> alter system set wallet open identified by "wallet_password";
  5. Cifra la tablespace.
    Il codice riportato di seguito utilizza la cifratura AES-128.
    alter tablespace system encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/system01.dbf','/opt/oracle/oradata/ORCLCDB/system01_enc.dbf');
    
    alter tablespace sysaux encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/sysaux01.dbf','/opt/oracle/oradata/ORCLCDB/sysaux01_enc.dbf');
    
    alter tablespace undotbs1 encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/undotbs01.dbf','/opt/oracle/oradata/ORCLCDB/undotbs01_enc.dbf');
    
    alter tablespace users encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/users01.dbf','/opt/oracle/oradata/ORCLCDB/users01_enc.dbf');
    
  6. Verificare che la tablespace sia cifrata.
    SQL> select tablespace_name, encrypted from dba_tablespaces;

    L'output sarà simile al seguente:

    TABLESPACE_NAME 	       ENC
    ------------------------------ ---
    SYSTEM			    YES
    SYSAUX			    YES
    UNDOTBS1                       YES
    TEMP			      NO
    USERS			     YES
  7. Verificare che i file di dati del database associati (. dbf ) nel file system siano cifrati.
    SQL> select TABLESPACE_NAME, FILE_NAME from dba_data_files;

    L'output sarà simile al seguente:

    TABLESPACE_NAME
    ------------------------------
    FILE_NAME
    
    SYSTEM
    /opt/oracle/oradata/ORCLCDB/system01_enc.dbf
    
    SYSAUX
    /opt/oracle/oradata/ORCLCDB/sysaux01_enc.dbf
    
    UNDOTBS1
    /opt/oracle/oradata/ORCLCDB/undotbs01_enc.dbf
    
    USERS
    /opt/oracle/oradata/ORCLCDB/users01_enc.dbf