Truyen2U.Net quay lại rồi đây! Các bạn truy cập Truyen2U.Com. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

Cap phep

Abstract (lý thuyết)

Authorization(sự ủy quyền) infrastructures manage privileges(quyền) and render(đưa ra) access control decisions,allowing applications to adjust their behavior according to the privileges allocated(phân bố, phân tán) to users. This paper describes the PERMIS role based authorization infrastructure along with its conceptual authorization, access control, and trust models. PERMIS has the novel concept of a credential validation service, which verifies a user’s credentials prior to access control decision making and enables the distributed management of credentials. PERMIS also supports delegation of authority, thus credentials can be delegated between users, further decentralizing credential management. Finally, PERMIS supports history based decision making which can be used to enforce such things as separation of duties and cumulative use of resources. Details of the design and the implementation of PERMIS are presented along with details of its integration with Globus Toolkit, Shibboleth and GridShib. A comparison of PERMIS with other authorization and access control implementations is given, along with suggestions where future research and development is still needed.

1. Introduction

Policy based authorization infrastructures contain a number of advantages over access control lists and hard coded systems. They are more flexible and scalable, and are application independent. They provide facilities to manage user privileges, render access control decisions, and process the related information. Different types of policies may be supported, such as Credential Issuing Policies, Access Control Policies, Delegation Policies, and Credential Validation Policies. These policies contain the rules and criteria that specify how user privileges (or credentials, which are digitally signed assertions made by some authority about a user’s privileges) are managed and access control decisions are made. In the context of distributed grid systems spanning multiple domains, policy based authorization systems bring a number of specific advantages such as: they can control the issuing of credentials in one domain and allow the autonomous delegation of privileges between users. They can then separately control the validation of these credentials in the resource domain, and allow each resource owner to independently say who he trusts to issue which credentials to whom, and which access rights these valid credentials should have. This is an important feature that most grid systems today do not have.

The authorization infrastructure that we have built is called PERMIS [1]. This paper describes the various components of the PERMIS authorization infrastructure, the conceptual models that lie behind them, and the standards that we have used. We conclude by comparing our work to that of others and describing some of the future work that still needs to be done. The rest of this paper is structured as follows. Section 2 provides the conceptual models of our authorization infrastructure. Section 3 describes the design and implementation of PERMIS. Section 4 presents PERMIS’s integration with Globus Toolkit, Shibboleth and GridShib. Section 5 compares PERMIS to other related research. Section 6 concludes and indicates our plans for the future.

2. Conceptual Models

2.1 The Access Control and Authorization Models

The authorization model paradigm that we have adopted is the well known “Subject – Action – Target” paradigm combined with an enhancement of the ISO Attribute Based Access Control (ABAC) model [25]. Because grids are distributed systems we cannot assume that all the attributes claimed by a user are rightfully his. Consequently we have enhanced ABAC so that subject attributes are presented as digitally signed credentials issued to the subject by one or more trusted (in the eyes of the resource owner) attribute authorities (AAs). A Credential Validation Service is introduced to validate these credentials and determine which of the attributes can rightfully be claimed by the subject. Each resource owner specifies the credential validation policies for gaining access to his resources.

ABAC is a generalization of the well known role based access control (RBAC) model [18], in which a role is not restricted to an organizational role, but can be any attribute of the subject, such as a professional qualification or their current level of authentication (LoA) [23]. In the following discussion we will refer to roles, on the assumption that we mean any attribute that can assigned to a subject. Each subject represents a real world principal, which is the action performer. Subjects are often referred to as users, but they are not limited to human beings. Action is the operation that is requested to be performed on the target. It can be either a simple operation, or a bundle of complex operations that is provided as an integrated set. Target is the object of the action, over which the action is to be performed. A target represents one or more critical resources that need to be protected from unauthorized access.

PERMIS uses the RBAC (or ABAC) model, in which roles are used to model organization roles, user groups, or any attribute of the user. Subjects are assigned attributes, or role memberships. A subject can be the member of zero, one or multiple roles at the same time. Conversely, a role can have zero, one or more subject occupants at the same time. In RBAC a role is associated with a set of privileges, where each privilege is the right to perform a particular action on a particular target. The PERMIS model is more flexible and allows sets of privileges to be assigned to sets of roles, rather than to single roles, since the latter is too restrictive in practice. For example if project managers have some organizational based privileges, project members have some project specific privileges, and project managers have some higher level project specific privileges, then without the ability to assign the latter to a combination of roles (project member and project manager), a new set of roles have to be specially created for each project manager. Thus each subject is authorised to perform the actions corresponding to his role memberships. Changing the privileges allocated to a set of roles will affect all subjects who are members of the role set (or who have been assigned the set of attributes).

PERMIS supports hierarchical RBAC in which roles (or attributes) may be organized in a partial hierarchy, with some being superior to others. A superior role inherits all the privileges allocated to its subordinate roles. For example, if the role Staff is subordinate to Manager, then the Manager role will inherit the privileges allocated to the Staff role. A member of the Manager role can perform operations explicitly authorized to Managers as well as operations authorised to Staff. The inheritance of privileges from subordinate roles is recursive, thus a role ro will inherit privileges from all its direct subordinate roles rs, and indirect subordinate roles which are direct or indirect subordinate roles of rs. Role hierarchies need not apply only to organizational roles, but can apply to any attribute, such as level of authentication (LoA), where there is a natural precedence in the attribute values, in which a higher value implies the privileges of the lower values. In the LoA case, a user who has been authenticated to LoA value 4 (the highest) can be assumed to inherit the privileges assigned to the lower levels of authentication.

Figure 1 shows our high level conceptual model for an authorization infrastructure. Step 0 is the initialization step for the infrastructure, when the policies are created and stored in the various components. Each subject may possess a set of credentials from many different Attribute Authorities (AAs), that may be pre-issued, long lived and stored in a repository or short lived and issued on demand, according to their Credential Issuing Policies. The Subject Source of Authority (SOA) dictates which of these credentials can leave the subject domain for each target domain. When a subject issues an application request (step 1), the application independent policy decision point (PDP) informs the application’s policy enforcement point (PEP) which credentials to include with the user’s request (steps 3-4). These are then collected from the Credential Issuing Service (CIS) or Attribute Repository by the PEP (steps 5-6). The user’s request is transferred to the target site (step 7) where the target SOA has already initialized the Credential Validation Policy that says which credentials from which issuing AAs are trusted by the target site, and the Access Control policy that says which privileges are given to which attributes. The user’s credentials are first validated (step 8). This may require the CVS to pull additional credentials from an AA’s repository or issuing service (step 10). The valid attributes are returned to the PEP (step 9), combined with any environmental information, such as current date and time (step 11), and then passed to the PDP for an access control decision (step 12). If the decision is granted the user’s request is allowed by the PEP (step 14), otherwise it is rejected. In either case, the PDP may also return a set of obligations, which are actions that the PEP must enforce along with the access control decision (step 13). An obligations service is the functional component that is responsible for enacting these obligations. In more sophisticated systems there may be a chain of PDPs that are called by a master PDP, with each PDP in the chain holding a different policy possibly written by a different SOA and possibly written in a different policy language. In this case the master PDP needs to hold a policy combining policy written by the target SOA, which determines the ultimate response to give to the PEP based on the set of granted, denied or don’t know responses returned by the chain of PDPs. Application PEPs however should be shielded from needing to know about this more sophisticated functionality.

2.2 The Trust and Delegation Models

Credentials are the format used to securely transfer a subject’s attributes/roles from the Attribute Authority to the recipient. They are also known as attribute assertions [20]. PERMIS only trusts valid credentials. A valid credential is one that has been issued by a trusted AA or his delegate in accordance with the current authorization policies (Issuing, Validation and Delegation policies).

It is important to recognize the difference between an authentic credential and a valid credential. An authentic credential is one that has been received exactly as it was originally issued by the AA. It has not been tampered with or modified. Its digital signature, if present, is intact and validates as trustworthy by the underlying PKI, meaning that the AA’s signing key has not been compromised, i.e. his public key (certificate) is still valid. A valid credential on the other hand is an authentic credential that has been issued according to the prevailing authorization policies. Credential authenticity is a concern of the authentication system whilst credential validity is a concern of the authorization system. In order to clarify the difference, an example is the paper money issued by the makers of the game Monopoly. This money is authentic, since it has been issued by the makers of Monopoly. The money is also valid for buying houses on Mayfair in the game of Monopoly. However, the money is not valid if taken to the local supermarket because their policy does not recognize the makers of Monopoly as a trusted AA for issuing money. Nevertheless, the money still remains authentic. This is a real problem in the context of grids today. VOMS servers [6] issue credentials and sign them with public key certificates issued by trusted grid CAs, therefore the credentials they issue are authentic. However without a proper functioning authorization system, a grid resource cannot tell the difference between a VOMS credential issued by a VOMS server managed by a trustworthy organization and one that has been quickly set up by a student who has a valid grid public key certificate, since both sets of VOMS issued credentials are authentic.

Recognition of trusted AAs is part of PERMIS’s Credential Validation Policy. The Credential Validation Service (CVS) is the component that checks that each credential issuer is mentioned in this policy directly, or that the credential issuer has been delegated a privilege by a trusted AA either directly or indirectly (i.e. a recursive chain of trusted issuers is dynamically established controlled by the Delegation Policies of the Target SOA and the intermediate AAs in the chain). The PERMIS Credential Validation Policy contains rules that govern which attributes different AAs are trusted to issue, along with a Delegation Policy for each AA. These rules separate AAs into different groups and assign them different rights to issue different attributes to different sets of subjects. Further each AA will have its own Credential Issuing Policy and Delegation Policy. PERMIS assumes that if a credential has been issued and signed by a trusted AA, then it must be conformant to the AA’s Issuing Policy, so this need not be checked any further. However, if the credential was subsequently delegated this may or may not have conformed to the original AA’s Delegation Policy. Therefore when the CVS validates a delegated credential it needs to check that it conforms to the AA’s delegation policy as well as the Target SOA’s delegation policy. This can only be done if the AA makes its delegation policy available to the CVS, which typically means that it must insert its policy into each issued credential. Current international standards for the format of credentials only have limited support for this feature at the moment. For example, X.509 attribute certificates [3] may contain a path length constraint which can be set by an AA to limit the length of the delegation chain, and a name constraints that limits who the delegates can be. As international standards add more delegation policy fields to their credential formats, then the PERMIS CVS will be able to validate that more of the AA’s delegation policy has been adhered to.

The current PERMIS delegation model

constrains delegations to a tree rather than a

directed graph, since this simplifies the process

of credential validation and credential

revocation. A delegate can be given a privilege to

either delegate to others or assert or both. Each

AA may further constrain delegations by validity

times and delegation chain lengths. PERMIS also

ensures that all delegated credentials conform to

the following delegation paradigms:

i)

an issuer cannot delegate more privileges

than he possesses, to ensure constrained

propagation of privileges from issuers to

subjects, and

ii)

an issuer cannot delegate a privilege to

himself or to a superior in the delegation

chain, since the recipient already holds

this privilege. The only reason an issuer

may want to do this, would be to

circumvent the control that he is allowed

to delegate but not assert a privilege, and

by delegating to himself or to a superior

he would be allowed to remove this

control.

The net result of this trust model is that

PERMIS can support multiple AAs issuing

different sets of attributes to the same or different

groups of users, in which each AA can have

different delegation policies, yet the target SOA

can specify an overall Credential Validation

Policy that constrains which of these (delegated)

credentials are trusted to be used to access the

resources under his control. Originally the model

assumed that each subject would be known by

the same globally unique name (typically an

X.500 distinguished name) at each AA. We now

know this isn’t always the case, and so this may

be addressed by providing a name mapping

function that can map between the different

names of a subject in different issuing domains.

This is the approach that is currently being

adopted in projects such as GridShib [10] and

Shintau [26].

2.3 The Coordinated Decision Making Model

Sometimes coordination is needed between

access control decisions. For example, in order to

support mutually exclusive tasks (Separation of

Duties), the PDP needs to know if the same user

is trying to perform a second task in a set of

mutually exclusive ones. Alternatively, if

multiple resources are available but their use is to

be restricted, for example, a maximum of 30GB

of storage can be used throughout a grid, then

each PDP needs to know what the other PDPs

have already granted the user access to. One

model is to use a stateful PDP, which retains

information about previous access control

decisions, in so called retained ADI [25]. This

allows coordination between successive access

control decisions in the same PDP. Extending

this model and communicating the retained ADI

between a set of stateful PDPs would allow

coordinated access control decisions to be made

by multiple distributed PDPs. However, most

PDPs that have been built today are not stateful,

nor do they have the ability to communicate with

each other. Consequently an alternative model is

to store the retained ADI in a central secure

database that is accessible (indirectly) by all the

PDPs, and that can be updated (indirectly) by

them. In this model the retained ADI is modeled

as attributes of a Coordination object, and a

Policy Information Point (PIP) retrieves this

information on behalf of the PDPs. Obligations

in the policy say how this information should be

updated, and the Obligations service performs

the updates on behalf of the PDPs. A fuller

description of this model and its implementation

in PERMIS can be found in [29]. Modifying

PERMIS to hold retained ADI and support

Separation of Duties policies is described in [28].

3. PERMIS: A Modular Authorization

Infrastructure

The PERMIS authorization infrastructure is

shown in Figure 2. The PERMIS authorization

infrastructure provides facilities for policy

management, credential management, credential

validation and access control decision making. It

is necessary for applications to intercept users’

requests, ask PERMIS to validate the user’s

credentials and make an access control decision,

and then enforce the access control decisions and

obligations that are returned by PERMIS.

3.1 Policy Management

PERMIS Policies are rules and criteria that the

decision making process uses to render decisions.

It mainly contains two categories of rules, trust

related rules (Credential Validation Policy) and

privilege related rules (Access Control Policy).

Trust related rules specify the system’s trust in

the distributed Attribute Authorities, and which

attributes they are allowed to assign to whom.

Only credentials issued by trusted AAs within

their authority will be accepted. Privilege related

rules specify the domains of targets, the actions

supported by the targets, the role hierarchies, the

privileges assigned to each role and the

conditions under which these privileges may be

used, for example, the times of day or the

maximum amount of a resource that may be

requested. In terms of the RBAC model, the trust

related rules control the user-role assignments,

whilst the privilege related rules control the role-

privilege assignments.

PERMIS provides a policy management tool,

the Policy Editor [13] (see Figure 3), which users

can use to compose and edit PERMIS policies.

The GUI interface of the Policy Editor

comprises: the subject policy window (Where

Users Are From), the trusted AA policy window

(User Account Administators), the user-role

assignment policy window (Account

Administrator Privileges), the role hierarchy

policy window (User’s Roles), the target

resource policy window (My Protected

Resources), the action policy window

(Resources’ Functions) and the role-privilege

assignment policy window (Users’ Privileges).

These windows provide forms for users to fill in,

then the tool generates the corresponding

PERMIS policy in XML. Policies can be saved

as pure XML in text files, or the XML can be

embedded as a policy attribute in an X.509

Attribute Certificate (AC) [3], digitally signed

with the policy author’s private key (held in a

PKCS#12 file) then stored in either a local file,

LDAP directory or WebDAV [27] repository.

Various helpers in the Policy Editor are capable

of retrieving subject and AA names from LDAP

directories, and setting times and dates in the

correct format. Authors can use the Policy Editor

to browse the LDAP directories and WebDAV

repositories to select existing policies to update

them.

3.2 Credential Management

The Credential Management system is

responsible for issuing and revoking subject

credentials. The Attribute Certificate Manager

(ACM) tool is used by administrators to allocate

attributes to users in the form of X.509 ACs.

These bind the issued attributes with the

subject’s and issuer’s identities in a tamper-proof

manner. The ACM has a GUI interface that

guides the manager through the process of AC

creation, modification and revocation. The

manager can search for a user in an attached

LDAP directory or WebDAV repository, or enter

the DN of the user directly. There is then a

picking list of attribute types (e.g. role, affiliation

etc.), to which the manager can add his own

value (e.g. project manager). There is a pop up

calendar allowing the manager to select the dates

between which the AC is valid, plus the option of

adding appropriate times of day to these. Finally

the manager can add a few standard selected

extensions to the AC, to say whether the holder

is allowed to further delegate or not, and if so,

how long the delegation chain can be ("basic

attribute constraints" extension [3]), or if the

holder may assert the attributes or only delegate

them to others ("no assertion" extension [4]).

Finally, the manager must add his digital

signature to the AC, so the GUI prompts him for

the PKCS#12 file holding his private key and his

password to unlock it. Once the AC is signed, the

manager has the option of storing it in an LDAP

directory, WebDAV repository or local filestore.

Besides creating ACs, the ACM allows the

manager to edit existing ACs and to revoke

existing ACs by deleting them from their storage

location. Note that at present revocation lists

have not been implemented, because short

validity times or deletion from storage have been

sufficient to satisfy our current user requirements.

The Delegation Issuing Service (DIS) is a

web service that dynamically issues X.509 ACs

on demand when requested to by the delegator. It

may be called directly by an application’s PEP

after a user has invoked the application, to issue

short lived ACs to the application for the

duration of the user’s task. Alternatively there is

a http interface that lets users invoke it via their

web browers to dynamically delegate their

existing longer lived credentials to other users, so

as to enable them to act on their behalf. This is

especially powerful, as it empowers users to

delegate (a subset of) their privileges to other

users without any administrative involvement.

Because the DIS is controlled by its own

PERMIS policy, written by the Subject SOA, an

organization can tightly control who is allowed

to delegate what to whom, and then leave its

subjects to delegate as they see fit. The DIS

stores all delegated credentials in a locally

configured LDAP server or WebDAV repository,

so that they can be retrieved on demand by the

authorization system (in steps 6b and 8b). The

DIS has a number of advantages over the ACM,

such as: users do not need to have X.509 public

key certificates as all issued credentials are

signed by the DIS, delegation chains are kept to a

maximum length of 2, and revoking a user’s

credential does not automatically revoke any

credentials he may have already delegated. More

details of the DIS can be found in [2].

3.3 Authorization Decision Engine

The PERMIS Authorization Decision Engine is

responsible for credential validation and access

control decision making. Credential validation is

the process that enforces the trust and delegation

model of PERMIS as described in Section 2.2,

and ensures that only valid roles/attributes are

attributed to users. Access control decision

making is the process that ensures only users

with the required attributes gain access to the

protected resources. Together they enforce the

enhanced ABAC model described in Section 2.1.

The CVS extracts the subset of valid attributes

from the set of available credentials, according to

the Target SOA’s Credential Validation Policy.

The PDP makes access control decisions based

on the Target SOA’s access control policy and

the valid attributes passed from the CVS. The

PERMIS authorization decision engine is

superior to conventional PDPs since it has the

ability to validate credentials and delegation

chains, which is not a common capability of

conventional PDPs e.g. Sun’s XACML PDP

[15]. Furthermore it supports history based

decision making and multi-session separation of

duties [28]. Figure 4 depicts the overall

architecture of the PERMIS Authorization

Decision Engine. It comprises five main

components: the PDP, the CVS, the Credential

Retriever, the Credential Decoder, and the Policy

Parser.

3.4 The PDP

The PDP component is responsible for making

access control decisions based on the valid

attributes of the user and the Target SOA’s

access control policy, which is a subset of the

PERMIS policy.

At initialization time the Target SOA’s

PERMIS policy is read in (step 0 in Figure 2)

and parsed by the Policy Parser so that both the

PDP and CVS are ready to operate. Both plain

XML policies and digitally signed and protected

policies can be read in. The former are stored as

text files in the local filestore whilst the latter are

stored as X.509 policy ACs in either the local

filestore, or the Target SOA’s entry in an LDAP

directory or WebDAV repository. X.509 ACs are

tamper resistant and integrity protected, whereas

text files have to be protected by the operating

system.

Each time the user makes a request to the

application to perform a task (step 1 or 7 in

Figure 2), the PEP passes this request to the

PERMIS PDP (step 3 or 11) along with user’s

valid attributes and any required environmental

attributes such as the time of day. The PEP needs

to know which environmental attributes are

needed by the access control policy, and since

the PEP is application specific software, it is

more likely that the access control policies will

be restricted to constraints based on the

environmental attributes that the PEP is capable

of passing to the PDP.

3.5 The CVS

As described in Section 2.2, all credentials

allocated to subjects will be validated by the

CVS according to the Target SOA’s credential

validation policy, which is a subset of the

PERMIS policy. Figure 5 illustrates the detailed

architecture of the CVS, along with the internal

data flows and sequence of events.

Figure 5: Data Flow Diagram for Credential Validation

Service Architecture

First of all the service is initialised by giving it

the credential validation policy. The policy

parsing module described in Section 3.4 is

responsible for this. When the user activates the

application, the target PEP requests the valid

attributes of the subject (step 1 in Fig 4, step 8a

in Fig 2). Between the request for attributes and

returning them (in step 6 or 9 respectively) the

following events may occur a number of times

i.e. the CVS is capable of recursively calling

itself as it determines the path in a delegation tree

from a given credential to a trusted AA specified

in the policy.

The Credential Validation Policy Enforcer

requests credentials from the Credential

Retriever (step 2). PERMIS can operate in either

credential pull mode or credential push mode. In

credential push mode the application passes the

user’s credentials along with his request to the

target PEP (Step 7 in Fig 2) and the PEP passes

them to the CVS. In credential pull mode, the

credentials are dynamically pulled from one or

more remote credential providers (these could be

AA servers, LDAP or WebDAV repositories

etc.) by the CVS (step 8b in Fig 2, step 2 in Fig

4). The actual attribute request protocol (e.g.

SAML or LDAP) is handled by the appropriate

Credential Retriever module, whilst the

credential format is handled by the appropriate

Credential Decoder module. When operating in

credential push mode, the PEP stores the already

obtained credentials in a local Credential

Provider repository and pushes the repository to

the CVS, so that the CVS can operate in logically

the same way for both push and pull modes.

After credential retrieval, the credentials are

passed to the Credential Decoding module (step

3 Fig 4). From here they undergo the first stage

of validation – credential authentication (step 4).

Because only the Credential Decoder is aware of

the actual format of the credentials, it has to be

responsible for authenticating the credentials

using an appropriate Credential Authenticator

module. Consequently, both the Credential

Decoder and Credential Authenticator modules

are encoding specific modules. For example, if

the credentials are digitally signed X.509 ACs,

the Credential Authenticator uses the configured

X.509 PKI to validate the signatures. If the

credentials are XML signed SAML attribute

assertions, then the Credential Authenticator uses

the public key in the SAML assertion to validate

the signature. The Credential Decoder

subsequently discards all unauthentic credentials

– these are ones whose digital signatures are

invalid. Authentic credentials are decoded and

transformed into an implementation specific

local format that the Policy Enforcer is able to

handle (step 5).

The task of the Policy Enforcer is to decide if

each authentic credential is valid (i.e. trusted) or

not. It does this by referring to the Credential

Validation Policy to see if the credential has been

issued by a trusted AA or not. If it has, it is valid.

If it has not and it is a delegated credential, the

Policy Enforcer has to work its way up the

delegation tree from the current credential to its

issuer and from there to its issuer, recursively,

until a trusted AA is located, or no further issuers

can be found (in which case the credential is not

trusted and is discarded). Consequently steps 2-5

are recursively repeated until closure is reached

(which, in the case of a loop in the credential

chain, will be if the same credential is

encountered again). Remember that in the

general case there are multiple trusted credential

issuers, who each may have their own Delegation

Policies, and these must be enforced by the

Policy Enforcer as much as is possible from what

has been provided in the issued credentials.

The CVS can be customized by PERMIS

implementers, by implementing their own

credential retrieval and decoding services and

plugging them into PERMIS. This enables

implementers to adopt credential formats and

retrieval protocols that are not yet implemented

by PERMIS, such as local proprietary formats.

PERMIS can theoretically be customized to

support any application specific credential

validation requirements.

4. Integrating PERMIS

4.1 Integration with GT4

Globus Toolkit (GT) is an implementation of

Grid software, which has a number of tools that

make development and deployment of Grid

Services easier [9]. One of the key features of

this toolkit is secure communications. However,

Globus Toolkit has limited authorization

capabilities based on simple access control lists

and grid mapfiles. To improve its authorization

capabilities a Security Assertions Markup

Language (SAML) authorization callout has been

added. SAML [20] is a standard designed by the

Organization for the Advancement of Structured

Information Standards (OASIS) to provide a

universal mechanism for conveying security

related information between the various parts of

an access control system. The Open Grid Forum

(OGF) has produced a profile of SAML for use

in Grid authorization [19]. Consequently it is

now possible to deploy an external authorization

service that GT will contact to make

authorization decisions on its behalf. A

standalone PERMIS Authorization Service has

been developed to provide this type of

authorization decision to GT3 and GT4 through

the SAML callout [8].

PERMIS has also been integrated with GT4

via its Java call outs to custom Policy Information

Points (PIPs) and PDPs. In this case the PERMIS

CVS is configured as a custom PIP and the

PERMIS PDP is configured as a custom PDP.

Information between the two modules is carried

in the format of an XACML request context [14].

4.2 Integration with Shibboleth

Shibboleth [21] is a cross-institutional

authentication and authorization architecture for

single sign on and access control of web

resources. Shibboleth defines a protocol for

carrying authentication information and user

attributes from the user’s home site to the

resource site. The resource site can then use the

user attributes to make an access control decision

about the user’s request. A user only needs to be

authenticated once by the home site in order to

visit other Shibboleth protected resource sites in

the federation, as the resulting authentication

token is recognized by any member of the

federation. In addition to this, protection of the

user’s privacy can be achieved, since the user is

able to restrict what attributes will be released to

the resource providers from his/her home site.

However Shibboleth’s built in access control

decision making based on the user’s attributes is

simplistic in its functionality, and the

management of the access controls is performed

together with web server administration at the

resource site. Furthermore, distributed

management of credentials and dynamic

delegation of authority are not supported. To

rectify these deficiencies, a Shibboleth-Apache

Authorization Module (SAAM) has been

developed which integrates PERMIS with

Shibboleth. SAAM plugs into Apache and

replaces the Shibboleth authorization

functionality with calls to the PERMIS

authorization decision engine. A full description

is provided in [5]

PERMIS extends the access control model

used in Shibboleth by introducing hierarchies of

roles, distributed management of attributes, and

policy controlled decisions based on dynamically

evaluated conditions. PERMIS supports the

existing semantics of Shibboleth attributes, but

also allows X.509 ACs to be used instead, where

more secure credentials are needed.

4.3 Integration with GridShib

GridShib [10] provides interoperability between

Globus Toolkit [9] and Shibboleth [21]. The

GridShib Policy Information Point (PIP) (see

Figure 6) retrieves a user’s attributes from the

Shibboleth Identity Provider (IdP). The

Distinguished Name Binder component is

responsible for mapping the user’s DN, obtained

by the GridShib PIP from the proxy certificate,

into the user’s Shibboleth identity. The retrieved

attributes are parsed and passed to the GT4 PEP

which then feeds them to the PDP for an

authorization decision. GridShib integrates

Shibboleth’s attribute management functionality

with GT4’s authorization decision making for

Grid jobs. However, like GT4, GridShib provides

only limited PDP functionality, which is based

on access control lists and is not capable of

coping with dynamically changing conditions,

which a policy based engine is.

Figure 6: GridShibPERMIS Integration Scheme

GridShibPERMIS provides a GridShibPERMIS

Context Handler that can be integrated with GT4

as a Java callable PDP. The Context Handler is

invoked by GT4 when an authorization decision

is to be made. The Context Handler is fed with

the user’s attributes that have been retrieved from

the Shibboleth IdP. They are parsed and stored in

a local Credential Provider Repository, ready to

be accessed by the PERMIS CVS as described in

Section 3.5. The Context Handler calls the CVS,

which ensures that the attributes are valid

according to the Target SOA’s policy; then calls

the PDP, which renders an access control

decision, and finally it returns the result to GT4.

5. Related Work

Manandhar et at. [12] present an application

infrastructure in which a data portal allows users

to discover and access data over Grid systems.

They propose an authorization framework that

allows the data portal to act as a proxy and

exercise the user’s privileges. When a user

authenticates to the data portal, a credential is

generated stating that the data portal is

authorized to exercise the user’s privileges for a

specific period. The credential is then used by the

data portal to retrieve the user’s authorization

tokens from various providers. When requesting

a service from a service provider, the data portal

presents both the credential and the authorization

tokens. The authorization decision is then made

by the service provider. The proposed

infrastructure mainly focuses on the interaction

between different systems in the Grid

environment, with no in depth discussion about

the access control model or the trust model.

Credential verification is also missing from the

discussion.

XACML [14] defines a standard for

expressing access control policies, authorization

requests, and authorization responses in XML

format. The policy language allows users to

define application specific data types, functions,

and combining logic algorithms, for the purpose

of constructing complex policies. Sun’s open

source XACML implementation [15] is a java

implementation of the XACML 2.0 standard and

provides most of the features in the standard. The

XACML policy language is richer than that of

PERMIS’s PDP policy, but XACML has not yet

addressed the issue of credential validation and is

only now working on dynamic delegation of

authority [22].

The Community Authorization Service (CAS)

[11] was developed by the Globus team to

improve the manageability of user authorization.

CAS allows a resource owner to grant access to a

portion of his/her resource to a VO (or

community – hence the name CAS), and then let

the community determine who can use this

allocation. The resource owner thus partially

delegates the allocation of authorization rights to

the community. This is achieved by having a

CAS server, which acts as a trusted intermediary

between VO users and resources. Users first

contact the CAS asking for permission to use a

Grid resource. The CAS consults its policy

(which specifies who has permission to do what

on which resources) and if granted, returns a

digitally self-signed capability to the user

optionally containing policy details about what

the user is allowed to do (as an opaque string).

The user then contacts the resource and presents

this capability. The resource checks that the

capability is signed by a known and trusted CAS

and if so maps the CAS’s distinguished name into

a local user account name via the Grid mapfile.

Consequently the Grid mapfile now only needs to

contain the name of the trusted CAS servers and

not all the VO users. This substantially reduces

the work of the resource administrator. Further,

determining who should be granted capabilities

by the CAS server is the task of other managers

in the VO community, so this again relieves the

burden on resource managers. For finer grained

access control, the resource can additionally call a

further routine, passing to it the opaque policy

string from the capability, and using the returned

value to refine the access rights of the user.

Unfortunately this part of the CAS

implementation (policy definition and evaluation

routine) were never fully explored and developed

by the Globus team. This is precisely the

functionality that PERMIS has addressed.

The main purpose of SPKI [16] is to provide

public key infrastructures based on digital

certificates without depending upon global

naming authorities. SPKI binds local names and

authorizations to public keys (or the hash values

of public keys). Names are allocated locally by

certificate issuers, and are only of meaning to

them. SPKI allows authorizations to be bound

directly to public keys, removing the process of

mapping from authorization to names and then to

public keys. SPKI supports dynamic delegation

of authorizations between key holders, and

allocation of authorizations to groups. Though

SPKI can convey authorization information, it

does not cover authorization decision making or

access control policy issues. One can thus

regards SPKI as an alternative format to X.509

ACs or SAML attribute assertions for carrying

credentials, and PERMIS could easily be

enhanced to support this format of credential if it

were required.

The EU DataGrid and DataTAG projects have

developed the Virtual Organisation Membership

Service (VOMS) [6] as a way of delegating the

authorization of users to managers in the VO.

VOMS is a credential push system in which the

VOMS server digitally signs a short lived X.509

role AC for the VO user to embed in his proxy

certificate and present to the resource. The AC

contains role and group membership details, and

the Local Centre Authorization Service (LCAS)

[7] makes its authorization decision based upon

the user’s AC and the job specification, which is

written in job description language (JDL) format.

This design is similar in concept to the CAS, but

differs in message format and syntax. However

what neither VOMS nor CAS nor LCAS provide

is the ability for the resource administrator to set

the policy for access to his/her resource and then

let the authorization infrastructure enforce this

policy on his/her behalf. This is what systems

such as PERMIS and Keynote [17] provide. It

will therefore be relatively easy to replace LCAS

with the PERMIS decision engine, so that VOMS

allocated role ACs can be pushed to the resource

site for PERMIS to make the policy controlled

authorization decisions. This is the subject of the

current VPMan project [24].

KeyNote [17] is a trust management system

that provides a general-purpose mechanism for

defining security policies and credentials, and

rendering authorization decisions based on them.

KeyNote provides a language for defining both

policies and assertions, where policies state the

rules for security control, and assertions contain

predicates that specify the granted privileges of

users. KeyNote has been implemented and

released as an open source toolkit. But KeyNote

is not without its limitations. Keynotes policies

and credentials are in their own proprietary

format. KeyNote credentials have no time limit,

and Keynote has no concept of revocation of

credentials. Further, policies define the roots of

trust, but the policies themselves are not signed

and therefore have to be stored securely and are

only locally trusted.

6. Conclusions

This paper briefly presents our work on

designing and building a modular policy based

authorization infrastructure. We have explained

the conceptual models that underpin PERMIS

and summarized the design and the

implementation of the various functional

components that comprise the PERMIS

authorization infrastructure. These provide

support for policy management, attribute

management, and authorization decision making.

We have provided details about our new

conceptual component, the credential validation

service. Finally, we have presented a comparison

of related work, pointing out their relative

advantages and disadvantages as compared to

PERMIS.

6.1 Future Work

Obligations are actions that are required to be

fulfilled along with the enforcement of access

control decisions. Whilst PERMIS already

supports obligations in its policies and will return

them along with its access control decisions, the

major area for research and development is

building a general purpose application

independent Obligations Service to form part of

the authorization infrastructure.

Constructing a master PDP that can

coordinate the calling of multiple subordinate

PDPs and can combine their varying decisions

into one overall decision for the PEP, is another

area for research and development.

Finally, defining a standard mechanism for

aggregating attributes from multiple authorities,

where the user is known by different names at

the different authorities, is another challenging

avenue of research which we are currently

undertaking in the Shintau project [26].

Acknowlegements

We would like to thank the UK JISC for funding

part of this work under the DyCOM, DyVOSE,

SIPS and GridAPI projects, and the EC for

funding part of this work under the TrustCoM

project (FP6 project number 001945).

Welcome to the PERMIS web site

There are two separate aspects to securing access to your computer based resources: determining who the users are, and determining what they are allowed to do. The first of these is called authentication, the second is called authorisation (or privilege management). PERMIS is an authorisation system that complements your existing authentication system.

So...

What does PERMIS do for you? It helps to control access to your computer resources When users request access to your resources, PERMIS makes the access control decisions for you based on your access control policies and the roles of the users It uses only your policies, and makes sure they have not been tampered with first It allows you to delegate to trusted individuals the ability to assign roles to users on your behalf It makes sure that the trusted individuals do not exceed their delegated authority It supports dynamic delegation of authority, which allows any user with a role to delegate it to other users in the same group

...and

What do you have to do for PERMIS? Define who your users are, by defining the user groups and the roles that users can have Write your authorisation policy Assign roles to users or delegate this task to others Establish agreements with other service providers, so that your users can use their resources and their users can use your resources You will also need An Authentication scheme, for example, username/password, Kerberos, PKI, etc.

PERMIS provides you with the software that makes access control decisions, and also gives you the tools for managing your policies, your role assignments, and delegations between users.

Uses of our software: PERMIS Role Based Access Controls provides a Java API, so it can be embedded into virtually any application that requires user authorisation.

For some applications there is no need to write any code as PERMIS is already embedded in them. All you need to do is download and install PERMIS along with: Globus Toolkit (v3.3 onwards). PERMIS authorisation can control access to Grid Services Apache . PERMIS authorisaton can protect web sites Shibboleth. PERMIS authorisation can be combined with Shibboleth's Single Sign-On to provide policy driven fine grained role based access controls within federations .Net. PERMIS authorisation can be combined with Microsoft .Net to authorise web services Python. PERMIS authorisation can be called from Python to provide the access controls for Python programs

What is PERMIS?

PERMIS is an authorisation infrastructure. Given the distinguished name of a user, a target that the user wishes to access, the mode of access, plus optional environmental parameters such as time of day, PERMIS will say whether the user is authorised to access the target or not.

What is the difference between roles, attributes and attribute certificates?

An attribute is simply a property of an object. An attribute comprises a type and a value for example, attribute type = name, attribute value = John Smith, and attribute type = role, attribute value = project manager. A role is just one type of attribute that is typically used to signify the position that someone has in an organisation. Attribute certificates (ACs) are attributes that are certified by an Attribute Authority (AA) as belonging to a particular object. The AC is digitally signed by the AA to show this linkage. If you trust the AA, then you can trust that the object has the attribute specified in the AC. The international standard for attribute certificates is X.509(2001).

Does a user who possesses an X.509 attribute certificate also need to have an X.509 public key certificate (digital id) as well?

No. A user can authenticate to the PERMIS protected application using whatever mechanism the application supports e.g. Kerberos, username/password, RADIUS, etc. The only PERMIS user who should have a public key certificate is the SoA who writes the policy for the resource, in order to sign it. But even this is not necessary in the latest PERMIS release, since PERMIS will now accept unsigned policies.

How does PERMIS work?

PERMIS requires the Sources of Authority (SoA) to set the policies for every resource they own. A PERMIS policy says who the users are that are covered by the policy, what roles/attributes are supported, who is allowed to allocate the roles to the users, what resources are covered by the policy, what actions are supported by the resources (e.g. read, write, delete), and what privileges (actions on resources) are granted to each role. PERMIS then checks the X.509 ACs that are possessed by the user, and sees if these conform to the policy, and if they are sufficient to grant the access being requested

.I can't get the Attribute Certificate Manager (ACM) or Policy Editor (PE) to write ACs to my LDAP server

Please check the following:

Can you contact your LDAP server using a standard LDAP browser (e.g. Netscape or Microsoft Search for People) and retrieve entries from it? This will show that you don't have any connectivity or firewall problems.

Did you modify the schema of the LDAP server to allow X.509 ACs to be stored in the entries, by adding the PMI object class?

Does the entry already exist in the LDAP server? Remember that the ACM and PE do not create entries, they only add ACs to existing entries.

How is authentication to be done with the LDAP server. If for example SSL is required, this could cause a problem. It would be best to switch to simple password authentication before trying again.

Have you set the access controls on the entry so that the ACM and PE can write to the entry?

Some LDAP servers have bugs. Specifically, Sun ONE/Sun Java System Directory Server (DS v5.2 and earlier) does not fully conform to RFC 1777 and RFC 2251 (LDAPv2 and LDAPv3 respectively) in that it does not allow the client to use object identifiers (OIDs) to identify attributes such as the attributeCertificateAttribute when adding them to an entry (specifically it cannot support 2.5.4.58;binary). The PERMIS ACM and PE tools allow the value of this attribute to be configurable. It should be the name of the attribute type in your iPlanet schema whose OID is 2.5.4.58 (it is usually the attributeCertificateAttribute attribute type). Append ";binary" to the attribute type name for v3 LDAP servers. The Sun ONE/Sun Java Directory Server development team inform us this bug might be fixed in Sun ONE/Sun Java DS 5.2 patch 2. It is not fixed in earlier versions of DS

.I can't get the ACM or PE to sign ACs. I am using Java Runtime Environment 1.4

The PKCS#12 file is encrypted using triple DES, which is too strong according to the US export law. The key size is not recognised by the Java Virtual Machine and that causes signing to fail. To allow the keys of bigger size, you need to install a different cryptography strength jurisdiction files.

See the bottom of Sun's download page for the jurisdiction files and installation instructions.

After this the ACM and PE will be able to sign the ACs.

What is PERMIS?

An authorisation infrastructure. PERMIS is an infrastructure that provides all the necessary facilities for users to manage privileges and authorisation policies and for applications to make authorisation decisions.

As to privilege management, PERMIS provides the Attribute Certificate Manager (ACM) and the Bulk Loader for managers to allocate privilege to users. The generated privilege information is stored in X.509 Attribute Certificate format. PERMIS also provides the Delegation Issuing Service (DIS), which allows users to delegate (a subset of) their privileges to other users in their domain, according to the site's delegation policy.

As to policy management, PERMIS provides the Policy Editor to allow administrators to easily construct authorisation policies for their applications and delegation policies for their Delegation Issuing Service. The policies are created in XML format, and may then be optionally protected by encapsulating in an X.509 policy attribute certificate, digitally signed by the administrator.

As to authorisation decision making, PERMIS provides a modular policy decision point (PDP) and a credential validation service (CVS).

+The credential validation service is used to validate if the allocation of privileges is valid or not. (The need for this is due to the fact that privileges may be managed in a distributed manner, thus potentially anybody can allocate any privileges to anyone else, but only some of these allocation will be recognised by the PERMIS CVS as being valid). The CVS is a core component that will be integrated with applications, and it returns the set of valid attributes for a user, ready for the PDP to make an authorisation decision.

+The policy decision point is renders an authorisation decision for a user's access request, normally in the form of granted or denied. The PDP is a core component that will be integrated with applications, and it is responsible for making the authorisation decisions when applications need to verify if a requested operations is authorised or not. The applications is responsible for enforcing the decisions returned from the PDP.

The underlying technologies of PERMIS are Role Based Access Control and Policy based Management.

+Role Based Access Control (RBAC). RBAC allows PERMIS to group all users into roles (or attributes), each role/attribute is associated with a collection of privileges. A user's membership of a role will allow the user to exercise the privileges associated with the role.

+Policy based Management. Authorisation criteria are specified as a collection of rules, and these rules are stored as a policy. The policy is then used by the PERMIS PDP when it renders authorisation decisions and by the PERMIS CVS when it returns the valid sets of user attributes. In this way, PERMIS is not hard coded with the authorisation rules. Administrators can change the policy for an application, which in turn will change PERMIS's authorisation decision results. Changing policies will not require any change of the applications' implementation or any recompiling of the application's code.

The underlying architecture of PERMIS is a distributed architecture. Normally the following principals/entities will be involved in the architecture.

+System Administrators (called Sources of Authority in PERMIS). System administrators are principals responsible for composing the rules for the decision making and credential validation services. These rules are kept as policies. The rules for decision making specify the association of privileges to roles/attributes, saying what privileges have been assigned to every role/attribute in the system. The rules for credential validation specify the way that PERMIS recognizes valid Attribute Administrators and valid credentials that they have issued, as credentials may be issued by many parties that are not trusted by the system administrators in the current domain.

+Attribute Administrators (or Attribute Authorities). Attribute administrators (AAs) issue attributes to users. These attributes are normally used to associate users with roles. Thus with the issued attributes, PERMIS can know what roles a user has been assigned to. Attributes will be managed in the form of credentials.

+Users. Users are the principals that perform operations on the protected resources. Users can be human beings or applications.

+Applications. Applications are the programs that do useful things for users and provide users with interfaces to access protected resources. Applications will need to intercept the users' request to access protected resources, and solicit authorisation decisions from PERMIS. The application will then need to enforce the authorisation decisions returned by PERMIS. This enforcement is normally to reject the user's request to access the resource if the authorisation decision is "denied" and to allow access to the resource is the decision is "granted".

+Resources. Resources are valuable computer based resources that need to be protected from being wasted, damaged or used improperly by users.

=>To summarise, system administrators will write authorisation policies, specifying what roles have which privileges, and what kind of credentials will be recognized by PERMIS. The authorisation policy will be used by PERMIS for all reasoning regarding authorisation. Attribute administrators will issue credentials to users containing attributes, telling what roles the users have. When a user requests access to a protected resource, the user's credentials will be analysed by PERMIS, and only those attributes that can be validated by the credential validation rules in the policy will be recognized as valid by PERMIS. Then PERMIS will use the association of attributes and privileges as specified in the policy to render an authorisation decision for the user's request.

Other related technologies.

LDAP is used by PERMIS as a network accessible repository for storing policies and credentials. LDAP support is optional in modular PERMIS, as the system can use other repositories such as local file stores. PERMIS also allow programmers to extend the capabilities of PERMIS to access other repositories such as databases, web pages, etc.

X.509 Attribute Certificates were compulsory in early versions of PERMIS, to provide trust and tamper-proof resistance to policies and credentials. In the current version of PERMIS, X.509 attribute certificates are no longer compulsory, as other formats are supported, including plain XML policies and SAML attribute assertions. PERMIS also allow programmers to extend the capabilities of PERMIS to access other formats for credentials and policies.

Bạn đang đọc truyện trên: Truyen2U.Com

Tags: