openssl手册页说,openssl命令的“ -pass pass:[password]”选项不安全,因为它对Object[]
之类的实用程序可见,但是通过bash可以安全吗?
赞:
ps
我已经在计算机上运行了这样的程序,所有#!/bin/bash
read -s psword
openssl enc -pass pass:$psword -aes-256-cbc -in text.plaintext -out text.encrypted
似乎都显示为“ ps
”。其他实用程序是否可以看到密码?
答案 0 :(得分:1)
在任何操作系统中,命令行通常都很容易从任何进程正常获取。请参阅此answer以获取进程的命令行。因此,无论是“ bash”还是某些自定义应用程序,“启动”该过程并不重要。这就是给出建议的原因。
任何这些事情都会带来风险。如果您接受它不是那么安全的风险,那么就没有理由不使用命令行(即它是您的计算机,并且您是唯一使用它的计算机)。如果很多人可以看到您的过程会话,并且可能看到一个敏感的密码,那么这种风险可能不值得。由您确定风险是否可以接受。
答案 1 :(得分:0)
如果要保护密码,最好将其写入只有您的进程可以访问的文件中,然后在命令中从该文件中读取密码。这样会将普通密码隐藏在命令行中,并使其对其他进程不可见。
您可以检查以下答案。它与生成openssl密钥有关,但类似于以下主题: How to generate an openSSL key using a passphrase from the command line?