View a markdown version of this page

Rufen Sie Attribute mit der PKCS #11 -Bibliothek ab für AWS CloudHSM Client-SDK 5 - 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.

Rufen Sie Attribute mit der PKCS #11 -Bibliothek ab für AWS CloudHSM Client-SDK 5

Wenn Ihre Anwendung Attribute aus einem Schlüssel- oder Zertifikatsobjekt liest, sendet die PKCS #11 -Bibliothek für jeden C_GetAttributeValue Aufruf eine Anfrage an Ihren Cluster. Die Anzahl der Attribute in der Vorlage ändert nichts an der Anzahl der Anfragen. Ein Aufruf, der zehn Attribute anfordert, sendet eine Anfrage. Zehn Aufrufe, bei denen jeweils ein Attribut angefordert wird, senden zehn Anfragen.

Jeder Aufruf liest die Attribute des Objekts in einer Anfrage aus Ihrem Cluster und kopiert dann die Werte, die Ihre Vorlage anfordert. Die PKCS #11 -Bibliothek speichert die Werte nicht im Cache, daher sendet jeder Aufruf eine neue Anfrage.

Um die Anzahl der Anfragen, die Ihre Anwendung sendet, zu reduzieren, folgen Sie diesen Empfehlungen:

  • Fordern Sie jedes Attribut, das Sie benötigen, in einer Vorlage an. Erstellen Sie eine einzelne Vorlage, die alle gewünschten Attribute enthält, und übergeben Sie sie an einen C_GetAttributeValue Aufruf. Das folgende Beispiel liest drei Attribute eines Schlüssels mit einem Aufruf.

    CK_OBJECT_CLASS obj_class; CK_BYTE label[128]; CK_BYTE id[128]; CK_ATTRIBUTE attrs[] = { {CKA_CLASS, &obj_class, sizeof(obj_class)}, {CKA_LABEL, label, sizeof(label)}, {CKA_ID, id, sizeof(id)}, }; rv = funcs->C_GetAttributeValue(session, object, attrs, sizeof(attrs) / sizeof(CK_ATTRIBUTE));

    Weitere Informationen finden Sie unter Auflisten von Schlüsselattributen auf der GitHub Website.

  • Fordern Sie nur die Attribute an, die Ihr Objekt unterstützt und die Sie lesen können. Wenn Ihre Vorlage ein Attribut benennt, das das Objekt nicht hat, wird es CK_UNAVAILABLE_INFORMATION für dieses Attribut ulValueLen auf C_GetAttributeValue gesetzt und zurückgegebenCKR_ATTRIBUTE_TYPE_INVALID. Ein sensibles Attribut verhält sich genauso und kehrt zurückCKR_ATTRIBUTE_SENSITIVE. In beiden Fällen erhalten die anderen Attribute in Ihrer Vorlage weiterhin ihre Werte. Prüfen Sie ulValueLen jedes Attribut und nicht nur den Rückgabewert des Aufrufs. Informationen zu den Attributen, die jeder Objekttyp unterstützt, und zu den sensiblen Attributen finden Sie unterTabellen mit PKCS #11 -Bibliotheksattributen für AWS CloudHSM Client-SDK 5.

  • Prüfen Sie, wie viele Aufrufe Ihre Sprachbindung tätigt. Eine PKCS #11 -Bindung für eine Sprache wie Python oder Java entscheidet, wie viele C_GetAttributeValue Aufrufe sie sendet. Einige Bindungen senden einen Aufruf für jedes Attribut, andere zwei. Verwenden Sie die Schnittstelle, die Ihre Bindung bereitstellt, um mehrere Attribute gleichzeitig zu lesen, und messen Sie die Aufrufe, die Ihre Anwendung sendet.

  • Zwischenspeichern Sie Attributwerte in Ihrer Anwendung. Lesen Sie die Attribute eines Objekts ein einziges Mal und speichern Sie die Werte, die Ihre Anwendung benötigt. Sie können einen zwischengespeicherten Wert wiederverwenden, bis etwas das Objekt ändert. Wenn andere Anwendungen oder Benutzer Ihre Objekte ändern können, aktualisieren Sie anschließend Ihren Cache.

  • Ordnen Sie Ihre Puffer zu, bevor Sie ein Attribut lesen. Der PKCS #11 -Standard beschreibt ein Muster mit zwei Durchläufen für Werte variabler Länge. Ihre Anwendung ruft C_GetAttributeValue pValue set to auf, NULL_PTR um die Länge zu ermitteln, und ruft sie dann erneut auf, um den Wert zu lesen. Bei beiden Aufrufen wird eine Anfrage gesendet. Wenn Sie eine Puffergröße kennen, die die erwarteten Werte enthält, weisen Sie zuerst die Puffer zu und lesen Sie die Werte mit einem Aufruf.

    Ein zu kleiner Puffer wird CKR_BUFFER_TOO_SMALL für dieses Attribut zurückgegeben, und der Aufruf sendet trotzdem eine Anfrage. Wählen Sie Puffergrößen, die großzügig genug für die erwarteten Werte sind. Attribute, die eine Vorlage enthalten, wie CKA_WRAP_TEMPLATE z. B., benötigen immer noch das Muster mit zwei Durchläufen.

Anmerkung

Diese Empfehlungen gelten sowohl für Schlüsselobjekte als auch für Zertifikatsobjekte, und für jedes gelten unterschiedliche Grenzwerte. Für den Zertifikatsspeicher gibt es ein festes Limit für die Leserate, und bei jedem C_GetAttributeValue Aufruf eines Zertifikatsobjekts wird ein Lesevorgang aus dem Zertifikatsobjekt ausgeführt. Bei Schlüsselobjekten wird das Drosselattribut Ihres HSM gelesen, wenn die Kapazität erreicht ist, und nicht mit einer festen Rate. Die PKCS #11 -Bibliothek wiederholt diese Anfragen automatisch. Wenn Sie weniger Anfragen senden, bleibt Ihre Anwendung innerhalb beider Grenzwerte. Weitere Informationen erhalten Sie unter Speicherbeschränkungen für Zertifikate und HSM-Drosselung.