[cap-talk] Abstractions that subsume capabilities

David-Sarah Hopwood david.hopwood at industrial-designers.co.uk
Fri Mar 7 08:12:34 EST 2008


Jed Donnelley wrote:
> At 02:10 PM 3/6/2008, Karp, Alan H wrote:
>> Jed wrote:
>>> Hmmm.  I spent a bit of time looking around on the Web and
>>> didn't find anything that I would consider a 'taxonomy' for
>>> access control schemes.
>> I'm working on a study group for the Navy chartered with creating a 
>> position paper on SOA IA Security.  (Services Orientented 
>> Architecture Information Assurance, for you non-military types.  I 
>> usually apologize for the lack of acronyms in my notes to that 
>> group.)  They use DAC/MAC to describe who determines access and IBAC 
>> (identification), RBAC (role), ABAC (attributes) to define the 
>> authentication used to make an authorization decision.  Because of 
>> the acronym collision, we use NBAC (autheNtication) for the those 
>> three and ZBAC (authoriZation) for what I'm pushing.  That's sort of 
>> a 2-dimensional taxonomy.
> 
> Am I wrong in considering RBAC and ABAC really just forms of IBAC?

No, that's correct. So it is a hierarchical classification, not
2-dimensional:

<pre>
          access control
         /              \
      NBAC              ZBAC
    /  |  \            /    \
   /   |   \        caps   split-caps
IBAC RBAC ABAC     /  \
                   /  object-caps
           non-object-caps
</pre>

> That is, they are all properties of an identity -> an 'authentication'.
> If access is controlled for a "role" it is controlled for identities
> that (who?) have that role.  If access is controlled for an "attribute",
> it is controlled for identities with that attribute.  As you say it
> is really controlled for anybody/thing that can authenticate to
> an identity - and then for roles or attributes associated with the
> identity.
> 
> It seems to me that the relevant assumption for ZBAC is that
> all active entities must be associated with an identity
> whose roles or attributes can be used to make access control
> decisions.  In a typical market leading OS (e.g. Windows or
> Unix) processes maintain their association with an identity
> by the rule that forks retain the same identity.  This of
> course doesn't work across a network which acts more like
> sending data through a pipe or TCP to a process with a
> possible different identity.
> 
> What you refer to as NBAC (autheNtication based access control) seems
> to me an entirely different approach that goes off in another direction.
> It still requires an autheNtication to start things off - so I really
> don't see that distinction.  The key difference to me seems the way
> authorizations are controlled for which subjects (active entities that
> can make requests).  With capabilities (NBAC) it is running programs
> (with whatever "identity" or no identity) that are authorized or
> not - depending on whether they have the required capability token.

You have ZBAC and NBAC the wrong way round.

(I don't find these acronyms intuitive or memorable, either.)

-- 
David-Sarah Hopwood


More information about the cap-talk mailing list