Glasnost

PKCS #11 - Interface de jeton cryptographique

Ce standard définie une interface applicative de programmation (API) nommée Cryptoki pour des périphériques contenant des informations de cryptographies et pouvant effectuer des opérations cryptographiques.

Cryptoki se prononce "crypto-key" et est un acronyme de "cryptographic token interface". Son schéma suit une approche objet, en essayant d'être le plus possible indépendant de la technologie utilisée et d'autoriser le partage des ressources (permettant à plusieurs applications d'accéder à plusieurs périphériques). Cette API permet de proposer aux applications une logique commune d'utilisation des périphériques appelé "jetons cryptographiques".

Sont listés les types de données et les fonctions disponibles pour une application nécessitant des services de cryptographie en utilisant le language de programmation ANSI C. Ces types de données et ces fonctions sont typiquement déclarés dans les fichiers d'entêtes C fournis par le fournisseur de la bibliothèque Cryptoki. Les fichiers d'entêtes ANSI C génériques pour la Cryptoki sont disponible sur la page web des PKCS.

La Cryptoki isole l'application des détails liés au périphérique. L'application n'a pas à changer son interface lorsque le périphérique utilisé n'est plus le même, ainsi l'application est portable.

Un certain nombre de méchanismes de cryptographie (algorithme) sont supportés dans cette version, mais de nouveaux mécanismes peuvent être ajoutés sans pour autant changer l'interface générale. Il est possible que les nouveaux méchanismes soient publiés dans des documents additionel des laboratoires RSA ou tout simplement de définir ses propres méchanismes.

La Cryptoki a été pensée pour être utilisée par un seul utilisateur, elle ne dispose donc pas de méchanisme de distinction entre plusieurs utilisateurs possibles. Elle se concentre sur la gestion d'une clé privée et d'un petit nombre de certificats qui lui sont liés.

Enfin, le but étant de définir une API pour la cryptographie, toute commande n'effectuant pas d'opération cryptographique n'est prise en compte dans cette API.