OASIS eXtensible Access Control Markup Language (XACML) TC

Expand all | Collapse all

BTG sequence diagram

  • 1.  BTG sequence diagram

    Posted 04-22-2011 19:16
      |   view attached
    This is to respond to David Chadwick's notes [1] and [2] and to try to explain what I believe is the correct sequence of a BTG episode. In [1], David describes three evaluation scenarios: 1. "If action = read and role=Doctor and resource=medical record and BTGstate = True then grant access" No problem here--it corresponds to the last user interaction in attached sequence diagram. 2. "If Action=SetBTG and .... then grant with obligation set BTGstate to True in StateDB." I guess it could work this way, but if we identify a "GlassManager" service, the user would request the GlassManager to break the glass, who in turn would make an authorization request, verify permission, and take the action, and return an appropriate message (perhaps including obligations) to the user. 3. "If Action=ResetBTG and .... then grant with obligation set BTGstate to False in StateDB" I did not show this interaction, but it would look like the illustrated interaction for "breakGlass". Now, more generally, to respond to [2], refer to the attached sequence diagram, which represents a rather purified view of the components and their interactions. Many variations on this are possible, but the variations I do not want to sanction with a standard are the ones that would have the PEP, PDP, or PIP doing things that degrade their functional independence or extend their specified behavior, or that would overload the XACML request/response mechanism with additional meanings. David's last formal proposal [3] has all of these risks, although subsequent discussion has mitigated some of them. One feature of that proposal that has not been discussed much is the initial BTG obligation (section 2.1). This would require the PDP not only to apply the policy to the original request (for data), but also to find and apply a policy to a hypothetical request to break the glass. I don't know of a policy feature to induce this behavior, nor any type of stanard request that could do this. The policy could return the state of the glass as an obligation attribute, but that is all it could do using standard features. Maybe if we can agree on the scenarios we want to support (using sequence diagrams for common understanding) we would have a better chance of identifying opportunities for standardization around BTG. Regards, --Paul [1] http://lists.oasis-open.org/archives/xacml/201104/msg00031.html [2] http://lists.oasis-open.org/archives/xacml/201104/msg00033.html [3] http://lists.oasis-open.org/archives/xacml/201102/msg00017.html btg-sequence.pdf

    Attachment(s)

    pdf
    btg-sequence.pdf   18 KB 1 version


  • 2.  Re: [xacml] BTG sequence diagram

    Posted 04-22-2011 23:26
    Hi Paul, First, let me say that the reason I am replying to these issues is not specifically to support David's proposal as submitted, but to try to help get an understanding of what the core issues really are and then the TC should be able to better decide what makes sense for next steps. Also, I think the BTG scenario represents a common use case, that the TC generally agrees is part of what XACML should be able to do with Policy definitions in conjunction w the surrounding components: PEP, CH, PIP, PAP, APPL, where these components are defined to have certain scopes of capabilitiess in the XACML spec that the PDP admins can expect to incorporate in the Policy defns. (For example: the PEP submits requests and processes responses, the CH can front-end the PDP and provide some features such as pre-processing PEP requests and preparing single-decision requests to submit as well as finding missing attributes during Policy evaluation , the PIP can provide these missing attributes (see the data flow diagram figure 1, section 3.1, particularly steps 5->10 that imply the capabilities in this and the prev bullet) the PAP can prepare and activate/deactivate policies the APPL provides the the resources that are being requested) With respect to David's proposal, I have refrained from getting into the details, which I have qualified in my earlier remarks, and particularly had avoided delving into the use of the Obligations to facilitate this process. So, let me flat out say: I think the Obligations are superfluous and do not have any place in the core BTG capability . There is nothing wrong with them being there, but, imo, they are unnecessary. That being said, let me quickly stride thru your sequence diagram, and call out what appear to me to be the important points. The diagram is in 3 parts, which we can call 1, 2, and 3. In part 1, the following occurs: The User submits a request to a WebApp for a Resource. The PEP in (in front of, whatever) the WebApp sends XACML request to PDP The PDP finds that it needs btgState to complete eval, so has CH get it from the PIP that gets it from GlassMgr PIP gets value from GlassMgr and returns btgState = false to PDP PDP finishes eval and returns Deny (with or without Advice, imo) In part 2, the following occurs: The User, having been denied, knows that it has a BTG priv, and so submits a request to the GlassMgr to activate the privilege. The PEP in front of GlassMgr asks the PDP if this User is authorized to activate his BTG priv. The PDP says yes, the User, according to Policy is authorized to perform this action (activate the User's BTG priv), and returns Permit. The GlassMgr then activates the User's BTG priv, setting btgState=true. The GlassMgr then returns notice to the User that the User's btg priv is active (again, imo, there is no need for any obligations) In part 3, the following occurs: The User reattempts the request in part 1 step 1. PEP sends req to PDP, same as part 1, step 2. PDP again finds it needt btgState and uses CH, same as part 1, step 3. PIP again gets value from GlassMgr, but this time returns btgState = true to PDP. PDP finishes eval and returns Permit (again, imo, no obligations are needed), and this time the WebAppl returns the Resource to the User. Based on the core description as I've described above, one can then add Obligations and Advice to help things along , but they are not needed, imo. I believe that presented this way, the scenario does not involve any of the risks you mentioned, and, I don't think it does anything out of the ordinary , except takes advantage of the built in XACML capabilities to call out for external attrs as described in the data flow diagram of section 3.1 of 3.0 core spec.       Thanks,       Rich On 4/22/2011 3:16 PM, Paul Tyson wrote: 1303499767.5905.30.camel@tristan type= cite > This is to respond to David Chadwick's notes [1] and [2] and to try to explain what I believe is the correct sequence of a BTG episode. In [1], David describes three evaluation scenarios: 1. If action = read and role=Doctor and resource=medical record and BTGstate = True then grant access No problem here--it corresponds to the last user interaction in attached sequence diagram. 2. If Action=SetBTG and .... then grant with obligation set BTGstate to True in StateDB. I guess it could work this way, but if we identify a GlassManager service, the user would request the GlassManager to break the glass, who in turn would make an authorization request, verify permission, and take the action, and return an appropriate message (perhaps including obligations) to the user. 3. If Action=ResetBTG and .... then grant with obligation set BTGstate to False in StateDB I did not show this interaction, but it would look like the illustrated interaction for breakGlass . Now, more generally, to respond to [2], refer to the attached sequence diagram, which represents a rather purified view of the components and their interactions. Many variations on this are possible, but the variations I do not want to sanction with a standard are the ones that would have the PEP, PDP, or PIP doing things that degrade their functional independence or extend their specified behavior, or that would overload the XACML request/response mechanism with additional meanings. David's last formal proposal [3] has all of these risks, although subsequent discussion has mitigated some of them. One feature of that proposal that has not been discussed much is the initial BTG obligation (section 2.1). This would require the PDP not only to apply the policy to the original request (for data), but also to find and apply a policy to a hypothetical request to break the glass. I don't know of a policy feature to induce this behavior, nor any type of stanard request that could do this. The policy could return the state of the glass as an obligation attribute, but that is all it could do using standard features. Maybe if we can agree on the scenarios we want to support (using sequence diagrams for common understanding) we would have a better chance of identifying opportunities for standardization around BTG. Regards, --Paul [1] http://lists.oasis-open.org/archives/xacml/201104/msg00031.html [2] http://lists.oasis-open.org/archives/xacml/201104/msg00033.html [3] http://lists.oasis-open.org/archives/xacml/201102/msg00017.html --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. Follow this link to all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php


  • 3.  Re: [xacml] BTG sequence diagram

    Posted 04-22-2011 23:32
    So Rich, in this scenario you are treating the BTG priv attribute as a Resource? If not, what does "permit" refer to? thanks b On Apr 22, 2011, at 4:25 PM, rich levinson wrote: > • The PEP in front of GlassMgr asks the PDP if this User is authorized to activate > his BTG priv. > • The PDP says yes, the User, according to Policy is authorized to perform this > action (activate the User's BTG priv), and returns Permit.


  • 4.  Re: [xacml] BTG sequence diagram

    Posted 04-23-2011 01:49
     > On Fri, 2011-04-22 at 16:32 -0700, Bill Parducci wrote: > So Rich, in this scenario you are treating the BTG priv attribute as a Resource? If not, what does "permit" refer to? > > thanks > > b > > On Apr 22, 2011, at 4:25 PM, rich levinson wrote: > > > €¢ The PEP in front of GlassMgr asks the PDP if this User is authorized to activate > > his BTG priv. > > €¢ The PDP says yes, the User, according to Policy is authorized to perform this > > action (activate the User's BTG priv), and returns Permit. > I had in mind a generic "BTG state", which I guess would be an environment attribute. The user invokes a method of the GlassManager like "breakGlass()". Upon finding that the user is authorized to execute this action, the GlassManager executes this method to set the environment attribute, btg-state, to "true". In an earlier email I asked for clarification on what, exactly, the glass protected: a person, a class of persons, a resource, a group of resources, or some combination of these? I guess generically you could have a boolean btg-state attribute for every action, resource, and subject (as well as an environment btg-state). Then the user would invoke a method like "breakGlass('Bart Simpson')" to unprotect Bart Simpson's records. The PIP would ask for the btg-state attribute pertaining to Bart's records. This is another area that needs to be clarified in David's BTG proposal. Regards, --Paul


  • 5.  Re: [xacml] BTG sequence diagram

    Posted 04-23-2011 06:09
    Hi Paul, I think we are basically in agreement at this point. I agree that there can be as many btg attrs as necessary. There is a similar notion of consent that users can apply to their own data, which is also fine grained in the sense that consent can be specific users can see the consenter's data. Both these concepts were demo'd in the RSA 2008 Interop, based on the requirements and recommended techniques provided by the VHA people: David S, Mike D, and Duane. We didn't have an actual GlassMgr, but it was implicitly there. Thanks, Rich On 4/22/2011 9:49 PM, Paul Tyson wrote: >> On Fri, 2011-04-22 at 16:32 -0700, Bill Parducci wrote: >> So Rich, in this scenario you are treating the BTG priv attribute as a Resource? If not, what does "permit" refer to? >> >> thanks >> >> b >> >> On Apr 22, 2011, at 4:25 PM, rich levinson wrote: >> >>> €¢ The PEP in front of GlassMgr asks the PDP if this User is authorized to activate >>> his BTG priv. >>> €¢ The PDP says yes, the User, according to Policy is authorized to perform this >>> action (activate the User's BTG priv), and returns Permit. > I had in mind a generic "BTG state", which I guess would be an > environment attribute. The user invokes a method of the GlassManager > like "breakGlass()". Upon finding that the user is authorized to > execute this action, the GlassManager executes this method to set the > environment attribute, btg-state, to "true". > > In an earlier email I asked for clarification on what, exactly, the > glass protected: a person, a class of persons, a resource, a group of > resources, or some combination of these? > > I guess generically you could have a boolean btg-state attribute for > every action, resource, and subject (as well as an environment > btg-state). Then the user would invoke a method like "breakGlass('Bart > Simpson')" to unprotect Bart Simpson's records. The PIP would ask for > the btg-state attribute pertaining to Bart's records. > > This is another area that needs to be clarified in David's BTG proposal. > > Regards, > --Paul > > >


  • 6.  RE: [xacml] BTG sequence diagram

    Posted 04-25-2011 13:43
    This discussion seems reasonable to me as far as it goes, however the BTG attribute is more than a privilege, it is in an environmental variable that tells the PDP which of a number of possible policy sets applies to the decision at hand.

    In XSPA SAML, this environmental attribute is always contained in the SAML assertion and is called the "Purpose of Use". The scenario would play out pretty much the same as Rich describes, however, on the deny, the user knows they have the ability to change the purpose of use to BTG and makes a conscious effort to do so.

    There is a business point here that users should not assert BTG (which in effect over rides "normal" policy) just because they want access. Abuse of this attribute is not allowed. This is inherent in asserting the extraordinary BTG POU, which will have the effect of triggering other security system events outside of the authorization system (e.g. enhanced audit, notification to system administrators, activation of a clock to limit the time the purpose of use is to allowed, etc).

    The establishment of the BTG policy set, may or may not cause privilege elevation, but in my opinion is not an essential element (e.g., you must still have the permission of "Medical Doctor" in the BTG Policy set).

    Regards, Mike Davis, CISSP
    Department of Veterans Affairs
    VHA Office of Health Information
    Security Architect
    760-632-0294




  • 7.  RE: [xacml] BTG sequence diagram

    Posted 04-25-2011 14:55
    "This discussion seems reasonable to me as far as it goes, however the BTG attribute is more than a privilege, it is in an environmental variable that tells the PDP which of a number of possible policy sets applies to the decision at hand."

    I would say it is a USER ASSERTION about the state of the environment.

    As such, it seems logical to treat it as one of a large class of "user attributes" for which the user is considered the attribute source, another example of which would be a user's assertion of an authorized purpose for requesting an info resource. What's the point of relying on the user's assertion for access control? Well, sometimes there is no alternative, and if the assertion is logged as part of the access transaction logging, the enforcement of appropriateness can be done ex-post. Ex-post enforcement is effective in many cases. The judgment as to whether a policy will allow user-asserted attributes would be based on part on consideration of whether ex-post enforcement would be effective.


    Martin



    Martin F. Smith
    Director, National Security Systems
    US Department of Homeland Security
    NAC 19-204-47
    (202) 447-3743 desk
    (202) 441-9731 mobile






  • 8.  RE: [xacml] BTG sequence diagram

    Posted 04-25-2011 15:40

    Because, in this case, the obligation approach does not align with the business need/policy. The simple fact that one gets a deny does not imply an obligation to automatically invoke a security bypass. Since the PDP is not a state machine, the change of state must be external, hence, the deny allows the user to reassess the situation and apply either additional privilege to the request or change the game by changing the policy set. There is another aspect of BTG, in that the user is typically required to assert acknowledgement to a set of conditions, including an understanding that BTG is exceptional access and that they are asserting this intentionally. This gets messy, since the obligation may need to be passed across boundaries to an external requestor (you are now making a demand that the foreign system have an interface with the requestor). It seems simpler to me, to just have a deny and leave it up to the user to figure out what they need to do.

    Furthermore, what would be totally acceptable in my mind, is for a technology, such as XACML, to attempt to mandate to the business side (regardless of what that is, healthcare, finance, manufacturing etc.) that they MUST include a business role/permission (such as BTG) in their information model in order to make XACML work. In fact, in healthcare (HL7 and ISO), there is currently no such standard role, instead the standard is for Purpose of Use defining a number of possible policy sets under different conditions, (e.g. normal treatment, administrator access, programmer access, research, marketing, etc.). OASIS has existing standards (XSPA SAML, XACML and WS-Trust) that have taken this approach and defined the environmental attribute in the assertion.



    Regards, Mike Davis, CISSP
    Department of Veterans Affairs
    VHA Office of Health Information
    Security Architect
    760-632-0294





  • 9.  Re: [xacml] BTG sequence diagram

    Posted 04-25-2011 16:35
    On Apr 25, 2011, at 8:39 AM, Davis, John M. wrote: > Because, in this case, the obligation approach does not align with the business need/policy. The simple fact that one gets a deny does not imply an obligation to automatically invoke a security bypass. Since the PDP is not a state machine, the change of state must be external, hence, the deny allows the user to reassess the situation and apply either additional privilege to the request or change the game by changing the policy set. I disagree on both counts. I do not see how the "business needs" are not met. I am not implying that the simple act of a Deny allows for access, rather that the conditions by which this determination is made is done within a single atomic action by the PDP. Subsequent requests (aka BTG Manager requests) are handled on the PEP in line with the terms of the Obligation that accompanied the original decision. Nothing has changed from the perspective of the requestor and as I mentioned in my previous note, the PEP is the best suited entity for performing things such as exception logging, notifications, etc. because only it can discriminate between the request for BTG and the Action be effected upon the Resource. > There is another aspect of BTG, in that the user is typically required to assert acknowledgement to a set of conditions, including an understanding that BTG is exceptional access and that they are asserting this intentionally. This gets messy, since the obligation may need to be passed across boundaries to an external requestor (you are now making a demand that the foreign system have an interface with the requestor). It seems simpler to me, to just have a deny and leave it up to the user to figure out what they need to do. This is no different than downstream systems needing to know the choreography of a follow-on request for BTG access. I argue that it is not any simpler because two coordinated requests must be made instead of one. So, unless you are suggesting that BTG access can be granted without a prior Deny, you now must spread state information across PEPs (or maintain "Layer 7 stickiness") to ensure cohesion of the access control transaction. Auditing in this scenario must also coordinate across multiple boundaries. > Furthermore, what would be totally acceptable in my mind, is for a technology, such as XACML, to attempt to mandate to the business side (regardless of what that is, healthcare, finance, manufacturing etc.) that they MUST include a business role/permission (such as BTG) in their information model in order to make XACML work. In fact, in healthcare (HL7 and ISO), there is currently no such standard role, instead the standard is for Purpose of Use defining a number of possible policy sets under different conditions, (e.g. normal treatment, administrator access, programmer access, research, marketing, etc.). OASIS has existing standards (XSPA SAML, XACML and WS-Trust) that have taken this approach and defined the environmental attribute in the assertion. Acceptable perhaps for a Profile, but definitely not as part the Core specification IMO. b


  • 10.  Re: [xacml] BTG sequence diagram

    Posted 04-27-2011 15:08
    Hi Mike and Bill On 25/04/2011 17:34, Bill Parducci wrote: > > On Apr 25, 2011, at 8:39 AM, Davis, John M. wrote: > >> Because, in this case, the obligation approach does not align with >> the business need/policy. The simple fact that one gets a deny >> does not imply an obligation to automatically invoke a security >> bypass. you forget that one of the purposes of the BTG profile is to differentiate between a deny response and a BTG response, the latter being in between a grant and a deny. It is important that the PDP be able to give the BTG response to the user, as it is unreasonable to expect users to know what all their privileges are. It is the security officer/policy administrator who decides this and encodes it into the policy. The user finds out his privileges from the responses obtained from the PDP (which might change on an hourly or daily basis, according to the policy). I therefore broadly agree with Bill's comments regards David Since the PDP is not a state machine, the change of state >> must be external, hence, the deny allows the user to reassess the >> situation and apply either additional privilege to the request or >> change the game by changing the policy set. > > I disagree on both counts. I do not see how the "business needs" are > not met. I am not implying that the simple act of a Deny allows for > access, rather that the conditions by which this determination is > made is done within a single atomic action by the PDP. Subsequent > requests (aka BTG Manager requests) are handled on the PEP in line > with the terms of the Obligation that accompanied the original > decision. Nothing has changed from the perspective of the requestor > and as I mentioned in my previous note, the PEP is the best suited > entity for performing things such as exception logging, > notifications, etc. because only it can discriminate between the > request for BTG and the Action be effected upon the Resource. > > >> There is another aspect of BTG, in that the user is typically >> required to assert acknowledgement to a set of conditions, >> including an understanding that BTG is exceptional access and that >> they are asserting this intentionally. This gets messy, since the >> obligation may need to be passed across boundaries to an external >> requestor (you are now making a demand that the foreign system have >> an interface with the requestor). It seems simpler to me, to just >> have a deny and leave it up to the user to figure out what they >> need to do. > > This is no different than downstream systems needing to know the > choreography of a follow-on request for BTG access. I argue that it > is not any simpler because two coordinated requests must be made > instead of one. So, unless you are suggesting that BTG access can be > granted without a prior Deny, you now must spread state information > across PEPs (or maintain "Layer 7 stickiness") to ensure cohesion of > the access control transaction. Auditing in this scenario must also > coordinate across multiple boundaries. > > >> Furthermore, what would be totally acceptable in my mind, is for a >> technology, such as XACML, to attempt to mandate to the business >> side (regardless of what that is, healthcare, finance, >> manufacturing etc.) that they MUST include a business >> role/permission (such as BTG) in their information model in order >> to make XACML work. In fact, in healthcare (HL7 and ISO), there >> is currently no such standard role, instead the standard is for >> Purpose of Use defining a number of possible policy sets under >> different conditions, (e.g. normal treatment, administrator access, >> programmer access, research, marketing, etc.). OASIS has existing >> standards (XSPA SAML, XACML and WS-Trust) that have taken this >> approach and defined the environmental attribute in the assertion. > > Acceptable perhaps for a Profile, but definitely not as part the Core > specification IMO. > > b > > > --------------------------------------------------------------------- > > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php > > > -- ***************************************************************** David W. Chadwick, BSc PhD Professor of Information Systems Security School of Computing, University of Kent, Canterbury, CT2 7NF Skype Name: davidwchadwick Tel: +44 1227 82 3221 Fax +44 1227 762 811 Mobile: +44 77 96 44 7184 Email: D.W.Chadwick@kent.ac.uk Home Page: http://www.cs.kent.ac.uk/people/staff/dwc8/index.html Research Web site: http://www.cs.kent.ac.uk/research/groups/iss/index.html Entrust key validation string: MLJ9-DU5T-HV8J PGP Key ID is 0xBC238DE5 *****************************************************************


  • 11.  RE: [xacml] BTG sequence diagram

    Posted 04-27-2011 16:30
    Sure. Agree that the user does not need to know all their privileges. They should, however, be able to know what they are doing and the purpose of use for it and be able to assert such in a request. Based upon that, their privileges as well as the entire decision context can be determined (locally or via attribute assertion) including any actions occurring outside of the XACML/authz concern. So they make a request under treatment-->deny. They decide that the situation is significant enough to override and reassert under BTG-->If their privileges are adequate under this pou then the decision can be made--Allow. Regards, Mike Davis, CISSP Department of Veterans Affairs VHA Office of Health Information Security Architect 760-632-0294


  • 12.  Re: [xacml] BTG sequence diagram

    Posted 04-28-2011 10:55
    On 27/04/2011 17:27, Davis, John M. wrote: > Sure. Agree that the user does not need to know all their privileges. > They should, however, be able to know what they are doing and the > purpose of use for it and be able to assert such in a request. Based > upon that, their privileges as well as the entire decision context can > be determined (locally or via attribute assertion) including any actions > occurring outside of the XACML/authz concern. > > So they make a request under treatment-->deny. > They decide that the situation is significant enough to override and > reassert under BTG--> and again they are denied. This is because not everyone is allowed to BTG. By returning a BTG response to the first request of those subjects who are privileged enough, we tell them that they are allowed to BTG is they deem it to be a serious enough situation. This is the model already employed by XACML. Why does the XACML PDP return Indeterminate with a request for more attributes? Why not let the subject simply guess that this is what is needed, and let the subject try a bunch of additional attributes just in case he can get access with some of them? I therefore suggest that returning a BTG response is entirely consistent with the current XACML model regards David If their privileges are adequate under this pou > then the decision can be made--Allow. > > Regards, Mike Davis, CISSP > Department of Veterans Affairs > VHA Office of Health Information > Security Architect > 760-632-0294 > > >


  • 13.  Re: [xacml] BTG sequence diagram

    Posted 04-28-2011 15:03
    On Apr 28, 2011, at 3:53 AM, David Chadwick wrote: > Why does the XACML PDP return Indeterminate with a request for more attributes? Why not let the subject simply guess that this is what is needed, and let the subject try a bunch of additional attributes just in case he can get access with some of them? > > I therefore suggest that returning a BTG response is entirely consistent with the current XACML model Agreed. I would also offer (again) that from a pure implementation standpoint a single, atomic transaction is a better solution. b


  • 14.  Re: [xacml] BTG sequence diagram

    Posted 04-25-2011 15:06
    On Apr 25, 2011, at 6:41 AM, Davis, John M. wrote: > This discussion seems reasonable to me as far as it goes, however the BTG attribute is more than a privilege, it is in an environmental variable that tells the PDP which of a number of possible policy sets applies to the decision at hand. I am still trying to figure out why is it that BTG must be defined by a separate set of Policies--using multiple request responses--and cannot be handled via a simple Obligation mechanism. If there is an Obligation in the Policy (on Deny) that stated "Must permit BTG access to group Doctors", this would compel the PEP to maintain state information on this request--the duration of which could be configurational or a component of the Obligation itself--that would be generated in the PDP based upon a simple attribute evaluation: is the requestor is a member of group Doctors? Should the request for BTG occur on the PEP within the TTL of the Obligation then the user would be granted access. The Obligation is "enforced" by the acceptance of BTG state information on the PEP. Non-synchronus Obligations are not a new concept :) This solution may not be as elegant, but "heaviness" on the PEP is something that I think is unavoidable because for the use cases I have seen, there has to be something on the PEP that can act on in the absence of a PDP in a real world scenario anyway. (We are talking about potential life & death situations here, yes?) [...] > There is a business point here that users should not assert BTG (which in effect over rides "normal" policy) just because they want access. Abuse of this attribute is not allowed. This is inherent in asserting the extraordinary BTG POU, which will have the effect of triggering other security system events outside of the authorization system (e.g. enhanced audit, notification to system administrators, activation of a clock to limit the time the purpose of use is to allowed, etc). All of which are also addressable via Obligation, which I would argue is best handled by the PEP since it is the only component that knows not only if the BTG request was made, but if it was effected. b


  • 15.  Re: [xacml] BTG sequence diagram

    Posted 04-27-2011 15:01
    Hi Paul you are correct in saying that the BTG state can be set for every subject, action, environment and resource attribute. You are also correct in saying that this is not enumerated in the profile that I wrote. However, we do treat it as an environmental attribute as you suggest. In our implementation we allow the policy writer to specify the dimensions of the BTG state by encoding the BTG attribute in a pre-defined way. But we thought that this would open a whole can of worms in the group, about how to encode or not encode attribute names, and it did not seem like an item for standardisation. We therefore thought it prudent to leave out of the profile how the state dimensions are specified and leave this up to applications to decide. But I am happy to add this as another aspect of the BTG topic for discussion if the group wants to regards David On 23/04/2011 02:49, Paul Tyson wrote: > >> On Fri, 2011-04-22 at 16:32 -0700, Bill Parducci wrote: >> So Rich, in this scenario you are treating the BTG priv attribute as a Resource? If not, what does "permit" refer to? >> >> thanks >> >> b >> >> On Apr 22, 2011, at 4:25 PM, rich levinson wrote: >> >>> €¢ The PEP in front of GlassMgr asks the PDP if this User is authorized to activate >>> his BTG priv. >>> €¢ The PDP says yes, the User, according to Policy is authorized to perform this >>> action (activate the User's BTG priv), and returns Permit. >> > > I had in mind a generic "BTG state", which I guess would be an > environment attribute. The user invokes a method of the GlassManager > like "breakGlass()". Upon finding that the user is authorized to > execute this action, the GlassManager executes this method to set the > environment attribute, btg-state, to "true". > > In an earlier email I asked for clarification on what, exactly, the > glass protected: a person, a class of persons, a resource, a group of > resources, or some combination of these? > > I guess generically you could have a boolean btg-state attribute for > every action, resource, and subject (as well as an environment > btg-state). Then the user would invoke a method like "breakGlass('Bart > Simpson')" to unprotect Bart Simpson's records. The PIP would ask for > the btg-state attribute pertaining to Bart's records. > > This is another area that needs to be clarified in David's BTG proposal. > > Regards, > --Paul > > > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php > > -- ***************************************************************** David W. Chadwick, BSc PhD Professor of Information Systems Security School of Computing, University of Kent, Canterbury, CT2 7NF Skype Name: davidwchadwick Tel: +44 1227 82 3221 Fax +44 1227 762 811 Mobile: +44 77 96 44 7184 Email: D.W.Chadwick@kent.ac.uk Home Page: http://www.cs.kent.ac.uk/people/staff/dwc8/index.html Research Web site: http://www.cs.kent.ac.uk/research/groups/iss/index.html Entrust key validation string: MLJ9-DU5T-HV8J PGP Key ID is 0xBC238DE5 *****************************************************************


  • 16.  Re: [xacml] BTG sequence diagram

    Posted 04-23-2011 05:58
    Hi Bill, Yes, I am assuming GlassMgr maintains the privilege state for users. i.e. the Policy will say whether the User has the privilege, and therefore can be authorized to enable the privilege. So, GlassMgr on the "front end" is a service that enables people to activate privileges that they would only use under special conditions. When a User wants to activate a privilege, the User goes to the GlassMgr appl and "activates it". This is the "breaking the glass". The implementation could happen in a variety of ways. One way is that at authentication, the User is given a bunch of "roles" or "attributes", one of which is a "break the glass entitlement". So, when user goes to access GlassMgr, the User has an "attribute" that the PEP can send to the PDP indicating the user is entitled to activate this privilege. Then on 3rd scenario, when PDP asks CH for btgState, the PIP will get it from GlassMgr and find that it is now "true". So, yes, one can regard the btgState as a "Resource" that is managed by GlassMgr, that Users can access if they have "btg entitlement", which, for example, they could get from an STS. But all these details are just concrete examples of how the abstract btgState attribute could be managed. Thanks, Rich On 4/22/2011 7:32 PM, Bill Parducci wrote: > So Rich, in this scenario you are treating the BTG priv attribute as a Resource? If not, what does "permit" refer to? > > thanks > > b > > On Apr 22, 2011, at 4:25 PM, rich levinson wrote: > >> • The PEP in front of GlassMgr asks the PDP if this User is authorized to activate >> his BTG priv. >> • The PDP says yes, the User, according to Policy is authorized to perform this >> action (activate the User's BTG priv), and returns Permit.


  • 17.  Re: [xacml] BTG sequence diagram

    Posted 04-27-2011 14:52
    Hi Rich Comments on your message flow below On 23/04/2011 00:25, rich levinson wrote: LARGE CUT HERE > So, let me flat out say: "I think the Obligations are superfluous and do > not have > any place in the core BTG capability". There is nothing "wrong" with > them being > there, but, imo, they are unnecessary. I disagree with this, see my previous message to Paul which shows why. If the policy contains an obligation to update the BTGstate when the breakGlass operation is granted, then no new user service (such as Glass Manager) is needed and the existing PEP, coupled with the standard Obligations Service, can handle both normal operations and breakGlass operations. > > That being said, let me quickly stride thru your sequence diagram, and > call out > what appear to me to be the important points. The diagram is in 3 parts, > which > we can call 1, 2, and 3. > > In part 1, the following occurs: > > 1. The User submits a request to a WebApp for a Resource. > 2. The PEP in (in front of, whatever) the WebApp sends XACML request > to PDP > 3. The PDP finds that it needs "btgState" to complete eval, so has CH > get it from > the PIP that gets it from GlassMgr > 4. PIP gets value from GlassMgr and returns btgState = false to PDP > 5. PDP finishes eval and returns Deny (with or without Advice, imo) It is important that the policy has 3 classes of user, namely: those who are granted access, those who are denied access, and those who have BTG access rights. The administrator must be able to say which users are in which class and be able to control this in the policy. Therefore message 5 above should return the BTG response and not a standard grant or deny response, otherwise you are still left with only 2 classes of user in the policy. > > In part 2, the following occurs: > > 1. The User, having been denied, The user, having received the BTG response knows..... We do not put the requirement on the user to know if he has BTG privileges or not, but rather on the policy writer to specify who has which privileges. This is the normal situation in writing policies isnt it? If users knew beforehand which resources they could access and which they could not, why would we need a policy? knows that it has a BTG priv, and so > submits > a request to the GlassMgr to activate the privilege. > 2. The PEP in front of GlassMgr asks the PDP if this User is > authorized to activate > his BTG priv. > 3. The PDP says yes, the User, according to Policy is authorized to > perform this > action (activate the User's BTG priv), and returns Permit. > 4. The GlassMgr then "activates" the User's BTG priv, setting > btgState=true. > 5. The GlassMgr then returns notice to the User that the User's btg > priv is active > (again, imo, there is no need for any obligations) > > In part 3, the following occurs: > > 1. The User reattempts the request in part 1 step 1. > 2. PEP sends req to PDP, same as part 1, step 2. > 3. PDP again finds it needt "btgState" and uses CH, same as part 1, > step 3. > 4. PIP again gets value from GlassMgr, but this time returns btgState > = true to PDP. > 5. PDP finishes eval and returns Permit (again, imo, no obligations No obligations are needed if you have a special Glass Manager, but if yoiu use a standard PEP then an obligation is needed to update the BTG state database regards David > are needed), and > this time the WebAppl returns the Resource to the User. > > Based on the "core description" as I've described above, one can then > add Obligations > and Advice to "help things along", but they are not needed, imo. > > I believe that presented this way, the scenario does not involve any of > the "risks" > you mentioned, and, I don't think it does anything "out of the > ordinary", except > takes advantage of the built in XACML capabilities to call out for > external attrs > as described in the data flow diagram of section 3.1 of 3.0 core spec. > > Thanks, > Rich > > > On 4/22/2011 3:16 PM, Paul Tyson wrote: >> This is to respond to David Chadwick's notes [1] and [2] and to try to >> explain what I believe is the correct sequence of a BTG episode. >> >> In [1], David describes three evaluation scenarios: >> >> 1. "If action = read and role=Doctor and resource=medical record and >> BTGstate = True then grant access" >> >> No problem here--it corresponds to the last user interaction in attached sequence diagram. >> >> 2. "If Action=SetBTG and .... then grant with obligation set BTGstate to >> True in StateDB." >> >> I guess it could work this way, but if we identify a "GlassManager" >> service, the user would request the GlassManager to break the glass, who >> in turn would make an authorization request, verify permission, and take >> the action, and return an appropriate message (perhaps including >> obligations) to the user. >> >> 3. "If Action=ResetBTG and .... then grant with obligation set BTGstate >> to False in StateDB" >> >> I did not show this interaction, but it would look like the illustrated >> interaction for "breakGlass". >> >> Now, more generally, to respond to [2], refer to the attached sequence >> diagram, which represents a rather purified view of the components and >> their interactions. Many variations on this are possible, but the >> variations I do not want to sanction with a standard are the ones that >> would have the PEP, PDP, or PIP doing things that degrade their >> functional independence or extend their specified behavior, or that >> would overload the XACML request/response mechanism with additional >> meanings. David's last formal proposal [3] has all of these risks, >> although subsequent discussion has mitigated some of them. >> >> One feature of that proposal that has not been discussed much is the >> initial BTG obligation (section 2.1). This would require the PDP not >> only to apply the policy to the original request (for data), but also to >> find and apply a policy to a hypothetical request to break the glass. I >> don't know of a policy feature to induce this behavior, nor any type of >> stanard request that could do this. The policy could return the state >> of the glass as an obligation attribute, but that is all it could do >> using standard features. >> >> Maybe if we can agree on the scenarios we want to support (using >> sequence diagrams for common understanding) we would have a better >> chance of identifying opportunities for standardization around BTG. >> >> Regards, >> --Paul >> >> [1] http://lists.oasis-open.org/archives/xacml/201104/msg00031.html >> [2] http://lists.oasis-open.org/archives/xacml/201104/msg00033.html >> [3] http://lists.oasis-open.org/archives/xacml/201102/msg00017.html >> >> >> --------------------------------------------------------------------- >> To unsubscribe from this mail list, you must leave the OASIS TC that >> generates this mail. Follow this link to all your TCs in OASIS at: >> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php -- ***************************************************************** David W. Chadwick, BSc PhD Professor of Information Systems Security School of Computing, University of Kent, Canterbury, CT2 7NF Skype Name: davidwchadwick Tel: +44 1227 82 3221 Fax +44 1227 762 811 Mobile: +44 77 96 44 7184 Email: D.W.Chadwick@kent.ac.uk Home Page: http://www.cs.kent.ac.uk/people/staff/dwc8/index.html Research Web site: http://www.cs.kent.ac.uk/research/groups/iss/index.html Entrust key validation string: MLJ9-DU5T-HV8J PGP Key ID is 0xBC238DE5 *****************************************************************


  • 18.  Re: [xacml] BTG sequence diagram

    Posted 04-27-2011 15:37
    Hi David, I will try to clarify in line, but do not think at this point there is any fundamental disagreement, except possibly the dependencies necessary to construct the functionality. Actually, to keep focus, I will just respond to your first comment, as after writing the response I think the rest of the points depend on whether there is agreement on the first point. Thanks, Rich On 4/27/2011 10:50 AM, David Chadwick wrote: > Hi Rich > > Comments on your message flow below > > On 23/04/2011 00:25, rich levinson wrote: > > LARGE CUT HERE > >> So, let me flat out say: "I think the Obligations are superfluous and do >> not have >> any place in the core BTG capability". There is nothing "wrong" with >> them being >> there, but, imo, they are unnecessary. > > I disagree with this, see my previous message to Paul which shows why. > If the policy contains an obligation to update the BTGstate when the > breakGlass operation is granted, then no new user service (such as > Glass Manager) is needed and the existing PEP, coupled with the > standard Obligations Service, can handle both normal operations and > breakGlass operations. <Rich> I think we are in agreement that there exists somewhere a managed entity that has custody of an Attribute that we are calling "BTGstate". i.e. the state exists, and in the context of BTG functionality, that state can be changed, which will affect the behavior of Policy evaluation. All the Policy needs is to know the value of this attribute called "BTGstate" and then the Policy can include logic depending if the value is true or false. My claim is that this is the "core functionality" of BTG. The mechanics of who or what actually causes the state to change is external to XACML Policy. The Policy just needs to know the value of the state, and that the state is provided by a certain Issuer, etc., all of which can be provided within a XACML Attribute. </Rich> > > >> >> That being said, let me quickly stride thru your sequence diagram, and >> call out >> what appear to me to be the important points. The diagram is in 3 parts, >> which >> we can call 1, 2, and 3. >> >> In part 1, the following occurs: >> >> 1. The User submits a request to a WebApp for a Resource. >> 2. The PEP in (in front of, whatever) the WebApp sends XACML request >> to PDP >> 3. The PDP finds that it needs "btgState" to complete eval, so has CH >> get it from >> the PIP that gets it from GlassMgr >> 4. PIP gets value from GlassMgr and returns btgState = false to PDP >> 5. PDP finishes eval and returns Deny (with or without Advice, imo) > > It is important that the policy has 3 classes of user, namely: those > who are granted access, those who are denied access, and those who > have BTG access rights. The administrator must be able to say which > users are in which class and be able to control this in the policy. > Therefore message 5 above should return the BTG response and not a > standard grant or deny response, otherwise you are still left with > only 2 classes of user in the policy. > >> >> In part 2, the following occurs: >> >> 1. The User, having been denied, > > The user, having received the BTG response knows..... > > We do not put the requirement on the user to know if he has BTG > privileges or not, but rather on the policy writer to specify who has > which privileges. This is the normal situation in writing policies > isnt it? If users knew beforehand which resources they could access > and which they could not, why would we need a policy? > > > knows that it has a BTG priv, and so >> submits >> a request to the GlassMgr to activate the privilege. >> 2. The PEP in front of GlassMgr asks the PDP if this User is >> authorized to activate >> his BTG priv. >> 3. The PDP says yes, the User, according to Policy is authorized to >> perform this >> action (activate the User's BTG priv), and returns Permit. >> 4. The GlassMgr then "activates" the User's BTG priv, setting >> btgState=true. >> 5. The GlassMgr then returns notice to the User that the User's btg >> priv is active >> (again, imo, there is no need for any obligations) >> >> In part 3, the following occurs: >> >> 1. The User reattempts the request in part 1 step 1. >> 2. PEP sends req to PDP, same as part 1, step 2. >> 3. PDP again finds it needt "btgState" and uses CH, same as part 1, >> step 3. >> 4. PIP again gets value from GlassMgr, but this time returns btgState >> = true to PDP. >> 5. PDP finishes eval and returns Permit (again, imo, no obligations > > No obligations are needed if you have a special Glass Manager, but if > yoiu use a standard PEP then an obligation is needed to update the BTG > state database > > regards > > David > >> are needed), and >> this time the WebAppl returns the Resource to the User. >> >> Based on the "core description" as I've described above, one can then >> add Obligations >> and Advice to "help things along", but they are not needed, imo. >> >> I believe that presented this way, the scenario does not involve any of >> the "risks" >> you mentioned, and, I don't think it does anything "out of the >> ordinary", except >> takes advantage of the built in XACML capabilities to call out for >> external attrs >> as described in the data flow diagram of section 3.1 of 3.0 core spec. >> >> Thanks, >> Rich >> >> >> On 4/22/2011 3:16 PM, Paul Tyson wrote: >>> This is to respond to David Chadwick's notes [1] and [2] and to try to >>> explain what I believe is the correct sequence of a BTG episode. >>> >>> In [1], David describes three evaluation scenarios: >>> >>> 1. "If action = read and role=Doctor and resource=medical record and >>> BTGstate = True then grant access" >>> >>> No problem here--it corresponds to the last user interaction in >>> attached sequence diagram. >>> >>> 2. "If Action=SetBTG and .... then grant with obligation set >>> BTGstate to >>> True in StateDB." >>> >>> I guess it could work this way, but if we identify a "GlassManager" >>> service, the user would request the GlassManager to break the glass, >>> who >>> in turn would make an authorization request, verify permission, and >>> take >>> the action, and return an appropriate message (perhaps including >>> obligations) to the user. >>> >>> 3. "If Action=ResetBTG and .... then grant with obligation set BTGstate >>> to False in StateDB" >>> >>> I did not show this interaction, but it would look like the illustrated >>> interaction for "breakGlass". >>> >>> Now, more generally, to respond to [2], refer to the attached sequence >>> diagram, which represents a rather purified view of the components and >>> their interactions. Many variations on this are possible, but the >>> variations I do not want to sanction with a standard are the ones that >>> would have the PEP, PDP, or PIP doing things that degrade their >>> functional independence or extend their specified behavior, or that >>> would overload the XACML request/response mechanism with additional >>> meanings. David's last formal proposal [3] has all of these risks, >>> although subsequent discussion has mitigated some of them. >>> >>> One feature of that proposal that has not been discussed much is the >>> initial BTG obligation (section 2.1). This would require the PDP not >>> only to apply the policy to the original request (for data), but >>> also to >>> find and apply a policy to a hypothetical request to break the >>> glass. I >>> don't know of a policy feature to induce this behavior, nor any type of >>> stanard request that could do this. The policy could return the state >>> of the glass as an obligation attribute, but that is all it could do >>> using standard features. >>> >>> Maybe if we can agree on the scenarios we want to support (using >>> sequence diagrams for common understanding) we would have a better >>> chance of identifying opportunities for standardization around BTG. >>> >>> Regards, >>> --Paul >>> >>> [1] http://lists.oasis-open.org/archives/xacml/201104/msg00031.html >>> [2] http://lists.oasis-open.org/archives/xacml/201104/msg00033.html >>> [3] http://lists.oasis-open.org/archives/xacml/201102/msg00017.html >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe from this mail list, you must leave the OASIS TC that >>> generates this mail. Follow this link to all your TCs in OASIS at: >>> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php >


  • 19.  Re: [xacml] BTG sequence diagram

    Posted 04-28-2011 10:59
    Hi Rich On 27/04/2011 16:36, rich levinson wrote: > Hi David, > > I will try to clarify in line, but do not think at this point there is any > fundamental disagreement, except possibly the dependencies necessary > to construct the functionality. > > Actually, to keep focus, I will just respond to your first comment, as > after > writing the response I think the rest of the points depend on whether > there is agreement on the first point. > > Thanks, > Rich > > > On 4/27/2011 10:50 AM, David Chadwick wrote: >> Hi Rich >> >> Comments on your message flow below >> >> On 23/04/2011 00:25, rich levinson wrote: >> >> LARGE CUT HERE >> >>> So, let me flat out say: "I think the Obligations are superfluous and do >>> not have >>> any place in the core BTG capability". There is nothing "wrong" with >>> them being >>> there, but, imo, they are unnecessary. >> >> I disagree with this, see my previous message to Paul which shows why. >> If the policy contains an obligation to update the BTGstate when the >> breakGlass operation is granted, then no new user service (such as >> Glass Manager) is needed and the existing PEP, coupled with the >> standard Obligations Service, can handle both normal operations and >> breakGlass operations. > <Rich> > I think we are in agreement that there exists somewhere a managed entity > that has > custody of an Attribute that we are calling "BTGstate". i.e. the state > exists, and in the > context of BTG functionality, that state can be changed, which will > affect the behavior > of Policy evaluation. Agreed > > All the Policy needs is to know Disagree. See my message to Mike. The policy also needs to know how to return a BTG response. The policy also should know when the state should be updated. the value of this attribute called > "BTGstate" and then > the Policy can include logic depending if the value is true or false. Also agreed > > My claim is that this is the "core functionality" of BTG. The mechanics > of who or what > actually causes the state to change is external to XACML Policy. As I pointed out in a previous message, something somewhere has to know this. You can either make it external to XACML, with a new kind of PEP (the glass manager) which requires apps/subjects to behave differently for different actions, or make it internal to XACML via an obligation which says when the state has to be updated. I prefer the latter since all the required components already exist. regards David The > Policy just needs > to know the value of the state, and that the state is provided by a > certain Issuer, etc., > all of which can be provided within a XACML Attribute. > </Rich> >> >> >>> >>> That being said, let me quickly stride thru your sequence diagram, and >>> call out >>> what appear to me to be the important points. The diagram is in 3 parts, >>> which >>> we can call 1, 2, and 3. >>> >>> In part 1, the following occurs: >>> >>> 1. The User submits a request to a WebApp for a Resource. >>> 2. The PEP in (in front of, whatever) the WebApp sends XACML request >>> to PDP >>> 3. The PDP finds that it needs "btgState" to complete eval, so has CH >>> get it from >>> the PIP that gets it from GlassMgr >>> 4. PIP gets value from GlassMgr and returns btgState = false to PDP >>> 5. PDP finishes eval and returns Deny (with or without Advice, imo) >> >> It is important that the policy has 3 classes of user, namely: those >> who are granted access, those who are denied access, and those who >> have BTG access rights. The administrator must be able to say which >> users are in which class and be able to control this in the policy. >> Therefore message 5 above should return the BTG response and not a >> standard grant or deny response, otherwise you are still left with >> only 2 classes of user in the policy. >> >>> >>> In part 2, the following occurs: >>> >>> 1. The User, having been denied, >> >> The user, having received the BTG response knows..... >> >> We do not put the requirement on the user to know if he has BTG >> privileges or not, but rather on the policy writer to specify who has >> which privileges. This is the normal situation in writing policies >> isnt it? If users knew beforehand which resources they could access >> and which they could not, why would we need a policy? >> >> >> knows that it has a BTG priv, and so >>> submits >>> a request to the GlassMgr to activate the privilege. >>> 2. The PEP in front of GlassMgr asks the PDP if this User is >>> authorized to activate >>> his BTG priv. >>> 3. The PDP says yes, the User, according to Policy is authorized to >>> perform this >>> action (activate the User's BTG priv), and returns Permit. >>> 4. The GlassMgr then "activates" the User's BTG priv, setting >>> btgState=true. >>> 5. The GlassMgr then returns notice to the User that the User's btg >>> priv is active >>> (again, imo, there is no need for any obligations) >>> >>> In part 3, the following occurs: >>> >>> 1. The User reattempts the request in part 1 step 1. >>> 2. PEP sends req to PDP, same as part 1, step 2. >>> 3. PDP again finds it needt "btgState" and uses CH, same as part 1, >>> step 3. >>> 4. PIP again gets value from GlassMgr, but this time returns btgState >>> = true to PDP. >>> 5. PDP finishes eval and returns Permit (again, imo, no obligations >> >> No obligations are needed if you have a special Glass Manager, but if >> yoiu use a standard PEP then an obligation is needed to update the BTG >> state database >> >> regards >> >> David >> >>> are needed), and >>> this time the WebAppl returns the Resource to the User. >>> >>> Based on the "core description" as I've described above, one can then >>> add Obligations >>> and Advice to "help things along", but they are not needed, imo. >>> >>> I believe that presented this way, the scenario does not involve any of >>> the "risks" >>> you mentioned, and, I don't think it does anything "out of the >>> ordinary", except >>> takes advantage of the built in XACML capabilities to call out for >>> external attrs >>> as described in the data flow diagram of section 3.1 of 3.0 core spec. >>> >>> Thanks, >>> Rich >>> >>> >>> On 4/22/2011 3:16 PM, Paul Tyson wrote: >>>> This is to respond to David Chadwick's notes [1] and [2] and to try to >>>> explain what I believe is the correct sequence of a BTG episode. >>>> >>>> In [1], David describes three evaluation scenarios: >>>> >>>> 1. "If action = read and role=Doctor and resource=medical record and >>>> BTGstate = True then grant access" >>>> >>>> No problem here--it corresponds to the last user interaction in >>>> attached sequence diagram. >>>> >>>> 2. "If Action=SetBTG and .... then grant with obligation set >>>> BTGstate to >>>> True in StateDB." >>>> >>>> I guess it could work this way, but if we identify a "GlassManager" >>>> service, the user would request the GlassManager to break the glass, >>>> who >>>> in turn would make an authorization request, verify permission, and >>>> take >>>> the action, and return an appropriate message (perhaps including >>>> obligations) to the user. >>>> >>>> 3. "If Action=ResetBTG and .... then grant with obligation set BTGstate >>>> to False in StateDB" >>>> >>>> I did not show this interaction, but it would look like the illustrated >>>> interaction for "breakGlass". >>>> >>>> Now, more generally, to respond to [2], refer to the attached sequence >>>> diagram, which represents a rather purified view of the components and >>>> their interactions. Many variations on this are possible, but the >>>> variations I do not want to sanction with a standard are the ones that >>>> would have the PEP, PDP, or PIP doing things that degrade their >>>> functional independence or extend their specified behavior, or that >>>> would overload the XACML request/response mechanism with additional >>>> meanings. David's last formal proposal [3] has all of these risks, >>>> although subsequent discussion has mitigated some of them. >>>> >>>> One feature of that proposal that has not been discussed much is the >>>> initial BTG obligation (section 2.1). This would require the PDP not >>>> only to apply the policy to the original request (for data), but >>>> also to >>>> find and apply a policy to a hypothetical request to break the glass. I >>>> don't know of a policy feature to induce this behavior, nor any type of >>>> stanard request that could do this. The policy could return the state >>>> of the glass as an obligation attribute, but that is all it could do >>>> using standard features. >>>> >>>> Maybe if we can agree on the scenarios we want to support (using >>>> sequence diagrams for common understanding) we would have a better >>>> chance of identifying opportunities for standardization around BTG. >>>> >>>> Regards, >>>> --Paul >>>> >>>> [1] http://lists.oasis-open.org/archives/xacml/201104/msg00031.html >>>> [2] http://lists.oasis-open.org/archives/xacml/201104/msg00033.html >>>> [3] http://lists.oasis-open.org/archives/xacml/201102/msg00017.html >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe from this mail list, you must leave the OASIS TC that >>>> generates this mail. Follow this link to all your TCs in OASIS at: >>>> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php >> > -- ***************************************************************** David W. Chadwick, BSc PhD Professor of Information Systems Security School of Computing, University of Kent, Canterbury, CT2 7NF Skype Name: davidwchadwick Tel: +44 1227 82 3221 Fax +44 1227 762 811 Mobile: +44 77 96 44 7184 Email: D.W.Chadwick@kent.ac.uk Home Page: http://www.cs.kent.ac.uk/people/staff/dwc8/index.html Research Web site: http://www.cs.kent.ac.uk/research/groups/iss/index.html Entrust key validation string: MLJ9-DU5T-HV8J PGP Key ID is 0xBC238DE5 *****************************************************************


  • 20.  Re: [xacml] BTG sequence diagram

    Posted 04-28-2011 13:22
    Hi David, Unfortunately I will not be able to attend the mtg today, but do want to continue the discussion on thread. I think that we agree on what to me is the major point about the state being captured in the BTGstate attribute, and that what remains is some discussion on the options as to where the knowledge resides as to what "should" be done when the circumstance arises that a user is denied and at the same time it is known by this entity with the knowledge, that this user has an option to break the glass, and under what circumstances the glass will be broken. At this point in the scenaio I think there are some different use case assumptions that we are making. Mike and I appear to be coming from the position, that a user, such as a doctor, finds him/herself in a position where there is a patient w an emergency, and the doctor is denied access for normal reasons, but the doctor also knows that he/she has the privilege to override this "normal denial" in the case of emergency. The doctor would then assert the privilege and the request would be resubmitted w the BTGstate = true. I accept that there may be an alternate perspective where rather than the above scenario, there is some scenario where the user with the override privilege needs to have the override simply done on their behalf w/o their knowing that it is even happening, or at least that they are passive in the process and may only have a notice given to them that this priv raising had been automatically invoked for them. I have not given the latter scenario a lot of thought before now, but from the discussion am beginning to sense that this is where the differences still lie as to what should be in this profile. Thanks, Rich On 4/28/2011 6:57 AM, David Chadwick wrote: > Hi Rich > > On 27/04/2011 16:36, rich levinson wrote: >> Hi David, >> >> I will try to clarify in line, but do not think at this point there >> is any >> fundamental disagreement, except possibly the dependencies necessary >> to construct the functionality. >> >> Actually, to keep focus, I will just respond to your first comment, as >> after >> writing the response I think the rest of the points depend on whether >> there is agreement on the first point. >> >> Thanks, >> Rich >> >> >> On 4/27/2011 10:50 AM, David Chadwick wrote: >>> Hi Rich >>> >>> Comments on your message flow below >>> >>> On 23/04/2011 00:25, rich levinson wrote: >>> >>> LARGE CUT HERE >>> >>>> So, let me flat out say: "I think the Obligations are superfluous >>>> and do >>>> not have >>>> any place in the core BTG capability". There is nothing "wrong" with >>>> them being >>>> there, but, imo, they are unnecessary. >>> >>> I disagree with this, see my previous message to Paul which shows why. >>> If the policy contains an obligation to update the BTGstate when the >>> breakGlass operation is granted, then no new user service (such as >>> Glass Manager) is needed and the existing PEP, coupled with the >>> standard Obligations Service, can handle both normal operations and >>> breakGlass operations. >> <Rich> >> I think we are in agreement that there exists somewhere a managed entity >> that has >> custody of an Attribute that we are calling "BTGstate". i.e. the state >> exists, and in the >> context of BTG functionality, that state can be changed, which will >> affect the behavior >> of Policy evaluation. > > Agreed > >> >> All the Policy needs is to know > > Disagree. See my message to Mike. The policy also needs to know how to > return a BTG response. The policy also should know when the state > should be updated. > > the value of this attribute called >> "BTGstate" and then >> the Policy can include logic depending if the value is true or false. > > Also agreed > >> >> My claim is that this is the "core functionality" of BTG. The mechanics >> of who or what >> actually causes the state to change is external to XACML Policy. > > As I pointed out in a previous message, something somewhere has to > know this. You can either make it external to XACML, with a new kind > of PEP (the glass manager) which requires apps/subjects to behave > differently for different actions, or make it internal to XACML via an > obligation which says when the state has to be updated. I prefer the > latter since all the required components already exist. > > regards > > David > > > > The >> Policy just needs >> to know the value of the state, and that the state is provided by a >> certain Issuer, etc., >> all of which can be provided within a XACML Attribute. >> </Rich> >>> >>> >>>> >>>> That being said, let me quickly stride thru your sequence diagram, and >>>> call out >>>> what appear to me to be the important points. The diagram is in 3 >>>> parts, >>>> which >>>> we can call 1, 2, and 3. >>>> >>>> In part 1, the following occurs: >>>> >>>> 1. The User submits a request to a WebApp for a Resource. >>>> 2. The PEP in (in front of, whatever) the WebApp sends XACML request >>>> to PDP >>>> 3. The PDP finds that it needs "btgState" to complete eval, so has CH >>>> get it from >>>> the PIP that gets it from GlassMgr >>>> 4. PIP gets value from GlassMgr and returns btgState = false to PDP >>>> 5. PDP finishes eval and returns Deny (with or without Advice, imo) >>> >>> It is important that the policy has 3 classes of user, namely: those >>> who are granted access, those who are denied access, and those who >>> have BTG access rights. The administrator must be able to say which >>> users are in which class and be able to control this in the policy. >>> Therefore message 5 above should return the BTG response and not a >>> standard grant or deny response, otherwise you are still left with >>> only 2 classes of user in the policy. >>> >>>> >>>> In part 2, the following occurs: >>>> >>>> 1. The User, having been denied, >>> >>> The user, having received the BTG response knows..... >>> >>> We do not put the requirement on the user to know if he has BTG >>> privileges or not, but rather on the policy writer to specify who has >>> which privileges. This is the normal situation in writing policies >>> isnt it? If users knew beforehand which resources they could access >>> and which they could not, why would we need a policy? >>> >>> >>> knows that it has a BTG priv, and so >>>> submits >>>> a request to the GlassMgr to activate the privilege. >>>> 2. The PEP in front of GlassMgr asks the PDP if this User is >>>> authorized to activate >>>> his BTG priv. >>>> 3. The PDP says yes, the User, according to Policy is authorized to >>>> perform this >>>> action (activate the User's BTG priv), and returns Permit. >>>> 4. The GlassMgr then "activates" the User's BTG priv, setting >>>> btgState=true. >>>> 5. The GlassMgr then returns notice to the User that the User's btg >>>> priv is active >>>> (again, imo, there is no need for any obligations) >>>> >>>> In part 3, the following occurs: >>>> >>>> 1. The User reattempts the request in part 1 step 1. >>>> 2. PEP sends req to PDP, same as part 1, step 2. >>>> 3. PDP again finds it needt "btgState" and uses CH, same as part 1, >>>> step 3. >>>> 4. PIP again gets value from GlassMgr, but this time returns btgState >>>> = true to PDP. >>>> 5. PDP finishes eval and returns Permit (again, imo, no obligations >>> >>> No obligations are needed if you have a special Glass Manager, but if >>> yoiu use a standard PEP then an obligation is needed to update the BTG >>> state database >>> >>> regards >>> >>> David >>> >>>> are needed), and >>>> this time the WebAppl returns the Resource to the User. >>>> >>>> Based on the "core description" as I've described above, one can then >>>> add Obligations >>>> and Advice to "help things along", but they are not needed, imo. >>>> >>>> I believe that presented this way, the scenario does not involve >>>> any of >>>> the "risks" >>>> you mentioned, and, I don't think it does anything "out of the >>>> ordinary", except >>>> takes advantage of the built in XACML capabilities to call out for >>>> external attrs >>>> as described in the data flow diagram of section 3.1 of 3.0 core spec. >>>> >>>> Thanks, >>>> Rich >>>> >>>> >>>> On 4/22/2011 3:16 PM, Paul Tyson wrote: >>>>> This is to respond to David Chadwick's notes [1] and [2] and to >>>>> try to >>>>> explain what I believe is the correct sequence of a BTG episode. >>>>> >>>>> In [1], David describes three evaluation scenarios: >>>>> >>>>> 1. "If action = read and role=Doctor and resource=medical record and >>>>> BTGstate = True then grant access" >>>>> >>>>> No problem here--it corresponds to the last user interaction in >>>>> attached sequence diagram. >>>>> >>>>> 2. "If Action=SetBTG and .... then grant with obligation set >>>>> BTGstate to >>>>> True in StateDB." >>>>> >>>>> I guess it could work this way, but if we identify a "GlassManager" >>>>> service, the user would request the GlassManager to break the glass, >>>>> who >>>>> in turn would make an authorization request, verify permission, and >>>>> take >>>>> the action, and return an appropriate message (perhaps including >>>>> obligations) to the user. >>>>> >>>>> 3. "If Action=ResetBTG and .... then grant with obligation set >>>>> BTGstate >>>>> to False in StateDB" >>>>> >>>>> I did not show this interaction, but it would look like the >>>>> illustrated >>>>> interaction for "breakGlass". >>>>> >>>>> Now, more generally, to respond to [2], refer to the attached >>>>> sequence >>>>> diagram, which represents a rather purified view of the components >>>>> and >>>>> their interactions. Many variations on this are possible, but the >>>>> variations I do not want to sanction with a standard are the ones >>>>> that >>>>> would have the PEP, PDP, or PIP doing things that degrade their >>>>> functional independence or extend their specified behavior, or that >>>>> would overload the XACML request/response mechanism with additional >>>>> meanings. David's last formal proposal [3] has all of these risks, >>>>> although subsequent discussion has mitigated some of them. >>>>> >>>>> One feature of that proposal that has not been discussed much is the >>>>> initial BTG obligation (section 2.1). This would require the PDP not >>>>> only to apply the policy to the original request (for data), but >>>>> also to >>>>> find and apply a policy to a hypothetical request to break the >>>>> glass. I >>>>> don't know of a policy feature to induce this behavior, nor any >>>>> type of >>>>> stanard request that could do this. The policy could return the state >>>>> of the glass as an obligation attribute, but that is all it could do >>>>> using standard features. >>>>> >>>>> Maybe if we can agree on the scenarios we want to support (using >>>>> sequence diagrams for common understanding) we would have a better >>>>> chance of identifying opportunities for standardization around BTG. >>>>> >>>>> Regards, >>>>> --Paul >>>>> >>>>> [1] http://lists.oasis-open.org/archives/xacml/201104/msg00031.html >>>>> [2] http://lists.oasis-open.org/archives/xacml/201104/msg00033.html >>>>> [3] http://lists.oasis-open.org/archives/xacml/201102/msg00017.html >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe from this mail list, you must leave the OASIS TC that >>>>> generates this mail. Follow this link to all your TCs in OASIS at: >>>>> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php >>>>> >>> >> >


  • 21.  Re: [xacml] BTG sequence diagram

    Posted 04-27-2011 14:07
    Hi Paul thankyou for your sequence diagrams. They are very helpful, and similar to what I had in mind. If you a) turn your Glass Manager into the BTG State Handler, b) add an Obligation Service to the web app (PEP) as in standard XACML, and c) allow the web app to handle the breakGlass operation, then if the PDP returns an obligation with a grant to the breakGlass request, the web app can call the Obligation Handler to update the state in the BTG State Handler. Then our two diagrams would have the same functionality. In other words, you are replacing an obligation to update the BTG state, with a request to the Glass Manager instead of to the web app. Since the former knows that on grant it must update the state then no obligation is needed. The web app on the other hand knows nothing about updating the state, so that is left to the Obligations Service (and the policy rule). Since the application developer must develop both the Web App and the Glass Manager, and say what policies are needed, it would be his choice which architecture to use. Neither of the above designs "degrade their functional independence or extend their specified behavior" since the web app is behaving like a standard PEP. Your design on the other hand requires special operation handling since the user or app need to know to send breakGlass operations to a different PEP than the other operations. My design requires no such special operation handling. You also say "One feature of that proposal that has not been discussed much is the initial BTG obligation (section 2.1).". In fact this requires no special behaviour by the PDP once we have an agreed BTG return code. The rule would simply be "If action = read and role=Doctor and resource=medical record and BTGstate = False then return code = BTG" One of the things I want the group to standardise is how the BTG return code is constructed. Various options have been discussed, and using a Deny and BTG obligation is just one of them. I dont really mind how the return is signalled. The important thing is that it is standardised in a profile so that implementers know how to do it. regards David On 22/04/2011 20:16, Paul Tyson wrote: > This is to respond to David Chadwick's notes [1] and [2] and to try to > explain what I believe is the correct sequence of a BTG episode. > > In [1], David describes three evaluation scenarios: > > 1. "If action = read and role=Doctor and resource=medical record and > BTGstate = True then grant access" > > No problem here--it corresponds to the last user interaction in attached sequence diagram. > > 2. "If Action=SetBTG and .... then grant with obligation set BTGstate to > True in StateDB." > > I guess it could work this way, but if we identify a "GlassManager" > service, the user would request the GlassManager to break the glass, who > in turn would make an authorization request, verify permission, and take > the action, and return an appropriate message (perhaps including > obligations) to the user. > > 3. "If Action=ResetBTG and .... then grant with obligation set BTGstate > to False in StateDB" > > I did not show this interaction, but it would look like the illustrated > interaction for "breakGlass". > > Now, more generally, to respond to [2], refer to the attached sequence > diagram, which represents a rather purified view of the components and > their interactions. Many variations on this are possible, but the > variations I do not want to sanction with a standard are the ones that > would have the PEP, PDP, or PIP doing things that degrade their > functional independence or extend their specified behavior, or that > would overload the XACML request/response mechanism with additional > meanings. David's last formal proposal [3] has all of these risks, > although subsequent discussion has mitigated some of them. > > One feature of that proposal that has not been discussed much is the > initial BTG obligation (section 2.1). This would require the PDP not > only to apply the policy to the original request (for data), but also to > find and apply a policy to a hypothetical request to break the glass. I > don't know of a policy feature to induce this behavior, nor any type of > stanard request that could do this. The policy could return the state > of the glass as an obligation attribute, but that is all it could do > using standard features. > > Maybe if we can agree on the scenarios we want to support (using > sequence diagrams for common understanding) we would have a better > chance of identifying opportunities for standardization around BTG. > > Regards, > --Paul > > [1] http://lists.oasis-open.org/archives/xacml/201104/msg00031.html > [2] http://lists.oasis-open.org/archives/xacml/201104/msg00033.html > [3] http://lists.oasis-open.org/archives/xacml/201102/msg00017.html > > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php -- ***************************************************************** David W. Chadwick, BSc PhD Professor of Information Systems Security School of Computing, University of Kent, Canterbury, CT2 7NF Skype Name: davidwchadwick Tel: +44 1227 82 3221 Fax +44 1227 762 811 Mobile: +44 77 96 44 7184 Email: D.W.Chadwick@kent.ac.uk Home Page: http://www.cs.kent.ac.uk/people/staff/dwc8/index.html Research Web site: http://www.cs.kent.ac.uk/research/groups/iss/index.html Entrust key validation string: MLJ9-DU5T-HV8J PGP Key ID is 0xBC238DE5 *****************************************************************