Cryptage de bases de données InterBase
Remonter à Développement d'applications de bases de données
InterBase Encryption, la fonction de cryptage ou de chiffrement des bases de données est supportée depuis InterBase 2009. InterBase vous permet de crypter des informations à l'un des deux niveaux suivants ou aux deux niveaux à la fois :
- Cryptage de niveau base de données (InterBase crypte toutes les pages de bases de données contenant des informations relatives à utilisateur).
- Cryptage de niveau colonne (le cryptage de niveau colonne est plus souple et spécifique).
En utilisant le cryptage de base de données InterBase, vous pouvez également crypter des fichiers de sauvegarde de base de données. Pour de plus amples informations sur le cryptage de vos données avec InterBase, voir Data Definition Guide.
Sommaire
Créer des tâches de cryptage avec InterBase
Pour créer des tâches de cryptage spécifiques dans InterBase, vous devez créer le SYSDSO (System Data Security Owner). Les deux utilisateurs, le SYSDSO et le SYSDBA (le propriétaire de base de données), ont des responsabilités relatives au cryptage InterBase. Le tableau ci-dessous montre les différences entre les tâches relatives à l'utilisateur :
Permissions | Propriétaire de bases de données |
SYSDSO |
---|---|---|
Créer les clés de cryptage |
NON | OUI |
Définir le SEP |
NON | OUI |
Accorder des privilèges de cryptage |
NON | OUI |
Crypter la base de données |
OUI | NON |
Crypter les colonnes |
OUI | NON |
Accorder des privilèges de décryptage |
OUI | NON |
Par ailleurs, les tâches de cryptage peuvent être réalisées par n'importe quel propriétaire de table particulière ayant la permission de crypter les colonnes d'une table.
Crypter une base de données avec IBConsole
Il existe deux façons de crypter une base de données dans InterBase. Vous pouvez activer et implémenter le cryptage en utilisant isql ou vous pouvez crypter une base de données avec IBConsole. Dans cette rubrique, nous utiliserons la deuxième option - Encrypt a Database with IBConsole (cryptage d'une base de données avec IBconsole).
Pour que le cryptage s'effectue lors de la création d'une nouvelle base de données, effectuez les étapes suivantes :
- Ouvrez IBConsole.
- Sélectionnez Server > Login depuis le menu.
- Connectez-vous en tant que SYSDBA ou en tant que propriétaire de base de données.
- Sélectionnez Database > Create Database dans le menu.
- Dans le champ Save In, sélectionnez le dossier dans lequel vous voulez sauvegarder la base de données.
- Spécifiez un nom de fichier puis cliquez sur Save. La boîte de dialogue se ferme.
- Changez la valeur du champ Embedded User Authentication par Yes.
- Remarque: Le champ Use Encryption est maintenant visible.
- Changez la valeur du champ Use Encryption par Yes.
- Cliquez sur le bouton OK pour créer une base de données.
- Entrez vos informations de connexion et cliquez sur le bouton Connect.
- Dans l'expert Encryption Wizard, cliquez sur le bouton Next.
- Tapez le mot de passe SYSDSO et cliquez sur le bouton Next.
- Tapez le mot de passe SEP et cliquez sur le bouton Next.
- Tapez un nom pour Encryption Key.
- Sélectionnez DES pour l'option Cipher.
- Cliquez sur le bouton OK.
- Tapez le nom et le mot de passe BackupKey.
- Remarque: Pour préserver la sécurité et la confidentialité des bases de données cryptées, vous devez aussi crypter les fichiers de sauvegarde des bases de données.
- Cliquez sur le bouton OK.
- Dans la boîte de dialogue ouverte, cliquez sur le bouton OK.
Paramètre System Encryption Password dans InterBase
Lorsqu'une base de données est cryptée dans InterBase, SEP peut être défini comme internal (par défaut, aucun mot-clé n'est utilisé) ou external (mot-clé utilisé).
- Le SEP interne permet que la base de données soit accessible à des utilisateurs de base de données lorsqu'elle a été utilisée une fois avec SEP sur la machine. Les connexions consécutives ou les connexions faisant suite à un redémarrage d'ordinateur n'ont pas besoin de fournir la valeur SEP. Si l'application RAD Studio est déployée sur un Mac ou un périphérique mobile, la première connexion requiert la valeur du paramètre SEP.
- La base de données définie avec un SEP externe requiert que la première connexion ait la valeur du paramètre SEP. Après avoir redémarré l'ordinateur, l'application doit fournir la valeur de SEP à la première connexion. Le mot de pase de cryptage système, System Encryption Password présente plus de sécurité pour les périphériques mobiles.
- Remarque: Pour définir le SEP externe, cochez l'option External dans l'expert Encryption ou utilisez la commande
alter database set system encryption password <255-character string> [external]
.
Mot de passe de cryptage système dans dbExpress
Avec dbExpress, vous pouvez définir la valeur SEP dans la collection TSQLConnection Params ou définir la valeur de SEP par programmation.
procedure TForm10.BtnConnectClick(Sender: TObject);
begin
try
SQLConnection1.Params.Values['SEP']:='password';
SQLConnection1.Connected:=true;
except
on E:Exception do
ShowMessage(E.ClassName + ' ' + E.Message);
end;
end;
Mot de passe de cryptage système dans FireDAC
Avec FireDAC, vous pouvez définir le paramètre SEPassword dans TFDConnection les paramètres de définition de connexion.
procedure TForm10.BtnConnectClick(Sender: TObject);
begin
try
FDConnection1.Params.Values['SEPasword']:='password';
FDConnection1.Connected:=true;
except
on E:Exception do
ShowMessage(E.ClassName + ' ' + E.Message);
end;
end;
Mot de passe de cryptage système dans InterBase Express
Avec InterBase Express (IBX), le paramètre SysEncryptPassword TIBDatabase est défini par programmation.
procedure TForm10.BtnConnectClick(Sender: TObject);
begin
try
IBDatabase1.SysEncryptPassword:='password';
IBDatabase1.Open;
except
on E:Exception do
ShowMessage(E.ClassName + ' ' + E.Message);
end;
end;