HTTPAuth Working Group R. Shekh-Yusef
Internet-Draft Avaya
Updates: 2617 (if approved) July 7, 2013
Intended status: Experimental
Expires: January 8, 2014
An Encoding Mechanism for HTTP Digest Authentication
draft-ietf-httpauth-digest-encoding-02
Abstract
RFC2617 does not define how to treat Unicode characters [UNICODE]
outside the ASCII range [RFC20] with the "Digest" scheme. This
document defines an extension to the "Digest" scheme, and a mechanism
that enables the client and server to negotiate their support for the
UTF-8 [RFC3629] character encoding scheme.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as
Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Copyright and License Notice
Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Shekh-Yusef Expires January 8, 2014 [Page 1]
INTERNET DRAFT HTTP Digest Encoding Mechanism July 7, 2013
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3
2 The "charset" auth-param . . . . . . . . . . . . . . . . . . . 3
3 Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1 Server Behavior . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Client Behavior . . . . . . . . . . . . . . . . . . . . . . 4
4 Security Considerations . . . . . . . . . . . . . . . . . . . . 5
5 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
6 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 5
7 References . . . . . . . . . . . . . . . . . . . . . . . . . . 5
7.1 Normative References . . . . . . . . . . . . . . . . . . . 5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6
Shekh-Yusef Expires January 8, 2014 [Page 2]
INTERNET DRAFT HTTP Digest Encoding Mechanism July 7, 2013
1 Introduction
RFC2617 does not define how to treat Unicode characters [UNICODE]
outside the ASCII range [RFC20] with the "Digest" scheme. This
document defines an extension to the "Digest" scheme, and a mechanism
that enables the client and server to negotiate their support for the
UTF-8 [RFC3629] character encoding scheme.
The encoding impacts the way the server and the user agent
concatenate the username-value, realm-value, and password when they
calculate A1, as defined in section 3.2.2.2 of RFC2617.
1.1 Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Several terms used in this document are defined in [RFC6365] and
[UNICODE].
2 The "charset" auth-param
The "Digest" mechanism allows for new parameters to be defined and
used with Authenticate and Authorization headers. This document
defines a new optional "charset" auth-param that could be used by the
client and the server to indicate the encoding scheme they support.
The only allowed value is "UTF-8", to be matched case-insensitively.
Shekh-Yusef Expires January 8, 2014 [Page 3]
INTERNET DRAFT HTTP Digest Encoding Mechanism July 7, 2013
3 Mechanism
When a user agent attempts to access a resource and get challenged by
the server, the server will indicate it supported encoding scheme,
and in response the user agent will indicate whether it supports that
encoding scheme or not in the subsequent request it sends to the
server.
3.1 Server Behavior
In challenges, servers MAY use the "charset" authentication parameter
(case-insensitive) to express the character encoding they expect the
user agent to use.
When the server receives the subsequent request with the Proxy-
Authenticate or WWW-Authenticate header fields, it looks for the
"charset" parameter. If the "charset" parameter is present, and its
value matches the encoding the server sent to the client, the server
will continue with its normal operation using the encoding it sent to
the client. If, on the other hand, the "charset" parameter value is
preceded by an exclamation point (!), the server can immediately
decline the request.
If the new request with the Proxy-Authenticate or WWW-Authenticate
header fields does not have the "charset" parameter, the server will
know that it is dealing with a client that does not support this
specification and should continue to perform its current operation.
3.2 Client Behavior
A user agent that follows this specifications MUST NOT include the
"charset" parameter in any subsequent request if it did not receive
it from the server in a challenge.
If the user agent supports the encoding indicated by the server, it
SHOULD add the "charset" parameter, with the value it received from
the server, to the Proxy-Authenticate or WWW-Authenticate header
fields it sends back to the server.
If the user agent does not support the encoding indicated by the
server, it SHOULD add the "charset" parameter to the Proxy-
Authenticate or WWW-Authenticate header fields it sends back to the
server, but the value in the parameter should be preceded by an
exclamation point (!).
A user agent that does not follow this specification will ignore the
parameter and will not include it in any subsequent request.
Shekh-Yusef Expires January 8, 2014 [Page 4]
INTERNET DRAFT HTTP Digest Encoding Mechanism July 7, 2013
4 Security Considerations
<Security considerations text>
5 IANA Considerations
<IANA considerations text>
6 Acknowledgments
The author would like to thank Julian Reschke for his help and
comments on and off the list, and for the idea of using the "auth-
param" to indicate the supported encoding, as described in his
document that deals with the encoding for the Basic scheme.
The author would also like to thank Bjoern Hoehrmann, Paul Hoffman,
and Martin Durst for their comments on the mailing list, and Peter
Saint-Andre for his comments and text that clarified the scope of the
document.
7 References
7.1 Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
Leach, P., Luotonen, A., and L. Stewart, "HTTP
Authentication: Basic and Digest Access Authentication",
RFC 2617, June 1999.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[RFC6365] Hoffman, P., Klensin, J., "Terminology Used in
Internationalization in the IETF", BCP: 166, RFC 6365,
September 2011.
[UNICODE] The Unicode Consortium, "The Unicode Standard,
Version 6.0".
<http://www.unicode.org/versions/Unicode6.0.0/>.
[RFC20] Cerf, V., "ASCII format for Network Interchange", RFC 20,
October 1969.
Shekh-Yusef Expires January 8, 2014 [Page 5]
INTERNET DRAFT HTTP Digest Encoding Mechanism July 7, 2013
Authors' Addresses
Rifaat Shekh-Yusef
Avaya
250 Sydney Street
Belleville, Ontario
Canada
Phone: +1-613-967-5267
Email: rifaat.ietf@gmail.com
Shekh-Yusef Expires January 8, 2014 [Page 6]