Afin de prévenir un déni de service causé par un programme défectueux ou
malicieux consommant une quantité trop importante de mémoire du noyau, le
logiciel limite la quantité de mémoire du noyau qu'un utilisateur Solaris peut
consommer à 16 Mo maximum. Il n'est pas possible de configurer cette limite.
Il est possible d'éviter les problèmes d'insuffisance de mémoire du noyau en suivant
les recommandations suivantes :
N'abandonnez pas les opérations à plusieurs étapes. Appelez la fonction de
finalisation appropriée (par exemple, C_EncryptFinal) ou fermez la session
lorsque vous avez terminé ;
N'abandonnez pas les objets inutiles. Fermez la session de création (efficace pour
les objets volatiles uniquement) ou appelez la fonction C_DestroyObject
lorsque vous avez terminé ;
Ne soumettez pas de très gros blocs de données (de plusieurs mégaoctets) en une
seule fois. (Cela ne s'applique pas aux opérations de traitement car les opérations
de traitement importantes sont toujours exécutées sur le logiciel.)
Les fonctions d'administration du PKCS#11 C_InitToken et C_InitPin ne sont
pas implémentées. La fonction C_Login avec l'attribut CKU_SO (responsable de la
sécurité) est rejetée.
Dans PKCS#11, les objets jetons publics sont des objets persistants visibles et
effaçables sans authentification. Les utilisateurs reconnus par le logiciel Crypto
Accelerator 4000 de Sun n'étant pas les mêmes que les utilisateurs Solaris et le
logiciel ne certifiant pas l'identité des utilisateurs avant l'exécution de C_Login, ces
objets doivent être globalement visibles et effaçables par tous les utilisateurs. Ce
comportement n'étant pas acceptable, les objets jetons publiques ne sont pas permis.
Toute tentative de création d'un objet jeton public échoue.
Le nombre d'objets volatiles (de session) n'est limité que par la mémoire virtuelle.
Les objets persistants doivent tous pouvoir être inclus dans la mémoire RAM de
la carte, mais cela ne représente aucune limite pour un usage pratique. Ainsi,
les champs de la structure CK_TOKEN_INFO (renvoyés par la fonction
C_GetTokenInfo) indiquant la taille maximum de la mémoire sont tous définis
sur CK_EFFECTIVELY_INFINITE. La fonction C_GetObjectSize n'est pas
implémentée.
Les fonctions optionnelles d'opération duale (C_DigestEncryptUpdate,
C_DecryptDigestUpdate, C_SignEncryptUpdate et
C_DecryptVerifyUpdate) ne sont pas implémentées et l'attribut
CKF_DUAL_OPERATIONS_FLAG du champ attribut renvoyé par C_GetTokenInfo
est false.
Seule une implémentation limitée de C_GetOperationState et de sa fonction
associée C_SetOperationState est fournie. C_GetOperationState ne peut être
exécutée que lorsque l'opération est C_Digest et que la taille totale des données
entrantes ne dépasse pas 65 532 octets.
228
Guide de l'utilisateur et d'installation de la carte Crypto Accelerator 4000 de Sun Version 1.1 • Janvier 2004