View a markdown version of this page

Häufig gestellte Fragen - AWS Encryption 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.

Häufig gestellte Fragen

Wie ist der AWS Encryption SDK anders als der AWS SDKs?

Die AWS SDKs bieten Bibliotheken für die Interaktion mit Amazon Web Services (AWS), einschließlich AWS Key Management Service ().AWS KMS Für einige der Sprachimplementierungen von AWS Encryption SDK, z. B. AWS Encryption SDK für .NET, ist das AWS SDK immer in derselben Programmiersprache erforderlich. Für andere Sprachimplementierungen ist das entsprechende AWS SDK nur erforderlich, wenn Sie AWS KMS Schlüssel in Ihren Schlüsselbändern oder Masterkey-Anbietern verwenden. Einzelheiten finden Sie im Thema zu Ihrer Programmiersprache unter. AWS Encryption SDK Programmiersprachen

Sie können die AWS SDKs für die Interaktion verwenden AWS KMS, z. B. zum Verschlüsseln und Entschlüsseln kleiner Datenmengen (bis zu 4.096 Byte mit einem symmetrischen Verschlüsselungsschlüssel) und zum Generieren von Datenschlüsseln für die clientseitige Verschlüsselung. Wenn Sie jedoch einen Datenschlüssel generieren, müssen Sie den gesamten Verschlüsselungs- und Entschlüsselungsprozess verwalten, einschließlich der Verschlüsselung Ihrer Daten mit dem Datenschlüssel außerhalb von AWS KMS, dem sicheren Verwerfen des Klartext-Datenschlüssels, dem Speichern des verschlüsselten Datenschlüssels und dem anschließenden Entschlüsseln des Datenschlüssels und Entschlüsseln Ihrer Daten. Der erledigt diesen Vorgang für Sie. AWS Encryption SDK

Die AWS Encryption SDK stellt eine Bibliothek bereit, die Daten unter Verwendung von Industriestandards und bewährten Methoden verschlüsselt und entschlüsselt. Sie generiert den Datenschlüssel, verschlüsselt ihn mit den von Ihnen angegebenen Schlüsseln und gibt eine verschlüsselte Nachricht zurück, ein portables Datenobjekt, das die verschlüsselten Daten und die verschlüsselten Datenschlüssel enthält, die Sie zu ihrer Entschlüsselung benötigen. Wenn es an der Zeit ist, zu entschlüsseln, geben Sie die verschlüsselte Nachricht und mindestens einen der Wrapping-Schlüssel (optional) ein, woraufhin Ihre Klartext-Daten AWS Encryption SDK zurückgegeben werden.

Sie können Schlüssel AWS KMS keys als Umschließungsschlüssel in der verwenden AWS Encryption SDK, dies ist jedoch nicht erforderlich. Sie können Verschlüsselungsschlüssel verwenden, die Sie selbst generieren, und die von Ihrem Schlüsselmanager oder dem lokalen Hardwaresicherheitsmodul stammen. Sie können das AWS Encryption SDK auch verwenden, wenn Sie kein AWS Konto haben.

Wie ist der AWS Encryption SDK anders als der Amazon S3-Verschlüsselungsclient?

Der Amazon S3-Verschlüsselungsclient in den AWS SDKs bietet Verschlüsselung und Entschlüsselung für Daten, die Sie in Amazon Simple Storage Service (Amazon S3) speichern. Diese Clients sind eng mit Amazon S3 verbunden und nur für die Verwendung mit dort gespeicherten Daten vorgesehen.

Das AWS Encryption SDK bietet Verschlüsselung und Entschlüsselung für Daten, die Sie überall speichern können. Der AWS Encryption SDK und der Amazon S3-Verschlüsselungsclient sind nicht kompatibel, da sie Chiffretexte mit unterschiedlichen Datenformaten erzeugen.

Welche kryptografischen Algorithmen werden von der unterstützt AWS Encryption SDK, und welcher ist der Standard?

Der AWS Encryption SDK verwendet den symmetrischen Algorithmus in Galois/Counter Mode (GCM) des Advanced Encryption Standard (AES), auch bekannt als AES-GCM, um Ihre Daten zu verschlüsseln. Damit können Sie aus mehreren symmetrischen und asymmetrischen Algorithmen wählen, um die Datenschlüssel zu verschlüsseln, mit denen Ihre Daten verschlüsselt werden.

Denn AES-GCM die Standard-Algorithmus-Suite besteht aus AES-GCM einem 256-Bit-Schlüssel, Schlüsselableitung (HKDF), digitalen Signaturen und Key Commitment. Digitale Signaturen Wichtiges Engagement AWS Encryption SDK unterstützt auch 192-Bit- und 128-Bit-Verschlüsselungsschlüssel und Verschlüsselungsalgorithmen ohne digitale Signaturen und Schlüsselbindung.

Die Länge des Initialisierungsvektors (IV) ist immer 12 Bytes; die Länge des Authentifizierungs-Tags ist immer 16 Bytes. Standardmäßig verwendet das SDK den Datenschlüssel als Eingabe für die HMAC-based Extrakt-and-Expand-Schlüsselableitungsfunktion (HKDF), um den AES-GCM Verschlüsselungsschlüssel abzuleiten, und fügt außerdem eine ECDSA-Signatur (Elliptic Curve Digital Signature Algorithm) hinzu.

Weitere Informationen zum Auswählen des Algorithmus finden Sie unter Unterstützte Algorithmen-Pakete.

Weitere Informationen zu den unterstützten Algorithmen finden Sie unter Algorithmen – Referenz.

Wie wird der Initialisierungsvektor (IV) generiert und wo wird er gespeichert?

Der AWS Encryption SDK verwendet eine deterministische Methode, um für jedes Bild einen anderen IV-Wert zu erstellen. Dieses Verfahren garantiert, dass IVs innerhalb einer Nachricht niemals wiederholt werden. (Vor Version 1.3.0 von AWS-Verschlüsselungs-SDK for Java and the generierten die AWS Encryption SDK nach dem AWS-Verschlüsselungs-SDK for Python Zufallsprinzip einen eindeutigen IV-Wert für jeden Frame.)

Der IV-Wert wird in der verschlüsselten Nachricht gespeichert, die AWS Encryption SDK zurückgesendet wird. Weitere Informationen hierzu finden Sie unter AWS Encryption SDK Referenz zum Nachrichtenformat.

Wie werden die einzelnen Datenschlüssel generiert, verschlüsselt und entschlüsselt?

Die Methode hängt vom verwendeten Schlüsselbund oder Masterkey-Anbieter ab.

Die AWS KMS Schlüsselringe und Masterkey-Anbieter AWS Encryption SDK verwenden den AWS KMS GenerateDataKey API-Vorgang, um jeden Datenschlüssel zu generieren und ihn unter seinem Wrapping-Schlüssel zu verschlüsseln. Um Kopien des Datenschlüssels mit zusätzlichen KMS-Schlüsseln zu verschlüsseln, verwenden sie den AWS KMS Vorgang Encrypt. Um die Datenschlüssel zu entschlüsseln, verwenden sie den AWS KMS Vorgang Entschlüsseln. Einzelheiten finden Sie unter AWS KMS Schlüsselbund in der AWS Encryption SDK Spezifikation unter. GitHub

Andere Schlüsselringe generieren den Datenschlüssel und verschlüsseln und entschlüsseln mithilfe bewährter Methoden für jede Programmiersprache. Einzelheiten finden Sie in der Spezifikation des Schlüsselbundes- oder Hauptschlüsselanbieters im Framework-Abschnitt der Spezifikation unter. AWS Encryption SDK GitHub

Wie kann ich nachverfolgen, welche Datenschlüssel zum Verschlüsseln meiner Daten verwendet wurden?

Das AWS Encryption SDK erledigt das für Sie. Wenn Sie Daten verschlüsseln, verschlüsselt das SDK den Datenschlüssel und speichert den verschlüsselten Schlüssel zusammen mit den verschlüsselten Daten in der verschlüsselten Nachricht, die es zurückgibt. Wenn Sie Daten entschlüsseln, extrahiert das AWS Encryption SDK den verschlüsselten Datenschlüssel aus der verschlüsselten Nachricht, entschlüsselt ihn und verwendet ihn dann zur Entschlüsselung der Daten.

Wie funktioniert der AWS Encryption SDK speichert verschlüsselte Datenschlüssel mit ihren verschlüsselten Daten?

Die Verschlüsselungsvorgänge AWS Encryption SDK geben eine verschlüsselte Nachricht zurück, eine einzelne Datenstruktur, die die verschlüsselten Daten und ihre verschlüsselten Datenschlüssel enthält. Das Nachrichtenformat besteht aus mindestens zwei Teilen: einem Header und einem Text. Der Nachrichten-Header enthält die verschlüsselten Datenschlüssel sowie Informationen darüber, wie der Nachrichtentext gebildet wird. Der Nachrichtentext enthält die verschlüsselten Daten. Wenn die Algorithmus-Suite eine digitale Signatur enthält, enthält das Nachrichtenformat eine Fußzeile, die die Signatur enthält. Weitere Informationen finden Sie unter AWS Encryption SDK Referenz zum Nachrichtenformat.

Wie viel Overhead kostet der AWS Encryption SDK Das Nachrichtenformat zu meinen verschlüsselten Daten hinzufügen?

Die Höhe des zusätzlichen Mehraufwands AWS Encryption SDK hängt von mehreren Faktoren ab, unter anderem von den folgenden:

  • Der Größe der Klartextdaten

  • Welche der unterstützten Algorithmen verwendet werden

  • Ob zusätzliche authentifizierte Daten (AAD) bereitgestellt werden, und von der Länge dieser AAD

  • Die Anzahl und Art der Wrapping-Keys oder Master-Keys

  • Der Framegröße (wenn Daten mit Frame verwendet werden)

Wenn Sie den AWS Encryption SDK in seiner Standardkonfiguration verwenden (einer AWS KMS key als Umschließungsschlüssel (oder Hauptschlüssel), kein AAD, Daten ohne Frames und ein Verschlüsselungsalgorithmus mit Signierung), beträgt der Overhead ungefähr 600 Byte. Im Allgemeinen können Sie davon ausgehen, dass das AWS Encryption SDK einen Overhead von 1 KB oder weniger verursacht, wobei die bereitgestellten AAD nicht berücksichtigt sind. Weitere Informationen finden Sie unter AWS Encryption SDK Referenz zum Nachrichtenformat.

Kann ich meinen eigenen Masterschlüsselanbieter verwenden?

Ja. Die Implementierungsdetails variieren je nachdem, welche der unterstützten Programmiersprachen Sie verwenden. In allen unterstützten Sprachen können Sie jedoch benutzerdefinierte Manager für kryptografische Materialien (CMMs), Masterkey-Provider, Schlüsselringe, Hauptschlüssel und Wrapping-Schlüssel definieren.

Kann ich Daten mit mehr als einem Wrapping-Schlüssel verschlüsseln?

Ja. Sie können den Datenschlüssel mit zusätzlichen Wrapping-Schlüsseln (oder Hauptschlüsseln) verschlüsseln, um für Redundanz zu sorgen, wenn sich der Schlüssel in einer anderen Region befindet oder für die Entschlüsselung nicht verfügbar ist.

Um Daten mit mehreren Wrapping-Schlüsseln zu verschlüsseln, erstellen Sie einen Schlüsselbund oder einen Master-Key-Provider mit mehreren Wrapping-Schlüsseln. Wenn Sie mit Schlüsselbunden arbeiten, können Sie einen einzelnen Schlüsselbund mit mehreren Umhüllungsschlüsseln oder einen Multi-Schlüsselbund erstellen.

Wenn Sie Daten mit mehreren Wrapping-Schlüsseln verschlüsseln, AWS Encryption SDK verwendet der einen Wrapping-Schlüssel, um einen Klartext-Datenschlüssel zu generieren. Der Datenschlüssel ist eindeutig und hat mathematisch nichts mit dem Wrapping-Schlüssel zu tun. Die Operation gibt den Klartext-Datenschlüssel und eine Kopie des Datenschlüssels zurück, der mit dem Wrapping-Schlüssel verschlüsselt wurde. Dann verschlüsselt die Verschlüsselungsmethode den Datenschlüssel mit den anderen Wrapping-Schlüsseln. Die resultierende verschlüsselte Nachricht enthält die verschlüsselten Daten und einen verschlüsselten Datenschlüssel für jeden Wrapping-Schlüssel.

Die verschlüsselte Nachricht kann mit einem beliebigen der beim Verschlüsselungsvorgang verwendeten Wrapping-Schlüssel entschlüsselt werden. Der AWS Encryption SDK verwendet einen Wrapping-Schlüssel, um einen verschlüsselten Datenschlüssel zu entschlüsseln. Dann verwendet es den Klartext-Datenschlüssel, um die Daten zu entschlüsseln.

Welche Datentypen kann ich mit dem verschlüsseln AWS Encryption SDK?

Die meisten Programmiersprachenimplementierungen von AWS Encryption SDK können Rohbytes (Byte-Arrays), I/O Streams (Bytestreams) und Zeichenketten verschlüsseln. Das AWS Encryption SDK für .NET unterstützt keine Streams. I/O Wir stellen Beispielcode für jede der unterstützten Programmiersprachen zur Verfügung.

Wie funktioniert das AWS Encryption SDK Streams verschlüsseln und entschlüsseln input/output (I/O)?

Der AWS Encryption SDK erstellt einen Verschlüsselungs- oder Entschlüsselungsstream, der einen zugrunde liegenden Stream umschließt. I/O Der verschlüsselnde oder entschlüsselnde Stream führt bei einem Lese- oder Schreibaufruf eine kryptographische Operation durch. Beispielsweise kann er Klartextdaten aus dem zugrundeliegenden Stream lesen und verschlüsseln, bevor er das Ergebnis zurückgibt. Oder er kann Verschlüsselungstext aus einem zugrundeliegenden Stream lesen und entschlüsseln, bevor er das Ergebnis zurückgibt. Wir bieten Beispielcode zum Verschlüsseln und Entschlüsseln von Streams für jede der unterstützten Programmiersprachen, die Streaming unterstützen.

Das AWS Encryption SDK für .NET unterstützt I/O keine Streams.