Internet DRAFT - draft-belingueres-http-tls-filter
draft-belingueres-http-tls-filter
Network Working Group G. Belingueres
Internet-Draft Independent Consultant
Expires: May 23, 2000 November 23, 1999
HTTP over TLS using a TCP Filter
draft-belingueres-http-tls-filter-00.txt
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026 [1].
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/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Copyright Notice
Copyright (C) The Internet Society (1999). All Rights Reserved.
1. Abstract
This document explains how to use the TCP Security Filter mechanism
to initiate a Transport Layer Security (TLS) session to secure HTTP
connections over the Internet. This allows unsecured and secured HTTP
traffic to share the same well known port (in this case, http: at 80
rather than https: at 443). As an additional point, a similar
mechanism like the described here could be used to provide other
different kind of layers to HTTP connections.
2. Introduction
The popular HTTP [2] protocol is used in the clear over the Internet.
That means that it provides an insecure channel to deliver their
messages. The common technique to secure HTTP traffic is to use SSL
(or their successor, TLS) [3] as a virtual transport layer for HTTP
messages. This distinction among secure and insecure traffic is
Belingueres Expires Mayo 23, 2000 [Page 1]
Internet-Draft HTTP over TLS using a TCP Filter November 1999
accomplished by providing two different services (i.e. tow different
port numbers are used). This is the approach given in [4], and what
is in use at the present time. The advantage is that it is simple.
The disadvantage is that an application protocol requiring transport
their data over TLS requires an extra port number available.
Other way to require the secure virtual transport layer presence is
extending the HTTP protocol definition to indicate that requirement.
This is the approach taken in [5]. The advantage (among others) is it
can share the same well known port for both kind of services. The
disadvantage is it requires to extend the application protocol, taken
care that defined message semantics don't be misused, confused or
invalidated by new extensions.
I present here another method to activate secure HTTP connections,
based on the agreement of a TCP Security filter [6] at the moment of
creating the TCP [7] connection. If the agreed security filter is of
type "TLS Family", then the HTTP protocol deliver their messages
using the TLS protocol as the secure virtual transport layer. This
means that both secure and insecure HTTP connections share the same
port.
2. Conventions used in this document
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 [8].
3. Connection setting
When a client request a secure connection to an URI like
https://www.example.com, it SHALL open a new TCP connection to the
well known port 80, setting as a TCP Security filter the "TLS Family"
code.
After the 3-way handshake for opening a TCP connection, both parties
known what TCP filters are agreed, as defined in [9]. If such a
filter is the "TLS Family" one, then the client immediately MUST
begin the TLS handshake with the TLS' ClientHello message. If the TCP
connection has no option returned from the server, then a security
layer can not be instantiated and proper feedback SHOULD be provided
to the user; in this case the connection SHOULD be reseted.
Since the TCP Security Filter defines a family of protocols, the
actual protocol instantiated MUST be one of the defined by the TLS
Family option, i.e. SSL 2.0, SSL 3.0 or TLS 1.0. As that protocols
provide backward compatibility, is sufficient to send the ClientHello
message with the highest TLS version number possible.
In the other hand, the HTTP server is waiting for a connection. After
finishing the 3-way handshake, it checks for the TCP filters agreed.
If no option is set, then the server MUST proceed as a normal HTTP
Belingueres Expires May 23, 2000 [Page 2]
Internet-Draft HTTP over TLS using a TCP Filter November 1999
connection, as defined in [2]. If the "TLS Family" option is agreed,
the server has to left the connection in hands of the TLS protocol to
perform the TLS handshake. Once done with the TLS handshake, the HTTP
server can continue with their normal behavior, as defined in [4].
If a TCP option encountered by the either the server or the client is
not supported, it MUST be reported as an error, and the TCP
connection SHOULD be reseted.
4. HTTP over TLS behavior
After the connection as been established as pointed by the above
section, both the server and client MUST behave as described in [4].
5. Forward Compatibility and Layering
Since TCP filters can be layered in any way, it could happen that
additional filters could be required by an HTTP connection. In that
case, either the additional filters position above or below the TLS
protocol, it must define its own opening and closing semantics, taken
care of security risks that special combinations could arise.
Also, as the quantity of filters become higher than 1, not all
permutations of TCP filters will have sense to apply. The HTTP
protocol will have to check the filter list of that open connection
for permutations of filters that are correct. Out-of-order list of
filters SHOULD cause that connection to reset.
6. Security Considerations
Indicating the need of open a secure connection with an HTTP server
using a Security filter should not cause security weakness on HTTP
nor TLS.
Man-in-the-middle attacks are detectable, as the parties could be
adequately authenticated by TLS, as [4] specifies.
As a final note, this document does not analyses the security
provided by the TLS protocol instantiated.
9. References
1 Bradner, S., "The Internet Standards Process -- Revision 3", BCP
9, RFC 2026, October 1996.
2 Fielding, R. et. al., "Hypertext Transfer Protocol -- HTTP/1.1",
RFC 2616, June 1999.
Belingueres Expires May 23, 2000 [Page 3]
Internet-Draft HTTP over TLS using a TCP Filter November 1999
3 Allen, C., and Dierks, T., "Transport Layer Security Protocol
v1.0", RFC 2246, January 1999.
4 Rescorla, E., "HTTP over TLS", Internet-Draft, Work in Progress.
<draft-ietf-tls-https-04.txt>
5 Khare, R., Lawrence, S., "Upgrading to TLS within HTTP/1.1",
Internet-Draft, Work in Progress. <draft-ietf-tls-http-upgrade-
04.txt>
6 Belingueres, G., "TCP Security Filter", Internet-Draft, Work in
Progress. <draft-belingueres-tcpsec-00.txt>
7 Postel, J., "Transport Control Protocol", STD 7, RFC 793,
September 1981.
8 Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
9 Bellovin, S. et. al., "TCP Filters", Internet-Draft, Work in
Progress. <draft-bellovin-tcpfilt-00.txt>
10. Acknowledgments
11. Author's Addresses
Gabriel Belingueres
Independent Consultant
Ines Indart, CP 2747, Argentina
Email: gaby@ieee.org
Belingueres Expires May 23, 2000 [Page 4]
Internet-Draft HTTP over TLS using a TCP Filter November 1999
Full Copyright Statement
Copyright (C) The Internet Society (1999). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Belingueres Expires May 23, 2000 [Page 5]