Internet & Intranet Security

Team-Fly

10.2 USER AUTHENTICATION AND AUTHORIZATION

As mentioned in Section 10.1, one of the key functionalities of an application-level gateway or proxy server is user authentication and authorization. In Section 6.1, we overviewed and briefly discussed several user authentication schemes that can be used by an application-level gateway or proxy server. For example, HTTP version 1.1 specifies a Basic authentication mechanism in which the client sends the user-name and password in the clear (i.e., in Base-64 encoded form) to the HTTP proxy server [1]. Contrary to that, a more sophisticated and more secure Digest authentication mechanism is specified in [2]. Following this specification, a one-way hash is computed from the username, the password, a challenge provided by the proxy server, and some additional information. The resulting authentication mechanism is more secure because user passwords are never transmitted in the clear.

In general, there are several user authentication and authorization schemes that an application-level gateway or proxy server could implement and use:

In practice, the firewall policy must define the authentication and authorization schemes that must be used in either direction and for each service. Many policies use the simplest scheme mentioned above for outbound connections and a strong authentication scheme for inbound connections.

In either case, the application-level gateway or proxy server must have access to some reference information it can use to verify whether the authentication information provided by a client (or user) is valid and legitimate (e.g., a one-way hash value of a user password or the public key certificate of a user). The reference information can be stored either locally or remotely. For obvious reasons, the second approach is preferable since it makes it possible to aggregate security information and functions for several firewall systems and network access servers (NAS) at a single point. Typically, a standardized protocol is used to retrieve the reference information from a centralized security server. There are currently two competing protocol proposals:

Both protocols (RADIUS and the protocol family for the TACACS derivates) are widely supported by commercial firewall systems and network access servers. They are not further addressed in this book.

There also are some alternative proposals to handle user authentication reference information. For example, some time ago, Ravi Ganesan implemented an application gateway that uses the Kerberos[2] system to authenticate connection requests [6]. Once the application gateway has satisfied itself about the identity of the requesting user, it establishes a corresponding connection to the destination server.

After having successfully authenticated and authorized the client (or user), the proxy server sets up a secondary TCP connection to the requested application server. From the user's point of view, a secondary authentication may now be required and actually take place, since the application server may want to authenticate and authorize the client (or user) as well. This secondary authentication step is beyond the scope of the firewall. If the user is successfully authenticated and authorized, the application server usually starts serving the request.

[1]As of this writing, the RADIUS protocol has reached the status of a Draft Standard.

[2]We address the Kerberos system in Section 16.2, when we talk about authentication and key distribution systems.


Team-Fly

Категории