Qu'est-ce qu'EDT et pourquoi est-ce important?
TDE (Transparent Data Encryption) vous permet de crypter les données sensibles stockées dans les tables, les tablespaces et même les sauvegardes de bases de données. Cette fonction est essentielle pour protéger les informations sensibles en cas d'accès non autorisé.
Important :
Avant d'appliquer le TDE, assurez-vous que vous disposez d'une licence "Option de sécurité avancée".Cette licence est disponible moyennant un coût supplémentaire avant de poursuivre. Sur Oracle Autonomous Databases et Database Cloud Services, elle est incluse, configurée et activée, mais pas sur les autres architectures.
Note : Ces tests sont simulés sur une base de données Oracle 21.3.0.0.0. La simulation émule un environnement "autonome", sans multitenant. Je ferai d'autres entrées spécifiques à TDE dans des environnements avec architecture multitenant.
Comment le cryptage des données fonctionne pour l'utilisateur.
Une fois que les données sont cryptées, elles sont décryptées de manière transparente pour les utilisateurs ou applications autorisés lorsqu'ils y accèdent. En d'autres termes, le chiffrement et le déchiffrement des données pour les utilisateurs autorisés sont transparents.
Comment le TDE empêche-t-il le décryptage non autorisé ?
Le TDE crypte les données sensibles stockées dans les fichiers de données. Oracle propose Transparent Data Encryption (TDE) pour déchiffrer ou protéger ces fichiers. Pour empêcher tout décryptage non autorisé, TDE stocke les clés de cryptage dans un module de sécurité externe à la base de données.
Les modules suivants sont disponibles à cet effet auprès d'Oracle :
- Portefeuilles TDE: "caretar de Wallets". Il s'agit des portefeuilles utilisés pour le TDE. Dans les versions précédentes, ils étaient simplement appelés "wallets".
- Keystore externe: les keystores externes(tels que Oracle Key Vault, OCI Key Management Service (KMS)).
- Keystores: terme qui englobe à la fois les portefeuilles TDE et les keystores externes.
Avantages TDE
- Les données sont cryptées, ce qui constitue un moyen de sécurité en cas de vol de données.
- L'utilisation du TDE permet d'assurer la conformité réglementaire en matière de sécurité.
- Pas de changement de code, pas de changement d'application, la base de données gère le cryptage et le décryptage des données.
- Les utilisateurs de la base de données et les applications n'ont pas besoin de savoir que les données auxquelles ils accèdent sont cryptées.
- Il est possible de crypter les données sans interruption des systèmes de production. Le cryptage est également possible pendant les périodes de maintenance.
- Les opérations de gestion des clés de chiffrement du portefeuille peuvent être automatisées par Oracle. L'utilisateur final ou l'application n'a pas besoin de gérer les clés de chiffrement du portefeuille TDE.
Types de chiffrement dans le TDE
Il est possible de crypter les données sensibles de deux manières : Au niveau de la colonne ou au niveau du tablespace.
Au niveau des colonnes: vous pouvez crypter des données sensibles dans des colonnes spécifiques des tables d'application.
Au niveau du tablespace: Cryptage de toutes les données stockées dans un tablespace. Il s'agit du chiffrement le plus couramment utilisé, car il est plus facile à mettre en œuvre et ne nécessite pas une analyse détaillée de chaque colonne de la table pour déterminer celles qui doivent être chiffrées.
Remarque : les données BFILE ne sont pas cryptées car elles se trouvent physiquement dans un fichier du système d'exploitation, et non dans l'espace de la base de données.
Étapes de la mise en œuvre d'un TDE
Tout d'abord, pour configurer le TDE, nous devons effectuer une configuration initiale dans la base de données. En fait, nous devons configurer le paramètre WALLET_ROOT (statique) et le paramètre TDE_CONFIGURATION (dynamique).
- Paramètre WALLET_ROOT: Spécifie le répertoire d'origine des différents logiciels de stockage de clés. Dans notre cas, pour TDE, il s'agira du répertoire pour la découverte automatisée des portefeuilles, qui sera WALLET_ROOT/tde.
- Paramètre TDE_CONFIGURATION: spécifie le type de keystore (keystore logiciel ou Oracle Key Vault). Une fois le type de keystore (TDE_CONFIGURATION) défini, lors de la création du keystore, Oracle crée un répertoire à l'emplacement du paramètre WALLET_ROOT, dans notre cas WALLET_ROOT/tde .
Note : Dans les versions précédentes, le paramètre SQLNET.ENCRYPTION_WALLET_LOCATION était utilisé. Ce paramètre a été supprimé. Oracle recommande d'utiliser les paramètres d'initialisation statiques WALLET_ROOT et dynamiques TDE_CONFIGURATION.
Configuration de WALLET_ROOT
Tout d'abord, nous créons le répertoire dans lequel le portefeuille sera stocké au niveau SSOO.
mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/wallet
Nous vérifions les paramètres de la base de données :
Avant de modifier un paramètre, il est conseillé de faire une sauvegarde du fichier spfile.
WALLET_ROOT
Paramètre statique permettant d'enregistrer le répertoire du portefeuille. Nous modifions le paramètre WALLET_ROOT et l'enregistrons dans le fichier spfile. Redémarrer la base de données.
SQL> alter system set wallet_root='$ORACLE_BASE/admin/$ORACLE_SID/wallet' scope=spfile ; Système modifié.
TDE_CONFIGURATION
Nous spécifions le paramètre TDE_CONFIGURATION
pour spécifier le type de portefeuille TDE. Cette fois-ci, nous utiliserons le type FICHIER.
SQL> ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE" SCOPE=both ; Système modifié.
Nous vérifions que les paramètres sont corrects.
Portefeuilles TDE
Il existe trois types de portefeuilles TDE : protégé par mot de passe, à démarrage automatique et à démarrage automatique local.
Création d'un porte-clés logiciel protégé par mot de passe
Comme nous l'avons déjà configuré WALLET_ROOT
y TDE_CONFIGURATION
il suffit d'exécuter la commande ADMINISTER KEY MANAGEMENT CREATE KEYSTORE
pour créer le portefeuille. Un keystore logiciel protégé par mot de passe nécessite un mot de passe, qui est utilisé pour protéger les clés maîtresses du TDE. Pour ce faire, l'utilisateur doit disposer de l'un des deux privilèges suivants, ADMINISTER KEY MANAGEMENT
o SYSKM
:
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY "oracleconraul" ; keystore altered.
Vous pouvez voir qu'un répertoire /tde a été automatiquement créé dans le répertoire WALLET_ROOT, où vous verrez le fichier ewallet.p12, qui est notre portefeuille TDE protégé par un mot de passe.
[oracle@localhost tde]$ ls -la /u01/app/oracle_base/admin/testing/wallet/tde total 12 drwxr-x---.
2 oracle oracle 4096 Aug 15 13:36 . drwxrwxr-xr-x.
3 oracle oracle 4096 Aug 15 13:36 .. -rw-------. 1 oracle oracle 2555 août 15 13:36ewallet.p12
Création d'un porte-clés logiciel Auto-Start ou Auto-Start local
À ce stade, nous disposons d'un keystore protégé par un mot de passe. En option, vous pouvez créer un keystore de logiciel d'autodémarrage ou un keystore d'autodémarrage local. La différence est que le logiciel d'autodémarrage peut être ouvert à partir de plusieurs ordinateurs, tandis que le dépôt de clés d'autodémarrage local est local et doit être ouvert sur chaque ordinateur à partir duquel il a été créé. Par défaut, si LOCAL n'est pas spécifié, le fichier sera autologin.
Veuillez noter que si vous avez une base de données RAC et que vous spécifiez LOCAL
Si le fichier d'autologin a été créé, seul le nœud qui a créé le fichier d'autologin pourra l'ouvrir. Dans un environnement RAC, pour des raisons de simplicité, il est préférable de ne pas spécifier le mot-clé LOCAL
. Sinon, vous devrez créer plusieurs cwallet.sso
pour chaque nœud contenant les mêmes informations d'identification.
À ce stade, si nous redémarrons la base de données, nous verrons que notre portefeuille est fermé et que nous devons utiliser la commande "ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "" ; pour l'ouvrir.
SQL> select con_id, wrl_parameter, status from gv$encryption_wallet ; CON_ID WRL_PARAMETER STATUS ---------- ------------------------------------------------------------ ------------------------------ 1 /u01/app/oracle_base/admin/testing/wallet/tde/CLOSED
Comme ce n'est pas notre intention et que nous voulons qu'il s'ouvre automatiquement à l'ouverture de la base de données, nous allons d'abord créer le logiciel de login automatique ou login automatique local, dans notre cas login automatique (nous omettons le mot LOCAL).
SQL> ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE IDENTIFIED BY "oracleconraul" ;
SQL> select con_id, wrl_parameter, status from gv$encryption_wallet ; CON_ID WRL_PARAMETER STATUS ---------- ------------------------------------------------------------ ------------------------------ 1 /u01/app/oracle_base/admin/testing/wallet/tde/OPEN_NO_MASTER_KEY
Comme vous pouvez le constater, le cwallet.sso
qui est l'autologine.
Définir la clé principale de cryptage
Avant de procéder au chiffrement, nous devons créer/établir notre clé de chiffrement principale, car nous n'en avons pas encore.
SQL> ADMINISTER KEY MANAGEMENT SET KEY FORCE KEYSTORE IDENTIFIED BY "oracleconraul" WITH BACKUP ; keystore modifié.
sql> select con_id, wrl_parameter, status from gv$encryption_wallet CON_ID WRL_PARAMETER STATUS ---------- ------------------------------------------------------------ ------------------------------ 1 /u01/app/oracle_base/oracle_base/admin/testing/wallet/tde/OPEN
A ce stade, vous pouvez commencer à crypter votre base de données (tablespaces, tables, etc). Nous verrons comment procéder dans les prochains articles.
REMARQUE: si vous perdez les fichiers du portefeuille ou si vous oubliez le mot de passe, vous n'aurez aucun moyen de récupérer les données cryptées. La base de données ne peut être récupérée d'aucune manière (sauvegarde, etc.) si vous n'avez pas ce fichier. Il n'y a pas de "porte dérobée", la base de données devra être reconstruite. Il est donc nécessaire de sauvegarder ces fichiers en permanence.
Une fois que vous avez mis en œuvre le TDE, je vous recommande ce qui suit :
- Gardez le mot de passe TDE.
- Sauvegardez fréquemment le fichier du portefeuille.
Conclusion
Les avantages d'Oracle Transparent Data Encryption (TDE) sont considérables, à commencer par la protection des données sensibles. Ce cryptage protège les informations et garantit leur sécurité. En outre, le TDE présente plusieurs avantages clés, notamment la conformité avec les réglementations relatives à la sécurité.
Il peut être mis en œuvre facilement et sans impact sur les applications existantes. Il est important de noterqu'une fois mis en œuvre, le TDE ne peut pas être désactivé.
Dans les articles suivants, nous mettrons en pratique le chiffrement des données et les tablespaces afin de tester la dimension de cette architecture.