![]() |
|
|||||||||||||||||
Basic authentication schemeIn the context of an HTTP transaction, the basic authentication scheme is a method designed to allow a web browser, or other client program, to provide credentials – in the form of a user name and password – when making a request. Although the scheme is easily implemented, it relies on the assumption that the connection between the client and server computers is secure and can be trusted. Specifically, the credentials are passed as plaintext and could be intercepted easily. The scheme also provides no protection for the information passed back from the server. To prevent the user name and password being read directly by a person, they are encoded as a sequence of base-64 characters before transmission. For example, the user name "Aladdin" and password "open sesame" would be combined as "Aladdin:open sesame" – which is equivalent to QWxhZGRpbjpvcGVuIHNlc2FtZQ== when encoded in base-64. Little effort is required to translate the encoded string back into the user name and password. One advantage of the basic authentication scheme is that it is supported by almost all popular web browsers. It is rarely used on normal Internet web sites but is suitable for small, private systems. A later mechanism, digest access authentication, was developed in order to replace the basic authentication scheme and enable credentials to be passed in a relatively secure manner over an otherwise insecure channel. The basic authentication scheme was originally defined by RFC 1945 although further information regarding security issues may be found in RFC 2068 and RFC 2617. ExampleHere is a typical transaction between an HTTP client and an HTTP server running on the local machine (localhost). It comprises of the following steps.
Note: A client may pre-emptively send the authentication header in its first request, with no user interaction required. Client request (no authentication): GET /private/index.html HTTP/1.0 Host: localhost (followed by a new line, in the form of a carriage return followed by a line feed). Server response:
HTTP/1.0 401 Unauthorised
Server: SokEvo/1.0
Date: Sat, 27 Nov 2004 10:18:15 GMT
WWW-Authenticate: Basic realm="SokEvo"
Content-Type: text/html
Content-Length: 311
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
<HEAD>
<TITLE>Error</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
</HEAD>
<BODY><H1>401 Unauthorised.</H1></BODY>
</HTML>
Client request (user name "Aladdin", password "open sesame"): GET /private/index.html HTTP/1.0 Host: localhost Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== (followed by a blank line, as before). Server response: HTTP/1.0 200 OK Server: SokEvo/1.0 Date: Sat, 27 Nov 2004 10:19:07 GMT Content-Type: text/html Content-Length: 10476 (followed by a blank line and HTML text comprising of the restricted page). The contents of this article are licensed from Wikipedia.org under the GNU Free Documentation License.
How to see transparent copy 01-04-2007 01:21:04 |
|





