Hinzufügen einer verschlüsselten Spalte zu einer Tabelle im Jitterbit App Builder
Mit Verschlüsselung auf Anwendungsebene können sensible Daten in Tabellenspalten geschützt werden. Die Ver- und Entschlüsselung erfolgt innerhalb der Business Engine des App Builder. Daher ist die Verschlüsselung auf Anwendungsebene anbieterneutral: App Builder unterstützt die Verschlüsselung auf Anwendungsebene auf allen RDBMS-Anbietern.
Um einer Tabelle eine verschlüsselte Spalte hinzuzufügen, melden Sie sich zunächst als Administrator bei App Builder an.
- Navigieren Sie zur App Workbench
- Klicken Sie auf die Fliese Tabellen
- Identifizieren Sie die Tabelle, zu der die Spalte hinzugefügt werden soll, und klicken Sie auf das entsprechende Symbol Datensatz öffnen
- Klicken Sie im Bereich Spalten auf die Schaltfläche + Spalte
- Geben Sie die Spalte Name an und wählen Sie die folgenden Optionen aus:
- Logischer Datentyp: String
- Physischer Datentyp: Verschlüsselter Text
- Klicken Sie auf die Schaltfläche Speichern
- Klicken Sie auf das Symbol Schließen (X), um das Popup zu schließen
Alle in die Spalte geschriebenen Werte werden automatisch verschlüsselt. Aus der Spalte gelesene Werte werden automatisch entschlüsselt.
Wenn Sie direkten Zugriff auf die Datenbank haben, können Sie die Verschlüsselung der Daten überprüfen. Beginnen Sie mit der Verschlüsselung eines Werts:
- Suchen Sie im Bereich Tabelle die Tabelle und klicken Sie auf das Symbol Ergebnisse, um die Tabellendaten anzuzeigen
- Klicken Sie auf das Symbol Bearbeiten, um eine vorhandene Zeile zu ändern
- Geben Sie einen Wert für die verschlüsselte Spalte an
- Klicken Sie auf das Symbol Speichern
Stellen Sie mithilfe eines Tools wie * SQL Server Management Studio* eine Verbindung zur Datenbank her. Wählen Sie die Daten aus der Tabelle aus. Den verschlüsselten Daten wird die Bytefolge 0x09F0 vorangestellt.
Verwenden einer verschlüsselten Tabellenspalte
Verschlüsselte Spalten können auf verschiedene Arten verwendet werden. Normalerweise erstellt ein Entwickler ein Datenobjekt, das die verschlüsselte Spalte aus der Zieltabelle auswählt. Mithilfe rollenbasierter Sicherheit kann der Entwickler den Zugriff auf das Datenobjekt einschränken. Anschließend kann Entwickler ein Panel an das Datenobjekt und ein Text- oder Kennwortsteuerelement an die verschlüsselte Spalte binden. Benutzer mit Zugriffsberechtigung für das Datenobjekt können dann den Klartextwert anzeigen und ändern.
Neben der Bindung von Steuerelementen an verschlüsselte Spalten können auch CRUD-Geschäftsregeln erstellt werden, die Daten in und aus verschlüsselten Spalten kopieren. CRUD-Geschäftsregeln können für Folgendes verwendet werden:
- Migrieren von Daten aus unverschlüsselten Spalten in verschlüsselte Spalten (oder umgekehrt).
- Kopieren vertraulicher Daten in oder aus einem Drittpartei.
- Übergeben vertraulicher Daten an einen REST- oder OData Endpoint.
- Schließlich können verschlüsselte Spalten von Plugins verwendet werden. Die Unterstützung für verschlüsselte Spalten variiert jedoch je nach Plugin. Weitere Informationen finden Sie in der Plugin-Dokumentation.
Verschlüsselung
Spaltendaten werden mit einem Datenverschlüsselungsschlüssel (DEK) verschlüsselt. Jede Datenquelle verfügt über einen eigenen Satz rollierender Schlüssel. Obwohl jeder Schlüssel zum Entschlüsseln von Daten verwendet werden kann, wird immer nur ein Schlüssel zur Verschlüsselung verwendet. Alle 90 Tage wird ein neuer DEK erstellt.
DEKs sind an die folgenden Attribute im logischen Modell des App Builder gebunden:
- DataSourceId - Die Datenquellenkennung isoliert Schlüssel.
- TableId - Die Tabellenkennung wird verwendet, um einen abgeleiteten Schlüssel für die Tabelle zu erstellen.
- ColumnId - Die Spaltenkennung wird verwendet, um einen abgeleiteten Schlüssel für die Spalte zu erstellen.
Warnung
Wenn die DataSourceId
, TableId
oder ColumnId
Bei Änderungen können vorhandene verschlüsselte Werte nicht entschlüsselt werden.
Zudem verfügt jeder Spaltenwert über einen eindeutigen Initialisierungsvektor. Daher weist derselbe Klartextwert in verschiedenen Zeilen einen unterschiedlichen binären Chiffretext auf.
Anzeigen von Verschlüsselung
Da DEKs zum verschlüsseln von Daten in der Datenbank verwendet werden, kann das kryptografische Schlüsselmaterial nicht in der Datenbank gespeichert werden. Aus diesem Grund werden DEKs an einem von mehreren konfigurierbaren Speicherorten gespeichert. Weitere Informationen finden Sie unter Konfiguration der Datenverschlüsselung.
Obwohl das Schlüsselmaterial selbst nicht in der Datenbank gespeichert ist, sind Schlüsselattribute im App Builder sichtbar. Um die Verschlüsselung einer Datenquelle abzurufen, melden Sie sich zunächst als Administrator beim App Builder an.
- Navigieren Sie zur App Workbench
- Klicken Sie auf die Fliese Datenquellen
- Wählen Sie die relationale Datenbank aus dem Datenquellenfenster
- Klicken Sie auf die Schaltfläche Verschlüsselungsschlüssel
Auf der Seite „Datenverschlüsselungsschlüssel“ werden die vorhandenen Schlüsseleigenschaften aufgelistet:
- Erstellungsdatum - Das Datum und die Uhrzeit, zu der der Schlüssel generiert wurde.
- Aktivierungsdatum - Das Datum und die Uhrzeit, zu der der Schlüssel zum Verschlüsseln von Spaltendaten verwendet wurde.
- Ablaufdatum - Das Datum und die Uhrzeit, ab der der Schlüssel nicht mehr zum verschlüsseln von Daten verwendet wurde.
Notiz
Da Verschlüsselung bei Bedarf erstellt werden, verfügt eine Datenquelle erst über Verschlüsselung, wenn die Daten zuerst verschlüsselt wurden.
Verschlüsselungs- und Validierungsalgorithmen
Verschlüsselung sorgt für Vertraulichkeit, Validierung und Authentizität (auch bekannt als Manipulationsschutz).
App Builder verschlüsselt Daten mit AES-256 im CBC-Blockchiffremodus mit PKCS #7-Padding.
App Builder stellt die Integrität der verschlüsselten Daten mithilfe von HMAC-SHA256 sicher.
Bekannte Probleme und Einschränkungen
In der folgenden Liste werden bekannte Probleme und Einschränkungen bei der Implementierung der Verschlüsselung im App Builder beschrieben.
- Nur der logische Datentyp String unterstützt Verschlüsselung.
- Nur RDBMS-Datenanbieter unterstützen Verschlüsselung.
- Eine Spalte kann nicht in den verschlüsselten Speicherdatentyp konvertiert werden.
- Eine Spalte kann nicht vom verschlüsselten Speicherdatentyp in einen anderen Datentyp konvertiert werden.
- Verschlüsselte Spalten unterstützen kein Filtern, Suchen oder Sortieren.
- Steuerelemente wie Seiten, Bedienfelder und Listen können nicht an eine verschlüsselte Spalte gebunden werden.
- Verschlüsselte Spalten unterstützen keine Übersetzung.
- App Builder migriert mit alten Schlüsseln verschlüsselte Werte nicht automatisch: Es bleibt dem Entwickler überlassen, die Daten regelmäßig neu zu verschlüsseln.
- Daten können nicht mithilfe einer Migrationsregel in/aus verschlüsselten Spalten migriert werden. Entwickler müssen CRUD-Geschäftsregeln verwenden, um Daten in/aus verschlüsselten Spalten zu verschieben.
- Daten können nicht mithilfe von CRUD-Datenbankregeln in/aus verschlüsselten Spalten kopiert werden. Entwickler müssen CRUD-Geschäftsregeln verwenden, um Daten in/aus verschlüsselten Spalten zu verschieben.
- mvSQL-Ausdrücke können nur auf den binären Geheimtext verweisen, nicht auf den Klartextwert einer verschlüsselten Spalte.
- Wenn ein verschlüsselter Wert nicht entschlüsselt werden kann, wird kein Fehler angezeigt: Der Wert scheint NULL zu sein.