The channel binding type defined in this document is constructed so that disclosure of the channel binding data does not leak secret information about the TLS channel and does not affect the security of the TLS channel.
The derived data
MUST NOT be used for any purpose other than channel bindings as described in [
RFC 5056]. In particular, implementations
MUST NOT use channel binding as a secret key to protect privileged information.
The Security Considerations sections of [
RFC 5056], [
RFC 5705], and [
RFC 8446] apply to this document.
The definition of channel bindings in [
RFC 5056] defines the concept of a "unique" channel binding as being one that is unique to the channel endpoints and unique over time, that is, a value that is unique to a specific instance of the lower-layer security protocol. When TLS is the lower-layer security protocol, as for the channel binding type defined in this document, this concept of uniqueness corresponds to uniquely identifying the specific TLS connection.
However, a stronger form of uniqueness is possible, which would entail uniquely identifying not just the lower-layer protocol but also the upper-layer application or authentication protocol that is consuming the channel binding. The distinction is relevant only when there are multiple instances of an authentication protocol, or multiple distinct authentication protocols, that run atop the same lower-layer protocol. Such a situation is rare; most consumers of channel bindings establish an instance of the lower-layer secure protocol, run a single application or authentication protocol as the upper-layer protocol, then terminate both upper and lower-layer protocols. In this situation, the stronger form of uniqueness is trivially achieved, given that the channel binding value is unique in the sense of [
RFC 5056].
The channel binding type defined by this document provides only the weaker type of uniqueness, as per [
RFC 5056]; it does not achieve the stronger uniqueness per the upper-layer protocol instance described above. This stronger form of uniqueness would be useful in that it provides protection against cross-protocol attacks for the multiple authentication protocols running over the same instance of the lower-layer protocol, and it provides protection against replay attacks that seek to replay a message from one instance of an authentication protocol in a different instance of the same authentication protocol, again running over the same instance of the lower-layer protocol. Both of these properties are highly desirable when performing formal analysis of upper-layer protocols; if these properties are not provided, such formal analysis is essentially impossible. In some cases, one or both of these properties may already be provided by specific upper-layer protocols, but that is dependent on the mechanism(s) in question, and formal analysis requires that the property is provided in a generic manner across all potential upper-layer protocols that exist or might exist in the future.
Accordingly, applications that make use of the channel binding type defined in this document
MUST NOT use the channel binding for more than one authentication mechanism instance on a given TLS connection. Such applications
MUST immediately close the TLS connection after the conclusion of the upper-layer protocol.
While it is possible to use this channel binding mechanism with TLS versions below 1.3, extra precaution must be taken to ensure that the chosen cipher suites always result in unique master secrets. For more information, see [
RFC 7627] and the Security Considerations section of [
RFC 5705] (TLS 1.3 always provides unique master secrets, as discussed in
Appendix D of
RFC 8446).
When TLS renegotiation is enabled on a connection, the "tls-exporter" channel binding type is not defined for that connection, and implementations
MUST NOT support it.
In general, users wishing to take advantage of channel binding should upgrade to TLS 1.3 or later.