So funktioniert das AWS Database Encryption SDK - AWS SDK für Datenbankverschlüsselung

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.

  1. 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.

  2. Die Verschlüsselungsmethode verschlüsselt jedes Feld, das ENCRYPT_AND_SIGN in den von Ihnen angegebenen kryptografischen Aktionen als markiert ist.

  3. 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.

  4. 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.

  5. 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_SIGNSIGN_ONLY, oder markierten Felder SIGN_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.

  6. Die Verschlüsselungsmethode berechnet anhand der Kanonisierung der Materialbeschreibung, des Verschlüsselungskontextes und jedes mit, oder markierten ENCRYPT_AND_SIGN Felds eine ECDSA-Signatur SIGN_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.

  7. Die Verschlüsselungsmethode speichert den verschlüsselten und signierten Datensatz in Ihrer Datenbank

Entschlüsseln und verifizieren

  1. 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.

    1. 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.

  2. Bei der Entschlüsselungsmethode wird der in der Materialbeschreibung angegebene Wert für die Schlüsselzusage verglichen und verifiziert.

  3. Die Entschlüsselungsmethode überprüft die Signaturen im Signaturfeld.

    Sie identifiziert, welche Felder markiert sind ENCRYPT_AND_SIGNSIGN_ONLY, oder SIGN_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.

  4. 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.

  5. Die Entschlüsselungsmethode gibt den Klartext-Datensatz zurück.