我有大约 20000 个文件(大约 9GB),每个文件都使用openssl enc -aes-256-cbc -in infile -out outfile -k mypassword
命令加密。每个文件使用相同的密码。我的 openssl 版本是1.1.0e
.
如果我在异地位置备份这些文件,我是否容易受到任何已知的攻击?如果没有,我的替代方案是什么?
我有大约 20000 个文件(大约 9GB),每个文件都使用openssl enc -aes-256-cbc -in infile -out outfile -k mypassword
命令加密。每个文件使用相同的密码。我的 openssl 版本是1.1.0e
.
如果我在异地位置备份这些文件,我是否容易受到任何已知的攻击?如果没有,我的替代方案是什么?
您永远不应该使用 OpenSSL 的命令行实用程序进行通用加密。它实际上只是为了测试库的内部加密例程而设计的。因此,当需要真正的机密性和完整性时,使用它存在一些固有的问题:
-md sha512
,但它仍然不会使用密钥拉伸。-md md5
才能再次工作。enc
使用 GCM 模式加密有效,但解密无效。甚至可能仍然如此。这不是该enc
命令独有的。当尝试将 OpenSSL 命令行实用程序用于测试库以外的任何事情时,它还有其他问题。另一个示例是s_client
用于通过 SSL 或 TLS 连接到服务器的命令,它不会验证目标的证书。总的来说,您不应该使用 OpenSSL 实用程序。只需使用 GnuPG:
唯一一次我会直接使用 OpenSSL 是如果我需要使用完全随机的密钥或特定的原始密钥和 IV 加密某些东西并且不关心消息完整性。例如,将内核播种的伪随机流写入标准输出可以通过以下方式完成:
openssl aes-128-ctr -nosalt -k $(xxd -l16 -c16 -ps /dev/urandom) -in /dev/zero
-md
同样,当您知道原始密钥和十六进制原始 IV(绕过密钥派生的需要)时,可以通过以下方式解密一团纯加密数据:
openssl aes-128-cbc -d -nosalt -K $hex_key -iv $hex_iv -in infile -out outfile
但是对于通用文件加密呢?只需使用 GnuPG。