draft-josefsson-kerberos5-starttls-00.txt | draft-josefsson-kerberos5-starttls-01.txt | |||
---|---|---|---|---|
Network Working Group S. Josefsson | ||||
Expires: May 14, 2005 | Network Working Group S. Josefsson | |||
Internet-Draft SJD | ||||
Intended status: Standards Track October 4, 2006 | ||||
Expires: April 7, 2007 | ||||
Using Transport Layer Security (TLS) with Kerberos 5 | Using Kerberos V5 over the Transport Layer Security (TLS) protocol | |||
draft-josefsson-kerberos5-starttls-00 | draft-josefsson-kerberos5-starttls-01 | |||
Status of this Memo | Status of this Memo | |||
This document is an Internet-Draft and is subject to all provisions | By submitting this Internet-Draft, each author represents that any | |||
of section 3 of RFC 3667. By submitting this Internet-Draft, each | applicable patent or other IPR claims of which he or she is aware | |||
author represents that any applicable patent or other IPR claims of | have been or will be disclosed, and any of which he or she becomes | |||
which he or she is aware have been or will be disclosed, and any of | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
which he or she become aware will be disclosed, in accordance with | ||||
RFC 3668. | ||||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
other groups may also distribute working documents as | other groups may also distribute working documents as Internet- | |||
Internet-Drafts. | Drafts. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on May 14, 2005. | This Internet-Draft will expire on April 7, 2007. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2004). | Copyright (C) The Internet Society (2006). | |||
Abstract | Abstract | |||
This document specify how the Transport Layer Security (TLS) protocol | This document specify how the Kerberos V5 protocol can be transported | |||
is used in conjunction with the Kerberos 5 protocol. | over the Transport Layer Security (TLS) protocol, to provide | |||
additional security features. | ||||
Table of Contents | Table of Contents | |||
1. Introduction and Background . . . . . . . . . . . . . . . . . 3 | 1. Introduction and Background . . . . . . . . . . . . . . . . . 3 | |||
2. Extension Mechanism for TCP/IP transport . . . . . . . . . . . 4 | 2. Kerberos V5 STARTTLS Extension . . . . . . . . . . . . . . . . 5 | |||
3. Kerberos 5 STARTTLS Extension . . . . . . . . . . . . . . . . 4 | 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.1 STARTTLS requested by client (extension 1) . . . . . . . . 4 | 4. STARTTLS aware KDC Discovery . . . . . . . . . . . . . . . . . 7 | |||
3.2 STARTTLS request accepted by server (extension 2) . . . . 5 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.3 Proceeding after successful TLS negotiation . . . . . . . 5 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
3.4 Proceeding after failed TLS negotiation . . . . . . . . . 5 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
3.5 STARTTLS aware KDC Discovery . . . . . . . . . . . . . . . 5 | 7.1. Normative References . . . . . . . . . . . . . . . . . . . 10 | |||
3.6 Initial Authentication via TLS . . . . . . . . . . . . . . 5 | 7.2. Informative References . . . . . . . . . . . . . . . . . . 10 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | Intellectual Property and Copyright Statements . . . . . . . . . . 12 | |||
5.1 Normative References . . . . . . . . . . . . . . . . . . . . 6 | ||||
5.2 Informative References . . . . . . . . . . . . . . . . . . . 6 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
Intellectual Property and Copyright Statements . . . . . . . . 8 | ||||
1. Introduction and Background | 1. Introduction and Background | |||
This document describe how Shishi, a Kerberos 5 [1] implementation, | This document describe how a Kerberos V5 [2] implementation may | |||
upgrade communication between clients and Key Distribution Centers | upgrade communication between clients and Key Distribution Centers | |||
(KDCs) to use the Transport Layer Security (TLS) [2] protocol. | (KDCs) to use the Transport Layer Security (TLS) [4] protocol. | |||
The TLS protocol offer integrity and privacy protected exchanges that | The TLS protocol offer integrity and privacy protected exchanges that | |||
can be authentication using X.509 certificates, OpenPGP keys [6], and | can be authentication using X.509 certificates, OpenPGP keys [7], and | |||
user name and passwords via SRP [5]. | user name and passwords via SRP [6]. | |||
An inconclusive list of the motivation for using TLS with Kerberos 5 | ||||
is given below. | ||||
o Explicit server authentication of the KDC to the client. In | ||||
traditional Kerberos 5, authentication of the KDC is proved as a | ||||
side effect that the KDC knows your encryption key (i.e., your | ||||
password). | ||||
o Flexible authentication against KDC. Kerberos 5 assume the user | There are several reasons to use Kerberos V5 over TLS. | |||
knows a key (usually in the form of a password). Sometimes | ||||
external factors make this hard to fulfill. In some situations, | ||||
users are equipped with smart cards with a RSA authentication key. | ||||
In others, users have a OpenPGP client on their desktop, with a | ||||
public OpenPGP key known to the server. In some situations, the | ||||
policy may be that password authentication may only be done | ||||
through SRP. | ||||
o Kerberos exchanges are privacy protected. Part of many Kerberos | o Kerberos exchanges are privacy protected. Part of many Kerberos | |||
packets are transfered without privacy protection (i.e., | packets are transfered without privacy protection (i.e., | |||
encryption). That part contains information, such as the client | encryption). That part contains information, such as the client | |||
principal name, the server principal name, the encryption types | principal name, the server principal name, the encryption types | |||
supported by the client, the lifetime of tickets, etc. Revealing | supported by the client, the lifetime of tickets, etc. Revealing | |||
such information is, in some threat models, considered a problem. | such information is, in some threat models, considered a problem. | |||
o Prevents downgrade attacks affecting encryption types. The | o Prevents downgrade attacks affecting encryption types. The | |||
encryption type of the ticket in KDC-REQ are sent in the clear in | encryption type of the ticket in KDC-REQ are sent in the clear in | |||
Kerberos 5. This allows an attacker to replace the encryption | Kerberos 5. This allows an attacker to replace the encryption | |||
type with a compromised mechanisms, e.g. 56-bit DES. Since | type with a compromised mechanisms, e.g., 56-bit DES. Since | |||
clients in general cannot know the encryption types other servers | clients in general cannot know the encryption types other servers | |||
support, it is difficult for the client to detect if there was a | support, it is difficult for the client to detect if there was a | |||
man-in-the-middle or if the remote server simply did not support a | man-in-the-middle or if the remote server simply did not support a | |||
stronger mechanism. Clients could chose to refuse 56-bit DES | stronger mechanism. Clients could chose to refuse, e.g., 56-bit | |||
altogether, but in some environments this leads to operational | DES altogether, but in some environments this leads to operational | |||
difficulties. | difficulties. | |||
o Additional authentication against the KDC. In some situations, | ||||
users are equipped with smart cards with a RSA authentication key. | ||||
In others, users have a OpenPGP client on their desktop, with a | ||||
public OpenPGP key known to the server. In some situations, the | ||||
policy may be that password authentication may only be done | ||||
through SRP. | ||||
o The TLS protocol has been studied by many parties. In some threat | o The TLS protocol has been studied by many parties. In some threat | |||
models, the designer prefer to reduce the number of protocols that | models, the designer prefer to reduce the number of protocols that | |||
can hurt the overall system security if they are compromised. | can hurt the overall system security if they are compromised. | |||
o Explicit server authentication of the KDC to the client. In | ||||
traditional Kerberos 5, authentication of the KDC is proved as a | ||||
side effect that the KDC knows your encryption key (i.e., your | ||||
password). | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [4]. | document are to be interpreted as described in RFC 2119 [1]. | |||
2. Extension Mechanism for TCP/IP transport | 2. Kerberos V5 STARTTLS Extension | |||
Kerberos 5 require Key Distribution Centers (KDCs) to accept requests | The STARTTLS extension uses the Kerberos V5 TCP extension mechanism | |||
over TCP. Each request and response is prefixed by 4 octets, | [3]. The extension uses bit #TBD in the extension bitmask. | |||
encoding an integer in network byte order, that indicate the length | ||||
of the packet. The high bit of the 4 octet length field was reserved | ||||
for future expansion. Servers that do not understand how to | ||||
interpret a set high bit are required to return a KRB-ERROR with the | ||||
KRB_ERR_FIELD_TOOLONG error code, and to close the TCP stream. | ||||
We will use the reserved bit to provide an extension mechanism. When | The protocol is as follows. After the server has sent the 4-octet | |||
the reserved high bit is set, the remaining 31 bits of the 4 octets | value 0x00000000 to indicate support of this extension, the stream | |||
are treated as an extensible typed hole, and thus form a 31 bit | will be controlled by the TLS protocol and its framing. The TLS | |||
integer enumerating various extensions. Each of the values indicate | protocol is initiated by the client. | |||
a specific extended operation mode, two of which are used and defined | ||||
here, and the rest are left for others to use. | ||||
If the KDC do not understand a requested extension, it MUST return a | Typically, the client initiate the TLS handshake protocol by sending | |||
KRB-ERROR with a KRB_ERR_FIELD_TOOLONG value (prefixed by the 4 octet | a client hello, and the server responds, and the handshake continues | |||
length integer, with the high bit clear, as usual) and close the TCP | until it either succeed or fails. | |||
stream. | ||||
The following table specify the meaning of the 31 lower bits in the 4 | If for any reason the handshake fails, the STARTTLS protocol will | |||
octet field, when the high bit is set: | also fail, and the TLS error is used as the error indication. | |||
0 RESERVED. | If the handshake succeeds, the Kerberos V5 authentication protocol is | |||
1 STARTTLS requested by client. | performed within the protected TLS channel, like a normal TCP | |||
2 STARTTLS request accepted by server. | Kerberos V5 exchange. In particular, this means that every Kerberos | |||
3...2147483647 AVAILABLE for registration (via [email protected]). | V5 packet will be prefixed by a 4-octet length field, that indicate | |||
2147483648 RESERVED. | the length of the Kerberos V5 packet. | |||
3. Kerberos 5 STARTTLS Extension | 3. Examples | |||
3.1 STARTTLS requested by client (extension 1) | A complete packet flow for a successful AS-REQ/REP exchange protected | |||
by this mechanism will be as follows. The "STARTTLS-bit" is a | ||||
4-octet value with only the bit allocated for this extension set. | ||||
When this message is sent by the client, the client is requesting the | Client Server | |||
server to start TLS negotiation on the TCP stream. The client MUST | ||||
NOT start TLS negotiation immediately. Instead, the client wait for | ||||
either a KRB-ERROR (sent normally, prefixed by a 4 octet length | ||||
integer) indicating the server do not understand the set high bit, or | ||||
4 octets which is to be interpreted as an integer in network byte | ||||
order, where the high bit is set and the remaining 31 bit are | ||||
interpreted as an integer specifying ``STARTTLS request accepted by | ||||
server'' (extension 2). In the first case, the client infer that the | ||||
server do not understand (or wish to support) STARTTLS, and can | ||||
re-try using normal TCP, if unprotected Kerberos 5 exchanges are | ||||
acceptable to the client policy. In the latter case, it should | ||||
invoke TLS negotiation on the stream. If any other data is received, | ||||
the client MUST close the TCP stream. | ||||
3.2 STARTTLS request accepted by server (extension 2) | [ Kerberos V5 TCP extension mechanism negotiation starts ] | |||
This message should be sent by the server when it has received the | [0x70000000 & STARTTLS-bit] --------> | |||
extension 1 message. The message is an acknowledgment of the | [0x00000000] | |||
client's request to initiate STARTTLS on the channel. The server | <-------- | |||
MUST then invoke a TLS negotiation. | ||||
3.3 Proceeding after successful TLS negotiation | [ TLS negotiation starts ] | |||
If the TLS negotiation ended successfully, possibly also considering | ClientHello --------> | |||
client or server policies, the exchange within the TLS protected | ServerHello | |||
stream is performed like normal UDP Kerberos 5 exchanges, i.e., there | Certificate* | |||
is no TCP 4 octet length field before each packet. Instead each | ServerKeyExchange* | |||
Kerberos packet MUST be sent within one TLS record, so the | CertificateRequest* | |||
application can use the TLS record length as the Kerberos 5 packet | <-------- ServerHelloDone | |||
length. | Certificate* | |||
ClientKeyExchange | ||||
CertificateVerify* | ||||
[ChangeCipherSpec] | ||||
Finished --------> | ||||
[ChangeCipherSpec] | ||||
<-------- Finished | ||||
3.4 Proceeding after failed TLS negotiation | [ Kerberos V5 negotiation starts ] | |||
If the TLS negotiation fails, possibly due to client or server policy | Kerberos V5 AS-REQ --------> | |||
(e.g., inadequate support of encryption types in TLS, or lack of | Kerberos V5 AS-REP | |||
client or server authentication) the entity that detect the failure | <-------- | |||
MUST disconnected the connection. It is expected that any error | ||||
messages that explain the error condition is transfered by TLS. | ||||
3.5 STARTTLS aware KDC Discovery | * Indicates optional or situation-dependent messages that are not | |||
always sent. | ||||
4. STARTTLS aware KDC Discovery | ||||
Section 7.2.3 of Kerberos V5 [2] describe how Domain Name System | ||||
(DNS) SRV records [5] can be used to find the address of an KDC. | ||||
Using the terminology of Section 7.2.3 of RFC 4120, we define a new | ||||
Proto of "tls" to indicate that the particular KDC is intended to | ||||
support this STARTTLS extension. The Service, Realm, TTL, Class, | ||||
SRV, Priority, Weight, Port and Target have the same meaning as in | ||||
RFC 4120. | ||||
Section 7.2.3 of Kerberos 5 [1] describe how Domain Name System (DNS) | ||||
SRV records [3] can be used to find the address of an KDC. To locate | ||||
a KDC that support the STARTTLS extension, we use the "_tls" domain. | ||||
For example: | For example: | |||
_kerberos._tls._tcp.EXAMPLE.COM. IN SRV 0 0 88 kdc1.example.com. | _kerberos._tls.EXAMPLE.COM. IN SRV 0 0 88 kdc1.example.com. | |||
_kerberos._tls._tcp.EXAMPLE.COM. IN SRV 1 0 88 kdc2.example.com. | _kerberos._tls.EXAMPLE.COM. IN SRV 1 0 88 kdc2.example.com. | |||
3.6 Initial Authentication via TLS | 5. IANA Considerations | |||
The server MAY consider the authentication performed by the TLS | The IANA is requested to allocate a bit in the "Kerberos TCP | |||
exchange as sufficient to issue Kerberos 5 tickets to the client, | Extensions" registry for the extension described in this document, as | |||
without requiring, e.g., pre-authentication. However, it is not an | per [3]. | |||
error to require or use pre-authentication as well. | ||||
The client may also indicate that it wishes to use TLS both for | 6. Security Considerations | |||
authentication and data protection by using the NULL encryption type | ||||
in its request. The server can decide from its local policy whether | ||||
or not issuing tickets based solely on TLS authentication, and | ||||
whether NULL encryption within TLS, is acceptable or not. | ||||
4. Security Considerations | The security considerations in Kerberos V5, TLS, and the extension | |||
mechanism framework are inherited. | ||||
Because the initial token is not protected, it is possible for an | To protect against the inherent downgrade attack in the extension | |||
active attacker to make it appear to the client that the server do | framework, it is suggested that implementations offer a policy to | |||
not support this extension. It is up to client configuration to | require that this extension is successfully negotiated. For | |||
disallow non-TLS connections, if that vulnerability is deemed | interoperability with implementations that do not support this | |||
unacceptable. For interoperability, we suggest the default behaviour | extension, it is suggested that the policy is disabled by default. | |||
should be to allow automatic fall back to TCP or UDP. | ||||
The security considerations of both TLS and Kerberos 5 are inherited. | 7. References | |||
Using TLS for authentication and/or data protection together with | ||||
Kerberos alter the authentication logic fundamentally. Thus, it may | ||||
be that even if the TLS and Kerberos 5 protocols and implementations | ||||
were secure, the combination of TLS and Kerberos 5 described here | ||||
could be insecure. | ||||
No channel bindings are provided in the Kerberos messages. It is an | 7.1. Normative References | |||
open question whether, and how, this could be solved. One idea for | ||||
solving this may be to specify a new encryption algorithm in Kerberos | ||||
5 that is similar to the NULL encryption algorithm, but also include | ||||
the TLS session identifier. | ||||
5. References | [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | |||
Levels", BCP 14, RFC 2119, March 1997. | ||||
5.1 Normative References | [2] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos | |||
Network Authentication Service (V5)", RFC 4120, July 2005. | ||||
[1] Neuman, C., "The Kerberos Network Authentication Service (V5)", | [3] Josefsson, S., "Extended Kerberos Version 5 Key Distribution | |||
draft-ietf-krb-wg-kerberos-clarifications-07 (work in progress), | Center (KDC) Exchanges Over TCP", | |||
September 2004. | draft-ietf-krb-wg-tcp-expansion-01 (work in progress), | |||
September 2006. | ||||
[2] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC | [4] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) | |||
2246, January 1999. | Protocol Version 1.1", RFC 4346, April 2006. | |||
[3] Gulbrandsen, A., Vixie, P. and L. Esibov, "A DNS RR for | [5] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for | |||
specifying the location of services (DNS SRV)", RFC 2782, | specifying the location of services (DNS SRV)", RFC 2782, | |||
February 2000. | February 2000. | |||
5.2 Informative References | 7.2. Informative References | |||
[4] Bradner, S., "Key words for use in RFCs to Indicate Requirement | ||||
Levels", BCP 14, RFC 2119, March 1997. | ||||
[5] Taylor, D., "Using SRP for TLS Authentication", | [6] Taylor, D., "Using SRP for TLS Authentication", | |||
draft-ietf-tls-srp-08 (work in progress), August 2004. | draft-ietf-tls-srp-12 (work in progress), June 2006. | |||
[6] Mavroyanopoulos, N., "Using OpenPGP keys for TLS | [7] Mavroyanopoulos, N., "Using OpenPGP keys for TLS | |||
authentication", draft-ietf-tls-openpgp-keys-05 (work in | authentication", draft-ietf-tls-openpgp-keys-10 (work in | |||
progress), April 2004. | progress), June 2006. | |||
Author's Address | Author's Address | |||
Simon Josefsson | Simon Josefsson | |||
SJD | ||||
EMail: [email protected] | Email: [email protected] | |||
Intellectual Property Statement | Full Copyright Statement | |||
Copyright (C) The Internet Society (2006). | ||||
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 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 | The IETF takes no position regarding the validity or scope of any | |||
Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
this document or the extent to which any license under such rights | 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 | might or might not be available; nor does it represent that it has | |||
made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |||
found in BCP 78 and BCP 79. | found in BCP 78 and BCP 79. | |||
skipping to change at page 8, line 29 | skipping to change at page 12, line 45 | |||
such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |||
[email protected]. | [email protected]. | |||
Disclaimer of Validity | ||||
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 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. | ||||
Copyright Statement | ||||
Copyright (C) The Internet Society (2004). 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. | ||||
Acknowledgment | Acknowledgment | |||
Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is provided by the IETF | |||
Internet Society. | Administrative Support Activity (IASA). | |||
End of changes. 56 change blocks. | ||||
183 lines changed or deleted | 156 lines changed or added | |||
This html diff was produced by rfcdiff 1.29, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |