[cap-talk] Understanding capabilities in a web-desktop setting

Kevin Reid kpreid at mac.com
Fri Aug 8 10:57:58 CDT 2008


On Aug 8, 2008, at 10:56, Luke A. Guest wrote:

> If an capability URL has a large random string in there, you'll never
> get users to use capability systems; I know I wouldn't want to try and
> type in one of these URL's, or am I missing something?

Basically: You put the URL in your bookmarks.

If you can't do that (let's say you're using a reliable-but-not-yours  
computer), then use a password to access a web site which stores the  
bookmarks for you -- possibly, but not necessarily, the same site as  
generated the original URLs.

>> For example, when you double-click on a text-file file to open it  
>> in a
>> text editor in CapDesk, the text editor is given the authority only  
>> to
>> read that one file, and nothing else! Any vulnerabilities in the text
>> editor do not make the rest of the system vulnerable!
>
> What if I wanted to edit the text file rather than just read it?

There are many ways this can be handled. I don't recall exactly which  
one of the first three CapDesk uses.

1. You specified you want to edit the file [with MyEditor], not just  
view it, when you opened the file.

2. When you installed the text editor and its association with text  
files, you specified that it should be allowed to write to them, when  
you double-click a text file.

3. The editor does get access to write to the file -- all open-by- 
double-clicking means to give write access (to that one file).

4. The editor's window's "save" command is managed by its powerbox (a  
component  provided by the capability desktop system) -- the editor  
gets write authority when you use that command, and at no other time.

> My interest lies in OSes and providing a better security mechanism  
> within one. So a few related questions here would be:
>
> 1) What would be the process of logging on to a capability OS  
> (assuming
> desktop or multi-user system rather than embedded)?

You supply a password. This gives you access to your shell, which is  
just a collection of capabilities stored for you, held by a program  
providing the UI for you to interact with them.

You might notice that this is similar to the bookmark-storing tool  
above. They are exactly the same thing, in different media.

> 2) How does a user get these capabilities? I can only assume there  
> would
> be the concept of a user and they would have a list of capabilities.

It's sort of the other way around. You log in, which gives you access  
to the shell, which stores a list (more likely, a directory tree) of  
capabilities. There is no fundamental concept of a user; it is just a  
convenient-for-humans arrangement of capabilities.

> 3) What would happen if you tried to access a website, would it  
> bring up
> a ton of dialog boxes asking for permission, i.e. the Vista problem?

Yes/no dialog boxes, besides being a usability problem, are against  
the capability spirit, which as I put it is: do not have special  
checks, make disallowed actions *impossible to express*.

Don't take a request for X and put up a dialog box asking the user to  
grant X; *don't let the requester know X exists*. Don't put it in the  
requester's namespace, until the user does.

-- 
Kevin Reid                            <http://homepage.mac.com/kpreid/>




More information about the cap-talk mailing list