Benutzerdefinierte IVs mit nicht kompatibler Länge für AES-Schlüsselumhüllung - AWS CloudHSM

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.

Benutzerdefinierte IVs mit nicht kompatibler Länge für AES-Schlüsselumhüllung

Mithilfe dieses Themas zur Problembehandlung können Sie feststellen, ob Ihre Anwendung unwiederbringliche verpackte Schlüssel generiert. Wenn Sie von diesem Problem betroffen sind, verwenden Sie dieses Thema, um das Problem zu lösen.

Stellen Sie fest, ob Ihr Code unwiederbringliche verpackte Schlüssel generiert

Sie sind nur betroffen, wenn Sie alle folgenden Bedingungen erfüllen:

Bedingung Woher soll ich das wissen?

Ihre Anwendung verwendet die PKCS #11-Bibliothek

Die PKCS #11-Bibliothek wird als libpkcs11.so-Datei in Ihrem /opt/cloudhsm/lib-Ordner installiert. In der Sprache C geschriebene Anwendungen verwenden im Allgemeinen direkt die PKCS #11-Bibliothek, während in Java geschriebene Anwendungen die Bibliothek möglicherweise indirekt über eine Java-Abstraktionsschicht verwenden. Wenn Sie Windows verwenden, sind Sie davon NICHT betroffen, da die PKCS #11-Bibliothek derzeit nicht für Windows verfügbar ist.

Ihre Anwendung verwendet speziell Version 3.0.0 der PKCS #11-Bibliothek

Wenn Sie eine E-Mail vom AWS CloudHSM Team erhalten haben, verwenden Sie wahrscheinlich Version 3.0.0 der PKCS #11 -Bibliothek.

Verwenden Sie diesen Befehl, um die Softwareversion auf Ihren Anwendungs-Instances zu überprüfen:

rpm -qa | grep ^cloudhsm

Schlüssel werden mithilfe von AES-Schlüsselumbruch umgebrochen

AES-Schlüsselumbruch bedeutet, dass Sie einen AES-Schlüssel verwenden, um einen anderen Schlüssel zu umschließen. Der Name des entsprechenden Mechanismus lautet CKM_AES_KEY_WRAP. Er wird zusammen mit der Funktion C_WrapKey verwendet. Andere AES-basierte Wrapping-Mechanismen, die Initialisierungsvektoren (IV) verwenden, wie z. B. CKM_AES_GCM und CKM_CLOUDHSM_AES_GCM, sind von diesem Problem nicht betroffen. Erfahren Sie mehr über Funktionen und Mechanismen.

Sie geben eine benutzerdefinierte IV an, wenn Sie AES Key Wrapping aufrufen, und die Länge dieser IV ist kürzer als 8

Der AES-Schlüsselumbruch wird im Allgemeinen mit einer CK_MECHANISM Struktur wie folgt initialisiert:

CK_MECHANISM mech = {CKM_AES_KEY_WRAP, IV_POINTER, IV_LENGTH};

Dieses Problem trifft auf Sie nur in folgenden Fällen zu:

  • IV_POINTER ist nicht NULL

  • IV_LENGTH ist weniger als 8 Byte

Wenn Sie nicht alle oben genannten Bedingungen erfüllen, können Sie jetzt mit dem Lesen aufhören. Ihre verpackten Schlüssel können ordnungsgemäß ausgepackt werden, und dieses Problem hat keine Auswirkungen auf Sie. Andernfalls lesen Sie unter Maßnahmen, die Sie ergreifen müssen, wenn Ihr Code unwiederbringliche verpackte Schlüssel generiert weiter.

Maßnahmen, die Sie ergreifen müssen, wenn Ihr Code unwiederbringliche verpackte Schlüssel generiert

Sie sollten die folgenden drei Schritte ausführen:

  1. Aktualisieren Sie Ihre PKCS #11-Bibliothek sofort auf eine neuere Version

  2. Aktualisieren Sie Ihre Software, um eine standardkonforme IV zu verwenden

    Wir empfehlen Ihnen dringend, unserem Beispielcode zu folgen und einfach eine NULL IV anzugeben, sodass das HSM die standardkonforme Standard-IV verwendet. Alternativ können Sie die IV explizit als 0xA6A6A6A6A6A6A6A6 mit einer entsprechenden IV-Länge von 8 angeben. Wir empfehlen, keine anderen IV für das Umschließen von AES-Schlüsseln zu verwenden, und werden benutzerdefinierte IVs für das Umschließen von AES-Schlüsseln in einer künftigen Version der PKCS #11-Bibliothek ausdrücklich deaktivieren.

    Der Beispielcode für die korrekte Angabe der IV erscheint in aes_wrapping.c am. GitHub

  3. Identifizieren Sie vorhandene verpackte Schlüssel und stellen Sie sie wieder her

    Sie sollten alle Schlüssel identifizieren, die Sie mit Version 3.0.0 der PKCS #11-Bibliothek verpackt haben, und sich dann an den Support (https://aws.amazon.com/support) wenden, um Unterstützung bei der Wiederherstellung dieser Schlüssel zu erhalten.

Wichtig

Dieses Problem betrifft nur Schlüssel, die mit Version 3.0.0 der PKCS #11-Bibliothek umschlossen wurden. Sie können Schlüssel mithilfe früherer Versionen (2.0.4 und Pakete mit niedrigeren Nummern) oder neueren Versionen (3.0.1 und Pakete mit höheren Nummern) der PKCS #11-Bibliothek umbrechen.