Authorized clients
Sebastian Wick
sebastian at sebastianwick.net
Thu Jan 9 17:37:00 PST 2014
Am 2014-01-10 01:05, schrieb Martin Peres:
> Hey, don't twist his question and my answer ;) The question was IF our
> protocol is wrong. Remember, we aren't addressing the security of
> desktop here. We are looking for a way to provide a service
> (screenshots) and trying to find a way to make it as difficult as
> possible to misuse it. Right?
With emphasis on "providing a service". You say that we should not
provide the service which just won't work because some people need it.
So instead of saying that we should not implement it would be better to
find the most secure way to do this. I proposed 2 solutions already and
I still think that they are as secure is it can get.
You want that every use of a restricted protocol is the cause of an user
action and I think it is:
a) If you press a key-binding to launch a client which uses a restricted
protocol you have a user action.
b) If a client (which can be a program and not the user) asks the
compositor to launch a client which uses a restricted protocol and no
matching configuration file can be found, the compositor requires the
user to confirm or deny the request. That's obviously an user action,
too.
c) If a client (which can be a program and not the user) asks the
compositor to launch a client which uses a restricted protocol and a
configuration file is found and the configuration says that the client
DOES NOT require user input before using the protocol, the compositor
requires the user to confirm the authorization. Again, user input.
d) If a client (which can be a program and not the user) asks the
compositor to launch a client which uses a restricted protocol and a
configuration file is found and the configuration says that the client
requires user input before using the protocol, the user has to use the
program and click or press a key. Those events come from the kernel, go
to the compositor and over a secure connection to the trusted client.
This is no different from having a key-biding in the compositor. Even
this case requires user input.
You only have to trust that the client is not malicious like you also
have to trust your compositor to not being malicious. If you don't want
to trust the client then you obviously should not create a configuration
in the trusted clients directory.
Then, in another mail you said:
> The only thing we disagree about it the "trusted" label. At first, you
> trust the app, but then, there is a new version that allows disabling
> the visual cues and settings are stored in a file owned by the user.
> Then an attacker simply has to change the settings, run the app in the
> background and get the images. So, as I said, I don't trust application
> developers for doing the right things!
The whitelist for trusted applications must be only writable by root.
That's why we don't want to mix it with the weston.ini configuration.
Nobody said that we disable visual cues. The compositor knows which
restricted protocols a client can access. You are free to implement a
solution which shows it to the user in whatever form pleases you.
You don't even have to trust application developers. The configuration
file can be created by the packager of your repository or by anyone
else. What I don't understand is why you trust the compositor but not an
application. There is no difference in why you should trust the one but
not the other.
More information about the wayland-devel
mailing list