• No results found

ORB User Sponsor Client Authenticate User Request Principal Create Credentials Authenticator Attributes ORB

N/A
N/A
Protected

Academic year: 2021

Share "ORB User Sponsor Client Authenticate User Request Principal Create Credentials Authenticator Attributes ORB"

Copied!
12
0
0

Loading.... (view fulltext now)

Full text

(1)

Using CORBA Security Service

Konstantin Beznosovand Yi Deng

Center for Advanced Distributed Systems Engineering

School of ComputerScience

Florida International University

Abstract

Thepapershowshowrole-basedaccess control (RBAC)

modelscouldbeimplementedusingCORBASecurity

ser-vice. A conguration of CORBA protection system is

dened. We provide denitions of RBAC

0

and RBAC

1

implementations in the framework of CORBA Security

and describe what is required from an implementation

ofCORBA Securityservicein ordertosupport RBAC

0 -RBAC 3 models. 1 Introduction

Role-based accesscontrol (RBAC)[SCFY96] is afamily

of reference models in which permissions are associated

withrolesandusersareassignedtoappropriateroles. A

role can represent competency, authority, responsibility

orspecic duty assignments. Some variationsof RBAC

includethecapabilitytoestablishrelationsbetweenroles,

between permissions and roles, and between users and

roles. There are four established RBAC reference

mod-els: unrelatedroles(RBAC

0

),role-hierarchies(RBAC

1 ),

userandroleassignmentconstraints(RBAC

2

),andboth

ThisworkwassupportedinpartbytheNSFunder

Coopera-tiveAgreementNo. HDR-9707076andbyBaptistHealthSystems

ofSouthFlorida.

Allcorrespondence should beaddressedto Konstantin Beznosov,

SchoolofComputerScience,FloridaInternationalUniversity,

Mia-mi,FL33199,[email protected], http://cadse.cs.fiu.edu.

0

hierarchies and constraints (RBAC

3

). RBAC

support-sthree securityprincipals: least privilege, separationof

dutiesand dataabstraction.

Amajor purpose of RBAC is to facilitate access

con-troladministrationandreview. RBACisapromising

ap-proachtoaddresstheneedsofthecommercialenterprises

better than lattice-based MAC [BL75] and owner-based

DAC [Lam71]. Recent series of papersdescribe ways to

model or implement RBAC using the technologies

em-ployedbythecommercialusers: Oracle[Not95],NetWare

[ES95], Java [Giu98], DG/UX [Mey97], object-oriented

systems[Bar95], object-oriented databases [Won97],

M-SWindowsNT [BC98], enterprise securitymanagement

systems[Awi97]. Evidence of RBAC recognition in the

USgovernmentisthefactthattheproposedruleson

secu-rityfromtheDepartmentofHealthandHumanServices

[Dep98]includeRBACasoneoftherequiredalternatives

foraccess control.

At the same time, the commercial market is

expe-riencing the spread of systems based on Common

Ob-jectRequest BrokerArchitecture (CORBA)technology.

CORBA is aversatile object-based distributed

comput-ingtechnology, which is becoming aworldwideindustry

standard for constructing distributed software systems.

CORBAstandardizationprocessisbasedonthe

consen-susofover800softwarecompanies.Thecomputing

mod-el that CORBA adheres to is outlined in Object

Man-agement Architecture (OMA) [SS95]. The CORBA

en-vironment, includingCORBA SecurityService, provides

a general-purpose infrastructure for developing and

de-ploying distributed object systems in a broad range of

specialized vertical domains. CORBA Security service

(CS)denes theinterfaces to a collection of objectsfor

(2)

couldbeindependentfromtheparticularsecurity

infras-tructure provided by a user enterprise computing

envi-ronment. Duetoitsgeneralnature,CSisnottailoredto

anyparticularaccesscontrolmodel. Instead,itdenesa

generalmechanismwhichissupposed tobeadequatefor

themajorityofcasesandcouldbeconguredtosupport

various access control models. For example,it is shown

in [Kar96] how to implement lattice-based MAC using

theCORBA authorizationmodel. Inthenextfewyears

we expect to witnesssignicantnancial investmentsin

theenterprise-widedeploymentofCSin commercialand

governmentorganizations,including thosewhowill

con-structtheirsecuritypoliciesutilizingRBACconcepts. It

is important to foresee if CS will fully support RBAC

models. However,we are notaware of anywork in the

researchcommunitythathasexploredthepotentialofCS

forsupportofRBACreferencemodels.

Inthispaperwepresentanapproachforimplementing

RBAC models using the access control mechanism

pro-vided byCS. WedeneacongurationofCSprotection

system. ThenwedeneRBAC

0

andRBAC

1

implementa-tionsintermsofCSframeworkanddescribehowRBAC

0

-RBAC

3

could be implemented in CS. We illustrate the

discussionwithseveralexamples. Ourapproachallowsan

implementation compliant with CS specication to

sup-port RBAC

0

. Additional functionality, which is beyond

CS specication scope, should be implemented in order

tosupport RBAC

1

and/orRBAC

2 .

Thepaperisorganizedasfollows: Section 2describes

the access control model of CS and denes a

congura-tionofthe CORBAprotectionsystem;Section 3denes

RBAC models using CS concepts and shows a possible

implementation of RBAC

0 -RBAC

3

using CS with

illus-trationonanexamplerolehierarchy;Section4concludes

thepaper.

2 CORBA Access Control Model

Inthis section, we rstinformallydescribetheCORBA

AccessControlmodel. Then,weformallydenea

cong-urationoftheCORBAProtectionSystemstate.

2.1 Informal Description

The CORBA environment, including CORBA Security

Service,providesageneral-purposeinfrastructurefor

de-velopingand deployingdistributed object-basedsystems

interfacesdened in the OMG Interface Denition

Lan-guage(IDL).ACORBAinterfaceisacollectionofthree

things: operations, attributes, and exceptions. An

im-plementationof aCORBA interfaceis called aCORBA

object. Hence,weuse\CORBAobject"orjust \object"

tomean\implementationofaCORBAinterface",where

it does notcause confusion. Objectfunctionality is

ex-posed toother CORBA-basedapplicationsonly through

thecorresponding interfaces. Objectshaveobject

refer-encesbywhich theycanbereferenced. An object

refer-ence is a handle through which onerequests operations

ontheobject.

TheCS model comprises the following functionalities

visibletoapplicationdevelopersandsecurity

administra-tors: identicationandauthentication,authorizationand

accesscontrol,auditing,integrityandcondentiality

pro-tection,authenticationof clients andtarget objects,

op-tionalnon-repudiation,administrationofsecuritypolicies

andrelatedinformation.

Oneof the objectives of CS is to be totally

unobtru-siveto application developers. Security-unawareobjects

shouldbeableto runsecurelyonasecureORBwithout

anyactiveinvolvementonthesiteofapplicationobjects.

Inthe meantime, it must be possible for security-aware

objectstoexercisestrictersecuritypoliciesthantheones

enforcedby CS. IntheCS model, allobjectinvocations

aremediatedbytheappropriatesecurityfunctions in

or-dertoenforcevarioussecuritypoliciessuchasaccess

con-trol. A simplied schemaof control points in CS model

is represented in Figure 1. Those functions are part of

CSand aretightly integratedwith theORB becauseall

messagesbetweenCORBAobjectsandclientsarepassed

throughtheORB.

CSusesthe notionofprincipal. \Aprincipal is a

hu-man user orsystem entity that is registeredin and

au-thentictothesystem"[Obj98]. Intranslationtothe

tra-ditionalsecurityterminology,aprincipalisasubject. CS

managesaccess controlpolicies basedonthesecurity

at-tributesofprincipals andattributesofobjectsaswellas

operations implemented by those objects. Objects that

havecommonsecurityrequirementsaregroupedin

secu-ritypolicy domains. Accesscontrolpoliciescontrolwhat

principalscaninvokewhatoperationsonwhatobjectsin

thedomain the policies are dened on. Policies can be

enforced either by the ORB or by the application. In

thelatter case, such anapplication is called a

security-aware application. Domains allow application of access

(3)

re-ORB

client application

access decision

Client

Object

Target

request

request

client-side invocation access decision

target application

access decision

target-side invocation access decision

Figure1: AccessControlPointsinCORBASecurityService(from [Obj98])

AsitcanbeseeninFigure1,theclient-sideand

target-side invocation access policy governs whether the client

can invokethe requested operationon thetarget object

onbehalfofthecurrentprincipal. Thispolicyisenforced

by the ORB in cooperation with the security service it

usesforall(security-awareandunaware)applications. A

client may invoke an operation on the target object as

speciedintherequestonlyifthisisallowedbytheobject

invocationaccesspolicy.

AuserusesaUserSponsor 1

toauthenticateto theCS

environment(Figure2). AUserSponsor authenticateson

User

Create

Principal

Authenticator

User

Sponsor

Attributes

Credentials

Authenticate

ORB

Request

Client

Figure2: UserAuthentication

behalf of auser with and obtainsauthenticated

creden-tialsfrom aPrincipalAuthenticator . Instances of

User-Sponsor implementuserinterfacespecictothe

authenti-cationmethodsupportedbytheconcreteimplementation

of CS. For example, for password-basedauthentication,

1

AUserSponsorisanimplementationartifactwhichhandlesthe

it prompts the user for user name and password. For

authenticationbased onsmart-cards, it interacts witha

smart-card reader and (probably) prompts the user to

insert the card in the reader. CS standard does not

mandateanyparticularauthenticationmethod. Whatit

doesspecify isthe interfaceof aPrincipalAuthenticator.

A PrincipalAuthenticator conducts the actual

authenti-cation and creates Credentials object for a new

princi-pal. Basedontheauthenticationdata itreceivedfroma

UserSponsor and on the underlying security technology

(Kerberos,SESAME,oranyothercapabletechnology)as

wellasonanyrulesitadheresto,PrincipalAuthenticator

instantiates Credentials with various information. The

informationin Credentials constitutethe identityof the

newprincipalwhichinitiatesrequestsonCORBA

object-sonbehalfof theuser. Principal authenticatedsecurity

attributesarepartof theinformationstoredin the

Cre-dentials object.

The concept of a user is absent from CS AC model.

Insteada principal represents the usercompletely. The

notionofasessionisindistinguishablefromthenotionof

aprincipal. Thus multiple principals can act on behalf

ofa single user. Theyall potentiallyhave dierent

set-s of credentialsand therefore exist in CS as completely

independent entities. Among other data, principal

cre-dentialscontainsecurityattributes. Hereafter,we

under-standattributeto meansecurityattribute. FromtheCS

AC model point of view, a principal is nothing but an

unorderedcollectionofauthenticatedattributes. All

at-tributesare typed. Attributetypes arepartitioned into

(4)

primary and secondary groups the principal is a

mem-berof,clearance, capabilities,etc. Identityattributes, if

present, provide additional information about the

prin-cipal: audit id, accounting id, and non-repudiation id,

reecting thefact that aprincipal might havevarious

i-dentitiesusedfordierentpurposes. Principalcredentials

maycontainzeroormoreattributesofthesamefamilyor

type. 2

Anexampleofsecurityattributesassignedto

au-thenticatedprincipals isprovided inTable1. Oneofthe

standard CORBA attribute types is the role attribute.

Due to the extensibility of the schema for dening

se-curity attributes, an implementation of CS cansupport

attribute typesthat are notdened bythe CORBA

Se-curitystandard. AlthoughthenormativepartofCSdoes

notmandatethewayattributesaremanaged,assignment

of such attributesto users is meant to beperformed by

useradministrators. Principal Attributes p 1 a 1 p 2 a 2 ,a 6 p 3 a 2 ,a 3 p 4 a 4 ,a 5

Table1: SecurityAttributesPossessedbyAuthenticated

Principals

AllaprincipaldoesintheCORBAcomputational

mod-elisinvokeoperationsoncorrespondingobjects. Inorder

to makearequestoneneedsto knowtwothings: object

reference, which uniquelyidenties anobject,and

oper-ation name. CORBA interfaces can inherit from other

CORBA interfaces via interface inheritance. An

opera-tionnameisuniqueforaninterface. 3

Thus,anyoperation

isuniquelyidentiedbyitsnameandbythenameofthe

interfaceitisdenedin.

In this paper, we usenotation i

k m n , to refer to n-th operationonk-thinterface. There isaglobal 4

set of requiredrights for each

oper-ation dened by itsinterface's required rights mapping.

This set, together with a combinator (all or any

right-s), denes what rights a principal has to have in order

2

Thisruleappliestoall attributetypesincludingaccessid,

al-thoughitishardtoforeseeausefulimplementationofCSwherea

principalwouldhavemultipleornoaccessidentities.

3

InterfaceinheritanceinCORBAdoesnotallowtoinheritfrom

interfaceswithoperationsofthesametype. Thisruleresolvesthe

problemofoperationnameoverloading.

4

I.e. notdependent onapolicydomaininwhichthe objectis

requiredrights for operations on three interfaces i

1 , i 2 , and i 3

. It is assumed that required rights are dened

and their semanticsare precisely documented by

appli-cation developers who know the best what each

opera-tiondoes. Depending onthe access policy

(DomainAc-cessPolicy) enforcedin aparticular ACpolicy domain, 5

aprincipalisgranteddierentrights(GrantedRights)

ac-cording to what SecurityAttributes it has. 6

Each

Do-mainAccessPolicydeneswhatrightsaregrantedforeach

security attribute. An example of a mapping between

principal privilege attributes and granted rights is

pro-videdinTable3. Securityadministratorsareresponsible

Attributes GrantedRights

Domain d 1 d 2 a 1 r 1 r 2 a 2 - r 1 a 3 r 2; r 3 -a 4 r 3 r 1; r 4 a 5 r 1 ;r 2 ;r 3 r 2 ;r 3 ;r 4 a 6 r 6 r 1

Table3: GrantedRightsperAttribute

fordeningwhat rightsare grantedto what security

at-tributesin whatdelegationstateon domainperdomain

basis. Wheneveraprincipalattemptsanoperation

invo-cation,principal'seectiverightsarecomputedvia

oper-ationAccessPolicy::geteective rights. 7

CSspecication

purposefullydoesnotdenehowtheoperationcombines

rightsgrantedthroughdierentprivilegeattributeentries

inTable3. ThespeciersletCSimplementorsdenethe

operation's internal behavior([Obj98, p. 122]). A

sim-plestimplementationofgeteective rightscouldbewhen

thesetofrightsgrantedtoaprincipalisaunionofrights

grantedtoeverysecurityattributetheprincipalhas. For

our examples, we will assume exactly this

implementa-tionof theoperation. If weuse ourexampleof security

attributesassignedtoprincipalsp

1 ,p 2 ,p 3 ,andp 4 (Table

1), and the examples of required (Table 2) and

grant-ed(Table3) rights,then Table4showswhat rightsthe

principalsaregrantedineachdomain.

5

IntheCORBAsecuritymodel,asecuritypolicydomainisjust

acollectionofobjects.

6

Forthe sakeofbrevity,weomitdelegation statequalierfor

grantedrights. Thisdoesnotchangethecorrectnessofthe

discus-sion,asweshowbelow.

7

(5)

i 1 m 1 r 1

all Only a principal who is granted right r

1

can invoke the

operation. i 1 m 2 r 1 ,r 2

any Anyprincipal whois grantedeither r

1 orr

2

rightcan

in-voketheoperation.

i 2 m 1 r 2 ,r 3

all Only aprincipal whois grantedbothr

2 andr

3

rightscan

invoketheoperation.

i 2 m 2 r 2 ,r 3 , r 4

all Only a principal who is granted all r

2 ;r 3 ;r 4 rights can

invoketheoperation.

i 3 m 1 r 1 ,r 2 ,r 3 ,r 4

any Any principal who is grantedeither ofr

1 ;r 2 ;r 3 ;r 4 rights

caninvoketheoperation.

Table2: RequiredRightsMatrix

Principal GrantedRights

Domains d 1 d 2 p 1 r 1 r 2 p 2 r 6 r 1 p 3 r 2; r 3 r 1 p 4 r 1 ;r 2 ;r 3 r 1 ;r 2 ;r 3 ;r 4

Table4: GrantedRightsPerPrincipal

2.2 CORBAProtection State

Congura-tion

WesummarizetheabovedescriptionoftheCSAC

mod-el by dening the protection state conguration of a

CORBAsystem:

Denition2.1 A conguration of a CORBA system

protection state is the thirteen-tuple (A, IM, O, R, D,

C, RRM, DS, IDM, GRM, eectiverights, combine,

in-terface operation)interpretedasfollows:

Aisthesetofprivilegeattributes.

IM is the set of operations uniquely identied by

interfacesthat theyaredened on.

O isasetof distinguishableinterfaceinstances.

Ristheset ofrights.

D istheset ofaccesspolicy domains.

RRM is the required rightsmatrix, with arow for

everyinterfaceoperationfromIM andtwocolumns.

Fortherstcolumn(RequiredRights),wehave[IM,

Rights] R. For the second column (Combinator),

wehave[IM,Combinator]2C.

DS =fi,dgisasetofdelegationstates.

IDM is thematrixofdomain membership for

inter-face instances with arow for everydomain from D

andacolumnforeveryinterfaceinstancefromO.We

denotethecontentsof(D,O)cellofIDM by[D,O].

Wehave[D,O]fT,Fg 8

,[d;o]==T =)o2d.

GRM is the granted rights matrix, with a row for

everyattributefromAandacolumnforeveryaccess

policydomainfromD.Wedenotethecontentsofthe

(A,D)cellofGRM by[A, D].Wehave[A,D]R.

eectiverights: D2 A !2 R ,afunctionmapping aset a 1 ;a 2 ;:::a l

of privilege attributes (where81<

i<l:a i 2A) inadomaind j 2D to aset ofrights r 1 ;r 2 ;:::r p (where8i;1<i<p: r i 2R )that arein

eect forthegivenset ofattributes.

combine: 2 D 2 R !2 R

,afunctionmappingsetsof

rightsreturnedfromeective rightsforeverydomain

in D theinterfaceinstance is amember of, to aset

ofeectiverights.

interfaceoperation: MO !IM,afunction

map-pinganoperationnamem andaninterfaceinstance

o2O intoaninterfaceoperationuniquelyidentied

ontheinterface,whicho implements.

2

(6)

grantedrightsforeachattributeinalldomainstowhicho

belongs. It combinesthose rightsaccordingto its

imple-mentation and returns eective rights for each domain.

Resultsreturned from eective rights serveas input

pa-rametersfor thefunction combine. The lattercombines

them according to its implementation. Rights returned

bycombine are checkedagainstRRM. Ifthematch

suc-ceeds,thenaccessisgranted. Otherwise,accessisdenied.

Table 5showswhat operationscan beinvoked by the

principals from our example. For each domain, an

ac-Principals Operations Domains d 1 d 2 p 1 i 1 m 1 ,i 1 m 2 i 1 m 2 p 2 - i 1 m 1 ,i 1 m 2 p 3 i 1 m 2 ,i 2 m 1 i 1 m 1 ,i 1 m 2 p 4 i 1 m 1 ,i 1 m 2 ,i 2 m 1 i 1 m 1 ,i 1 m 2 ,i 2 m 1 , i 2 m 2 ,i 3 m 1

Table5: OperationsthataPrincipalCanInvoke

cess matrix from [Lam71], such asin Table 6, could be

constructed. Subjects Objects i 1 i 2 i 3 p 1 i 1 m 2 p 2 i 1 m 1 ,i 1 m 2 p 3 i 1 m 1 ,i 1 m 2 p 4 i 1 m 1 ,i 1 m 2 i 2 m 1 ,i 2 m 2 i 3 m 1

Table6: AccessMatrixforDomaind

2

Threegeneralobservationsareworthnotingforan

ac-cess matrix constructed for any CS system. First,

sub-jectscannot be objects,i.e. the CORBA access control

modeldoesnothavetheconceptofoperationson

princi-pals. Itonlyhastheconceptofoperationsoninterfaces,

whichareobjectsaccordingtotheterminologyofthe

ac-cessmatrix[Lam71]. Second,sincei

k m p i l m q , k

l^pq(i.e. just pqisnotenoughfori

k m p i l m q ),

as in Table 6, the semantics of operations in a general

casemightbedierent. Thus,foreachsubjects and

ob-jecto,thecontentofcell[s,o]isspecictotheobject,i.e.

nooperationspermittedononeobjectcould be

permit-tedonanotherobjectbecauseoperationsaresemantically

dierent for every interfaceunless interfaces are related

ed by the same object in the access matrix; therefore,

implementations ofthe sameinterfaceare

indistinguish-ablefromtheaccesscontrolpointofview. Thisisoneof

thereasonspolicydomainsareimportantintheCORBA

accesscontrolmodel.

3 Support of RBAC by the

CORBA Access Control Model

AmongthefourRBACreferencemodelsdenedby

Sand-huetal[SCFY96],RBAC

0

isthebasemodel. Itrequires

onlythatasystemhasnotionsofusers,roles,permissions

andsessions. Therearenoconstraintsontheassignment

of permissions to roles and users to roles. RBAC

1 has

hierarchiesofrolesinadditiontoeverythingRBAC

0 has.

RBAC

2

hasconstraintsontheassignmentofuserstoroles

andpermissionstorolesinadditiontoeverythingRBAC

0 has. RBAC 3 combinesRBAC 1 andRBAC 2 . Inthis

sec-tion, we dene RBAC

0

and RBAC

1

using the language

ofDenition 2.1 of the CORBAprotection state

cong-uration. This will help us show the correctness of our

approachtoconguringaCORBAsystemforsupporting

variousRBACmodels.

3.1 RBAC

0

: Base Model

ForthebasemodelRBAC

0

,thefoursetsofidentitiesare

represented in CS as follows: 9

Users in RBAC map to

usersin CS; Roles are representedby set A of privilege

attributesoftyperole;Permissionsareequivalenttothe

setofrightsRinCS;Sessionsareequivalenttoprincipals,

whicharenothingbutsetsofsecurityattributes,fromCS

ACpointofview.

RBAC

0

denition(reprintisavailableinAppendix)in

thelanguageof CSisformallydenedasfollows:

Denition3.1

U,A,R,P (users,attributesoftyperole,rights,and

principals, respectively)

PARA,amany-to-manyassignmentofgranted

rightsto securityattributesoftyperole relation.

UA UA, a many-to-many user to security

at-tributesoftyperole assignmentrelation.

9

WedonotmentionCSACdomainsbecause,asitwillbeshown

(7)

i

tothesingleuseruser(p

i

),constantfortheprincipal

lifetime,and

roles : P !2 A

,afunctionmappingeachprincipalp

i

to aset ofprivilege attributes oftyperole roles(p

i )

f a j (user(p

i

), a) 2Ag and principal p

i has the grantedrights S a2roles(pi) fr j(r,a)2PAg 2

It is easy to see that the denition describes a

sys-tem compliant with the RBAC

0

denition provided in

[SCFY96]. Given the denition, we will show how a

CORBA protection system specied by a conguration

language from Denition 2.1 could be used to

imple-ment a security system compliant to this denition of

RBAC

0

. PA relation is specied by grantedrights

ma-trix GRM. UA relation is managed by user

administra-tors in CS that dene what values of attributes of type

role are assigned to users. However such

managemen-t functionality is beyond the scope of CS specication,

which means that functionality dened by UA relation

is implementation-specic. An implementation of

Prin-cipalAuthenticator 10

initializesnew principal credentials

with security attributes according to UA. An example

is provided in Table 1, where attributes a

1

through a

6

have the type role. The value of the principal's

privi-lege attribute of the type AccessId is equivalent to the

returnvaluefromthe functionuser. An implementation

of PrincipalAuthenticator should initializeprincipal

cre-dentialsaccordingto the function roles. Sincea userin

RBAC

0

can activate any subset of roles the user is

as-signedto,implementationofUAensuresimplementation

ofRBAC

0

. Thus,wehaveshownthat allrelations,

func-tionsand sets speciedin Denition 3.1 canbedirectly

supported by CS-compliant implementations. In order

foraCSimplementationtosupport RBAC

0

itshould:

1. complywithCSstandard,and

2. provideameansto administrateuser-to-role

assign-mentrelationUA,and

3. provide a means for users to select through

User-Sponsor aset ofroleswithwhich theywouldliketo

activatethenewprincipal,and

10

AsitwasdescribedinSection2,aPrincipalAuthenticator

con-ductsthe actualauthenticationand createsCredentialsobjectfor

principal credentials containing privilege attributes

oftyperole accordingto relationUA, and

5. implement PrincipalAuthenticator which creates

principal credentials containing one and only one

privilege attributeoftypeAccessId.

AstraightforwardimplementationofRBAC

0

inCSwould

betheonethatusesprivilegeattributesofonlytyperole

forconstructinggrantedrightstables, such asTable3.

3.2 RBAC 1 : Role Hierarchies RBAC 1 isRBAC 0

withrolehierarchies. RBAC

1

(the

def-initionreprintis available in Appendix) in the language

ofCS isformallydenedasfollows:

Denition3.2

U, A,R, P,PA, UAand user are unchangedfrom

RBAC

0 .

R H AAisapartialorderonRcalledtherole

hi-erarchy,writtenas. Itisthesameasin[SCFY96].

roles : P !2 A

is modiedfrom RBAC

0 to require roles(p i ) f a j (9a 0 a) [(users(p i ), a 0 ) 2UA] g andprincipal p i

hasthegrantedrights S a2roles(pi) f rj(9a 00 a)[(r,a 00 )2PA] g 2

The function roles isto beimplementedand enforced

byaPrincipal Authenticator (Figure2onPage3). A

us-erprovides to a UserSponsor a set of roles which they

want the principal to be activated with. The

Princi-palAuthenticator, during the authentication phase with

theUserSponsor,createsnewcredentialsoftheprincipal.

Thecredentialshaverequestedbyuserrolesprovidedthat

theysatisfythedenitionoffunctionroles forRBAC

1 .

A valid implementation of RBAC

1

could be one that

allowsauserto specifyanyrolejuniorto thosetheuser

isamemberof. Inthiscase,animplementationof

Prin-cipalAuthenticator activatesall roleswhichare juniorto

thespeciedrole.

Inorder for a CS implementation to support RBAC

1

itshould:

1. implementRBAC

0 ,and

(8)

principal credentials containing privilege attributes

ofthetyperole accordingto relationsUAand RH,

aswellasthefunctionroles.

3.3 RBAC

2

: Constraints

ConstraintsinRBACarepredicatesthatapplytoUAand

PArelationsandtheuser androlesfunctions([SCFY96]).

ConstraintsonUA relationaretobeenforcedbyan

im-plementationofuseradministratortools. Constraintson

thefunctionsuser androlesaretheresponsibilityof

Prin-cipalAuthenticator implementation. Constraints on PA

relationaretobeenforcedbyanimplementationof

secu-rityadministratortools.

In order for aCS implementation to support RBAC

2

itshould:

1. implementRBAC

0 ,and

2. implementsupportofconstraintsonUArelationuser

administratortools,and

3. implement PrincipalAuthenticator with support of

constraintsonfunctionsuser androles,and

4. enableenforcementofconstraintsonPArelationby

securityadministrationtools.

3.4 RBAC 3 : RBAC 1 + RBAC 2 RBAC 3 is a combination of RBAC 1 and RBAC 2 along

withpossiblyadditionalconstrainsontherolehierarchy.

ItcanbeimplementedinCSaswell. Obviously,inorder

foraCSimplementationtosupport RBAC

3 itshould: 1. implementRBAC 1 , 2. implementRBAC 2 ,and

3. implementpossibleadditionalconstrainsontherole

hierarchy.

Requirements for support of RBAC

1

and RBAC

2 by

CORBA Security service implementation have been

al-readydiscussed. Implementationofadditionalstatic

con-strainsontheRBAC

1

rolehierarchyistobedonebyuser

administratortools. Forthesupportdynamicconstrains,

additionalfunctionalityintheimplementationof

Princi-palAuthenticator is required,in additionto the

adminis-Toillustrate thepointsmadeinthissection,wedescribe

aprotectionstateofaCORBAsystemdenedby

Deni-tion2.1that implementsanexamplerole hierarchy. We

use an example hierarchy from [SP98] shown in Figure

3. WewillshowhowaCORBA-baseddistributedsystem

couldbeconguredto supportRBAC

1

withan example

hierarchyshownonFigure3andtoprotectaccessto

im-plementations of CORBA interfacesshown in Figures 4

and5. Thefollowingaccesscontrolpoliciesdescribewhat

Figure4: ExampleCORBAInterfaces

Figure5: EmployeeInterface

actionsareallowed. Allother actionsaredenied.

1. Anyonecanlookupanemployee'snameand

experi-ence.

2. Everyone in the engineering department can get a

description of and report problems regarding any

project.

3. Engineers, assigned to projects, can make changes

andreviewchangesrelatedtotheirprojects.

(9)

Production

Engineer 1

(PE1)

Quality

(QE1)

Engineer 1

Production

Engineer 2

(PE2)

Quality

Engineer 2

(QE2)

Director (DIR)

Project Lead 2 (PL2)

Project Lead 1 (PL1)

Employee (E)

Engineering Department (ED)

Engineer 2 (E2)

Engineer 1 (E1)

Project 2

Project 1

Figure 3: AnExampleRole Hierarchy(from[SP98])

5. Productionengineerscancreatenewreleases.

6. Projectleaderscancloseproblems.

7. The director can manage employees (assign them

to projects,un-assign them from projects, add new

recordstotheirexperience,andre)andclose

engi-neeringprojects.

Wedenethateective rights returnsaunionofgranted

rightsper attribute. We dene that combine returns a

unionofrightsgrantedineachdomain.

Single AccessPolicy Domain Solution

In order to implementthe role hierarchyin CS without

using access policy domains, we introduce two new

in-terfacesEngineeringProject1 andEngineeringProject2,as

shown in Figure6. Thefollowingcongurationofa

A =fe, ed,e1, e2, pe1,pe2, qe1,qe2, pl1, pl2,dirg.

All theseattributeshavetyperole.

IM =fEmployee::getname,

Employee::assignto project,

Employee::unassignfromproject,

Employee::addexperience,

Employee::getexperience,Employee::re,

EngineeringProject1::inspectquality, EngineeringProject1::makechanges, EngineeringProject1::reportproblem, EngineeringProject1::reviewchanges, EngineeringProject1::close, EngineeringProject1::closeproblem,

EngineeringProject1::createnewrelease,

EngineeringProject1::getdescription,

EngineeringProject2::inspectquality,

(10)

Figure6: EngineeringProject InterfaceHierarchy

EngineeringProject2::reviewchanges,

EngineeringProject2::close,

EngineeringProject2::closeproblem,

EngineeringProject2::createnewrelease,

EngineeringProject2::getdescriptiong.

Wedonotuseanyimplementationsofinterface

En-gineeringProject. Onlyderivedinterfacesare used.

O=fe,ed,e1,e2,pe1,pe2,qe1,qe2,pl1,pl2,dir,

pr-j1,prj2g. prj1 isaninstanceofEngineeringProject1,

and prj2 is an instance ofEngineeringProject2. All

other elements of O are instances of interface

Em-ployee.

R =fgn,atp,ufp, ae,ge, f,mc1,rc1,iq1,rp1,cp1,

cnr1,gd1,c1,mc2,rc2,iq2,rp2,cp2,cnr2,gd2,c2g 11

D =fd1g

C =fallg{weuseonlyonecombinator.

RRM isshowninTable7. Weomittedcolumnwith

rightscombinatorsbecauserequiredrightsforall

op-erationshavethesamecombinator{\all". 12

DS =fi,dg

IntheIDM,allinterfaceinstancesareinmembersof

theonlyaccess policy domain.

Employee::getname gn

Employee::assignto project atp

Employee::unassignfrom project ufp

Employee::addexperience ae

Employee::getexperience ge

Employee::re f

EngineeringProject1::getdescription gd1

EngineeringProject1::inspectquality iq1

EngineeringProject1::makechanges mc1

EngineeringProject1::reviewchanges rc1

EngineeringProject1::reportproblem rp1

EngineeringProject1::closeproblem cp1

EngineeringProject1::createnewrelease cnr1

EngineeringProject1::close c1

EngineeringProject2::getdescription gd2

EngineeringProject2::inspectquality iq2

EngineeringProject2::makechanges mc2

EngineeringProject2::reviewchanges rc2

EngineeringProject2::reportproblem rp2

EngineeringProject2::closeproblem cp2

EngineeringProject2::createnewrelease cnr2

EngineeringProject2::close c2

Table 7: Required Rights Matrix for the Solution with

SingleDomain eectiverights( d j , a 1 ;a 2 ;:::a l ) S ai;1il f r j r2GRM[a i , d j

] g { union of granted rights per

at-tribute. combine(r 1;d1 ;r 2;d1 ;:::r l;d1 ,..., r 1;dp ;r 2;dp ;:::r m;dp ) S frjr2fr 1;d1 :::r m;dp

gg{unionof rightsgranted

in eachdomain.

TheCORBAprotectionsystemcongurationdescribed

above allows enforcement of the sample policies listed

on Page 8. For example, a lead of project 1 with role

pl1activated is ableto invoke operationsget name and

getexperience on all implementations of interface

Em-ployee as well as all but close operations on all

imple-mentationsofinterfaceEngineeringProject1.

11

Weusedrstlettersofeachoperationtocreateacorresponding

right.

12

Wecould haveused \any" aswell. When anoperation's

(11)

com-e gn,ge ed gd1,gd2,rp1,rp2 e1 mc1,rc1 pe1 cnr1 qe1 iq1 pl1 cp1 e2 mc2,rc2 pe2 cnr1 qe2 iq1 pl2 cp1

dir atp,ufp,ae, f,c1, c2

Table8: GrantedRightsMatrixforSingleDomain

Solu-tion.

From observingthe congurationof theCORBA

pro-tectionsysteminthissolution,signicantadministrative

overhead could be noticed. The overhead is due to the

gratuitous use of a separate interface

(EngineeringPro-ject(1,2)) perproject . This is becausewepurposefully

limitedoursolution toasingle accesspolicy domain. It

could beeasily shown how the unnecessaryredundancy

of protectionsystemcongurationdata iseliminated by

using access policy domains and ahierarchyofsuch

do-mains. Weomitthedescriptionofasolutionwith

multi-pledomainsdueto spacelimitation.

4 Conclusions

Inthispaper,weprovidedadenitionofprotection

sys-temcongurationforCORBASecurityservice(CS).We

dened RBAC

0

and RBAC

1

models in the language of

CS and described how RBAC

0 -RBAC

3

could be

imple-mentedin CS.Wediscussed whatfunctionalityneedsto

be implemented, besides compliance with CS standard,

inorder tosupport RBACmodelsbyCS.Weillustrated

thediscussionwithasingleaccesspolicydomainexample

ofCS protectionsystemconguration,which supportsa

samplerole-hierarchyandaccesspolicies.

Implementations compliant with the CS specication

cansupportRBAC

0

{RBAC

3

. However,additional

func-tionality non-specied by CS is required.

Implemen-tations of PrincipalAuthenticator interface and

User-Sponsor need to be aware of roles and their

hierar-chies (RBAC

1

). To support constraints (RBAC

2 ), a

PrincipalAuthenticator hastoenforcecorresponding

con-straints. Tools to administer user-to-role and

role-to-Theworkpresentedin thispapersetsupaframework

forimplementingaswellasforassessingimplementations

ofRBACmodels usingCS. Itprovidesdirections forCS

developersto realizing RBACin theirsystems. It gives

criteria to users for selecting such CS implementations

thatsupportmodelsfrom theRBAC

0 -RBAC

3 family.

Acknowledgements

We are grateful for very helpful comments from the

anonymous reviewers. We also thank the OMG

securi-ty special interestgroup (SecSIG) for feedback received

during thepresentation, in December1997, on

support-ing RBAC in CORBA Security. Special thanks to Bob

Blakleyfrom DASCOMInc. forinsightful commentson

therstdraftofSection2.

References

[ACM95] ACM. Proceedings of the First ACM

Work-shop onRole-BasedAccessControl,

Gaithers-burg,Maryland, USA,November1995.

[ACM97] ACM. Proceedings of the SecondACM

Work-shop on Role-Based Access Control, Fairfax,

Virginia,USA,November1997.

[ACM98] ACM. Proceedings of the Third ACM

Work-shop on Role-Based Access Control, Fairfax,

Virginia,USA,October1998.

[Awi97] Roland Awischus. Role based access control

withsecurityadministrationmanager(SAM).

In Proceedings of the SecondACM Workshop

onRole-BasedAccessControl [ACM97],pages

61{68.

[Bar95] JohnBarkley. Implementingrole-basedaccess

controlusingobjecttechnology.InProceedings

of the First ACM Workshop on Role-Based

AccessControl [ACM95],pages93{98.

[BC98] John Barkley and Anthony Cincotta.

Man-aging role/permission relationshipsusing

ob-jectaccess types. InProceedings of the Third

ACMWorkshoponRole-BasedAccessControl

[ACM98],pages73{80.

(12)

com-306,TheMITRE Corporation,Bedford,MA,

USA,March1975.

[Dep98] Department of Health and Human Services.

Security and Electronic Signature Standards;

ProposedRule,August1998.45CFRPart142.

[ES95] Jeremy Epstein and Ravi Sandhu. NetWare

4as an example of role-based access control.

In Proceedings of the First ACM Workshop

onRole-BasedAccessControl [ACM95],pages

71{82.

[Giu98] LuigiGiuri.Role-basedaccesscontrolinJava.

In Proceedings of the Third ACM Workshop

onRole-BasedAccessControl [ACM98],pages

91{99.

[Kar96] Gunter Karjoth. Analysisof authorization in

CORBA security. Technical report, IBM

Re-search Division, Zurich Research Laboratory,

December1996.

[Lam71] ButlerLampson.Protection.InIn5th

Prince-ton Symposium on Information Science and

Systems,pages437{443,1971.

[Mey97] WilliamJ.Meyers.RBACemulationon

trust-ed DG/UX. In Proceedings of the Second

ACMWorkshoponRole-BasedAccessControl

[ACM97],pages55{60.

[Not95] LouAnna Notargiacomo. Role-based access

controlinORACLE7andTrustedORACLE7.

In Proceedings of the First ACM Workshop

onRole-BasedAccessControl [ACM95],pages

65{69.

[Obj98] Object Managment Group. CORBAservices:

Common Object Services, July 1998. OMG

documentnumber: formal/98-07-05.

[SCFY96] Ravi Sandhu, Edward Coyne, Hal Feinstein,

andCharles Youman. Role-basedaccess

con-trol models. IEEE Computer, 29(2):38{47,

February1996.

[SP98] RaviSandhuandJoonS.Park.Decentralized

user-role assignment for web-based intranets.

In Proceedings of the Third ACM Workshop

onRole-BasedAccessControl [ACM98],pages

tone. ObjectManagementArchitectureGuide.

JohnWiley&Sons,3edition,June1995.

[Won97] RaymondK.Wong.RBACsupportin

object-orientedrole databases. InProceedings of the

SecondACMWorkshop onRole-BasedAccess

Control [ACM97],pages109{120.

Appendix

DenitionsofRBACmodelsfrom [SCFY96]:

Denition4.1 The R BAC

0

model has the following

components:

U,R,P,andS (users,roles,permissionsandsessions

respectively),

PA P R , a many-to-many permission to role

assignmentrelation,

UAUR ,amany-to-manyusertoroleassignment

relation,

user : S ! U, afunction mapping each session s

i

tothesingleuseruser(s

i

)(constantforthesession's

lifetime), and

roles : S ! 2 R

, afunction mappingeachsession s

i

to aset ofroles roles(s

i

)fr j(user(s

i

),r)2UAg

(whichcanchangewithtime)andsessions

i hasthe permissions S r2roles(si) fp j(p,r)2PAg 2

Denition4.2 The R BAC

1

model has the following

components:

U, R, P, S, PA, UA, and user are unchangedfrom

R BAC

0 ,

RHRR is apartial order onR called the role

hierarchyorroledominancerelation,alsowritten as

,and

roles : S !2 R

is modiedfrom RBAC

0 to require roles(s i ) fr j(9r 0 r)[ (users(s i ),r 0 )2UA ]g

(whichcanchangewithtime)andsessions

i hasthe permissions S r2roles(si) fp j(9r 00 r)[ (p,r 00 )2PA ]g 2

References

Related documents

Whether you write an applet or application, the client needs to first initialize the client-side ORB and then create a stub for the remote object using the CORBA Name Service.

Using this model, we confirmed predictions from linear control theory, showing that stimulation of high average controllability regions resulted in global activation that

*Blackboard course companion sites for Sterling College Professional Development Courses: Field Experience, Introduction to Education, Educational Psychology, Senior Seminar in

Oracle mSQL DB2 ObjectStore ObjectStore Invocation C++ Method Proprietary service object CORBA Wrapped ORB Database Application CORBA push-community Legend J D B C Services

The key distributed object technologies targeted in the MPOG are the Common Object Request Broker Architecture (CORBA) Internet Inter- ORB Protocol (IIOP) from the Object

Requestor Request Resource Provide Credentials Authenticate User IAM Administrator Authorize User Security Administration Access Management Resource Page Produce Audit

This type of client application uses C++ environmental objects to access the CORBA objects in an Oracle Tuxedo domain and the CORBA C++ Object Request Broker (ORB) to process

What this meant is that many of the children that I was interviewing in the secondary schools of the small towns of Valença were being brought up as foster children