Re: [ANNOUNCE] D-Bus Broker Project

David Herrmann <[email protected]>
Newsgroups gmane.comp.freedesktop.dbus
Message-ID <CANq1E4RCupi5S4ToE6Bh4NCntgKsVmZ9xj5u5F9Vh_jFheyVFg@mail.gmail.com>
Hi

On Mon, Sep 4, 2017 at 7:18 PM, Thiago Macieira <[email protected]> wrote:
> On Monday, 4 September 2017 13:18:46 -03 David Herrmann wrote:
>> A directed signal (or in fact *any* signal) is considered solicited if
>> a Match-Entry of the receiver matches the message. Unlike broadcasts,
>> unsolicited *unicast* signals are still delivered (mostly for
>> backwards compatibility).
[...]
> That means those signals are hardly ever subscribed to. Most importantly, the
> first of such signals is often sent before the receiver even has the
> information required to subscribe to it in the first place. According to your
> description, those signals would be considered unsolicited, even though the
> higher level API would consider them solicited (due to the method call that
> caused it to be emitted).
>
> How would this affect your solution? Suppose a malicious program makes a call
> which results in a system daemon sending a series of directed signals back at
> the caller. Those should be accounted to the caller, not the system daemon.

In dbus-daemon(1), those messages are accounted on the sender of the
signal, so are they in dbus-broker(1). Those messages have never been
considered solicited. Hence, there has always been the issue of
malicious peers triggering those messages without dispatching them.

In my opinion, those APIs should take object-paths as input, to
describe the new subscriber. So image you want to subscribe to
device-events, you would call:

    SubscribeDevice(o device, o subscriber, ...)

The subscriber object-path would then be used in the *directed*
signals, to allow the caller to install matches on them before
actually subscribing. This has many more benefits, btw. For instance,
you can cancel your subscription before the subscribe call returns
(because you already know the object-path of the subscription).

I know, this is not how those APIs were designed in the past, and we
are still supporting all this. But if you want directed signals to be
solicited, you need to install a match. dbus-daemon(1) has no policy
on those, so we cannot just mark them solicited.

Thanks
David
_______________________________________________
dbus mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dbus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.