Re: "Ambient capabilities"

David Barbour <[email protected]>
Newsgroups gmane.comp.capabilities.general
Message-ID <CAAOQMSuhA5y-h8B1Ks8SX3d=w7Um1r8R=yGyRdTB2HZRBP3WrQ@mail.gmail.com>
On Mon, Nov 3, 2014 at 5:37 PM, Tony Arcieri <[email protected]> wrote:

> Each user has an application-specific bearer token. While authority is
> constrained on an app-by-app basis, the cookie passes through all of the
> capabilities a user possesses for a given application with each request,
> and if any of them confer the necessary authority, the action is permitted.
>

You certainly aren't getting the benefits of precisely indicating which
authorities you're using for each action. A user is subject to the confused
deputy problem.


> I feel like this is bordering on ambient authority: these "capabilities"
> sort of float around in the environment of an operation, and something
> making an access control decision inspects what's in the environment to
> decide if an action is permitted.
>

Assuming that it's easy to control, attenuate, and reason about the
environment exposed to different subprograms, then the idea of having
capabilities floating around in the environment doesn't hinder POLA. But,
from your description, I'm guessing this is not the case.



Finally, the name of the target URL endpoint and the "ambient capability"
> are not entwined in any way, rather, right now it's up to the target
> resource to decide which actions should be permitted. This seems like the
> coup de grâce for my system actually being capability-based: the name of
> the *specific* resource and the action to be performed are not entangled.
>

Passing a cookie full of capabilities to a URL shouldn't be much different
from passing a context object to a function or object; i.e. you can think
about it as a delegation of your authority to whatever agent is named by
the URL.

But even if we grant a bag of capabilities, the agent/server/script at the
endpoint should be explicitly drawing an appropriate cap out of the bag (or
their own personal inventory) for each action. This would restore many of
the benefits of capability security on the server side. It seems to me
you're instead saying that the bag of capabilities is treated more like
advice, with the scripts themselves having ambient authority.


>
> Modeling this as an objcap system, we might think of one of these "ambient
> capability" tokens as being entangled with a particular object, but access
> control decisions made on a method-by-method basis must still inspect a bag
> of "ambient capabilities" to decide whether an action is permitted.
>

I feel the phrase "ambient capability" would better describe scenarios
where capabilities are published to public or shared arenas, and users or
agents with access to these arenas are thus free to grab the capabilities
they need to perform some action. The capabilities are essentially
'ambient' as far as the agents and users are concerned, but they're also
clearly recognizable as capabilities, coupling authority and designation.

Relevantly, in that scenario, nobody is "deciding whether an action is
permitted" based on the bag of caps available to them. Rather, the bag of
caps determines which actions are available to the agent.


> what's a better phrase to describe them? "Ambient permissions"?
>

"questionable hack"?

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