Dans Firebird, il est possible de crypter les données stockées dans une base de données. Le fichier de base de données n’est pas crypté dans son intégralité : seules les pages de données, d’index et de blob sont cryptées.
Pour rendre le cryptage de la base de données possible, vous devez obtenir ou écrire un plugin de cryptage de base de données.
Note
|
L’exemple de plugin de cryptage dans examples/dbcrypt ne produit pas de cryptage réel, c’est juste un exemple de comment ce plugin pourrait être écrit. |
Le principal problème du cryptage des bases de données est de savoir comment stocker la clé secrète. Firebird fournit une aide pour transférer cette clé depuis le client, mais cela ne signifie pas que le stockage des clés sur le client soit la meilleure solution : ce n’est qu’une alternative possible. Stocker les clés sur le même disque que la base de données est une très mauvaise option.
Pour séparer efficacement le cryptage et l’accès aux clés, le plugin de cryptage de la base de données est divisé en deux parties : le cryptage lui-même et le détenteur de la clé secrète. Cela peut être une approche efficace si vous voulez utiliser un bon algorithme de cryptage mais avoir votre propre méthode de stockage de la clé secrète.
Une fois que vous avez choisi un plug-in et une clé, vous pouvez activer le processus de cryptage.
ALTER DATABASE ENCRYPT WITH plugin_name [KEY key_name]
Paramètre | Description |
---|---|
plugin_name |
Le nom du plug-in de cryptage. |
key_name |
Le nom de la clé de cryptage. |
Le cryptage commence immédiatement après cette déclaration et s’exécute en arrière-plan. Le fonctionnement normal de la base de données n’est pas perturbé pendant le cryptage.
Tip
|
Le processus de cryptage peut être surveillé en utilisant le champ gstat -h fournira également des informations limitées sur l’état du cryptage. Par exemple, la requête suivante
affichera le pourcentage d’achèvement du processus de cryptage. |
La clause optionnelle KEY
vous permet de passer un nom de clé au plugin de cryptage. Ce qu’il faut faire avec ce nom de clé est décidé par le plugin.
Pour décrypter la base de données, exécutez :
ALTER DATABASE DECRYPT
Pour Linux, un exemple de plugin nommé libDbCrypt_example.so peut être trouvé dans le sous-répertoire /plugins/.