> Tech > Contextes d’algorithmes et de clés

Contextes d’algorithmes et de clés

Tech - Par iTPro - Publié le 24 juin 2010
email

Les contextes d’algorithmes et de clés sont des référentiels temporaires qui reçoivent des informations d’algorithmes et de clés. On les crée avec les API Create Algorithm Context et Create Key Context. Chacune de ces API renvoie un jeton de huit octets, que vous pourrez ensuite spécifier sur d’autres API cryptographiques.

On utilise les API Destroy Algorithm Context et Destroy Key Context pour détruire les contextes d’algorithmes et de clés. Sinon, ils seront détruits à la fin du job.

Contextes d’algorithmes. Les contextes d’algorithmes stockent le type d’algorithme (TDES, AES, par exemple) et les arguments associés (taille des blocs, caractère de remplissage, par exemple). Ils stockent aussi l’état d’une opération cryptographique. Un contexte d’algorithme permet d’étendre une opération cryptographique sur des appels multiples. Par exemple, vous voulez créer un HMAC pour tout un fichier, mais sans vouloir lire la totalité du fichier avant d’appeler l’API Calculate HMAC. Vous devez commencer par créer un contexte d’algorithme. La figure 5 montre le prototype de fonction C de l’API Create Algorithm Context.

L’API accepte quatre paramètres (figure 6). Comme dans le cas de l’API Encrypt Data, vous spécifiez une structure contenant les arguments d’algorithme dans le paramètre algorithm description. Pour une opération HMAC, la structure devrait contenir les arguments ALGD0500 pour un algorithme hash. En réalité, il n’y a qu’un argument – le type d’algorithme hash (SHA-1, par exemple).

Les paramètres de l’API Calculate HMAC ressemblent à ceux de l’API Encrypt Data. La figure 7 montre le prototype de fonction C. Dans notre exemple, le paramètre algorithm description format name devrait spécifier ALGD0100, signifiant que le paramètre algorithm description est une structure qui fait référence à un contexte d’algorithme. La figure 8 montre à quoi ressemble la structure ALGD0100. Il faut donner à l’algorithme context token la valeur renvoyée sur l’API Create Algorithm Context. A chaque invocation de l’API Calculate HMAC avant la dernière invocation, mettez le final operation flag à 0 pour garder l’opération dans un état continu. Le contexte d’algorithme gardera un HMAC actif et mettra en mémoire-tampon toute donnée ne correspondant pas à une taille de bloc complète. Sur le dernier Calculate HMAC, mettre le final operation flag à 1 ; cette valeur ordonne à l’API de terminer l’opération et de renvoyer la valeur HMAC.
Vous pouvez utiliser un contexte d’algorithme sur différentes opérations mais seulement après avoir terminé chaque opération. Dans notre exemple, une fois que le flag final a été activé (on) et que la valeur HMAC a été renvoyée, vous pouvez réutiliser le contexte d’algorithme sur une nouvelle opération, comme l’API Calculate Hash ou un autre Calculate HMAC.

Contextes de clés. Un contexte de clés contient les informations sur les clés, comme le type de clé (MD5-HMAC, AES, RSA, par exemple), le format de clé (binaire ou codé BER) et la longueur de clé. Les contextes de clés servent à plusieurs choses :

• Ils améliorent la performance de certains algorithmes tels que AES (Advanced Encryption Algorithm) et RC2. Certains algorithmes nécessitent un traitement de clé initial avant d’effectuer l’opération cryptographique. Quand on utilise un contexte de clés, le traitement de clés initial ne doit être effectué qu’une fois.
• Ils permettent à l’application d’effacer la valeur clear key du stockage de programmes pour aider à protéger la clé.
• Ils permettent à l’application d’utiliser une valeur de clé cryptée avec les API. Vous devriez réduire l’exposition des valeurs clear key dans le programme applicatif, autant qu’il est possible. Les valeurs de clés cryptées peuvent être utilisées sur une API si un contexte de clés est créé. Quand vous créez un contexte de clés pour une valeur de clé cryptée, vous devez fournir les contextes de clés et d’algorithmes pour la KEK (key-encrypting key).

Désormais, la préoccupation est la protection de la KEK. (Pour une explication plus approfondie de la gestion des clés, voir l’article « Scenario: Key Management and File Encryption Using the Cryptographic Services APIs » figurant dans l’encadré Pour en savoir plus.)

Téléchargez gratuitement cette ressource

Cybersécurité sous contrôle à 360°

Cybersécurité sous contrôle à 360°

Avec Cloud in One, les entreprises ne gagnent pas uniquement en agilité, en modernisation et en flexibilité. Elles gagnent également en sécurité et en résilience pour lutter efficacement contre l’accroissement en nombre et en intensité des cyberattaques. Découvrez l'axe Cybersécurité de la solution Cloud In One.

Tech - Par iTPro - Publié le 24 juin 2010