Add.
[gsasl.git] / doc / specification / draft-williams-on-channel-binding-04.txt
blob6a149bd71504d2eebf51affae55933f5cb25997c
4 NETWORK WORKING GROUP                                        N. Williams
5 Internet-Draft                                                       Sun
6 Intended status: Standards Track                         August 31, 2007
7 Expires: March 3, 2008
10            On the Use of Channel Bindings to Secure Channels
11                 draft-williams-on-channel-binding-04.txt
13 Status of this Memo
15    By submitting this Internet-Draft, each author represents that any
16    applicable patent or other IPR claims of which he or she is aware
17    have been or will be disclosed, and any of which he or she becomes
18    aware will be disclosed, in accordance with Section 6 of BCP 79.
20    Internet-Drafts are working documents of the Internet Engineering
21    Task Force (IETF), its areas, and its working groups.  Note that
22    other groups may also distribute working documents as Internet-
23    Drafts.
25    Internet-Drafts are draft documents valid for a maximum of six months
26    and may be updated, replaced, or obsoleted by other documents at any
27    time.  It is inappropriate to use Internet-Drafts as reference
28    material or to cite them other than as "work in progress."
30    The list of current Internet-Drafts can be accessed at
31    http://www.ietf.org/ietf/1id-abstracts.txt.
33    The list of Internet-Draft Shadow Directories can be accessed at
34    http://www.ietf.org/shadow.html.
36    This Internet-Draft will expire on March 3, 2008.
38 Copyright Notice
40    Copyright (C) The IETF Trust (2007).
55 Williams                  Expires March 3, 2008                 [Page 1]
57 Internet-Draft             On Channel Bindings               August 2007
60 Abstract
62    The concept of channel binding allows applications to establish that
63    the two end-points of a secure channel at one network layer are the
64    same as at a higher layer by binding authentication at the higher
65    layer to the channel at the lower layer.  This allows applications to
66    delegate session protection to lower layers, which has various
67    performance benefits.
69    This document discusses and formalizes the concept of channel binding
70    to secure channels.
73 Table of Contents
75    1.          Introduction . . . . . . . . . . . . . . . . . . . . .  3
76    1.1.        Conventions used in this document  . . . . . . . . . .  4
77    2.          Definitions  . . . . . . . . . . . . . . . . . . . . .  5
78    2.1.        Properties of channel binding  . . . . . . . . . . . .  6
79    2.2.        EAP channel binding  . . . . . . . . . . . . . . . . .  9
80    3.          Authentication and channel binding semantics . . . . . 11
81    3.1.        The GSS-API and channel binding  . . . . . . . . . . . 11
82    3.2.        SASL and channel binding . . . . . . . . . . . . . . . 11
83    4.          Channel bindings specifications  . . . . . . . . . . . 13
84    4.1.        Examples of unique channel bindings  . . . . . . . . . 13
85    4.2.        Examples of end-point channel bindings . . . . . . . . 13
86    5.          Uses of channel binding  . . . . . . . . . . . . . . . 15
87    6.          Benefits of channel binding to secure channels . . . . 17
88    7.          IANA Considerations  . . . . . . . . . . . . . . . . . 18
89    7.1.        Registration Procedure . . . . . . . . . . . . . . . . 18
90    7.2.        Comments on channel bindings Registrations . . . . . . 19
91    7.3.        Change control . . . . . . . . . . . . . . . . . . . . 20
92    8.          Security Considerations  . . . . . . . . . . . . . . . 21
93    8.1.        Non-unique channel bindings and channel binding
94                re-establishment . . . . . . . . . . . . . . . . . . . 21
95    9.          References . . . . . . . . . . . . . . . . . . . . . . 23
96    9.1.        Normative References . . . . . . . . . . . . . . . . . 23
97    9.2.        Informative References . . . . . . . . . . . . . . . . 23
98    Appendix A. Acknowledgments  . . . . . . . . . . . . . . . . . . . 26
99                Author's Address . . . . . . . . . . . . . . . . . . . 27
100                Intellectual Property and Copyright Statements . . . . 28
111 Williams                  Expires March 3, 2008                 [Page 2]
113 Internet-Draft             On Channel Bindings               August 2007
116 1.  Introduction
118    In a number of situations, it is useful for an application to be able
119    to handle authentication within the application layer, while
120    simultaneously being able to utilize session or transport security at
121    a lower network layer.  For example, IPsec [RFC4301] [RFC4303]
122    [RFC4302] is amenable to being accelerated in hardware to handle very
123    high link speeds, but IPsec key exchange protocols and the IPsec
124    architecture are not as amenable to use as a security mechanism
125    within applications, particularly applications that have users as
126    clients.  A method of combining security at both layers is therefore
127    attractive.  To enable this to be done securely, it is necessary to
128    "bind" the mechanisms together -- so as to avoid man-in-the-middle
129    vulnerabilities and enable the mechanisms to be integrated in a
130    seamless way.  This is the objective of "Channel Bindings."
132    The term "channel binding" as used in this document derives from the
133    GSS-API [RFC2743], which has a channel binding facility that was
134    intended for binding GSS-API authentication to secure channels at
135    lower network layers.  The purpose and benefits of the GSS-API
136    channel binding facility were not discussed at length, and some
137    details were left unspecified.  Now we find that this concept can be
138    very useful, therefore we begin with a generalization and
139    formalization of "channel binding" independent of the GSS-API.
141    Although inspired by and derived from the GSS-API, the notion of
142    channel binding described herein is not at all limited to use by GSS-
143    API applications.  We envision use of channel binding by applications
144    that utilize other security frameworks, such as SASL [RFC4422] and
145    even protocols that provide their own authentication mechanisms
146    (e.g., the KDC exchanges of Kerberos V [RFC4120]).  We also envision
147    use of the notion of channel binding in the analysis of security
148    protocols.
150    The main goal of channel binding is to be able to delegate
151    cryptographic session protection to network layers below the
152    application in hopes of being able to better leverage hardware
153    implementations of cryptographic protocols.  Section 5 describes some
154    intended uses of channel binding.  Some applications may benefit
155    additionally by reducing the amount of active cryptographic state,
156    thus reducing overhead in accessing such state and, therefore, the
157    impact of security on latency.
159    The critical security problem to solve in order to achieve such
160    delegation of session protection is: ensuring that there is no man-
161    in-the-middle (MITM), from the point of view the application, at the
162    lower network layer to which session protection is to be delegated.
167 Williams                  Expires March 3, 2008                 [Page 3]
169 Internet-Draft             On Channel Bindings               August 2007
172    And there may well be a MITM, particularly if the lower network layer
173    either provides no authentication or if there is no strong connection
174    between the authentication or principals used at the application and
175    those used at the lower network layer.
177    Even if such MITM attacks seem particularly difficult to effect, the
178    attacks must be prevented for certain applications to be able to make
179    effective use of technologies such as IPsec [RFC2401] [RFC4301] or
180    HTTP with TLS [RFC4346] in certain contexts (e.g., when there is no
181    authentication to speak of, or when one node's set of trust anchors
182    is too weak to believe that it can authenticate its peers).
183    Additionally, secure channels that are susceptible to MITM attacks
184    because they provide no useful end-point authentication are useful
185    when combined with application-layer authentication (otherwise they
186    are only somewhat "better than nothing" -- see BTNS
187    [I-D.ietf-btns-prob-and-applic]).
189    For example, iSCSI [RFC3720] provides for application-layer
190    authentication (e.g., using Kerberos V), but relies on IPsec for
191    transport protection; iSCSI does not provide a binding between the
192    two. iSCSI initiators have to be careful to make sure that the name
193    of the server authenticated at the application layer and the name of
194    the peer at the IPsec layer match -- an informal form of channel
195    binding.
197    This document describes a solution: the use of "channel binding" (in
198    the GSS-API [RFC2743] [RFC2744] sense) to bind authentication at
199    application layers to secure sessions at lower layers in the network
200    stack.
202 1.1.  Conventions used in this document
204    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
205    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
206    document are to be interpreted as described in [RFC2119].
223 Williams                  Expires March 3, 2008                 [Page 4]
225 Internet-Draft             On Channel Bindings               August 2007
228 2.  Definitions
230    o  Secure channel: a packet, datagram, octet stream connection, or
231       sequence of connections, between two end-points that affords
232       cryptographic integrity and, optionally, confidentiality to data
233       exchanged over it.  We assume that the channel is secure -- if an
234       attacker can successfully cryptanalyze a channel's session keys,
235       for example, then the channel is not secure.
237    o  Channel binding: the process of establishing that no man-in-the-
238       middle exists between two end-points authenticated at one network
239       layer but using a secure channel at a lower network layer.  This
240       term is used as a noun.
242    o  Channel bindings: [See historical note below.]
244          Generally some data which "names" a channel or one or both of
245          its end-points such that if this data can be shown, at a higher
246          network layer, to be the same at both ends of a channel then
247          there are no MITMs between the two end-points at that higher
248          network layer.  This term is used as a noun.
250          More formally, there are two types of channel bindings:
254          +  unique channel bindings:
256             channel bindings that name a channel in a cryptographically
257             secure manner and uniquely in time;
259          +  end-point channel bindings:
261             channel bindings that name the authenticated end-points, or
262             even a single end-point, of a channel which are, in turn,
263             securely bound to the channel, but which do not identify a
264             channel uniquely in time.
266    o  Cryptographic binding: (e.g., "cryptographically bound") a
267       cryptographic operation that causes an object, such as a private
268       encryption or signing key, or an established secure channel, to
269       "speak for" [Lampson91] some principal, such as a user, a
270       computer, etcetera.  For example, a PKIX certificate binds a
271       private key to the name of a principal in the trust domain of the
272       certificate's issuer such that a possessor of said private key can
273       act on behalf of the user (or other entity) named by the
274       certificate.
279 Williams                  Expires March 3, 2008                 [Page 5]
281 Internet-Draft             On Channel Bindings               August 2007
284       Cryptographic bindings are generally asymmetric in nature (not to
285       be confused with symmetric or assymetric key cryptography) in that
286       an object is rendered capable of standing for another, but the
287       reverse is not usually the case (we don't say that a user speaks
288       for their private keys, but we do say that the user's private keys
289       speak for the user).
291    Note that there may be many instances of "cryptographic binding" in
292    an application of channel binding.  The credentials that authenticate
293    principals at the application layer bind private or secret keys to
294    the identities of those principals, such that said keys speak for
295    them.  A secure channel typically consists symmetric session keys
296    used to provide confidentiality and integrity protection to data sent
297    over the channel; each end-point's session keys speak for that end-
298    point of the channel.  Finally, each end-point of a channel bound to
299    authentication at the application layer speaks for the principal
300    authenticated at the application layer on the same side of the
301    channel.
303    The terms defined above have been in use for many years and have been
304    taken to mean, at least in some contexts, what is stated below.
305    Unfortunately this means that "channel binding" can refer to the
306    channel binding operation and, sometimes to the name of a channel,
307    and "channel bindings" -- a difference of only one letter --
308    generally refers to the name of a channel.
310    Note that the Extensible Authentication Protocol (EAP) [RFC3748]
311    which "channel binding" to refer to a facility appears to be similar
312    to the one described here, but it is, in fact, quite different.  See
313    Section 2.2 for more details.
315 2.1.  Properties of channel binding
317    Applications, authentication frameworks (e.g., the GSS-API, SASL),
318    security mechanisms (e.g., the Kerberos V GSS-API mechanism
319    [RFC1964]) and secure channels must meet the following requirement
320    and should follow the following recommendations.
322    Requirements:
324    o  In order to use channel binding applications MUST verify that the
325       same channel bindings are observed at either side of the channel.
326       To do this the application MUST use an authentication protocol at
327       the application layer to authenticate one, the other or both
328       application peers (one at each end of the channel).
330       *  If the authentication protocol used by the application supports
331          channel binding the application SHOULD use it.
335 Williams                  Expires March 3, 2008                 [Page 6]
337 Internet-Draft             On Channel Bindings               August 2007
340       *  An authentication protocol that supports channel binding MUST
341          provide an input slot in its API for a "handle" to the channel,
342          or its channel bindings.
344       *  If he authentication protocol does not support a channel
345          binding operation but provides a "security layer" with at least
346          integrity protection, then the application MUST use the
347          authentication protocol's integrity protection facilities to
348          exchange channel bindings, or cryptographic hashes thereof.
350       *  The name of the type of channel binding MUST be used by the
351          application and/or authentication protocol to avoid ambiguity
352          about which of several possible types of channels is being
353          bound.  If nested instances of the same type of channel are
354          available then the innermost channel MUST be used.
356    o  Specifications of channel bindings for any secure channels MUST
357       provide for a single, canonical octet string encoding of the
358       channel bindings.
360    o  The channel bindings for a given type of secure channel MUST be
361       constructed in such a way that an MITM could not easily force the
362       channel bindings of a given channel to match those of another.
364    o  Unique channel bindings MUST bind not only the key exchange for
365       the secure channel, but also any negotiations and authentication
366       that may have taken place to establish the channel.
368    o  End-point channel bindings MUST be bound into the secure channel
369       and all its negotiations.  For example, a public key as an end-
370       point channel binding should be used to verify a signature of a
371       such negotiations (or to encrypt them), including the initial key
372       exchange and negotiation messages for that channel -- such a key
373       would then be bound into the channel.  A certificate name as end-
374       point channel binding could also be bound into the channel in a
375       similar way, though in the case of a certificate name the binding
376       depends too on the strength of the authentication of that name
377       (that is, the validation of the certificate, the trust anchors,
378       the algorihtms used in the certificate path construction and
379       validation, etcetera).
381    o  End-point channel bindings MAY be identifiers (e.g., certificate
382       names) which must be authenticated through some infrastructure,
383       such as a public key infrastructure (PKI).  In such cases
384       applications MUST ensure that the channel provides adequate
385       authentication of such identifiers (e.g., that the certificate
386       validation policy and trust anchors used by the channel satisfy
387       the application's requirements).  To avoid implementation
391 Williams                  Expires March 3, 2008                 [Page 7]
393 Internet-Draft             On Channel Bindings               August 2007
396       difficulties in addressing this requirement applications SHOULD
397       use cryptographic quantities as end-point channel bindings, such
398       as certificate subject public keys.
400    o  Applications MUST use application-layer session protection
401       services for confidentiality protection when the bound channel
402       does not provide confidentiality protection.
404    o  The integrity of a secure channel MUST NOT be weakened should
405       their channel bindings be revealed to an attacker.  That is, the
406       construction of the channel bindings for any type of secure
407       channel MUST NOT leak secret information about the channel.  End-
408       point channel bindings, however, MAY leak information about the
409       end-points of the channel (e.g., their names).
411    o  The channel binding operation MUST be at least integrity protected
412       in the security mechanism used at the application layer.
414    o  Authentication frameworks and mechanisms that support channel
415       binding MUST communicate channel binding failure to applications.
417    o  Applications MUST NOT send sensitive information, requiring
418       confidentiality protect, over the underlying channel prior to
419       completing the channel binding operation.
421    Recommendations:
423    o  End-point channel bindings where the end-points are meaningful
424       names SHOULD NOT be used when the channel does not provide
425       confidentiality protection and privacy protection is desired.
426       Alternatively channels that export such channel bindings SHOULD
427       provide for the use of a digest and SHOULD NOT introduce new
428       digest/hash agility problems as a result.
430    Options:
432    o  Authentication frameworks and mechanisms that support channel
433       binding MAY fail to establish authentication if channel binding
434       fails.
436    o  Applications MAY send information information over the underlying
437       channel and without intergrity protection from the application-
438       layer authentication protocol prior to completing the channel
439       binding operation if such information requires only integrity
440       protection.  This could be useful for optimistic negotiations.
442    o  A security mechanism MAY exchange integrity protected channel
443       bindings.
447 Williams                  Expires March 3, 2008                 [Page 8]
449 Internet-Draft             On Channel Bindings               August 2007
452    o  A security mechanism MAY exchange integrity protected digests of
453       channel bindings.  Such mechanisms SHOULD provide for hash/digest
454       agility.
456    o  A security mechanism MAY use channel bindings in key exchange,
457       authentication or key derivation, prior to the exchange of
458       "authenticator" messages.
460 2.2.  EAP channel binding
462    This section is informative.  This document does not update EAP
463    [RFC3748], it neither normatively describes, nor does it impose
464    requirements on any aspect of EAP or EAP methods.
466    EAP [RFC3748] includes a concept of channel binding desribed as
467    follows:
469       The communication within an EAP method of integrity-protected
470       channel properties such as endpoint identifiers which can be
471       compared to values communicated via out of band mechanisms (such
472       as via a AAA or lower layer protocol).
474    Section 7.15 of [RFC3748] describes the problem as one where a a
475    Network Access Server (NAS), (a.k.a. "authenticator") may like to the
476    peer (client) and cause the peer to make incorrect authorization
477    decisions (e.g., as to what traffic may transit through the NAS).
478    This is not quite like the purpose of generic channel binding (MITM
479    detection).
481    Section 7.15 of [RFC3748] calls for "a protected exchange of channel
482    properties such as endpoint identifiers" such that "it is possible to
483    match the channel properties provided by the authenticator via out-
484    of-band mechanisms against those exchanged within the EAP method."
486    This has sometimes been taken to be very similar to the generic
487    notion of channel binding provided here.  However, these is a very
488    subtle difference between the two concepts of channel binding that
489    makes it much too difficult to put forth requirements and
490    recommendations that apply to both.  The difference is about the
491    lower-layer channel:
493    o  in the generic channel binding case the identities of either end
494       of this channel are irrelevant to anything other than the
495       construction of a name for that channel, in which case the
496       identities of the channel's end-points must be established a
497       priori,
503 Williams                  Expires March 3, 2008                 [Page 9]
505 Internet-Draft             On Channel Bindings               August 2007
508    o  whereas in the EAP case the identity of the NAS end of the
509       channel, and even security properties of the channel itself, may
510       be established during or after authentication of the EAP peer to
511       the EAP server.
513    In other words: there is a fundamental difference in mechanics
514    (timing of lower-layer channel establishment) and in purpose
515    (authentication of lower layer channel properties for authorization
516    purposes vs. MITM detection).
518    After some discussion we have concluded that there is no simple way
519    to obtain requirements and recommendations that apply to both,
520    generic and EAP channel binding.  Therefore EAP is out of the scope
521    of this document.
559 Williams                  Expires March 3, 2008                [Page 10]
561 Internet-Draft             On Channel Bindings               August 2007
564 3.  Authentication and channel binding semantics
566    Some authentication frameworks and/or mechanisms provide for channel
567    binding, such as the GSS-API and some GSS-API mechanisms, whereas
568    others may not, such as SASL (however, ongoing work is adding channel
569    binding support to SASL).  Semantics may vary with respect to
570    negotiation, how the binding occurs, and handling of channel binding
571    failure (see below).
573    Where suitable channel binding facilities are not provided,
574    application protocols MAY include a separate, protected exchange of
575    channel bindings.  In order to do this the application-layer
576    authentication service must provide message protection services, at
577    least integrity protection.
579 3.1.  The GSS-API and channel binding
581    The GSS-API [RFC2743] provides for the use of channel binding during
582    initialization of GSS-API security contexts, though GSS-API
583    mechanisms are not required to support this facility.
585    This channel binding facility is described in [RFC2743] and
586    [RFC2744].
588    GSS-API mechanisms must fail security context establishment when
589    channel binding fails, and the GSS-API provides no mechanism for the
590    negotiation of channel binding.  As a result GSS-API applications
591    must agree a priori, through negotiation or otherwise, on the use of
592    channel binding.
594    Fortunately, it is possible to design GSS-API pseudo-mechanisms that
595    simply wrap around existing mechanisms for the purpose of allowing
596    applications to negotiate the use of channel binding within their
597    existing methods for negotiating GSS-API mechanisms.  For example,
598    NFSv4 [RFC3530] provides its own GSS-API mechanism negotiation, as
599    does the SSHv2 protocol [RFC4462].  Such pseudo-mechanisms are being
600    proposed separately, see [I-D.ietf-kitten-stackable-pseudo-mechs].
602 3.2.  SASL and channel binding
604    SASL [RFC4422] does not yet provide for the use of channel binding
605    during initialization of SASL contexts.
607    Work is ongoing [I-D.ietf-sasl-gs2] to specify how SASL, particularly
608    it's new bridge to the GSS-API, performs channel binding.  SASL will
609    likely differ from the GSS-API in its handling of channel binding
610    failure (i.e., when there may be a MITM) in that channel binding
611    success/failure will only affect the negotiation of SASL security
615 Williams                  Expires March 3, 2008                [Page 11]
617 Internet-Draft             On Channel Bindings               August 2007
620    layers.  I.e., when channel binding succeeds SASL should select no
621    security layers, leaving session cryptographic protection to the
622    secure channel that has been bound to.
671 Williams                  Expires March 3, 2008                [Page 12]
673 Internet-Draft             On Channel Bindings               August 2007
676 4.  Channel bindings specifications
678    Channel bindings for various types of secure channels are not
679    described herein.  Some channel bindings specifications can be found
680    in:
682    +--------------------+----------------------------------------------+
683    | Secure Channel     | Reference                                    |
684    | Type               |                                              |
685    +--------------------+----------------------------------------------+
686    | SSHv2              | [I-D.williams-sshv2-channel-bindings]        |
687    |                    |                                              |
688    | TLS                | [I-D.altman-tls-channel-bindings]            |
689    |                    |                                              |
690    | IPsec              | There is no specification for IPsec channel  |
691    |                    | bindings yet, but the IETF Better Than       |
692    |                    | Nothing Security (BTNS) WG is working to     |
693    |                    | specify IPsec channels, and possibly IPsec   |
694    |                    | channel bindings.                            |
695    +--------------------+----------------------------------------------+
697 4.1.  Examples of unique channel bindings
699    The following text is not normative, but is here to show how one
700    might construct channel bindings for various types of secure
701    channels.
703    For SSHv2 [RFC4251] the SSHv2 session ID should suffice as it is a
704    cryptographic binding of all relevant SSHv2 connection parameters:
705    key exchange and negotiation.
707    For TLS [RFC4346]the TLS session ID is not sufficient as it is
708    assigned by the server, and so could be assigned by an MITM to match
709    a server's.  Instead the initial, unencrypted TLS finished messages,
710    either the client's, the server's or both, are sufficient as they are
711    the output of the TLS PRF, keyed with the session key, applied to all
712    handshake material.
714 4.2.  Examples of end-point channel bindings
716    The following text is not normative, but is here to show how one
717    might construct channel bindings for various types of secure
718    channels.
720    For SSHv2 [RFC4251] the SSHv2 host public key, when present, should
721    suffice as it is used to sign the algorithm suite negotiation and
722    Diffie-Hellman key exchange; as long the client observes the host
723    public key that corresponds to the private host key that the server
727 Williams                  Expires March 3, 2008                [Page 13]
729 Internet-Draft             On Channel Bindings               August 2007
732    used then there cannot be a MITM in the SSHv2 connection.  Note that
733    not all SSHv2 key exchanges use host public keys, therefore this
734    channel bindings construction is not as useful as the one given in
735    Section 4.1 above.
737    For TLS [RFC4346]the server certificate should suffice for the same
738    reasons as above.  Again, not all TLS cipher suites involve server
739    certificates, therfore the utility of this construction of channel
740    bindings is limited to scenarios where server certificates are
741    commonly used.
783 Williams                  Expires March 3, 2008                [Page 14]
785 Internet-Draft             On Channel Bindings               August 2007
788 5.  Uses of channel binding
790    Uses for channel binding identified so far:
792    o  Delegating session cryptographic protection to layers where
793       hardware can reasonably be expected to support relevant
794       cryptographic protocols:
796       *  NFSv4 [RFC3530] with Remote Direct Data Placement (RDDP)
797          [I-D.ietf-nfsv4-nfsdirect] for zer-copy reception where network
798          interface controllers (NICs) support RDDP.  Cryptographic
799          session protection would be delegated to ESP/AH [RFC4303]
800          [RFC4302].
802       *  iSCSI [RFC3720] with Remote Direct Memory Access (RDMA)
803          [I-D.ietf-ips-iser].  Cryptographic session protection would be
804          delegated to ESP/AH.
806       *  HTTP with TLS [RFC2817] [RFC2818].  In situations involving
807          proxies users may want to bind authentication to a TLS channel
808          between the last client-side proxy and the first server-side
809          proxy ("concentrator").  There is ongoing work to expand the
810          set of choices for end-to-end authentication at the HTTP layer,
811          which coupled with channel binding to TLS would allow for
812          proxies while not forgoing protection over public internets.
814    o  Reducing the number of live cryptographic contexts that an
815       application must maintain:
817       *  NFSv4 [RFC3530] multiplexes multiple users onto individual
818          connections.  Each user is authenticated separately and user's
819          RPCs are protected with per-user GSS-API security contexts.
820          This means that large timesharing clients must often maintain
821          many cryptographic contexts per-NFSv4 conenction.  With channel
822          binding to IPsec they could maintain a much smaller number of
823          cryptographic contexts per-NFSv4 connection, thus reducing
824          memory pressure and interactions with cryptographic hardware.
826    For example, applications that wish to use RDDP to achieve zero-copy
827    semantics on reception may use a network layer understood by network
828    interface controllers (NIC) to offload delivery of application data
829    into pre-arranged memory buffers.  Note that in order to obtain zero-
830    copy reception semantics either application data has to be in
831    cleartext relative to this RDDP layer, or the RDDP implementation
832    must know how to implement cryptographic session protection protocols
833    used at the application layer.
835    There are a multitude of application layer cryptographic session
839 Williams                  Expires March 3, 2008                [Page 15]
841 Internet-Draft             On Channel Bindings               August 2007
844    protection protocols available.  It is not reasonable to expect the
845    NICs should support many such protocols.  Further, some application
846    protocols may maintain many cryptographic session contexts per-
847    connection (for example, NFSv4 does).  It is thought to be simpler to
848    push the cryptographic session protection down the network stack (to
849    IPsec), and yet be able to produce NICs that offload other operations
850    (i.e. - TCP/IP, ESP/AH, and DDP), than it would be to add support in
851    the NIC for the many session cryptographic protection protocols in
852    use in common applications at the application layer.
854    The following figure shows how the various network layers are
855    related:
857       +---------------------+
858       | Application layer   |<---+
859       |                     |<-+ |  In cleartext, relative
860       +---------------------+  | |  to each other.
861       | RDDP                |<---+
862       +---------------------+  |
863       | TCP/SCTP            |<-+
864       +---------------------+  | Channel binding of app-layer
865       | ESP/AH              |<-+ authentication to IPsec
866       +---------------------+
867       | IP                  |
868       +---------------------+
869       | ...                 |
870       +---------------------+
895 Williams                  Expires March 3, 2008                [Page 16]
897 Internet-Draft             On Channel Bindings               August 2007
900 6.  Benefits of channel binding to secure channels
902    The use of channel binding to delegate session cryptographic
903    protection include:
905    o  Performance improvements by avoiding double protection of
906       application data in cases where IPsec is in use and applications
907       provide their own secure channels.
909    o  Performance improvements by leveraging hardware-accelerated IPsec.
911    o  Performance improvements by allowing RDDP hardware offloading to
912       be integrated with IPsec hardware acceleration.
914          Where protocols layered above RDDP use privacy protection RDDP
915          offload cannot be done, thus by using channel binding to IPsec
916          the privacy protection is moved to IPsec, which is layered
917          below RDDP, so RDDP can address application protocol data
918          that's in cleartext relative to the RDDP headers.
920    o  Latency improvements for applications that multiplex multiple
921       users onto a single channel, such as NFS w/ RPCSEC_GSS.
923    Delegation of session cryptographic protection to IPsec requires
924    features not yet specified.  There is ongoing work to specify:
926    o  IPsec channels [I-D.ietf-btns-connection-latching];
928    o  Application programming interfaces (APIs) related to IPsec
929       channels [I-D.ietf-btns-ipsec-apireq];
931    o  Channel bindings for IPsec channels;
933    o  Low infrastructure IPsec authentication[I-D.ietf-btns-core].
951 Williams                  Expires March 3, 2008                [Page 17]
953 Internet-Draft             On Channel Bindings               August 2007
956 7.  IANA Considerations
958    The IANA is hereby requested to create a new registry for channel
959    bindings specifciations for various types of channels.
961    The purpose of this registry is not only to ensure uniqueness of
962    values used to name channel bindings, but also to provide a
963    definitive reference to technical specifications detailing each
964    channel binding available for use on the Internet.
966    There is no naming convention for channel bindings: any string
967    composed of US-ASCII alphanumeric characters, period ('.') and dash
968    ('-') will suffice.
970    The procedure detailed in Section 7.1 is to be used for registration
971    of a value naming a specific individual mechanism.
973 7.1.  Registration Procedure
975    Registration of a new channel binding requires expert review as
976    defined in BCP 26 [RFC2434].
978    Registration of a channel binding is requested by filling in the
979    following template:
981    o  Subject: Registration of channel binding X
983    o  Channel binding unique prefix (name):
985    o  Channel binding type: (One of "unique" or "end-point")
987    o  Channel type: (E.g., TLS, IPsec, SSH, etc...)
989    o  Published specification (recommended, optional):
991    o  Channel binding is secret (requires confidentiality protection):
992       yes/no
994    o  Description (optional if a specification is given; required if no
995       Published specification is specified):
997    o  Intended usage: (One of COMMON, LIMITED USE, or OBSOLETE)
999    o  Person and email address to contact for further information:
1001    o  Owner/Change controller name and email address:
1007 Williams                  Expires March 3, 2008                [Page 18]
1009 Internet-Draft             On Channel Bindings               August 2007
1012    o  Expert reviewer name and contact information: (leave blank)
1014    o  Note: (Any other information that the author deems relevant may be
1015       added here.)
1017    and sending it via electronic mail to channel-binding@ietf.org (a
1018    public mailing list) and carbon copying IANA at <iana@iana.org>.
1019    After allowing two weeks for community input on the mailing list to
1020    be determined, an expert will determine the appropriateness of the
1021    registration request and either approve or disapprove the request
1022    with notice to the requestor, the mailing list, and IANA.
1024    If the expert approves registration, it adds her/his name to the
1025    submitted registration.
1027    The expert has the primary responsibility of making sure that channel
1028    bindings for IETF specifications go through the IETF consensus
1029    process and that prefixes are unique.
1031    The review should focus on the appropriateness of the requested
1032    channel binding for the proposed use, the appropriateness of the
1033    proposed prefix and correctness of the channel binding type in the
1034    registration.  The scope of this request review may entail
1035    consideration of relevant aspects of any provided technical
1036    specification, such as their IANA Considerations section.  However,
1037    this review is narrowly focused on the appropriateness of the
1038    requested registration and not on the overall soundness of any
1039    provided technical specification.
1041    Authors are encouraged to pursue community review by posting the
1042    technical specification as an Internet-Draft and soliciting comment
1043    by posting to appropriate IETF mailing lists.
1045 7.2.  Comments on channel bindings Registrations
1047    Comments on a registered Channel bindings should first be sent to the
1048    "owner" of the channel bindings and to the channel binding mailing
1049    list.
1051    Submitters of comments may, after a reasonable attempt to contact the
1052    owner, request IANA to attach their comment to the channel binding
1053    type registration itself by sending mail to <iana@iana.org>.  At
1054    IANA's sole discretion, IANA may attach the comment to the Channel
1055    binding's registration.
1063 Williams                  Expires March 3, 2008                [Page 19]
1065 Internet-Draft             On Channel Bindings               August 2007
1068 7.3.  Change control
1070    Once a channel bindings registration has been published by IANA, the
1071    author may request a change to its definition.  The change request
1072    follows the same procedure as the registration request.
1074    The owner of a channel bindings may pass responsibility for the
1075    channel bindings to another person or agency by informing IANA; this
1076    can be done without discussion or review.
1078    The IESG may reassign responsibility for a Channel bindings.  The
1079    most common case of this will be to enable changes to be made to
1080    mechanisms where the author of the registration has died, has moved
1081    out of contact, or is otherwise unable to make changes that are
1082    important to the community.
1084    Channel bindings registrations may not be deleted; mechanisms that
1085    are no longer believed appropriate for use can be declared OBSOLETE
1086    by a change to their "intended usage" field; such channel bindings
1087    will be clearly marked in the lists published by IANA.
1089    The IESG is considered to be the owner of all channel bindings that
1090    are on the IETF standards track.
1119 Williams                  Expires March 3, 2008                [Page 20]
1121 Internet-Draft             On Channel Bindings               August 2007
1124 8.  Security Considerations
1126    Security considerations appear throughout this document.  In
1127    particular see Section 2.1.
1129    When delegating session protection from one layer to another, one
1130    will almost certainly be making some session security trade-offs,
1131    such as using weaker cipher modes in one layer than might be used in
1132    the other.  Evaluation and comparison of the relative cryptographic
1133    strengths of these is difficult, may not be easily automated and is
1134    far out of scope for this document.  Implementors and administrators
1135    should understand these trade-offs.  Interfaces to secure channels
1136    and application-layer authentication frameworks and mechanisms could
1137    provide some notion of security profile so that applications may
1138    avoid delegation of session protection to channels that are too weak
1139    to match a required security profile.
1141    Channel binding makes "anonymous" channels (where neither end-point
1142    is strongly authenticated to the other) useful.  Implementors should
1143    avoid making use of such channels without channel binding easy to
1144    configure accidentally.
1146    The security of channel binding depends on the security of the
1147    channels, the construction of their channel bindings, and the
1148    security of the authentication mechanism used by the application and
1149    its channel binding method.
1151    Channel bindings should be constructed in such a way that revealing
1152    the channel bindings of a channel to third parties does not weaken
1153    the security of the channel.  However, for end-point channel bindings
1154    disclosure of the channel bindings may disclose the identities of the
1155    peers.
1157 8.1.  Non-unique channel bindings and channel binding re-establishment
1159    Applications developers may be tempted to use non-unique channel
1160    bindings for fast re-authentication following channel re-
1161    establishment.  Care must be taken to avoid the possibility of
1162    attacks on multi-user systems.
1164    Consider a user multiplexing protocol like NFSv4 using channel
1165    binding to IPsec on a multi-user client.  If another user can connect
1166    directly to port 2049 (NFS) on some server using IPsec and merely
1167    assert RPCSEC_GSS credential handles, then this user will be able to
1168    impersonate any user authenticated by the client to the server.  This
1169    is because the new connection will have the same channel bindings as
1170    the NFS client's!  To prevent this the server must require that at
1171    least a host-based client principal, and perhaps all the client's
1175 Williams                  Expires March 3, 2008                [Page 21]
1177 Internet-Draft             On Channel Bindings               August 2007
1180    user principals, re-authenticate and perform channel binding before
1181    the server will allow the clients to assert RPCSEC_GSS context
1182    handles.  Alternatively the protocol could: a) require that secure
1183    channels provide confidentiality protection, and b) that fast re-
1184    authentication cookies be difficult to guess (e.g., large numbers
1185    selected randomly).
1187    In other contexts there may not be such problems, for example, in the
1188    case of application protocols that don't multiplex users over a
1189    single channel and where confidentiality protection is always used in
1190    the secure channel.
1231 Williams                  Expires March 3, 2008                [Page 22]
1233 Internet-Draft             On Channel Bindings               August 2007
1236 9.  References
1238 9.1.  Normative References
1240    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
1241               Requirement Levels", BCP 14, RFC 2119, March 1997.
1243 9.2.  Informative References
1245    [I-D.altman-tls-channel-bindings]
1246               Williams, N., "Channel Bindings for SSHv2",
1247               draft-altman-tls-channel-bindings-00 (work in progress),
1248               July 2006.
1250    [I-D.ietf-btns-connection-latching]
1251               Williams, N., "IPsec Channels: Connection Latching",
1252               draft-ietf-btns-connection-latching-00 (work in progress),
1253               February 2006.
1255    [I-D.ietf-btns-core]
1256               Richardson, M. and N. Williams, "Better-Than-Nothing-
1257               Security: An Unauthenticated Mode of IPsec",
1258               draft-ietf-btns-core-01 (work in progress), June 2006.
1260    [I-D.ietf-btns-ipsec-apireq]
1261               Richardson, M. and B. Sommerfeld, "Requirements for an
1262               IPsec API", draft-ietf-btns-ipsec-apireq-00 (work in
1263               progress), April 2006.
1265    [I-D.ietf-btns-prob-and-applic]
1266               Touch, J., "Problem and Applicability Statement for Better
1267               Than Nothing Security  (BTNS)",
1268               draft-ietf-btns-prob-and-applic-05 (work in progress),
1269               February 2007.
1271    [I-D.ietf-ips-iser]
1272               Ko, M., "iSCSI Extensions for RDMA Specification",
1273               draft-ietf-ips-iser-06 (work in progress), October 2005.
1275    [I-D.ietf-kitten-stackable-pseudo-mechs]
1276               Williams, N., "Stackable Generic Security Service Pseudo-
1277               Mechanisms", draft-ietf-kitten-stackable-pseudo-mechs-02
1278               (work in progress), June 2006.
1280    [I-D.ietf-nfsv4-nfsdirect]
1281               Callaghan, B. and T. Talpey, "NFS Direct Data Placement",
1282               draft-ietf-nfsv4-nfsdirect-04 (work in progress),
1283               October 2006.
1287 Williams                  Expires March 3, 2008                [Page 23]
1289 Internet-Draft             On Channel Bindings               August 2007
1292    [I-D.ietf-sasl-gs2]
1293               Josefsson, S., "Using GSS-API Mechanisms in SASL: The GS2
1294               Mechanism Family", draft-ietf-sasl-gs2-06 (work in
1295               progress), February 2007.
1297    [I-D.williams-sshv2-channel-bindings]
1298               Williams, N., "Channel Bindings for Secure Shell
1299               Channels", draft-williams-sshv2-channel-bindings-00 (work
1300               in progress), July 2006.
1302    [Lampson91]
1303               Lampson, B., Abadi, M., Burrows, M., and E. Wobber,
1304               "Authentication in Distributed Systems: Theory and
1305               Practive", October 1991.
1307    [RFC1964]  Linn, J., "The Kerberos Version 5 GSS-API Mechanism",
1308               RFC 1964, June 1996.
1310    [RFC2401]  Kent, S. and R. Atkinson, "Security Architecture for the
1311               Internet Protocol", RFC 2401, November 1998.
1313    [RFC2743]  Linn, J., "Generic Security Service Application Program
1314               Interface Version 2, Update 1", RFC 2743, January 2000.
1316    [RFC2744]  Wray, J., "Generic Security Service API Version 2 :
1317               C-bindings", RFC 2744, January 2000.
1319    [RFC2817]  Khare, R. and S. Lawrence, "Upgrading to TLS Within
1320               HTTP/1.1", RFC 2817, May 2000.
1322    [RFC2818]  Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.
1324    [RFC3530]  Shepler, S., Callaghan, B., Robinson, D., Thurlow, R.,
1325               Beame, C., Eisler, M., and D. Noveck, "Network File System
1326               (NFS) version 4 Protocol", RFC 3530, April 2003.
1328    [RFC3720]  Satran, J., Meth, K., Sapuntzakis, C., Chadalapaka, M.,
1329               and E. Zeidner, "Internet Small Computer Systems Interface
1330               (iSCSI)", RFC 3720, April 2004.
1332    [RFC3748]  Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
1333               Levkowetz, "Extensible Authentication Protocol (EAP)",
1334               RFC 3748, June 2004.
1336    [RFC4251]  Ylonen, T. and C. Lonvick, "The Secure Shell (SSH)
1337               Protocol Architecture", RFC 4251, January 2006.
1339    [RFC4301]  Kent, S. and K. Seo, "Security Architecture for the
1343 Williams                  Expires March 3, 2008                [Page 24]
1345 Internet-Draft             On Channel Bindings               August 2007
1348               Internet Protocol", RFC 4301, December 2005.
1350    [RFC4302]  Kent, S., "IP Authentication Header", RFC 4302,
1351               December 2005.
1353    [RFC4303]  Kent, S., "IP Encapsulating Security Payload (ESP)",
1354               RFC 4303, December 2005.
1356    [RFC4346]  Dierks, T. and E. Rescorla, "The Transport Layer Security
1357               (TLS) Protocol Version 1.1", RFC 4346, April 2006.
1359    [RFC4422]  Melnikov, A. and K. Zeilenga, "Simple Authentication and
1360               Security Layer (SASL)", RFC 4422, June 2006.
1362    [RFC4462]  Hutzelman, J., Salowey, J., Galbraith, J., and V. Welch,
1363               "Generic Security Service Application Program Interface
1364               (GSS-API) Authentication and Key Exchange for the Secure
1365               Shell (SSH) Protocol", RFC 4462, May 2006.
1399 Williams                  Expires March 3, 2008                [Page 25]
1401 Internet-Draft             On Channel Bindings               August 2007
1404 Appendix A.  Acknowledgments
1406    Thanks to Mike Eisler for his work on the Channel Conjunction
1407    Mechanism I-D and for bringing the problem to a head, Sam Hartman for
1408    pointing out that channel binding provide a general solution to the
1409    channel binding problem, Jeff Altman for his suggestion of using the
1410    TLS finished messages as the TLS channel bindings, Bill Sommerfeld,
1411    Radia Perlman, Simon Josefsson, Joe Salowey, Eric Rescorla, Michael
1412    Richardson, Bernard Aboba, Tom Petch, Mark Brown and many others.
1455 Williams                  Expires March 3, 2008                [Page 26]
1457 Internet-Draft             On Channel Bindings               August 2007
1460 Author's Address
1462    Nicolas Williams
1463    Sun Microsystems
1464    5300 Riata Trace Ct
1465    Austin, TX  78727
1466    US
1468    Email: Nicolas.Williams@sun.com
1511 Williams                  Expires March 3, 2008                [Page 27]
1513 Internet-Draft             On Channel Bindings               August 2007
1516 Full Copyright Statement
1518    Copyright (C) The IETF Trust (2007).
1520    This document is subject to the rights, licenses and restrictions
1521    contained in BCP 78, and except as set forth therein, the authors
1522    retain all their rights.
1524    This document and the information contained herein are provided on an
1525    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1526    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
1527    THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
1528    OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
1529    THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1530    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1533 Intellectual Property
1535    The IETF takes no position regarding the validity or scope of any
1536    Intellectual Property Rights or other rights that might be claimed to
1537    pertain to the implementation or use of the technology described in
1538    this document or the extent to which any license under such rights
1539    might or might not be available; nor does it represent that it has
1540    made any independent effort to identify any such rights.  Information
1541    on the procedures with respect to rights in RFC documents can be
1542    found in BCP 78 and BCP 79.
1544    Copies of IPR disclosures made to the IETF Secretariat and any
1545    assurances of licenses to be made available, or the result of an
1546    attempt made to obtain a general license or permission for the use of
1547    such proprietary rights by implementers or users of this
1548    specification can be obtained from the IETF on-line IPR repository at
1549    http://www.ietf.org/ipr.
1551    The IETF invites any interested party to bring to its attention any
1552    copyrights, patents or patent applications, or other proprietary
1553    rights that may cover technology that may be required to implement
1554    this standard.  Please address the information to the IETF at
1555    ietf-ipr@ietf.org.
1558 Acknowledgment
1560    Funding for the RFC Editor function is provided by the IETF
1561    Administrative Support Activity (IASA).
1567 Williams                  Expires March 3, 2008                [Page 28]