Internet Engineering Task Force (IETF) R. Seggelmann
Request for Comments: 6520 M. Tuexen
Category: Standards Track Muenster Univ. of Appl. Sciences
ISSN: 2070-1721 M. Williams
GWhiz Arts & Sciences
February 2012
Transport Layer Security (TLS) and
Datagram Transport Layer Security (DTLS) Heartbeat Extension
Abstract
This document describes the Heartbeat Extension for the Transport
Layer Security (TLS) and Datagram Transport Layer Security (DTLS)
protocols.
The Heartbeat Extension provides a new protocol for TLS/DTLS allowing
the usage of keep-alive functionality without performing a
renegotiation and a basis for path MTU (PMTU) discovery for DTLS.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc6520.
Seggelmann, et al. Standards Track [Page 1]
RFC 6520 TLS/DTLS Heartbeat Extension February 2012
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Heartbeat Hello Extension . . . . . . . . . . . . . . . . . . . 3
3. Heartbeat Protocol . . . . . . . . . . . . . . . . . . . . . . 4
4. Heartbeat Request and Response Messages . . . . . . . . . . . . 5
5. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
7. Security Considerations . . . . . . . . . . . . . . . . . . . . 7
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 7
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction
1.1. Overview
This document describes the Heartbeat Extension for the Transport
Layer Security (TLS) and Datagram Transport Layer Security (DTLS)
protocols, as defined in [RFC5246] and [RFC6347] and their
adaptations to specific transport protocols described in [RFC3436],
[RFC5238], and [RFC6083].
DTLS is designed to secure traffic running on top of unreliable
transport protocols. Usually, such protocols have no session
management. The only mechanism available at the DTLS layer to figure
out if a peer is still alive is a costly renegotiation, particularly
when the application uses unidirectional traffic. Furthermore, DTLS
needs to perform path MTU (PMTU) discovery but has no specific
message type to realize it without affecting the transfer of user
messages.
Seggelmann, et al. Standards Track [Page 2]
RFC 6520 TLS/DTLS Heartbeat Extension February 2012
TLS is based on reliable protocols, but there is not necessarily a
feature available to keep the connection alive without continuous
data transfer.
The Heartbeat Extension as described in this document overcomes these
limitations. The user can use the new HeartbeatRequest message,
which has to be answered by the peer with a HeartbeartResponse
immediately. To perform PMTU discovery, HeartbeatRequest messages
containing padding can be used as probe packets, as described in
[RFC4821].
1.2. Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this