Producing Password-based Encrypted Backups

Realizar operações de backup com criptografia pelo RMAN, protege os arquivos de potenciais acessos indevidos, aumentando assim a segurança das informações que estão no banco de dados. Este recurso está disponível apenas na Edição Enterprise, exige um licenciamento a parte (Oracle Advanced Security) e precisa que o valor do parêmetro COMPATIBLE seja igual ou acima de 10.2.0. Neste artigo, vamos explorar um dos três possíveis métodos de criptografia no RMAN, que seria o Password-based, onde no momento do backup, informamos uma senha para que a operação seja realizada. Esse tipo de criptografia não exige que o TDE (Transparent Data Encryption) esteja habilitado, e é ideal para os casos de backups pontuais, que devem ser enviados para um agente externo, por exemplo. Obviamente, caso não tenhamos essa senha guardada, não é possível realizar o restore dos arquivos sem a mesma.

No RMAN, podemos observar o algoritmo padrão de criptografia, conforme abaixo:

[oracle@oel8 ~]$ rman target /
 
Recovery Manager: Release 18.0.0.0.0 - Production on Thu Jun 24 05:26:48 2021
Version 18.13.0.0.0
 
Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.
 
connected to target database: RMANDB (DBID=3825250984)
 
RMAN> SHOW ENCRYPTION ALGORITHM;
 
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name RMANDB are:
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

Caso precisemos alterar este algoritmo, podemos consultar os disponíveis na View abaixo:

SQL> SELECT ALGORITHM_NAME FROM V$RMAN_ENCRYPTION_ALGORITHMS;
 
ALGORITHM_NAME
----------------------------------------------------------------
AES128
AES192
AES256

Tirando isso, não temos parâmetros persistentes do RMAN para realizar o backup com criptografia password-based. Devemos definir o seu uso em tempo de execução, conforme exemplo abaixo:

RMAN> SET ENCRYPTION ON IDENTIFIED BY oracle ONLY;
 
executing command: SET encryption
using target database control file instead of recovery catalog
 
RMAN> BACKUP TABLESPACE USERS TAG 'BSS';
 
Starting backup at 2021-06-24:05:31:27
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=107 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=/oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf
channel ORA_DISK_1: starting piece 1 at 2021-06-24:05:31:27
channel ORA_DISK_1: finished piece 1 at 2021-06-24:05:31:28
piece handle=/oracle/fra/RMANDB/backupset/2021_06_24/o1_mf_nnndf_BSS_jf8jpzor_.bkp tag=BSS comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2021-06-24:05:31:28
 
Starting Control File and SPFILE Autobackup at 2021-06-24:05:31:28
piece handle=/oracle/fra/RMANDB/autobackup/2021_06_24/o1_mf_s_1076045488_jf8jq1d7_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2021-06-24:05:31:31

No comando LIST, não é possível distinguir se o backupset está criptografado ou não:

RMAN> LIST BACKUP TAG 'BSS';
 
 
List of Backup Sets
===================
 
 
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
337     Full    13.25M     DISK        00:00:01     2021-06-24:05:31:28
        BP Key: 366   Status: AVAILABLE  Compressed: NO  Tag: BSS
        Piece Name: /oracle/fra/RMANDB/backupset/2021_06_24/o1_mf_nnndf_BSS_jf8jpzor_.bkp
  List of Datafiles in backup set 337
  File LV Type Ckp SCN    Ckp Time            Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ------------------- ----------- ------ ----
  7       Full 2974262    2021-06-24:05:31:27              NO    /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf

Com a consulta abaixo, percebemos que o mesmo foi criptografado:

RMAN> SELECT S.RECID AS "BS_REC", P.RECID AS "BP_REC", P.ENCRYPTED FROM V$BACKUP_PIECE P, V$BACKUP_SET S WHERE P.SET_STAMP = S.SET_STAMP AND P.SET_COUNT = S.SET_COUNT AND P.TAG ='BSS';
 
    BS_REC     BP_REC ENC
---------- ---------- ---
       337        366 YES

O backupset gerado só poderá ser utilizado caso o analista possua a senha usada no momento do backup. Em outro artigo, exploraremos o seu uso em operação de restore.

Obs: Este procedimento foi criado pelo senhor Ahmed Baraka (www.ahmedbaraka.com) e foi apenas reproduzido por mim em um laboratório pessoal para fins de aprendizado.

Leave a Comment

Your email address will not be published.