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 unterscheidet sich das AWS Encryption SDK von den AWS-SDKs?

DieAWS-SDKsBereitstellung von Bibliotheken für die Interaktion mit Amazon Web Services (AWS), einschließlichAWS Key Management Service(AWS KMS) enthalten. Einige der Sprachimplementierungen desAWS Encryption SDK, wie dasAWS Encryption SDKfür .NET, benötige immer dieAWSSDK in derselben Programmiersprache. Andere Sprachimplementierungen erfordern die entsprechendeAWSSDK nur wenn Sie verwendenAWS KMSSchlüssel in Ihren Schlüsselringen oder Hauptschlüsselanbietern. Weitere Informationen finden Sie im Thema Ihrer Programmiersprache unterAWS Encryption SDK-Programmiersprachenaus.

Sie können dasAWSSDKs zum InteragierenAWS KMS, einschließlich der Verschlüsselung und Entschlüsselung kleiner Datenmengen (bis zu 4.096 Byte mit einem symmetrischen Verschlüsselungsschlüssel) und 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 vonAWS KMS, indem Sie den Klartext-Datenschlüssel sicher verwerfen, den verschlüsselten Datenschlüssel speichern und dann den Datenschlüssel entschlüsseln und Ihre Daten entschlüsseln. DieAWS Encryption SDKwickelt diesen Prozess für Sie ab.

DieAWS Encryption SDKstellt eine Bibliothek bereit, die Daten mithilfe von Industriestandards und Best Practices verschlüsselt und entschlüsselt. Es generiert den Datenschlüssel, verschlüsselt ihn unter den von Ihnen angegebenen Umbruchschlüsseln und gibt einenVerschlüsselte Nachricht, einem tragbaren Datenobjekt, das die verschlüsselten Daten und die verschlüsselten Datenschlüssel enthält, die Sie für die Entschlüsselung benötigen. Wenn es Zeit zum Entschlüsseln ist, geben Sie die verschlüsselte Nachricht und mindestens einen der Umschlagschlüssel (optional) und denAWS Encryption SDKgibt Ihre Klartext-Daten zurück.

Sie könnenAWS KMS keysals Schlüsselpackung imAWS Encryption SDK, aber es ist nicht erforderlich. Sie können Verschlüsselungsschlüssel verwenden, die Sie generieren, und die von Ihrem Schlüsselmanager oder dem lokalen Hardwaresicherheitsmodul. Sie können dasAWS Encryption SDKauch wenn Sie keinAWSKonto.

Wie ist dasAWS Encryption SDKanders als der Amazon S3 Encryption Client?

DieAmazon S3 Encryption ClientimAWSDas SDKs unterstützt Verschlüsselung und Entschlüsselung für Daten, die Sie im Amazon Simple Storage Service (Amazon S3) speichern. Diese Kunden sind eng mit Amazon S3 gekoppelt und ausschließlich für die Verwendung mit den dort gespeicherten Daten vorgesehen.

Das AWS Encryption SDK unterstützt Verschlüsselung und Entschlüsselung für Daten, die Sie an einem beliebigen Ort speichern können. DieAWS Encryption SDKDas und der Amazon S3 Encryption Client ist nicht kompatibel, da er Ciphertexte mit unterschiedlichen Datenformaten erzeugt.

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

DieAWS Encryption SDKVerwenden Sie den symmetrischen Algorithmus Advanced Encryption Standard (GCM) im Galois/Counter Mode (GCM), als AES-GCM bezeichnet, zur Verschlüsselung Ihrer Daten. Sie können aus mehreren symmetrischen und asymmetrischen Algorithmen wählen, um die Datenschlüssel zu verschlüsseln, die Ihre Daten verschlüsseln.

Für AES-GCM ist die Standard-Algorithmus-Suite AES-GCM mit einem 256-Bit-Schlüssel, Schlüsselableitung (HKDF),digitale Signaturen, undSchlüsselverpflichtungaus.AWS Encryption SDKUnterstützt außerdem 192- und 128-Bit-Verschlüsselungsschlüssel und Verschlüsselungsalgorithmen ohne digitale Signaturen und Schlüsselverpflichtungen.

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 den HMAC-basierten extract-and-expand Die 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?

DieAWS Encryption SDKVerwenden Sie eine deterministische Methode, um für jeden Frame einen anderen IV-Wert zu konstruieren. Dieses Verfahren garantiert, dass IVs niemals innerhalb einer Nachricht wiederholt werden. (Vor Version 1.3.0 desAWS-Verschlüsselungs-SDK for Javaund dieAWS-Verschlüsselungs-SDK for Python, derAWS Encryption SDKEs hat zufällig einen eindeutigen IV-Wert für jeden Frame generiert.)

Das IV wird in der verschlüsselten Nachricht gespeichert, dass dasAWS Encryption SDKgibt zurück. 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 von dem verwendeten Schlüsselbund oder Masterschlüssel-Anbieter ab.

DieAWS KMSSchlüsselringe und Master Key Provider imAWS Encryption SDKVerwenden Sie dasAWS KMS GenerateDataKeyAPI-Operation, um jeden Datenschlüssel zu generieren und unter seinem Umschlagschlüssel zu verschlüsseln. Um Kopien des Datenschlüssels unter zusätzlichen KMS-Schlüsseln zu verschlüsseln, verwenden sie dieAWS KMS Encryptverwenden. Um die Datenschlüssel zu entschlüsseln, verwenden sie dieAWS KMS Decryptverwenden. Details dazu finden Sie unter .AWS KMSSchlüsselringimAWS Encryption SDKSpezifikation in GitHubaus.

Andere Schlüsselringe generieren den Datenschlüssel, verschlüsseln und entschlüsseln mit Best Practice-Methoden für jede Programmiersprache. Einzelheiten finden Sie in der Spezifikation des Schlüsselbunds oder Hauptschlüsselanbieters imFrameworkderAWS Encryption SDKSpezifikation in GitHubaus.

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

Die AWS Encryption SDK erledigt dies 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 speichert das AWS Encryption SDK verschlüsselte Datenschlüssel mit ihren verschlüsselten Daten?

Die Verschlüsselungsoperationen im AWS Encryption SDK geben eine verschlüsselte Nachricht zurück, eine einzelne Datenstruktur, die alle 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 eindigitale Signaturenthält das NachrichtenformatFußzeileDas enthält die Signatur. Weitere Informationen finden Sie unter AWS Encryption SDK Referenz zum Nachrichtenformat.

Wie viel Overhead verursacht das AWS Encryption SDK-Nachrichtenformat für meine verschlüsselten Daten?

Die Höhe des durch das AWS Encryption SDK verursachten Overheads hängt von mehreren Faktoren ab, unter anderem:

  • 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 Umhüllungsschlüssel oder Masterschlüssel

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

Wenn Sie dasAWS Encryption SDKmit seiner Standardkonfiguration (einsAWS KMS keyAls Umhüllungsschlüssel (oder Masterschlüssel), kein AAD, nicht gerahmte Daten und ein Verschlüsselungsalgorithmus mit Signatur) beträgt der Overhead ca. 600 Bytes. 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 abhängig davon, welche der unterstützten Programmiersprachen Sie verwenden. In allen unterstützten Sprachen können Sie jedoch benutzerdefinierte definierenManager für kryptografische Materialien (CMMs), Hauptschlüssel-Anbieter, Schlüsselringe, Hauptschlüssel und Wrapping Keys.

Kann ich Daten unter mehr als einem Umhüllungsschlüssel verschlüsseln?

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

Um Daten unter mehreren Umhüllungsschlüsseln zu verschlüsseln, legen Sie einen Schlüsselbund- oder Masterschlüsselanbieter mit mehreren Umhüllungsschlüsseln an. 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 Umbruchschlüsseln verschlüsseln, wird derAWS Encryption SDKverwendet einen Umschlagschlüssel, um einen Klartext-Datenschlüssel zu erzeugen. Der Datenschlüssel ist eindeutig und mathematisch nichts mit dem Umschlagschlüssel zu tun. Der Vorgang gibt den Klartext-Datenschlüssel und eine mit dem Umhüllungsschlüssel verschlüsselte Kopie des Datenschlüssels zurück. Dann verschlüsselt die Verschlüsselungsmethode den Datenschlüssel mit den anderen Umhüllungsschlüsseln. Das resultierendeVerschlüsselte NachrichtEnthält die verschlüsselten Daten und einen verschlüsselten Datenschlüssel für jeden Umhüllungsschlüssel.

Die verschlüsselte Nachricht kann mit einem beliebigen der bei der Verschlüsselungsoperation verwendeten Umhüllungsschlüssel entschlüsselt werden. DieAWS Encryption SDKVerwenden Sie einen Umhüllungsschlü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 AWS Encryption SDK verschlüsseln?

Die meisten Programmiersprachen-Implementierungen desAWS Encryption SDKkann Rohbytes (Byte-Arrays), E/A-Streams (Byte-Streams) und Zeichenfolgen verschlüsseln. DieAWS Encryption SDKFür .NET unterstützt keine E/A-Streams. Wir stellen Beispielcode für jede der unterstützten Programmiersprachen zur Verfügung.

Wie verschlüsselt und entschlüsselt das AWS Encryption SDK E/A-Streams (Eingabe/Ausgabe)?

Das AWS Encryption SDK erzeugt einen verschlüsselnden oder entschlüsselnden Stream, der einen zugrunde liegenden E/A-Stream umhüllt. 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 stellen Beispielcode für das Verschlüsseln und Entschlüsseln von Streams für jeden derunterstützte Programmiersprachendas unterstützt Streaming.

DieAWS Encryption SDKFür .NET unterstützt keine E/A-Streams.