Network Working Group | H. Tschofenig |
Internet-Draft | Nokia Siemens Networks |
Intended status: Informational | S. Turner |
Expires: January 15, 2013 | IECA, Inc. |
M. Hanson | |
Mozilla | |
July 16, 2012 |
An Inquiry into the Nature and the Causes of Web Insecurity
draft-tschofenig-secure-the-web-03.txt
The year 2011 has been quite exciting from a Web security point of view: a number of high-profile security incidents have gotten a lot of press attention but also new initiatives, such as the National Strategy for Trusted Identities in Cyberspace (NSTIC), had been launched to improve the Web identity eco-system. The NSTIC strategy paper, for example, observes problems with Internet security due to the widespread usage of low-entropy passwords and the lack of widely deployed authentication and attribute assurance services.
With this memorandum we try to develop a shared vision for how to deal with the most pressing Web security problems.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http:/⁠/⁠datatracker.ietf.org/⁠drafts/⁠current/⁠.
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."
This Internet-Draft will expire on January 15, 2013.
Copyright (c) 2012 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 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.
HTTP is an IETF standard and documented in RFC 2616 [RFC2616] and provides the core foundation of the browser-based platform but is also widely used for non-browser-based applications in smart phones and Internet tablets. Like any other specification in the IETF HTTP also comes with various security mechanims. Digest authentication support in HTTP was published in 1997 with RFC 2069 [RFC2069] and later updated in 1999 by RFC 2617 [RFC2617]. The HTTP state management mechanism, namely cookies, was initially published in 1997 with RFC 2109 [RFC2109], and re-written in 2000 by RFC 2965 [RFC2965].
For client side authentication two different solution tracks have therefore been offered from the IETF, namely TLS client side authenication (at that time the usage of client certificates was envisioned) and also application level authentication via HTTP basic and digest. TLS-based client authentication using certificates was quite complex for end users to configure (and still is complex today). HTTP based authentication on the other hand did not found widespread usage either for a number of reasons. First, the user interface was rendered differently than in regular Web application form making it less attractive for users. At that time HTTP had a semantic that was closer to file system access control and therefore the decision making process was binary, either the user was granted access to the resource or it wasn't. With the HTTP 401 there was no way for a user to, for example, recover from a lost password or other forms of failure cases. The authentication and authorization process was not seen as continuium but rather as a binary decision. For these reasons form-based authentication mechanisms had found widespread acceptance by the Web application developer community. Additionally, many Web sites decided to deploy their own authentication infrastructure and to store cleartext credentials (in most cases a username and a password) into a database. To add to this problem cookies were and still are the most common mechanism for session management, i.e., a non-cryptographic way to bind the initial authentication to the subsequent HTTP protocol exchanges. Cookies introduce various weaknesses into HTTP, including the ability for attackers to perform session hijacking. In the last few years we have seen many press anouncements of password leakage due to unauthorized access to these credential databases.
In the last few years a few other standardization efforts were started: RFC 2965 HTTP state management specification was recently revised to capture deployment reality [RFC6265]. HTTP Strict Transport Layer Security (HSTS) [I-D.ietf-websec-strict-transport-sec] allows Web sites to declare themselves accessible only via secure connections, and the attemp to clarify the Web Origin Concept [I-D.ietf-websec-origin], which covers the principles that underlies the concept of origin as used to scope of authority or privilege by user agents. The HTTPbis Working Group [I-D.ietf-httpbis-p7-auth] revises RFC 2616 plus those parts from RFC 2617 that describe the authentication schemes.
A lot has changed over the last 10 years in the Web eco-system, as briefly described in the sub-sections below, and various efforts are still ongoing or have recently been started to provide make Web applications even more powerful. Unfortunately, the underlying Web platform had not been able to keep up with these changes and the security weaknesses will only became more apparent. It is time to tackle this problem and to develop a common understanding of the problem and the desired design goals.
While astonishing progress has been made in getting the Web application eco-system on a par with native applications the foundation of the Web platform is still unable to address many of the most common security vulnerabilities; problems the Internet community had been fighting against for over a decade and had solved for other application protocol frameworks and Internet deployment environments. This document aims to provide an introduction to the problem that will serve as input to an upcoming Web authentication workshop.
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 [RFC2119].
Passwords have a long history in authentication protocols on the Internet. They appear to be convient for users and are easy to provision to users by many Web site. Still, passwords present a number of challenges, including:
So, why do we need passwords at all? It is easy to come up with solutions that use hardware-based mechanisms (e.g., such as OTP tokens), mobile phones, etc. [Quest] lists some of these mechanisms and makes an attempt to classify them. There are, however, reasons why alternatives have not found widespread deployment on the Internet, such as
Note that the credential type and the actual form of where these credentials are stored (e.g., software, hardware) is orthogonal to the actual identity proofing process. Stronger forms of identity proofing (e.g., requiring in-person passport verification) can be quite expensive. There are also secondary costs in the form of support calls and education if credential provisioning is more complicated, as it is often the case with client certificates.
Regardless how many disadvantages passwords have they will be with us for a long time. As such, out attempt is therefore to start from the currently deployment and to look towards a future where fewer of them are used, and if they are used then in a more secure fashion.
It is our aim to accomplish three types of goals:
A non-goal of this document is to evaluate ways for improving identity proofing, which is a requirement for accomplishing higher levels of assurance.
We do not believe that the technical community should be attempting to come up with the single and best solution to satisfy these three goals. We would like to leave room for innovation and allow many different solutions to co-exist to best suite their deployment.
Subsequently, we try to highlight a few guiding principles in an attempt to come with a way forward.
It would be short sighted to write about a topic like this without touching a commonly desired way to reduce the number of long term credentials: federated logins
Federated login allows a user to utilize his credential obtained from one organization, acting as the Identity Provider, for accessing a resource at another entity, who acts as a Relying Party. While this approach addresses some of our design goals it causes secondary problems to appear - particularly related to privacy.
The following issues in this transition from a two-party to a three-party model are to observe:
Note: While this text talks about three parties there may well be more parties involved in the exchange. The role of the identity consists of a credential provider and an attribute provider that may be provided by different parties. Furthermore, attributes associated with personal data may be contributed by multiple attribute providers, not just by a single entity. There may also be additional parties involved in the communication between the identity provider and the relying party the trust path from the identity provider to the relying party.
This document does not require actions by IANA.
The content of this document has been created based on discussions with a number of persons, including
We would like to thank them for their input. We would also like to thank the participants of the May 2011 W3C Identity in the Browser workshop for their discussion feedback.
This document version serves as a starting point for a discussion. As such, there are several things not yet mentioned, such as
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC2616] | Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. |
[RFC2617] | Franks, J., Hallam-Baker, P.M., Hostetler, J.L., Lawrence, S.D., Leach, P.J., Luotonen, A. and L. Stewart, "HTTP Authentication: Basic and Digest Access Authentication", RFC 2617, June 1999. |
[RFC2109] | Kristol, D.M. and L. Montulli, "HTTP State Management Mechanism", RFC 2109, February 1997. |
[RFC6265] | Barth, A., "HTTP State Management Mechanism", RFC 6265, April 2011. |
[RFC2965] | Kristol, D. M. and L. Montulli, "HTTP State Management Mechanism", RFC 2965, October 2000. |
[I-D.ietf-oauth-v2] | Hammer-Lahav, E, Recordon, D and D Hardt, "The OAuth 2.0 Authorization Protocol", Internet-Draft draft-ietf-oauth-v2-25, March 2012. |
[RFC5849] | Hammer-Lahav, E., "The OAuth 1.0 Protocol", RFC 5849, April 2010. |
[I-D.ietf-websec-origin] | Barth, A, "The Web Origin Concept", Internet-Draft draft-ietf-websec-origin-06, October 2011. |
[I-D.ietf-websec-strict-transport-sec] | Hodges, J, Jackson, C and A Barth, "HTTP Strict Transport Security (HSTS)", Internet-Draft draft-ietf-websec-strict-transport-sec-07, May 2012. |
[RFC2069] | Franks, J., Hallam-Baker, P., Hostetler, J., Leach, P., Luotonen, A., Sink, E. and L. Stewart, "An Extension to HTTP : Digest Access Authentication", RFC 2069, January 1997. |
[I-D.ietf-abfab-arch] | Howlett, J, Hartman, S, Tschofenig, H and E Lear, "Application Bridging for Federated Access Beyond Web (ABFAB) Architecture", Internet-Draft draft-ietf-abfab-arch-01, March 2012. |
[I-D.ietf-httpbis-p7-auth] | Fielding, R, Lafon, Y and J Reschke, "HTTP/1.1, part 7: Authentication", Internet-Draft draft-ietf-httpbis-p7-auth-19, March 2012. |
[I-D.tschofenig-post-standardization] | Tschofenig, H, Aboba, B, Peterson, J and D McPherson, "Trends in Web Applications and the Implications on Standardization", Internet-Draft draft-tschofenig-post-standardization-02, May 2012. |
[I-D.ietf-rtcweb-overview] | Alvestrand, H, "Overview: Real Time Protocols for Brower-based Applications", Internet-Draft draft-ietf-rtcweb-overview-04, June 2012. |
[I-D.ietf-rtcweb-security] | Rescorla, E, "Security Considerations for RTC-Web", Internet-Draft draft-ietf-rtcweb-security-01, October 2011. |
[Quest] | , , "The Quest to Replace Passwords: A Framework for Comparative Evaluation of Web Authentication Schemes, In Proc. IEEE Symp. on Security and Privacy 2012 (Oakland 2012)", July 2012. |