PKCS15: surcouche spécifique pour les cartes à puce.
d’autres ensembles d’algorithmes et de spécifications existent: citons par exemple PGP (Pretty Good Privacy), dont certains offrent des performances ou des niveaux de sécurité équivalents sinon meilleurs que ceux de PKCS.
La norme technique PKCS#11 décrit une interface d'accès à des fonctions cryptographiques (signer avec clé privée, décrypter message encodé avec clé publique)
il existe un plan d'URI standard pour accéder aux objets, spécifié dans la RFC 7512.
decrypte(crypté,certif) signe_moi(hash,certif)
Il faut indiquer quel certificat on utilise: il y a parfois plusieurs certificats dans une puce (TOKEN)
pkcs11:object=my-pubkey;type=public
.token
) utilisé, et l'id
du certificat :
pkcs11:token=The%20Software%20PKCS%2311%20Softtoken;manufacturer=Snake%20Oil,%20Inc.;model=1.0;object=my-certificate;type=cert;id=%69%95%3E%5C%F4%BD%EC%91
.Notez
module-name
, qui permet d'indiquer la
bibliothèque dynamique à charger pour parler au dépôt des clés (PKCS#11 est une API, pas un protocole, et il faut donc une bibliothèque différente par type de HSM ou smart card) :
pkcs11:object=my-sign-key;type=private?module-name=snakeoil-pkcs11
.
snakeoil-pkcs11.so
.
id
(CKA_ID
) est l'identificateur d'un objet. C'est une valeur binaire à URL encoder.
object
(CKA_LABEL
) est le nom d'un objet.serial
(serialNumber
dans CK_TOKEN_INFO
) est le numéro de série du token, le dispositif de stockage des objets (un HSM, par exemple).token
(label
dans le CK_TOKEN_INFO
), le nom du dispositif de stockage, avec attributs complémentaires manufacturer
et model
type
(CKA_CLASS
), désigne le type d'objet stocké qu'on veut récupérer. Cela peut être cert
(un certificat), public
(une clé publique), private
(une clé privée en cryptographie asymétrique), secret-key
(mot de passe). Ou data
pour des données.pkcs11:object=my-key;type=private?pin-source=file:/etc/dnssec/token_pin
dans l'URI (ici, cela dit que le PIN se trouve dans le fichier /etc/dnssec/token_pin).
Voir http://www.infradead.org/openconnect/pkcs11.html