AWS KMS Grundlagen der Kryptografie - AWS Key Management Service

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 KMS Grundlagen der Kryptografie

AWS KMS verwendet konfigurierbare kryptografische Algorithmen, sodass das System schnell von einem zugelassenen Algorithmus oder Modus zu einem anderen migrieren kann. Der anfängliche Standardsatz kryptografischer Algorithmen wurde aufgrund seiner Sicherheitseigenschaften und Leistung aus den (vom Federal Information Processing Standard) FIPS zugelassenen Algorithmen ausgewählt.

Entropie und Zufallszahlengenerierung

AWS KMS Die Schlüsselgenerierung erfolgt in der. AWS KMS HSMs Sie HSMs implementieren einen hybriden Zufallszahlengenerator, der NIST SP800-90A Deterministic Random Bit Generator (DRBG) CTR_DRBG using AES-256 verwendet. Es wird mit einem nicht-deterministischen Zufallsbitgenerator mit 384 Bit Entropie gesät und mit zusätzlicher Entropie aktualisiert, um Prognosewiderstand bei jedem Aufruf von kryptografischem Material zu bieten.

Symmetrische Schlüsseloperationen (nur Verschlüsselung)

Alle darin verwendeten Befehle zur Verschlüsselung mit symmetrischen Schlüsseln HSMs verwenden die Advanced Encryption Standards (AES), im Galois Counter Mode (GCM) werden 256-Bit-Schlüssel verwendet. Die analogen Aufrufe zum Entschlüsseln verwenden die umgekehrte Funktion.

AES- GCM ist ein authentifiziertes Verschlüsselungsschema. Es verschlüsselt nicht nur Klartext zur Erzeugung von Chiffretext, sondern berechnet auch ein Authentifizierungs-Tag aus dem Chiffretext und allen zusätzlichen Daten, für die eine Authentifizierung erforderlich ist (zusätzlich authentifizierte Daten, oder). AAD Mithilfe des Authentifizierungs-Tags kann sichergestellt werden, dass die Daten aus der angeblichen Quelle stammen und dass der Chiffretext nicht verändert wurde. AAD

Oft wird AWS die Aufnahme von AAD in unseren Beschreibungen weggelassen, insbesondere wenn es um die Verschlüsselung von Datenschlüsseln geht. In diesen Fällen impliziert der umgebende Text, dass die zu verschlüsselnde Struktur zwischen dem zu verschlüsselnden Klartext und dem zu schützenden AAD Klartext aufgeteilt ist.

AWS KMS bietet Ihnen die Möglichkeit, Schlüsselmaterial in eine zu importieren, AWS KMS key anstatt sich auf die Generierung des Schlüsselmaterials AWS KMS zu verlassen. Dieses importierte Schlüsselmaterial kann mit RSAES- verschlüsselt werdenOAEP, um den Schlüssel während des Transports zum zu schützen AWS KMS HSM. Die RSA Schlüsselpaare werden am generiert AWS KMS HSMs. Das importierte Schlüsselmaterial wird auf einem entschlüsselt AWS KMS HSM und unter AES - erneut verschlüsselt, GCM bevor es vom Dienst gespeichert wird.

Asymmetrische Schlüsseloperationen (Verschlüsselung, digitale Signatur und Signaturüberprüfung)

AWS KMS unterstützt die Verwendung asymmetrischer Schlüsseloperationen sowohl für die Verschlüsselung als auch für die digitale Signatur und für Schlüsselvereinbarungen. Asymmetrische Schlüsseloperationen basieren auf einem mathematisch verwandten Paar aus öffentlichem und privatem Schlüssel, das Sie zur Verschlüsselung und Entschlüsselung, Signierung und Signaturüberprüfung oder zum Ableiten gemeinsamer Geheimnisse verwenden können. Der private Schlüssel wird niemals unverschlüsselt verlassen. AWS KMS Sie können den öffentlichen Schlüssel intern verwenden, AWS KMS indem Sie die AWS KMS API Operationen aufrufen, oder Sie können den öffentlichen Schlüssel herunterladen und ihn außerhalb von AWS KMS verwenden.

AWS KMS unterstützt die folgenden asymmetrischen Chiffren.

  • RSA- OAEP (zur Verschlüsselung) & RSA - PSS und - RSA PKCS - #1 -v1_5 (zum Signieren und Überprüfen) — Unterstützt RSA Schlüssellängen (in Bit): 2048, 3072 und 4096 für unterschiedliche Sicherheitsanforderungen.

  • Elliptische Kurve (ECC) — Wird zum Signieren und Verifizieren oder zum Ableiten gemeinsamer geheimer Daten verwendet, aber nicht für beides. Unterstützt ECC Kurven: NIST P256, P384, P521, 256k1. SECP

  • SM2(Nur Regionen in China) — Wird zum Verschlüsseln und Entschlüsseln, Signieren und Verifizieren oder zum Ableiten von gemeinsamen Geheimnissen verwendet, aber Sie müssen eine Schlüsselverwendung wählen. Unterstützt SM2PKE Verschlüsselung und SM2DSA Signierung.

Schlüsselableitungsfunktionen

Eine Funktion zur Schlüsselableitung wird verwendet, um zusätzliche Schlüssel aus einem anfänglichen Geheimnis oder Schlüssel abzuleiten. AWS KMS verwendet eine Schlüsselableitungsfunktion (KDF), um Schlüssel pro Anruf für jede Verschlüsselung unter einem abzuleiten. AWS KMS keyAlle KDF Operationen verwenden den KDFIn-Counter-Modus, indem [] mit HMAC [0FIPS197] verwendet wird. SHA256 FIPS18 Der abgeleitete 256-Bit-Schlüssel wird zusammen mit AES - verwendetGCM, um Kundendaten und Schlüssel zu verschlüsseln oder zu entschlüsseln.

AWS KMS interne Verwendung digitaler Signaturen

Digitale Signaturen werden auch verwendet, um Befehle und Kommunikationen zwischen AWS KMS Entitäten zu authentifizieren. Alle Dienstentitäten haben ein key pair für den Algorithmus für digitale Signaturen mit elliptischer Kurve (ECDSA). Sie funktionieren ECDSA wie in Verwendung von Algorithmen zur Verschlüsselung mit elliptischen Kurven () in der kryptografischen Nachrichtensyntax (ECCCMS) und X9.62-2005: Kryptografie mit öffentlichen Schlüsseln für die Finanzdienstleistungsbranche: Der Algorithmus für digitale Signaturen mit elliptischen Kurven () definiert. ECDSA Die Unternehmen verwenden den in Federal Information Processing Standards Publications, 180-4, definierten sicheren Hash-Algorithmus, bekannt als. FIPS PUB SHA384 Die Schlüssel werden auf der Kurve secp384r1 (-P384) generiert. NIST

Umschlagverschlüsselung

Wenn Sie Daten verschlüsseln, sind die Daten geschützt. Sie müssen aber jetzt den Verschlüsselungsschlüssel schützen. Eine Strategie besteht darin, ihn zu verschlüsseln. Envelope-Verschlüsselung bezeichnet das Verschlüsseln von Klartextdaten mit einem Datenschlüssel und die anschließende Verschlüsselung des Datenschlüssels mit einem anderen Schlüssel.

Sie können auch den Datenverschlüsselungsschlüssel mit einem anderen Verschlüsselungsschlüssel verschlüsseln und diesen Verschlüsselungsschlüssel mit einem weiteren Verschlüsselungsschlüssel verschlüsseln. Doch schließlich muss ein Schlüssel als Klartext verbleiben, damit Sie die Schlüssel und die Daten entschlüsseln können. Dieser Top-Level-Klartext-Verschlüsselungsschlüssel zum Verschlüsseln von Schlüsseln wird als Stammschlüssel bezeichnet.

Umschlagverschlüsselung

AWS KMS hilft Ihnen dabei, Ihre Verschlüsselungsschlüssel zu schützen, indem sie sicher gespeichert und verwaltet werden. Der in AWS KMS den AWS KMS FIPSvalidierten Hardware-Sicherheitsmodulen gespeicherte Root-Schlüssel AWS KMS keys, auch bekannt als, wird niemals unverschlüsselt verlassen. Um einen KMS Schlüssel zu verwenden, müssen Sie anrufen. AWS KMS

Eine grundlegende Konstruktion, die in vielen kryptographischen Systemen verwendet wird, ist die Envelope-Verschlüsselung. Bei der Envelope-Verschlüsselung werden zwei oder mehr kryptografische Schlüssel verwendet, um eine Nachricht zu sichern. In der Regel wird ein Schlüssel von einem längerfristigen statischen Schlüssel k abgeleitet, und ein anderer Schlüssel ist ein nachrichtenspezifischer Schlüssel msgKey, der zur Verschlüsselung der Nachricht generiert wird. Der Umschlag wird durch Verschlüsseln der Nachricht gebildet: ciphertext = Encrypt (, message). msgKey Dann wird der Nachrichtenschlüssel mit dem langfristigen statischen Schlüssel verschlüsselt: encKey = Encrypt (k,). msgKey Schließlich werden die beiden Werte (encKeyChiffretext) in einer einzigen Struktur oder einer umschlagverschlüsselten Nachricht zusammengefasst.

Der Empfänger mit Zugriff auf k kann die Envelope-Nachricht öffnen, indem er zuerst den verschlüsselten Schlüssel entschlüsselt und dann die Nachricht entschlüsselt.

AWS KMS bietet die Möglichkeit, diese längerfristigen statischen Schlüssel zu verwalten und den Prozess der Umschlagverschlüsselung Ihrer Daten zu automatisieren.

Zusätzlich zu den im AWS KMS Service bereitgestellten Verschlüsselungsfunktionen SDK bietet Encryption Bibliotheken für die clientseitige AWS Verschlüsselung von Umschlägen. Sie können diese Bibliotheken verwenden, um Ihre Daten und die Verschlüsselungsschlüssel zu schützen, die zum Verschlüsseln dieser Daten verwendet werden.

Envelope-Verschlüsselung mit mehreren Verschlüsselungsschlüsseln

Envelope-Verschlüsselung bietet mehrere Vorteile:

  • Schutz von Datenschlüsseln

    Wenn Sie einen Datenschlüssel verschlüsseln, müssen Sie sich nicht darum sorgen, wo Sie den verschlüsselten Schlüssel speichern, da die Sicherheit dieses Datenschlüssels inhärent durch Verschlüsselung geschützt ist. Sie können den verschlüsselten Datenschlüssel sicher neben den verschlüsselten Daten speichern.

  • Verschlüsselung der gleichen Daten unter mehreren Schlüsseln

    Verschlüsselungsoperationen können zeitaufwendig sein, insbesondere wenn die zu verschlüsselnden Daten große Objekte sind. Statt Rohdaten mit verschiedenen Schlüsseln mehrmals neu zu verschlüsseln, können Sie einfach die Datenschlüssel, die die Rohdaten schützen, neu verschlüsseln.

  • Kombination der Stärken mehrerer Algorithmen

    Im Allgemeinen sind symmetrische Schlüsselalgorithmen schneller und erzeugen kleinere Verschlüsselungstexte als öffentliche Schlüsselalgorithmen. Algorithmen mit öffentlichem Schlüssel unterstützen jedoch eine inhärente Rollentrennung und eine einfachere Schlüsselverwaltung. Die Envelope-Verschlüsselung vereint die Stärken aller Strategien.

Kryptografische Operationen

Bei AWS KMSkryptografischen Vorgängen handelt es sich um Operationen, API bei denen KMS Schlüssel zum Schutz von Daten verwendet werden. Da KMS Schlüssel im System verbleiben AWS KMS, müssen Sie bei einem kryptografischen Vorgang aufrufen, AWS KMS um einen KMS Schlüssel zu verwenden.

Um kryptografische Operationen mit KMS Schlüsseln auszuführen, verwenden Sie den AWS SDKs, AWS Command Line Interface (AWS CLI) oder den. AWS Tools for PowerShell Sie können keine kryptografischen Operationen in der AWS KMS -Konsole ausführen. Beispiele für das Aufrufen der kryptografischen Operationen in mehreren Programmiersprachen finden Sie unter Codebeispiele für die AWS KMS Verwendung AWS SDKs.

In der folgenden Tabelle sind die AWS KMS kryptografischen Operationen aufgeführt. Außerdem werden der Schlüsseltyp und die Anforderungen an die Schlüsselverwendung für die bei dem Vorgang verwendeten KMS Schlüssel aufgeführt.

Operation Schlüsseltyp Schlüsselnutzung
Decrypt Symmetrisch oder asymmetrisch ENCRYPT_DECRYPT
DeriveSharedSecret Asymmetrisch KEY_AGREEMENT
Encrypt Symmetrisch oder asymmetrisch ENCRYPT_DECRYPT
GenerateDataKey Symmetrisch ENCRYPT_DECRYPT
GenerateDataKeyPair Symmetrisch [1]

Wird für KMS Schlüssel in benutzerdefinierten Schlüsselspeichern nicht unterstützt.

ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext Symmetrisch [1]

Wird für KMS Schlüssel in benutzerdefinierten Schlüsselspeichern nicht unterstützt.

ENCRYPT_DECRYPT
GenerateDataKeyWithoutPlaintext Symmetrisch ENCRYPT_DECRYPT
GenerateMac HMAC GENERATE_VERIFY_MAC
GenerateRandom N/A. Dieser Vorgang verwendet keinen KMS Schlüssel. N/A
ReEncrypt Symmetrisch oder asymmetrisch ENCRYPT_DECRYPT
Sign Asymmetrisch SIGN_VERIFY
Verify Asymmetrisch SIGN_VERIFY
VerifyMac HMAC GENERATE_VERIFY_MAC

[1] Generiert ein asymmetrisches Datenschlüsselpaar, das durch einen symmetrischen KMS Verschlüsselungsschlüssel geschützt ist.

Informationen zu den Berechtigungen für kryptografische Operationen finden Sie unter AWS KMS Berechtigungen.

Damit alle Benutzer AWS KMS schnell reagieren und einen hohen Funktionsumfang haben, werden Kontingente AWS KMS für die Anzahl der pro Sekunde aufgerufenen kryptografischen Operationen eingerichtet. Details hierzu finden Sie unter Gemeinsame Kontingente für kryptografische Operationen.