NOM¶
pkcs8 - Utilitaire de conversion de clé privée PKCS#8
SYNOPSIS¶
openssl pkcs8 [
-topk8] [
-inform PEM|
DER]
[
-outform PEM|
DER] [
-in nom_fichier]
[
-passin param] [
-out nom_fichier]
[
-passout param] [
-noiter] [
-nocrypt] [
-nooct] [
-embed] [
-nsdb] [
-v2 alg]
[
-v1 alg] [
-engine id]
DESCRIPTION¶
La commande
pkcs8 traite des clés privées au format PKCS#8.
Elle traite aussi bien le format PKCS#8 non encodé PrivateKeyInfo et
EncryptedPrivateKeyInfo, avec certains algorithmes PKCS#5 (v1.5 et v2.0) et
PKCS#12.
OPTIONS DE LA COMMANDE¶
- -topk8
- Par défaut, une clé privée PKCS#8 est attendue
à l'entrée et une clé privée au format
traditionnel est produite. Avec l'option -topk8, la situation est
inversée : une clé privée au format
traditionnel est lue et une clé au format PKCS#8 sera
produite.
- -inform DER|PEM
- Indique le format d'entrée. Si une clé au format PKCS#8 est
attendue à l'entrée, une version encodée DER
ou PEM de la clé PKCS#8 est acceptée. Autrement, une
clé privée au format traditionnel encodée DER
ou PEM est prise.
- -outform DER|PEM
- Cela indique le format de sortie. Les options ont la même
signification que pour l'option -inform.
- -in nom_fichier
- Indique le nom du fichier d'entrée à partir duquel la
clé sera lue. Par défaut, la clé est lue depuis
l'entrée standard si cette option est omise. Si la clé est
chiffrée, une phrase secrète sera demandée à
l'invite de commande.
- -passin param
- La source de mot de passe d'entrée. Pour plus de renseignements sur
le format de param, consultez la section PARAMÈTRES DE
PHRASE SECRÈTE d' openssl(1).
- -out nom_fichier
- Indique le nom du fichier de sortie où la clé sera
écrite, sinon la sortie standard sera utilisée par
défaut. Si des options de chiffrement sont indiquées, alors
une phrase de passe sera demandée. Le fichier de sortie ne doit
pas être le même que le fichier d'entrée.
- -passout param
- La source de mot de passe pour le fichier de sortie. Pour plus de
renseignements sur le format de param, consultez la section
PARAMÈTRES DE PHRASE SECRÈTE
d'openssl(1).
- -nocrypt
- Les clés PKCS#8 générées ou reçues en
entrée sont normalement une structure PKCS#8
EncryptedPrivateKeyInfo et utilisent un algorithme de chiffrement
utilisant un mot de passe approprié. Avec cette option, une
structure PrivateKeyInfo non chiffrée est attendue ou
générée. Cette option ne chiffre pas les clés
privées et devrait être utilisée uniquement si c'est
nécessaire. Certains programmes comme certaines versions du
logiciel certifiant du code Java utilisaient des clés
privées non chiffrées.
- -nooct
- Cette option génère une clé privée RSA dans un
format irrégulier que certains programmes utilisent. Plus
spécifiquement, une clé privée doit être
fournie dans une OCTET STRING mais certains programmes incluent la
structure même sans l'inclure dans une OCTET STRING.
- -embed
- Cette option génère une clé privée DSA dans un
format irrégulier que certains programmes utilisent. Les
paramètres DSA sont intégrés dans une structure
PrivateKey. Sous cette forme l' OCTET STRING contient une
ASN1 SEQUENCE constituée de deux structures : une
SEQUENCE contenant les paramètres et un ASN1 INTEGER
contenant la clé privée.
- -nsdb
- Cette option génère des clés DSA dans un format
irrégulier compatible avec les bases de données de
clés privées Netscape. La structure PrivateKey
contient une SEQUENCE comprenant les clés publiques et
privées respectivement.
- -v2 alg
- Cette option active l'utilisation des algorithmes PKCS#5 v2.0.
Habituellement les clés privées PKCS#8 sont chiffrées
avec un algorithme à base de mots de passe nommé
pbeWithMD5AndDES-CBC qui utilisent un chiffrement DES à
56 bits, qui était l'algorithme de chiffrement le plus fort
pris en charge par PKCS#5 v1.5. En utilisant l'option -v2, des
algorithmes PKCS#5 v2.0 sont utilisés, comme le triple DES à
168 bits ou encore RC2 à 128 bits. Toutefois peu
d'implémentations supportent PKCS#5 v2.0 à ce jour. Si vous
utilisez des clés privées uniquement avec OpenSSL, c'est
sans importance.
L'argument alg est l'algorithme de chiffrement à utiliser, qui
peut être entre autres des, des3 et rc2.
L'utilisation de des3 est recommandé.
- -v1 alg
- Cette option indique l'algorithme PKCS#5 v1.5 ou PKCS#12 à
utiliser. Une liste complète des algorithmes possibles est incluse
ci-dessous.
- -engine id
- Indique un moteur (en utilisant son identifiant unique id), et
force pkcs8 à essayer d'obtenir une référence
fonctionnelle pour le moteur indiqué, et l'initialise si
nécessaire. Le moteur sera ensuite utilisé par défaut
pour tous les algorithmes disponibles.
NOTES¶
La version chiffrée PEM d'un fichier PKCS#8 utilise les lignes suivantes
au début et à la fin :
-----BEGIN ENCRYPTED PRIVATE KEY-----
-----END ENCRYPTED PRIVATE KEY-----
La version non chiffrée utilise :
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
Les clés privées utilisant des algorithmes PKCS#5 v2.0 avec un
nombre d'itérations élevées sont plus sûres que
celle utilisant les formats traditionnels compatibles SSLeay. Ainsi, si on
considère importante cette sécurité
supplémentaire, les clés devraient être converties.
Le chiffrement par défaut est de seulement 56 bits car c'est
l'encodage que la plupart des implémentations de PKCS#8 récentes
gèrent.
Certains logiciels utilisent des algorithmes PKCS#12 de chiffrement à
base de mots de passe avec des clés privées au format
PKCS#8 : celles-ci sont gérées automatiquement, mais il
n'existe pas d'option pour les produire.
Il est possible d'écrire des clés privées chiffrées
au format DER dans un format PKCS#8 car les détails du chiffrement sont
inclus au niveau ASN1 alors que le format traditionnel les inclut au niveau
PEM.
Les algorithmes PKCS#5 v1.5 et PKCS#12.¶
Certains algorithmes peuvent être utilisés avec l'option
-v1, y compris PKCS#5 v1.5 et PKCS#12. Ils sont décrits
d'avantage ci-dessous.
- PBE-MD2-DES PBE-MD5-DES
- Ces algorithmes sont inclus dans la spécification PKCS#5 v1.5
originale. Ils offrent seulement 56 bits de protection comme ils
utilisent le DES tous les deux.
- PBE-SHA1-RC2-64 PBE-MD2-RC2-64 PBE-MD5-RC2-64 PBE-SHA1-DES
- Ces algorithmes ne sont pas mentionnés dans la spécification
originale PKCS#5 v1.5 mais ils utilisent le même algorithme de
dérivation de la clé et sont gérés par
quelques logiciels. Ils ont été cités dans PKCS#5
v2.0 et utilisent soit un RC2 à 64 bits soit un DES à
56 bits.
- PBE-SHA1-RC4-128 PBE-SHA1-RC4-40 PBE-SHA1-3DES PBE-SHA1-2DES
PBE-SHA1-RC2-128 PBE-SHA1-RC2-40
- Ces algorithmes utilisent l'algorithme de chiffrement à base de
mots de passe PKCS#12 et permettent l'utilisation des algorithmes de
chiffrement fort comme le triple DES ou le RC2 à
128 bits.
EXEMPLES¶
Convertir une clé privée du format traditionnel vers PKCS#5 v2.0
en utilisant le triple DES :
openssl pkcs8 -in key.pem -topk8 -v2 des3 -out enckey.pem
Convertir une clé privée PKCS#8 en utilisant un algorithme
compatible PKCS#5 1.5 (DES) :
openssl pkcs8 -in key.pem -topk8 -out enckey.pem
Convertir une clé privée vers PKCS#8 en utilisant un algorithme
compatible PKCS#12 (3DES) :
openssl pkcs8 -in key.pem -topk8 -out enckey.pem -v1 PBE-SHA1-3DES
Lire une clé privée DER non chiffrée au format
PKCS#8 :
openssl pkcs8 -inform DER -nocrypt -in key.der -out key.pem
Convertir une clé privée d'un format PKCS#8 quelconque vers le
format traditionnel :
openssl pkcs8 -in pk8.pem -out key.pem
NORMES¶
Des jeux de test de cette implémentation de PKCS#5 v2.0 ont
été postés sur la liste pkcs-tng en utilisant le triple
DES, DES ou RC2 avec un nombre d'itérations élevé.
Plusieurs personnes ont confirmé qu'ils pouvaient déchiffrer les
clés privées produites et ainsi on peut supposer que
l'implémentation PKCS#5 v2.0 est suffisamment correcte au moins
concernant ces algorithmes.
Le format des clés privées PKCS#8 DSA (entre autres) n'est pas
bien documenté, étant caché dans PKCS#11 v2.01,
section 11.9. Le format PKCS#8 DSA par défaut d'OpenSSL pour les
clés privées respecte ce standard.
BOGUES¶
Il devrait y avoir une option qui affiche l'algorithme de chiffrement
utilisé et d'autres détails comme le nombre d'itérations.
Le format par défaut des clés privées pour OpenSSL devrait
être PKCS#8 avec triple DES et PKCS#5 v2.0. Pour assurer la
compatibilité avec quelques-uns des utilitaires, l'ancien format est
maintenu actuellement.
VOIR AUSSI¶
dsa(1),
rsa(1),
genrsa(1),
gendsa(1)
TRADUCTION¶
Cette page de manuel a été traduite par stolck en 2002 et est
maintenue par la liste <debian-l10n-french AT lists DOT debian DOT org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur le
paquet manpages-fr-extra.