Roles and Rooms [was: re fwd re.. Encryption Opinion]

David Barbour <[email protected]>
Newsgroups gmane.comp.capabilities.general
Message-ID <CAAOQMSss=G2XGouSa7cKDNNSSSYG-k4UzGjMCjA5UikpJxhsfQ@mail.gmail.com>
On Wed, Aug 27, 2014 at 4:07 PM, Bill Frantz <[email protected]> wrote:

> For capability-based systems, I think *the* hard problem is
> configurability:  How do you turn an access policy defined in human terms
> into a set of capabilities that accurately and completely implements the
> policy?  Given a set of capabilities, how do you turn it into something
> human beings can actually understand?


One approach I've used is role oriented - e.g. you have objects
representing different 'roles' a user might play, and each role has
associated with it a set of specific capabilities (each coupled with a
description, API, and a default HTML widget). The role objects may then be
attenuated per user. An administrator can manage separately the
capabilities associated with each role, and the roles assigned to each
user. This is basically ACLs, except with the mashability, delegability,
and extensibility of the object capability model.

Another approach I've pursued with a fair amount of early promise (though I
tabled it in 2010 to focus on my new programming model) is a multi-agent
concept based on a 'rooms and keys' metaphor. This is similar to
multi-agent blackboard systems / tuple spaces / etc.. Users and software
agents are given revocable keys to different rooms, and each room contains
in it a set of objects representing capabilities. All capabilities in a
room are attenuated and revocable at the whole-room scale, i.e. by later
denying access to that room. However, users aren't limited to taking
objects from a room; they can also add objects to a room, and thereby
publish services that may attenuate authorities obtained from more secure
rooms.

In general, I envisioned that a software service would supply a 'public'
room or API, which can be extended in rather ad-hoc ways. In addition,
objects in a room would be composable, i.e. having holes or types that can
be integrated with objects from other rooms (e.g. this is an almost
complete service, but you need to provide the persistence and display
capability).

I find that physical metaphors and multi-agent systems ideas are a very
good fit for making object capability systems comprehensible. Other ideas
worth exploring are 'Data Context Interaction' and 'Role Oriented
Programming'.

In a more general sense, Ka-Ping Yee's "User Interaction Design for Secure
Systems" [1] can be applied almost directly to development of user
interfaces in capability secure systems. Capabilities are very flexible,
but the design principles in this paper provide a little extra structure
and guidance to the whole configurability question.

[1] http://zesty.ca/pubs/csd-02-1184.pdf



The *implications* of security policies - what is *actually* granted or
> forbidden, not as a result of the explicit policies but as a result of what
> they imply - is something that's difficult or impossible to understand


I think that the idea of 'security policy' is difficult to understand in
general. When people hear 'security policy', they think about some sort of
great rulebook in the sky that will somehow enforce interactions. This is
the wrong way of thinking about it.

With an object model, it is not difficult to describe systems and games
that match our physical intuitions. Consider a capability-secure MUD or MOO
- you could enforce game rules directly at the level of quest objects, keys
and doors, and so on. The ability to 'listen' to a room could be a
revocable capability, granted only when your avatar stands within the room
or one of its neighbors.

Further, such intuitions apply also to interactions between users in a
multi-agent system. The main thing we need there is a little extra
awareness, visibility, trusted path, and more universal options for
revocation.

_______________________________________________
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.