Problembehandlung bei der Migration auf die neuesten Versionen - 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.

Problembehandlung bei der Migration auf die neuesten Versionen

Bevor Sie Ihre Anwendung auf Version 2.0 aktualisieren.Xoder später derAWS Encryption SDK, aktualisiere auf die neueste Version 1.XVersion desAWS Encryption SDKund setze es vollständig ein. Auf diese Weise können Sie die meisten Fehler vermeiden, die beim Update auf Version 2.0 auftreten können.Xund später. Eine ausführliche Anleitung, einschließlich Beispielen, finden Sie unterMigrieren Sie IhreAWS Encryption SDK.

Wichtig

Stellen Sie sicher, dass Ihr neuestes 1.XVersion ist Version 1.7.Xoder später derAWS Encryption SDK.

Anmerkung

AWSVerschlüsselung CLI: Verweise auf Version 1.7 in diesem Handbuch.XderAWS Encryption SDKgelten für Version 1.8.XderAWSVerschlüsselungs-CLI. Verweise auf Version 2.0 in diesem Handbuch.XderAWS Encryption SDKBewerbe dich auf 2.1.XderAWSVerschlüsselungs-CLI.

Neue Sicherheitsfunktionen wurden ursprünglich in veröffentlichtAWSVerschlüsselung CLI Versionen 1.7.Xund 2.0.X. AllerdingsAWSVerschlüsselung CLI Version 1.8.Xersetzt Version 1.7.XundAWSVerschlüsselung CLI 2.1.Xersetzt 2.0.X. Details dazu finden Sie unter.Sicherheits-Beratungin deraws-encryption-sdk-cliRepository auf GitHub.

Dieses Thema soll Ihnen helfen, die am häufigsten auftretenden Fehler zu erkennen und zu beheben.

Veraltete oder entfernte Objekte

Version 2.0.Xenthält mehrere bahnbrechende Änderungen, einschließlich des Entfernens von Legacy-Konstruktoren, Methoden, Funktionen und Klassen, die in Version 1.7 veraltet waren.X. Um Compilerfehler, Importfehler, Syntaxfehler und Fehler „Symbol nicht gefunden“ (abhängig von Ihrer Programmiersprache) zu vermeiden, aktualisieren Sie zuerst auf die neueste Version 1.XVersion desAWS Encryption SDKfür Ihre Programmiersprache. (Dies muss Version 1.7 sein.Xoder später.) Während der Verwendung der neuesten Version 1.XVersion können Sie mit der Verwendung der Ersatzelemente beginnen, bevor die ursprünglichen Symbole entfernt werden.

Wenn Sie auf Version 2.0 aktualisieren müssen.Xoder später sofort,konsultiere das Changelogfür Ihre Programmiersprache, und ersetzen Sie die Legacy-Symbole durch die vom Changelog empfohlenen Symbole.

Konfigurationskonflikt: Commitment Policy- und Algorithmus

Wenn Sie eine Algorithmus-Suite angeben, die mit IhremCommitschlägt der Aufruf von encrypt fehl mit einemKonflikt bei der KonfigurationFehler.

Um diese Art von Fehler zu vermeiden, geben Sie keine Algorithmus-Suite an. Standardmäßig istAWS Encryption SDKwählt den sichersten Algorithmus, der mit Ihrer Verpflichtungsrichtlinie kompatibel ist. Wenn Sie jedoch eine Algorithmus-Suite angeben müssen, z. B. eine ohne Signierung, stellen Sie sicher, dass Sie eine Algorithmus-Suite auswählen, die mit Ihrer Verpflichtungsrichtlinie kompatibel ist.

Richtlinien für Verpflichtung Kompatible Algorithmen Suites
ForbidEncryptAllowDecrypt

Jede Algorithmus-Suiteohnewichtige Verpflichtung, wie zum Beispiel:

AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384(03 78) (mit Unterschrift)

AES_256_GCM_IV12_TAG16_HKDF_SHA256(01 78) (ohne Unterschrift)

RequireEncryptAllowDecrypt

RequireEncryptRequireDecrypt

Jede Algorithmus-Suitemitwichtige Verpflichtung, wie zum Beispiel:

AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384(05 78) (mit Unterschrift)

AES_256_GCM_HKDF_SHA512_COMMIT_KEY(04 78) (ohne Unterschrift)

Wenn dieser Fehler auftritt, wenn Sie keine Algorithmus-Suite angegeben haben, wurde die widersprüchliche Algorithmus-Suite möglicherweise von IhremKryptografischer Materialmanager(CMM). Das Standard-CMM wählt keine widersprüchliche Algorithmus-Suite aus, ein benutzerdefiniertes CMM jedoch möglicherweise. Informationen dazu finden Sie in der Dokumentation zu Ihrem benutzerdefinierten CMM.

Konfigurationskonflikt: Verpflichtungspolitik und Chiffretext

DieRequireEncryptRequireDecrypt Commiterlaubt nichtAWS Encryption SDKum eine Nachricht zu entschlüsseln, die ohne verschlüsselt wurdewichtige Verpflichtung. Wenn du das fragstAWS Encryption SDKum eine Nachricht ohne Schlüsselbindung zu entschlüsseln, wird einKonflikt bei der KonfigurationFehler.

Um diesen Fehler zu vermeiden, müssen Sie vor dem Setzen derRequireEncryptRequireDecryptCommitment-Richtlinie, stellen Sie sicher, dass alle Chiffretexte, die ohne Schlüsselbindung verschlüsselt wurden, mit Schlüsselbindung entschlüsselt und neu verschlüsselt oder von einer anderen Anwendung verarbeitet werden. Wenn dieser Fehler auftritt, können Sie einen Fehler für den widersprüchlichen Chiffretext zurückgeben oder Ihre Verpflichtungsrichtlinie vorübergehend in ändernRequireEncryptAllowDecrypt.

Wenn dieser Fehler auftritt, weil Sie auf Version 2.0 aktualisiert haben.Xoder höher aus einer Version vor 1.7.Xohne vorher auf die neueste Version zu aktualisieren 1.XVersion (Version 1.7.Xoder später), überlegen SieRollbackbis zum neuesten 1.XVersion und Bereitstellung dieser Version auf allen Hosts vor dem Upgrade auf Version 2.0.Xoder später. Weitere Informationen dazu finden Sie unter So migrieren und implementieren Sie dasAWS Encryption SDK.

Validierung der wichtigsten Verpflichtungen fehlgeschlagen

Wenn Sie Nachrichten entschlüsseln, die mit Schlüsselbindung verschlüsselt sind, erhalten Sie möglicherweise eineValidierung der wichtigsten Verpflichtungen fehlgeschlagen. Dies zeigt an, dass der Entschlüsselungsaufruf fehlgeschlagen ist, weil ein Datenschlüssel in einemverschlüsselte Mitteilungist nicht identisch mit dem eindeutigen Datenschlüssel für die Nachricht. Durch die Validierung des Datenschlüssels während der Entschlüsselungwichtige Verpflichtungschützt Sie vor der Entschlüsselung einer Nachricht, die zu mehr als einem Klartext führen kann.

Dieser Fehler weist darauf hin, dass die verschlüsselte Nachricht, die Sie zu entschlüsseln versuchten, nicht vomAWS Encryption SDK. Es kann sich um eine manuell erstellte Nachricht oder das Ergebnis einer Datenbeschädigung handeln. Wenn dieser Fehler auftritt, kann Ihre Anwendung die Nachricht zurückweisen und fortfahren oder die Verarbeitung neuer Nachrichten beenden.

Andere Verschlüsselungsfehler

Die Verschlüsselung kann aus mehreren Gründen fehlschlagen. Sie können keinenAWS KMSDiscovery Schlüsselringoder einMaster Key-Anbieter im Discovery-Modusum eine Nachricht zu verschlüsseln.

Stellen Sie sicher, dass Sie einen Schlüsselbund- oder Hauptschlüsselanbieter mit Umbruchschlüsseln angeben, die Sie habenBerechtigung zur Nutzungfür Verschlüsselung. Für Hilfe bei Berechtigungen aufAWS KMS keys, sieheAnzeigen einer SchlüsselrichtlinieundBestimmen des Zugriffs aufAWS KMS keyin derAWS Key Management Service-Entwicklerhandbuch.

Andere Fehler bei der Entschlüsselung

Wenn Ihr Versuch, eine verschlüsselte Nachricht zu entschlüsseln, fehlschlägt, bedeutet dies, dass dieAWS Encryption SDKkonnte (oder würde) keinen der verschlüsselten Datenschlüssel in der Nachricht entschlüsseln.

Wenn Sie einen Schlüsselbund- oder Hauptschlüsselanbieter verwendet haben, der umlaufende Schlüssel angibt,AWS Encryption SDKverwendet nur die von Ihnen angegebenen Wrapping-Schlüssel. Stellen Sie sicher, dass Sie die beabsichtigten Wickelschlüssel verwenden, die Sie verwenden und dass Siekms:Decrypt-Berechtigung auf mindestens einen der Wrapping-Schlüssel. Wenn SieAWS KMS keys, als Fallback können Sie versuchen, die Nachricht mit einemAWS KMSDiscovery Schlüsselanhängeroder einMaster Key-Anbieter im Discovery-Modus. Wenn der Vorgang erfolgreich ist, stellen Sie vor der Rückgabe des Klartextes sicher, dass der Schlüssel, der zum Entschlüsseln der Nachricht verwendet wird, vertrauenswürdig ist.

Überlegungen zum Rollback

Wenn Ihre Anwendung Daten nicht ver- oder entschlüsseln kann, können Sie das Problem normalerweise lösen, indem Sie die Codesymbole, Schlüsselringe, Hauptschlüsselanbieter oderCommitment-Politik. In einigen Fällen entscheiden Sie sich jedoch möglicherweise dafür, dass es am besten ist, Ihre Anwendung auf eine frühere Version desAWS Encryption SDK.

Wenn Sie einen Rollback durchführen müssen, tun Sie dies mit Vorsicht. Versionen desAWS Encryption SDKvor 1.7.Xverschlüsselter Chiffretext kann nicht entschlüsselt werden mitwichtige Verpflichtung.

  • Rollback vom neuesten 1.XVersion auf eine frühere Version desAWS Encryption SDKist im Allgemeinen sicher. Möglicherweise müssen Sie Änderungen, die Sie an Ihrem Code vorgenommen haben, rückgängig machen, um Symbole und Objekte zu verwenden, die in früheren Versionen nicht unterstützt wurden.

  • Sobald Sie mit der Verschlüsselung mit Key Commitment begonnen haben (setzen Sie Ihre Commitment-Richtlinie aufRequireEncryptAllowDecrypt) in Version 2.0.Xoder höher können Sie auf Version 1.7 zurücksetzen.X, aber nicht zu einer früheren Version. Versionen desAWS Encryption SDKvor 1.7.Xverschlüsselter Chiffretext kann nicht entschlüsselt werden mitwichtige Verpflichtung.

Wenn Sie versehentlich die Verschlüsselung mit Schlüsselübergabe aktivieren, bevor alle Hosts mit Schlüsselbindung entschlüsseln können, ist es möglicherweise besser, mit dem Rollout fortzufahren, anstatt ein Rollback durchzuführen. Wenn Nachrichten vorübergehend sind oder sicher verworfen werden können, sollten Sie einen Rollback mit Nachrichtenverlust in Betracht ziehen. Wenn ein Rollback erforderlich ist, sollten Sie erwägen, ein Tool zu schreiben, das alle Nachrichten entschlüsselt und neu verschlüsselt.