Wrapped Materials Provider - AWS Datenbankverschlüsselung SDK

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.

Wrapped Materials Provider

Anmerkung

Unsere clientseitige Verschlüsselungsbibliothek wurde in AWS Database Encryption SDK umbenannt. Das folgende Thema enthält Informationen zu den Versionen 1. x —2. x des DynamoDB Encryption Client für Java und Versionen 1. x —3. x des DynamoDB Encryption Client für Python. Weitere Informationen finden Sie unter AWSDatabase Encryption SDK für DynamoDB-Versionsunterstützung.

Mit dem Wrapped Materials Provider (Wrapped CMP) können Sie Wrapping- und Signaturschlüssel aus beliebigen Quellen mit dem DynamoDB Encryption Client verwenden. Das Wrapped CMP ist von keinem AWS Dienst abhängig. Sie müssen jedoch Ihre Wrapping- und Signierschlüssel außerhalb des Clients generieren und verwalten, einschließlich der Bereitstellung der richtigen Schlüssel zur Verifizierung und Entschlüsselung des Elements.

Der Wrapped CMP generiert einen eindeutigen Verschlüsselungsschlüssel für jedes Element. Er verpackt den Verschlüsselungsschlüssel des Elements mit dem von Ihnen bereitgestellten Wrapping-Schlüssel und speichert den verpackten Elementverschlüsselungsschlüssel im Materialbeschreibungsattribut des Elements. Da Sie die Wrapping- und Signierschlüssel bereitstellen, bestimmen Sie, wie die Wrapping- und Signierschlüssel erzeugt werden und ob sie für jedes Element eindeutig sind oder wiederverwendet werden.

Der Wrapped CMP ist eine sichere Implementierung und eine gute Wahl für Anwendungen, die kryptographische Materialien verwalten können.

Der Wrapped CMP ist einer von mehreren Anbietern von kryptografischen Materialien (CMPs), die der DynamoDB Encryption Client unterstützt. Weitere Information zu den anderen CMPs finden Sie unter Anbieter von kryptografischen Materialien.

Beispielcode finden Sie unter:

Verwendung

Um einen Wrapped CMP zu erstellen, geben Sie einen Wrapping-Schlüssel (beim Verschlüsseln erforderlich), einen Unwrapping-Schlüssel (beim Entschlüsseln erforderlich) und einen Signierschlüssel an. Sie müssen beim Ver- und Entschlüsseln von Elementen Schlüssel bereitstellen.

Die Wrapping-, Unwrapping- und Signierschlüssel können symmetrische Schlüssel oder asymmetrische Schlüsselpaare sein.

Java
// This example uses asymmetric wrapping and signing key pairs final KeyPair wrappingKeys = ... final KeyPair signingKeys = ... final WrappedMaterialsProvider cmp = new WrappedMaterialsProvider(wrappingKeys.getPublic(), wrappingKeys.getPrivate(), signingKeys);
Python
# This example uses symmetric wrapping and signing keys wrapping_key = ... signing_key = ... wrapped_cmp = WrappedCryptographicMaterialsProvider( wrapping_key=wrapping_key, unwrapping_key=wrapping_key, signing_key=signing_key )

Funktionsweise

Der Wrapped CMP generiert einen neuen Verschlüsselungsschlüssel für jedes Element. Es verwendet die von Ihnen bereitgestellten Wrapping-, Unwrapping- und Signierschlüssel, wie in der folgenden Abbildung gezeigt.

Die Eingabe, Verarbeitung und Ausgabe des Wrapped Materials Providers im DynamoDB Encryption Client

Verschlüsselungsmaterialien abrufen

Dieser Abschnitt beschreibt detailliert die Ein- und Ausgänge und die Verarbeitung des Wrapped Materials Providers (Wrapped CMP), wenn er eine Anfrage für Verschlüsselungsmaterialien erhält.

Eingabe (von der Anwendung)

  • Wrapping-Schlüssel: Ein symmetrischer Advanced Encryption Standard (AES)-Schlüssel oder ein öffentlicher RSA-Schlüssel. Erforderlich, wenn Attributwerte verschlüsselt sind. Andernfalls ist er optional und wird ignoriert.

  • Unwrapping-Schlüssel: Optional und wird ignoriert.

  • Signierschlüssel

Eingabe (vom Elementverschlüssler)

Ausgabe (an den Elementverschlüssler):

  • Klartext-Element-Verschlüsselungsschlüssel

  • Signierschlüssel (unverändert)

  • Tatsächliche Materialbeschreibung: Diese Werte werden im Materialbeschreibungsattribut gespeichert, das der Client dem Element hinzufügt.

    • amzn-ddb-env-key: Base64-codierter Wrapped-Element-Verschlüsselungsschlüssel

    • amzn-ddb-env-alg: Verschlüsselungsalgorithmus, der zur Verschlüsselung des Elements verwendet wird. Der Standardwert ist AES-256-CBC.

    • amzn-ddb-wrap-alg: Der Wrapping-Algorithmus, den der Wrapped CMP verwendet hat, um den Elementverschlüsselungsschlüssel zu verpacken. Wenn es sich bei dem Wrapping-Schlüssel um einen AES-Schlüssel handelt, wird der Schlüssel mit nicht aufgefülltem AES-Keywrap verpackt, wie in RFC 3394 definiert. Handelt es sich bei dem Wrapping-Schlüssel um einen RSA-Schlüssel, wird dieser mit RSA OAEP mit MGF1-Auffüllung verschlüsselt.

Verarbeitung

Wenn Sie ein Element verschlüsseln, übergeben Sie einen Wrapping-Schlüssel und einen Signierschlüssel. Ein Unwrapping-Schlüssel ist optional und wird ignoriert.

  1. Der Wrapped CMP generiert einen symmetrischen Elementverschlüsselungsschlüssel für das Tabellenelement.

  2. Er verwendet den Wrapping-Schlüssel, den Sie angeben, um den Elementverschlüsselungsschlüssel zu verpacken. Anschließend entfernt er ihn so schnell wie möglich aus dem Speicher.

  3. Es gibt den Klartextelementverschlüsselungsschlüssel zurück, den von Ihnen angegebenen Signierschlüssel und eine tatsächliche Materialbeschreibung, die den Verschlüsselungsschlüssel des verpackten Elements und die Verschlüsselungs- und Wrapping-Algorithmen enthält.

  4. Der Elementverschlüssler verwendet den Klartext-Verschlüsselungsschlüssel, um das Element zu verschlüsseln. Es verwendet den von Ihnen bereitgestellten Signierschlüssel, um das Element zu signieren. Anschließend entfernt er die Klartextschlüssel so schnell wie möglich aus dem Speicher. Es kopiert die Felder in der tatsächlichen Materialbeschreibung, einschließlich des verpackten Verschlüsselungsschlüssels (amzn-ddb-env-key), in das Materialbeschreibungsattribut des Elements.

Entschlüsselungsmaterialien abrufen

Dieser Abschnitt beschreibt detailliert die Ein- und Ausgänge und die Verarbeitung des Wrapped Materials Providers (Wrapped CMP), wenn er eine Anfrage für Entschlüsselungsmaterialien erhält.

Eingabe (von der Anwendung)

  • Wrapping-Schlüssel: Optional und wird ignoriert.

  • Unwrapping-Schlüssel: Derselbe symmetrische Advanced Encryption Standard (AES)-Schlüssel oder private RSA-Schlüssel, der dem zum Verschlüsseln verwendeten öffentlichen RSA-Schlüssel entspricht. Erforderlich, wenn Attributwerte verschlüsselt sind. Andernfalls ist er optional und wird ignoriert.

  • Signierschlüssel

Eingabe (vom Elementverschlüssler)

Ausgabe (an den Elementverschlüssler)

  • Klartext-Element-Verschlüsselungsschlüssel

  • Signierschlüssel (unverändert)

Verarbeitung

Wenn Sie ein Element entschlüsseln, übergeben Sie einen Unwrapping-Schlüssel und einen Signierschlüssel. Ein Wrapping-Schlüssel ist optional und wird ignoriert.

  1. Der Wrapped CMP erhält den Verschlüsselungsschlüssel des verpackten Elements aus dem Materialbeschreibungsattribut des Elements.

  2. Er verwendet den Unwrapping-Schlüssel und den Algorithmus, um den Verschlüsselungsschlüssel des Elements zu entpacken.

  3. Es gibt den Klartextelementverschlüsselungsschlüssel, den Signierschlüssel sowie Verschlüsselungs- und Signieralgorithmen an den Elementverschlüsseler zurück.

  4. Der Elementverschlüssler verwendet den Signierschlüssel, um das Element zu verifizieren. Wenn dies erfolgreich ist, verwendet er den Verschlüsselungsschlüssel des Elements, um das Element zu entschlüsseln. Anschließend entfernt er die Klartextschlüssel so schnell wie möglich aus dem Speicher.