在Linux D-Bus中:
什么阻止进程A直接与进程B通信?为什么方法调用消息必须通过总线守护进程?
为什么守护程序配置文件中的<policy>
部分有一个允许/拒绝拥有总线名称的选项?
如果进程可以使用匹配规则来监视通过总线守护程序进程传递的任何消息,那么两个通信进程是否可以以任何方式表达任何限制,以便其他进程无法观察其流量?
< / LI>为什么在documentation中说某个给定的总线名称总是引用同一个应用程序? - 机器重启后会是这样吗?
For 1:我目前的理解是,要使进程A和B相互通信,两者都必须使用总线守护进程注册总线名称。那么阻止A与B交谈的唯一方法就是它可能知道B的总线名称并且无法在机器上找到它吗?
答案 0 :(得分:2)
1 - 没什么。使用总线简单得多(服务和客户端都是tcp客户端,而不是服务器,更容易配置,管理名称等)
2 - 确保名称背后的服务是您信任的服务。否则,恶意代码可能会请求名称并伪装成该服务。
3 - IMO是(虽然不完全确定)
4 - name&lt; - &gt;连接。一个进程可以拥有多个名称。自动名称不会重新分配给新连接(如果重新连接它总是新名称)重新启动后,您可以再次看到相同的名称,但在重新启动之间,您可以假设随着时间的推移,没有相同的名称分配给两个不同的连接(=竞争条件)