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

时间:2014-01-22 07:47:38

标签: linux bash dbus

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

我已经有了这个工作,但是在几个点上,密码短语可以直接在命令行上使用(通过dbus传递),也可以放入文件中(然后将名称传递给另一个脚本)。这两者都不如我想要的安全*。命令行最终存储在历史记录中,该历史记录可以存储在文件中,也可以显示在进程列表中,第二个选项存储在可由其他人读取的文件中。

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

*注意:这主要是一项完全安全的练习。对于我当前的项目,密码的临时文件存储是可以的。

1 个答案:

答案 0 :(得分:0)

除了设置“root is all-powerful”之外,我会想象一个Private DBus Connection可以做到这一点虽然我能找到的文档似乎有点说明私有连接是什么。

但是,the DBus Specification,更具体地说,Message Bus Specification关于窃听的小节部分地说:

  

接收DESTINATION表示不同的单播消息   收件人被称为窃听。在作为一个充当的消息总线   安全边界(如标准系统总线),安全策略   通常应该防止窃听,因为单播消息是   通常保密,可能包含安全敏感信息。

因此,您甚至可能不需要使用会产生更多间接成本的私人连接。但在风险/回报的基础上,安全性至关重要,这对您来说可能是更安全的替代方案。希望有所帮助。