Macaroons: capabilities vs credentials

Tony Arcieri <[email protected]>
Newsgroups gmane.comp.capabilities.general
Message-ID <CAHOTMV+2cUVQJ2-0irzFngxDfGh5AC47xquaDJcPet73+0ZWZA@mail.gmail.com>
I've been looking a lot at Macaroons lately:

http://macaroons.io/
http://research.google.com/pubs/pub41892.html

The way I've been describing Macaroons lately is a length extension attack
on a cookie, but one that hopefully always attenuates authority but never
amplifies it. They allow any bearer of a Macaroon to magically chain what
they call "caveats" onto the Macaroon they currently hold using one weird
HMAC trick.

Macaroons start their lives as something akin to a pure capability, but the
paper's authors call it a credential because it gives you the power to bind
it to a specific bearer in various ways, for example by IP address or TLS
channel ID.

Macaroons also provide a rather sophisticated mechanism called "third-party
caveats" where you must go get a second bearer token (or third, or nth)
known as a "discharge macaroon" for your current macaroon to be valid. This
might involve authenticating against a service via whatever mechanism,
presenting a macaroon with an embedded third party caveat, and obtaining an
additional credential known as a "discharge macaroon" which is necessary
for the first to be considered valid.

I know the term "capability" is a bit sacred, and the authors of the paper
call Macaroons a credential instead of a capability. However, do Macaroons
fulfill the general ideals of capabilities?

The distinguishing characteristic, as they describe in the paper, is what
they call "contextual caveats", the ones that limit the scope in which a
Macaroon holds power, like binding it to an IP address or TLS channel ID
(or public key, subject, etc). When a contextual caveat is added, a
Macaroon alone (or chain of them) ceases to be "necessary and sufficient"
to gain access.

Does a capability cease to be a capability (and become a "credential") if
bound to an authentication mechanism like a TLS client certificate?

Are "contextual caveats" a good idea?

-- 
Tony Arcieri

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