InterBase-Datenbankverschlüsselung

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Datenbankanwendungen entwickeln


Die InterBase-Verschlüsselung wird ab InterBase 2009 unterstützt. InterBase ermöglicht die Verschlüsselung von Informationen auf einer oder zwei der folgenden Ebenen:

  • Verschlüsselung auf Datenbankebene (InterBase verschlüsselt alle Datenbankseiten, die Benutzerinformationen enthalten).
  • Verschlüsselung auf Spaltenebene (die Verschlüsselung auf Spaltenebene ist flexibler und spezifischer).

Mit der InterBase-Datenbankverschlüsselung können Sie auch Datenbanksicherungsdateien verschlüsseln. Weitere Informationen zur Verschlüsselung von Daten mit InterBase finden Sie im Data Definition Guide (EN).

Erstellen von Verschlüsselungen mit InterBase

Um bestimmte Verschlüsselungsaufgaben in InterBase zu erstellen, müssen Sie den Eigentümer der Systemdatensicherheit (SYSDSO, System Data Security Owner) anlegen. Beide Benutzer, der SYSDSO und der SYSDBA (Datenbankeigentümer), sind für die InterBase-Verschlüsselung verantwortlich. In der folgenden Tabelle sind die Unterschiede zwischen den Aufgaben der beiden Benutzer aufgeführt:

Berechtigungen Datenbank-  
eigentümer
SYSDSO

Erstellen von Verschlüsselungsschlüsseln

NEIN JA

Festlegen des SEP

NEIN JA

Erteilen von Verschlüsselungsberechtigungen

NEIN JA

Verschlüsseln der Datenbank

JA

NEIN

Verschlüsseln von Spalten

JA

NEIN

Erteilen von Entschlüsselungsberechtigungen

JA

NEIN

Darüber hinaus können Verschlüsselungsaufgaben von jedem einzelnen Tabellenbenutzer mit der Berechtigung zum Verschlüsseln von Spalten in einer Tabelle durchgeführt werden.

Verschlüsseln einer Datenbank mit IBConsole

InterBase bietet zwei Möglichkeiten zur Verschlüsselung von Datenbanken. Die Verschlüsselung kann mit isql aktiviert und implementiert werden, oder Sie können mit IBConsole eine Datenbank verschlüsseln. In diesem Thema wird die zweite Option – Verschlüsseln einer Datenbank mit IBConsole – verwendet.

Führen Sie die folgenden Schritte aus, um eine Verschlüsselung beim Erstellen einer neuen Datenbank durchzuführen:

  1. Öffnen Sie IBConsole.
  2. Wählen Sie aus dem Menü Server > Login.
  3. Melden Sie sich als SYSDBA oder als Datenbankeigentümer an.
  4. Wählen Sie aus dem Menü Database > Create Database.
  5. Wählen Sie im Feld Save In den Ordner aus, in dem die Datenbank gespeichert werden soll.
  6. Geben Sie einen Dateinamen an, und klicken Sie auf Save. Das Dialogfeld wird geschlossen.
  7. Ändern Sie den Wert im Feld Embedded User Authentication in Yes.
    Hinweis: Das Feld Use Encryption ist jetzt sichtbar.
  8. Ändern Sie den Wert im Feld Use Encryption in Yes.
    CreateDatabase-Encryption.png
  9. Klicken Sie auf die Schaltfläche OK, um eine Datenbank zu erstellen.
  10. Geben Sie Ihre Verbindungsinformationen ein, und klicken Sie auf die Schaltfläche Connect.
  11. Klicken Sie im "Encryption Wizard" auf die Schaltfläche Next.
  12. Geben Sie das SYSDSO-Passwort ein, und klicken Sie auf die Schaltfläche Next.
  13. Geben Sie das SEP-Passwort ein, und klicken Sie auf die Schaltfläche Next.
    ExternalOptionEnc.png
    Hinweis: Die Option External erschwert es nicht autorisierten Benutzern, auf eine verschlüsselte Datenbank auf einem mobilen Gerät, wie einem Laptop-Computer, oder auf einem gesicherten Desktop-Computer zuzugreifen.
  14. Geben Sie den Namen für den Encryption Key ein.
  15. Wählen Sie für die Option "Cipher" DES aus.
  16. Klicken Sie auf OK.
    EncryptionKeyWiz.png
  17. Geben Sie den Namen und das Passwort für "BackupKey" ein.
    Hinweis: Um die Sicherheit und Vertraulichkeit von verschlüsselten Datenbanken aufrechtzuerhalten, müssen Sie auch die Datenbanksicherungsdateien verschlüsseln.
  18. Klicken Sie auf OK.
    EncDBCompleted.png
  19. Klicken Sie im angezeigten Dialogfeld auf die Schaltfläche OK.

Parameter für das Systemverschlüsselungspasswort in InterBase

Bei einer verschlüsselten Datenbank in InterBase kann das SEP (System Encryption Password, Systemverschlüsselungspasswort) intern (Vorgabe, keine Verwendung eines Schlüsselwortes) oder extern (Verwendung eines Schlüsselwortes) festlegt werden.

  • Das interne SEP ermöglicht, dass von Datenbankbenutzern auf die Datenbank zugegriffen werden kann, wenn die Datenbank bereits einmal mit dem SEP auf diesem Computer verwendet wurde. Bei folgenden Verbindungen oder einer Verbindung nach einem Neustart muss der SEP-Wert nicht angegeben werden. Wenn die RAD Studio-Anwendung auf einem Mac oder einem mobilen Gerät bereitgestellt wird, dann ist für die erste Verbindung der SEP-Parameterwert erforderlich.
  • Bei Datenbanken, für die ein externes SEP festgelegt ist, muss bei der ersten Verbindung der SEP-Parameterwert angegeben werden. Nach einem Neustart des Computers muss die Anwendung bei der ersten Verbindung das SEP angeben. Das externe Systemverschlüsselungspasswort ist für mobile Geräte sicherer.
    Hinweis: Aktivieren Sie zum Festlegen des externen SEP im "Encryption Wizard" die Option External, oder verwenden Sie den Befehl alter database set system encryption password <String mit 255 Zeichen> [external].

Systemverschlüsselungspasswort in dbExpress

Bei dbExpress können Sie den SEP-Wert in der TSQLConnection-Params-Sammlung festlegen oder den SEP-Wert programmseitig setzen.

ValueListEditorDBX.png

 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;

Systemverschlüsselungspasswort in FireDAC

Bei FireDAC können Sie den Parameter SEPassword in den TFDConnection-Verbindungsdefinitionsparametern festlegen.

FDConnectionEdt.png

 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;

Systemverschlüsselungspasswort in InterBase Express

Bei InterBase Express (IBX) wird der Parameter SysEncryptPassword-TIBDatabase programmseitig festgelegt.

 procedure TForm10.BtnConnectClick(Sender: TObject);
 begin
   try
      IBDatabase1.SysEncryptPassword:='password';
      IBDatabase1.Open;
   except
     on E:Exception do
         ShowMessage(E.ClassName + ' ' + E.Message);
   end;
 end;

Siehe auch