9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Richard <greon@best.com>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] capability-based design (Re: permissions idea)
Date: Thu,  4 Oct 2001 13:27:23 -0700	[thread overview]
Message-ID: <E15pF5X-00021J-00@localhost> (raw)
In-Reply-To: <20011004191609.B7DB9199B5@mail.cse.psu.edu>

rog@vitanuova.com writes:
>> the app must asks permission (from the OS, which
>> then might ask the user) before doing anything significant to the user's
>> software environment. 
>
>surely that assumes that the user wouldn't just automatically accept
>any reasonable-sounding request to open a file (i know i would,
>especially if i had several hundred per day).

the user does not have to do it explicitly, he can have programs
dispense permission on his behalf.  the user can write these programs
or they can be provided by whoever provides his software.

so for example, the program that installs your email client would ask
you for permission to create a file to archive mail in.  actually it
would call a file-creation primitive, which would ask you.  the creation
primitive would return a file descriptor to the installer, which could
do whatever it wanted with the descriptor.  a sensible thing to do would
be to give it to the email client "factory".  the email client factory
is the program that can start instances of the actual email client.
(think of an app's icon on a Windows desktop.)  the email client factory
would in turn give the file descriptor to the email clients processes it
creates, so that the process need not bother the user with mention of
the archive file.

so, after installation, the software environment need never 
ask the user for permission to open the archive file.

now on Plan 9 and Unix, open file descriptors cannot survive a reboot.
a capa OS would need to provide for their survival somehow.  eg, EROS
and KeyKOS (proprietary OS mired in intellectual-property hell which is
the main inspiration for EROS) have persistent processes that can
survive reboot.  (and their data of course survives with them.)
the reason they made that design decision is that most of the
opportunity for inadvertently creating security holes in a capa
software environment occurs during setting things up and starting
things up.

I have been talking about file descriptors, but I really mean
capabilities.  an open file descriptor is very much like a capability
that cannot be forged.  an unforgable pointer to an object (thing with
state and methods) is also essentially a capability, if you prefer OO
thinking over 9ish file thinking.

>capabilities (and ACLs) seem to me like they'd be a maintenance
>nightmare. i can barely remember to chmod my personal files 600...

again, a software environment suited to a user 
needs to ask the user for permission only when the user wants to do
things differently from what was decided by whoever provided his
software.  eg,  nothing in a capability-based software environment is
inconsistent with a docile user who knows nothing about security where
all security policies have been decided by the "vendor" or (Linux
terminology) "distribution maintainer".




  reply	other threads:[~2001-10-04 20:27 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-04 19:28 rog
2001-10-04 20:27 ` Richard [this message]
2001-10-04 20:33 ` Richard
  -- strict thread matches above, loose matches on Subject: below --
2001-10-09  2:06 okamoto
2001-10-08 18:16 Sape Mullender
2001-10-08 18:18 ` Lucio De Re
2001-10-05 17:12 Russ Cox
2001-10-05  8:13 nigel
2001-10-05 16:44 ` Richard
2001-10-05  5:31 nigel
2001-10-05  7:40 ` Richard
2001-10-08  9:36   ` Thomas Bushnell, BSG
2001-10-05  4:00 okamoto
2001-10-08 16:53 ` Maarit Maliniemi 
2001-10-04 23:57 Richard
2001-10-04 21:59 forsyth
2001-10-04 23:29 ` Richard
2001-09-28  1:06 [9fans] on the topic of viruses dmr
2001-10-01 16:13 ` permissions idea (Re: [9fans] on the topic of viruses) Matthew Hannigan
2001-10-02  8:34   ` Douglas A. Gwyn
2001-10-04 18:36     ` [9fans] capability-based design (Re: permissions idea) Richard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E15pF5X-00021J-00@localhost \
    --to=greon@best.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).