linux - 将密码安全地传递给另一个程序(单独的 shell/dbus)

标签 linux bash dbus

我正在编写一个构建脚本,其中包含一些受密码保护的文件( key )。我需要一种方法来提示用户一次输入密码,然后在多个脚本中使用这个 key 。这些脚本不在同一个 shell 中,可能会通过 dbus 生成其他窗口。然后我可以向他们发送命令,其中之一必须能够访问密码。

我已经可以正常工作了,但在某些时候,密码要么直接在命令行上使用(通过 dbus 传递),要么被放入文件中(名称然后传递给其他脚本)。这两个都没有我想要的安全*。命令行以历史记录结束,该历史记录可能存储在文件中,也可能出现在进程列表中,第二个选项存储在其他人可以读取的文件中。

是否有一些标准方法可以在两个进程之间创建一个临时通信 channel ,该 channel 可以传递密码而不被系统上的其他用户(包括根用户)截获?

*注意:这主要是为了确保完全安全。对于我当前的项目,密码的临时文件内存储是可以的。

最佳答案

抛开“root 无所不能”,我想 Private DBus Connection尽管我能找到的文档似乎对使私有(private)连接成为私有(private)的确切原因有些了解,但可以解决问题。

然而,the DBus Specification ,更具体地说,Message Bus Specification关于窃听的部分部分说:

Receiving a unicast message whose DESTINATION indicates a different recipient is called eavesdropping. On a message bus which acts as a security boundary (like the standard system bus), the security policy should usually prevent eavesdropping, since unicast messages are normally kept private and may contain security-sensitive information.

因此,您甚至可能不需要使用会产生更多开销成本的专用连接。但在安全至上的风险/返回基础上,这可能是您更安全的选择。希望对您有所帮助。

关于linux - 将密码安全地传递给另一个程序(单独的 shell/dbus),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21277039/

相关文章:

linux - 无法获得这个简单的 sed 命令

python - 按特定字段对文件进行排序

bash - 如何在 sed 中使用 shell 通配符?

python - 如何使用 Python 模块 wpa_supplicant 连接到安全 WiFi?

python - 在 Python 中检查 Linux 上的 USB 驱动器?

c - Linux 内核 task_struct void *stack

c - 是否可以更改虚拟内存页面大小?

bash - 如何将 wget 文本文件输出附加到现有文件?

bash - 使用 openssl 从 pkcs12 证书中提取信息

linux - RTW_CMD_THREAD 负责什么?