JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven...

18
JSON-encoded ABAC (XACML) policies Steven Davy, Bernard Butler, Leigh Griffin, Brendan Jennings FAME project Waterford Institute of Technology Presentation to OASIS XACML TC concerning JSON-encoded XACML policies, 2013-05-30

Transcript of JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven...

Page 1: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

JSON-encoded ABAC(XACML) policiesSteven Davy, Bernard Butler, Leigh Griffin,Brendan Jennings

FAME projectWaterford Institute of Technology

Presentation to OASIS XACML TC concerningJSON-encoded XACML policies, 2013-05-30

Page 2: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Outline

1. IntroductionMotivationResponse to challengeOur contribution

2. EvaluationSetupResults

3. Discussion and Conclusions

Page 3: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Architecture outline

PEP

context

handler

4. request

notification

PIP

6. attribute

query

11. response

context

1. policy

8. attribute

environment

resource

subjects

7b. environment

attributes

PAP

obligations

service13. obligations

PDP

access

requester2. access request

9. resource

content

3. request 12. response

7c. resource

attributes

7a. subject

attributes

5. attribute

queries

10. attributes

Source: XACML 2.0 specification

Page 4: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Problems with XACML’s XML encoding

Policies• Verbose

– difficult to edit manually– communication and processing overhead

• Not “executable”– Harder to build user-friendly tooling c.f. Java IDEs– PDP has more work to do: functions, combination algorithms, . . .

Requests (and responses)• Modern web services use “lighter” request/response formats• Potential performance bottleneck - format conversion

Page 5: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Industry response

Policies• Improved policy authoring tools (e.g., Quest One APS, Cisco

EPM)• Transforming simpler language to XACML (e.g., ALFA from

Axiomatics)

RequestsOASIS XACML 3.0 JSON requests and responses!

Page 6: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Outstanding problems: now

Policies• Greater complexity of policy authoring toolchain• Continued limited support for policy analysis• PDP still has to handle multiple concerns• Lost opportunity to apply modern principles

Requests• OASIS activity has great potential to reduce impedance

mismatch with clients• Potential complexity if encoding for policies and for requests differ

Page 7: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Our contribution: language

JSON policies and “context”• Developed independently of OASIS XACML TC• Developed analog of XACML 2.0: JSONPLa

• Subject, Resource, Action, Environment attributes• Rules and rule/policy combination• 4-valued decisions: Permit, Deny, Indeterminate, Not Applicable• JSONPL currently lacks

– Obligations– XACML 3.0 new features (delegation, etc.)– Formal “schema”

aJSON Privilege Language

Page 8: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Language features and tools

Policy editing• Structure of policy is identical to XACML 2.0

– keywords and much of the syntax– hierarchies– relationships (grouping)

• Language features– (nested) associated arrays (hashes) and enumerated arrays– High-level keys: XACML 2.0 elements (Subject, Rule, etc.)– Low-level keys: Specific subject attributes, etc.

• Remove type declarations (string, number, date only)• Remove namespace handling• Use text editor; many are JSON-aware (well-formed)

Page 9: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Example JSONPL policy (fragment)" Po l i cy " : {

" i d " : " RPSl is t . 7 . 0 . 1 " ," t a r g e t " : {

" sub jec ts " : {" sub jec t " : {

" r o l e " : " admin "}

} ," resources " : {

" resource " : {" isPending " : " f a l s e "

}} ," ac t i ons " : {

" ac t i on " : {" ac t ion−type " : " w r i t e "

}}

} ," r u l e " : {

" i d " : " RPSl is t . 7 . 0 . 1 . r . 1 " ," e f f e c t " : " permi t "

}}

Overall XACML policy set: 420Kb (311Kb).Overall JSONPL policy set: 70Kb (17Kb).

Page 10: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Example JSONPL request (manually-generated){

" sub jec t " : {" category " : " access−sub jec t " ,

" r o l e " : " pc−cha i r "} ," resource " : {

" isPending " : " f a l s e " ," resource−i d " : "DEFAULT RESOURCE"

} ," ac t i on " : {

" ac t ion−type " : " w r i t e "}

}

Size comparison• XACML request: 872b (842b).• JSONPL request: 211b (158b).

Page 11: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Our contribution: prototype

Node.js, JavaScript, redis• Node.js: server side JavaScript framework: new wave of scalable

web services• JavaScript: Reduced friction—JSONPL is based on JavaScript

syntax• redis: NoSQL, highly performant, key-value store—very fast

lookup by key• Present components: PDP, PEP, PRP

– Prototype code!!!– Limited scope—see exclusions above– Limited robustness—edge cases, invalid input, etc.

Page 12: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Rationale for design decisions

Trends in web service development and deployment• Traditional: Java/.NET, XML, SOAP• Newer: Java/Scala/JavaScript/. . . , JSON, REST• Growth of functional and domain-specific languages

Analysis of requirements• Less verbose, but just as expressive• (Semi-)executable (in JavaScript-based PDP)• Low friction (from client request to server policy and back)• Better performance (described in POLICY 2012 paper)

Page 13: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Setup

Policies and Requests• CONTINUE-A policy seta (60 policies approx)• Example requests (200 requests approx)• Verification: Same decisions as SunXACML PDP

XACML→ JSONPL conversion: done manually by LeighFor comparison: automated XML-to-JSON

aDistributed with Xengine PDP

PDP, PRP, PEP• PDP: Match JSON elements, lookup rule value, combine as

necessary• PEP: very light, forwards requests and responses• PRP: thin wrapper for redis policy store

Page 14: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Performance experiments

STACS (Scalability Testbed for Access Control Systems)• Factorial experiments: server, PDP, conversion_type,. . .• Run tests, collect service times, etc.• Analyze, compare and visualize results

Page 15: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Summary of Results

JSONPL• ABAC with XACML “metamodel” and JSON encoding: proof of

concept• Reduced verbosity without reducing expressiveness• Minimal friction (and even less with JavaScript-based PDP)

Prototype• JavaScript PEP, PDP, PRP with JSON Privilege Language: proof

of concept• Simplicity of JavaScript-based PDP with JavaScript-based

policies and context• Performance and resource usage: dramatic improvements over

SunXACML PDP• Quantified improvements: conciseness� language choice

Page 16: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Performance improvements

seconds

de

nsity (

sca

led

so

th

at

ea

ch

his

tog

ram

are

a =

1)

0.00000 0.00015 0.00030 0.00045 0.00060 0.00075

03

00

00

60

00

09

00

00

12

00

00

15

00

00

inisherk−njsr bear−njsr inisherk−SX bear−SX

• SX is SunXACML PDP, njsr is the Node.js-redis prototype PDP.

• bear and inisherk are server instances.

Page 17: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Discussion

Strengths and weaknesses• Results are very encouraging, but need to . . .

– consider larger/more complex policy sets– policy editor/transformation tools– reference implementation, like SunXACML– consider migration path for existing XACML users and vendors– encourage STANDARDS and INDUSTRY ADOPTION!

Page 18: JSON-encoded ABAC (XACML) policies - OASIS · JSON-encoded ABAC (XACML) policies Steven Davy,Bernard Butler,Leigh Griffin, Brendan Jennings FAMEproject Waterford Institute of Technology

Conclusions

Summary• Presentation triggered by discussion on xacml-users list• We welcome the opportunity to develop this further

Selected bibliographyPOLICY 2012 Griffin, L.; Butler, B.; Leastar, E.; Jennings, B. and Botvich,

D, “On the Performance of Access Control Policy Evaluation”,in IEEE International Symposium on Policies for DistributedSystems and Networks, 2012, pp. 25-32.http://dx.doi.org/10.1109/POLICY.2012.15

JSONPL 2012 L. Griffin, “JSONPL repository”, July 2012.https://github.com/lgriffin/JSONPL

Thanks for your attention!