DOTS | A. Mortensen |
Internet-Draft | Arbor Networks, Inc. |
Intended status: Standards Track | October 31, 2016 |
Expires: May 4, 2017 |
DDoS Open Threat Signaling over UDP
draft-mortensen-dots-over-udp-00
This document describes the use of the Distributed-Denial-of-Service (DDoS) Open Threat Signaling (DOTS) protocol over UDP [RFC0768].
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on May 4, 2017.
Copyright (c) 2016 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.
The DOTS protocol described in [I-D.teague-dots-protocol] defines the protocol message format and message exchanges, but purposely divides the protocol from the transport in order to make DOTS adaptable to arbitrary transports.
This division is meant to simplify the process of bringing DOTS to modern secure transports like QUIC [I-D.hamilton-quic-transport-protocol] and the experimental CurveCP [CURVECP], as well as application-layer protocols like CoAP [RFC7252] and HTTP/2 [RFC7540].
This document defines the most basic option for a DOTS protocol transport, implementing the protocol over UDP, using DTLS1.3 [I-D.rescorla-tls-dtls13] to secure the signaling session.
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].
Terms used to define entity relationships, transmitted data, and methods of communication are drawn from the terminology defined in [I-D.ietf-dots-requirements].
The architecture in which the DOTS protocol operates is assumed to be derived from the architectural components and concepts described in [I-D.ietf-dots-architecture].
This document uses the signal channel message exchanges and message serialization defined in [I-D.teague-dots-protocol], except as specified below.
DOTS server address discovery is implementation-specific, but anticipates methods such as direct configuration (i.e., DOTS server address is manually provided to the DOTS client) and DNS SRV records will be the most common.
A key challenge to deploying DOTS unsurprisingly is provisioning DOTS clients, including the distribution of keying material to DOTS clients to make possible the required mutual authentication of DOTS agents. DOTS over UDP relies on Enrollment over Secure Transport (EST) [RFC7030] to overcome this. EST defines a method of certificate enrollment by which domains operating DOTS servers may provision DOTS clients with all necessary cryptographic keying material, including a private key and certificate with which to authenticate itself.
This document does not specify which EST mechanism the DOTS client uses to achieve initial enrollment. Each mechanism has certain advantages balanced by obvious drawbacks. For example, HTTP-based client authentication for initial enrollment is by far the simplest, allowing DOTS clients to enroll with just a username and one-time-use password, but is also by far the most easily abused. Client authentication using a previously installed certificate improves on HTTP-based client authentication, but requires either a manufacturer-installed certificate, or yet another mechanism to install the client certificate. The EST mechanism for initial enrollment is therefore left to the operators of the DOTS deployment.
[I-D.teague-dots-protocol] defines a DOTS signal channel initialization message exchange in which the DOTS client initiates contact with the DOTS server by connecting to the DOTS server on port 4646, but leaves instantiation of the signal channel’s security context up to DOTS transport documents.
DOTS over UDP uses DTLS1.3 [I-D.rescorla-tls-dtls13] to secure the signal channel and provide the requisite confidentiality, integrity, and authenticity for messages exchanged between DOTS agents [I-D.ietf-dots-requirements]. Signal channel initialization assumes the presence of a DOTS client certificate and DOTS server certificate obtained through EST as described in Section 3.1 above.
As described in [I-D.teague-dots-protocol], the DOTS client begins creation of the security context for the the signaling session after successfully connecting to the DOTS server on port 4646. The DOTS over UDP client makes that connection over UDP.
Once connected, DOTS over UDP clients SHOULD attempt session resumption through use of pre-shared keys (PSKs) created during previous signaling sessions with the DOTS server. Session resumption using PSKs from a previous DTLS session is described in [I-D.ietf-tls-tls13].
If a DOTS client does not have a PSK from a previous signaling session, or if the PSK is expired or otherwise invalid, the DOTS client will fallback to a full DTLS1.3 handshake, using the private key and certificates obtained through EST at the time of client provisioning. After performing a full DTLS handshake, the DOTS server SHOULD send a NewSessionTicket message to the client after receiving the client’s Finished message, as described in [I-D.ietf-tls-tls13]. The DOTS client SHOULD cache the PSK identity and use it for future session resumption.
Once the DTLS handshake is complete, the DOTS signal channel security context is established, the DOTS over UDP client proceeds to establish the signaling session by sending a channel initiatlization method, as described in [I-D.teague-dots-protocol].
Once the signal channel security context is established through DTLS and the signaling session is active, all messaging proceeds as defined in [I-D.teague-dots-protocol], relying on DTLS to provide the requisite channel security.
DOTS over UDP purposely avoids using DTLS heartbeats [RFC6520] to maintain the signaling session, depending instead on DOTS protocol heartbeats to track signal session health.
DOTS over UDP is subject to any condition triggering DTLS Alert messages as described in [I-D.rescorla-tls-dtls13]. Should the alert lead to connection termination, the DOTS over UDP MAY attempt to reestablish the
DOTS over UDP adopts the data channel as specified in [I-D.teague-dots-protocol] with modification or extension.
DOTS over UDP is subject to the congestion control discussion in [RFC5405].
[I-D.teague-dots-protocol] describes general DOTS protocol security considerations. Additionally, all security considerations in [I-D.rescorla-tls-dtls13] apply to DOTS over UDP.
When provisioning DOTS clients using EST, all considerations in [RFC7030] also apply to DOTS over UDP.
Nik Teague Verisign, Inc. nteague@verisign.com
[RFC7252] | Shelby, Z., Hartke, K. and C. Bormann, "The Constrained Application Protocol (CoAP)", RFC 7252, DOI 10.17487/RFC7252, June 2014. |
[I-D.hamilton-quic-transport-protocol] | Hamilton, R., Iyengar, J., Swett, I. and A. Wilk, "QUIC: A UDP-Based Multiplexed and Secure Transport", Internet-Draft draft-hamilton-quic-transport-protocol-00, July 2016. |
[CURVECP] | Bernstein, D., "CurveCP: Usable security for the Internet", 2014. |