Certaines applications exigent une paire de clés publique/privée. Dans cette procédure, vous créez ces paires de clés et les stockez.
Choisissez l'une des méthodes suivantes.
Les clés basées sur des fichiers sont créées pour les applications qui lisent les clés directement à partir de fichiers sur le disque. En règle générale, les applications qui utilisent directement les bibliothèques de chiffrement OpenSSL requièrent le stockage des clés et des certificats pour l'application dans des fichiers.
% pktool genkeypair keystore=file outkey=key-filename \ [format=der|pem] [keytype=rsa|dsa] [keylen=key-size]
La valeur file spécifie le type de fichier dans l'emplacement de stockage de la clé.
Spécifie le nom du fichier de stockage de la paire de clés.
Spécifie le format de codage de la paire de clés. La sortie der est binaire et la sortie pem est ASCII.
Spécifie le type de paire de clés qui peut être stockée dans un keystore file. Pour obtenir des définitions, reportez-vous à DSA et RSA.
Spécifie la longueur de la clé en bits. Le nombre doit être divisible par 8. Pour déterminer les tailles de clés possibles, utilisez la commande cryptoadm list -vm.
Vous devez effectuer l'Step 1 avant d'utiliser cette méthode.
Le keystore PKCS #11 permet de stocker des objets sur un périphérique matériel. Le périphérique peut être une carte Sun Crypto Accelerator 6000, un périphérique TPM (Trusted Platform Module, module de plate-forme de confiance) ou une carte à puce branchée à la structure cryptographique. PKCS #11 peut également être utilisé pour stocker des objets dans le softtoken, ou jeton logiciel, qui stocke les objets dans un sous-répertoire privé sur le disque. Pour plus d'informations, reportez-vous à la page de manuel pkcs11_softtoken(5).
Vous pouvez récupérer la paire de clés dans le keystore par une étiquette que vous indiquez.
% pktool genkeypair label=key-label \ [token=token[:manuf[:serial]]] \ [keytype=rsa|dsa|ec] [curve=ECC-Curve-Name]]\ [keylen=key-size] [listcurves]
Spécifie une étiquette pour la paire de clés. La paire de clés peut être récupérée à partir du keystore par son étiquette.
Spécifie le nom du jeton. Par défaut, le nom du jeton est Sun Software PKCS#11 softtoken.
Spécifie le type de la paire de clés. Pour le type de courbe elliptique (ec), vous pouvez éventuellement spécifier le nom de la courbe. Les noms de courbes sont répertoriés en tant que sortie de l'option listcurves.
Spécifie la longueur de la clé en bits. Le nombre doit être divisible par 8.
Répertorie les noms de courbes elliptiques qui peuvent être utilisés comme valeurs de l'option curve= pour un type de clé ec.
Le keystore NSS est utilisé par les serveurs qui utilisent NSS comme interface de chiffrement principale.
Vous devez effectuer l'Step 1 avant d'utiliser cette méthode.
% pktool keystore=nss genkeypair label=key-nickname \ [token=token[:manuf[:serial]]] \ [dir=directory-path] [prefix=database-prefix] \ [keytype=rsa|dsa|ec] [curve=ECC-Curve-Name]] \ [keylen=key-size] [listcurves]
La valeur nss spécifie le type NSS de l'emplacement de stockage de la clé.
Spécifie une étiquette pour la paire de clés. La paire de clés peut être récupérée à partir du keystore par son étiquette.
Spécifie le nom du jeton. Par défaut, le jeton est Sun Software PKCS#11 softtoken.
Spécifie le chemin d'accès au répertoire de la base de données NSS. Par défaut, directory est le répertoire courant.
Spécifie le préfixe de la base de données NSS. Par défaut, le champ de préfixe est vide.
Spécifie le type de la paire de clés. Pour le type de courbe elliptique, vous pouvez éventuellement spécifier le nom de la courbe. Les noms de courbes sont répertoriés en tant que sortie de l'option listcurves.
Spécifie la longueur de la clé en bits. Le nombre doit être divisible par 8.
Répertorie les noms de courbes elliptiques qui peuvent être utilisés comme valeurs de l'option curve= pour un type de clé ec.
Utilisez l'une des commandes suivantes, en fonction de l'emplacement où vous avez stocké la clé :
% pktool list keystore=file objtype=key infile=key-filename Found n keys. Key #1 - keytype:location (keylen)
$ pktool list objtype=key Enter PIN for keystore: Found n keys. Key #1 - keytype:location (keylen)
% pktool list keystore=nss dir=directory objtype=key
Dans l'exemple ci-dessous, un utilisateur crée un keystore PKCS #11 pour la première fois. Après avoir déterminé les tailles de clé des paires de clés RSA, l'utilisateur génère une paire de clés pour une application. Enfin, l'utilisateur vérifie que la paire de clés figure dans le keystore. L'utilisateur constate que la seconde instance de la paire de clés RSA peut être stockée sur le matériel. Etant donné que l'utilisateur ne spécifie pas un argument token, la paire de clés est stockée sous forme d'un Sun Software PKCS#11 softtoken.
# pktool setpin Create new passphrase: Re-enter new passphrase:Retype password Passphrase changed. % cryptoadm list -vm | grep PAIR ... CKM_DSA_KEY_PAIR_GEN 512 3072 . . . . . . . . . X . . . . CKM_RSA_PKCS_KEY_PAIR_GEN 256 8192 . . . . . . . . . X . . . . ... CKM_RSA_PKCS_KEY_PAIR_GEN 256 2048 X . . . . . . . . X . . . . ecc: CKM_EC_KEY_PAIR_GEN,CKM_ECDH1_DERIVE,CKM_ECDSA,CKM_ECDSA_SHA1 % pktool genkeypair label=specialappkeypair keytype=rsa keylen=2048 Enter PIN for Sun Software PKCS#11 softtoken :Type password % pktool list Enter PIN for Sun Software PKCS#11 softtoken :Type password No. Key Type Key Len. Key Label ---------------------------------------------------- Asymmetric public keys: 1 RSA specialappkeypairExemple 4-7 Création d'une paire de clés qui utilise l'algorithme de courbe elliptique
Dans l'exemple suivant, un utilisateur ajoute une paire de clés de courbe elliptique (ec) dans le keystore, spécifie un nom de courbe et vérifie que la paire de clés figure dans le keystore.
% pktool genkeypair listcurves secp112r1, secp112r2, secp128r1, secp128r2, secp160k1 . . . c2pnb304w1, c2tnb359v1, c2pnb368w1, c2tnb431r1, prime192v2 prime192v3 % pktool genkeypair label=eckeypair keytype=ec curves=c2tnb431r1 % pktool list Enter PIN for Sun Software PKCS#11 softtoken :Type password No. Key Type Key Len. Key Label ---------------------------------------------------- Asymmetric public keys: 1 ECDSA eckeypair