RFC 2084 INFORMATIONAL SECURITY · HTTP · AUTHENTICATION

Considerations for Web Transaction Security

Requirements for securing HTTP with confidentiality, integrity, and authentication.

On rfc-editor.org ↗
PUBLISHED
January 1997
AUTHORS
G. Bossert, S. Cooper, W. Drummond
STREAM
IETF
PUBLICATION DATE
January 1997
SCOPE
HTTP security requirements
RFC STATUS
Informational
DOI
10.17487/RFC2084

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                         G. Bossert
Request for Comments: 2084                                     S. Cooper
Category: Informational                            Silicon Graphics Inc.
                                                             W. Drummond
                                                              IEEE, Inc.
                                                            January 1997


              Considerations for Web Transaction Security

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

Abstract

   This document specifies the requirements for the provision of
   security services to the HyperText Transport Protocol.  These
   services include confidentiality, integrity, user authentication, and
   authentication of servers/services, including proxied or gatewayed
   services.  Such services may be provided as extensions to HTTP, or as
   an encapsulating security protocol.  Secondary requirements include
   ease of integration and support of multiple mechanisms for providing
   these services.

1. Introduction

   The use of the HyperText Transport Protocol [1] to provide
   specialized or commercial services and personal or private data
   necessitates the development of secure versions that include privacy
   and authentication services.  Such services may be provided as
   extensions to HTTP, or as encapsulating security protocols; for the
   purposes of this document, all such enhancements will be referred to
   as WTS.

   In this document, we specify the requirements for WTS, with the
   intent of codifying perceived Internet-wide needs, along with
   existing practice, in a way that aids in the evaluation and
   development of such protocols.

   WTS is an enhancement to an object transport protocol.  As such, it
   does not provide independent certification of documents or other data
   objects outside of the scope of the transfer of said objects.  In
   addition, security at the WTS layer is independent of and orthogonal
   to security services provided at underlying network layers.  It is
   envisioned that WTS may coexist in a single transaction with such
   mechanisms, each providing security services at the appropriate
   level, with at worst some redundancy of service.

1.1 Terminology

   This following terms have specific meaning in the context of this
   document.  The HTTP specification [1] defines additional useful
   terms.

   Transaction:
      A complete HTTP action, consisting of a request from the
      client and a response from the server.

   Gatewayed Service:
      A service accessed, via HTTP or an alternate protocol, by the
      HTTP server on behalf of the client.

   Mechanism:
      An specific implementation of a protocol or related subset of
      features of a protocol.

2. General Requirements

   WTS must define the following services.  These services must be
   provided independently of each other and support the needs of proxies
   and intermediaries

    o Confidentiality of the HTTP request and/or response.
    o Data origin authentication and data integrity of the HTTP request
      and/or response.
    o Non-repudiability of origin for the request and/or response.
    o Transmission freshness of request and/or response.
    o Ease of integration with other features of HTTP.
    o Support of multiple mechanisms for the above services.

3. Confidentiality

   WTS must be able to provide confidentiality for both requests and
   responses.  Note: because the identity of the object being requested
   is potentially sensitive, the URI of the request should be
   confidential; this is particularly critical in the common case of
   form data or other user input being passed in the URI.

4. Service Authentication

   WTS should support the authentication of gatewayed services to the
   client.

   WTS should support the authentication of the origin HTTP server or
   gatewayed services regardless of intermediary proxy or caching
   servers.

   To allow user privacy, WTS must support service authentication with
   user anonymity.

   Because the identity of the object being requested is potentially
   sensitive, service authentication should occur before any part of the
   request, including the URI of the requested object, is passed.  In
   cases where the authentication process depends on the URI (or other
   header data) of the request, such as gatewayed services, the minimum
   necessary information to identify the entity to be authenticated
   should be passed.

5. User Authentication

   WTS must support the authentication of the client to the server.

   WTS should support the authentication of the client to gatewayed
   services.

   WTS should support the authentication of the client to the origin
   HTTP server regardless of intermediary proxy servers.

6. Integrity

   WTS must provide assurance of the integrity of the HTTP transaction,
   including the HTTP headers and data objects of both client requests
   and server responses.

7. Integration

   In order to support integration with current and future versions of
   HTTP, and to provide extendibility and independence of development,
   the secure services provided by WTS must be orthogonal to and
   independent of other services provided by HTTP.

   In accordance with the layered model of network protocols, WTS must
   be:

    o independent of the content or nature of data objects being
      transported although special attention to reference integrity of
      hyperlinked objects may be appropriate

    o implementable over a variety of connection schemes and
      underlying transport protocols

8. Multiple Mechanisms

   WTS must be compatible with multiple mechanisms for authentication
   and encryption.  Support for multiple mechanisms is required for a
   number of reasons:

    o Accommodation of variations in site policies, including those
      due to external restrictions on the availability of
      cryptographic technologies.

    o Support for a variety of applications and gatewayed services.

    o Support for parallel implementations within and across
      administrative domains.

    o Accomodation of application-specific performance/security
      tradeoffs.

   To allow interoperability across domains, and to support the
   transition to new/upgraded mechanisms, WTS should provide negotiation
   of authentication and encryption mechanisms.

References

   [1] Berners-Lee, T., Fielding, R., and H. Frystyk Nielsen,
       "Hypertext Transfer Protocol -- HTTP/1.0", RFC 1945,
       May 1996.

   [2] G. Bossert, S. Cooper, W. Drummond.  "Requirements of Secure
       Object Transfer Protocols", Work in Progress
       <URL:http://www-ns.rutgers.edu/www-security/draft/
       draft-rutgers-sotp-requirements-00.txt>, March 1995.

   The revision history of this document can be located at
   <URL:http://reality.sgi.com/csp/wts-wg/wts-documents.html>

Acknowledgments

   This document is a product of the IETF WTS working group.  The
   working group uses the wts-wg@postofc.corp.sgi.com mailing list for
   discussion.  The subscription address is wts-wg-
   request@postofc.corp.sgi.com.

   Eric Rescorla of Terisa <ekr@terisa.com> provided valuable comments
   on an early draft of a document called "Requirements of Secure Object
   Transfer" [2], a principal influence on this document.

Security Considerations

   As noted above.

Authors' Addresses

   Greg Bossert
   Silicon Graphics, Inc. MS 15-7
   2011 North Shoreline Blvd.
   Mountain View, CA 94043-1389
   USA

   EMail: bossert@corp.sgi.com


   Simon Cooper
   Silicon Graphics, Inc. MS 15-7
   2011 North Shoreline Blvd.
   Mountain View, CA 94043-1389
   USA

   EMail: sc@corp.sgi.com


   Walt Drummond
   Institute of Electrical and Electronics Engineers, Inc.
   445 Hoes Lane
   Piscataway, NJ 08855-1331
   USA

   Phone: 908-562-6545
   Fax: 908-562-1727
   EMail: drummond@ieee.org

AI ELI5

On this page
PROBLEMAs HTTP carries sensitive and commercial data, it needs security services including confidentiality, integrity, and authentication of both clients and servers.
MECHANISMThe RFC specifies a set of security requirements that HTTP enhancements must provide, including support for multiple encryption and authentication mechanisms.
GUIDING FRAMEWORKThese requirements guided the development of secure HTTP protocols, ensuring that web security evolved with support for flexible mechanisms and coexistence with network-layer security.

§1Security for Web Transactions

As the web carries specialized services and personal data, HTTP needs security enhancements. This RFC specifies requirements for Web Transaction Security (WTS)—any security mechanism that adds confidentiality, integrity, and authentication to HTTP transactions. WTS can be built as extensions to HTTP itself or as encapsulating security protocols that wrap around HTTP.

The RFC clarifies that WTS is independent of security at lower network layers and does not certify documents outside the transfer itself, but works alongside other security mechanisms at different protocol levels.

The web needs a safe way to send private information. This document says what kinds of safety features it needs, like keeping secrets and proving identity.

§2Confidentiality and Integrity

WTS must protect both the HTTP request and response from being read by unauthorized parties. This includes the request URI, which can contain sensitive data like form inputs. The RFC emphasizes that the identity of what is being requested is itself sensitive information that needs protection.

The system must also guarantee data integrity—assurance that the HTTP transaction including both headers and body data has not been modified in transit, for both client requests and server responses.

Messages need two kinds of protection: keeping them secret so only the right person can read them, and making sure nobody sneaks in to change the message along the way.

§3Authentication and Non-Repudiation

WTS must authenticate users to servers, allowing servers to verify who is making the request. It should also authenticate services—including gatewayed services accessed through HTTP proxies—to clients, and verify server identity regardless of intermediate proxy or caching servers. To preserve user privacy, service authentication must work even when the user remains anonymous.

The system should provide non-repudiation, meaning the sender cannot later deny having sent a request or response. Authentication should happen before sensitive request data is sent across the network.

Both sides need to prove who they are: the user proves they are who they say, and the website proves it is the real website you meant to visit.

§4Multiple Mechanisms and Integration

WTS must support multiple mechanisms for authentication and encryption. Different organizations have different policies, regulatory restrictions, and specific needs. The RFC requires that WTS be independent of HTTP content or transport mechanisms, implementable over various connection schemes and underlying protocols.

The system must negotiate among available mechanisms to allow interoperability across administrative domains and enable gradual transition to new or upgraded mechanisms. This layered approach means security services are orthogonal to and independent of other HTTP features.

Different places need different kinds of locks, and they need to be able to agree on which lock to use without breaking the rest of how the web works.

§5Freshness and Deployment

WTS must ensure transmission freshness—preventing replayed or out-of-date transactions from being accepted as current. The RFC emphasizes that WTS must integrate smoothly with both current and future HTTP versions, and be easy to deploy in real systems.

The requirements are designed to be general enough to guide various implementation approaches while specific enough to ensure interoperability. These principles supported the development of HTTP security mechanisms that became widely deployed.

The system needs to know if a message is old or fake, and it should be easy for real websites to use it without breaking everything.

§6References

[1]RFC 1945Berners-Lee, T., Fielding, R., and H. Frystyk Nielsen, "Hypertext Transfer Protocol -- HTTP/1.0", RFC 1945, May 1996.May 1996
[2]Bossert, G., Cooper, S., and W. Drummond, "Requirements of Secure Object Transfer Protocols", Work in Progress, March 1995.