Re: Capsicum: Object capabilities for Linux

Bennie Kloosteman <[email protected]>
Newsgroups gmane.comp.capabilities.general
Message-ID <CAJT18iYqq+_pe9DyY2s9RKKdZrwp1dWnQ9jzuaAYPWrKEqALxQ@mail.gmail.com>
On Fri, Oct 11, 2013 at 12:58 PM, Jed Donnelley <capability-iCFHVraI1K1Wk0Htik3J/[email protected]>wrote:

>  On 10/10/2013 12:53 AM, Bennie Kloosteman wrote:
>
> Capsicum has always been about getting capabilies into existing apps as
> easy as possible  so its not an ideal implementation but gets the job done.
>
>
> I don't know about "ideal", but I do know the value of what Dr. Robert
> Watson refers to as "arbitrary interposition of all operations".  Without
> that much (most?) of the value of capability systems disappears (in my
> view).  Can you explain (or point to a discussion) of why an interface that
> supports arbitrary interposition was considered to be incompatible with
> 'getting capabilities into existing apps as easy as possible'?  It isn't
> clear to me why there would be a conflict, but I expect I could understand
> the answer if somebody explained it.
>
>
>  One common way which works well is to start the app as normal and than
> activate capsicum mode which requires non powerbox caps being set
> beforehand.  This is pretty easy eg i added it to mono eg load the C# app ,
> jit etc , then activate cap mode and run the program. And then file.iodidnt work which is what i wanted as i wanted a new cap file API (winrt) to
> be used , changing everything to caps would have been far too much workbut
> they support that as well.  ( Capsicum does have a client server mode where
> you split the app into trusted and untrusted but its a big job changing
> existing apps) .
>
>
> I think I can understand the work involved, but not why the amount of work
> depends on the support of non-support of "arbitrary interposition of all
> operations" in the capability interface.
>
> I'd love to hear a bit about how directory capabilities work in Capsicum -
> e.g. compared to the way they work in the Tahoe file system or to GNOSIS or
> any of many other interfaces.  Driven by Unix symantics no doubt, but how
> does access right "masking" work when referencing through a directory
> capability?  How are links (hard and soft) handled?
>


Im not a capsicum designer but have used it for a month about 1-2 years ago
- just trying to help . Suggest you post the why question to the capsicum
list.  My use was basically  allow app to do lots of dirty stuff when
starting then turn on cap mode and pass to user and then everything is via
the powerbox.

This model i think is good because existing apps can become cap apps quite
quickly  and then mature.


>
>
>   4.  He mentioned Power Boxes.  Has any work been done on a windowing
> environment where it's the window manager that creates the "sandboxes"
> for applications that run with capability access only?
>
>  I believe so .. on freebsd and X at any rate . ( check
> gpowerboxserver.cpp).
>
>
> Sorry, but I was unable to find any references by searching for "gpowerboxserver.cpp"
> or any of the many variations I tried.  Can you be a bit more explicit?
>

Sorry   there is gpowerboxserver.cpp in the google rep  ( can remember if
capsicum for linux or  chromium caps ) which has lots of x11 references and
i faintly remember  there were some gui powerbox . CHecking the following
shows some gui elements
A Taste of Capsicum: Practical Capabilities for UNIX
|<http://cacm.acm.org/magazines/2012/3/146252-a-taste-of-capsicum/fulltext>

>
>
>
>   "5.  He says that Google is working on a port for Linux?  Is that still
> active work?  If so, what is it's state?  If the Linux work is a true
> "port", does that suggest that the interfaces will go over unchanged (no
> hope for a more true object capability interface??"
>
>  They have been saying that for years but i havent seen anything .. It
> will be hard getting kernel changes approved.
>
>  https://github.com/google/capsicum-linux
>
>  There does seem to be work on the port.
>
>  At any rate these are not big projects so dont expect too much.
>
>  For the much larger linux community there is a lot of momentum  , so
> hard to change  its not the OS  but getting all the apps to be rewritten  ,
> newer runtimes do have caps eg Android has some capabilites and winrt has
> a really good model
>
>
> Pointers?  Does any one person (or a few people) know enough about these
> capability models to contrast them with historical capability models and,
> in particular, with the "arbitrary interposition of all operations"
> property?
>

Trying to give you some but the commercial vendors dont often publsih
desaign issues etc.  Winrt and Android  have well documented APIs  (winrt
is http://msdn.microsoft.com/en-us/library/windows/apps/hh464936.aspx
http://msdn.microsoft.com/en-us/library/windows/apps/hh967755.aspx)  ,  one
of the android authors has posted to this list why they have a limited
mode.

>
>
>   but both platforms allow traditional apps.
>
>
> That seems entirely reasonable to me, but if they support an object
> capability interface model (e.g. as discussed on this list) then there is
> the opportunity to start building a code base for essentially POLA
> applications, libraries, etc.
>


Winrt Surface / windows phone for example is  basically winrt apps only and
is  not a great success but it means all apps are capability , follows POLA
 meaning its is a very secure platform  . Windows 8  for desktop everyone
complains  and favours desktop  so they never really move to the newer API
nor is there an insentive for the developers.  For touch and tablet they
are using the newer API as thats where the features are so bascially
Microsft is dragging deveopers and users and they are screaming all the way.

The point is developers dont want to make changes unless there is a
compelling reason , phone and touch apis have pulled them along  , Capsicum
is a way  for linux to go forward as it can be a 1 liner ( eg gui app fed
by powerbox but the lack of interest is notable.



>
>   There is hope on the desktop though as Capsicum seems to be the default
> and in the Kernel on FreeBSD making FreeBSD attractive as a secure platform
> .
>
>
> Particularly with children now out of college and a secure retirement, I
> could see spending some time contributing work to such a "secure
> platform".  However, if the interface doesn't have the arbitrary
> interposition of all operations property then it would take quite a bit of
> wind out of my sails.
>

Well the Linux world better get there act together as far as im concernced,
they have a worse security design/ model than Andorid/ Windows Phone 8
..which is embarrasing. However these new phone APIs are so limiting it
requires complete app redesigns  and none of them support 3rd party servers
( eg Daemons , "services") yet .   I think Unix change is hard and that  it
requires revolutionary change  ( and on Android Windows Phone touch apis
force this)  .


> Is anybody doing any programming for any of these platforms who can
> discuss how "object" these capability models are?
>

The capsicum list  and maybe FreeBSD. Capsicum list is about 1 post per
week

https://lists.cam.ac.uk/mailman/listinfo/cl-capsicum-discuss


Ben

_______________________________________________
cap-talk mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/cap-talk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.