Department of Computer Sciences
IEEE POLICY 2007
XACML Function Annotations Prathima Rao Dan Lin Elisa Bertino - - PowerPoint PPT Presentation
Department of Computer Sciences XACML Function Annotations Prathima Rao Dan Lin Elisa Bertino IEEE POLICY 2007 Department of Computer Sciences XACML OASIS standard for specifying access control policies in enterprise systems. XML
Department of Computer Sciences
IEEE POLICY 2007
Department of Computer Sciences
IEEE POLICY 2007
– Relation between sets of permitted(denied) requests of policies.
– conflict detection, dominance check, coverage check etc.
Department of Computer Sciences
IEEE POLICY 2007
<?xml version=“1.0” encoding=“UTF-8”?> <Policy PolicyId=“Bill-Policy” RuleCombiningAlgId=“permit-overrides”> <Rule RuleId=“R1” Effect=“Permit”> <Condition> <Apply FunctionId=“xacml:1.0:function:string-at-least-one-member-of”> <SubjectAttributeDesignator AttributeId=“E-Mail” Datatype=“#string”/> <Apply FunctionId=“xacml:1.0:function:string-bag”> <AttributeValue Datatype=“#string”> .gov </AttributeValue> <AttributeValue Datatype=“#string”> .edu </AttributeValue> </Apply> </Apply> </Condition></Rule></Policy>
E-Mail == .gov || E-Mail == .edu
Department of Computer Sciences
IEEE POLICY 2007
attributes. – Not straightforward to abstract these functions into boolean expressions. – Need to know the behavioral semantics of these functions. – Standard XACML functions
– User-defined XACML functions
Need for a technique to explicitly convey the function semantics.
Department of Computer Sciences
IEEE POLICY 2007
– AnnotationId attribute ~ FunctionId
– Denotes function parameter – Datatype and Value attributes
– Unary operators -, ~ ..etc.
– Binary operators including arithmetic (+, -, %, ..), logical (||, &), set (intersect, union, belongsto..).
– Term with one operand
– Term with two operands
– Boolean formula <Annotation AnnotationId = “string-at-least-one-member-of”> <Bi-Term> <Operand Datatype=“#string- bag” value = “&Param_1” /> <Bi-Operator> belongsto </Bi- Operator> <Operand Datatype=“#string- bag” value = “&Param_2” /> </Bi-Term> </Annotation>
Department of Computer Sciences
IEEE POLICY 2007
ANNOTATION VERIFIER ANNOTATION INTERPRETER
XACML POLICIES
P1 P2 Pn B1 B2 Bn
BOOLEAN FORMULAE ANNOTATED FUNCTION REPOSITORY EXTERNAL XACML POLICY ANALYSIS TOOL ANNOTATION MODULE
FORMAT SPECIFICATION
Department of Computer Sciences
IEEE POLICY 2007
<Annotation AnnotationId = “string-at-least-one-member-of”> <Bi-Term> <Operand Datatype=“#string- bag” value = “&Param_1” /> <Bi-Operator> belongsto </Bi- Operator> <Operand Datatype=“#string- bag” value = “&Param_2” /> </Bi-Term> </Annotation>
ANNOTATION REPOSITORY
<?xml version=“1.0” encoding=“UTF-8”?> <Policy PolicyId=“Bill-Policy” RuleCombiningAlgId=“permit-overrides”> <Rule RuleId=“R1” Effect=“Permit”> <Condition> <Apply FunctionId=“xacml:1.0:function:string- at-least-one-member-of”> <SubjectAttributeDesignator AttributeId=“E-Mail” Datatype=“#string”/> <Apply FunctionId=“xacml:1.0:function:string-bag”> <AttributeValue Datatype=“#string”> .gov </AttributeValue> <AttributeValue Datatype=“#string”> .edu </AttributeValue> </Apply> </Apply> </Condition></Rule></Policy>
INPUT XACML POLICY
<Annotation AnnotationId = “string-at-least-one-member-of”> <Bi-Term> <Operand Datatype=“#string- bag” value = {“E-Mail”} /> <Bi-Operator> belongsto </Bi- Operator> <Operand Datatype=“#string- bag” value = {“.gov”, “.edu”} /> </Bi-Term> </Annotation>
<Boolean-Form> E-Mail == .gov || E-Mail == .edu </Boolean-Form>
Department of Computer Sciences
IEEE POLICY 2007
Department of Computer Sciences
IEEE POLICY 2007
Department of Computer Sciences
IEEE POLICY 2007
Department of Computer Sciences
IEEE POLICY 2007