Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
So funktioniert das AWS Database Encryption SDK
Unsere clientseitige Verschlüsselungsbibliothek wurde in Database Encryption SDK umbenannt. AWS Dieses Entwicklerhandbuch enthält weiterhin Informationen zum DynamoDB Encryption Client. |
Das AWS Database Encryption SDK bietet clientseitige Verschlüsselungsbibliotheken, die speziell für den Schutz der Daten entwickelt wurden, die Sie in Datenbanken speichern. Die Bibliotheken enthalten sichere Implementierungen, die Sie erweitern oder unverändert verwenden können. Weitere Informationen zur Definition und Verwendung benutzerdefinierter Komponenten finden Sie im GitHub Repository für Ihre Datenbankimplementierung.
In den Workflows in diesem Abschnitt wird erklärt, wie das AWS Database Encryption SDK die Daten in Ihrer Datenbank verschlüsselt, signiert und entschlüsselt und verifiziert. Diese Workflows beschreiben den grundlegenden Prozess unter Verwendung abstrakter Elemente und der Standardfunktionen. Einzelheiten dazu, wie das AWS Database Encryption SDK mit Ihrer Datenbankimplementierung zusammenarbeitet, finden Sie im Thema Was ist verschlüsselt für Ihre Datenbank.
Das AWS Database Encryption SDK verwendet Umschlagverschlüsselung, um Ihre Daten zu schützen. Jeder Datensatz wird unter einem eindeutigen Datenschlüssel verschlüsselt. Der Datenschlüssel wird verwendet, um einen eindeutigen Datenverschlüsselungsschlüssel für jedes Feld abzuleiten, das ENCRYPT_AND_SIGN
in Ihren kryptografischen Aktionen markiert ist. Anschließend wird eine Kopie des Datenschlüssels mit den von Ihnen angegebenen Wrapping-Schlüsseln verschlüsselt. Um den verschlüsselten Datensatz zu entschlüsseln, verwendet das AWS Database Encryption SDK die von Ihnen angegebenen Wrapping-Schlüssel, um mindestens einen verschlüsselten Datenschlüssel zu entschlüsseln. Anschließend kann es den Chiffretext entschlüsseln und einen Klartexteintrag zurückgeben.
Weitere Hinweise zu den im AWS Database Encryption SDK verwendeten Begriffen finden Sie unter. AWS SDK-Konzepte für Datenbankverschlüsselung
Verschlüsseln und signieren
Im Kern ist das AWS Database Encryption SDK ein Datensatzverschlüsseler, der die Datensätze in Ihrer Datenbank verschlüsselt, signiert, verifiziert und entschlüsselt. Es enthält Informationen über Ihre Datensätze und Anweisungen darüber, welche Felder verschlüsselt und signiert werden müssen. Es ruft die Verschlüsselungsmaterialien und Anweisungen zu ihrer Verwendung von einem Manager für kryptografische Materialien ab, der anhand des von Ihnen angegebenen Verpackungsschlüssels konfiguriert wurde.
In der folgenden exemplarischen Vorgehensweise wird beschrieben, wie das AWS Database Encryption SDK Ihre Dateneinträge verschlüsselt und signiert.
-
Der Cryptographic Materials Manager stellt dem AWS Database Encryption SDK eindeutige Datenverschlüsselungsschlüssel zur Verfügung: einen Klartext-Datenschlüssel, eine Kopie des mit dem angegebenen Wrapping-Schlüssel verschlüsselten Datenschlüssels und einen MAC-Schlüssel.
Anmerkung
Sie können den Datenschlüssel unter mehreren Wrapping-Schlüsseln verschlüsseln. Jeder der Umschließungsschlüssel verschlüsselt eine separate Kopie des Datenschlüssels. Das AWS Database Encryption SDK speichert alle verschlüsselten Datenschlüssel in der Materialbeschreibung. Das AWS Database Encryption SDK fügt dem Datensatz, der die Materialbeschreibung speichert, ein neues Feld (
aws_dbe_head
) hinzu.Für jede verschlüsselte Kopie des Datenschlüssels wird ein MAC-Schlüssel abgeleitet. Die MAC-Schlüssel sind nicht in der Materialbeschreibung gespeichert. Stattdessen verwendet die Entschlüsselungsmethode die Wrapping-Schlüssel, um die MAC-Schlüssel erneut abzuleiten.
-
Die Verschlüsselungsmethode verschlüsselt jedes Feld, das
ENCRYPT_AND_SIGN
in den von Ihnen angegebenen kryptografischen Aktionen als markiert ist. -
Die Verschlüsselungsmethode leitet a
commitKey
aus dem Datenschlüssel ab und generiert daraus einen Wert für die Schlüsselzuweisung. Anschließend wird der Datenschlüssel verworfen. -
Die Verschlüsselungsmethode fügt dem Datensatz eine Materialbeschreibung hinzu. Die Materialbeschreibung enthält die verschlüsselten Datenschlüssel und die anderen Informationen über den verschlüsselten Datensatz. Eine vollständige Liste der in der Materialbeschreibung enthaltenen Informationen finden Sie unter Format der Materialbeschreibung.
-
Die Verschlüsselungsmethode verwendet die in Schritt 1 zurückgegebenen MAC-Schlüssel, um die HMAC-Werte (Hash-Based Message Authentication Code) anhand der Kanonisierung der Materialbeschreibung, des Verschlüsselungskontextes und aller mit
ENCRYPT_AND_SIGN
SIGN_ONLY
, oder markierten FelderSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
in den kryptografischen Aktionen zu berechnen. Die HMAC-Werte werden in einem neuen Feld (aws_dbe_foot
) gespeichert, das die Verschlüsselungsmethode dem Datensatz hinzufügt. -
Die Verschlüsselungsmethode berechnet anhand der Kanonisierung der Materialbeschreibung, des Verschlüsselungskontextes und jedes mit, oder markierten
ENCRYPT_AND_SIGN
Felds eine ECDSA-SignaturSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
und speichert die ECDSA-Signaturen in dem Feld.SIGN_ONLY
aws_dbe_foot
Anmerkung
ECDSA-Signaturen sind standardmäßig aktiviert, aber nicht erforderlich.
-
Die Verschlüsselungsmethode speichert den verschlüsselten und signierten Datensatz in Ihrer Datenbank
Entschlüsseln und verifizieren
-
Der Cryptographic Materials Manager (CMM) stellt die Entschlüsselungsmethode mit den in der Materialbeschreibung gespeicherten Entschlüsselungsmaterialien bereit, einschließlich des Klartext-Datenschlüssels und des zugehörigen MAC-Schlüssels.
-
Das CMM entschlüsselt den verschlüsselten Datenschlüssel, wobei die Schlüssel im angegebenen Schlüsselbund eingeschlossen sind, und gibt den Klartext-Datenschlüssel zurück.
-
-
Bei der Entschlüsselungsmethode wird der in der Materialbeschreibung angegebene Wert für die Schlüsselzusage verglichen und verifiziert.
-
Die Entschlüsselungsmethode überprüft die Signaturen im Signaturfeld.
Sie identifiziert, welche Felder markiert sind
ENCRYPT_AND_SIGN
SIGN_ONLY
, oderSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
anhand der Liste der erlaubten, nicht authentifizierten Felder, die Sie definiert haben. Die Entschlüsselungsmethode verwendet den in Schritt 1 zurückgegebenen MAC-Schlüssel, um die HMAC-Werte für die mit, oder markierten Felder neu zu berechnen und zu vergleichen.ENCRYPT_AND_SIGN
SIGN_ONLY
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
Anschließend werden die ECDSA-Signaturen anhand des im Verschlüsselungskontext gespeicherten öffentlichen Schlüssels überprüft. -
Die Entschlüsselungsmethode verwendet den Klartext-Datenschlüssel, um jeden markierten Wert zu entschlüsseln.
ENCRYPT_AND_SIGN
Das AWS Database Encryption SDK verwirft dann den Klartext-Datenschlüssel. -
Die Entschlüsselungsmethode gibt den Klartext-Datensatz zurück.