Brian Cameron wrote:
> Since the lock screen program requires a backend daemon running as
> root which actually talks to PAM, and since this root daemon should
> have access to the Xauth keys for each display, it shouldn't be hard
> to make lockscreen work like this:
>
>   
Will the daemon running as root have access to all the xauth keys?

I'm working from memory, but back when I managed a system using NIS+ and 
therefor SecureRPC's for NFS, and the user's homedirs were mounted with 
the -secure option, root couldn't read any of thier files unless they 
were world readable.

Won't that be a problem for this daemon too?

   -Kyle

> 1) The user runs lockscreen, which runs any eye candy background as
>     the user
> 2) When the user hits a key or moves the mouse, a message is sent to
>     the daemon telling it to pop up the dialog.  Since the daemon is
>     running as root, and should have access to the Xauth key for each
>     display, it should be possible to launch the dialog as another
>     user (say the "gdm" user which is designed for UI's that accept
>     passwords), and also run with the Security Extension to prevent
>     Xauth snooping.  It's a bad idea, in general, to run GUI's as
>     root, so I think using a user like the "gdm" user makes more
>     sense.
> 3) When the user enters the password, the GUI dialog sends the
>     password to the daemon for actual PAM authentication.  If this
>     succeeds, a message is sent to the eye candy userland program
>     to tell it to stop locking the screen.
>
> One idea that I have tossed around a few times, though not in this
> forum would be for the GDM daemon to be this background daemon.
> Since GDM already knows about PAM, audit, etc. it might be nicer
> to have just one daemon running than two.  I realize PAM, audit
> is done a bit differently for login versus lockscreen, but I'd
> think it should be possible for GDM to be smart enough to handle
> either case.
>
> This does raise some issues for a11y.  As a quick aside, it isn't
> strictly necessary for a program to use GTK+ to be accessible.
> Java is also accessible.  You could also write a dialog using
> a widget-set that doesn't support ATK (such as Motif or X11),
> but hack the dialog to generate appropriate ATK events as the
> user interacts with the GUI.  Though this last option could be
> a lot of work, even if you only implement ATK for the small set
> of widgets that a lock screen dialog would require.
>
> Most existing a11y programs (such as orca and GOK) depend on the
> ability to snoop on dialogs to report what is going on in other ways
> (text-to-speech), and to allow users to control the GUI via alternative
> input programs such as GOK (on-screen keyboard).
>
> If we make the password entry dialog inaccessible to snooping, then
> we also make it inaccessible to AT programs.
>
> However, as has been pointed out before, the UI for entering your
> password is not really that complicated, so a reasonable solution
> to provide a11y might be as follows:
>
> 1) Embed an onscreen keyboard directly into the dialog, much
>     like gnome-screensaver already supports:
>
>     http://bugzilla.gnome.org/attachment.cgi?id=69696&action=view
>
> 2) Instead of providing magnification, it might be sufficient to
>     just provide a hotkey that increases/decreases font size in the
>     dialog.  And the ability for the user to configure the default
>     font size.
>
> 3) Some ability to launch text-to-speech, mMuch the same as GDM
>     currently allows you to hit a hotkey to turn this on.  Or we
>     could allow the user to configure that this is on by default.
>     Or we could try to detect if the user is running orca, and
>     assume they want to run it in the dialog as well.
>
> 4) Some ability for the dialog to detect and honor whatever
>     theme is being used by the user, so if they are using a high
>     or low contrast theme, this isn't lost when they go to the
>     lock screen dialog.  Perhaps the userland eyecandy program
>     could communicate the theme to the background daemon.
>
> Using approaches like the above, it should be able to provide
> a11y support in a lock screen dialog.
>
> -----
>
> As a separate topic, does Trusted Path apply to other programs that
> require password entry, such as Thunderbird, Evolution, etc.?  If
> so, perhaps the same model could work for these programs.
>
> Using Thunderbird as an example, perhaps we could design things
> so it could likewise ask GDM to provide the password entry dialog
> so that username, password entry could be handled by a non-snoopable
> dialog running as the GDM user with the Security extension.
>
> I am not sure if you could do something like an IMAP/POPT connection
> in a PAM module.  If so perhaps such a PAM module could pass back to
> Thunderbird whatever is necessary for it to actually talk to the
> server without Thunderbird ever being aware of the password.
>
> Or perhaps the dialog could be written to pass the username/password
> back to the application in a private fashion (perhaps via a socket),
> so at least the password isn't snoopable via Xauth, even if it is
> snoopable in the userland process (which you might be able to protect
> via other ways - by turning off dtrace and other programs which
> can snoop a process running as the same user).
>
> ----
>
> Just some thoughts...
>
> Brian
> _______________________________________________
> security-discuss mailing list
> security-discuss at opensolaris.org
>   


Reply via email to