User Authentication

Contents:

  1. Overview
  2. Examples
  3. Initializing Digest Authentication
  4. Authorization Interfaces
  5. Security Policies for Side-Effecting HTTP Methods


  1. Overview
  2. The server provides two mechanisms for controlling access to URLs:

    Both subnet security and password control can be combined.

    The authorization domain contains the following elements:

    The HTTP protocol provides the following authentication schemes:

    It is important to remember that neither subnet security nor password schemes are able to keep a determined and sophisticated snoop from monitoring network traffic and gaining access to access controlled information. The only way to prevent such access is by using suitable cryptographic techniques.

    Nevertheless, the digest authentication scheme is pretty good, provided the user password never travels over the network when first assigned or whenever changed. There is a small window of vulnerability to replay attack that depends on the time window during which a nonce remains valid. If this window is short, or digest authentication is combined with subnet security, reasonable access control can be assured. (See http:*digest-authentication-nonce-life-time*)

  3. Examples
  4. Given these considerations, several pages explain how to use the access control facilities in CL-HTTP.

  5. Initializing Digest Authentication
  6. When you first set up a server, you need to perform the following one-time initializations:

  7. Authorization Interfaces
  8. After the user of an access controlled URL has been authenticated, the server instance (bound to http:*server*) contains the user object and the authentication method. These can be accessed with:

    Most major methods on user objects are defined on server objects. Additionally, Common Log File entries for CL-HTTP record all authenticated users by qualified name (e.g., "realm|user-name"). In the usage of user properties and logging, service providers should strictly respect people's privacy.

    The examples use clear text passwords in lisp files for pedagogical purposes only. For best security, all production sites should use the following functions to save and restore password data:

    If you use these functions to save password data, only an MD5 digest of the passwords is saved with associated user objects. Nevertheless, access to the file containing the authentication data compromises security. It is therefore important to ensure the security of your authentication data.

    The following operations are available on authenticated users and other authorization object:

  9. Security Policies for Side-Effecting HTTP Methods
  10. HTTP methods such as PUT and DELETE change the state of your web server. A webmaster may wish to impose a security policy that provides an appropriate level of authentication for users to PUT or DELETE URLs. Each security policy imposes minimum the requirements to invoke these methods. The security policy can be selected via the server configuration interface or by setting the variable http:*accept-write-methods*.

    The following security policies are available:


John C. Mallery -- jcma@nospam.ai.mit.edu
M.I.T. Computer Science & Artificial Intelligence Laboratory