Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Récupérez les attributs avec la bibliothèque PKCS #11 pour AWS CloudHSM SDK client 5
Lorsque votre application lit les attributs d'une clé ou d'un objet de certificat, la bibliothèque PKCS #11 envoie une demande à votre cluster pour chaque C_GetAttributeValue appel. Le nombre d'attributs du modèle ne modifie pas le nombre de demandes. Un appel qui demande dix attributs envoie une demande. Dix appels demandant chacun un attribut envoient dix demandes.
Chaque appel lit les attributs de l'objet de votre cluster en une seule demande, puis copie les valeurs demandées par votre modèle. La bibliothèque PKCS #11 ne met pas les valeurs en cache. Chaque appel envoie donc une nouvelle demande.
Pour réduire le nombre de demandes envoyées par votre application, suivez les recommandations suivantes :
-
Demandez tous les attributs dont vous avez besoin dans un seul modèle. Créez un modèle unique contenant tous les attributs que vous souhaitez et transmettez-le à un seul
C_GetAttributeValueappel. L'exemple suivant lit trois attributs d'une clé en un seul appel.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));Pour plus d'informations, voir Répertorier les principaux attributs
sur le GitHub site Web. -
Demandez uniquement les attributs que votre objet prend en charge et que vous pouvez lire. Lorsque votre modèle nomme un attribut que l'objet ne possède pas, le
C_GetAttributeValuedéfinitulValueLensurCK_UNAVAILABLE_INFORMATIONpour cet attribut et le renvoieCKR_ATTRIBUTE_TYPE_INVALID. Un attribut sensible se comporte de la même manière et renvoieCKR_ATTRIBUTE_SENSITIVE. Dans les deux cas, les autres attributs de votre modèle conservent leurs valeurs. VérifiezulValueLenchaque attribut au lieu de vous contenter de la valeur de retour de l'appel. Pour les attributs pris en charge par chaque type d'objet et pour les attributs sensibles, consulteztables d'attributs de bibliothèque PKCS #11 pour AWS CloudHSM SDK client 5. -
Vérifiez le nombre d'appels émis par votre liaison linguistique. Une liaison PKCS #11 pour un langage tel que Python ou Java détermine le nombre d'
C_GetAttributeValueappels qu'il envoie. Certaines liaisons envoient un appel pour chaque attribut, tandis que d'autres en envoient deux. Utilisez l'interface fournie par votre liaison pour lire plusieurs attributs à la fois et mesurez les appels envoyés par votre application. -
Valeurs des attributs de cache dans votre application. Lisez les attributs d'un objet une seule fois et stockez les valeurs dont votre application a besoin. Vous pouvez réutiliser une valeur mise en cache jusqu'à ce que quelque chose change l'objet. Lorsque d'autres applications ou utilisateurs peuvent modifier vos objets, actualisez ensuite votre cache.
-
Allouez vos buffers avant de lire un attribut. La norme PKCS #11 décrit un schéma en deux passes pour les valeurs de longueur variable. Votre application appelle
C_GetAttributeValueavecpValuesetNULL_PTRto pour connaître la longueur, puis l'appelle à nouveau pour lire la valeur. Les deux appels envoient une demande. Lorsque vous connaissez une taille de mémoire tampon contenant les valeurs que vous attendez, allouez d'abord les mémoires tampon et lisez les valeurs en un seul appel.Un tampon trop petit renvoie
CKR_BUFFER_TOO_SMALLcet attribut, et l'appel envoie toujours une demande. Choisissez des tailles de mémoire tampon suffisamment généreuses pour les valeurs que vous attendez. Les attributs contenant un modèle, telsCKA_WRAP_TEMPLATEque, ont toujours besoin du modèle en deux passes.
Note
Ces recommandations s'appliquent à la fois aux objets clés et aux objets de certificat, et des limites différentes s'appliquent à chacun d'eux. Le stockage des certificats a une limite de débit de lecture fixe, et chaque C_GetAttributeValue appel sur un objet de certificat utilise une opération de lecture à partir de celui-ci. Pour les objets clés, l'attribut d'accélération de votre HSM lit lorsqu'ils atteignent leur capacité maximale plutôt qu'à un taux fixe. La bibliothèque PKCS #11 réessaie automatiquement ces requêtes. Le fait d'envoyer moins de demandes permet à votre candidature de respecter ces deux limites. Pour plus d’informations, consultez Limites de stockage des certificats et Limitation du HSM.