Rsa
OpenSSL 中 RSA 密鑰的安全性
因此,當在 OpenSSL 中生成私鑰/或密鑰對時,有 -nodes 標記來停用私鑰的加密。我查了一下,它的意思是“沒有 DES”。所以沒有使用DES。為什麼 DES 用於加密此類秘密資訊,即使它不再被認為是安全的,而 OpenSSL 是用於生成 rsa 密鑰的最廣泛使用的工具之一
主要是因為在創建命令時使用 DES,而“no des”表示“不加密”。現在預設值不同了:
$ openssl req -new -newkey rsa:1024 -keyout rsa.enc.p8 -out rsa.enc.p8.csr Generating a 1024 bit RSA private key ...................................++++++ ...........++++++ writing new private key to 'rsa.enc.p8' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: <snip /> $ openssl asn1parse -i -dump < rsa.enc.p8 0:d=0 hl=4 l= 710 cons: SEQUENCE 4:d=1 hl=2 l= 64 cons: SEQUENCE 6:d=2 hl=2 l= 9 prim: OBJECT :PBES2 17:d=2 hl=2 l= 51 cons: SEQUENCE 19:d=3 hl=2 l= 27 cons: SEQUENCE 21:d=4 hl=2 l= 9 prim: OBJECT :PBKDF2 32:d=4 hl=2 l= 14 cons: SEQUENCE 34:d=5 hl=2 l= 8 prim: OCTET STRING 0000 - e9 37 68 99 cb 9c 4f 10- .7h...O. 44:d=5 hl=2 l= 2 prim: INTEGER :0800 48:d=3 hl=2 l= 20 cons: SEQUENCE 50:d=4 hl=2 l= 8 prim: OBJECT :des-ede3-cbc 60:d=4 hl=2 l= 8 prim: OCTET STRING 0000 - 16 ad ce 41 47 e8 ba 85- ...AG... 70:d=1 hl=4 l= 640 prim: OCTET STRING <snip />
它實際使用的算法是 des-ede3-cbc,又名 3DES-CBC。雖然 AES 幾乎完全取代了 3DES,但 3DES 並不被認為是不安全的。
NIST SP 800-57 修訂版 4的表 2 表明 3DES 具有 112 位的安全性,與 RSA 2048 相當。表 4 則表明 112 位的安全性在 2030 年之前都很好。