Academia.eduAcademia.edu

Globus security model for grid environment

2005, ACM Sigsoft Software Engineering Notes

Grid technology is increasingly being looked upon as a natural extension of the internet for engaging in complex data processing tasks over resources which are distributed across the world. Architects and developers employing grid systems must take into consideration security implications. Dynamic generation of virtual organizations leads to a synergistic picture which has to address security requirements never encountered before. Globus toolkit has devised a framework for making secure use of grid resource components which has been proved to be a feasible solution by a number of academic and scientific organizations. This paper is an attempt to identify and discern mechanisms proposed by Globus security model with certain test scenarios [1] .

ACM SIGSOFT Software Engineering Notes Page 1 November 2005 Volume 30 Number 6 1 Globus Security Model for Grid environment Nitin V. Kanaskar1, Umit Topaloglu1, Coskun Bayrak2 Applied Science Department Department of Computer Science University of Arkansas at Little Rock Little Rock, AR [nvkanaskar | umtopaloglu | [email protected]] Abstract Grid technology is increasingly being looked upon as a natural extension of the internet for engaging in complex data processing tasks over resources which are distributed across the world. Architects and developers employing grid systems must take into consideration security implications. Dynamic generation of virtual organizations leads to a synergistic picture which has to address security requirements never encountered before. Globus toolkit has devised a framework for making secure use of grid resource components which has been proved to be a feasible solution by a number of academic and scientific organizations. This paper is an attempt to identify and discern mechanisms proposed by Globus security model with certain test scenarios [1] [2]. Introduction Distributed computing has been used for quite some time with technology specific security implementation catering to the requirements of secure data and services. Technologies like RMI, CORBA, DCOM have been adopted in enterprise environments with composition of these environments in terms of users, resources and services being static. Grids propose to complement and extend these frameworks by forming a dynamic collection of resources – users, machines, applications – spread across multiple enterprises, continents supported by a software backbone called middleware. This middleware transforms heterogeneous resources into a single, coherent, virtual machine [3] [4]. Any distributed computing platform (including grid) needs to satisfy scalability and performance demands. Among what clearly distinguishes grid from these platforms is its features resulting in security requirements which cannot be addressed by existing security technologies for distributed platforms. Elements of grid are decided in dynamic manner such that the trust relationship among these elements needs to be established during application execution time. There may not at all exist any direct security protocol among resources and processes which form this dynamic environment. Each resource belongs to a fixed administrative domain governed by security standards, policies and implementation within the domain. Security functions needed to be adopted in such picture are quite dynamic. Importance of data and application security issues assume critical proportions as more and more industry and academic interests channelize their resources towards implementing cross organizational computing infrastructure. Security Problem For Grid A particular term of interest with regards to grid is Virtual Organization (VO) which consists of computers and other resources federated by different organizations. The structure of this VO is decided by factors like availability and nature of problem to be solved. Some of the very common attributes of grid environment – also called VO - recognized universally are: 1. Coordinated resource sharing in dynamic, multi institutional virtual organizations. 2. Users and resources may be large, unpredictable and dynamic at any point 3. Each resource and user will have local policies and technologies that cannot be replaced by VO 4. Users and resources located in different organizations which do not have trust agreements 5. These organizations have different security protocols and implementations 6. Grid interactions are basically interactions between services and services acting on behalf of users More precisely, these are the security challenges posed by the dynamic and disparate composition of grids. How in a Virtual Organization access to resources and assets is controlled is the crux of the security problem as VO resources and users can be part of multiple different VOs simultaneously [5]. Attempts were made to make grid phenomenon a reality in the form of different projects like united devices, SETI@Home and distributed.net. These grid systems accomplished the task of tapping wasted processor cycles for doing compute intensive calculations. The major issue identified with all these systems was a lack of interoperability with other grid systems. All these grid projects require specific software to be installed which do not adhere to any universal standard encompassing the vastly dynamic security equation pertaining to grids. Quite a number of security technologies have been used for ensuring secure data and applications over enterprise networks. If grid needs to capitalize on the unused computing power of PCs in these enterprises, integration of different existing security implementations in these proves to be indispensable. Over the years, past grid systems have stimulated a clear need for the existence of a well defined standard for possible protocols of secure communication between entities in a multi-enterprise grid system. Global Grid Forum (GGF) is the community involved actively in developing these standards and specifications for grid computing [5]. GGF has come up with a service oriented architecture which defines a set of basic capabilities and functionalities that address prime questions in grid systems. It is known as Open Grid Services Architecture ACM SIGSOFT Software Engineering Notes Page 2 (OGSA) and is principled around web services framework. Globus Toolkit version 3 is the first grid implementation complying with the OGSA. Problem Elaboration Before delving into the specifics of the conceptual model of Globus security infrastructure, a fictitious scenario as explained in Figure 1 would help grasp the challenge in a heterogeneous distributed computing environment. Site B Site A Site CKerberos Data Data Data User Request Data Analysis Connect to Resource Broker Initiate Task Site G Site D- SSL Access Parameter Values Data Data Site F Site E Figure 1: A fictitious distributed computing scenario involving heterogeneous platforms and security implementations Figure 1 depicts a Virtual Organization having a researcher at site A, who initiates an analysis program at a remote site C. Site C has the necessary data storage capability supplying data to be processed. The analysis program leads to running a simulation program for testing the predictions against empirical outputs. Therefore it communicates with a resource broker program at site D to identify resources among organizations which can be used to run simulation experiments. The resource broker starts simulation at sites E and G. Required parameters for the simulations are fetched from site F by these sites. They may also communicate with each other and with the broker program. Thus, a few most distinct attributes of the above described VO are: 1. The user population is large and changing. 2. The quantity and location of resources vary with equal proportion. November 2005 Volume 30 Number 6 2 3. A computation involves dynamic creation of processes on resources from different sites. 4. Resources may be accesses using different authentication and authorization mechanisms. E.g. – Kerberos, plain text passwords, Secure Sockets Layer, and secure shell. Such a diverse combination of resources and users across different organizations demand security solution which assimilates access control needs of all the concerned entities [3]. Globus approach to defining grid security model covers basic security functions of authentication, access control, integrity, privacy and non-repudiation. It also encapsulates following grid specific characteristics: 1. Single sign-on which enables a user to authenticate once and start computations, acquire resources and start other processes without any more authentication process. 2. Interoperability with local security solutions by means of some entities in a domain which act as translators of security functions. 3. Grid application code developed should be exportable to other grid platforms based on OGSA. So security policy must not use anywhere bulk message encryption. 4. A standard credential framework (X.509v3) achieves the aim of expressing security role of an entity. Globus Approach to Grid Security Model Globus security policy consists of security goals, individual entities and the associated set of assumptions designed to support security mechanisms mentioned in the previous section. More specifically, it defines the individual elements viz. security subjects, security objects and a set of rules governing their interactions in the context of grid scenario. The Globus security policy is designed keeping in view all the above requirements of security infrastructure in a grid. Following are the terms defined by Globus security policy: • An entity which is actively involved in an operation in a grid requiring security measures is a subject. A user requesting a service and a process spawned by such a request in a computer on which such process executes are some examples of subjects. • A subject needs to have a credential which makes it a legal element of the system. Subject can establish its identity by means of passwords, digital signatures. • Subject authentication is first operation required to be completed before any further interaction takes place between two subjects in grid. The subjects, action initiator and the respondent adopt verify each other using credentials. • An object is an element in grid system which can be used as some form of resource and hence needs to be protected. ACM SIGSOFT Software Engineering Notes • Page 3 Whenever a subject needs to utilize an object in grid, it needs to be authorized before doing that. • Many different types of subjects and objects come together to form a larger entity called as Trust Domain. A trust domain is run by a central administration control pursuing some specific security goals. Globus security model identifies set of rules governing the relationships of the above mentioned elements as policy goals. Following points are considered in this regard: 1. A grid is composed of many trust domains. A trust domain made up of many subjects and objects is administered using a consistent technology solution and policy. Many such heterogeneous domains are required to be integrated in grid environment. Each domain has its own independent security implementation which cannot and should not be in any way affected by grid security protocol. Rather these domains should be provided with ways to easily communicate with each other and transforming global operations to operations controlled by local security policy. 2. When an operation is limited to single domain, it is controlled by that domain specific security policy. Complying with the principle of no change in the local security policy, grid security design seeks no enhancements when an operation is restricted unto a single domain. Only that domain policy will dictate the operation. 3. A global domain maintains its own global subjects and different sub-domains already have their own subjects. Global domain connects to all sub-domains with a global subject mapping to local subject. Thus, a grid will have users with possibly two identities – global identity and local identity. Each domain based on some local policy employs a global user to local user mapping function where a global user may be mapped to a dynamically determined local account, or a specific group account or a static local user account. Global log-on feature is the basis for providing the single sign-on functionality. 4. A global subject once authenticated and mapped to some local subject becomes a replica of the local subject. It virtually means that any local domain security goals are achieved only after satisfying the prerequisite of grid authentication and a valid mapping from grid identity to a local identity. 5. A local domain exhibits ultimate control on the access capabilities of an authenticated grid subject. Globus security model has ultimate design goal of ensuring no modification of local policy of a trust domain on access to objects. 6. For single sign-on to work, a process can act as a representative of a user with controlled execution of user rights. A user initiated service request may dynamically spawn processes, depending upon availability of different resources which decides the inclusion of objects in the whole requestresponse flow. This model goal seeks to achieve no user interaction after initial sign-on. A user initiated process must have sufficient authority level to start another process or even to communicate with another process. 7. All these processes working on behalf of a subject will have the same credentials. In response to a subject’s sign-on November 2005 Volume 30 Number 6 3 and a service request, there may be created a group of processes in a domain or even on a single machine to complete the service request. By allocating same credentials to these processes, boost in performance matrix is intended. Performance requirements become stringent while applying this model to large scale parallel architectures [3]. Globus Security Architecture Globus model for grid security defines grid subjects, objects, and security design goals under whose jurisdiction these subjects and objects will interact with one another following certain security protocols. Figure 1 shows a pictorial representation of this security architecture. Following elements are depicted: entities, credentials, and protocols. Globus security model is aimed to apply to large scale distributed computing environments where computations involve many processes interacting with one other and utilizing local and remote resources. Each process performs some action for a user. Thus, processes and users who initiate these processes are termed as security subjects. Computers, database systems, networks, display devices, sensors and many other types of elements which are used by subjects are known as objects [3]. Computations in grid environment are characterized by high degree of unpredictability. Number of processes started in response to a specific service request may vary depending upon the resources available at service time. So accordingly the time duration required to service a particular user request has inherent flexibility associated with it. In order to make this unpredictable process flow transparent to user, grid security infrastructure should isolate him from direct communication with each single process involved in the computation. Here comes into action the concept of user proxy. A user proxy process performs task of maintaining session of user for a limited amount of time. User proxy process acts as a user delegate. It carries its own credentials which circumvents the necessity of user credentials for each and every intermediate transactions being done on user’s behalf. The validity period of user proxy is under the control of user who can restrict it till the time duration for that particular computation. A compromise of the user proxy credentials portends less serious consequences as user can also control what its proxy can do with these credentials [3]. A related element defined by Globus security model is resource proxy which does the job of translating inter-domain security operations into intra-domain methods. Pictorial representation in Figure 1 depicts the range of interactions between entities of a grid environment. With existing definitions of grid framework, following types of operations are assumed to be supported by Globus security model. • Allocation of a resource by a user • Allocation of a resource by a process • Communication between processes in different trust domains ACM SIGSOFT Software Engineering Notes Page 4 Host Machine User Protocol 1: Proxy Creation User Proxy Cp GT Protocol 4: Global to Local Mapping Protocol 3: Resource Allocation From process Domain 1 Resource Proxy P1Cp1 . PnCpn n R Protocol 2: Allocation Of remote resource Domain 2 P1Cp1. . PnCpn Resource Proxy GT Local Policy, Mechanisms GT Local Policy, Mechanism GT – Global to Local Mapping Table Figure 2: Globus Security Architecture Protocols are defined by Globus security model shown in Figure 2. Protocol 1 allows user proxy creation with user logon to grid system. User proxy process can allocate resources and create another process using protocol 2. Protocol 3 helps us understand how a process can allocate resources. Global to local mapping function is achieved by following protocol 4. These protocols are based on authentication and signature techniques instead of encryption. Also generic security services application programming interface is implemented by Globus toolkit. Protocol for Creation of User Proxy User proxy is a specific process created by user in grid which executes on a machine which is in the same domain as that of the user. Main concern regarding a proxy process is type of credentials given to it and how the proxy receives these credentials. A user could provide its proxy process its own credentials which proxy can then use for utilizing dynamically allocated resources and to create other processes. This condition poses an inherent risk in that the compromise of proxy credentials is equivalent to compromise of user credentials. Also there is no control over time period for which the proxy can act on behalf of the user. So Globus introduces the concept of creation of completely new credentials for proxy process which are signed by user credentials (e.g. user’s private key). This new credentials control activity scope of proxy process and the duration as well. It even specifies the host names (where from proxy process can start), target hosts (where in grid proxy is allowed to start processes and/or use resources). Once a user proxy process creation is finished, it needs to November 2005 Volume 30 Number 6 4 communicate with a resource proxy. Resource proxy manages the access to a resource for doing any task which contributes toward grid computation. User proxy needing a resource access gets the authentication of resource proxy and subsequently issues the request for resource. If the request is successful, the resource is allocated with a possible process creation on it. The request can fail because the requested resource is not available (allocation failure), because the user is not a recognized user of the resource (authentication failure), or because the user is not entitled to use the resource in the requested mode (authorization failure). As discussed above, it is up to the resource proxy to enforce any local authorization requirements. Depending on the nature of the resource and local policy, authorization may be checked at resource allocation time or process creation time, or it may be implicit in authentication and not be checked at all. Protocol 2 defines mechanism used to issue a request to a resource proxy from a user proxy. It may be required to map the user’s credential into a local user I.D. or account name if the policy of the resource proxy is to check for authorization at resource allocation time. Alternatively, authorization checks can be delayed until process creation time. The ability to have a resource proxy create credentials on behalf of the process it creates relies on a process and its resource proxy executing in the same trust domain. Essential steps for user proxy generation are as below: 1. The user gains access to the computer on which the user proxy needs to be created using respective authentication method. 2. The user produces user proxy credential, by using his own credential to sign a record containing user’s I.D., the name of the local host, validity information of proxy credential 3. A user proxy process is generated with proxy Credential. Protection of the proxy credential depends upon computer policy on which user proxy is located. New process receives independent credentials by use of this protocol. That gives the ability to the process to identify itself and the identity on behalf of which it is acting (i.e. the user). Each new generated process with credential makes it possible to employ additional protocol which allows the process to control access to incoming communication activity on a per subject basis [3]. Resource Allocation Protocol Resource allocation activity is more frequently done task of resource proxy process which is created by a previous resource allocation request. This protocol exhibits simplicity and finer control. This protocol can be compared with another option where processes can allocate resources and create processes independently of user proxies which has got following two drawbacks: • A user must be able to encode and incorporate arbitrary policy into process so that it supports separate resource specific allocation criteria. ACM SIGSOFT Software Engineering Notes Page 5 • A security breach at remote machine can result in malicious allocation of resource on behalf credulous user. Each process which runs on behalf of user gets separate credentials from user along with assignment of some of the rights of user. Optional protocol described just before requires that there be established an inter-resource trust relationship for distributed authentication. Globus security model always relies on authentication between user proxy and resource proxy which expedites the existing trust relationship between the user and the resource. Given below is sequence of actions required to be taken for this protocol: 1. The process and its user proxy authenticate each other. 2. The process issues a signed request to its user proxy, of the form sig(“allocate”, allocation request parameters) 3. If the user proxy decides to service the request, it starts a resource allocation request to resource proxy. 4. The resulting process handle is signed by the user Proxy and returned to the requesting process. Above protocol comes into action when a user intends to allocate remote resource for a computation. But the procedure used while allocating a resource to start another process is different from above sequence as follows: 1. The user proxy and resource proxy establish each other’s identity. 2. The user proxy sends resource proxy signed request in the form – sig(allocationspecification) 3. The resource proxy verifies if the user who signed the proxy has the required authority according to local policy to make allocation request. 4. If the request is accepted, resource proxy creates a RESOURCE-CREDENTIAL record specifying name of the user for whom resource is allocated, resource name. 5. The resource proxy returns the RESOURCECREDENTIAL to user proxy in a secure manner. 6. The user proxy checks the RESOURCECREDENTIAL request, signs it to create credential for the requesting resource. 7. The resource proxy allocates the resource and assigns the new process(es) created signed resource credential from user proxy [3]. Global to Local Mapping Protocol This is a significant protocol in Globus security architecture which defines how correct mapping from a global subject to a local subject can be achieved. This is effectively done by resource proxy process which maintains a mapping table of global names and corresponding local names. Following are the steps taken in adopting the above protocol: 1. User proxy authenticates with resource proxy. 2. User proxy issues a signed MAP-SUBJECT-UP to the resource proxy, with global and subject name and resource subject names as parameters November 2005 3. 4. 5. 6. 7. 8. 9. Volume 30 Number 6 5 User logs on to the resource using resource’s identity verification method to start a map registration process. Map registration process issues MAP-SUBJECT-P request to resource proxy with global subject name and resource subject name as parameters. Resource proxy waits for MAP-SUBJECT-UP and MAP-SUBJECT-P with same parameters. Resource proxy ensures that map registration process belongs to the resource subject specified in the map request. If a match is found, resource proxy sets up a mapping and sends acknowledgements to map registration process and user proxy. If a match is not found with timeout period, resource proxy removes the pending request with an acknowledgement to waiting entity. If acknowledgment is not received within map timeout period, request considered to have failed [3]. Globus Implementation of Grid Security Architecture Globus security architecture provides support for user proxies, resource proxies (the Globus resource allocation manager, GRAM), certification authorities, and implementation of protocols described above. All the protocols defined in previous sections are based on high level concepts like signature, authentication and authorization without any dependence on some specific technology. So an implementation of grid security infrastructure can possibly leverage a technology which is suitable for the respective environment. This has drastic positive effect on the portability and flexibility of resulting system. Protocol 1 Protocol 1 Protocol 1 Protocol 1 GSS-API Plaintext PKI Kerberos XYZ Figure 2: GSS-API in Globus [3] Globus security infrastructure is based on Generic Security Services application programming interface (GSS-API). This API provides its callers generic services whose implementation can be done using any technology. GSS-API is transport independent meaning it is not affected by specific communication method or library. Any GSS-API call generates a sequence of tokens which can be transported using any communication method. Globus employs TCP sockets and the Nexus communication library to move tokens between processors. The API is mechanism independent indicating it does not mandate use of any specific protocol like Kerberos, ACM SIGSOFT Software Engineering Notes Page 6 SESAME, DES, or RSA public key cryptography. Currently Globus security infrastructure (GSI) uses authentication as defined by the Secure Sockets Layer protocol. There are a few reasons for the selection of SSL. SSL has been implemented in public domain (SSLeay) with proven quality service which has been developed outside the United States eliminating export related issues. SSLeay is known to have an architecture which allows easy extraction of token stream. Also, SSL is a popular protocol chosen for authentication and secure message transfer for different types of distributed computing platforms like HTTP web servers, web browsers, index services. As a result, a combination of GSI with SSL can enable a grid user to utilize not only pure Globus services but also common web services. Globus Toolkit for Grid Security Simulation Globus toolkit components have been used to simulate some scenarios in grid environment. After running these test conditions, a good understanding of how Globus Security Infrastructure helps to achieve secure communication over grid platform can be attained by leveraging the analysis of its pros and cons. Before carrying out any test experiment, the grid environment has to be set up by installing Globus toolkit. The prerequisite steps to be taken for doing so are: 1. A system with Fedora Linux 3.0 for running simulations is used. For the purpose of test case scenarios, two users in addition to root are created – user globus which is used to run the Globus container and all grid services deployed by the container by default. User account to run all the grid service clients is created. 2. Globus 3.2.1(stable release) is installed on the system. 3. Installation procedure is followed from web site [8]. 4. Globus toolkit is configured [9]. GSI uses public key cryptography (asymmetric cryptography) as the basis of its security support. This system employs a pair of digital keys – private key and public key for establishing three pillars of secure communication – privacy, integrity, and authentication. One can enforce encryption on a message using private key and receiver can decrypt the message using its public key to achieve privacy of data. Digital signature can ensure message integrity which is created with the help of private key. Authentication of a valid subject is obtained by the use of digital certificate which is signed by a certification authority. Globus provides a simple certification authority tool. Configuration of Globus involves setting up a simple CA (certification authority). For users globus and testuser (for invoking clients), certificates are created following the instructions as given in configuration procedure. Also, Globus simple CA provides scripts to create proxy certificates for these users. Complete Grid Scenario Once the necessary software is set up to run our simulation cases, software programs are written which are needed to November 2005 Volume 30 Number 6 6 simulate following grid scenario. Organization 2 Organization 1 Clie nt Applic ation Phy sicsServ ice Globus Container ServerServerConfig.ws dd Config.ws dd MathServ ice Index Serv er Common CA Globus Container ServerServer-d config.wsd config.wsd d CA DB Figure 3: Simplistic Grid picture Complete grid scenario consists of two enterprise organizations with their networks set up so that a grid computing environment provides different types of services in addition to PhysicsService and MathService, as shown in Figure 3. Software programs are written in Java programming language to provide simple services: • PhysicsService – implementing a method calcSpHeat • Math Service – providing simple addition of two numbers The tools provided with Globus are used to build respective grid services whose architecture is mainly derived from web services framework. MathService is described briefly below which is deployed on grid container running from the domain of organization 2. MathService has following 3 simple interface methods which can be invoked by an authorized grid subject: 1. add 2. subtract 3. getValue MathService is a stateful grid service whose add method keeps on summing integer parameter passed by clients invoking the service. Subtract method subtracts 1 from the current value of the counter and getValue method returns the latest value of the counter to the client. Client programs are written which invoke these services in different test scenarios. Test Scenario I This scenario assumes that a secure client program is invoking MathService where the client is run from a valid user account from the same domain. The MathService in this case is configured to run with default security features provided by Globus tollkit (i.e. message level encryption). That means that, only message data is encrypted and the message format is kept intact. Motivation for this kind of security feature is to make the data interpretation and processing portable across different grid containers which comply with OGSA specification. OGSA specification is primarily based on web ACM SIGSOFT Software Engineering Notes Page 7 services standard. So the message format, in which client and server communicate with each other, has been decided using SOAP protocol which is a standard in web services architecture. In our case, the client program is run from user account testuser. Another program needs to be run – TCPMonitor - which acts as listener for TCP packets on port 8081 and redirects all traffic which comes on this port to port 8080 where Globus container is listening for client requests. The logging feature provided with the Globus toolkit is enabled to see appropriate messages on server side. An entry in the ogsilogging.properties file which is present in the Globus installation directory as follows enables this: org.globus.progtutorial.services.security.first.impl.MathProvi der=console,info Client side output message is: Added 5 Subtracted 1 Current value: 4 TCPMonitor consists of a GUI (Graphical User Interface) which displays both the client request and server response packets in two different scrollable windows. As described in the previous paragraph, it is observed that only message data is encrypted and the message format is kept intact. Test Scenario II According to Globus model, each client must have a valid proxy certificate associated while invoking a grid service. If it does not have one, Globus container rejects the request. MathService is invoked with the same client program as above case from user account nitin, but without a valid proxy certificate. This throws following error message: ERROR: Defective credential detected [Root error message: Proxy file (/tmp/x509up_u500) not found.] ERROR: Defective credential detected [Root error message: Proxy file (/tmp/x509up_u500) not found.] ERROR: Defective credential detected [Root error message: Proxy file (/tmp/x509up_u500) not found.] This is a scenario when a user’s proxy certificate may have expired or may have been deleted or may have been corrupted. This presents a loop hole in Globus security model. Test Scenario III Globus incorporates a good control over type of security features built into client server communication for each service by means of a service specific security configuration file. Each grid service is configured in the web services deployment descriptor in Globus installation directory. A security configuration file is specified as shown below: <parameter name="securityConfig" value=<location of configuration file>> Through this security configuration file, container specifies November 2005 Volume 30 Number 6 7 what type of authentication mechanism must be adopted by client program for each method provided by the service. Three different types are possible options to be set on client side according to what is specified in the configuration file: a. Message encryption b. Digital signature c. No security In this test scenario, client program which invokes the MathService using no authentication mechanism when run, gives the following error message: ERROR: GSI Secure Conversation authentication required for "{http://www.globus.org/namespaces/2004/02/pro gtutorial/MathService}add" operation. ERROR: GSI Secure Conversation (signature only) authentication required for "{http://www.globus.org/namespaces/2004/02/pro gtutorial/MathService}subtract" operation. Current value: 4 Another client is programmed to invoke all the methods with message encryption. Server side security configuration file allows encryption for the method ‘add’ only. Subtract method is configured for signature. Thus, an invocation of this service with such client gives us following output: Added 5 ERROR: GSI Secure Conversation (signature only) authentication required for "{http://www.globus.org/namespaces/2004/02/progtutori al/MathService}subtract" operation. Current value: 5 This shows how the container rejects a call to method ‘subtract’ with encryption which is configured such that it must be called using digital signature only. Another client program is written which calls all the methods with digital signature enabled. The security configuration file specifies <integrity/> - signifying digital signature – as one of the authentication methods for methods ‘add’ and ‘subtract’. For method ‘getValue’, no authentication is specified. Thus this client runs successfully. Client output as follows is observed: Added 5 Subtracted 1 Current value: 9 Test scenario IV Grid service can be invoked by a user who does not belong to the domain which hosts the service. This is made possible by facility where a global grid subject to local domain mapping is specified in a grid map file which is maintained by local network administrator. User must be having a valid certificate ACM SIGSOFT Software Engineering Notes Page 8 from a common CA which provides certificates to both the user domain and the service domain. This grid map file is mentioned as one of the parameters in the web service deployment descriptor for the particular service in the following manner: <parameter name="authorization" value="gridmap"/> <parameter name="gridmap" value=<location of grid map file>/> A situation is considered where client program is invoked from a subject which is not a part of the domain which hosts the service. Here, the client subject has a valid certificate and a proxy certificate issued from a common CA (Certification Authority). From the proxy credentials which are used with client request, container in the target domain determines the original credentials of the client. This subject which is retrieved finally is used to check if the subject is mapped to some local subject belonging to the domain. If such a mapping exists, client request is allowed to be serviced. The MathService is invoked using client program which is run by account ‘testuser’ which may be considered as a user not belonging to the domain hosting the MathService. For account ‘testuser’ an entry in the grid map file is made in following manner: "/O=Grid/OU=GlobusTest/OU=simpleCAlocalhost.localdomain/OU=localdomain/CN=testuser" testuser In the above line, quoted string signifies the global subject i.e. a valid grid entity – user/process - which is mapped to local subject i.e. legal entity under the jurisdiction of local domain. That means MathService published on this grid environment can be invoked by any user or process which assumes the credentials of the above specified global subject. A client program is written and deployed with the same MathService with grid map file added into security features. When the above client program is run with user account ‘nitin’, the success message is seen: Added 5 Subtracted 1 Current value: 4 If an attempt is made to invoke the service with a global subject whose entry is not present in the grid map file, or if the entry is present but it is corrupt, below given error message is received: ERROR: org.globus.ogsa.impl.security.authorization.Authorizatio nException: Gridmap authorization failed: peer "/O=Grid/OU=GlobusTest/OU=simpleCAlocalhost.localdomain/OU=localdomain/CN=globus" not in gridmap file. ERROR: org.globus.ogsa.impl.security.authorization.Authorizatio nException: Gridmap authorization failed: peer "/O=Grid/OU=GlobusTest/OU=simpleCAlocalhost.localdomain/OU=localdomain/CN=globus" not in gridmap file. ERROR: org.globus.ogsa.impl.security.authorization.Authorizatio nException: Gridmap authorization failed: peer "/O=Grid/OU=GlobusTest/OU=simpleCAlocalhost.localdomain/OU=localdomain/CN=globus" not in gridmap file. November 2005 Volume 30 Number 6 8 Above is the output message when MathService is invoked with ‘globus’ user account on the system whose mapping entry is not made in the grid map file. Test Scenario V Last scenario describes how Globus handles the issue of credential delegation. In simple terms it can be put as – proxy credential which are generated from client credential are assigned to grid service which in turn invokes another service(s) with the proxy identity. An additional grid service is written – PhysicsService. PhysicsService is invoked by a client application which delegates credentials of the global subject. This is achieved by defining the runtime identity of the method invoked to be equal to the caller’s identity. Globus model allows us to add this feature to a method by means of a tag <run-as> in the service specific security configuration file. E.g. – <method name="math:add"> <run-as> <caller-identity/> </run-as> </method> The above example sets the run time identity of method ‘add’ to be equal to the invoker’s identity. Through the method ‘add’, the service can further call other services deployed on the grid with credentials which were delegated to it by the client. This is how Globus achieves single sign on by a client. Client provides his credential only once for interacting (indirectly) with many services. In our example situation, client is run from user account ‘testuser’ to invoke PhysicsService which subsequently calls MathService with the delegated proxy credentials of the client. PhysicService method is configured to run with client’s proxy credentials. This proxy credential is used in establishing identity of the caller subject by MathService. For better understanding Credential delegation process flow, following pictorial representation is drawn: Organization 2 Organization 1 Clie nt Applic ation SecuritySecurityConfig.xml Config.xml Dynamic Ide ntity= Call er’s Identity Invocation w ith Del egate d Cred entia ls Phy sicsServ ice MathServ ice MathService Hand le Globus Container Index Serv er Globus Container GridGridmapfile mapfile Global to Loc al Subject map pin g ServerServerConfig.ws dd Config.ws dd Common CA ServerServer-d config.wsd config.wsd d CA DB Figure 4: Credential Delegation Scenario ACM SIGSOFT Software Engineering Notes Page 9 MathService is configured to validate client authentications based on grid map file as global to local mapping is performed according to entries made in this file. Figure 4 shows the relation between MathService and grid map file. Client first invokes PhysicsService with proxy credential which are delegated to the service because of security configuration file. PhysicsService assumes caller’s identity at run time and with this credential it invokes MathService from another domain. It communicates with index service which is an important component in Globus toolkit package. MathService receives secure request with a credential which is signed by clients original certificate and is valid for limited time period. MathService retrieves identity of the main client as both the domains share a common Certification Authority. The global subject which is obtained from the CA database for the client is checked if it is mapped to any local user account from grid map file. If such an entry exists, the resource proxy process validates the request and allows access to MathService. Otherwise the request is invalidated and removed from the request cache. Client first calls PhysicsService which in turn invokes ‘add’ method from MathService 7 times in a loop and then calls ‘getValue’ method from MathService to display result of addition. Following output is seen: Answer: 42 Functional Analysis Globus Security Architecture is the first grid implementation which is designed with a view to support and complement different security solutions so as to federate as many disparate components as possible. No previous grid software contained this feature. It also is the first standard set of tools implementing grid entities communication protocol adhering to OGSA (Open Grid Services Architecture) which is the universal standard for charting grid specifications and protocols. In other words, Globus has set the trend of developing grid solutions based on universal standards so that different grid implementations from different vendors will be more inclined to follow its suit. Needless to say, this will go a long way in discerning grids better and utilizing them in more and more business and research areas. Future Developments There appear a few areas in Globus security design where it can be revamped to a more reliable, robust framework. It needs to overcome some of the drawbacks related to certificates management. Proxy certificates and even the original certificates are stored in files on local machines which stand susceptible to accidental corruption or deletion. Proxy Certificates need to be renewed manually at fixed time intervals. There is a scope for further improvement with novel methods being devised for storing the certificates in an online database and users requesting proxy certificates on demand [7]. MyProxy can be considered as an example of such a system [6]. Proxy certificates hold good chances of being used November 2005 Volume 30 Number 6 9 in unison with mobile agent technology in dynamic field like mobile network. Conclusion Globus security model for high performance grid computing has its pros and cons. It has come up with an implementation which strives to resolve the main security concerns like privacy, integrity and authentication in grid computing environment. It is characterized by security features which are controllable through application programs as well as configuration files so that a good compromise of security and performance for a grid application is achieved. Client delegation is a noticeable feature which empowers users with single sign-on capability. References [1] Ian Foster, Carl Kesselman, Steven Tuecke, “The Anatomy of Grid Enabling Scalable Virtual Organizations”, online at http://www.globus.org/alliance/publications/papers/anato my.pdf [2] Ian Foster, Carl Kesselman, Jeffrey M. Nick, Steven Tuecke, “The Physiology of the Grid, An Open Grid Services Architecture for Distributed Systems Integration”, online at http://www.globus.org/alliance/publications/papers/ogsa. pdf [3] Ian Foster, Carl Kesselman, Gene Tsudik, Steven Tsuecke, “A Security Architecture for Computational Grids,” Proceedings of the 5th ACM Conference on Computer and Communications Security, 1998, pp 83-92. [4] Zsolt Nemeth, Vaidy Sunderam, “A comparison of Conventional Distributed Computing Environments and Computational Grids,” online at http://www.mathcs.emory.edu/dcl/h2o/papers/grids_iccs0 2.pdf [5] Nataraj Nagaratnam, Philippe Janson, John Dayka, Anthony Nadalin, Frank Siebenlist, Von Welch, Ian Foster, Steve Tuecke, “The Security Architecture for Open Grid Services”, online at http://www.cs.virginia.edu/~humphrey/ogsa-secwg/OGSA-SecArch-v1-07192002.pdf [6] Jim Basney, “Using the MyProxy Online Credential Repository”, online at http://www.globusworld.org/2005Slides/Session%204b(2 ).pdf [7] Olivier Chevassut, “Secure (one -time-)Password Authentication for the Globus Toolkit”, online at http://www.globusworld.org/2005Slides/Session%207b(3 ).pdf [8] http://www.globus.org/toolkit/docs/3.2/installation/index. html [9] http://www.globus.org/toolkit/docs/3.2/installation/install _config.html