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.
Schlüsselringe
Unterstützte Programmiersprachenimplementierungen verwenden Schlüsselringe zur Verschlüsselung von Umschlägen. Schlüsselbunde generieren, verschlüsseln und entschlüsseln Datenschlüssel. Schlüsselringe bestimmen die Quelle der eindeutigen Datenschlüssel, die jede Nachricht schützen, und der Umschließungsschlüssel, die diesen Datenschlüssel verschlüsseln. Sie geben bei der Verschlüsselung einen Schlüsselbund und bei der Entschlüsselung denselben oder einen anderen Schlüsselbund an. Sie können die vom SDK bereitgestellten Schlüsselbunde verwenden oder Ihren eigenen kompatiblen, benutzerdefinierten Schlüsselbunde schreiben.
Sie können jeden Schlüsselbund einzeln verwenden oder Schlüsselbunde in einen Multi-Schlüsselbund kombinieren. Obwohl die meisten Schlüsselbunde Datenschlüssel generieren, verschlüsseln und entschlüsseln können, können Sie einen Schlüsselbund erstellen, der nur eine bestimmte Operation ausführt, wie z. B. einen Schlüsselbund, der nur Datenschlüssel generiert. Dieser Schlüsselbund kann dann in Kombination mit anderen verwendet werden.
Wir empfehlen Ihnen, einen Schlüsselbund zu verwenden, der Ihre Wrapping-Schlüssel schützt und kryptografische Operationen innerhalb einer sicheren Grenze ausführt, wie z. B. den AWS KMS Schlüsselbund, der diesen Never Never Leave () AWS KMS keys unverschlüsselt verwendet. AWS Key Management ServiceAWS KMS Sie können auch einen Schlüsselbund schreiben, bei dem Schlüssel zum Umschließen von Schlüsseln verwendet werden, die in Ihren Hardware-Sicherheitsmodulen (HSMs) gespeichert oder durch andere Master-Key-Dienste geschützt sind. Weitere Informationen finden Sie im Thema Schlüsselbundschnittstelle
Schlüsselringe spielen die Rolle der Hauptschlüssel und Hauptschlüsselanbieter, die in anderen Programmiersprachenimplementierungen verwendet werden. Wenn Sie unterschiedliche Sprachimplementierungen von verwenden, um Ihre Daten AWS Encryption SDK zu verschlüsseln und zu entschlüsseln, stellen Sie sicher, dass Sie kompatible Schlüsselringe und Hauptschlüsselanbieter verwenden. Details hierzu finden Sie unter Schlüsselbund-Kompatibilität.
In diesem Thema wird erklärt, wie Sie die Schlüsselbundfunktion von verwenden AWS Encryption SDK und wie Sie einen Schlüsselbund auswählen.
Funktionsweise von Schlüsselbunden
Wenn Sie Daten verschlüsseln, AWS Encryption SDK fragt der den Schlüsselbund nach Verschlüsselungsmaterial. Der Schlüsselbund gibt einen Klartext-Datenschlüssel und eine Kopie des Datenschlüssels zurück, der durch die einzelnen Schlüssel im Schlüsselbund verschlüsselt wird. Der AWS Encryption SDK verwendet den Klartext-Schlüssel, um die Daten zu verschlüsseln, und zerstört dann den Klartext-Datenschlüssel. Anschließend wird eine verschlüsselte Nachricht AWS Encryption SDK zurückgegeben, die die verschlüsselten Datenschlüssel und die verschlüsselten Daten enthält.

Wenn Sie Daten entschlüsseln, können Sie denselben Schlüsselbund verwenden, den Sie zum Verschlüsseln der Daten verwendet haben, oder einen anderen. Um die Daten zu entschlüsseln, muss ein Entschlüsselungsschlüsselbund mindestens einen Umschließungsschlüssel im Schlüsselbund enthalten (oder Zugriff darauf haben).
Der AWS Encryption SDK übergibt die verschlüsselten Datenschlüssel aus der verschlüsselten Nachricht an den Schlüsselbund und fordert den Schlüsselbund auf, einen davon zu entschlüsseln. Der Schlüsselbund verwendet seine Umhüllungsschlüssel zum Entschlüsseln eines der verschlüsselten Datenschlüssel und gibt einen Klartext-Datenschlüssel zurück. Das AWS Encryption SDK entschlüsselt die Daten mithilfe des Klartext-Datenschlüssels. Wenn keiner der Umhüllungsschlüssel im Schlüsselbund einen der verschlüsselten Datenschlüssel entschlüsseln kann, schlägt der Entschlüsselungsvorgang fehl.

Sie können einen einzelnen Schlüsselbund verwenden oder Schlüsselbunde desselben Typs oder eines anderen Typs in einem Multi-Schlüsselbund kombinieren. Wenn Sie Daten verschlüsseln, gibt der Multi-Schlüsselbund eine Kopie des Datenschlüssels zurück, der von allen Umhüllungsschlüsseln in allen Schlüsselbunden verschlüsselt wurde, aus denen der Multi-Schlüsselbund besteht. Sie können die Daten mithilfe eines Schlüsselbundes entschlüsseln, wobei jeder der Schlüssel im Mehrfachschlüsselbund eingeschlossen ist.
Schlüsselbund-Kompatibilität
Obwohl die verschiedenen Sprachimplementierungen von einige architektonische Unterschiede AWS Encryption SDK aufweisen, sind sie vollständig kompatibel und unterliegen sprachlichen Einschränkungen. Sie können Ihre Daten mit einer Sprachimplementierung verschlüsseln und mit jeder anderen Sprachimplementierung entschlüsseln. Sie müssen jedoch dieselben oder entsprechende Wrapping-Schlüssel verwenden, um Ihre Datenschlüssel zu verschlüsseln und zu entschlüsseln. Informationen zu Spracheinschränkungen finden Sie im Thema zu den einzelnen Sprachimplementierungen, z. B. Kompatibilität der AWS-Verschlüsselungs-SDK for JavaScript im AWS-Verschlüsselungs-SDK for JavaScript Thema.
Schlüsselringe werden in den folgenden Programmiersprachen unterstützt:
-
AWS-Verschlüsselungs-SDK for C
-
AWS-Verschlüsselungs-SDK for JavaScript
-
AWS Encryption SDK für .NET
-
Version 3. x der AWS-Verschlüsselungs-SDK for Java
-
Ausführung 4. x von AWS-Verschlüsselungs-SDK for Python, wenn es mit der optionalen Abhängigkeit der Cryptographic Material Providers Library
(MPL) verwendet wird. -
AWS Encryption SDK für Rust
-
AWS Encryption SDK für Go
Unterschiedliche Anforderungen für Verschlüsselungsschlüsselringe
In anderen AWS Encryption SDK Sprachimplementierungen als dem AWS-Verschlüsselungs-SDK for C müssen alle Schlüssel in einem Verschlüsselungsschlüsselbund (oder einem Masterschlüsselbund) oder einem Masterschlüsselanbieter in der Lage sein, den Datenschlüssel zu verschlüsseln. Wenn ein Umschließungsschlüssel nicht verschlüsselt werden kann, schlägt die Verschlüsselungsmethode fehl. Daher muss der Anrufer über die erforderlichen Berechtigungen für alle Schlüssel im Schlüsselbund verfügen. Wenn Sie einen Discovery-Schlüsselbund verwenden, um Daten allein oder in einem Mehrfachschlüsselbund zu verschlüsseln, schlägt der Verschlüsselungsvorgang fehl.
Die Ausnahme ist der AWS-Verschlüsselungs-SDK for C, bei dem der Verschlüsselungsvorgang einen standardmäßigen Erkennungsschlüsselbund ignoriert, aber fehlschlägt, wenn Sie einen Erkennungsschlüsselbund mit mehreren Regionen angeben, allein oder in einem Schlüsselbund mit mehreren Schlüsselbunden.
Kompatible Schlüsselbunde und Masterschlüssel-Anbieter
Die folgende Tabelle zeigt, welche Hauptschlüssel und Hauptschlüsselanbieter mit den mitgelieferten Schlüsselbunden kompatibel sind. AWS Encryption SDK Geringfügige Inkompatibilitäten aufgrund von Spracheinschränkungen werden im Thema über die Sprachimplementierung beschrieben.
Schlüsselbund: | Hauptschlüsselanbieter: |
---|---|
AWS KMS Schlüsselring |
AnmerkungDie AWS-Verschlüsselungs-SDK for Python und enthalten AWS-Verschlüsselungs-SDK for Java keinen Hauptschlüssel oder Hauptschlüsselanbieter, was dem AWS KMS regionalen Discovery-Schlüsselbund entspricht. |
AWS KMS Hierarchischer Schlüsselbund | Wird von den folgenden Programmiersprachen und Versionen unterstützt:
|
AWS KMS ECDH-Schlüsselanhänger | Wird von den folgenden Programmiersprachen und Versionen unterstützt:
|
Unformatierter AES-Schlüsselbund | Wenn sie mit symmetrischen Verschlüsselungsschlüsseln verwendet werden: JceMasterKeyRawMasterKey |
Unformatierter RSA-Schlüsselbund | Wenn sie mit asymmetrischen Verschlüsselungsschlüsseln verwendet werden: JceMasterKeyRawMasterKey AnmerkungDer Raw RSA-Schlüsselbund unterstützt keine asymmetrischen KMS-Schlüssel. Wenn Sie asymmetrische RSA-KMS-Schlüssel verwenden möchten, Version 4. x of the AWS Encryption SDK für .NET unterstützt AWS KMS Schlüsselringe, die symmetrische Verschlüsselung ( |
Roher ECDH-Schlüsselbund | Wird von den folgenden Programmiersprachen und Versionen unterstützt:
|