OpenSSL: genrsa vs genpkey?

12

Warum bietet OpenSSL zwei Dienstprogramme mit so vielen Überlappungen?

genpkey::

OpenSSL> genpkey -
Usage: genpkey [options]
where options may be
-out file          output file
-outform X         output format (DER or PEM)
-pass arg          output file pass phrase source
-<cipher>          use cipher <cipher> to encrypt the key
-engine e          use engine e, possibly a hardware device.
-paramfile file    parameters file
-algorithm alg     the public key algorithm
-pkeyopt opt:value set the public key algorithm option <opt>
                   to value <value>
-genparam          generate parameters, not key
-text              print the in text
NB: options order may be important!  See the manual page.

Und genrsa:

OpenSSL> genrsa -
usage: genrsa [args] [numbits]
 -des            encrypt the generated key with DES in cbc mode
 -des3           encrypt the generated key with DES in ede cbc mode (168 bit key)
 -seed
                 encrypt PEM output with cbc seed
 -aes128, -aes192, -aes256
                 encrypt PEM output with cbc aes
 -camellia128, -camellia192, -camellia256
                 encrypt PEM output with cbc camellia
 -out file       output the key to 'file
 -passout arg    output file pass phrase source
 -f4             use F4 (0x10001) for the E value
 -3              use 3 for the E value
 -engine e       use engine e, possibly a hardware device.
 -rand file:file:...
                 load the file (or the files in the directory) into
                 the random number generator

Die Dokumente in Debian sind auch wirklich seltsam,

   genpkey   Generation of Private Key or Parameters.
   genrsa    Generation of RSA Private Key. Superceded by genpkey.

Ist genpkeyein Ersatz? Wenn ja, warum hat es das nicht -des3? Und wie fügen wir ihm ein Passwort hinzu und geben die Schlüssellänge an?

Evan Carroll
quelle
2
Wenn Sie der Meinung sind, dass zwei verschiedene Befehle zum Ausführen derselben Aufgaben nicht verrückt sind, sollten Sie berücksichtigen, dass die ASN.1-Struktur generiert wurde genrsaund genpkeytatsächlich unterschiedlich ist. Die ASN.1-Struktur von Schlüsseln, die mit generiert wurden, genrsaist pkcs # 1, während Schlüssel, die mit generiert wurden, genpkeypkcs # 8 sind. Wenn das nicht schlimm genug ist, wenn Sie es verwenden, genpkey -outform derdann ist es zurück zu pkcs # 1. Mit EG, ist es noch schlimmer, irgendwie genecfehlt, stattdessen gibt es ecparam -genkey, und irgendwie ecparam -genkey, genpkey -outform pem, genpkey -outform deralle haben unterschiedliche ASN.1 - Struktur.
Lie Ryan

Antworten:

8

Es heißt eindeutig, dass genrsaersetzt wurde genpkey, also ja, genpkeyist ein Ersatz.

Sie können die Verschlüsselung 3desmithilfe des -cipherArguments ändern

Außerdem sollte es Ihnen sagen, dass Sie das -passArgument verwenden , um ein Passwort hinzuzufügen

Weitere Informationen finden Sie hier

MichelZ
quelle
1
Nun, ich sehe das -passArgument jetzt (vorausgesetzt, es ist dasselbe wie -3des), aber ich sehe nicht einmal eine Option, um die Schlüssellänge anzugeben genpkey? Ich habe auch alles eingefügt, was die Ubuntu 14.04-Manpages dazu zu sagen hatten.
Evan Carroll
1
Darf ich Sie dann auf diese Dokumentation verweisen
MichelZ
3
Lol, das ist verrückt ... -pkeyopt rsa_keygen_bits:numbits.
Evan Carroll
Warum ist es verrückt? :)
MichelZ
9
Weil der ganze Zweck von -h darin besteht, eine Zusammenfassung des Befehls bereitzustellen. Das heißt, ich habe gerade herausgefunden, dass genpkeyes tatsächlich in seinen eigenen Manpages dokumentiert ist. Das ist interessant. Das gesamte Projekt sollte die Richtung von git-core verschieben, wobei den Manpages alle openssl- vorangestellt sind und die Benutzeroberfläche das openssl help genpkeyRendern der Manpages zulässt . tldr; Bessere Dokumente würden helfen.
Evan Carroll