AWS SDKKonzepte der Datenbankverschlüsselung - AWS Datenbankverschlüsselung 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.

AWS SDKKonzepte der Datenbankverschlüsselung

Unsere clientseitige Verschlüsselungsbibliothek wurde in AWS Database Encryption umbenannt. SDK Dieses Entwicklerhandbuch enthält weiterhin Informationen zum DynamoDB Encryption Client.

In diesem Thema werden die in AWS Database Encryption verwendeten Konzepte und Terminologie erläutert. SDK

Informationen zum SDK Zusammenspiel der Komponenten von AWS Database Encryption finden Sie unterSo funktioniert das AWS Database Encryption SDK.

Weitere Informationen zur AWS Datenbankverschlüsselung SDK finden Sie in den folgenden Themen.

  • Erfahren Sie, wie AWS Database Encryption Umschlagverschlüsselung SDK verwendet, um Ihre Daten zu schützen.

  • Erfahren Sie mehr über die Elemente der Umschlagverschlüsselung: die Datenschlüssel, die Ihre Datensätze schützen, und die Umhüllungsschlüssel, die Ihre Datenschlüssel schützen.

  • Erfahren Sie mehr über die Schlüsselanhänger, die bestimmen, welche Verpackungsschlüssel Sie verwenden.

  • Erfahren Sie mehr über den Verschlüsselungskontext, der Ihrem Verschlüsselungsprozess Integrität verleiht.

  • Erfahren Sie mehr über die Materialbeschreibung, die die Verschlüsselungsmethoden Ihrem Datensatz hinzufügen.

  • Erfahren Sie mehr über die kryptografischen Aktionen, die der AWS Datenbankverschlüsselung mitteilen, SDK welche Felder verschlüsselt und signiert werden sollen.

Umschlagverschlüsselung

Die Sicherheit Ihrer verschlüsselten Daten hängt teilweise vom Schutz des Datenschlüssels ab, der sie entschlüsseln kann. Eine akzeptierte bewährte Methode zum Schutz des Datenschlüssels ist seine Verschlüsselung. Dazu benötigen Sie einen weiteren Verschlüsselungsschlüssel, einen sogenannten Schlüsselverschlüsselungsschlüssel oder Umschließungsschlüssel. Die Praxis, Datenschlüssel mit einem Wrapping-Schlüssel zu verschlüsseln, wird als Envelope-Verschlüsselung bezeichnet.

Schutz von Datenschlüsseln

Die AWS Datenbankverschlüsselung SDK verschlüsselt jedes Feld mit einem eindeutigen Datenschlüssel. Anschließend verschlüsselt sie jeden Datenschlüssel unter dem von Ihnen angegebenen Wrapping-Schlüssel. Es speichert die verschlüsselten Datenschlüssel in der Materialbeschreibung.

Um Ihren Verpackungsschlüssel anzugeben, verwenden Sie einen Schlüsselbund.

Umschlagverschlüsselung mit AWS Database Encryption SDK
Verschlüsseln derselben Daten unter mehreren Umschließungsschlüsseln

Sie können den Datenschlüssel mit mehreren Umschließungsschlüsseln verschlüsseln. Möglicherweise möchten Sie unterschiedliche Umschließungsschlüssel für verschiedene Benutzer oder Umschließungsschlüssel unterschiedlichen Typs oder an verschiedenen Speicherorten bereitstellen. Jeder der Umschließungsschlüssel verschlüsselt denselben Datenschlüssel. Die AWS Datenbankverschlüsselung SDK speichert alle verschlüsselten Datenschlüssel zusammen mit den verschlüsselten Feldern in der Materialbeschreibung.

Um die Daten zu entschlüsseln, müssen Sie mindestens einen Wrapping-Schlüssel angeben, mit dem die verschlüsselten Datenschlüssel entschlüsselt werden können.

Kombination der Stärken mehrerer Algorithmen

Um Ihre Daten zu verschlüsseln, SDK verwendet die AWS Datenbankverschlüsselung standardmäßig eine AESAlgorithmus-Suite mit GCM symmetrischer Verschlüsselung, einer HMAC basierten Schlüsselableitungsfunktion () HKDF und Signierung. ECDSA Um den Datenschlüssel zu verschlüsseln, können Sie einen symmetrischen oder asymmetrischen Verschlüsselungsalgorithmus angeben, der Ihrem Wrapping-Schlüssel entspricht.

Im Allgemeinen sind symmetrische Schlüsselverschlüsselungsalgorithmen schneller und erzeugen kleinere Verschlüsselungstexte als eine asymmetrische Verschlüsselung oder eine Verschlüsselung mit öffentlichem Schlüssel. Algorithmen mit öffentlichen Schlüsseln bieten jedoch eine inhärente Rollentrennung. Um die Stärken der beiden zu kombinieren, können Sie den Datenschlüssel mit einer Verschlüsselung mit öffentlichen Schlüsseln verschlüsseln.

Wir empfehlen, wann immer möglich einen der AWS KMS Schlüsselringe zu verwenden. Wenn Sie den AWS KMS Schlüsselbund verwenden, können Sie die Stärken mehrerer Algorithmen kombinieren, indem Sie einen asymmetrischen Schlüssel RSA AWS KMS key als Umbruchschlüssel angeben. Sie können auch einen symmetrischen Verschlüsselungsschlüssel verwenden. KMS

Datenschlüssel

Ein Datenschlüssel ist ein Verschlüsselungsschlüssel, den AWS Database Encryption SDK verwendet, um die Felder in einem Datensatz zu verschlüsseln, die ENCRYPT_AND_SIGN in den kryptografischen Aktionen markiert sind. Jeder Datenschlüssel ist ein Byte-Array, das die Anforderungen für kryptografische Schlüssel erfüllt. Die AWS Datenbankverschlüsselung SDK verwendet einen eindeutigen Datenschlüssel, um jedes Attribut zu verschlüsseln.

Sie müssen Datenschlüssel nicht spezifizieren, generieren, implementieren, erweitern, schützen oder verwenden. Die AWS Datenbankverschlüsselung SDK erledigt das für Sie, wenn Sie die Verschlüsselungs- und Entschlüsselungsvorgänge aufrufen.

Um Ihre Datenschlüssel zu schützen, SDK verschlüsselt die AWS Datenbankverschlüsselung sie mit einem oder mehreren Schlüsselverschlüsselungsschlüsseln, den sogenannten Wrapping Keys. Nachdem die AWS Datenbankverschlüsselung Ihre Klartext-Datenschlüssel SDK verwendet hat, um Ihre Daten zu verschlüsseln, werden sie so schnell wie möglich aus dem Speicher entfernt. Speichert dann den verschlüsselten Datenschlüssel in der Materialbeschreibung. Details hierzu finden Sie unter So funktioniert das AWS Database Encryption SDK.

Tipp

Bei der AWS SDK Datenbankverschlüsselung unterscheiden wir Datenschlüssel von Datenverschlüsselungsschlüsseln. Als bewährte Methode verwenden alle unterstützten Algorithmus-Suiten eine Funktion zur Schlüsselableitung. Die Schlüsselableitungsfunktion verwendet einen Datenschlüssel als Eingabe und gibt die Datenverschlüsselungsschlüssel zurück, die tatsächlich zur Verschlüsselung Ihrer Datensätze verwendet werden. Aus diesem Grund sagen wir oft, dass die Daten „unter“ einem Datenschlüssel verschlüsselt werden, statt „von“ dem Datenschlüssel.

Jeder verschlüsselte Datenschlüssel enthält Metadaten, einschließlich der Kennung des Wrapping-Schlüssels, mit dem er verschlüsselt wurde. Diese Metadaten ermöglichen es der AWS Datenbankverschlüsselung, beim Entschlüsseln gültige Wrapping-Schlüssel SDK zu identifizieren.

Umschließungsschlüssel

Ein Umschließungsschlüssel ist ein Schlüssel zur Verschlüsselung, den die AWS Datenbankverschlüsselung SDK verwendet, um den Datenschlüssel zu verschlüsseln, der Ihre Datensätze verschlüsselt. Jeder Datenschlüssel kann mit einem oder mehreren Umschließungsschlüsseln verschlüsselt werden. Bei der Konfiguration eines Schlüsselbunds legen Sie fest, welche Umschließungsschlüssel zum Schutz Ihrer Daten verwendet werden.

Verschlüsseln Sie einen Datenschlüssel mit mehreren Umschließungsschlüsseln

Die AWS Datenbankverschlüsselung SDK unterstützt mehrere häufig verwendete Schlüssel zum Umschließen von Schlüsseln, wie z. B. AWS Key Management Service(AWS KMS) symmetrische KMS Verschlüsselungsschlüssel (einschließlich Schlüssel für mehrere Regionen AWS KMS) und asymmetrische RSAKMSSchlüssel, AES Rohschlüssel GCM (Advanced Encryption Standard/Galois Counter Mode) und Rohschlüssel. RSA Wir empfehlen, wann immer möglich Schlüssel zu verwenden. KMS Informationen zur Entscheidung, welchen Umbruchschlüssel Sie verwenden sollten, finden Sie unter Umbruchschlüssel auswählen.

Wenn Sie die Envelope-Verschlüsselung verwenden, müssen Sie Ihre Wrapping Keys vor unberechtigtem Zugriff schützen. Sie können dies auf eine der folgenden Arten tun:

Wenn Sie kein Schlüsselverwaltungssystem haben, empfehlen wir AWS KMS. Die AWS Datenbankverschlüsselung ist SDK integriert AWS KMS , damit Sie Ihre Wrapping-Schlüssel schützen und verwenden können.

Schlüsselanhänger

Um die Wrapping-Schlüssel anzugeben, die Sie für die Verschlüsselung und Entschlüsselung verwenden, verwenden Sie einen Schlüsselbund. Sie können die von AWS Database Encryption SDK bereitgestellten Schlüsselbunde verwenden oder Ihre eigenen Implementierungen entwerfen.

Ein Schlüsselbund generiert, verschlüsselt und entschlüsselt Datenschlüssel. Außerdem werden die MAC Schlüssel generiert, die zur Berechnung der Hash-basierten Nachrichtenauthentifizierungscodes (HMACs) in der Signatur verwendet werden. Wenn Sie einen Schlüsselbund definieren, können Sie die Wrapping-Schlüssel angeben, mit denen Ihre Datenschlüssel verschlüsselt werden. Die meisten Schlüsselbunde spezifizieren mindestens einen Umschließungsschlüssel oder einen Dienst, der Schlüssel zum Umschließen bereitstellt und schützt. Bei der Verschlüsselung SDK verwendet die AWS Datenbankverschlüsselung alle im Schlüsselbund angegebenen Umschließungsschlüssel, um den Datenschlüssel zu verschlüsseln. Hilfe zur Auswahl und Verwendung der von der AWS Datenbankverschlüsselung definierten Schlüsselbunde finden Sie unter SDK Schlüsselbunde verwenden.

Kryptografische Aktionen

Kryptografische Aktionen teilen dem Verschlüsseler mit, welche Aktionen für jedes Feld in einem Datensatz ausgeführt werden sollen.

Bei den kryptografischen Aktionswerten kann es sich um einen der folgenden Werte handeln:

  • Verschlüsseln und signieren — Verschlüsseln Sie das Feld. Schließt das verschlüsselte Feld in die Signatur ein.

  • Nur signieren — Schließt das Feld in die Signatur ein.

  • Signieren und in den Verschlüsselungskontext aufnehmen — Schließt das Feld in den Signatur- und Verschlüsselungskontext ein.

    Standardmäßig sind die Partitions- und Sortierschlüssel das einzige Attribut, das im Verschlüsselungskontext enthalten ist. Sie könnten erwägen, zusätzliche Felder zu definieren, SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT damit der Anbieter der Branch-Schlüssel-ID für Ihren AWS KMS hierarchischen Schlüsselbund ermitteln kann, welcher Filialschlüssel für die Entschlüsselung aus dem Verschlüsselungskontext erforderlich ist. Weitere Informationen finden Sie unter Lieferant für die Filialschlüssel-ID.

    Anmerkung

    Um die SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT kryptografische Aktion verwenden zu können, müssen Sie Version 3.3 oder höher von AWS Database Encryption SDK verwenden. Stellen Sie die neue Version für alle Leser bereit, bevor Sie Ihr Datenmodell so aktualisieren, dass es diese enthältSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT.

  • Nichts tun — Verschlüsseln Sie das Feld nicht und nehmen Sie es nicht in die Signatur auf.

Verwenden Sie für jedes Feld, in dem vertrauliche Daten gespeichert werden können, die Option Verschlüsseln und Signieren. Verwenden Sie für Primärschlüsselwerte (z. B. einen Partitionsschlüssel und einen Sortierschlüssel in einer DynamoDB-Tabelle) im Verschlüsselungskontext nur signieren oder Signieren und einschließen. Wenn Sie Attribute vom Typ „Signieren“ und „Im Verschlüsselungskontext einschließen“ angeben, müssen auch die Partitions- und Sortierattribute „Im Verschlüsselungskontext signieren und einbeziehen“ lauten. Sie müssen keine kryptografischen Aktionen für die Materialbeschreibung angeben. Die AWS Datenbankverschlüsselung signiert SDK automatisch das Feld, in dem die Materialbeschreibung gespeichert ist.

Wählen Sie Ihre kryptografischen Aktionen sorgfältig aus. Verwenden Sie im Zweifelsfall Verschlüsseln und signieren. Nachdem Sie die AWS Datenbankverschlüsselung SDK zum Schutz Ihrer Datensätze verwendet haben, können Sie weder ein vorhandenes ENCRYPT_AND_SIGN SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Feld noch die einem vorhandenen DO_NOTHING Feld zugewiesene kryptografische Aktion ändern. SIGN_ONLY DO_NOTHING Sie können jedoch weiterhin andere Änderungen an Ihrem Datenmodell vornehmen. Sie können beispielsweise verschlüsselte Felder in einer einzigen Bereitstellung hinzufügen oder entfernen.

Materialbeschreibung

Die Materialbeschreibung dient als Header für einen verschlüsselten Datensatz. Wenn Sie Felder mit der AWS Datenbankverschlüsselung verschlüsseln und signierenSDK, zeichnet der Verschlüsseler die Materialbeschreibung auf, während er die kryptografischen Materialien zusammenstellt, und speichert die Materialbeschreibung in einem neuen Feld (aws_dbe_head), das der Verschlüsseler Ihrem Datensatz hinzufügt.

Bei der Materialbeschreibung handelt es sich um eine übertragbare, formatierte Datenstruktur, die verschlüsselte Kopien der Datenschlüssel und andere Informationen wie Verschlüsselungsalgorithmen, Verschlüsselungskontext sowie Verschlüsselungs- und Signieranweisungen enthält. Der Verschlüsseler zeichnet die Materialbeschreibung auf, während er die kryptografischen Materialien für die Verschlüsselung und Signierung zusammenstellt. Wenn er später kryptografisches Material zusammenstellen muss, um ein Feld zu verifizieren und zu entschlüsseln, verwendet er die Materialbeschreibung als Leitfaden.

Wenn Sie die verschlüsselten Datenschlüssel neben dem verschlüsselten Feld speichern, wird der Entschlüsselungsvorgang optimiert und Sie müssen verschlüsselte Datenschlüssel nicht mehr unabhängig von den Daten, die sie verschlüsseln, speichern und verwalten.

Technische Informationen zur Materialbeschreibung finden Sie unter. Format der Materialbeschreibung

Verschlüsselungskontext

Um die Sicherheit Ihrer kryptografischen Operationen zu erhöhen, SDK beinhaltet die AWS Datenbankverschlüsselung in allen Anfragen zum Verschlüsseln und Signieren eines Datensatzes einen Verschlüsselungskontext.

Ein Verschlüsselungskontext ist eine Gruppe von Name-Wert-Paaren mit willkürlichen, nicht geheimen, zusätzlich authentifizierten Daten. Die AWS Datenbankverschlüsselung SDK umfasst den logischen Namen für Ihre Datenbank und Primärschlüsselwerte (z. B. einen Partitionsschlüssel und einen Sortierschlüssel in einer DynamoDB-Tabelle) im Verschlüsselungskontext. Wenn Sie ein Feld verschlüsseln und signieren, ist der Verschlüsselungskontext kryptografisch an den verschlüsselten Datensatz gebunden, sodass derselbe Verschlüsselungskontext erforderlich ist, um das Feld zu entschlüsseln.

Wenn Sie einen AWS KMS Schlüsselbund verwenden, verwendet die AWS Datenbankverschlüsselung SDK auch den Verschlüsselungskontext, um zusätzliche authentifizierte Daten (AAD) in den Aufrufen des Schlüsselbunds bereitzustellen. AWS KMS

Immer wenn Sie die Standard-Algorithmus-Suite verwenden, fügt der Cryptographic Materials Manager (CMM) dem Verschlüsselungskontext ein Name-Wert-Paar hinzu, das aus einem reservierten Namen und einem Wert bestehtaws-crypto-public-key, der den öffentlichen Bestätigungsschlüssel darstellt. Der öffentliche Bestätigungsschlüssel ist in der Materialbeschreibung gespeichert.

Manager von kryptographischen Materialien

Der Cryptographic Materials Manager (CMM) stellt die kryptografischen Materialien zusammen, die zum Verschlüsseln, Entschlüsseln und Signieren Ihrer Daten verwendet werden. Wann immer Sie die Standardalgorithmussuite verwenden, umfassen die kryptografischen Materialien Klartext- und verschlüsselte Datenschlüssel, symmetrische Signaturschlüssel und einen asymmetrischen Signaturschlüssel. Sie interagieren nie direkt mit dem. CMM Die Ver- und Entschlüsselungsmethoden übernehmen das für Sie.

Da die Datenbankverschlüsselung als Bindeglied zwischen der AWS Datenbankverschlüsselung SDK und einem Schlüsselbund CMM fungiert, eignet sie sich ideal für Anpassungen und Erweiterungen, z. B. zur Unterstützung bei der Durchsetzung von Richtlinien. Sie können eine explizit angebenCMM, dies ist jedoch nicht erforderlich. Wenn Sie einen Schlüsselbund angeben, SDK erstellt AWS Database Encryption einen Standard CMM für Sie. Die Standardeinstellung CMM ruft die Verschlüsselungs- oder Entschlüsselungsmaterialien aus dem von Ihnen angegebenen Schlüsselbund ab. Dabei könnte es sich um einen Aufruf eines kryptographischen Dienstes handeln, z. B. AWS Key Management Service (AWS KMS).

Symmetrische und asymmetrische Verschlüsselung

Bei der symmetrischen Verschlüsselung wird derselbe Schlüssel zum Verschlüsseln und Entschlüsseln von Daten verwendet.

Asymmetrische Verschlüsselung verwendet ein mathematisch verwandtes Datenschlüsselpaar. Ein Schlüssel des Paares verschlüsselt die Daten; nur der andere Schlüssel im Paar kann die Daten entschlüsseln.

Die AWS Datenbankverschlüsselung SDK verwendet eine Umschlagverschlüsselung. Sie verschlüsselt Ihre Daten mit einem symmetrischen Datenschlüssel. Es verschlüsselt den symmetrischen Datenschlüssel mit einem oder mehreren symmetrischen oder asymmetrischen Wrapping-Schlüsseln. Es fügt dem Datensatz eine Materialbeschreibung hinzu, die mindestens eine verschlüsselte Kopie des Datenschlüssels enthält.

Verschlüsselung Ihrer Daten (symmetrische Verschlüsselung)

Um Ihre Daten zu verschlüsseln, SDK verwendet die AWS Datenbankverschlüsselung einen symmetrischen Datenschlüssel und eine Algorithmussuite, die einen symmetrischen Verschlüsselungsalgorithmus enthält. Um die Daten zu entschlüsseln, SDK verwendet die AWS Datenbankverschlüsselung denselben Datenschlüssel und dieselbe Algorithmus-Suite.

Verschlüsselung Ihres Datenschlüssels (symmetrische oder asymmetrische Verschlüsselung)

Der Schlüsselbund, den Sie für einen Verschlüsselungs- und Entschlüsselungsvorgang angeben, bestimmt, wie der symmetrische Datenschlüssel ver- und entschlüsselt wird. Sie können einen Schlüsselbund wählen, der symmetrische Verschlüsselung verwendet, z. B. einen AWS KMS Schlüsselbund mit einem symmetrischen Verschlüsselungsschlüssel, oder einen Schlüsselbund mit asymmetrischer Verschlüsselung, z. B. einen KMS Schlüsselbund mit einem asymmetrischen Schlüssel. AWS KMS RSA KMS

Wichtiges Engagement

Die AWS Datenbankverschlüsselung SDK unterstützt Key Commitment (manchmal auch als Robustheit bezeichnet), eine Sicherheitseigenschaft, die sicherstellt, dass jeder Chiffretext nur in einen einzigen Klartext entschlüsselt werden kann. Zu diesem Zweck stellt Key Commitment sicher, dass nur der Datenschlüssel, mit dem Ihr Datensatz verschlüsselt wurde, zum Entschlüsseln verwendet wird. Die AWS Datenbankverschlüsselung SDK beinhaltet die Schlüsselverpflichtung für alle Verschlüsselungs- und Entschlüsselungsvorgänge.

Die meisten modernen symmetrischen Chiffren (einschließlichAES) verschlüsseln Klartext unter einem einzigen geheimen Schlüssel, wie dem eindeutigen Datenschlüssel, den die AWS Datenbankverschlüsselung SDK verwendet, um jedes in einem Datensatz markierte Klartextfeld zu verschlüsseln. ENCRYPT_AND_SIGN Beim Entschlüsseln dieses Datensatzes mit demselben Datenschlüssel wird ein Klartext zurückgegeben, der mit dem Original identisch ist. Die Entschlüsselung mit einem anderen Schlüssel schlägt normalerweise fehl. Obwohl schwierig, ist es technisch möglich, einen Chiffretext unter zwei verschiedenen Schlüsseln zu entschlüsseln. In seltenen Fällen ist es möglich, einen Schlüssel zu finden, der Chiffretext teilweise in einen anderen, aber dennoch verständlichen Klartext entschlüsseln kann.

Die AWS Datenbankverschlüsselung verschlüsselt jedes SDK Attribut immer unter einem eindeutigen Datenschlüssel. Es kann sein, dass dieser Datenschlüssel unter mehreren Umschließungsschlüsseln verschlüsselt wird, aber die Umschließungsschlüssel verschlüsseln immer denselben Datenschlüssel. Dennoch kann ein ausgeklügelter, manuell erstellter verschlüsselter Datensatz tatsächlich unterschiedliche Datenschlüssel enthalten, von denen jeder mit einem anderen Umschließungsschlüssel verschlüsselt ist. Wenn beispielsweise ein Benutzer den verschlüsselten Datensatz entschlüsselt, gibt er 0x0 (falsch) zurück, während ein anderer Benutzer, der denselben verschlüsselten Datensatz entschlüsselt, 0x1 (wahr) erhält.

Um dieses Szenario zu verhindern, SDK beinhaltet die AWS Datenbankverschlüsselung beim Verschlüsseln und Entschlüsseln eine Schlüsselzusage. Bei der Verschlüsselungsmethode wird der eindeutige Datenschlüssel, der den Chiffretext erzeugt hat, kryptografisch mit der Schlüsselzusage verknüpft. Dabei handelt es sich um einen Hash-Based Message Authentication Code (HMAC), der anhand der Materialbeschreibung anhand einer Ableitung des Datenschlüssels berechnet wird. Anschließend wird die Schlüsselzusage in der Materialbeschreibung gespeichert. Wenn ein Datensatz mit Schlüsselzusage entschlüsselt wird, SDK überprüft die AWS Datenbankverschlüsselung, ob der Datenschlüssel der einzige Schlüssel für diesen verschlüsselten Datensatz ist. Wenn die Überprüfung des Datenschlüssels fehlschlägt, schlägt der Entschlüsselungsvorgang fehl.

Digitale Signaturen

Die AWS Datenbankverschlüsselung SDK verschlüsselt Ihre Daten mit einem authentifizierten Verschlüsselungsalgorithmus, AES -GCM, und der Entschlüsselungsprozess überprüft die Integrität und Authentizität einer verschlüsselten Nachricht ohne Verwendung einer digitalen Signatur. Da AES - jedoch symmetrische Schlüssel GCM verwendet, könnte jeder, der den zur Entschlüsselung des Chiffretextes verwendeten Datenschlüssel entschlüsseln kann, auch manuell einen neuen verschlüsselten Chiffretext erstellen, was zu potenziellen Sicherheitsbedenken führen könnte. Wenn Sie beispielsweise einen AWS KMS key als Umschließungsschlüssel verwenden, könnte ein Benutzer mit kms:Decrypt entsprechenden Berechtigungen verschlüsselte Chiffretexte erstellen, ohne ihn anzurufen. kms:Encrypt

Um dieses Problem zu vermeiden, fügt die Standard-Algorithmus-Suite verschlüsselten Datensätzen eine Signatur mit dem Elliptic Curve Digital Signature Algorithm (ECDSA) hinzu. Die Standard-Algorithmus-Suite verschlüsselt die Felder in Ihrem Datensatz, die mit einem authentifizierten Verschlüsselungsalgorithmus (-) markiert ENCRYPT_AND_SIGN sind. AES GCM Anschließend berechnet sie sowohl Hash-basierte Nachrichtenauthentifizierungscodes (HMACs) als auch asymmetrische ECDSA Signaturen für die mit, und markierten Felder in Ihrem Datensatz. ENCRYPT_AND_SIGN SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Bei der Entschlüsselung wird anhand der Signaturen überprüft, ob ein autorisierter Benutzer den Datensatz verschlüsselt hat.

Wenn die Standard-Algorithmus-Suite verwendet wird, SDK generiert die AWS Datenbankverschlüsselung für jeden verschlüsselten Datensatz ein temporäres Paar aus privatem Schlüssel und öffentlichem Schlüssel. Die AWS Datenbankverschlüsselung SDK speichert den öffentlichen Schlüssel in der Materialbeschreibung und verwirft den privaten Schlüssel. Dadurch wird sichergestellt, dass niemand eine weitere Signatur erstellen kann, die mit dem öffentlichen Schlüssel verifiziert wird. Der Algorithmus bindet den öffentlichen Schlüssel als zusätzliche authentifizierte Daten in der Materialbeschreibung an den verschlüsselten Datenschlüssel und verhindert so, dass Benutzer, die nur Felder entschlüsseln können, den öffentlichen Schlüssel ändern oder die Signaturüberprüfung beeinträchtigen.

Die AWS Datenbankverschlüsselung beinhaltet immer eine ÜberprüfungSDK. HMAC ECDSADigitale Signaturen sind standardmäßig aktiviert, aber nicht erforderlich. Wenn die Benutzer, die Daten verschlüsseln, und die Benutzer, die Daten entschlüsseln, gleichermaßen vertrauenswürdig sind, sollten Sie die Verwendung einer Algorithmussuite in Betracht ziehen, die keine digitalen Signaturen enthält, um Ihre Leistung zu verbessern. Weitere Informationen zur Auswahl alternativer Algorithmus-Suiten finden Sie unter Auswahl einer Algorithmus-Suite.

Anmerkung

Wenn ein Schlüsselbund nicht zwischen Verschlüsselern und Entschlüsselern unterscheidet, bieten digitale Signaturen keinen kryptografischen Wert.

AWS KMS Schlüsselbunde, einschließlich des asymmetrischen RSA AWS KMS Schlüsselbunds, können auf der Grundlage wichtiger Richtlinien und Richtlinien zwischen Verschlüsselern und Entschlüsselern unterscheiden. AWS KMS IAM

Aufgrund ihres kryptografischen Charakters können die folgenden Schlüsselbunde nicht zwischen Verschlüsselern und Entschlüsselern unterscheiden:

  • AWS KMS Hierarchischer Schlüsselbund

  • AWS KMS ECDHSchlüsselbund

  • Roher Schlüsselbund AES

  • RSARoher Schlüsselring

  • ECDHRoher Schlüsselring