(安全问题)是否有任何方法可以隐藏dbus方法调用以防止监视dbus


请理解我英语不好。

我开发了一个由几个进程组成的身份验证系统,使用dbus相互通信。

我刚刚发现,通过dbus的每一次通信都可以使用dbusmonitor进行监视。这样的ac密码和id。我只想把它隐藏起来。

使用dbus私有连接,它可以被隐藏,因为它不经过dbus守护进程。但私人连接是一项复杂而肮脏的工作。

那么,有没有任何方法可以使用dbus开放连接(而不是专用连接(来隐藏dbus通信?

很抱歉再次打乱段落。感谢阅读。

我刚刚发现,通过dbus的每一次通信都可以使用dbus监视器观看。这样的ac密码和id。我只是想让它隐藏。

情况并非如此:policykit规则仍然适用。例如,作为非特权用户,我无法监控wpa_supplicant:

dbus-monitor  --system interface=fi.w1.wpa_supplicant1.Network
dbus-monitor: unable to enable new-style monitoring: org.freedesktop.DBus.Error.AccessDenied: "Rejected send message, 1 matched rules; type="method_call", sender=":1.6957" (uid=1002 pid=206438 comm="dbus-monitor --system interface=fi.w1.wpa_supplica") interface="org.freedesktop.DBus.Monitoring" member="BecomeMonitor" error name="(unset)" requested_reply="0" destination="org.freedesktop.DBus" (bus)". Falling back to eavesdropping.
signal time=1600511999.087722 sender=org.freedesktop.DBus -> destination=:1.6957 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.6957"

因为policykit-规则:

<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="root">
<allow own="fi.w1.wpa_supplicant1"/>
<allow send_destination="fi.w1.wpa_supplicant1"/>
<allow send_interface="fi.w1.wpa_supplicant1"/>
<allow receive_sender="fi.w1.wpa_supplicant1" receive_type="signal"/>
</policy>
<policy context="default">
<deny own="fi.w1.wpa_supplicant1"/>
<deny send_destination="fi.w1.wpa_supplicant1"/>
<deny receive_sender="fi.w1.wpa_supplicant1" receive_type="signal"/>
</policy>
</busconfig>

当然,root无论如何都可以读取您的所有数据。

如果您担心日志文件中出现的数据,可以使用Unix文件描述符(键入签名h(传递数据。因此数据对dbus-monitor的用户来说是不透明的

那么,有没有任何方法可以使用dbus开放连接(而不是专用连接(来隐藏dbus通信?

不,没有。

dbus-monitor需要特权才能运行,因此不必担心机密泄露。

最新更新