<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.0.27 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC0768 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0768.xml">
<!ENTITY RFC0793 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0793.xml">
<!ENTITY RFC1191 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.1191.xml">
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2616 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2616.xml">
<!ENTITY RFC3917 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3917.xml">
<!ENTITY RFC5487 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5487.xml">
<!ENTITY RFC5489 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5489.xml">
<!ENTITY RFC6347 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
<!ENTITY RFC6520 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6520.xml">
<!ENTITY I-D.ietf-netconf-restconf SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-netconf-restconf.xml">
<!ENTITY I-D.ietf-tls-tls13 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-tls13.xml">
<!ENTITY I-D.teague-open-threat-signaling SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.teague-open-threat-signaling.xml">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="no"?>
<?rfc symrefs="yes"?>

<rfc docName="draft-mortensen-threat-signaling-requirements-00" category="info">

  <front>
    <title>DDoS Open Threat Signaling Requirements</title>

    <author initials="A." surname="Mortensen" fullname="Andrew Mortensen">
      <organization>Arbor Networks, Inc.</organization>
      <address>
        <postal>
          <street>2727 S. State St</street>
          <city>Ann Arbor, MI</city>
          <code>48104</code>
          <country>United States</country>
        </postal>
        <email>amortensen@arbor.net</email>
      </address>
    </author>

    <date year="2015" month="July" day="07"/>

    <area>Security</area>
    <workgroup>DOTS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document discusses the requirements for a protocol sufficient for the
goals of the DDoS Open Threat Signaling (DOTS) Working Group.</t>



    </abstract>


  </front>

  <middle>


<section anchor="problems" title="Introduction">

<section anchor="overview" title="Overview">

<t>As DDoS attack scale and frequency continue to grow, a number of cloud
mitigation providers have emerged to offer on-demand traffic scrubbing
servicest. Each service offers its own ad hoc interfaces for subscribers to
request threat handling, leaving subscribers tied to proprietary implementations
that are not portable from service to service. These ad hoc implementations
also severely limit the subset of network elements capable of participating
in any coordinated attack response.</t>

<t>The current lack of a common method to make inter-domain threat handling
requests and share realtime attack telemetry hampers response coordination.
The DOTS Working Group has assigned itself the task of standardizing a protocol
or protocols to address that lack.</t>

<t>The requirements for these protocols are unusually stringent. The data link
between signaling elements may be saturated with attack traffic&mdash;likely inbound,
but outbound congestion must also be considered&mdash;and the signaling elements
cannot rely an the availability of an out-of-band channel to report the
attack and request threat handling. High packet loss rates are to be
expected, rendering every round trip uncertain.</t>

<t>As such, the protocol which DOTS develops or adapts must
have certain characteristics tending to increase the probability of
signal delivery between endpoints. At the same time, the protocol
must be rich enough to support not only simple calls for aid
and limited attack telemetry, but also extensibility such that DOTS is
adaptable to future needs.</t>

</section>
<section anchor="conventions" title="Conventions">

<t>The key words &ldquo;MUST&rdquo;, &ldquo;MUST NOT&rdquo;, &ldquo;REQUIRED&rdquo;, &ldquo;SHALL&rdquo;, &ldquo;SHALL NOT&rdquo;,
&ldquo;SHOULD&rdquo;, &ldquo;SHOULD NOT&rdquo;, &ldquo;RECOMMENDED&rdquo;, &ldquo;MAY&rdquo;, and &ldquo;OPTIONAL&rdquo; in this
document are to be interpreted as described in <xref target="RFC2119"/>.</t>

</section>
</section>
<section anchor="terminology" title="Terminology">

<t>The following terms are meant to help define relationships between elements
as well as the data they exchange:</t>

<section anchor="attack-telemetry" title="Attack Telemetry">

<t>Attack Telemetry is a catch-all term for collected network traffic
characteristics defining the nature of a DDoS attack, and which
contributes to the detection, classification, traceback, and
mitigation of the attack.</t>

<t>In addition to the properties defining IP Traffic Flow as described
by <xref target="RFC3917"/>, the Attack Telemetry may include information like:</t>

<t><list style="symbols">
  <t>traffic rates from attacker sources in packets and bytes per second,</t>
  <t>detected attack class (e.g., reflection/amplification, resource
exhaustion, etc.),</t>
  <t>attack duration</t>
</list></t>

<t>as well as any other information deemed valuable for attack response by the
Working Group.</t>

</section>
<section anchor="configuration-channel" title="Configuration Channel">

<t>The Configuration Channel is a RESTful <xref target="REST"/> interface to
establish a common understanding of signal and threat handling
between the Signaler and Signal Handler. The RESTful interface
enables local operator control over DOTS elements.</t>

</section>
<section anchor="signal-channel" title="Signal Channel">

<t>The Signal Channel refers to the bidirectional communication layer
established between the Signaler and the Signal Handler, over which
Signals and Signal Responses are transmitted.</t>

</section>
<section anchor="signal" title="Signal">

<t>A DOTS Signal is a message sent from a Signaler to a Signal Handler.
The Signal carries information necessary to identify the Signaler
and communicate Signaler intent, attack insight to the Signal Handler,
and indicators useful for measuring Signal Channel Health.</t>

<t>A Signal permits a Signaler to r
The Signal is also the vehicle through which a Signaler requests
threat handling.</t>

</section>
<section anchor="signal-response" title="Signal Response">
<t>A DOTS Signal Response is a message sent from Signal Handler to
a Signaler. A Signal Response is variation of a Signal, in that
it includes data identifying the originating Signal Handler and
indicators of Signal Channel Health. The Signal Response will
also include information describing the status of any ongoing
threat handling undertaken at a Supplicant&rsquo;s request.</t>

<t>Note that Signal Responses are sent without solicitation by a
Signaler. That is, a Signal Handler sends Signal Responses to
an established Signaler regardless of whether the Signal
Handler has received a Signal message. (See Signal Channel
Health below.)</t>

</section>
<section anchor="signaler" title="Signaler">

<t>The DOTS endpoint transmitting a Signal to a Signal Handler in
order to communicate Attack Telemetry and request or withdraw a
request for threat handling. When a Signaler requests threat
handling from the Signal Handler, the Signaler is called a
Supplicant.</t>

<t>A Signaler MAY establish Signal Channels with multiple
Signal Handlers.</t>

</section>
<section anchor="supplicant" title="Supplicant">

<t>A DOTS Supplicant is a Signaler requesting threat handling from
the Signal Handler. The Supplicant is often downstream of the
attack from the Signal Handler, so the Supplicant will often be
requesting attack response closer to the sources of attack.</t>

</section>
<section anchor="signal-handler" title="Signal Handler">

<t>The DOTS endpoint responsible for processing and responding to
Signals received from a Signaler. A Signal Handler may or may
not be in the same domain as the Signaler. When a Supplicant
requests threat handling, the Signal Handler is responsible for
communicating that request to the entities tasked with the attack
response. The attack response itself is out of scope for DOTS,
but the Signal Handler should transmit Signal Responses with
threat handling feedback to the Supplicant.</t>

<t>Note that Signal Handler and Threat Handler are often but not
always synonymous.</t>

</section>
<section anchor="signal-relay" title="Signal Relay">

<t>A DOTS node acting as a Signal Handler and a Signaler. In the
role of a Signal Handler, a Signal Relay receives Signals from
a downstream Signaler, and then acts as a Signaler when relaying
the Signal to an upstream Signal Handler. A Signal Relay also
relays any responses from upstream to the originating Signaler.</t>

</section>
<section anchor="threat-handler" title="Threat Handler">

<t>The Threat Handler is the entity or collection of entities tasked
with handling an attack at the request of a Supplicant. The
Threat Handler and Signal Handler may be one and the same, but
are not required to be.</t>

</section>
</section>
<section anchor="protocol" title="Protocol">

<t>This section examines requirements for successful threat signaling.</t>

<t>The Working Group has thus far focused attention on adapting IPFIX
as a possible vehicle for the DOTS protocol. The expectation as
described in <xref target="I-D.teague-open-threat-signaling"/> is that IPFIX&rsquo;s
templating system will provide DOTS the necessary flexibility and
extensibility, while the wide availability of IPFIX will lower the
bar for adoption among vendors. The IANA registry of IPFIX
Informational Entities <xref target="IANA-IPFIX-IE"></xref> similarly increases the appeal
of IPFIX by eliminating the need to define a variety of field types.</t>

<t>However, the ultimate selection of IPFIX as the foundation of the
DOTS protocol is by no means certain at this stage. It is our hope
that by reaching a common understanding of protocol requirements
the Working Group will be able to make rapid progress defining the
protocol itself.</t>

<section anchor="protocol-operation" title="Operation">

<t>One of the unusual aspects of DOTS is that it depends not so much
on protocol reliability but on protocol resiliency. Signal
lossiness, to a greater or lesser degree, is to be expected, and
the protocol must continue to operate regardless.</t>

<t>DOTS should be able to absorb the loss of multiple consecutive
Signals or Signal Responses and still operate nominally, relying on
measures like redundant message transmission to increase the
likelihood of successful delivery. By the same token, the protocol
demands the DOTS nodes share a common understanding of a failed
signal channel.</t>

<t>This section discusses the protocol characteristics required to
achieve the necessary resiliency, while also retaining the
signal effectiveness sought by the Working Group.</t>

<section anchor="endpoint-communication" title="Endpoint Communication">

<t>A synchronous message-oriented protocol is ill-suited for the
conditions under which DOTS is expected to operate. Such a protocol
would require a level of reliable message delivery in either
direction that we cannot depend on for DOTS.</t>

<t>In contrast, an asynchronous message-oriented protocol fits DOTS
requirements, offering resiliency even when dealing with a high level
of signal lossiness. As long as the protocol includes indicators
showing the time or sequence of the last message received by the
peer, each endpoint can continue signaling, and incorporate the
most recent data from its peer when messages arrive.</t>

<t>In practice, the Signaler sends messages to the Signal Handler,
regardless of responses from Signal Handler, and the Signal Handler
does the same in the opposite direction. Until an endpoint detects
fail
health
continue to arrive at each endpoint, DOTS is operational.</t>

<section anchor="signal-channel-health" title="Signal Channel Health">

<t>Monitoring signal delivery success rates is vital to normal DOTS
operations. The protocol SHOULD include a way for each endpoint
to detect when their respective peers last received a message.
This could be achieved through inclusion of timestamps or sequence
numbers in the signal messages.</t>

<t>With this method for detecting signal lossiness in place, any
received DOTS message acts as a signal heartbeat, meaning no
additional keep-alive messages are needed.</t>

<t>Should too much time elapse since an endpoint last received a
message from its peer, the endpoint SHOULD consider the peer
unresponsive, and in some way alert the operator to the
loss of signal. Similarly, if messages continue to arrive from
the peer, but the timestamp or sequence number do not update
in spite of repeated message transmissions to the peer, the
signal MUST be considered degraded, and an appropriate alert
should be delivered to the operator.</t>

<t>The method of alerting is out of scope. The endpoints may agree
upon the signal failure time-to-live using the configuration channel.</t>

</section>
</section>
<section anchor="message-frequency" title="Message Frequency">

<t>TODO</t>

</section>
<section anchor="redundant-signal-channels" title="Redundant Signal Channels">

<t>A Signaler may wish to establish Signal Channels with multiple
Signal Handlers in the same domain to increase the likelihood
that a Supplicant request for threat handling will be honored.</t>

</section>
<section anchor="redundant-transmission" title="Redundant Transmission">

<t>The likelihood of packet loss due to congestion caused by, for
example, a volumetric attack diminishes the resiliency of the
protocol. A low-cost method to increase the probability of
successful message delivery is through redundant message
transmission at send time.</t>

</section>
</section>
<section anchor="transport" title="Transport">

<t>As noted above, the DOTS signal protocol does not require
reliable, in-order delivery to be effective. The protocol may
indeed become less reliable in the attempt to ensure all signal
messages are delivered in the order sent, as pathological network
conditions lead to missed delivery acknowledgments from the peer.
In the worst case, none of the transport acknowledgements reach
the signaler, resulting in spurious dead peer detection and
subsequent connection teardown.</t>

<t>As such, it is RECOMMENDED that the DOTS protocol use
connectionless transports like the User Datagram Protocol (UDP)
<xref target="RFC0768"/>. While UDP imposes some additional work on the protocol,
the minimal overhead for transmission aligns with DOTS requirements
for protocol resiliency.</t>

<section anchor="congestion-control-considerations" title="Congestion Control Considerations">

<t>A DOTS signal channel will not contribute to link congestion,
as the protocol&rsquo;s transmission rate will be negligible
regardless of network conditions.</t>

</section>
<section anchor="alternative-transport-considerations" title="Alternative Transport Considerations">

<t>Where additional constraints imposed by middlebox limitations,
overly aggressive filtering, or network policy disqualify UDP,
TCP MAY be used for the Signal Channel. However, TCP remains a
poor choice for inter-domain signaling over a saturated link
for the reasons described above, and consideration should be
given to using a Signal Relay between the Signaler and the
remote domain&rsquo;s Signal Handler.</t>

</section>
<section anchor="message-size" title="Message Size">

<t>DOTS protocol messages MUST be smaller than the path maximum
transmission unit (MTU) to avoid fragmentation. In the lossy
network conditions under which DOTS is expected to operate,
fragmentation unnecessarily increases the likelihood of message
delivery failure, as a single lost fragment will cause the
entire message to be discarded.</t>

</section>
<section anchor="transport-security" title="Transport Security">

<t>The DOTS Working Group charter describes the need to ensure
&ldquo;appropriate regard for authentication, authorization, integrity,
and authenticity&rdquo; in any developed or adapted protocols.</t>

<section anchor="dtls" title="DTLS">

<t>On the surface, Datagram Transport Layer Security <xref target="RFC6347"/>
would seem to be the obvious choice to meet those requirements.
However, the conventional three-way TLS handshake using public-key
infrastructure incurs significant overhead. The elevated
likelihood of handshake failure due to saturated links or
otherwise hostile network conditions may be unacceptable for DOTS.</t>

<t>Some of this overhead may be eliminated using preshared keys (e.g.,
<xref target="RFC5487"/> and <xref target="RFC5489"/>), but the round-trip overhead of the
three-way handshake is less easily overcome. The current drafts
for TLS 1.3 <xref target="I-D.ietf-tls-tls13"/> make some headway in this regard,
introducing a 1-RTT TLS handshake. This is a vast improvement for DOTS
operations, but the timeline for standardization and vendor
implementation is uncertain.</t>

<t>Regardless of TLS handshake innovation, DTLS by itself lacks a way
to detect dead peers. The DTLS Heartbeat Extension <xref target="RFC6520"/>
resolves this, but represents an another messaging layer likely to
be affected by network lossiness.  In addition, the DTLS Heartbeat
extension requires immediate responses to heartbeat requests, with
the requester retransmitting up to the limit defined in <xref target="RFC6347"/>.
The DTLS Heartbeat Extension indicates a DTLS session SHOULD be
terminated if the peer does not respond after the retransmission
limit is reached. Given the unpredictability of message delivery
in the typical DOTS scenario, this rigidity only adds to concerns
about the aptness of DLTS for DOTS transport security.</t>

</section>
<section anchor="continued-evaluation" title="Continued Evaluation">

<t>The DOTS Working Group will need to evaluate available options
for meeting the goal of providing protocol confidentiality,
integrity, and authenticity. Guidance should be sought from
the TLS Working Group as appropriate.</t>

<t>Guidance and insight may also be found in the DTLS in Constrained
Environments <xref target="DICE"/> Working Group. The DICE WG is currently
evaluating and developing techniques for transport security in network
conditions that may be similar to those in which DOTS will need to work.</t>

</section>
</section>
</section>
<section anchor="message-data" title="Message Data">

<t>As we note above, the Working Group has thus far focused on the
suitability of IPFIX as the DOTS signaling protocol. This section
makes no judgment in that regard.</t>

<section anchor="signal-1" title="Signal">

<t>In addition to the requirements laid out in the Protocol Operation,
section the Signal MUST be able to:</t>

<t><list style="symbols">
  <t>provide such attack telemetry as is available to the signaler,</t>
  <t>permit the signaler to request or withdraw a request for intervention
from the signal receiver,</t>
  <t>permit the signaler to request refinement or expansion of the scope of threat
handling performed by the signal receiver,</t>
  <t>allow customization to the extent required to adapt to emerging requirements
or local needs.</t>
</list></t>

</section>
<section anchor="signal-response-1" title="Signal Response">

<t>In addition to the requirements laid out in the Protocol Operation
section, the Signal Response SHOULD deliver feedback to the signaler
from the entity or entities handling a threat on the signaler&rsquo;s behalf.</t>

<t>Feedback would include threat handling status, threat handling scope,
blocked packet and byte counters, and so on.</t>

</section>
</section>
</section>
<section anchor="configuration-channel-1" title="Configuration Channel">

<t>The Configuration Channel would permit local operator control over
threat handling by a Signal Handler.</t>

<t>Configurable features might include:</t>

<t><list style="symbols">
  <t>Signaler address space protection preferences</t>
  <t>Static Black/White lists to apply during threat handling</t>
  <t>UUID assigned to the Signaler by the Signal Handler, which the
Signaler must include in subsequent Signals</t>
  <t>Other information not well-suited to transmission under attack
conditions</t>
</list></t>

<section anchor="configuration-protocol" title="Configuration Protocol">

<t>An obvious choice for the configuration protocol is a RESTful interface
over a secure HTTP <xref target="RFC2616"/> channel. Such interfaces are
well-understood and easily adopted. With configuration as a concern,
<xref target="I-D.ietf-netconf-restconf"/> may be a good fit for DOTS configuration
needs.</t>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>TODO</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>The DOTS Working Group was formed to standardize methods for realtime
inter-domain threat signaling. Any protocols must therefore be capable
of transmitting information over public networks, with consequent
requirements for message integrity, confidentiality, and authenticity.</t>

<t>Transport security and message authenticity are addressed above. In the
event either is compromised, regardless of the method involved, the
security risks exposed include:</t>

<t><list style="symbols">
  <t>attack telemetry forgery</t>
  <t>threat handling request forgery</t>
  <t>Denial of Service (DoS) attacks</t>
</list></t>

<t>In scenarios in which DOTS endpoints are communicating across public
networks, the endpoints are themselves subject to attack. Endpoint
operators SHOULD take steps to restrict access as much as possible to
known valid peers through application of network policy and peer
authentication.</t>

<t>TODO</t>

</section>
<section anchor="acknowledgments" title="Acknowledgments">

<t>Roland Dobbins deserves full credit for suggesting the Signal Relay,
as well as thanks for his insight and his generosity with his time as
we discussed the topics that led to this draft.</t>

<t>Thanks to Larry Huston, Sean O&rsquo;Hara, and David Watson for
discussions and support.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC0768;
&RFC0793;
&RFC1191;
&RFC2119;
&RFC2616;
&RFC3917;
&RFC5487;
&RFC5489;
&RFC6347;
&RFC6520;
&I-D.ietf-netconf-restconf;
&I-D.ietf-tls-tls13;
&I-D.teague-open-threat-signaling;


    </references>

    <references title='Informative References'>

<reference anchor="DICE" target="https://datatracker.ietf.org/wg/dice/charter/">
  <front>
    <title>DTLS in Constrained Environments</title>
    <author >
      <organization></organization>
    </author>
    <date year="2015" month="July" day="10"/>
  </front>
</reference>
<reference anchor="IANA-IPFIX-IE" target="http://www.iana.org/assignments/ipfix">
  <front>
    <title>IP Flow Information Export (IPFIX) Entities</title>
    <author >
      <organization></organization>
    </author>
    <date year="2015" month="April" day="08"/>
  </front>
</reference>
<reference anchor="REST" target="https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm">
  <front>
    <title>Architectural Styles and the Design of Network-based Software Architectures</title>
    <author initials="R." surname="Fielding" fullname="Roy Fielding">
      <organization>University of California, Irvine</organization>
    </author>
    <date year="2000"/>
  </front>
</reference>


    </references>



  </back>
</rfc>

