Xfce users in Zero Install survey
Thomas Leonard
talex5 at gmail.com
Fri Oct 5 19:39:02 CEST 2007
On Thu, 04 Oct 2007 20:54:26 +0200, Nick Schermer wrote:
[...]
> I've no problems supporting other projects, but the launcher is not the
> right place to implement zeroinstall.
I should give a bit of background on why it's done this way, because if
you think of this as "the installer" then it clearly doesn't make much
sense putting it in the panel, and it would be quite right to separate
it out. (sorry, this is a bit long!)
To set the scene:
- Linux is rapidly gaining popularity.
- There is a significant risk that large numbers of Windows users will
switch to Linux over the course of the next few years.
- If they do, the spammers and malware will come too.
Taking a standard Ubuntu/feisty install as an example (since it seems to
be the most popular system; most others are similar), this is how a
user typically installs a (3rd-party) minesweeper game onto their
computer:
1. Click on a link to .deb package in a web-page.
2. Package is downloaded. Confirmation box appears saying "This is a
cool game".
3. User clicks on "Install".
By contrast, if a user wants to install a root-kit on their machine,
and have all their key-presses and browsing activity logged to a remote
machine, the steps are:
1. Click on a link to .deb package in a web-page.
2. Package is downloaded. Confirmation box appears saying "This is a
cool game".
3. User clicks on "Install".
Note that this might even be what the user wanted (e.g. a company that
requires all actions to be recorded for auditing purposes might install
such a package).
No matter how good our security software gets, it can't protect us from
this, because the actions are identical; the computer has no way to know
what the user intended to do.
The most likely response of the distributions will be to block
third-party software. You can already see this attitude in the
currently-rare cases of existing malware (or just plain stupidity, e.g.
the Sumsung printer drivers that made OpenOffice setuid root). This hurts
minority-appeal software (and new programs), because they don't get
included in distributions.
There are two ways we can change the installation user interface to fix
this. One is to display a (series of) confirmation box(es) asking the
user to confirm what the package wants to do ("Program wants to install
a menu entry Games/Minesweeper [Deny/Allow]", etc).
The problem here is that confirming all the actions is tedious and error
prone. Most packages are OK, and you can only click "Allow" so many
hundred times in a row before you stop reading the questions.
The other option, which I'm trying to use here, is to have a different
gesture for each case. When you drag a program (e.g. Blender) onto the
panel's launcher dialog, these things happen:
1. Zero or more archives will be downloaded and unpacked. Each will
unpack to a new, uniquely named directory. They will not overwrite or
interfere with any other programs or files on your computer.
2. A launcher will be added to the menu you dragged it to.
Nothing else will happen. No downloaded code is executed. Nothing on
your system will break (well, unless you ran out of disk space ;-).
There is no need to confirm adding the item to the menu, because the
user's action shows what they intended to do.
[ Insert standard disclaimer. All software has bugs. The above is how
it's *designed* to work. ]
On the other hand, if you want to install a root-kit with Zero Install:
$ sudo 0launch http://example.com/minesweeper.xml
Here we use a different gesture, because we want to execute something as
root, not add a launcher to a menu. My goal is to make this second case
rare enough that people might actually think about it before doing it,
or even rare enough that they don't need to be given root access in the
first place.
Likewise, if you wanted to add a firefox plugin, that would be a
different gesture again (maybe dragging to firefox's list of plugins
dialog). So, there is no single "installer", just various integration
points, one of which is the Xfce panel.
Now, because of the rather coarse-grained ("root" or "user") security
domains we have at present, when you click on a launcher in the Xfce
panel the program still gets to do anything your user can do. So, the only
security advantage is containing something in a user account rather than
giving it root. My hope is that, in future, people will combine it with
sandboxing software to actually run the programs in a restricted way.
Current options include Plash (which lets you set policies such as "When
I click on a PDF file, run Acroread with read access to only that one
file, and write access nowhere"), and seccomp (a process can't open any
files at all; useful for codecs etc).
Anyway, that's the background. Even if you don't buy the security stuff
("it'll never work!") it still makes installing easier IMO, and helps to
avoid accidents.
--
Dr Thomas Leonard http://rox.sourceforge.net
GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1
More information about the Xfce
mailing list