summaryrefslogtreecommitdiff
path: root/doc/protocol
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2007-08-24 01:36:17 +0200
committerSimon Josefsson <simon@josefsson.org>2007-08-24 01:36:17 +0200
commit75dc933962fcb2f559db1e8aee708d7d857d11fe (patch)
tree187705623542bdc2e105a6d868db304a917f1b4b /doc/protocol
parent62cf9d8e414f54a213988b6d0676c53d1009da70 (diff)
downloadgnutls-75dc933962fcb2f559db1e8aee708d7d857d11fe.tar.gz
Add.
Diffstat (limited to 'doc/protocol')
-rw-r--r--doc/protocol/draft-babu-serv-cert-trans-from-proxy-00.txt381
1 files changed, 381 insertions, 0 deletions
diff --git a/doc/protocol/draft-babu-serv-cert-trans-from-proxy-00.txt b/doc/protocol/draft-babu-serv-cert-trans-from-proxy-00.txt
new file mode 100644
index 0000000000..a860e8786e
--- /dev/null
+++ b/doc/protocol/draft-babu-serv-cert-trans-from-proxy-00.txt
@@ -0,0 +1,381 @@
+
+Network Working Group Babu Neelam
+Internet-Draft Independent
+Intended status: Standards Track August 19, 2007
+Expires: February 15, 2008
+
+
+ TLS extension for Proxies to transfer Server certificate
+ draft-babu-serv-cert-trans-from-proxy-00
+
+Status of this Memo
+
+ By submitting this Internet-Draft, each author represents that any
+ applicable patent or other IPR claims of which he or she is aware
+ have been or will be disclosed, and any of which he or she becomes
+ aware will be disclosed, in accordance with Section 6 of 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/ietf/1id-abstracts.txt.
+
+ The list of Internet-Draft Shadow Directories can be accessed at
+ http://www.ietf.org/shadow.html.
+
+ This Internet-Draft will expire on January 10, 2008.
+
+Copyright Notice
+
+ Copyright (C) The IETF Trust (2007).
+
+Abstract
+
+ Intercepting transparent proxies splice the client-Server connection
+ into two connections: Client-Proxy connection, Proxy-server
+ connection. On Client-Proxy connection, proxy sends it's certificate
+ to the client. As client is generally (in such a scenario)
+ pre-configured to accept proxy's certificate, client accepts and
+ proceeds further with the connection. On Proxy-Server connection,
+ server sends its certificate to the proxy. Proxy typically doesn't
+ possess the information (like MX domain name in case of SMTP)
+ required to validate the certificate. The certificate validation is
+ at times very complex & hence it is better to offload this
+ reponsibility to the original client itself.
+
+ This document addresses this issue by extending TLS to let proxy
+ send server's certificate to the client for validation and suggests
+ how client can indicate certificate validation result to the proxy.
+
+Requirements Language
+
+ 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].
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
+ 2. Mechanism Overview . . . . . . . . . . . . . . . . . . . . . . 2
+ 3. Need Server certificate extension. . . . . . . . . . . . . . . 2
+ 4. Handshake message to transfer server certificate . . . . . . . 3
+ 5. various scenarios. . . . . . . . . . . . . . . . . . . . . . . 4
+ 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6
+ 7. Normative References . . . . . . . . . . . . . . . . . . . . . 6
+ Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 6
+ Intellectual Property and Copyright Statements . . . . . . . . . . 7
+
+
+1. Introduction
+
+ Today, intercepting transparent proxies are very common in
+ applications (say SMTP, HTTP) using [TLS]. In SMTP, these
+ intercepting proxies may provide functionality like anti-virus
+ scanning, anti-spam scanning. HTTP intercepting proxies may provide
+ functionality like anti-virus scanning, URL filtering etc.
+
+ Client ---- Transparent Proxy -------- Server
+
+ This document defines a way for proxy to send original server's
+ certificate to the original client and suggests how client can
+ indicate certificate validation result to the proxy. The mechanism
+ makes use of TLS extension framework defined in [RFC4366] and defines
+ a new TLS handshake message type.
+
+ The clients supporting this extension receive certificates of
+ intercepting proxy (if interception happens) as well as the original
+ server. So clients should be capable of handling validations on both
+ the certificates.
+
+2. Mechanism Overview
+
+ This extension defines
+ - A new extension type (need_server_certificate) for extended
+ client hellos defined in [RFC4366].
+ - A new handshake message (Orig_server_certificate)
+
+3. Need Server certificate extension
+
+ Who should send this extension ?
+ - A client which is configured to request the original server
+ certificate for validation includes an extension of type
+ "need_server_certificate" in (extended) client hello.
+ - It is possible that there could be more than one proxy
+ between client and server:
+
+ Client --- P1 --- P2 ------ Server
+
+ In such a scenario, P1 also includes "need_server_certificate"
+ in (extended) client hello in its connection to P2, unless it
+ has the knowledge that it is the last proxy between client and
+ server. If a proxy is configured that it is the edge proxy in
+ client's trust domain, then it need not send this extension.
+
+ How should a receiver respond to this ?
+ - If a proxy intercepts the connection, it SHOULD respond back to
+ the client with "need_server_certificate" extension.
+ - When there are no intercepting proxies, a server receives this
+ extension. A server which understands this extension should
+ ignore this. It is not clear from [RFC4366] what a server does
+ when it receives an extension which it doesn't understand.
+ This item is TBD.
+ - If a proxy which doesn't have the capability to validate server
+ certificate or is configured to offload this responsibility to
+ the original client doesn't receive "need_server_certificate"
+ extension, it should return a fatal error like handshake failure
+ or insufficient security (TBD).
+
+ When a proxy responds with "need_server_certificate" extension to the
+ client, proxy MUST send the its certificate as well as the original
+ server certificate to the client (discussed in section 4).
+
+
+ How should client handle ServerHello?
+ - If the client receives "need server_certificate" extension in
+ ServerHello, it MUST expect the nexthop proxy certificate as
+ well as the original server certificate. Client MUST perform
+ validations on both proxy certificate as well as original server
+ certificate. If a client doesn't receive server certificate, it
+ MUST abort the connection.
+ - If the client doesn't receive "need_server_certificate"
+ extention in SerVerHello, client MUST assume that there is no
+ proxy in between and MUST perform server certificate validations
+ on the received certificate.
+
+ The "extension_data" field of this extension in both clientHello as
+ well as ServerHello SHALL be empty.
+
+ Note on backward compatibility: Suppose a client supports this
+ extension, but a intercepting proxy or the actual server doesn't
+ understand extended hello or "need_server_certificate", client
+ MUST proceed with the connection and MUST perform server certificate
+ validations on the received certificate. By validating this way,
+ clientcan deny connections from any proxies (because certificate
+ validation fails) which do not support this mechanism, but still
+ accept connections from server which do not support this.
+
+4. Handshake message to transfer server certificate
+
+ This docuemnt suggests the use of a new handshake message,
+ "orig_server_certificate" to transfer the original server's
+ certificate to the client. The new handshake message structure
+ therefore becomes:
+
+ enum {
+ hello_request(0), client_hello(1), server_hello(2),
+ certificate(11), server_key_exchange (12),
+ certificate_request(13), server_hello_done(14),
+ certificate_verify(15), client_key_exchange(16),
+ finished(20), certificate_url(21), certificate_status(22),
+ orig_server_certificate(23),
+ (255)
+ } HandshakeType;
+
+ struct {
+ HandshakeType msg_type; /* handshake type */
+ uint24 length; /* bytes in message */
+ select (HandshakeType) {
+ case hello_request: HelloRequest;
+ case client_hello: ClientHello;
+ case server_hello: ServerHello;
+ case certificate: Certificate;
+ case server_key_exchange: ServerKeyExchange;
+ case certificate_request: CertificateRequest;
+ case server_hello_done: ServerHelloDone;
+ case certificate_verify: CertificateVerify;
+ case client_key_exchange: ClientKeyExchange;
+ case finished: Finished;
+ case certificate_url: CertificateURL;
+ case certificate_status: CertificateStatus;
+ case orig_server_certificate: Certificate; /*new*/
+ } body;
+ } Handshake;
+
+ The structure of Certificate is defined in [RFC4346].
+
+ If proxy responded to the client with "need_server_certificate"
+ extension, this message MUST be sent immediately after the
+ "Certificate" handshake message in Client-Proxy connection.
+
+ The client MUST perform validations on the received proxy
+ certificate as well as the server certificate. If either proxy or
+ server certificate is not valid, client should respond with
+ certificate related error messages defined in [RFC4346]. On
+ reception of such an error, proxy MUST close the Proxy-Server
+ connection.
+
+ It should be noted that proxy transparency is lost at TLS layer
+ due to the fact that client is sent both proxy as well as original
+ server certificate for validation. Though transparency is not
+ possible at TLS layer, application protocols can still remain
+ transparent to the proxy operation.
+
+5. various scenarios
+
+ Client, Proxy understand this extension.
+
+ Client Proxy Server
+
+ ClientHelo
+ (with
+ "need_orig_server") -->
+ ClientHelo
+ (with
+ "need_orig_server")--->
+ ServerHelo
+ (without
+ "need_orig_server")
+ Certificate
+ ServerkeyExchange
+ <--- ServerhelloDone
+ ServerHelo
+ (with "need_orig_server")
+ Certificate
+ orig_server_certificate
+ ServerkeyExchange
+ <-- ServerHelloDone
+ ClientKeyExchange
+ CertificateVerify
+ [ChangeCipherSpec]
+ [Finished] -->
+ [ChangeCipherSpec]
+ <-- [Finished]
+ [ChangeCipherSpec]
+ [Finished] -->
+ [ChangeCipherSpec]
+ <-- [Finished]
+
+
+
+ Client understands this extension. Proxy doesn't. In this case,
+ certificate validation fails on the received proxy certificate.
+
+
+ Client Proxy Server
+
+ ClientHelo
+ (with
+ "need_orig_server") -->
+ ServerHelo
+ (without "need_orig_server")
+ Certificate
+ orig_server_certificate
+ ServerkeyExchange
+ <-- ServerHelloDone
+ Certificate error
+
+
+
+ Client doesn;t understand this extension, but proxy is configured
+ to offload original server certificate responsibility to the
+ original client:
+
+ Client Proxy Server
+
+ ClientHelo
+ (with
+ "need_orig_server") -->
+ Fatal Error
+
+ TBD: Two proxies between client and server. Client as well as two
+ proxies undertsand this extension.
+
+6. IANA Considerations
+
+ This document (if approved) requests IANA to allocate
+ "need-server_certificate" TLS extension and
+ "Orig_server_certificate" handhsake message.
+
+ Note to RFC Editor: this section may be removed on publication as an
+ RFC.
+
+7. Security Considerations
+
+ Though this extension equips clients with an ability to validate
+ original server certificate as well as it's nexthop, it doesn't
+ provide a mechanism to transmit certficates of any proxies between
+ the first proxy and the original server. It is assumed that client
+ trusts the first proxy to either not allow any other proxies in
+ between or to allow only a proxy which is in the trusted domain.
+
+8. Normative References
+
+ [RFC4346] The Transport Layer Security (TLS) Protocol Version 1.1.
+ T.Dierks, E. Rescorla. April 2006.
+ [RFC4366] Transport Layer Security (TLS) Extensions.
+ S. Blake-Wilson, M.Nystrom, D. Hopwood, J. Mikkelsen,
+ T. Wright. April 2006.
+ [RFC2818] HTTP Over TLS. E. Rescorla. May 2000.
+ [RFC3207] SMTP Service Extension for Secure SMTP over Transport
+ Layer Security. P. Hoffman. February 2002.
+
+Author's Address
+
+ Babu Neelam
+ Intoto Software India Private Ltd.
+ 8-3-1111/2, kesava nagar colony,
+ sriniagar colony main road,
+ punjagutta,
+ Hyderabad,
+ India.
+
+ Email: babun@intoto.com
+
+ Comments are solicited and should be addressed to the working
+ group's mailing list at ietf-http-wg@w3.org and/or the author(s).
+
+
+Full Copyright Statement
+
+ Copyright (C) The IETF Trust (2007).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
+ THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.
+
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+
+Acknowledgment
+
+ Funding for the RFC Editor function is provided by the IETF
+ Administrative Support Activity (IASA).