Grid Computing and Security

Overview of Authentication and Authorization for Use of Grid Resources

Jeffrey Dwoskin


Table of Contents

  1. Introduction
  2. Setting Up Certificates And Certificate Authorities
  3. Preparing For A User To Use A Grid Resource
  4. Initiating the use of a grid resource
  5. References

Introduction

Table Of Contents

Setting up certificates and certificate authorities

Table Of Contents

Preparing for a user to use a grid resource

Table Of Contents

Initiating the use of a grid resource

  1. The user creates a user proxy using the command grid-proxy-init. The user proxy (UP) is given a new certificate with its own keypair that is only valid for a limited time, usually 24 hours.

    The user signs the UP's certificate with its private key, allowing the UP to act on its behalf while the certificate is valid. In addition to the time limitation, the user may put further restrictions on what the UP can do by listing them inside the certificate.

    The user often encrypts their private key with a password. This will be the only time the password is required so that the user can sign the UP's certificate with its private key. After this point, the UP's certificate will be used and the user will not have to "log in" again. This implements the idea of a single sign on.

  2. The user then runs globus-job-run to initiate a program/job to run on a remote host. In this simple case, the user specifies which host to run on and what program to run. This causes the grid software to act as the user proxy to complete the process and the user doesn't need to do anything further until the results are ready.
  3. The user proxy now connects to the gatekeeper of the remote host. The gatekeeper is a process on each grid host that listens for incoming requests from users (really their user proxies) and sends them to the appropriate resource.

    First, the gatekeeper and the user proxy perform mutual authentication. This means that the user proxy checks the identity of the gatekeeper and the gatekeeper checks the identity of the user.

    Like the user, each host also has a certificate signed by a CA. The user proxy uses the process described above to check that certificate so it can trust the host and its gatekeeper.

    Similarly the gatekeeper checks the user proxy's certificate. However its certificate was signed by the user and not a CA. Therefore the gatekeeper first checks the UP's certificate against the the user's certificate. Then it checks the user's certificate against the CA, which it trusts. Then it can be sure that the user proxy is really acting on the user's behalf.

    After mutual authentication, both the user and gatekeeper can be sure they are talking to each other and not a malicious third party, assuming no party's private key has been compromised.

  4. Next the gatekeeper decides whether or not the user is allowed to use its services. This is determined by an entry in the grid-mapfile file with the user's Grid subject. If such an entry is not found, then the user is not authorized to use the host and the gatekeeper will reject the user's request. Once the user is authorized, the gatekeeper sends the user's request to a resource manager.
  5. In this case, the gatekeeper is on the same host as the resource the user wants to use. The gatekeeper must first map the grid user to a local user. The local user is subject to the local security policies imposed by the host.

    The mapping of the grid subject to a local user is part of the user's entry in the grid-mapfile file. It is possible to have multiple grid users map to the same local user. If they are allowed to run at the same time as the same local user, or they leave files on the host, some other local mechanism may be necessary to protect the users' processes and data from each other.

    If the user was using multiple resources in parallel or letting the grid choose where to run its job, then the gatekeeper would forward the user's request to a grid resource manager to choose where to send it.

  6. Once the grid user has been mapped to a local user, the gatekeeper starts a resource/job manager on the local host as the local user. The job manager must now allocate any necessary local resources that will be necessary to handle the user's request. It is also responsible for all future communication with the user.

    The job manager will send a contact string to the user. It can be used to check on the status of a job or to cancel a job in progress.

  7. The job manager also allows the user to upload data or executables that are needed. This is done with a facility called Global Access to Secondary Storage (GASS). If GASS is used, the job manager contacts the user to receive the files before starting the job. GASS is also used to keep track of the output of a user's jobs.
  8. When all of the data and executables are present on the remote host, the job manager starts the job for the user and sends back the output.
Table Of Contents

References

This overview has been compiled using information from many of the papers and links that I have listed.