<div dir="ltr"><div><div><div>Hi Martin,<br><br>My experience with PAM and similar "pluggable security modules" is that they provide a subpar user experience, are hard to integrate properly into the system, and have large pain points that stem from having such flexibility.<br>

<br></div>My compositor, mutter, will probably never call out to your "WSM", and we'll probably defer to another application authorization mechanism, probably the same one that provides application sandboxing, and other such capabilities. I'd also recommend that you go ahead and talk to the people, and perhaps even help build that mechanism, which isn't specific to Wayland, but will also cover DBus requests, system calls, and more.<br>

</div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 26, 2014 at 4:40 PM, Martin Peres <span dir="ltr"><<a href="mailto:martin.peres@free.fr" target="_blank">martin.peres@free.fr</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Le 19/02/2014 17:11, Martin Peres a écrit :<div class=""><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
#### Wayland Security Modules<br>
<br>
As seen earlier, granting access to a restricted interface or not depends on the context of the client (how it was launched, previous actions). The expected behaviour should be defined by a security policy.<br>
<br>
As no consensus on the policy [can apparently be reached](<a href="https://www.mail-archive.com/Wayland-devel@lists.freedesktop.org/msg12261.html" target="_blank">https://www.mail-<u></u>archive.com/Wayland-devel@<u></u>lists.freedesktop.org/<u></u>msg12261.html</a>) (as usual in security), we have all agreed that we needed to separate the policy from the code. This is very much alike [Linux Security Modules (LSM)](<a href="http://www.nsa.gov/research/_files/selinux/papers/module/x45.shtml" target="_blank">http://www.nsa.gov/<u></u>research/_files/selinux/<u></u>papers/module/x45.shtml</a>) or [X Access Control Extension (XACE)](<a href="http://www.x.org/releases/X11R7.5/doc/security/XACE-Spec.html" target="_blank">http://www.x.org/<u></u>releases/X11R7.5/doc/security/<u></u>XACE-Spec.html</a>).<br>

<br>
>From a software engineering point of view, we would work on a security library called Wayland Security Modules (name subject to changes) that Wayland compositors would call when a security decision would need to be made. The library would then load the wanted security policy, defined by a shared-object that I will refer to as the security backend. In the case of allowing a client to bind a restricted interface or not, the corresponding WSM hook should return ``ACCEPT``, ``PROMPT`` or ``DENY``, prompt meaning the compositor would have to ask the user if he wants to accept the risk or not. Let me stress out that prompting should be a last-resort measure as numerous studies have been made proving that unless asked very rarely, users will always allow the operation.<br>

<br>
Some additional hooks would also be needed in order to track the state of Wayland clients (open, close, etc...) but nothing too major should be needed. The compositors would just have to store this context in a ``void *security;`` attribute in the Wayland client structure. Finally, WSM could be extended to control the access to the clipboard and maybe other interfaces I haven't thought about yet.<br>

<br>
The design of this library has not started yet. If you are interested in helping out, I would love to have some feedback on what are your use cases for WSM.<br>
</blockquote>
<br></div>
Hey Guys,<br>
<br>
I think I'll start working on this lib pretty soon. If you have any objection towards going down this path, please voice them now.<br>
<br>
Also, do you think we should allow stacking security modules or not? For simplicity reasons, I don't think I'll allow it, but some one of you may have compelling reasons to allow it.<br>
<br>
Cheers,<br>
Martin<div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org" target="_blank">wayland-devel@lists.<u></u>freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/wayland-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>  Jasper<br>
</div>