How about employing TLS for private DBus connections ?

Simon McVittie smcv at collabora.com
Mon Oct 15 11:22:43 UTC 2018


On Mon, 08 Oct 2018 at 06:04:39 -0700, L A Walsh wrote:
>    Actually, I'm more concerned about you doing too much -- to remove the
> ability to have an open architecture that can allow remote connections
> with the security of 'rsh'.  The network that is used on is over a
> closed circuit. with only 2 devices on it (2 computers).

I do have some sympathy for this, and that's why I still haven't followed
through on my 2015 proposal[0] to remove or restrict non-local TCP:
removing existing functionality is not a decision to be taken lightly.

However, this reasoning only works as long as non-local
TCP support isn't giving D-Bus a bad name. If incidents like
https://www.bbc.co.uk/news/technology-33650491 result in developers
considering D-Bus to be insecure - whether it's true or not is irrelevant,
it's the perception that matters here! - then they will stop using D-Bus
for communication between their programs, and you will *still* lose the
ability to have their programs communicate over D-Bus within your cluster,
without the dbus maintainers having done anything. I don't want that to
happen any more than you do.

(I will also not be able to continue to put my time into maintaining
D-Bus and dbus if general-purpose "free desktop" Linux and *BSD systems
stop using them, because their usefulness to my employer is entirely
to do with D-Bus being a de facto standard for the system and session
buses on GNU/Linux.)

In a sense, adding wording to the spec about the TCP transport being
insecure works in your favour: next time there's an avoidable security
flaw as a result of some embedded vendor using unauthenticated D-Bus,
the more strongly we have discouraged it, the more credibly we can say
it was the embedded vendor's fault, not D-Bus' fault.

If you use a bridge (see my mail to rony elsewhere in this thread)
rather than relying on the D-Bus implementation itself having code for
non-local TCP, then possible future restriction or removal of non-local
TCP wouldn't affect you. I would recommend this.

I would also recommend using a ssh tunnel, even though in your case it's
unnecessary, unless you have performance numbers that say the network link
is enough of a bottleneck that the cost of encryption and authentication
is significant.

(In general we don't have enough realistic benchmarks and performance
numbers for D-Bus, so if you do have those performance numbers I'd be
interested to see them.)

> with the security of 'rsh'

If the public perception of D-Bus ever gets as bad as the public
perception of rsh[1][2], then that would be a very bad sign for its
future.

Yes, rsh can be used securely, under very special circumstances, and
you have arranged for those circumstances to happen on your systems;
but that doesn't make rsh popular, or a good idea to recommend in general.

    smcv

[0] https://lists.freedesktop.org/archives/dbus/2015-August/016763.html
[1] http://www.informit.com/articles/article.aspx?p=169465
[2] https://www.beyondsecurity.com/scan_pentest_network_vulnerabilities_rsh_detection
both from the first page of Google hits for "rsh security"


More information about the dbus mailing list