非对称加密 tar 文件

非对称加密 tar 文件

我想要实现类似

tar -c directory | openssl foo > encrypted_tarfile.dat

我需要 openssl 工具来使用公钥加密。

我发现了之前关于对称的问题在命令提示符下加密(原文如此!),这还不够。我确实查看了 openssl(1) 手册页,只找到了对称加密。OpenSSL 真的不支持非对称加密吗?

基本上,许多用户应该创建他们的加密 tar 文件并将其存储在一个中心位置,但只有少数人被允许读取它们。

答案1

OpenSSL 的非对称加密例程位于rsautl子命令下。(在 OpenSSL 的最新版本中,这已被命令取代pkeyutl,但参数似乎相同。)

使用某人的公钥加密 tar 文件:

openssl rsautl -encrypt -inkey Bob.pub -pubin -in foo.tar -out foo.tar.enc

然后他们可以使用私钥解密 tar 文件:

openssl rsautl -decrypt -inkey Bob -in foo.tar.enc -out foo.tar

请注意,SSH 和 SSL 使用不同的密钥格式,因此如果您想使用 SSH 密钥进行加密/解密,则不能直接使用 ~/.ssh/id_rsa.pub。

答案2

使用gpg——加密

使用“-r”您可以传递用户 ID。

man gpg

答案3

如果您不想设置 gpg 基础结构,而只想使用公钥/私钥对加密文件,则以下工具可能会有用:https://github.com/galets/AsymmetricCrypt. 您需要 Linux 上的 Mono 才能运行它。

免责声明:这是我写的

答案4

以下列出 2 个例子man openssl

Send encrypted mail using triple DES:

 openssl smime -encrypt -in in.txt -from [email protected] \
        -to someone@somewhere -subject "Encrypted message" \
        -des3 user.pem -out mail.msg
Sign and encrypt mail:

 openssl smime -sign -in ml.txt -signer my.pem -text \
        | openssl smime -encrypt -out mail.msg \
        -from [email protected] -to someone@somewhere \
        -subject "Signed and Encrypted message" -des3 user.pem

由于提到了s/mime和 ,因此有些令人困惑des3。但事实上,上述例子中发生了以下情况:

  • 生成一个新的随机对称密钥
  • 该文件使用对称密钥加密
  • 对称密钥使用非对称算法加密,公钥存储在user.pem
  • 将加密的对称密钥、加密文件和元数据放入标准容器中

最终结果是in.txt文件被加密成mail.msg文件,因此只有拥有与公钥匹配的私钥的用户user.pem才能解密它。

相关内容