问题描述
-
我已经使用创建了密钥对
Details
-
我想通过查看
Audit
来验证密钥的加密方式, -
-des在cbc模式下使用DES对生成的密钥进行加密
-
-des3在ede cbc模式下使用DES加密生成的密钥(168位密钥) --idea在cbc模式下使用IDEA对生成的密钥进行加密
-
我使用了
openssl genrsa -out test1.key
,但未显示任何信息 关于那些。
请问是否有任何检查?
解决方法
您期望使用加密密钥,但是默认情况下不是。 genrsa man page明确指出(强调我的意思):
-aes128 | -aes192 | -aes256 | -aria128 | -aria192 | -aria256 | -camellia128 | -camellia192 | -camellia256 | -des | -des3 | -idea
这些选项之前使用指定的密码对私钥进行加密 输出它。 如果未指定这些选项,则不加密 使用。如果使用加密,则提示输入密码 不能通过-passout参数提供。
这也可以从生成的PEM文件中看到,该文件除了密钥本身没有其他信息:
$ openssl genrsa -out test-plain.key
Generating RSA private key,2048 bit long modulus (2 primes)
...........................................................................................+++++
..........................+++++
e is 65537 (0x010001)
$ head -n 2 test-plain.key
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA5RCtTAg3fuspy1VdZpHqrFz4Lt9p5MnZkjH0FZ9wAk9vpvRF
另一方面,如果我们指定一种加密算法来应用于密钥,则会发生两件事:
- 提示我输入密码(除非通过
-passout
指定) - PEM输出中显示了算法和分组密码模式
$ openssl genrsa -out test-aes.key -aes128
Generating RSA private key,2048 bit long modulus (2 primes)
............................................................+++++
................................+++++
e is 65537 (0x010001)
Enter pass phrase for test-aes.key: foobar
Verifying - Enter pass phrase for test-aes.key: foobar
$ head -n 3 test-aes.key
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,ED364325F65A0F212D07BC9E643D6424
我们可以清楚地看到AES-128-CBC
与指示的IV一起使用。