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

Referenz

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

Die folgenden Themen enthalten technische Details zur AWS Datenbankverschlüsselung. SDK

Format der Materialbeschreibung

Die Materialbeschreibung dient als Header für einen verschlüsselten Datensatz. Wenn Sie Felder mit der AWS Datenbankverschlüsselung verschlüsseln und signierenSDK, 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 übertragbare, 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, aus denen sich die Materialbeschreibung zusammensetzt. Die Byte werden in der angegebenen Reihenfolge angehängt.

Version

Die Version des Formats dieses aws_dbe_head Felds.

Signaturen aktiviert

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

Byte-Wert Bedeutung
0x01 ECDSAdigitale Signaturen aktiviert (Standard)
0x00 ECDSAdigitale Signaturen sind 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-Legende ist wie folgt serialisiert:

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

  2. Hängen 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

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

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

Anzahl verschlüsselter Datenschlüssel

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
Key Provider ID Length 2
Key Provider ID Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge der Schlüsselanbieter-ID).
Key Provider Information Length 2
Key Provider Information Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge der Schlüsselanbieterinformation).
Encrypted Data Key Length 2
Encrypted Data Key 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.

ID des Schlüsselanbieters

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

Länge der Informationen zum Schlüsselanbieter

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.

Informationen zu den wichtigsten Anbietern

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üsselter Datenschlüssel

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

Engagement in Rekordhöhe

Ein eindeutiger 256-Bit-Hash mit Hash-basiertem Nachrichtenauthentifizierungscode (HMAC), der mithilfe des Commit-Schlüssels für alle vorherigen Materialbeschreibungs-Bytes berechnet wurde.

AWS KMS Technische Details zum hierarchischen Schlüsselbund

Der AWS KMS hierarchische Schlüsselbund verwendet einen eindeutigen Datenschlüssel, um jedes Feld zu verschlüsseln, und verschlüsselt jeden Datenschlüssel mit einem eindeutigen Umschließungsschlüssel, der von einem aktiven Zweigschlüssel abgeleitet wird. Er 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-Zufallssalz

  • Der aktive Zweigschlüssel

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

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

  • Der abgeleitete Umschließungsschlüssel wird als Chiffrierschlüssel verwendet AES GCM

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

  • Ein zufälliger 12-Byte-Initialisierungsvektor (IV) wird als AES - GCM 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 Kennung des Zweigschlüssels Variable UTF-8 codiert
    Die Version mit dem Zweigschlüssel 16 UTF-8 codiert
    Verschlüsselungskontext Variable UTF-8 kodierte Schlüssel-Wert-Paare