2 TLS Working Group S. Blake-Wilson
4 Obsoletes: 3546 (if approved) M. Nystrom
5 Updates: 2246 RSA Security
6 Category: Standards Track D. Hopwood
7 Expires: November 2005 Independent Consultant
14 Transport Layer Security (TLS) Extensions
15 <draft-ietf-tls-rfc3546bis-01.txt>
19 This document is an Internet-Draft and is subject to all provisions
20 of section 3 of RFC 3667.
22 By submitting this Internet-Draft, each author represents that any
23 applicable patent or other IPR claims of which he or she is aware
24 have been or will be disclosed, and any of which he or she becomes
25 aware will be disclosed, in accordance with Section 6 of BCP 79.
27 Internet-Drafts are working documents of the Internet Engineering
28 Task Force (IETF), its areas, and its working groups. Note that
29 other groups may also distribute working documents as Internet-
32 Internet-Drafts are draft documents valid for a maximum of six months
33 and may be updated, replaced, or obsoleted by other documents at any
34 time. It is inappropriate to use Internet-Drafts as reference
35 material or to cite them other than as "work in progress."
37 The list of current Internet-Drafts can be accessed at http://
38 www.ietf.org/ietf/1id-abstracts.txt.
40 The list of Internet-Draft Shadow Directories can be accessed at
41 http://www.ietf.org/shadow.html.
43 This Internet-Draft will expire in November 2005.
47 Copyright (C) The Internet Society (2005). All Rights Reserved.
51 This document describes extensions that may be used to add
52 functionality to Transport Layer Security (TLS). It provides both
53 generic extension mechanisms for the TLS handshake client and server
54 hellos, and specific extensions using these generic mechanisms.
56 The extensions may be used by TLS clients and servers. The
57 extensions are backwards compatible - communication is possible
58 between TLS 1.0 clients that support the extensions and TLS 1.0
59 servers that do not support the extensions, and vice versa.
61 Blake-Wilson, et. al. Standards Track [Page 1]
63 Internet-Draft TLS Extensions May 2005
65 Conventions used in this Document
67 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
68 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
69 document are to be interpreted as described in BCP 14, RFC 2119
74 1. Introduction ............................................. 2
75 2. General Extension Mechanisms ............................. 4
76 2.1. Extended Client Hello ............................... 5
77 2.2. Extended Server Hello ............................... 5
78 2.3. Hello Extensions .................................... 6
79 2.4. Extensions to the handshake protocol ................ 7
80 3. Specific Extensions ...................................... 8
81 3.1. Server Name Indication .............................. 8
82 3.2. Maximum Fragment Length Negotiation ................. 10
83 3.3. Client Certificate URLs ............................. 11
84 3.4. Trusted CA Indication ............................... 14
85 3.5. Truncated HMAC ...................................... 15
86 3.6. Certificate Status Request........................... 16
87 4. Error alerts .............................................. 18
88 5. Procedure for Defining New Extensions...................... 20
89 6. Security Considerations .................................. 21
90 6.1. Security of server_name ............................. 21
91 6.2. Security of max_fragment_length ..................... 21
92 6.3. Security of client_certificate_url .................. 22
93 6.4. Security of trusted_ca_keys ......................... 23
94 6.5. Security of truncated_hmac .......................... 23
95 6.6. Security of status_request .......................... 24
96 7. Internationalization Considerations ...................... 24
97 8. IANA Considerations ...................................... 24
98 9. Intellectual Property Rights ............................. 26
99 10. Acknowledgments .......................................... 26
100 11. Normative References ..................................... 27
101 12. Informative References ................................... 28
102 13. Authors' Addresses ....................................... 28
103 14. Full Copyright Statement ................................. 29
107 This document describes extensions that may be used to add
108 functionality to Transport Layer Security (TLS). It provides both
109 generic extension mechanisms for the TLS handshake client and server
110 hellos, and specific extensions using these generic mechanisms.
112 TLS is now used in an increasing variety of operational environments
113 - many of which were not envisioned when the original design criteria
114 for TLS were determined. The extensions introduced in this document
115 are designed to enable TLS to operate as effectively as possible in
116 new environments like wireless networks.
118 Blake-Wilson, et. al. Standards Track [Page 2]
120 Internet-Draft TLS Extensions May 2005
122 Wireless environments often suffer from a number of constraints not
123 commonly present in wired environments. These constraints may
124 include bandwidth limitations, computational power limitations,
125 memory limitations, and battery life limitations.
127 The extensions described here focus on extending the functionality
128 provided by the TLS protocol message formats. Other issues, such as
129 the addition of new cipher suites, are deferred.
131 Specifically, the extensions described in this document:
133 - Allow TLS clients to provide to the TLS server the name of the
134 server they are contacting. This functionality is desirable to
135 facilitate secure connections to servers that host multiple
136 'virtual' servers at a single underlying network address.
138 - Allow TLS clients and servers to negotiate the maximum fragment
139 length to be sent. This functionality is desirable as a result of
140 memory constraints among some clients, and bandwidth constraints
141 among some access networks.
143 - Allow TLS clients and servers to negotiate the use of client
144 certificate URLs. This functionality is desirable in order to
145 conserve memory on constrained clients.
147 - Allow TLS clients to indicate to TLS servers which CA root keys
148 they possess. This functionality is desirable in order to prevent
149 multiple handshake failures involving TLS clients that are only
150 able to store a small number of CA root keys due to memory
153 - Allow TLS clients and servers to negotiate the use of truncated
154 MACs. This functionality is desirable in order to conserve
155 bandwidth in constrained access networks.
157 - Allow TLS clients and servers to negotiate that the server sends
158 the client certificate status information (e.g., an Online
159 Certificate Status Protocol (OCSP) [OCSP] response) during a TLS
160 handshake. This functionality is desirable in order to avoid
161 sending a Certificate Revocation List (CRL) over a constrained
162 access network and therefore save bandwidth.
164 In order to support the extensions above, general extension
165 mechanisms for the client hello message and the server hello message
168 The extensions described in this document may be used by TLS 1.0
169 clients and TLS 1.0 servers. The extensions are designed to be
170 backwards compatible - meaning that TLS 1.0 clients that support the
171 extensions can talk to TLS 1.0 servers that do not support the
172 extensions, and vice versa.
174 Blake-Wilson, et. al. Standards Track [Page 3]
176 Internet-Draft TLS Extensions May 2005
178 Backwards compatibility is primarily achieved via two considerations:
180 - Clients typically request the use of extensions via the extended
181 client hello message described in Section 2.1. TLS 1.0 [TLS]
182 requires servers to accept extended client hello messages, even if
183 the server does not "understand" the extension.
185 - For the specific extensions described here, no mandatory server
186 response is required when clients request extended functionality.
188 Note however, that although backwards compatibility is supported,
189 some constrained clients may be forced to reject communications with
190 servers that do not support the extensions as a result of the limited
191 capabilities of such clients.
193 This document is a revision of the RFC3546 [RFC3546]. The only
194 major change concerns the definition of new extensions. New
195 extensions can now be defined via the IETF Consensus Process (rather
196 than requiring a standards track RFC). In addition, a few minor
197 clarifications and editorial improvements were made.
199 The remainder of this document is organized as follows. Section 2
200 describes general extension mechanisms for the client hello and
201 server hello handshake messages. Section 3 describes specific
202 extensions to TLS 1.0. Section 4 describes new error alerts for use
203 with the TLS extensions. The final sections of the document address
204 IPR, security considerations, registration of the
205 application/pkix-pkipath MIME type, acknowledgements, and references.
207 2. General Extension Mechanisms
209 This section presents general extension mechanisms for the TLS
210 handshake client hello and server hello messages.
212 These general extension mechanisms are necessary in order to enable
213 clients and servers to negotiate whether to use specific extensions,
214 and how to use specific extensions. The extension formats described
215 are based on [MAILING LIST].
217 Section 2.1 specifies the extended client hello message format,
218 Section 2.2 specifies the extended server hello message format, and
219 Section 2.3 describes the actual extension format used with the
220 extended client and server hellos.
222 Blake-Wilson, et. al. Standards Track [Page 4]
224 Internet-Draft TLS Extensions May 2005
226 2.1. Extended Client Hello
228 Clients MAY request extended functionality from servers by sending
229 the extended client hello message format in place of the client hello
230 message format. The extended client hello message format is:
233 ProtocolVersion client_version;
235 SessionID session_id;
236 CipherSuite cipher_suites<2..2^16-1>;
237 CompressionMethod compression_methods<1..2^8-1>;
238 Extension client_hello_extension_list<0..2^16-1>;
241 Here the new "client_hello_extension_list" field contains a list of
242 extensions. The actual "Extension" format is defined in Section 2.3.
244 In the event that a client requests additional functionality using
245 the extended client hello, and this functionality is not supplied by
246 the server, the client MAY abort the handshake.
248 Note that [TLS], Section 7.4.1.2, allows additional information to be
249 added to the client hello message. Thus the use of the extended
250 client hello defined above should not "break" existing TLS 1.0
253 A server that supports the extensions mechanism MUST accept only
254 client hello messages in either the original or extended ClientHello
255 format, and (as for all other messages) MUST check that the amount of
256 data in the message precisely matches one of these formats; if not
257 then it MUST send a fatal "decode_error" alert. This overrides the
258 "Forward compatibility note" in [TLS].
260 2.2. Extended Server Hello
262 The extended server hello message format MAY be sent in place of the
263 server hello message when the client has requested extended
264 functionality via the extended client hello message specified in
265 Section 2.1. The extended server hello message format is:
277 Blake-Wilson, et. al. Standards Track [Page 5]
279 Internet-Draft TLS Extensions May 2005
282 ProtocolVersion server_version;
284 SessionID session_id;
285 CipherSuite cipher_suite;
286 CompressionMethod compression_method;
287 Extension server_hello_extension_list<0..2^16-1>;
290 Here the new "server_hello_extension_list" field contains a list of
291 extensions. The actual "Extension" format is defined in Section 2.3.
293 Note that the extended server hello message is only sent in response
294 to an extended client hello message. This prevents the possibility
295 that the extended server hello message could "break" existing TLS 1.0
298 2.3. Hello Extensions
300 The extension format for extended client hellos and extended server
304 ExtensionType extension_type;
305 opaque extension_data<0..2^16-1>;
310 - "extension_type" identifies the particular extension type.
312 - "extension_data" contains information specific to the particular
315 The extension types defined in this document are:
318 server_name(0), max_fragment_length(1),
319 client_certificate_url(2), trusted_ca_keys(3),
320 truncated_hmac(4), status_request(5), (65535)
323 The list of defined extension types is maintained by the IANA. The
324 current list can be found at XXX (suggest
325 http://www.iana.org/assignments/tls-extensions). See sections 5 and
326 8 for more information on how new values are added.
328 Note that for all extension types (including those defined in
329 future), the extension type MUST NOT appear in the extended server
330 hello unless the same extension type appeared in the corresponding
331 client hello. Thus clients MUST abort the handshake if they receive
332 an extension type in the extended server hello that they did not
333 request in the associated (extended) client hello.
335 Blake-Wilson, et. al. Standards Track [Page 6]
337 Internet-Draft TLS Extensions May 2005
339 Nonetheless "server initiated" extensions may be provided in the
340 future within this framework - such an extension, say of type x,
341 would require the client to first send an extension of type x in the
342 (extended) client hello with empty extension_data to indicate that it
343 supports the extension type.
345 Also note that when multiple extensions of different types are
346 present in the extended client hello or the extended server hello,
347 the extensions may appear in any order. There MUST NOT be more than
348 one extension of the same type.
350 Finally note that an extended client hello may be sent both when
351 starting a new session and when requesting session resumption.
352 Indeed a client that requests resumption of a session does not in
353 general know whether the server will accept this request, and
354 therefore it SHOULD send an extended client hello if it would
355 normally do so for a new session. In general the specification of
356 each extension type must include a discussion of the effect of the
357 extension both during new sessions and during resumed sessions.
359 2.4. Extensions to the handshake protocol
361 This document suggests the use of two new handshake messages,
362 "CertificateURL" and "CertificateStatus". These messages are
363 described in Section 3.3 and Section 3.6, respectively. The new
364 handshake message structure therefore becomes:
367 hello_request(0), client_hello(1), server_hello(2),
368 certificate(11), server_key_exchange (12),
369 certificate_request(13), server_hello_done(14),
370 certificate_verify(15), client_key_exchange(16),
371 finished(20), certificate_url(21), certificate_status(22),
386 Blake-Wilson, et. al. Standards Track [Page 7]
388 Internet-Draft TLS Extensions May 2005
391 HandshakeType msg_type; /* handshake type */
392 uint24 length; /* bytes in message */
393 select (HandshakeType) {
394 case hello_request: HelloRequest;
395 case client_hello: ClientHello;
396 case server_hello: ServerHello;
397 case certificate: Certificate;
398 case server_key_exchange: ServerKeyExchange;
399 case certificate_request: CertificateRequest;
400 case server_hello_done: ServerHelloDone;
401 case certificate_verify: CertificateVerify;
402 case client_key_exchange: ClientKeyExchange;
403 case finished: Finished;
404 case certificate_url: CertificateURL;
405 case certificate_status: CertificateStatus;
409 3. Specific Extensions
411 This section describes the specific TLS extensions specified in this
414 Note that any messages associated with these extensions that are sent
415 during the TLS handshake MUST be included in the hash calculations
416 involved in "Finished" messages.
418 Note also that all the extensions defined in this Section are
419 relevant only when a session is initiated. When a client includes
420 one or more of the defined extension types in an extended client
421 hello while requesting session resumption:
423 - If the resumption request is denied, the use of the extensions
424 is negotiated as normal.
426 - If, on the other hand, the older session is resumed, then the
427 server MUST ignore the extensions and send a server hello containing
428 none of the extension types; in this case the functionality of these
429 extensions negotiated during the original session initiation is
430 applied to the resumed session.
432 Section 3.1 describes the extension of TLS to allow a client to
433 indicate which server it is contacting. Section 3.2 describes the
434 extension to provide maximum fragment length negotiation. Section
435 3.3 describes the extension to allow client certificate URLs.
436 Section 3.4 describes the extension to allow a client to indicate
437 which CA root keys it possesses. Section 3.5 describes the extension
438 to allow the use of truncated HMAC. Section 3.6 describes the
439 extension to support integration of certificate status information
440 messages into TLS handshakes.
442 Blake-Wilson, et. al. Standards Track [Page 8]
444 Internet-Draft TLS Extensions May 2005
446 3.1. Server Name Indication
448 [TLS] does not provide a mechanism for a client to tell a server the
449 name of the server it is contacting. It may be desirable for clients
450 to provide this information to facilitate secure connections to
451 servers that host multiple 'virtual' servers at a single underlying
454 In order to provide the server name, clients MAY include an extension
455 of type "server_name" in the (extended) client hello. The
456 "extension_data" field of this extension SHALL contain
457 "ServerNameList" where:
462 case host_name: HostName;
470 opaque HostName<1..2^16-1>;
473 ServerName server_name_list<1..2^16-1>
476 Currently the only server names supported are DNS hostnames, however
477 this does not imply any dependency of TLS on DNS, and other name
478 types may be added in the future (by an RFC that Updates this
479 document). TLS MAY treat provided server names as opaque data and
480 pass the names and types to the application.
482 "HostName" contains the fully qualified DNS hostname of the server,
483 as understood by the client. The hostname is represented as a byte
484 string using UTF-8 encoding [UTF8], without a trailing dot.
486 If the hostname labels contain only US-ASCII characters, then the
487 client MUST ensure that labels are separated only by the byte 0x2E,
488 representing the dot character U+002E (requirement 1 in section 3.1
489 of [IDNA] notwithstanding). If the server needs to match the HostName
490 against names that contain non-US-ASCII characters, it MUST perform
491 the conversion operation described in section 4 of [IDNA], treating
492 the HostName as a "query string" (i.e. the AllowUnassigned flag MUST
493 be set). Note that IDNA allows labels to be separated by any of the
494 Unicode characters U+002E, U+3002, U+FF0E, and U+FF61, therefore
495 servers MUST accept any of these characters as a label separator. If
497 Blake-Wilson, et. al. Standards Track [Page 9]
499 Internet-Draft TLS Extensions May 2005
501 the server only needs to match the HostName against names containing
502 exclusively ASCII characters, it MUST compare ASCII names case-
505 Literal IPv4 and IPv6 addresses are not permitted in "HostName".
507 It is RECOMMENDED that clients include an extension of type
508 "server_name" in the client hello whenever they locate a server by a
511 A server that receives a client hello containing the "server_name"
512 extension, MAY use the information contained in the extension to
513 guide its selection of an appropriate certificate to return to the
514 client, and/or other aspects of security policy. In this event, the
515 server SHALL include an extension of type "server_name" in the
516 (extended) server hello. The "extension_data" field of this
517 extension SHALL be empty.
519 If the server understood the client hello extension but does not
520 recognize the server name, it SHOULD send an "unrecognized_name"
521 alert (which MAY be fatal).
523 If an application negotiates a server name using an application
524 protocol, then upgrades to TLS, and a server_name extension is sent,
525 then the extension SHOULD contain the same name that was negotiated
526 in the application protocol. If the server_name is established in
527 the TLS session handshake, the client SHOULD NOT attempt to request a
528 different server name at the application layer.
530 3.2. Maximum Fragment Length Negotiation
532 [TLS] specifies a fixed maximum plaintext fragment length of 2^14
533 bytes. It may be desirable for constrained clients to negotiate a
534 smaller maximum fragment length due to memory limitations or
535 bandwidth limitations.
537 In order to negotiate smaller maximum fragment lengths, clients MAY
538 include an extension of type "max_fragment_length" in the (extended)
539 client hello. The "extension_data" field of this extension SHALL
543 2^9(1), 2^10(2), 2^11(3), 2^12(4), (255)
546 whose value is the desired maximum fragment length. The allowed
547 values for this field are: 2^9, 2^10, 2^11, and 2^12.
550 Blake-Wilson, et. al. Standards Track [Page 10]
552 Internet-Draft TLS Extensions May 2005
554 Servers that receive an extended client hello containing a
555 "max_fragment_length" extension, MAY accept the requested maximum
556 fragment length by including an extension of type
557 "max_fragment_length" in the (extended) server hello. The
558 "extension_data" field of this extension SHALL contain
559 "MaxFragmentLength" whose value is the same as the requested maximum
562 If a server receives a maximum fragment length negotiation request
563 for a value other than the allowed values, it MUST abort the
564 handshake with an "illegal_parameter" alert. Similarly, if a client
565 receives a maximum fragment length negotiation response that differs
566 from the length it requested, it MUST also abort the handshake with
567 an "illegal_parameter" alert.
569 Once a maximum fragment length other than 2^14 has been successfully
570 negotiated, the client and server MUST immediately begin fragmenting
571 messages (including handshake messages), to ensure that no fragment
572 larger than the negotiated length is sent. Note that TLS already
573 requires clients and servers to support fragmentation of handshake
576 The negotiated length applies for the duration of the session
577 including session resumptions.
579 The negotiated length limits the input that the record layer may
580 process without fragmentation (that is, the maximum value of
581 TLSPlaintext.length; see [TLS] section 6.2.1). Note that the output
582 of the record layer may be larger. For example, if the negotiated
583 length is 2^9=512, then for currently defined cipher suites (those
584 defined in [TLS], [KERB], and [AESSUITES]), and when null compression
585 is used, the record layer output can be at most 793 bytes: 5 bytes of
586 headers, 512 bytes of application data, 256 bytes of padding, and 20
587 bytes of MAC. That means that in this event a TLS record layer peer
588 receiving a TLS record layer message larger than 793 bytes may
589 discard the message and send a "record_overflow" alert, without
590 decrypting the message.
592 3.3. Client Certificate URLs
594 [TLS] specifies that when client authentication is performed, client
595 certificates are sent by clients to servers during the TLS handshake.
596 It may be desirable for constrained clients to send certificate URLs
597 in place of certificates, so that they do not need to store their
598 certificates and can therefore save memory.
605 Blake-Wilson, et. al. Standards Track [Page 11]
607 Internet-Draft TLS Extensions May 2005
609 In order to negotiate to send certificate URLs to a server, clients
610 MAY include an extension of type "client_certificate_url" in the
611 (extended) client hello. The "extension_data" field of this
612 extension SHALL be empty.
614 (Note that it is necessary to negotiate use of client certificate
615 URLs in order to avoid "breaking" existing TLS 1.0 servers.)
617 Servers that receive an extended client hello containing a
618 "client_certificate_url" extension, MAY indicate that they are
619 willing to accept certificate URLs by including an extension of type
620 "client_certificate_url" in the (extended) server hello. The
621 "extension_data" field of this extension SHALL be empty.
623 After negotiation of the use of client certificate URLs has been
624 successfully completed (by exchanging hellos including
625 "client_certificate_url" extensions), clients MAY send a
626 "CertificateURL" message in place of a "Certificate" message:
629 individual_certs(0), pkipath(1), (255)
638 URLAndOptionalHash url_and_hash_list<1..2^16-1>;
642 opaque url<1..2^16-1>;
643 Boolean hash_present;
644 select (hash_present) {
645 case false: struct {};
648 } URLAndOptionalHash;
652 Here "url_and_hash_list" contains a sequence of URLs and optional
660 Blake-Wilson, et. al. Standards Track [Page 12]
662 Internet-Draft TLS Extensions May 2005
664 When X.509 certificates are used, there are two possibilities:
666 - if CertificateURL.type is "individual_certs", each URL refers to a
667 single DER-encoded X.509v3 certificate, with the URL for the
668 client's certificate first, or
670 - if CertificateURL.type is "pkipath", the list contains a single
671 URL referring to a DER-encoded certificate chain, using the type
672 PkiPath described in Section 8.
674 When any other certificate format is used, the specification that
675 describes use of that format in TLS should define the encoding format
676 of certificates or certificate chains, and any constraint on their
679 The hash corresponding to each URL at the client's discretion is
680 either not present or is the SHA-1 hash of the certificate or
681 certificate chain (in the case of X.509 certificates, the DER-encoded
682 certificate or the DER-encoded PkiPath).
684 Note that when a list of URLs for X.509 certificates is used, the
685 ordering of URLs is the same as that used in the TLS Certificate
686 message (see [TLS] Section 7.4.2), but opposite to the order in which
687 certificates are encoded in PkiPath. In either case, the self-signed
688 root certificate MAY be omitted from the chain, under the assumption
689 that the server must already possess it in order to validate it.
691 Servers receiving "CertificateURL" SHALL attempt to retrieve the
692 client's certificate chain from the URLs, and then process the
693 certificate chain as usual. A cached copy of the content of any URL
694 in the chain MAY be used, provided that a SHA-1 hash is present for
695 that URL and it matches the hash of the cached copy.
697 Servers that support this extension MUST support the http: URL scheme
698 for certificate URLs, and MAY support other schemes.
700 If the protocol used to retrieve certificates or certificate chains
701 returns a MIME formatted response (as HTTP does), then the following
702 MIME Content-Types SHALL be used: when a single X.509v3 certificate
703 is returned, the Content-Type is "application/pkix-cert" [PKIOP], and
704 when a chain of X.509v3 certificates is returned, the Content-Type is
705 "application/pkix-pkipath" (see Section 8).
715 Blake-Wilson, et. al. Standards Track [Page 13]
717 Internet-Draft TLS Extensions May 2005
719 If a SHA-1 hash is present for an URL, then the server MUST check
720 that the SHA-1 hash of the contents of the object retrieved from that
721 URL (after decoding any MIME Content-Transfer-Encoding) matches the
722 given hash. If any retrieved object does not have the correct SHA-1
723 hash, the server MUST abort the handshake with a
724 "bad_certificate_hash_value" alert.
726 Note that clients may choose to send either "Certificate" or
727 "CertificateURL" after successfully negotiating the option to send
728 certificate URLs. The option to send a certificate is included to
729 provide flexibility to clients possessing multiple certificates.
731 If a server encounters an unreasonable delay in obtaining
732 certificates in a given CertificateURL, it SHOULD time out and signal
733 a "certificate_unobtainable" error alert.
735 3.4. Trusted CA Indication
737 Constrained clients that, due to memory limitations, possess only a
738 small number of CA root keys, may wish to indicate to servers which
739 root keys they possess, in order to avoid repeated handshake
742 In order to indicate which CA root keys they possess, clients MAY
743 include an extension of type "trusted_ca_keys" in the (extended)
744 client hello. The "extension_data" field of this extension SHALL
745 contain "TrustedAuthorities" where:
748 TrustedAuthority trusted_authorities_list<0..2^16-1>;
749 } TrustedAuthorities;
752 IdentifierType identifier_type;
753 select (identifier_type) {
754 case pre_agreed: struct {};
755 case key_sha1_hash: SHA1Hash;
756 case x509_name: DistinguishedName;
757 case cert_sha1_hash: SHA1Hash;
762 pre_agreed(0), key_sha1_hash(1), x509_name(2),
763 cert_sha1_hash(3), (255)
766 opaque DistinguishedName<1..2^16-1>;
770 Blake-Wilson, et. al. Standards Track [Page 14]
772 Internet-Draft TLS Extensions May 2005
774 Here "TrustedAuthorities" provides a list of CA root key identifiers
775 that the client possesses. Each CA root key is identified via
778 - "pre_agreed" - no CA root key identity supplied.
780 - "key_sha1_hash" - contains the SHA-1 hash of the CA root key. For
781 DSA and ECDSA keys, this is the hash of the "subjectPublicKey"
782 value. For RSA keys, the hash is of the big-endian byte string
783 representation of the modulus without any initial 0-valued bytes.
784 (This copies the key hash formats deployed in other environments.)
786 - "x509_name" - contains the DER-encoded X.509 DistinguishedName of
789 - "cert_sha1_hash" - contains the SHA-1 hash of a DER-encoded
790 Certificate containing the CA root key.
792 Note that clients may include none, some, or all of the CA root keys
793 they possess in this extension.
795 Note also that it is possible that a key hash or a Distinguished Name
796 alone may not uniquely identify a certificate issuer - for example if
797 a particular CA has multiple key pairs - however here we assume this
798 is the case following the use of Distinguished Names to identify
799 certificate issuers in TLS.
801 The option to include no CA root keys is included to allow the client
802 to indicate possession of some pre-defined set of CA root keys.
804 Servers that receive a client hello containing the "trusted_ca_keys"
805 extension, MAY use the information contained in the extension to
806 guide their selection of an appropriate certificate chain to return
807 to the client. In this event, the server SHALL include an extension
808 of type "trusted_ca_keys" in the (extended) server hello. The
809 "extension_data" field of this extension SHALL be empty.
813 Currently defined TLS cipher suites use the MAC construction HMAC
814 with either MD5 or SHA-1 [HMAC] to authenticate record layer
815 communications. In TLS the entire output of the hash function is
816 used as the MAC tag. However it may be desirable in constrained
817 environments to save bandwidth by truncating the output of the hash
818 function to 80 bits when forming MAC tags.
825 Blake-Wilson, et. al. Standards Track [Page 15]
827 Internet-Draft TLS Extensions May 2005
829 In order to negotiate the use of 80-bit truncated HMAC, clients MAY
830 include an extension of type "truncated_hmac" in the extended client
831 hello. The "extension_data" field of this extension SHALL be empty.
833 Servers that receive an extended hello containing a "truncated_hmac"
834 extension, MAY agree to use a truncated HMAC by including an
835 extension of type "truncated_hmac", with empty "extension_data", in
836 the extended server hello.
838 Note that if new cipher suites are added that do not use HMAC, and
839 the session negotiates one of these cipher suites, this extension
840 will have no effect. It is strongly recommended that any new cipher
841 suites using other MACs consider the MAC size as an integral part of
842 the cipher suite definition, taking into account both security and
843 bandwidth considerations.
845 If HMAC truncation has been successfully negotiated during a TLS
846 handshake, and the negotiated cipher suite uses HMAC, both the client
847 and the server pass this fact to the TLS record layer along with the
848 other negotiated security parameters. Subsequently during the
849 session, clients and servers MUST use truncated HMACs, calculated as
850 specified in [HMAC]. That is, CipherSpec.hash_size is 10 bytes, and
851 only the first 10 bytes of the HMAC output are transmitted and
852 checked. Note that this extension does not affect the calculation of
853 the PRF as part of handshaking or key derivation.
855 The negotiated HMAC truncation size applies for the duration of the
856 session including session resumptions.
858 3.6. Certificate Status Request
860 Constrained clients may wish to use a certificate-status protocol
861 such as OCSP [OCSP] to check the validity of server certificates, in
862 order to avoid transmission of CRLs and therefore save bandwidth on
863 constrained networks. This extension allows for such information to
864 be sent in the TLS handshake, saving roundtrips and resources.
866 In order to indicate their desire to receive certificate status
867 information, clients MAY include an extension of type
868 "status_request" in the (extended) client hello. The
869 "extension_data" field of this extension SHALL contain
870 "CertificateStatusRequest" where:
880 Blake-Wilson, et. al. Standards Track [Page 16]
882 Internet-Draft TLS Extensions May 2005
885 CertificateStatusType status_type;
886 select (status_type) {
887 case ocsp: OCSPStatusRequest;
889 } CertificateStatusRequest;
891 enum { ocsp(1), (255) } CertificateStatusType;
894 ResponderID responder_id_list<0..2^16-1>;
895 Extensions request_extensions;
898 opaque ResponderID<1..2^16-1>;
899 opaque Extensions<0..2^16-1>;
901 In the OCSPStatusRequest, the "ResponderIDs" provides a list of OCSP
902 responders that the client trusts. A zero-length "responder_id_list"
903 sequence has the special meaning that the responders are implicitly
904 known to the server - e.g., by prior arrangement. "Extensions" is a
905 DER encoding of OCSP request extensions.
907 Both "ResponderID" and "Extensions" are DER-encoded ASN.1 types as
908 defined in [OCSP]. "Extensions" is imported from [PKIX]. A zero-
909 length "request_extensions" value means that there are no extensions
910 (as opposed to a zero-length ASN.1 SEQUENCE, which is not valid for
911 the "Extensions" type).
913 In the case of the "id-pkix-ocsp-nonce" OCSP extension, [OCSP] is
914 unclear about its encoding; for clarification, the nonce MUST be a
915 DER-encoded OCTET STRING, which is encapsulated as another OCTET
916 STRING (note that implementations based on an existing OCSP client
917 will need to be checked for conformance to this requirement).
919 Servers that receive a client hello containing the "status_request"
920 extension, MAY return a suitable certificate status response to the
921 client along with their certificate. If OCSP is requested, they
922 SHOULD use the information contained in the extension when selecting
923 an OCSP responder, and SHOULD include request_extensions in the OCSP
926 Servers return a certificate response along with their certificate by
927 sending a "CertificateStatus" message immediately after the
928 "Certificate" message (and before any "ServerKeyExchange" or
929 "CertificateRequest" messages). If a server returns a
935 Blake-Wilson, et. al. Standards Track [Page 17]
937 Internet-Draft TLS Extensions May 2005
939 "CertificateStatus" message, then the server MUST have included an
940 extension of type "status_request" with empty "extension_data" in the
941 extended server hello.
944 CertificateStatusType status_type;
945 select (status_type) {
946 case ocsp: OCSPResponse;
950 opaque OCSPResponse<1..2^24-1>;
952 An "ocsp_response" contains a complete, DER-encoded OCSP response
953 (using the ASN.1 type OCSPResponse defined in [OCSP]). Note that
954 only one OCSP response may be sent.
956 The "CertificateStatus" message is conveyed using the handshake
957 message type "certificate_status".
959 Note that a server MAY also choose not to send a "CertificateStatus"
960 message, even if it receives a "status_request" extension in the
961 client hello message.
963 Note in addition that servers MUST NOT send the "CertificateStatus"
964 message unless it received a "status_request" extension in the client
967 Clients requesting an OCSP response, and receiving an OCSP response
968 in a "CertificateStatus" message MUST check the OCSP response and
969 abort the handshake if the response is not satisfactory.
973 This section defines new error alerts for use with the TLS extensions
974 defined in this document.
976 The following new error alerts are defined. To avoid "breaking"
977 existing clients and servers, these alerts MUST NOT be sent unless
978 the sending party has received an extended hello message from the
979 party they are communicating with.
981 - "unsupported_extension" - this alert is sent by clients that
982 receive an extended server hello containing an extension that they
983 did not put in the corresponding client hello (see Section 2.3).
984 This message is always fatal.
990 Blake-Wilson, et. al. Standards Track [Page 18]
992 Internet-Draft TLS Extensions May 2005
994 - "unrecognized_name" - this alert is sent by servers that receive a
995 server_name extension request, but do not recognize the server
996 name. This message MAY be fatal.
998 - "certificate_unobtainable" - this alert is sent by servers who are
999 unable to retrieve a certificate chain from the URL supplied by
1000 the client (see Section 3.3). This message MAY be fatal - for
1001 example if client authentication is required by the server for the
1002 handshake to continue and the server is unable to retrieve the
1003 certificate chain, it may send a fatal alert.
1005 - "bad_certificate_status_response" - this alert is sent by clients
1006 that receive an invalid certificate status response (see Section
1007 3.6). This message is always fatal.
1009 - "bad_certificate_hash_value" - this alert is sent by servers when
1010 a certificate hash does not match a client provided
1011 certificate_hash. This message is always fatal.
1013 These error alerts are conveyed using the following syntax:
1017 unexpected_message(10),
1019 decryption_failed(21),
1020 record_overflow(22),
1021 decompression_failure(30),
1022 handshake_failure(40),
1023 /* 41 is not defined, for historical reasons */
1024 bad_certificate(42),
1025 unsupported_certificate(43),
1026 certificate_revoked(44),
1027 certificate_expired(45),
1028 certificate_unknown(46),
1029 illegal_parameter(47),
1034 export_restriction(60),
1035 protocol_version(70),
1036 insufficient_security(71),
1039 no_renegotiation(100),
1040 unsupported_extension(110), /* new */
1041 certificate_unobtainable(111), /* new */
1045 Blake-Wilson, et. al. Standards Track [Page 19]
1047 Internet-Draft TLS Extensions May 2005
1049 unrecognized_name(112), /* new */
1050 bad_certificate_status_response(113), /* new */
1051 bad_certificate_hash_value(114), /* new */
1055 5. Procedure for Defining New Extensions
1057 The list of extension types, as defined in Section 2.3, is
1058 maintained by the Internet Assigned Numbers Authority (IANA). Thus
1059 an application needs to be made to the IANA in order to obtain a new
1060 extension type value. Since there are subtle (and not so subtle)
1061 interactions that may occur in this protocol between new features and
1062 existing features which may result in a significant reduction in
1063 overall security, new values SHALL be defined only through the IETF
1064 Consensus process specified in [IANA].
1066 (This means that new assignments can be made only via RFCs approved
1069 The following considerations should be taken into account when
1070 designing new extensions:
1072 - All of the extensions defined in this document follow the
1073 convention that for each extension that a client requests and that
1074 the server understands, the server replies with an extension of
1077 - Some cases where a server does not agree to an extension are error
1078 conditions, and some simply a refusal to support a particular
1079 feature. In general error alerts should be used for the former,
1080 and a field in the server extension response for the latter.
1082 - Extensions should as far as possible be designed to prevent any
1083 attack that forces use (or non-use) of a particular feature by
1084 manipulation of handshake messages. This principle should be
1085 followed regardless of whether the feature is believed to cause a
1088 Often the fact that the extension fields are included in the
1089 inputs to the Finished message hashes will be sufficient, but
1090 extreme care is needed when the extension changes the meaning of
1091 messages sent in the handshake phase. Designers and implementors
1092 should be aware of the fact that until the handshake has been
1093 authenticated, active attackers can modify messages and insert,
1094 remove, or replace extensions.
1098 Blake-Wilson, et. al. Standards Track [Page 20]
1100 Internet-Draft TLS Extensions May 2005
1102 - It would be technically possible to use extensions to change major
1103 aspects of the design of TLS; for example the design of cipher
1104 suite negotiation. This is not recommended; it would be more
1105 appropriate to define a new version of TLS - particularly since
1106 the TLS handshake algorithms have specific protection against
1107 version rollback attacks based on the version number, and the
1108 possibility of version rollback should be a significant
1109 consideration in any major design change.
1111 6. Security Considerations
1113 Security considerations for the extension mechanism in general, and
1114 the design of new extensions, are described in the previous section.
1115 A security analysis of each of the extensions defined in this
1116 document is given below.
1118 In general, implementers should continue to monitor the state of the
1119 art, and address any weaknesses identified.
1121 Additional security considerations are described in the TLS 1.0 RFC
1124 6.1. Security of server_name
1126 If a single server hosts several domains, then clearly it is
1127 necessary for the owners of each domain to ensure that this satisfies
1128 their security needs. Apart from this, server_name does not appear
1129 to introduce significant security issues.
1131 Implementations MUST ensure that a buffer overflow does not occur
1132 whatever the values of the length fields in server_name.
1134 Although this document specifies an encoding for internationalized
1135 hostnames in the server_name extension, it does not address any
1136 security issues associated with the use of internationalized
1137 hostnames in TLS - in particular, the consequences of "spoofed" names
1138 that are indistinguishable from another name when displayed or
1139 printed. It is recommended that server certificates not be issued
1140 for internationalized hostnames unless procedures are in place to
1141 mitigate the risk of spoofed hostnames.
1143 6.2. Security of max_fragment_length
1145 The maximum fragment length takes effect immediately, including for
1146 handshake messages. However, that does not introduce any security
1147 complications that are not already present in TLS, since [TLS]
1148 requires implementations to be able to handle fragmented handshake
1153 Blake-Wilson, et. al. Standards Track [Page 21]
1155 Internet-Draft TLS Extensions May 2005
1157 Note that as described in section 3.2, once a non-null cipher suite
1158 has been activated, the effective maximum fragment length depends on
1159 the cipher suite and compression method, as well as on the negotiated
1160 max_fragment_length. This must be taken into account when sizing
1161 buffers, and checking for buffer overflow.
1163 6.3. Security of client_certificate_url
1165 There are two major issues with this extension.
1167 The first major issue is whether or not clients should include
1168 certificate hashes when they send certificate URLs.
1170 When client authentication is used *without* the
1171 client_certificate_url extension, the client certificate chain is
1172 covered by the Finished message hashes. The purpose of including
1173 hashes and checking them against the retrieved certificate chain, is
1174 to ensure that the same property holds when this extension is used -
1175 i.e., that all of the information in the certificate chain retrieved
1176 by the server is as the client intended.
1178 On the other hand, omitting certificate hashes enables functionality
1179 that is desirable in some circumstances - for example clients can be
1180 issued daily certificates that are stored at a fixed URL and need not
1181 be provided to the client. Clients that choose to omit certificate
1182 hashes should be aware of the possibility of an attack in which the
1183 attacker obtains a valid certificate on the client's key that is
1184 different from the certificate the client intended to provide.
1185 Although TLS uses both MD5 and SHA-1 hashes in several other places,
1186 this was not believed to be necessary here. The property required of
1187 SHA-1 is second pre-image resistance.
1189 The second major issue is that support for client_certificate_url
1190 involves the server acting as a client in another URL protocol. The
1191 server therefore becomes subject to many of the same security
1192 concerns that clients of the URL scheme are subject to, with the
1193 added concern that the client can attempt to prompt the server to
1194 connect to some, possibly weird-looking URL.
1196 In general this issue means that an attacker might use the server to
1197 indirectly attack another host that is vulnerable to some security
1198 flaw. It also introduces the possibility of denial of service
1199 attacks in which an attacker makes many connections to the server,
1200 each of which results in the server attempting a connection to the
1201 target of the attack.
1208 Blake-Wilson, et. al. Standards Track [Page 22]
1210 Internet-Draft TLS Extensions May 2005
1212 Note that the server may be behind a firewall or otherwise able to
1213 access hosts that would not be directly accessible from the public
1214 Internet; this could exacerbate the potential security and denial of
1215 service problems described above, as well as allowing the existence
1216 of internal hosts to be confirmed when they would otherwise be
1219 The detailed security concerns involved will depend on the URL
1220 schemes supported by the server. In the case of HTTP, the concerns
1221 are similar to those that apply to a publicly accessible HTTP proxy
1222 server. In the case of HTTPS, the possibility for loops and
1223 deadlocks to be created exists and should be addressed. In the case
1224 of FTP, attacks similar to FTP bounce attacks arise.
1226 As a result of this issue, it is RECOMMENDED that the
1227 client_certificate_url extension should have to be specifically
1228 enabled by a server administrator, rather than being enabled by
1229 default. It is also RECOMMENDED that URI protocols be enabled by the
1230 administrator individually, and only a minimal set of protocols be
1231 enabled, with unusual protocols offering limited security or whose
1232 security is not well-understood being avoided.
1234 As discussed in [URI], URLs that specify ports other than the default
1235 may cause problems, as may very long URLs (which are more likely to
1236 be useful in exploiting buffer overflow bugs).
1238 Also note that HTTP caching proxies are common on the Internet, and
1239 some proxies do not check for the latest version of an object
1240 correctly. If a request using HTTP (or another caching protocol)
1241 goes through a misconfigured or otherwise broken proxy, the proxy may
1242 return an out-of-date response.
1244 6.4. Security of trusted_ca_keys
1246 It is possible that which CA root keys a client possesses could be
1247 regarded as confidential information. As a result, the CA root key
1248 indication extension should be used with care.
1250 The use of the SHA-1 certificate hash alternative ensures that each
1251 certificate is specified unambiguously. As for the previous
1252 extension, it was not believed necessary to use both MD5 and SHA-1
1255 6.5. Security of truncated_hmac
1257 It is possible that truncated MACs are weaker than "un-truncated"
1258 MACs. However, no significant weaknesses are currently known or
1259 expected to exist for HMAC with MD5 or SHA-1, truncated to 80 bits.
1263 Blake-Wilson, et. al. Standards Track [Page 23]
1265 Internet-Draft TLS Extensions May 2005
1267 Note that the output length of a MAC need not be as long as the
1268 length of a symmetric cipher key, since forging of MAC values cannot
1269 be done off-line: in TLS, a single failed MAC guess will cause the
1270 immediate termination of the TLS session.
1272 Since the MAC algorithm only takes effect after all handshake
1273 messages that affect extension parameters have been authenticated by
1274 the hashes in the Finished messages, it is not possible for an active
1275 attacker to force negotiation of the truncated HMAC extension where it
1276 would not otherwise be used (to the extent that the handshake
1277 authentication is secure). Therefore, in the event that any security
1278 problem were found with truncated HMAC in future, if either the client
1279 or the server for a given session were updated to take into account
1280 the problem, they would be able to veto use of this extension.
1282 6.6. Security of status_request
1284 If a client requests an OCSP response, it must take into account that
1285 an attacker's server using a compromised key could (and probably
1286 would) pretend not to support the extension. A client that requires
1287 OCSP validation of certificates SHOULD either contact the OCSP server
1288 directly in this case, or abort the handshake.
1290 Use of the OCSP nonce request extension (id-pkix-ocsp-nonce) may
1291 improve security against attacks that attempt to replay OCSP
1292 responses; see section 4.4.1 of [OCSP] for further details.
1294 7. Internationalization Considerations
1296 None of the extensions defined here directly use strings subject to
1297 localization. Domain Name System (DNS) hostnames are encoded using
1298 UTF-8. If future extensions use text strings, then
1299 internationalization should be considered in their design.
1301 8. IANA Considerations
1303 Sections 2.3 and 5 describes a registry of ExtensionType values to be
1304 maintained by the IANA. ExtensionType values are to be assigned via
1305 IETF Consensus as defined in RFC 2434 [IANA].
1307 The MIME type "application/pkix-pkipath" has been registered by the
1308 IANA with the following template:
1310 To: ietf-types@iana.org Subject: Registration of MIME media type
1311 application/pkix-pkipath
1313 MIME media type name: application
1315 MIME subtype name: pkix-pkipath
1317 Required parameters: none
1319 Blake-Wilson, et. al. Standards Track [Page 24]
1321 Internet-Draft TLS Extensions May 2005
1323 Optional parameters: version (default value is "1")
1325 Encoding considerations:
1326 This MIME type is a DER encoding of the ASN.1 type PkiPath,
1328 PkiPath ::= SEQUENCE OF Certificate
1329 PkiPath is used to represent a certification path. Within the
1330 sequence, the order of certificates is such that the subject of
1331 the first certificate is the issuer of the second certificate,
1334 This is identical to the definition published in [X509-4th-TC1];
1335 note that it is different from that in [X509-4th].
1337 All Certificates MUST conform to [PKIX]. (This should be
1338 interpreted as a requirement to encode only PKIX-conformant
1339 certificates using this type. It does not necessarily require
1340 that all certificates that are not strictly PKIX-conformant must
1341 be rejected by relying parties, although the security consequences
1342 of accepting any such certificates should be considered
1345 DER (as opposed to BER) encoding MUST be used. If this type is
1346 sent over a 7-bit transport, base64 encoding SHOULD be used.
1348 Security considerations:
1349 The security considerations of [X509-4th] and [PKIX] (or any
1350 updates to them) apply, as well as those of any protocol that uses
1351 this type (e.g., TLS).
1353 Note that this type only specifies a certificate chain that can be
1354 assessed for validity according to the relying party's existing
1355 configuration of trusted CAs; it is not intended to be used to
1356 specify any change to that configuration.
1358 Interoperability considerations:
1359 No specific interoperability problems are known with this type,
1360 but for recommendations relating to X.509 certificates in general,
1363 Published specification: this memo, and [PKIX].
1365 Applications which use this media type: TLS. It may also be used by
1366 other protocols, or for general interchange of PKIX certificate
1374 Blake-Wilson, et. al. Standards Track [Page 25]
1376 Internet-Draft TLS Extensions May 2005
1378 Additional information:
1379 Magic number(s): DER-encoded ASN.1 can be easily recognized.
1380 Further parsing is required to distinguish from other ASN.1
1382 File extension(s): .pkipath
1383 Macintosh File Type Code(s): not specified
1385 Person & email address to contact for further information:
1386 Magnus Nystrom <magnus@rsasecurity.com>
1388 Intended usage: COMMON
1390 Author/Change controller:
1391 Magnus Nystrom <magnus@rsasecurity.com>
1393 9. Intellectual Property Rights
1395 The IETF takes no position regarding the validity or scope of any
1396 Intellectual Property Rights or other rights that might be claimed
1397 to pertain to the implementation or use of the technology
1398 described in this document or the extent to which any license
1399 under such rights might or might not be available; nor does it
1400 represent that it has made any independent effort to identify any
1401 such rights. Information on the procedures with respect to rights
1402 in RFC documents can be found in BCP 78 and BCP 79.
1404 Copies of IPR disclosures made to the IETF Secretariat and any
1405 assurances of licenses to be made available, or the result of an
1406 attempt made to obtain a general license or permission for the use
1407 of such proprietary rights by implementers or users of this
1408 specification can be obtained from the IETF on-line IPR repository
1409 at http://www.ietf.org/ipr.
1411 The IETF invites any interested party to bring to its attention
1412 any copyrights, patents or patent applications, or other
1413 proprietary rights that may cover technology that may be required
1414 to implement this standard. Please address the information to the
1415 IETF at ietf-ipr@ietf.org.
1419 The authors wish to thank the TLS Working Group and the WAP Security
1420 Group. This document is based on discussion within these groups.
1428 Blake-Wilson, et. al. Standards Track [Page 26]
1430 Internet-Draft TLS Extensions May 2005
1432 11. Normative References
1434 [HMAC] Krawczyk, H., Bellare, M. and R. Canetti, "HMAC:
1435 Keyed-hashing for message authentication", RFC 2104,
1438 [HTTP] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
1439 Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext
1440 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
1442 [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing
1443 an IANA Considerations Section in RFCs", RFC 2434,
1446 [IDNA] Faltstrom, P., Hoffman, P. and A. Costello,
1447 "Internationalizing Domain Names in Applications
1448 (IDNA)", RFC 3490, March 2003.
1450 [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
1451 Requirement Levels", BCP 14, RFC 2119, March 1997.
1453 [OCSP] Myers, M., Ankney, R., Malpani, A., Galperin, S. and
1454 C. Adams, "Internet X.509 Public Key Infrastructure:
1455 Online Certificate Status Protocol - OCSP", RFC 2560,
1458 [PKIOP] Housley, R. and P. Hoffman, "Internet X.509 Public Key
1459 Infrastructure - Operation Protocols: FTP and HTTP",
1462 [PKIX] Housley, R., Polk, W., Ford, W. and D. Solo, "Internet
1463 Public Key Infrastructure - Certificate and
1464 Certificate Revocation List (CRL) Profile", RFC 3280,
1467 [TLS] Dierks, T. and C. Allen, "The TLS Protocol Version
1468 1.0", RFC 2246, January 1999.
1470 [URI] Berners-Lee, T., Fielding, R. and L. Masinter,
1471 "Uniform Resource Identifiers (URI): Generic Syntax",
1472 RFC 2396, August 1998.
1474 [UTF8] Yergeau, F., "UTF-8, a transformation format of ISO
1475 10646", RFC 3629, November 2003.
1477 [X509-4th] ITU-T Recommendation X.509 (2000) | ISO/IEC 9594-
1478 8:2001, "Information Systems - Open Systems
1479 Interconnection - The Directory: Public key and
1480 attribute certificate frameworks."
1483 Blake-Wilson, et. al. Standards Track [Page 27]
1485 Internet-Draft TLS Extensions May 2005
1487 [X509-4th-TC1] ITU-T Recommendation X.509(2000) Corrigendum 1(2001) |
1488 ISO/IEC 9594-8:2001/Cor.1:2002, Technical Corrigendum
1489 1 to ISO/IEC 9594:8:2001.
1491 12. Informative References
1493 [AESSUITES] Chown, P., "Advanced Encryption Standard (AES)
1494 Ciphersuites for Transport Layer Security (TLS)", RFC
1497 [KERB] Medvinsky, A. and M. Hur, "Addition of Kerberos Cipher
1498 Suites to Transport Layer Security (TLS)", RFC 2712,
1501 [MAILING LIST] J. Mikkelsen, R. Eberhard, and J. Kistler, "General
1502 ClientHello extension mechanism and virtual hosting,"
1503 ietf-tls mailing list posting, August 14, 2000.
1505 [RFC3546] S. Blake-Wilson, M.Nystrom, D. Hopwood, J. Mikkelsen,
1506 and T. Wright, "Transport Layer Security (TLS)
1507 Extensions", RFC 3546, June 2003.
1509 13. Authors' Addresses
1513 EMail: sblakewilson@bcisse.com
1517 EMail: magnus@rsasecurity.com
1520 Independent Consultant
1521 EMail: david.hopwood@blueyonder.co.uk
1525 EMail: janm@transactionware.com
1529 EMail: timothy.wright@vodafone.com
1535 Blake-Wilson, et. al. Standards Track [Page 28]
1537 Internet-Draft TLS Extensions November 2004
1539 14. Full Copyright Statement
1541 Copyright (C) The Internet Society (2005). This document is
1542 subject to the rights, licenses and restrictions contained in BCP
1543 78, and except as set forth therein, the authors retain all their
1546 This document and the information contained herein are provided
1547 on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
1548 REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND
1549 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
1550 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
1551 THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR
1552 ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
1557 Funding for the RFC Editor function is currently provided by the
1581 Blake-Wilson, et. al. Standards Track [Page 29]