Internet DRAFT - draft-mortensen-dots-over-udp
draft-mortensen-dots-over-udp
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,
<http://www.rfc-editor.org/info/rfc768>.
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,
<http://www.rfc-editor.org/info/rfc2119>.
[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, <http://www.rfc-editor.org/info/rfc5077>.
[RFC5405] Eggert, L. and G. Fairhurst, "Unicast UDP Usage Guidelines
for Application Designers", BCP 145, RFC 5405, DOI
10.17487/RFC5405, November 2008,
<http://www.rfc-editor.org/info/rfc5405>.
[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347,
January 2012, <http://www.rfc-editor.org/info/rfc6347>.
[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,
<http://www.rfc-editor.org/info/rfc6520>.
[RFC7030] Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed.,
"Enrollment over Secure Transport", RFC 7030, DOI
10.17487/RFC7030, October 2013,
<http://www.rfc-editor.org/info/rfc7030>.
[RFC7540] Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext
Transfer Protocol Version 2 (HTTP/2)", RFC 7540, DOI
10.17487/RFC7540, May 2015,
<http://www.rfc-editor.org/info/rfc7540>.
[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,
<http://www.rfc-editor.org/info/rfc7252>.
[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, <https://curvecp.org/>.
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]