Oracle Transparent data encrytion (TDE) , tutoriel

Sécurité Oracle Ajouter un commentaire

TDE  (Transparent Data Encryption) permet comme son nom l’indique le chiffrement transparent des données d’une table ou d’un Tablespace.
Transparent cette modification qui peut être faite à priori ou a posteriori ne nécessite aucune modification du code des programmes.
Techniquement l’authentification nécessaire à la lecture des données non cryptées est faite par un fichier externe associé à la base , un ‘Wallet’ Oracle.

Il permet d’éviter que des utilisateurs malveillants accèdent aux données OFFLINe, c’est à dire aux données stockées physiquement dans les fichiers en court-circuitant SQL.

Une simple commande Unix
$> strings mon_fichier.dbf
suffit à voir les données ASCII en clair. ce qui pour les CHAR et VARCHAR est très pratique.

Nous allons  détailler ici les étapes necessaires à la mise en place du chiffrement de données sur les colonnes d’une table. Bonne lecture.

1) création d’un Wallet.

Lancer OWM : Wallet /new donner un pwd, ne pas creer de certificat de securite additionnel
ignorer les warning
sauvegarder le wallet dans une directory accessible

On peut vérifier au niveau de l’OS la création d’un fichier wallet :
$> ls -l /data/pprqu/wallet
-rw——-  1 oracle dba 7917 2010-07-02 11:07 ewallet.p12

2) configurer la  base pour utiliser le wallet
rajouter dans sqlnet.ora ($ORACLE_HOME/network/admin/sqlnet.ora)
l’emplacement du Wallet.

WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = /data/pprqu/wallet)
)
)

tester la validité des paramaetres avec un eventuel
$> lsnrctl reload

3) ouvrir le Wallet

SQL> ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY  “mmxlv3ipu”;
– Attention aux guillemets !!!!!!!!!!!
– sensible à la casse en plus !!! (11g style !)

rem : on peut eviter cette ouverture manuelle à chaque redémarrage de la base, avec un AUTOLOGIN WALLET

4) créer le mot de passe de la clé de chiffrement principale

SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY “mmxlv3ipu”

!!!!!!!!!!!! doit etre le meme mot de passe sinon :
ORA-28353: failed to open wallet

L’Algorithme de chiffrement par défaut est AES192. On peut en choisir d’autres plus ou moins complexes …voir la doc.

rem : cette commande est valide tant que la base n’est pas redémarrée…

5) chiffrer la colonne confidentielle

SQL> alter table emp_cryptee modify( ename encrypt)
Table altered.

Faire un commentaire