On Fri, Mar 07, 2008 at 12:45:19PM -0600, Brian Cameron wrote:
> Nicholas:
> >I should note that making use of Solaris privileges to help build a
> >trusted path between the screen lock process and the X11 server would
> >mean that the screen lock process must run on the same system as the X11
> >server because getpeerucred(3C) doesn't work remotely [yet].
>
> But the Xserver also runs as the user. The login program does some
> handshaking with the Xserver to make it drop to user perms after
> the user authenticates.
Not quite:
# pcred $(pgrep Xorg)
5542: e/r/suid=142292 egid=0 rgid=10 sgid=0
groups: 10 30303
# ppriv $(pgrep Xorg)
5542: /usr/X11/bin/Xorg :0 -depth 24 -nolisten tcp -nobanner -auth /var/dt/A
flags = <none>
E: basic
I: basic
P: basic
L: all
#
It's running with e/sgid == 0. Which means it cannot be traced by me:
% pcred $(pgrep Xorg)
pcred: cannot examine 5542: permission denied
%
Making sure that the X11 server is not traceable by the user isn't hard.
The components in the trusted path must not be traceable by the user.