Gestion du chiffrement et des certificats dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Septembre 2014
 
 

Génération d'une paire de clés à l'aide de la commande pktool genkeypair

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.

  1. (Facultatif) Si vous prévoyez d'utiliser un keystore, créez-le.
  2. Créez la paire de clés.

    Choisissez l'une des méthodes suivantes.

    • Créez la paire de clés et stockez-la dans un fichier.

      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.


      Remarque -  Le keystore file ne prend pas en charge les clés et les certificats de courbes elliptiques (ec) .
      % pktool genkeypair keystore=file outkey=key-filename \
      [format=der|pem] [keytype=rsa|dsa] [keylen=key-size]
      keystore=file

      La valeur file spécifie le type de fichier dans l'emplacement de stockage de la clé.

      outkey=key-filename

      Spécifie le nom du fichier de stockage de la paire de clés.

      format=der|pem

      Spécifie le format de codage de la paire de clés. La sortie der est binaire et la sortie pem est ASCII.

      keytype=rsa|dsa

      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.

      keylen=key-size

      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.

    • Créez la paire de clés et stockez-la dans un keystore PKCS #11.

      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]
      label=key-label

      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.

      token=token[:manuf[:serial]]

      Spécifie le nom du jeton. Par défaut, le nom du jeton est Sun Software PKCS#11 softtoken.

      keytype=rsa|dsa|ec [curve=ECC-Curve-Name]

      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.

      keylen=key-size

      Spécifie la longueur de la clé en bits. Le nombre doit être divisible par 8.

      listcurves

      Répertorie les noms de courbes elliptiques qui peuvent être utilisés comme valeurs de l'option curve= pour un type de clé ec.

    • Générez la paire de clés et stockez-la dans un keystore NSS.

      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]
      keystore=nss

      La valeur nss spécifie le type NSS de l'emplacement de stockage de la clé.

      label=nickname

      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.

      token=token[:manuf[:serial]]

      Spécifie le nom du jeton. Par défaut, le jeton est Sun Software PKCS#11 softtoken.

      dir=directory

      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.

      prefix=database-prefix

      Spécifie le préfixe de la base de données NSS. Par défaut, le champ de préfixe est vide.

      keytype=rsa|dsa|ec [curve=ECC-Curve-Name]

      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.

      keylen=key-size

      Spécifie la longueur de la clé en bits. Le nombre doit être divisible par 8.

      listcurves

      Répertorie les noms de courbes elliptiques qui peuvent être utilisés comme valeurs de l'option curve= pour un type de clé ec.

  3. (Facultatif) Vérifiez que la clé existe.

    Utilisez l'une des commandes suivantes, en fonction de l'emplacement où vous avez stocké la clé :

    • Vérifiez la clé dans le fichier key-filename.
      % pktool list keystore=file objtype=key infile=key-filename
      Found n keys.
      Key #1 - keytype:location (keylen)
    • Vérifiez la clé dans le keystore PKCS #11.
      $ pktool list objtype=key
      Enter PIN for keystore:
      Found n keys.
      Key #1 - keytype:location (keylen)
    • Vérifiez la clé dans le keystore NSS.
      % pktool list keystore=nss dir=directory objtype=key
Exemple 4-6  Création d'une paire de clés à l'aide de la commande pktool

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                         specialappkeypair
Exemple 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