62
Access Control Models Lionel Montrieux <[email protected]>

Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Access Control Models

Lionel Montrieux <[email protected]>

Page 2: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Definitions and ScopingWhat is access control, anyway?

Page 3: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

User, Subject

The subject is most often assumed to be a human. A non-person entity (NPE), such as an autonomous service or application could also fill the role of the subject. In general, every operation performed by a computer must be done on behalf of some person or organization (in the case of an NPE) with the authority to perform the operation. The term subject is used to denote a human or NPE requesting access to an object. [NIST-ABAC]

Page 4: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

User != SubjectDon’t expect standards to

use these terms consistently

Page 5: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Authentication

Authentication is the act of verifying that the subject has been authorized to use the presented identifier by a trusted identity provider organization. [NIST-ABAC]

Page 6: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Authorisation

Authorization is the decision to permit or deny a subject access to system objects (network, data, application, service, etc.) [NIST-ABAC]

Page 7: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

What is Access Control?

• Authentication + Authorisation?

Page 8: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

What is Access Control?

• Authentication + Authorisation? • Authorisation only?

Page 9: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

What is Access Control?

• Authentication + Authorisation? • Authorisation only? • Identification + authentication +

authorisation + access decision?

Page 10: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

What is Access Control?

• Authentication + Authorisation? (RBAC) • Authorisation only? (ABAC - NIST) • Identification + authentication +

authorisation + access decision? (HP, industry)

Page 11: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Access Control Mechanism

The logical component that serves to receive the access request from the subject, to decide, and to enforce the access

decision. [NIST-ABAC]

Page 12: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Things I will not talk about

• Policy evaluation • Delegation • Federated services • Authentication • Performance • Identity Providers • PKI • Trust issues and management • etc, etc

Page 13: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Notable ModelsSecurity researchers like to come up with access control

models a bit too much

Page 14: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Formal Models

Surely, there must be a single, well-understood, clearly formalised model for each major authorisation model, right?

Page 15: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Well, no.

Page 16: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

• XACML is full of errors • RBAC too, but at least it’s easier to formalise [Huynh2014]

Page 17: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Timeline

• 1960’s - 1970’s: multi-user systems

Page 18: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Timeline

• 1960’s - 1970’s: multi-user systems • 1985: DAC & MAC (TCSEC)

Page 19: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Timeline

• 1960’s - 1970’s: multi-user systems • 1985: DAC & MAC (TCSEC) • 1990’s: Roles

Page 20: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Timeline

• 1960’s - 1970’s: multi-user systems • 1985: DAC & MAC (TCSEC) • 1990’s: Roles • 2000-2001: RBAC standard (NIST)

Page 21: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Timeline

• 1960’s - 1970’s: multi-user systems • 1985: DAC & MAC (TCSEC) • 1990’s: Roles • 2000-2001: RBAC standard (NIST) • 2000’s - now: ABAC • 2014: First NIST guide for ABAC

Page 22: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

DAC

Perm.Subject

Page 23: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

DAC with Groups

Perm.Subject Group

A group is a set of users

Page 24: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Role-Based Access Control

[NIST-RBAC]

Page 25: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Role?

A role is a job function within the organization that describes the authority and responsibility conferred on a user assigned

to the role [Sandhu1996]

Page 26: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC0 - Core

Perm.User Role

A role is a set of permissions

Page 27: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC1 - Hierarchies

A role inherits permissions

Perm.Subject Role

hierarchies

Page 28: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

There is More…

Ops.Users Roles

Sessions

Objects

Permissions

session_rolesuser_sessions

UA PA

RH

[NIST-RBAC]

Page 29: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

UA ⊆ Users x Roles

Ops.Users Roles

Sessions

Objects

Permissions

session_rolesuser_sessions

UA PA

RH

[NIST-RBAC]

Page 30: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

Ops.Users Roles

Sessions

Objects

Permissions

session_rolesuser_sessions

UA PA

RH

PA ⊆ Permissions × Roles

[NIST-RBAC]

Page 31: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

Ops.Users Roles

Sessions

Objects

Permissions

session_rolesuser_sessions

UA PA

RH

assigned permissions(r:Roles)→2Permissions assigned permissions(r) = {p ∈ Permissions | (p, r) ∈ PA}

[NIST-RBAC]

Page 32: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

OpsUsers Roles

Sessions

Objects

Permissions

session_rolesuser_sessions

UA PA

RH

Ob(p: Permissions) →{op ⊆ Ops}

[NIST-RBAC]

Page 33: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

OpsUsers Roles

Sessions

Objects

Permissions

session_rolesuser_sessions

UA PA

RH

Ob(p: Permissions) →{ob ⊆ Objects}

[NIST-RBAC]

Page 34: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

OpsUsers Roles

Sessions

Objects

Permissions

session_rolesuser_sessions

UA PA

RH

user sessions (u: Users) → 2Sessions

[NIST-RBAC]

Page 35: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

OpsUsers Roles

Sessions

Objects

Permissions

session_rolesuser_sessions

UA PA

RH

session roles (s: Sessions) → 2Roles session roles (si) ⊆ {r ∈ Roles | (session users (si), r) ∈ UA}

[NIST-RBAC]

Page 36: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

OpsUsers Roles

Sessions

Objects

Permissions

session_rolesuser_sessions

UA PA

RH

avail_session_perms(s:Sessions) → 2Permissions

[NIST-RBAC]

Page 37: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

RH ⊆ Roles×Roles is a partial order on Roles called the inheritance relation, written as ≽, where r1 ≽ r2 only if all permissions of r2 are also permissions of r1, and all users of r1 are also users of r2. Formally: r1 ≽ r2 ⇒

authorized_permissions(r2 ) ⊆ authorized_permissions(r1 ) ∧ authorized_users(r1) ⊆ authorized_users(r2).

[NIST-RBAC]

Page 38: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

RBAC

authorized_users(r: Roles) → 2Users authorized_users(r)={u∈ Users|r′ ≽r (u,r′)∈UA}

authorized_permissions(r: Roles) → 2Permissions authorized_permissions(r)={p∈Permissions|r′≽r,(p,r′)∈PA}

[NIST-RBAC]

Page 39: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACAttribue-Based Access

Control

Page 40: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABAC

A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject, object, requested operations, and, in some cases, environment conditions against policy, rules, or relationships that describe the

allowable operations for a given set of attributes. [NIST-ABAC]

Page 41: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Attribute?

An attribute is a function which takes an entity such as a user and returns a specific value from its range. An attribute range is determined by its scope and type. The scope of an attribute is given by a finite set of atomic values. [Jin2014]

Page 42: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACα

UA SA OA

U S O

P

Authz

[Jin2012,Jin2014]

Page 43: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACα

UA SA OA

U S O

P

Authz

1 2

3

[Jin2012,Jin2014]

Page 44: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Constraints?

Constraints are functions which return true when conditions are satisfied and false otherwise. Security architects configure constraints via policy languages.[Jin2014]

Page 45: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Policies?

Authorization policies are two-valued boolean functions which are evaluated for each access decision. An authorization policy for a specific permission takes a subject, an object and returns true or false based on attribute values. More generally, access decision may be three-valued, pos- sibly returning “don’t know” in addition to true and false. This is appropriate in multi-policy systems. [Jin2014]

Page 46: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACα - What can it Express?

• DAC • MAC • RBAC0 • RBAC1

[Jin2012,Jin2014]

Page 47: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACß

UA SA OA

U S O

P

Authz

C CA[Jin2014]

Page 48: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACß - Extensions

• Context attributes

[Jin2014]

Page 49: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACß - Extensions

• Context attributes • Subject attribute constraint policy at creation

time is different from modification time

[Jin2014]

Page 50: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACß - Extensions

• Context attributes • Subject attribute constraint policy at creation

time is different from modification time • Subject attribute constrained by attributes of

subjects created by the same user

[Jin2014]

Page 51: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACß - Extensions

• Context attributes • Subject attribute constraint policy at creation

time is different from modification time • Subject attribute constrained by attributes of

subjects created by the same user • Enhanced policy specification language

[Jin2014]

Page 52: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

ABACß - Extensions

• Context attributes • Subject attribute constraint policy at creation

time is different from modification time • Subject attribute constrained by attributes of

subjects created by the same user • Enhanced policy specification language • Meta-attributes

[Jin2014]

Page 53: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Policy Languages

Page 54: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

XACML Policy• PolicySet

• Policy Combination Alg. • Obligation • Advice • PolicySet • Policy

• Obligation • Advice • Rule Combination Alg. • Target • Rule

• Obligation • Advice • Effect • Target

• Subject • Resource • Action • Environment

• Condition[OASIS-XACML]

Page 55: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

XACML Request

• Request • Subject attributes • Resource attributes • Action attributes • Environment attributes

[OASIS-XACML]

Page 56: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Processing RequestsHow does it work?

Page 57: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Policy Evaluation

[OASIS-XACML]

Page 58: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Access Control in PracticeTurns out, many things can go wrong

Page 59: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Practice Time!

Let’s write a policy and a few requests

Page 60: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Any questions?

Thank you!

Page 61: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

References• [Huynh2014] N. Huynh, M. Frappier, A. Mammar, R. Laleau, and J. Desharnais, “Validating the

RBAC ANSI 2012 Standard Using B,” in Abstract State Machines, Alloy, B, TLA, VDM, and Z, Y. A. Ameur and K.-D. Schewe, Eds. Springer Berlin Heidelberg, 2014, pp. 255–270.

• [Jin2012] X. Jin, R. Krishnan, and R. Sandhu, “A Unified Attribute-Based Access Control Model Covering DAC, MAC and RBAC,” in Data and Applications Security and Privacy XXVI, N. Cuppens-Boulahia, F. Cuppens, and J. Garcia-Alfaro, Eds. Springer Berlin Heidelberg, 2012, pp. 41–55.

• [Jin2014] X. Jin, “Attribute-Based Access Control Models and Implementation in Cloud Infrastructure as a Service,” The University of Texas at San Antonio, 2014.

• [NIST-ABAC] V. C. Hu, D. Ferraiolo, R. Kuhn, A. Schnitzer, K. Sandlin, R. Miller, and K. Scarfone, “Guide to Attribute Based Access Control (ABAC) Definition and Considerations,” National Institute of Standards and Technology, NIST SP 800-162, Jan. 2014.

• [NIST-RBAC] D. F. Ferraiolo, R. Sandhu, S. Gavrila, D. R. Kuhn, and R. Chandramouli, “Proposed NIST Standard for Role-based Access Control,” ACM Trans. Inf. Syst. Secur., vol. 4, no. 3, pp. 224–274, Aug. 2001.

• [OASIS-XACML] OASIS, “eXtensible Access Control Markup Language (XACML) Version 3.0.” OASIS Standard, 22-Jan-2013.

• [Sandhu1996] R. S. Sandhu, E. J. Coyne, H. L. Feinstein, and C. E. Youman, “Role-based access control models,” Computer, vol. 29, no. 2, pp. 38–47, Feb. 1996.

Page 62: Access Control Models · A logical access control methodology where authorisation to perform a set of operations is determined by evaluating attributes associated with the subject,

Image Credits

• Doodles by J. Hardaway (inspired by Monty Python’s Holy Grail), with permission

• Dictionary http://tinyurl.com/qep8w94 (CC by) • Keyboard http://tinyurl.com/oyqob8c (CC by-nc) • Padlock http://tinyurl.com/pmp2yjc (CC by-sa) • Turnstile http://tinyurl.com/qjnl296 (CC by-nc-nd)