Hi,
As you might know there is an idea to integrate Cynara checks into
dbus-daemon. Its implementation has been started by Patrick Ohly. I
continued this task and a version of dbus-daemon with this feature
implemented is available in my dbus sandbox.
git://review.tizen.org/platform/upstream/dbus
(sandbox/jacekbe/cynara-integration branch)
I believe that all the features that services need are implemented.
There are a few things that I need to do but these are rather minor. I
will also need to do more testing.
The idea is to extend D-Bus daemon XML policy language with <check ...
privilege="name_of_privilege" /> tag so when message matches <check>
rule Cynara is consulted. Attributes that can be put in this tag are the
same as in <allow> and <deny> tags (apart from user, group and own
attributes) so we can enforce policy checks with method/signal name,
interface, bus name, object path granularity.
For example in order to secure calling methods that are part of
"org.bluez.Device1" interface of service owning name
"org.bluez.Adapter1" one can put following lines in configuration file.
DBus daemon will take care of allowing only applications having
"http://tizen.org/privilege/bluetooth" privilege.
<policy context="default">
<check send_interface="org.bluez.Device1"
send_destination="org.bluez.Adapter1"
privilege="http://tizen.org/privilege/bluetooth " />
</policy>
It would be nice to get feedback from service developers whether you
find it useful and sufficient to secure your services.
Ideally, service developers could try this version of D-Bus and see if
they notice any problems. I'm not sure if other parts of security
infrastructure are ready so such tests can be performed though.
Additionally, I'd like to know whether we also need to support such
construct:
<check own="com.example.name" privilege="example.privilege" />
That is: allow only applications/services having given privilege to own
given name.
It would be if services weren't trusted or applications would like to
request some well known name on the bus. I'm not sure if that's the case.
Also, are there resources that need multiple privileges or we can assume
that every resource maps to a single privilege?
Best regards,
--
Jacek Bukarewicz
Samsung R&D Institute Poland
Samsung Electronics
[email protected]
_______________________________________________
Dev mailing list
[email protected]
https://lists.tizen.org/listinfo/dev