Certaines applications exigent une clé symétrique pour le chiffrement et le déchiffrement des communications. Dans cette procédure, vous créez une clé symétrique et la stockez.
Si votre site dispose d'un générateur de nombres aléatoires, vous pouvez l'utiliser pour créer un nombre aléatoire pour la clé. Cette procédure n'utilise pas le générateur de nombres aléatoires de votre site Web.
Choisissez l'une des méthodes suivantes.
L'avantage d'une clé stockée dans un fichier est que vous pouvez extraire la clé de ce fichier pour l'utiliser dans le fichier de clés d'une application, tel que le fichier /etc/inet/secret/ipseckeys ou IPsec. L'instruction d'utilisation indique les arguments.
% pktool genkey keystore=file ...genkey keystore=file outkey=key-fn [ keytype=aes|arcfour|des|3des|generic ] [ keylen=key-size (AES, ARCFOUR or GENERIC only)] [ print=y|n ]
Nom de fichier contenant la clé.
Pour une clé symétrique d'une longueur quelconque, la valeur est generic. Pour un algorithme spécifique, indiquez aes, arcfour, des ou 3des.
Pour configurer des algorithmes approuvés par FIPS 140, sélectionnez un type de clé validé pour FIPS. Voir la section FIPS 140 Algorithms in the Cryptographic Framework du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .
Longueur de la clé en bits. Le nombre doit être divisible par 8. Ne spécifiez rien pour des ou 3des.
Pour configurer des algorithmes approuvés par FIPS 140, sélectionnez une longueur de clé validée pour FIPS. Voir la section FIPS 140 Algorithms in the Cryptographic Framework du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .
Imprime la clé de la fenêtre de terminal. Par défaut, la valeur de print est n.
L'avantage du keystore PKCS #11 est que vous pouvez extraire la clé par son étiquette. Cette méthode est utile pour les clés qui chiffrent et déchiffrent des fichiers. Vous devez effectuer l'Step 1 avant d'utiliser cette méthode. L'instruction d'utilisation indique les arguments. Les crochets qui entourent l'argument de keystore indiquent que lorsqu'il n'est pas spécifié, la clé est stockée dans le keystore PKCS #11.
$ pktool genkey keystore=pkcs11 ...genkey [ keystore=pkcs11 ] label=key-label [ keytype=aes|arcfour|des|3des|generic ] [ keylen=key-size (AES, ARCFOUR or GENERIC only)] [ token=token[:manuf[:serial]]] [ sensitive=y|n ] [ extractable=y|n ] [ print=y|n ]
Etiquette spécifiée par l'utilisateur pour la clé. La clé peut être récupérée à partir du keystore par son étiquette.
Pour une clé symétrique d'une longueur quelconque, la valeur est generic. Pour un algorithme spécifique, indiquez aes, arcfour, des ou 3des.
Pour configurer des algorithmes approuvés par FIPS 140, sélectionnez un type de clé validé pour FIPS. Voir la section FIPS 140 Algorithms in the Cryptographic Framework du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .
Longueur de la clé en bits. Le nombre doit être divisible par 8. Ne spécifiez rien pour des ou 3des.
Pour configurer des algorithmes approuvés par FIPS 140, sélectionnez une longueur de clé validée pour FIPS. Voir la section FIPS 140 Algorithms in the Cryptographic Framework du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .
Nom du jeton. Par défaut, le jeton est Sun Software PKCS#11 softtoken.
Détermine la sensibilité de la clé. Lorsque la valeur est y, la clé ne peut pas être imprimée à l'aide de l'argument print=y. Par défaut, la valeur de sensitive est n.
Indique que la clé peut être extraite du keystore. Spécifiez n afin d'empêcher l'extraction de la clé.
Imprime la clé de la fenêtre de terminal. Par défaut, la valeur de print est n.
Vous devez effectuer l'Step 1 avant d'utiliser cette méthode. L'instruction d'utilisation indique les arguments.
$ pktool genkey keystore=nss ...genkey keystore=nss label=key-label [ keytype=aes|arcfour|des|3des|generic ] [ keylen=key-size (AES, ARCFOUR or GENERIC only)] [ token=token[:manuf[:serial]]] [ dir=directory-path ] [ prefix=DBprefix ]
Etiquette spécifiée par l'utilisateur pour la clé. La clé peut être récupérée à partir du keystore par son étiquette.
Pour une clé symétrique d'une longueur quelconque, la valeur est generic. Pour un algorithme spécifique, indiquez aes, arcfour, des ou 3des.
Pour configurer des algorithmes approuvés par FIPS 140, sélectionnez un type de clé validé pour FIPS. Voir la section FIPS 140 Algorithms in the Cryptographic Framework du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .
Longueur de la clé en bits. Le nombre doit être divisible par 8. Ne spécifiez rien pour des ou 3des.
Pour configurer des algorithmes approuvés par FIPS 140, sélectionnez une longueur de clé validée pour FIPS. Voir la section FIPS 140 Algorithms in the Cryptographic Framework du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .
Nom du jeton. Par défaut, le jeton est le jeton interne NSS.
Chemin d'accès au répertoire de la base de données NSS. Par défaut, directory est le répertoire courant.
Préfixe de la base de données NSS. Par défaut, le champ de préfixe est vide.
Utilisez l'une des commandes suivantes, en fonction de l'endroit où vous avez stocké la clé.
% pktool list keystore=file objtype=key [infile=key-fn] Found n keys. Key #1 - keytype:location (keylen)
For PKCS #11, use the following command:
$ pktool list keystore=pkcs11 objtype=key Enter PIN for keystore: Found n keys. Key #1 - keytype:location (keylen)
Sinon, remplacez keystore=pkcs11 par keystore=nss dans la commande.
Dans l'exemple suivant, un utilisateur crée un keystore PKCS#11 pour la première fois, puis génère une longue clé symétrique pour une application. Enfin, l'utilisateur vérifie que la clé se trouve dans le keystore.
Notez que le mot de passe d'origine pour un keystore PKCS #11 est changeme. Le mot de passe initial pour un keystore NSS est un mot de passe vide.
# pktool setpin Create new passphrase:Type password Re-enter new passphrase:Retype password Passphrase changed. % pktool genkey label=specialappkey keytype=generic keylen=1024 Enter PIN for Sun Software PKCS#11 softtoken :Type password % pktool list objtype=key Enter PIN for Sun Software PKCS#11 softtoken :Type password No. Key Type Key Len. Key Label ---------------------------------------------------- Symmetric keys: 1 Symmetric 1024 specialappkeyExemple 3-2 Création d'une clé approuvée par FIPS à l'aide de la commande pktool
Dans l'exemple suivant, une clé secrète pour l'algorithme AES est créée à l'aide d'un algorithme et d'une longueur de clé approuvés par FIPS. La clé est stockée dans un fichier local pour un déchiffrement ultérieur. La commande protège le fichier avec 400 autorisations. Si la clé est créée, l'option print=y affiche la clé générée dans la fenêtre de terminal.
L'utilisateur propriétaire du fichier de clés récupère la clé à l'aide de la commande od.
% pktool genkey keystore=file outkey=256bit.file1 keytype=aes keylen=256 print=y Key Value ="aaa2df1d10f02eaee2595d48964847757a6a49cf86c4339cd5205c24ac8c8873" % od -x 256bit.file1 0000000 aaa2 df1d 10f0 2eae e259 5d48 9648 4775 0000020 7a6a 49cf 86c4 339c d520 5c24 ac8c 8873 0000040Exemple 3-3 Création d'une clé symétrique pour les associations de sécurité (SA) IPsec
Dans l'exemple suivant, l'administrateur crée manuellement les numéros de clé pour les SA IPsec et les stocke dans des fichiers. Ensuite, l'administrateur copie les clés pour le fichier /etc/inet/secret/ipseckeys et détruit les fichiers d'origine.
Tout d'abord, l'administrateur crée et affiche les clés requises par la stratégie IPsec :
# pktool genkey keystore=file outkey=ipencrin1 keytype=generic keylen=192 print=y Key Value ="294979e512cb8e79370dabecadc3fcbb849e78d2d6bd2049" # pktool genkey keystore=file outkey=ipencrout1 keytype=generic keylen=192 print=y Key Value ="9678f80e33406c86e3d1686e50406bd0434819c20d09d204" # pktool genkey keystore=file outkey=ipspi1 keytype=generic keylen=32 print=y Key Value ="acbeaa20" # pktool genkey keystore=file outkey=ipspi2 keytype=generic keylen=32 print=y Key Value ="19174215" # pktool genkey keystore=file outkey=ipsha21 keytype=generic keylen=256 print=y Key Value ="659c20f2d6c3f9570bcee93e96d95e2263aca4eeb3369f72c5c786af4177fe9e" # pktool genkey keystore=file outkey=ipsha22 keytype=generic keylen=256 print=y Key Value ="b041975a0e1fce0503665c3966684d731fa3dbb12fcf87b0a837b2da5d82c810"
Ensuite, l'administrateur crée le fichier suivant /etc/inet/secret/ipseckeys :
## SPI values require a leading 0x. ## Backslashes indicate command continuation. ## ## for outbound packets on this system add esp spi 0xacbeaa20 \ src 192.168.1.1 dst 192.168.2.1 \ encr_alg aes auth_alg sha256 \ encrkey 294979e512cb8e79370dabecadc3fcbb849e78d2d6bd2049 \ authkey 659c20f2d6c3f9570bcee93e96d95e2263aca4eeb3369f72c5c786af4177fe9e ## ## for inbound packets add esp spi 0x19174215 \ src 192.168.2.1 dst 192.168.1.1 \ encr_alg aes auth_alg sha256 \ encrkey 9678f80e33406c86e3d1686e50406bd0434819c20d09d204 \ authkey b041975a0e1fce0503665c3966684d731fa3dbb12fcf87b0a837b2da5d82c810
Après avoir vérifié que la syntaxe du fichier ipseckeys est valide, l'administrateur détruit les fichiers clé d'origine.
# ipseckey -c /etc/inet/secret/ipseckeys # rm ipencrin1 ipencrout1 ipspi1 ipspi2 ipsha21 ipsha22
L'administrateur copie le fichier ipseckeys au système de communication en utilisant la commande ssh ou un autre mécanisme sécurisé. Sur le système de communication, les protections sont inversées. La première entrée dans le fichier ipseckeys protège les paquets entrants, et la seconde entrée protège les paquets sortants. Aucune clé n'est générée sur le système de communication.
Etapes suivantes
Pour continuer à utiliser la clé afin de créer un code d'authentification des messages (MAC) pour un fichier, voir Calcul du code MAC d'un fichier.