Network Working Group                                      R. Seggelmann
Internet-Draft                                                 M. Tuexen
Intended status: Standards Track      Muenster Univ. of Applied Sciences
Expires: January 7, 2010                                     M. Williams
                                                            July 6, 2009


         Datagram Transport Layer Security Heartbeat Extension
               draft-seggelmann-tls-dtls-heartbeat-00.txt

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on January 7, 2010.

Copyright Notice

   Copyright (c) 2009 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 in effect on the date of
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

Abstract

   This document describes the Heartbeat Extension for the Datagram
   Transport Layer Security (DTLS) protocol.



Seggelmann, et al.       Expires January 7, 2010                [Page 1]


Internet-Draft               DTLS Heartbeat                    July 2009


   The Heartbeat Extension provides a new protocol for DTLS allowing the
   usage of keep-alive functionality without performing a renegotiation.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Heartbeat Hello Extension . . . . . . . . . . . . . . . . . . . 3
   3.  Heartbeat Protocol  . . . . . . . . . . . . . . . . . . . . . . 4
   4.  Heartbeat Request and Response Messages . . . . . . . . . . . . 4
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4
   6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 5
   7.  Normative References  . . . . . . . . . . . . . . . . . . . . . 5
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 5





































Seggelmann, et al.       Expires January 7, 2010                [Page 2]


Internet-Draft               DTLS Heartbeat                    July 2009


1.  Introduction

1.1.  Overview

   This document describes the Heartbeat Extension for the Datagram
   Transport Layer Security (DTLS) protocol, as defined in [RFC4347].

   DTLS is designed to secure traffic running on top of unreliable
   transport protocols.  Such protocols have usually no session
   management.  The only mechanism available at the DTLS layer to figure
   out if a peer is still alive is performing a costly renegotiation.
   If the application uses unidirectional traffic there is no other way.

   The Heartbeat Extension for DTLS as described in this document
   overcomes this limitation.  The user of DTLS can use the new
   HeartbeatRequest message which has to be answered by the peer with a
   HeartbeartResponse immediately.

1.2.  Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].


2.  Heartbeat Hello Extension

   The support of DTLS Heartbeats is indicated with Hello Extensions.  A
   peer can not only indicate that its implementation supports
   Heartbeats, it can also choose whether it is willed to receive and
   respond or only to send them.  This decision can be changed with
   every renegotiation.  HeartbeatRequests MUST NOT be sent to a peer
   denying acceptance.

   enum {
      peer_allowed_to_send(1),
      peer_not_allowed_to_send(2),
      (255)
   } HeartbeatMode;

   struct {
      HeartbeatMode mode;
   } HeartbeatExtension;








Seggelmann, et al.       Expires January 7, 2010                [Page 3]


Internet-Draft               DTLS Heartbeat                    July 2009


3.  Heartbeat Protocol

   The Heartbeat protocol is a new protocol on top of the Record Layer.
   The protocol itself consists of two message types, HeartbeatRequest
   and HeartbeatResponse.

   enum {
      heartbeat_request(1),
      heartbeat_response(2),
      (255)
   } HeartbeatMessageType;

   Like the ChangeCipherSpec, a HeartbeatRequest can arrive at any time
   during the connection.  Whenever a HeartbeatRequest is received, it
   has to be answered with the HeartbeatResponse message immediately.

   However, a HeartbeatRequest SHOULD NOT be sent during handshakes and
   there MUST NOT be more than one request in flight at a time.

   HeartbeatRequest messages MUST be retransmitted using the simple
   timeout and retransmission scheme DTLS uses for flights.  In
   particular, after a number of retransmissions without receiving a
   HeartbeatResponse message having the expected payload the DTLS
   connection SHOULD be terminated.  The threshold used for this SHOULD
   be the same as for DTLS handshake messages.


4.  Heartbeat Request and Response Messages

   The Heartbeat protocol messages consist of their type and an
   arbitrary payload.

   struct {
      HeartbeatMessageType msg_type;
      opaque payload<0..2^14-3>;
   } HeartbeatMessage;

   If a HeartbeatRequest message is received, a HeartbeatResponse
   message MUST be sent carrying an exact copy of the payload of the
   HeartbeatRequest.

   If a received HeartbeatResponse message does not contain the expected
   payload the message MUST be discarded silently.


5.  IANA Considerations

   The extension, content and message types have to be assigned by IANA.



Seggelmann, et al.       Expires January 7, 2010                [Page 4]


Internet-Draft               DTLS Heartbeat                    July 2009


6.  Security Considerations

   This document does not add any additional security considerations in
   addition to the ones given in [RFC4347].


7.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC4347]  Rescorla, E. and N. Modadugu, "Datagram Transport Layer
              Security", RFC 4347, April 2006.


Authors' Addresses

   Robin Seggelmann
   Muenster Univ. of Applied Sciences
   Stegerwaldstr. 39
   48565 Steinfurt
   Germany

   Email: seggelmann@fh-muenster.de


   Michael Tuexen
   Muenster Univ. of Applied Sciences
   Stegerwaldstr. 39
   48565 Steinfurt
   Germany

   Email: tuexen@fh-muenster.de


   Michael Williams

   Email: michael.glenn.williams@gmail.com













Seggelmann, et al.       Expires January 7, 2010                [Page 5]