gx-ca-update - Maintain certificate authority files
gx-ca-update -help
gx-ca-update [options]
gx-ca-update is part of the gx-map system. It is used to maintain the CA (Certificate Authority) files (signing certificates, signing_policy files, and CRLs (Certificate Revocation Lists)) used by Globus.
gx-ca-update is normally run from a cron job. It attempts to update the files for a specified set of certificate authorities.
It uses a caching mechanism to avoid downloading files unless they've been updated.
A typical cron job entry might look something like this:
0,30 * * * * [...]/sbin/gx-ca-update -target-dir [...]/certificates -ca-list [...]/certificates/.list
In real life, the entire cron job entry has to be on a single line, and the ``[...]''s need to be replaced with actual directory names.
This cron job runs every 30 minutes. It maintains the *.0, *.signing_policy, and *.r0 files for the CAs listed in the .list file.
Option processing is done using the Perl Getopt::Long module.
Options may be specified with a single or double leading '-' character. Option names may be abbreviated to whatever is unique. Arguments may be separated either by a blank or by an '=' character. For example, ``-foobar 42'', ``--foobar=42'', and ``-foob 42'' would all be equivalent.
This can be useful if multiple instances of gx-map are being used on several systems with a shared data directory. One instance can run in the default -download mode, and all the others can depend on the cache files, saving time and network traffic.
If a CA issues only short-term certificates, the lack of a CRL isn't necessarily a problem. For these CAs, the -allow-missing-crl option isn't required. These CAs are indicated by the ALLOW_MISSING_CRL option in the *.cadesc file.
Removing an expiring CRL means that all certificates issued by the CA will potentially be accepted, even if they've been revoked; this is a potential security issue. Leaving an expired CRL in place causes all certificates issued by the CA to be rejected. The proper solution is to make sure that a current CRL is always available; this is the responsibility of the CA administrators.
This option requires the b<-UNSAFE> option.
The gx-ca-update command uses information in a set of CA description files installed in the etc/gx-map/ca-config subdirectory under the gx-map installation directory. Currently, there are configuration files for 88 different CAs.
Each CA certificate has an 8-digit hexadecimal hash value associated with it. The files maintained by gx-ca-update have names based on this hash value. For example, the SDSC CA's hash value is 3deda549; the corresponding files are:
3deda549.0, the signing certificate
3deda549.signing_policy, the signing policy file.
3deda549.r0, the certificate revocation list
Since the certificate is updated only rarely, gx-ca-update normally only installs it once; it doesn't attempt to re-install it unless the -force option is specified.
The signing_policy file is generated by gx-ca-update, even if a copy is available from the CA's web site. This allows for a consistent format for all installed signing_policy files. There are also some changes that need to be made for some files for compatibility with different versions of Globus; the files distributed by the CAs don't always have these changes.
Typically, the CRL has a relatively short lifetime; it's re-issued both periodically and immediately when a certificate is revoked. gx-ca-update checks the CRL each time it runs, and downloads and installs it if it's been updated.
Incorrectly installed CA files can open serious security holes. For example, an attacker could create a fake signing certificate with the same hash and subject name as an existing CA certificate, and then sign a user certificate matching an existing one, giving the attacker access to the target user's account. (The 8-digit hash is computed from the certificate's subject name; it's a convenient way to identify the certificate, but it's not secure.)
To prevent this, gx-ca-update confirms the MD5 and SHA1 checksums of any downloaded certificate before installing it. The checksums are compared to the ones specified in the corresponding *.cadesc file, which are based on my own download and manual check of the file. To get past this check, an attacker would have to have taken control of the CA web site both when I checked the certificate and when gx-ca-update attempts to download it.
Before each CRL is installed, gx-ca-update confirms that it was cryptographically signed by the corresponding certificate.
I've done my best to make the entire gx-map system as secure as possible. Nevertheless, ...
None. If you install this software and it breaks your system, it's your own fault for trusting me.
gx-map(7), gx-map-security(7), gx-map-cadesc(5)
Keith Thompson, San Diego Supercomputer Center, <kst@sdsc.edu>
See the file LICENSE in the gx-map distribution, installed in the etc/gx-map subdirectory.