Hinzufügen einer verschlüsselten Spalte zu einer Tabelle im Jitterbit App Builder
Mit der Verschlüsselung auf Anwendungsebene können vertrauliche Daten in Tabellenspalten geschützt werden. Die Ver- und Entschlüsselung erfolgt innerhalb der App Builder Business-Engine. Folglich ist die Verschlüsselung auf Anwendungsebene anbieterneutral: App Builder unterstützt Verschlüsselung auf Anwendungsebene bei allen RDBMS-Anbietern.
Um einer Tabelle eine verschlüsselte Spalte hinzuzufügen, melden Sie sich zunächst an App Builder als Administrator.
- 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 bestätigen, dass die Daten verschlüsselt sind. Beginnen Sie mit der Verschlüsselung eines Wertes:
- 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 beschränken. Der Entwickler kann dann ein Panel an das Datenobjekt und ein Text- oder Kennwortsteuerelement an die verschlüsselte Spalte binden. Ab diesem Punkt können Benutzer mit Berechtigung für das Datenobjekt den Klartextwert anzeigen und ändern.
Neben dem Binden von Steuerelementen an verschlüsselte Spalten ist es auch möglich, CRUD-Geschäftsregeln zu erstellen, die Daten in verschlüsselte Spalten kopieren und aus ihnen entfernen. 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 von Plugin zu 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 beliebige 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 folgende Attribute gebunden: App Builder logisches Modell:
- 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
ändern, vorhandene verschlüsselte Werte können nicht entschlüsselt werden.
Außerdem hat jeder Spaltenwert einen eindeutigen Initialisierungsvektor. Infolgedessen hat derselbe Klartextwert in verschiedenen Zeilen einen unterschiedlichen binären Geheimtext.
Anzeigen von Verschlüsselung
Da DEKs zum verschlüsseln von Daten innerhalb 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 Datenverschlüsselungskonfiguration.
Auch wenn das Schlüsselmaterial selbst nicht in der Datenbank gespeichert ist, sind Schlüsselattribute innerhalb der App Builder. Um die Verschlüsselung einer Datenquelle zu erhalten, melden Sie sich zunächst an App Builder als Administrator.
- 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 der Schlüsselgenerierung.
- Aktivierungsdatum - Das Datum und die Uhrzeit, zu der der Schlüssel zum Verschlüsseln von Spaltendaten verwendet wurde.
- Ablaufdatum - Das Datum und die Uhrzeit, zu 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 diese Verschlüsselung, wenn die Daten zuerst verschlüsselt wurden.
Verschlüsselungs- und Validierungsalgorithmen
Verschlüsselung sorgt für Vertraulichkeit, Validierung und Authentizität (auch Manipulationsschutz genannt).
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
Die folgende Liste beschreibt bekannte Probleme und Einschränkungen bei App Builder's Implementierung der Verschlüsselung auf Spaltenebene.
- 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.