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

Referenz

Unsere clientseitige Verschlüsselungsbibliothek wurde in AWS Database Encryption SDK umbenannt. Dieses Entwicklerhandbuch enthält weiterhin Informationen zum DynamoDB Encryption Client.

Die folgenden Themen enthalten technische Details für das AWS Database Encryption SDK.

Format der Materialbeschreibung

Die Materialbeschreibung dient als Header für einen verschlüsselten Datensatz. Wenn Sie Felder mit dem AWS Database Encryption SDK verschlüsseln und signieren, zeichnet der Verschlüsseler die Materialbeschreibung auf, während er die kryptografischen Materialien zusammenstellt, und speichert die Materialbeschreibung in einem neuen Feld (aws_dbe_head), das der Verschlüsseler Ihrem Datensatz hinzufügt. Die Materialbeschreibung ist eine portabel formatierte Datenstruktur, die den verschlüsselten Datenschlüssel und Informationen darüber enthält, wie der Datensatz verschlüsselt und signiert wurde. In der folgenden Tabelle werden die Werte beschrieben, die die Materialbeschreibung bilden. Die Byte werden in der angegebenen Reihenfolge angehängt.

Version

Die Version des Formats dieses aws_dbe_head Felds.

Signaturen aktiviert

Kodiert, ob Signaturen für diesen Datensatz aktiviert sind.

Byte-Wert Bedeutung
0x01 Signaturen aktiviert (Standard)
0x00 Signaturen deaktiviert
Datensatz-ID

Ein zufällig generierter 256-Bit-Wert, der den Datensatz identifiziert. Die Datensatz-ID:

  • Identifiziert den verschlüsselten Datensatz eindeutig.

  • Bindet die Materialbeschreibung an den verschlüsselten Datensatz.

Legende verschlüsseln

Eine serialisierte Beschreibung, welche authentifizierten Felder verschlüsselt wurden. Die Verschlüsselungslegende wird verwendet, um zu bestimmen, welche Felder die Entschlüsselungsmethode zu entschlüsseln versuchen soll.

Byte-Wert Bedeutung
0x65 ENCRYPT_AND_SIGN
0x73 SIGN_ONLY

Die Encrypt Legend ist wie folgt serialisiert:

  1. Lexikographisch anhand der Bytefolge, die ihren kanonischen Pfad darstellt.

  2. Fügen Sie für jedes Feld der Reihe nach einen der oben angegebenen Bytewerte an, um anzugeben, ob das Feld verschlüsselt werden soll.

Länge des Verschlüsselungskontextes

Die Länge des Verschlüsselungskontextes. Dies ist ein 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl. Die maximale Länge beträgt 65.535 Byte.

Verschlüsselungskontext

Eine Reihe von Name-Wert-Paaren, die beliebige, nicht geheime zusätzliche authentifizierte Daten enthalten.

Wenn digitale Signaturen aktiviert sind, enthält der Verschlüsselungskontext das Schlüssel-Wert-Paar. {"aws-crypto-footer-ecdsa-key": Qtxt} Qtxtsteht für den elliptischen Kurvenpunkt, der gemäß SEC 1 Version 2.0 Q komprimiert und anschließend base64-codiert wurde.

Verschlüsselter Datenschlüssel-Zähler

Die Anzahl der verschlüsselten Datenschlüssel. Es handelt sich um einen 1-Byte-Wert, der als 8-Bit-Ganzzahl ohne Vorzeichen interpretiert wird und die Anzahl der verschlüsselten Datenschlüssel angibt. Die maximale Anzahl verschlüsselter Datenschlüssel in jedem Datensatz beträgt 255.

Verschlüsselte Datenschlüssel

Eine Folge von verschlüsselten Datenschlüsseln. Die Länge der Folge wird durch die Anzahl der verschlüsselten Datenschlüssel und ihre jeweilige Länge bestimmt. Die Folge enthält mindestens einen verschlüsselten Datenschlüssel.

In der folgenden Tabelle sind die Felder beschrieben, die die verschlüsselten Datenschlüssel bilden. Die Byte werden in der angegebenen Reihenfolge angehängt.

Struktur der verschlüsselten Datenschlüssel
Feld Länge in Byte
Länge der Schlüsselanbieter-ID 2
Schlüsselanbieter-ID Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge der Schlüsselanbieter-ID).
Länge der Schlüsselanbieterinformation 2
Schlüsselanbieterinformation Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge der Schlüsselanbieterinformation).
Länge des verschlüsselten Datenschlüssels 2
Verschlüsselte Datenschlüssel Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge des verschlüsselten Datenschlüssels).
Länge der Schlüsselanbieter-ID

Die Länge der Schlüsselanbieter-ID. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die die Schlüsselanbieter-ID enthalten.

Schlüsselanbieter-ID

Die Schlüsselanbieter-ID. Wird verwendet, um den Anbieter des verschlüsselten Datenschlüssels anzugeben, und ist auf Erweiterbarkeit ausgelegt.

Länge der Schlüsselanbieterinformation

Die Länge der Schlüsselanbieterinformation. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die die Schlüsselanbieterinformation enthalten.

Schlüsselanbieterinformation

Die Schlüsselanbieterinformation. Wird durch den Schlüsselanbieter bestimmt.

Wenn Sie einen AWS KMS Schlüsselbund verwenden, enthält dieser Wert den Amazon-Ressourcennamen (ARN) von. AWS KMS key

Länge des verschlüsselten Datenschlüssels

Die Länge des verschlüsselten Datenschlüssels. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die den verschlüsselten Datenschlüssel enthalten.

Verschlüsselte Datenschlüssel

Der verschlüsselte Datenschlüssel. Es ist der vom Schlüsselanbieter verschlüsselte Datenschlüssel.

Engagement auf Rekordniveau

Ein eindeutiger 256-Bit-HMAC-Hash (Hash-Based Message Authentication Code), der mithilfe des Commit-Schlüssels über alle vorangegangenen Byte der Materialbeschreibung berechnet wird.

AWS KMSTechnische Details zum hierarchischen Schlüsselbund

Der AWS KMShierarchische Schlüsselbund verwendet einen eindeutigen Datenschlüssel, um jedes Feld zu verschlüsseln, und verschlüsselt jeden Datenschlüssel mit einem eindeutigen Wickelschlüssel, der von einem aktiven Zweigschlüssel abgeleitet ist. Es verwendet eine Schlüsselableitung im Zählermodus mit einer Pseudozufallsfunktion mit HMAC SHA-256, um den 32-Byte-Wrapping-Schlüssel mit den folgenden Eingaben abzuleiten.

  • Ein 16-Byte-Salz nach dem Zufallsprinzip

  • Der aktive Filialschlüssel

  • Der UTF-8-codierte Wert für die Schlüsselanbieter-ID "“ aws-kms-hierarchy

Der hierarchische Schlüsselbund verwendet den abgeleiteten Wickelschlüssel, um eine Kopie des Klartext-Datenschlüssels mithilfe von AES-GCM-256 mit einem 16-Byte-Authentifizierungstag und den folgenden Eingaben zu verschlüsseln.

  • Der abgeleitete Wickelschlüssel wird als AES-GCM-Verschlüsselungsschlüssel verwendet

  • Der Datenschlüssel wird als AES-GCM-Nachricht verwendet

  • Als AES-GCM IV wird ein zufälliger 12-Byte-Initialisierungsvektor (IV) verwendet

  • Zusätzliche authentifizierte Daten (AAD), die die folgenden serialisierten Werte enthalten.

    Wert Länge in Byte Interpretiert als
    "aws-kms-hierarchy" 17 UTF-8-codiert
    Die Schlüssel-ID der Filiale Variable UTF-8-codiert
    Die Branch-Key-Version 16 UTF-8-codiert
    Verschlüsselungskontext Variable UTF-8-kodierte Schlüsselwertpaare