NOM¶
pkcs8 - Utilitaire de conversion de clef 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 clefs 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 clef privée PKCS#8 est attendue
à l'entrée et une clef privée au format traditionnel est
produite. Avec l'option -topk8, la situation est
inversée : une clrg privée au format traditionnel est lue
et une clef au format PKCS#8 sera produite.
- -inform DER|PEM
- Indique le format d'entrée. Si une clef au format
PKCS#8 est attendue à l'entrée, une version encodée
DER ou PEM de la clef PKCS#8 est acceptée. Autrement,
une clef privée au format traditionnel encodée DER ou
PEM est prise.
- -outform DER|PEM
- 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 clef sera lue. Par défaut, la clef est lue depuis
l'entrée standard si cette option est omise. Si la clef est
chiffrée, un mot de passe sera demandé à 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 clef 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 clefs 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 clefs 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 clefs
privées non chiffrées.
- -nooct
- Cette option génère une clef privée RSA dans
un format déficient que certains programmes utilisent. Plus
spécifiquement, une clef 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 clef privée DSA dans
un format déficient que certains programmes utilisent. Plus
spécifiquement, une clef privée doit être fournie dans une
OCTET STRING mais certains programmes incluent la structure même sans
l'inclure dans une OCTET STRING.
- -nsdb
- Cette option génère des clefs DSA dans un format
déficient compatible avec les bases de données de clefs
privées Netscape. La structure PrivateKey contient une SEQUENCE
comprenant les clefs publiques et privées respectivement.
- -v2 alg
- Cette option active l'utilisation des algorithmes PKCS#5
v2.0. Habituellement les clefs 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 clefs privées uniquement avec OpenSSL, ceci n'importe
pas.
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'initialiser 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 clefs 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 compatible SSLeay. Ainsi, si on considère
importante cette sécurité supplémentaire, les clefs 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 clefs 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 clefs 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 clef 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 clef 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 clef 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 clef 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 clef privée DER non chiffrée au format PKCS#8 :
openssl pkcs8 -inform DER -nocrypt -in key.der -out key.pem
Convertir une clef 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 clefs 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 clefs 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 clefs 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 clefs 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.