Changes from Version 1 of SimpleAuthentication

Show
Ignore:
Author:
gtw (IP: 155.98.60.98)
Timestamp:
02/10/10 10:49:19 (7 months ago)
Comment:

Describe how to perform basic authentication without inspecting certificate contents.

Legend:

Unmodified
Added
Removed
Modified
  • SimpleAuthentication

    v0 v1  
     1= Simple Authentication = 
     2 
     3== Overview == 
     4 
     5Although ProtoGENI access control should normally be performed with the 
     6[wiki:Credentials credential] mechanism, which allows identification and 
     7authentication in both directions as well as validating privileges which 
     8a principal wishes to invoke, under certain circumstances a simpler 
     9authentication mechanism can be useful. 
     10 
     11The simple scheme described here relies on [wiki:Certificates certificate] 
     12verification only.  It does not perform strong authentication, and does 
     13not verify credentials or privelegs.  The only reliable result of this 
     14procedure is to determine whether a peer is a valid ProtoGENI principal. 
     15 
     16The major benefit of the simple approach is that no custom code is 
     17necessary to perform authentication; simple configuration of off-the-shelf 
     18tools is sufficient for basic certificate verification. 
     19 
     20== Mechanism == 
     21 
     22The ProtoGENI federation relies on X.509 public key infrastructure 
     23co-ordinated by the [wiki:ClearingHouseDesc clearing house].  In general, 
     24each site in the federation behaves as a CA, and publishes a 
     25(self-signed) root certificate.  These certificates are distributed 
     26throughout the federation by the clearing house, and so are assumed 
     27to be well-known. 
     28 
     29Each site (i.e. CA) can then sign certificates for any ProtoGENI 
     30principals it wishes to certify.  These certificates can be processed 
     31and handled with normal X.509 tools.  Although there are certain 
     32[wiki:Certificates conventions] which are important for normal 
     33ProtoGENI access control, they are not relevant to this simple 
     34authentication scheme. 
     35 
     36The key concept to understanding simple authentication is to 
     37realise that if a principal authenticates with a private key 
     38certified by one of the well-known CAs, then that is adequate 
     39proof that the principal is a valid member of the federation 
     40(up to key compromise or CA collusion). 
     41 
     42It is very important to note that this simple procedure has 
     43not addressed strong identification or privilege establishment. 
     44The verifying party should NOT yet trust information attached 
     45to the certificate any more than it trusts the issuing CA; full 
     46verification must additionally verify the ProtoGENI certificate 
     47conventions referenced above. 
     48 
     49== Details == 
     50 
     51The set of well-known root certificates (and the corresponding 
     52certificate revocation lists) for the federation are available 
     53from the clearing house at the following URLs: 
     54 
     55{{{ 
     56https://www.emulab.net/genica.bundle 
     57https://www.emulab.net/genicrl.bundle 
     58}}} 
     59 
     60Both files are simply concatenations of the PEM forms (base-64 
     61encoded DER) of the certificates or revocation lists from each CA. 
     62 
     63(It is also possible to obtain the files without SSL if 
     64necessary, by replacing {{{https}}} with {{{http}}} in the 
     65above URLs.) 
     66 
     67All verifiers should obtain these certificate lists and 
     68endeavour to keep them reasonably up-to-date.  They are 
     69typically updated daily, so there is little point attempting 
     70to retrieve them more frequently. 
     71 
     72 
     73Once the root certificates are obtained, it should be possible 
     74to use a variety of software to verify additional certificates. 
     75For instance, the OpenSSL command `openssl verify -CAfile /example/genicrl.bundle` 
     76will verify a certificate against the bundle of root CAs (although 
     77not against revocation lists). 
     78 
     79== Example Apache configuration == 
     80 
     81The Apache HTTP server can also be configured to verify certificates, 
     82which is a very easy way to restrict access to ProtoGENI principals 
     83only.  The following `httpd.conf` excerpt demonstrates how to apply 
     84such a restriction to a particular directory: 
     85 
     86{{{ 
     87SSLCACertificateFile /example/genica.bundle 
     88SSLCARevocationFile /example/genicrl.bundle 
     89 
     90<Directory "/example/protected/directory"> 
     91    SSLRequireSSL 
     92    SSLVerifyClient require 
     93</Directory> 
     94}}}