În acest articol vă voi arăta cum se folosește serverul Oracle Key Vault pentru a stoca un virtual wallet partajat pentru serverul Oracle Database. Oracle Key Vault este un  centralizator de chei care oferă gestionarea ciclului de viață al cheilor, alerte (de ex. Expirarea cheii), rapoarte și alte funcții administrative.

Implicit, cheia de criptare utilizată pentru criptarea în TDE este stocată într-un software wallet în sistemul de fișiere al serverului de baze de date. Problemele pe care le aveți cu wallet-ul pe un sistem de fișiere în implementări TDE mari sunt
– erori de utilizator precum parolă uitată,
– skip peste rotirea cheilor,
– ștergerea accidentală a wallet-ului,
– etc

Voi începe să configurez o cheie de criptare utilizând TDE cu un software wallet pe sistemul de fișiere. Nu voi detalia prea mult acest proces deoarece este identic cu articolul anterior de aici. În cele din urmă, voi migra wallet-ul în Oracle Key Vault.

Pentru mai multe informații despre Oracle Key Vault, faceți clic aici.

Environment
Mediul pe care l-am folosit constă în următoarele:

  • Oracle Database 12.2.0.1 instalat pe Oracle Linux Server release 7.5
  • Oracle Key Vault server is version 12.1.0.8.0

Pentru instalarea Oracle Key Vault am folosit o mașină virtuală cu resursele minime: x86–64 2 cores, 8 GB of RAM, 210 GB disk space, interfața de rețea este din aceeași clasa cu mașina virtuală din care face parte și baza de date, intre ele nu exista nici un firewall.

Kitul de instalare l-am descarcat de pe https://edelivery.oracle.com/  după ce am cautat după Key Vault și am selectat Oracle Key Vault 12.2.0.8.0

Instalare Oracle Key Vault

Mașina virtuală a bootat de pe discul OKV BP8 Disc 1 descărcat mai devreme.

Meniul cu care suntem întâmpinați la prima bootare este cel din imaginea de mai jos:

1

După câteva minute trebuie sa alegem o parola pe care o vom folosi mai târziu

2

Dacă parola tastata îndeplinește rigorile de complexitate impuse de Oracle Key Vault atunci vom primi mesajul:  passphrase was successfully configured. Press Enter. După care va trebui să selectăm interfața de rețea din următorul meniu:

3

Selectam interfața afișată și trecem la următorul meniu

4

Ultimul meniu din timpul instalării este cel în care trebuie sa alegem ip-ul appliance-ului și gateway-ul acestuia:

5

După reboot suntem întâmpinați de următorul meniu:

6

Post instalare Oracle Key Vault

După ce s-a finalizat procesul de instalare vor trebui realizați pașii post instalare accesând dintr-un browser pagina https cu ip-ul appliance-ului setat mai devreme.

Primul pas este să re-introducem parola setată mai devreme în timpul instalării

7

Dacă parola este introdusă corect atunci este afișat meniu de post-instalare

8

După completarea tuturor câmpurilor ne putem loga cu utilizatorul și parola setată în pașii post-install

9

Configurare Transparent Data Encryption

Pentru următorul pas ne mutam pe mașina virtuală unde este instalată baza de date. In cazul meu baza este instalată cu toate opțiunile implicite iar pentru a folosi TDE cu software wallet am urmat pașii de mai jos. Pentru documentarea detaliată a ceea ce presupune software wallet urmăriți articolul Transparent Data Encryption în Oracle 11g.

$ cat sqlnet.ora
#SQLNET.AUTHENTICATION_SERVICES = (NONE)

ENCRYPTION_WALLET_LOCATION=
(SOURCE=
(METHOD=FILE)
(METHOD_DATA=
(DIRECTORY=/opt/oracle/product/12.2.0/dbhome_1/network/admin/wallet)
)
)
$ sqlplus "/ as sysdba"

SQL> startup

SQL> select INST_ID,WRL_TYPE,STATUS from gV$encryption_wallet;

INST_ID WRL_TYPE STATUS
---------- -------------------- ------------------------------
1 FILE NOT_AVAILABLE

SQL> alter system set encryption key identified by "*****";

System altered.

SQL> select INST_ID,WRL_TYPE,STATUS from gV$encryption_wallet;

INST_ID WRL_TYPE STATUS
---------- -------------------- ------------------------------
1 FILE OPEN

SQL>

Configurare Endpoints și instalarea clientului Key Vault

Ne logam cu utilizatorul și parola setate la pasul post-install

10

In tabul Keys & Wallets click pe butonul Create se completeaza numele wallet-ului dupa care click pe Save

11

Adăugare Endpoint, în tabul Endpoints click pe Add iar în dreptul câmpului Default Wallet se selectează wallet-ul creat la pasul anterior

13

Când este afisată pagina Endpoint, copiați conținutul câmpului Enrollment Token

14

Instalare client Key Vault

In pagina de login click pe Endpoint Enrollment and Software Download

15

După ce se deschide pagina Enroll Endpoint & Download Software se completează câmpul Enrollment Token cu valoarea token-ului copiat mai devreme

16

După ce ați făcut submit la token click pe Enroll și salvați fișierul okvclient.jar pe mașina virtuala unde este instalata baza de date

$ /opt/oracle/product/12.2.0/dbhome_1/jdk/bin/java -jar okvclient.jar -d /home/oracle/okvutil -v
Detected JAVA_HOME: /opt/oracle/product/12.2.0/dbhome_1/jdk/jre
Enter new Key Vault endpoint password ( for auto-login):
Confirm new Key Vault endpoint password:
The endpoint software for Oracle Key Vault installed successfully.
$

Se rulează script root.sh cu utilizatorul root pentru a copia librăria liborapkcs.so în directorul /opt/oracle/extapi/64/hsm/oracle/1.0.0/

# /home/oracle/okvutil/bin/root.sh
Creating directory: /opt/oracle/extapi/64/hsm/oracle/1.0.0/
Copying PKCS library to /opt/oracle/extapi/64/hsm/oracle/1.0.0/
Setting PKCS library file permissions
Installation successful.
[root@localhost okvutil]#

Migrarea Wallet-ului

Se închide wallet-ul din baza de date:

SQL> alter system set encryption wallet close identified by "****";

Se încarcă wallet-ul existent in Key Vault:

$/home/oracle/okvutil/bin/okvutil upload -l /opt/oracle/product/12.2.0/dbhome_1/network/admin/wallet -t WALLET -g orcl_wallet

Se modifica tipul wallet-ului în fișierul  $ORACLE_HOME/network/admin/sqlnet.ora din FILE în HSM:

$ cat sqlnet.ora
#SQLNET.AUTHENTICATION_SERVICES = (NONE)

ENCRYPTION_WALLET_LOCATION=
(SOURCE=
(METHOD=HSM)
(METHOD_DATA=
(DIRECTORY=/opt/oracle/product/12.2.0/dbhome_1/network/admin/wallet)
)
)
$

Se verifica status-ul wallet-ului din view-ul v$encryption_wallet

SQL> select INST_ID,WRL_TYPE,STATUS from gV$encryption_wallet;

INST_ID WRL_TYPE STATUS
---------- -------------------- ------------------------------
1 FILE NOT_AVAILABLE
1 HSM CLOSED

SQL>

Migrarea cheilor în HSM:

SQL> alter system set encryption key identified by "****" migrate using "*****";

Se verifica din nou status-ul din view-ul v$encryption_wallet

SQL> select INST_ID,WRL_TYPE,STATUS from gV$encryption_wallet;

INST_ID WRL_TYPE STATUS
---------- -------------------- ------------------------------
1 FILE NOT_AVAILABLE
1 HSM OPEN

SQL>

In final se poate observa din Key Vault in dreptul endpoint-ului creat de noi status Enrolled iar daca facem click pe endpoint name regasim Wallet Items

17

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare /  Schimbă )

Fotografie Google

Comentezi folosind contul tău Google. Dezautentificare /  Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare /  Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare /  Schimbă )

Conectare la %s