DOTS A. Mortensen Internet-Draft Arbor Networks, Inc. Intended status: Standards Track November 16, 2016 Expires: May 20, 2017 DDoS Open Threat Signaling over UDP draft-mortensen-dots-over-udp-01 Abstract This document describes the use of the Distributed-Denial-of-Service (DDoS) Open Threat Signaling (DOTS) protocol over UDP [RFC0768]. Status of This Memo 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 20, 2017. Copyright Notice 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. Mortensen Expires May 20, 2017 [Page 1] Internet-Draft DOTS over UDP November 2016 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Provisioning . . . . . . . . . . . . . . . . . . . . . . 3 3.1.1. DOTS Server Discovery . . . . . . . . . . . . . . . . 3 3.1.2. Keying Material . . . . . . . . . . . . . . . . . . . 3 3.2. Signal Channel . . . . . . . . . . . . . . . . . . . . . 4 3.2.1. Initialization . . . . . . . . . . . . . . . . . . . 4 3.2.2. Messaging . . . . . . . . . . . . . . . . . . . . . . 4 3.3. Data Channel . . . . . . . . . . . . . . . . . . . . . . 5 4. Congestion Control Considerations . . . . . . . . . . . . . . 5 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 5 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 7.1. Normative References . . . . . . . . . . . . . . . . . . 5 7.2. Informative References . . . . . . . . . . . . . . . . . 7 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 7 1. Introduction 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 DTLS [RFC6347] to secure the signaling session. 1.1. Terminology 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]. Mortensen Expires May 20, 2017 [Page 2] Internet-Draft DOTS over UDP November 2016 2. Architecture 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]. 3. Protocol This document uses the signal channel message exchanges and message serialization defined in [I-D.teague-dots-protocol], except as specified below. 3.1. Provisioning 3.1.1. DOTS Server Discovery 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. 3.1.2. Keying Material 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 does not specify the mehod of provisioning keying material, but suggests using 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 has no preference for 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. Mortensen Expires May 20, 2017 [Page 3] Internet-Draft DOTS over UDP November 2016 3.2. Signal Channel 3.2.1. Initialization [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 DTLS [RFC6347] 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 session tickets [RFC5077] 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 DTLS 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 [RFC5077]. 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]. 3.2.2. Messaging Once the signal channel security context is established through DTLS and the signaling session is active, all messaging proceeds as Mortensen Expires May 20, 2017 [Page 4] Internet-Draft DOTS over UDP November 2016 defined in [I-D.teague-dots-protocol], relying on DTLS to provide the requisite channel security. 3.2.2.1. Heartbeats 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. 3.2.2.2. DTLS Alerts DOTS over UDP is subject to any condition triggering DTLS Alert messages as described in [RFC5077]. Should the alert lead to connection termination, the DOTS over UDP MAY attempt to reestablish the signaling session as described in above in Section 3.2.1, with a preference for session resumption using session tickets. 3.3. Data Channel DOTS over UDP adopts the data channel as specified in [I-D.teague-dots-protocol] with modification or extension. 4. Congestion Control Considerations DOTS over UDP is subject to the congestion control discussion in [RFC5405] and [I-D.teague-dots-protocol]. 5. Security Considerations [I-D.teague-dots-protocol] describes general DOTS protocol security considerations. Additionally, all security considerations in [RFC6347] apply to DOTS over UDP. When provisioning DOTS clients using EST, all considerations in [RFC7030] also apply to DOTS over UDP. 6. Contributors Nik Teague Verisign, Inc. nteague@verisign.com 7. References 7.1. Normative References [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, DOI 10.17487/RFC0768, August 1980, . Mortensen Expires May 20, 2017 [Page 5] Internet-Draft DOTS over UDP November 2016 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ RFC2119, March 1997, . [RFC5077] Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, "Transport Layer Security (TLS) Session Resumption without Server-Side State", RFC 5077, DOI 10.17487/RFC5077, January 2008, . [RFC5405] Eggert, L. and G. Fairhurst, "Unicast UDP Usage Guidelines for Application Designers", BCP 145, RFC 5405, DOI 10.17487/RFC5405, November 2008, . [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, January 2012, . [RFC6520] Seggelmann, R., Tuexen, M., and M. Williams, "Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension", RFC 6520, DOI 10.17487/ RFC6520, February 2012, . [RFC7030] Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed., "Enrollment over Secure Transport", RFC 7030, DOI 10.17487/RFC7030, October 2013, . [RFC7540] Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext Transfer Protocol Version 2 (HTTP/2)", RFC 7540, DOI 10.17487/RFC7540, May 2015, . [I-D.ietf-dots-architecture] Mortensen, A., Andreasen, F., Reddy, T., christopher_gray3@cable.comcast.com, c., Compton, R., and N. Teague, "Distributed-Denial-of-Service Open Threat Signaling (DOTS) Architecture", draft-ietf-dots- architecture-01 (work in progress), October 2016. [I-D.ietf-dots-requirements] Mortensen, A., Moskowitz, R., and T. Reddy, "Distributed Denial of Service (DDoS) Open Threat Signaling Requirements", draft-ietf-dots-requirements-03 (work in progress), October 2016. Mortensen Expires May 20, 2017 [Page 6] Internet-Draft DOTS over UDP November 2016 [I-D.ietf-tls-tls13] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", draft-ietf-tls-tls13-18 (work in progress), October 2016. [I-D.teague-dots-protocol] Teague, N. and A. Mortensen, "DDoS Open Threat Signaling Protocol", draft-teague-dots-protocol-00 (work in progress), October 2016. 7.2. Informative References [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", draft- hamilton-quic-transport-protocol-01 (work in progress), October 2016. [CURVECP] Bernstein, D., "CurveCP: Usable security for the Internet", 2014, . Author's Address Andrew Mortensen Arbor Networks, Inc. 2727 S. State St Ann Arbor, MI 48104 United States Email: amortensen@arbor.net Mortensen Expires May 20, 2017 [Page 7]