Bewährte Methoden für AWS Encryption SDK - 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.

Bewährte Methoden für AWS Encryption SDK

DieAWS Encryption SDKwurde entwickelt, um Ihnen den Schutz Ihrer Daten unter Verwendung von Branchenstandards und bewährten Methoden zu erleichtern. Während viele Best Practices für Sie in Standardwerten ausgewählt werden, sind einige Vorgehensweisen optional, werden jedoch empfohlen, wann immer es praktikabel ist.

Verwenden Sie die aktuelle Version

Wenn Sie beginnen, dasAWS Encryption SDK, verwenden Sie die aktuelle Version, die in Ihrer bevorzugten-Programmierspracheaus. Wenn Sie dasAWS Encryption SDK, führen Sie so bald wie möglich ein Upgrade auf die aktuelle Version durch. Dadurch wird sichergestellt, dass Sie die empfohlene Konfiguration verwenden und die neuen Sicherheitseigenschaften zum Schutz Ihrer Daten nutzen. Einzelheiten zu unterstützten Versionen, einschließlich Anleitungen für Migration und Bereitstellung, finden Sie unterSupport und WartungundVersionen der AWS Encryption SDKaus.

Wenn eine neue Version Elemente in Ihrem Code veraltet, ersetzen Sie sie so schnell wie möglich. Verwertungswarnungen und Codekommentare empfehlen in der Regel eine gute Alternative.

Um wichtige Upgrades einfacher und weniger fehleranfällig zu machen, bieten wir gelegentlich eine temporäre Version oder eine Übergangsversion an. Verwenden Sie diese Releases und die dazugehörige Dokumentation, um sicherzustellen, dass Sie Ihre Anwendung aktualisieren können, ohne Ihren Produktionsablauf zu unterbrechen.

Verwenden von Standardwerten

DieAWS Encryption SDKentwirft Best Practices in ihre Standardwerte. Verwenden Sie sie, wann immer möglich. Für Fälle, in denen der Standard nicht praktikabel ist, bieten wir Alternativen an, z. B. Algorithmus-Suites ohne Signierung. Wir bieten auch fortgeschrittenen Benutzern Möglichkeiten zur Anpassung, z. B. benutzerdefinierte Schlüsselringe, Master Key-Anbieter und kryptografische Materialmanager (CMMs). Verwenden Sie diese fortschrittlichen Alternativen vorsichtig und lassen Sie Ihre Auswahl nach Möglichkeit von einem Sicherheitsingenieur überprüfen.

Verwenden eines Verschlüsselungskontexts

Um die Sicherheit Ihrer kryptographischen Operationen zu verbessern, fügen Sie einVerschlüsselungskontextmit einem aussagekräftigen Wert in allen Anfragen zur Verschlüsselung von Daten. Die Verwendung eines Verschlüsselungskontexts ist optional, aber wir empfehlen dies als bewährte Methode für die Kryptografie. Ein Verschlüsselungskontext stellt zusätzliche authentifizierte Daten (AAD) für authentifizierte Verschlüsselungsdaten imAWS Encryption SDKaus. Obwohl dies nicht geheim ist, kann der Verschlüsselungskontext Ihnen helfendie Integrität und Authentizität schützenIhrer verschlüsselten Daten.

In derAWS Encryption SDKverwenden, geben Sie nur beim Verschlüsseln einen Verschlüsselungskontext an. Beim Entschlüsseln wird derAWS Encryption SDKverwendet den Verschlüsselungskontext im Header der verschlüsselten Nachricht, dass dasAWS Encryption SDKgibt zurück. Bevor Ihre Anwendung Klartext-Daten zurückgibt, stellen Sie sicher, dass der Verschlüsselungskontext, den Sie zum Verschlüsseln der Nachricht verwendet haben, im Verschlüsselungskontext enthalten ist, der zum Entschlüsseln der Nachricht verwendet wurde. Weitere Informationen finden Sie in den Beispielen in Ihrer Programmiersprache.

Wenn Sie die Befehlszeilen-Schnittstelle verwenden, wird dasAWS Encryption SDKüberprüft den Verschlüsselungskontext für Sie.

Schützen Sie Ihre Verpackungsschlüssel

DieAWS Encryption SDKgeneriert einen eindeutigen Datenschlüssel zum Verschlüsseln jeder Klartext-Nachricht. Dann verschlüsselt es den Datenschlüssel mit den von Ihnen bereitgestellten Umbruchschlüsseln. Wenn Ihre Wrapping Keys verloren gehen oder gelöscht werden, können Ihre verschlüsselten Daten nicht wiederhergestellt werden. Wenn Ihre Schlüssel nicht gesichert sind, sind Ihre Daten möglicherweise anfällig.

Verwenden Sie Wrapping Keys, die durch eine sichere Schlüsselinfrastruktur geschützt sind, wieAWS Key Management Service(AWS KMS) enthalten. Wenn Sie AES- oder RSA-Rohschlüsseln verwenden, verwenden Sie eine zufällige und dauerhafte Speicherquelle, die Ihre Anforderungen erfüllt. Generieren und Speichern von Hüllungsschlüsseln in einem HSM oder einem Dienst, der HSM bereitstellt, wieAWS CloudHSM, ist eine bewährte Methode.

Verwenden Sie die Autorisierungsmechanismen Ihrer Schlüsselinfrastruktur, um den Zugriff auf Ihre Wrapping Keys auf die Benutzer zu beschränken, die ihn benötigen. Implementieren Sie Best Practice-Prinzipien wie Least Privilege. Bei Verwendung vonAWS KMS keys, verwenden Sie Schlüsselrichtlinien und IAM-Richtlinien, dieBewährte Methodenaus.

Geben Sie Ihre Verpackungsschlüssel an

Es ist immer eine Best Practicegeben Sie Ihre Umbruchschlüsselexplizit beim Entschlüsseln sowie beim Verschlüsseln. Wenn du das tust, wird derAWS Encryption SDKverwendet nur die von Ihnen angegebenen Schlüssel. Diese Vorgehensweise stellt sicher, dass Sie nur die beabsichtigten Verschlüsselungsschlüssel verwenden. FürAWS KMSDas Umschließen von Schlüsseln verbessert auch die Leistung, indem verhindert wird, dass Sie versehentlich Schlüssel in einem anderen verwendenAWS-Kontooder Region oder versuchen, mit Schlüsseln zu entschlüsseln, für die Sie keine Berechtigung haben.

Bei der Verschlüsselung werden die Schlüsselbunde und Master Key-Anbieter, die derAWS Encryption SDKVerbrauchsmaterialien erfordern die Angabe von Umbruchschlüsseln. Sie verwenden alle und nur die von Ihnen angegebenen Umbruchschlüssel. Sie müssen auch Umbruchschlüssel angeben, wenn Sie mit AES-Rohschlüsselringen, RSA-Rohschlüsseln und JCE verschlüsseln und entschlüsselnMasterKeysaus.

Beim Entschlüsseln mitAWS KMSSchlüsselbunde und Master Key-Anbieter müssen Sie keine Umbruchschlüssel angeben. DieAWS Encryption SDKkann die Schlüsselkennung aus den Metadaten des verschlüsselten Datenschlüssels abrufen. Aber die Angabe von Umschließen von Schlüsseln ist eine bewährte bewährte Methode, die wir empfehlen

Unterstützung dieser Best Practice bei der Arbeit mitAWS KMSWenn Sie Schlüssel umschließen, empfehlen wir die folgenden Schritte:

  • Verwenden vonAWS KMSSchlüsselbunde, die Umbruchschlüssel angeben. Beim Verschlüsseln und Entschlüsseln verwenden diese Schlüsselbunde nur die von Ihnen angegebenen Umbruchschlüssel.

  • Bei Verwendung vonAWS KMSMaster Keys und Master Key-Provider verwenden die Strict-Modus-Konstruktoren, die inVersion 1.7.xderAWS Encryption SDKaus. Sie erstellen Anbieter, die nur mit den von Ihnen angegebenen Umbruchschlüsseln ver- und entschlüsseln. Konstruktoren für Master Key-Anbieter, die immer mit einem beliebigen Wrapping-Schlüssel entschlüsseln, sind in Version 1.7 veraltet.xund wurde in Version 2.0 gelöscht.xaus.

Bei der AngabeAWS KMSDas Umschließen von Schlüsseln zum Entschlüsseln ist unpraktisch. Sie können Discovery-Anbieter verwenden. DieAWS Encryption SDKin C und JavaScript UnterstützungAWS KMS-Discovery-Schlüsselbundaus. Master Key-Anbieter mit einem Erkennungsmodus sind für Java und Python in den Versionen 1.7 verfügbar.xund höher. Diese Discovery-Anbieter, die nur zum Entschlüsseln mit verwendet werdenAWS KMSSchlüssel umbrechen, leiten Sie explizit dieAWS Encryption SDKum einen beliebigen Umbruchschlüssel zu verwenden, der einen Datenschlüssel verschlüsselt hat.

Wenn Sie einen Discovery-Anbieter verwenden müssen, verwenden Sie dessen-Discovery-FilterFunktionen, um die von ihnen verwendeten Umbruchschlüssel einzuschränken. Zum Beispiel, dasAWS KMSregionalen -Discovery-Schlüsselbundverwendet nur die Umbruchschlüssel in einem bestimmtenAWS-Regionaus. Sie können auch konfigurierenAWS KMS-Schlüsselbunden undAWS KMS -Masterschlüsselanbieternur das zu verwendenSchlüssel umschließeninsbesondereAWS-Kontenaus. Verwenden Sie wie immer Schlüsselrichtlinien und IAM-Richtlinien, um den Zugriff auf IhreAWS KMSSchlüssel umbrechen.

Verwenden Sie digitale Signaturen

Es ist eine bewährte Methode, eine Algorithmus-Suite mit Signieren zu verwenden. Digitale Signaturenüberprüfen Sie, ob der Absender der Nachricht autorisiert war, die Nachricht zu senden, und schützen Sie die Integrität der Nachricht. Alle Versionen desAWS Encryption SDKverwendet standardmäßig Algorithmus-Suites mit Signierung.

Wenn Ihre Sicherheitsanforderungen keine digitalen Signaturen beinhalten, können Sie eine Algorithmus-Suite ohne digitale Signaturen auswählen. Wir empfehlen jedoch, digitale Signaturen zu verwenden, insbesondere wenn eine Benutzergruppe Daten verschlüsselt und eine andere Gruppe von Benutzern diese Daten entschlüsselt.

Verwenden Sie wichtige Verpflichtung

Es ist eine bewährte Methode, die wichtige Sicherheitsfunktion für Verpflichtungen zu verwenden. Durch Überprüfung der Überprüfung der Identität des UnikatsDatenschlüsseldie deine Daten verschlüsselt haben,Schlüsselhafte Verpflichtungverhindert, dass Sie Chiffretext entschlüsseln, der zu mehr als einer Klartext-Nachricht führen könnte.

DieAWS Encryption SDKbietet volle Unterstützung für das Verschlüsseln und Entschlüsseln mit einer Schlüsselverpflichtung abVersion 2.0.xaus. Standardmäßig werden alle Ihre Nachrichten mit Schlüsselverpflichtung verschlüsselt und entschlüsselt. Version 1.7.xderAWS Encryption SDKkann Chiffretexte mit Schlüsselverpflichtung entschlüsseln. Es wurde entwickelt, um Benutzern früherer Versionen bei der Bereitstellung von Version 2.0 zu helfen.xerfolgreich.

Die Support für wichtige Verpflichtungen umfasstneue Algorithmen-Paketeund einneues Nachrichtenformatdas erzeugt einen Chiffretext, der nur 30 Byte größer ist als ein Chiffretext ohne Schlüsselverpflichtung. Das Design minimiert die Auswirkungen auf die Leistung, sodass die meisten Benutzer die Vorteile eines wichtigen Engagements nutzen können. Wenn Ihre Anwendung sehr empfindlich auf Größe und Leistung reagiert, können Sie sich für dieCommitmentEinstellung, um die Schlüsselübergabe zu deaktivieren oder dieAWS Encryption SDKum Nachrichten unverbindlich zu entschlüsseln, aber tun Sie dies nur, wenn Sie müssen.

Begrenzung der Anzahl der verschlüsselten Datenschlüssel

Es ist eine bewährte Methode,begrenzt die Anzahl der verschlüsselten Datenschlüsselin Nachrichten, die Sie entschlüsseln, insbesondere Nachrichten aus nicht vertrauenswürdigen Quellen. Das Entschlüsseln einer Nachricht mit zahlreichen verschlüsselten Datenschlüsseln, die Sie nicht entschlüsseln können, kann zu längeren Verzögerungen führen, Kosten verursachen, Ihre Anwendung und andere, die Ihr Konto gemeinsam nutzen, drosseln und möglicherweise Ihre Schlüsselinfrastruktur erschöpfen. Ohne Einschränkungen kann eine verschlüsselte Nachricht bis zu 65.535 (2^16 - 1) verschlüsselte Datenschlüssel haben. Details hierzu finden Sie unter Beschränkung verschlüsselter Datenschlüssel.

Weitere Informationen zuAWS Encryption SDKSicherheitsfunktionen, die diesen bewährten Methoden zugrunde liegen, finden Sie unterVerbesserte clientseitige Verschlüsselung: Expliz KeyIds und SchlüsselverpflichtungimAWSBlogaus.