Next in thread → Next in month →

RE: [xacml] Explanation - Capability model

From
Tim Moses <>
Date
2001-10-16T21:12:15+00:00
ID
Thread
RE: [xacml] Explanation - Capability model
Title: Explanation - Capability model

Hal - 
It sounds like we are in agreement.

 

I 
believe the thing that is defining of a "capability" policy is not 
that it is conveyed in a bearer token (otherwise, a digital certificate would 
certainly not qualify), but that it is identified with the subject (rather than 
the resource) and describes the things that the subject is "capable" 
of doing.  I have no interest in pursuing this model.  And if all in 
the group feel the same way (as you appear to), then I suggest that we not 
address the capability model in our work.

 

All 
the best.  Tim.

 

-----------------------------------------
Tim Moses
Tel: 
613.270.3183

 

    
-----Original Message-----
From: Hal Lockhart 
    [mailto:]
Sent: Tuesday, October 16, 
    2001 3:28 PM
To: 'Tim Moses'; 'XACML'
Subject: RE: 
    [xacml] Explanation - Capability model

    
 

    
        
-----Original Message-----
From: Tim 
        Moses [mailto:]
Sent: Tuesday, October 
        16, 2001 10:59 AM
To: 'XACML'
Subject: [xacml] 
        Explanation - Capability model

        
Colleagues - A decision request contains (as a minimum) 
        the subject, the resource and the action.  Job one for the PDP is 
        to locate, retrieve and verify the policy appropriate to the decision 
        request.  By "policy" I mean the complete set of rules 
        that must be considered when formulating the decision. 

    
From an XACML perspective, I think we need to first 
    determine the inputs and the model structure and then determine what items 
    must be present. Everyone is tired of hearing me say subject is not 
    required, certainly it could be argued that action is not required, for 
    example, consider a application protocol with only one operation. (http is 
    almost that way since any given page is usually only accessed with a 
    particular operation (e.g. GET) and all operations can perform reads and 
    writes.)

    
 

    
Not withstanding that, I agree with your use of the 
    term policy. 

    
 

    
Certainly the PDP must IDENTIFY the policies that 
    apply to any given decision. It seems to me that whether it must locate, 
    retrieve and verify them seems to me to be implementation specific and not 
    necessarily the concern of XACML.

    
        
We need a way of identifying policies, for two 
        reasons.  Firstly, most mechanisms for locating and retrieving 
        policy will be based on the policy's "name".  I am 
        thinking of LDAP, "The Web", ODBC, etc..  In addition, 
        for security reasons, the PDP must verify that it has retrieved the 
        correct policy for the decision request.  So, it must be 
        verifiable, by examining the policy and the decision request, that it is 
        the right policy for the request.  One way (perhaps the best way) 
        is to name the policies according to the situations to which they 
        apply.  The PDP has to assure itself that the policy was issued by 
        an authority (or authorities) that is (are) competent to set policy for 
        the situation and that it has not been altered, and (furthermore) that 
        the policy's name identifies it with some aspect of the decision 
        request. 

    
I 
    don't understand why you introduce the concept of "naming" 
    policies. My view is that XACML should say, these inputs are used to 
    determine which policies apply. If you want to (for example) concatenate the 
    values, hash the result and use that to create an LDAP query, fine. If you 
    have all the policies hard coded in your PDP, that is fine too. 
    

    
 

    
The means by which a PDP decides to trust a PRP 
    also seems outside of XACML. Certainly we could provide the optional ability 
    to sign policies using XMLdsig, but in many cases other means will be used. 
    For example, the PRP and PDP may share an address space.

    
        
When policies are identified with the subject, the model 
        is called a "capability" model.  

    
Capabilities specifically mean the use of a bearer 
    token that specifies the right to do something. See for example: http://www.garlic.com/~lynn/secure.htm which 
    cites both RFC2828 and the National Security Decision 
    Directive:

    
 

    
"(I) A token, usually an unforgeable data 
    value (sometimes called a 'ticket') that gives the bearer or holder the 
    right to access a system resource. Possession of the token is accepted by a 
    system as proof that the holder has been authorized to access the resource 
    named or indicated by the token. (C) This concept can be implemented as a 
    digital certificate. [RFC2828 ] A protected identifier that both identifies 
    the object and specifies the access rights to be allowed to the accessor who 
    possesses the capability. In a capability-based system, access to protected 
    objects such as files is granted if the would-be accessor possesses a 
    capability for the object. [AJP][NCSC/TG004"

    
I 
    consider capabilities infeasable in medium and large scale environments 
    because they create to close a coupling between the user repositories and 
    the resources protected by the PEPs. Either the capabilities must be so 
    coarse grained that they are not useful (whole web site) or the 
    administrative coodination required is impractical (if I add a single page 
    to my web application, I have to inform the capability issuing 
    point).

    
 

    
When a policy layer is interposed between the 
    "capabilities" and the actual policy decision, essentially you end 
    up with user attributes, as in the SAML/XACML domain model. If you want to 
    call a SAML Attribute Assertion a capability, then I guess we don't have any 
    fundamental disagreement, but that is different from how the term has been 
    used in the literature.

When policies are 
    identified with resource and action, the model is called an "access 
    control" model. 

    
        
At least in theory, policies could be identified with 
        ancillary parameters (e.g. time of day).  But, this doesn't seem to 
        be an especially helpful option.

        
In the capability model, policies are located and 
        retrieved based on the subject's name, and in the access control model, 
        policies are located and retrieved based on the name of the resource and 
        action.

        
We'll have to decide whether to support both capability 
        and access control models.  Personally, I would be quite happy to 
        ignore the capability model.  Perhaps, the group could consider 
        taking this position, and seeing if anyone complains.  If someone 
        were to complain, then we would have to define a general model that 
        accommodates both capability and access control approaches. 

    
 Perhaps this is only an issue of definition. 
    I believe strongly that the domain model, with potentially multiple 
    authorities is the right kind of approach. As long as your notion of 
    capabilties fits in that framework, I have no problems with it. 
    

    
 

    
Hal
Next in thread → Next in month →