Return-Path: <shida@agnada.com>
X-Original-To: sip-overload@ietfa.amsl.com
Delivered-To: sip-overload@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix)
 with ESMTP id E1A5C11E819F for <sip-overload@ietfa.amsl.com>;
 Wed, 30 Oct 2013 14:19:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.264
X-Spam-Level: 
X-Spam-Status: No, score=-2.264 tagged_above=-999 required=5
 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, IP_NOT_FRIENDLY=0.334]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com
 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WH6f9FtMMe9z for
 <sip-overload@ietfa.amsl.com>; Wed, 30 Oct 2013 14:19:06 -0700 (PDT)
Received: from gateway14.websitewelcome.com (gateway14.websitewelcome.com
 [69.93.179.25]) by ietfa.amsl.com (Postfix) with ESMTP id 1B80211E826B for
 <sip-overload@ietf.org>; Wed, 30 Oct 2013 14:19:03 -0700 (PDT)
Received: by gateway14.websitewelcome.com (Postfix, from userid 5007) id
 E43F987988C65; Wed, 30 Oct 2013 16:18:52 -0500 (CDT)
Received: from gator4135.hostgator.com (gator4135.hostgator.com
 [192.185.4.147]) by gateway14.websitewelcome.com (Postfix) with ESMTP id
 CB01A87988BFC for <sip-overload@ietf.org>;
 Wed, 30 Oct 2013 16:18:52 -0500 (CDT)
Received: from [98.210.227.187] (port=51320 helo=[192.168.1.25]) by
 gator4135.hostgator.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.80)
 (envelope-from <shida@agnada.com>) id 1VbdAM-0004Ij-Vv;
 Wed, 30 Oct 2013 16:19:03 -0500
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_8C0EBAF7-6FEF-4A5E-8AF3-53D0DDD55E93"
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
From: Shida Schubert <shida@agnada.com>
In-Reply-To: <CAL02cgSMrQTJt=LJg+j7c-9XrX=N9i=14vAvxqkq2KBgPbdHiQ@mail.gmail.com>
Date: Wed, 30 Oct 2013 14:19:02 -0700
Message-Id: <F748D8BE-3C47-4277-8E85-6C4F1F99DC71@agnada.com>
References: <CAL02cgQW3eJg+f0nwEwihJGRgE82o+B0gSx0LJ6vTP1M8F+n5w@mail.gmail.com>
 <CAL02cgSMrQTJt=LJg+j7c-9XrX=N9i=14vAvxqkq2KBgPbdHiQ@mail.gmail.com>
To: Richard Barnes <rlb@ipv.sx>
X-Mailer: Apple Mail (2.1510)
X-AntiAbuse: This header was added to track abuse,
 please include it with any abuse report
X-AntiAbuse: Primary Hostname - gator4135.hostgator.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - agnada.com
X-BWhitelist: no
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-Source-Sender: ([192.168.1.25]) [98.210.227.187]:51320
X-Source-Auth: shida.schubert+tingle.jp
X-Email-Count: 2
X-Source-Cap: c3NoaWRhO3NzaGlkYTtnYXRvcjQxMzUuaG9zdGdhdG9yLmNvbQ==
X-Mailman-Approved-At: Thu, 31 Oct 2013 01:56:09 -0700
Cc: "sip-overload@ietf.org" <sip-overload@ietf.org>,
 draft-ietf-soc-load-control-event-package@tools.ietf.org
Subject: Re: [sip-overload] AD review of
 draft-ietf-soc-load-control-event-package-08
X-BeenThere: sip-overload@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIP Overload <sip-overload.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sip-overload>,
 <mailto:sip-overload-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sip-overload>
List-Post: <mailto:sip-overload@ietf.org>
List-Help: <mailto:sip-overload-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sip-overload>,
 <mailto:sip-overload-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 30 Oct 2013 21:19:12 -0000

--Apple-Mail=_8C0EBAF7-6FEF-4A5E-8AF3-53D0DDD55E93
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1


Hi Richard;

 The proposed text looks good to me..=20

  Shida

On Oct 29, 2013, at 12:08 PM, Richard Barnes <rlb@ipv.sx> wrote:

> Dear authors,
>=20
> Thanks for updating this document.  It looks much better.  Sorry for =
the delay in my reply.
>=20
> The one thing I don't think is quite adequately addressed by the =
considerations around the use of the "redirect" action. =20
>=20
> The attack I'm worried about is something like the following:=20
> -- A bunch of proxies in a Trust Domain are using UDP, and configured =
to get their policies from a central server. =20
> -- Attacker spoofs the server's address to send a bunch of NOTIFY =
bodies telling proxies to send all calls to =
victim@outside-of-trust-domain.com
> -- Proxies redirect all calls to victim, who is now DoSed off of the =
Internet
>=20
> In order to address this threat, you need to either (1) remove the =
"redirect" action, or (2) constrain redirects to a safe space.  I assume =
that the WG doesn't want to do (1) :) =20
>=20
> Proposed edits:
> -- Add to the definition of a Trust Domain an agreement on the types =
of calls that can be affected by load control.  For example, <one> and =
<many> element might be limited to specific domains; <*-tel> elements =
might be limited to be within certain prefixes.
> -- Add to the definition of a Trust Domain an agreement on the =
destinations to which calls may be redirected.  For example, the URI =
might have to match a given set of domains.
> -- Add text to the Security Considerations describing the above =
attack, and REQUIREing that implementations enforce the limits described =
in the definition of their Trust Domain.
>=20
> Thanks,
> --Richard
>=20
>=20
>=20
>=20
>=20
>=20
> On Wed, Apr 17, 2013 at 1:53 PM, Richard Barnes <rlb@ipv.sx> wrote:
> I have reviewed this document, and have a few questions before IETF =
LC:
>=20
> Major:
>=20
> In a few places, for example Section 5.3., the document suggests that =
this event package could be used to communicate load filtering policies =
between domains.  This seems like a bad idea for a few reasons.  First, =
policies can be based on "P-Asserted-Identity", which is itself limited =
to use within a trust domain / Spec(T).  It doesn't make sense to have =
policies based on these identifiers outside of the domain in which they =
are used.  Second, inter-domain policies can create subtle and dangerous =
security risks.  For example, according to the current specification, =
Domain A could tell Domain B to drop all calls between Domain B and =
Domain C.  It's not clear how you would prevent these sorts of attacks, =
especially where "tel:" URIs are involved.  I think both of these issues =
go away if this event package is limited in a similar way to =
P-Asserted-Identity, i.e., limited to use within a trust domain.
>=20
> Section 6.3., "SUBSCRIBE Bodies" doesn't actually say anything about =
what goes in the body of a SUBSCRIBE message.  On the one hand, it =
implies that there could be a body (since the last sentence considers a =
request without a body as a special case), but it doesn't say what goes =
in the body if there is one.  Please either (1) define what may go in =
the body, (2) explicitly say that this document does not specify what =
goes in SUBSCRIBE bodies, or (3) require that the body be empty.   =
(Also, the first paragraph of this section seems out of place here, =
since it also has nothing to do with the body.)
>=20
> In Section 6.5., the last sentence is wrong.  The presence of an =
Accept header indicates that the response body should be one of the =
indicated types.  The indicated behavior would only be acceptable if the =
Accept header included "multipart/mixed".  Suggest deleting the last =
sentence.  (Also,  it would be clearer to change "the request body will =
contain" to "the request body MUST contain".)
>=20
> In Section 7.3.1, you need to specify how a "tel:" URI is matched =
against a domain value starting with "+".  Your examples seem to =
indicate simple string prefix matching, but I doubt that's what you =
actually want, since non-digit characters can break things.  For =
example, "+1212" should match "+1-212-555-1212".  Please specify a =
matching algorithm here.
>=20
> In Section 7.3.2, please change "Non-initial requests ... are not =
subjected" to "Non-initial requests ... MUST NOT be subjected".
>=20
> Section 7.4. doesn't adequately define the actions to be taken.  Each =
of the action elements (<rate>, <window>, <percent>) need to define a =
concrete action that the proxy should take.=20
>=20
> RFC 4745 allows rules to combine when multiple rules match a given =
call.  This document needs to define combination rules for the actions =
defined here. =20
>=20
> What's the reason for having both the "drop" action and the "reject" =
action?  It seems like the "drop" action is almost always harmful.  With =
unreliable transport, it causes retransmits, and even with reliable =
transport, it causes the client to wait unnecessarily until the =
connection times out.  In any case, the "simple drop" action is =
underspecified.  For example, does the server simply ignore the SIP =
message, or does it close the transport connection?
>=20
>=20
> Minor:
>=20
> In Section 7.3, "we re-define" -- the document doesn't re-define any =
of the elements in RFC 4745 (that's good; redefinition is bad).  =
Instead, you should say you define new identity elements.
>=20
> In Section 7.3.1, please break up paragraph starting "To include the =
two forms..." for greater readability.  Suggested break points: Before =
"Note that the tradeoff...", and before "It should be noted..."
>=20
> In Section 7.3.3, it would be helpful to break up the paragraph =
starting "The following are two example...".  Break before "Usecase I" =
and "Usecase II".  Also, s/Usecase/Use case/g
>=20
>=20
> Thanks,
> --Richard
>=20
> _______________________________________________
> sip-overload mailing list
> sip-overload@ietf.org
> https://www.ietf.org/mailman/listinfo/sip-overload


--Apple-Mail=_8C0EBAF7-6FEF-4A5E-8AF3-53D0DDD55E93
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=iso-8859-1

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Diso-8859-1"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><div><br></div><div>Hi Richard;</div><div><br></div><div>&nbsp;The =
proposed text looks good to me..&nbsp;</div><div><br></div><div>&nbsp; =
Shida</div><br><div><div>On Oct 29, 2013, at 12:08 PM, Richard Barnes =
&lt;<a href=3D"mailto:rlb@ipv.sx">rlb@ipv.sx</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
dir=3D"ltr">Dear authors,<div><br></div><div>Thanks for updating this =
document. &nbsp;It looks much better. &nbsp;Sorry for the delay in my =
reply.</div><div><br></div><div>The one thing I don't think is quite =
adequately addressed by the considerations around the use of the =
"redirect" action. &nbsp;</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">The =
attack I'm worried about is something like the =
following:&nbsp;</div><div class=3D"gmail_extra">-- A bunch of proxies =
in a Trust Domain are using UDP, and configured to get their policies =
from a central server. &nbsp;</div>
<div class=3D"gmail_extra">-- Attacker spoofs the server's address to =
send a bunch of NOTIFY bodies telling proxies to send all calls to <a =
href=3D"mailto:victim@outside-of-trust-domain.com">victim@outside-of-trust=
-domain.com</a></div>
<div class=3D"gmail_extra">-- Proxies redirect all calls to victim, who =
is now DoSed off of the Internet</div><div =
class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">In order to =
address this threat, you need to either (1) remove the "redirect" =
action, or (2) constrain redirects to a safe space. &nbsp;I assume that =
the WG doesn't want to do (1) :) &nbsp;</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">Proposed =
edits:</div><div class=3D"gmail_extra">-- Add to the definition of a =
Trust Domain an agreement on the types of calls that can be affected by =
load control. &nbsp;For example, &lt;one&gt; and &lt;many&gt; element =
might be limited to specific domains; &lt;*-tel&gt; elements might be =
limited to be within certain prefixes.</div>
<div class=3D"gmail_extra">-- Add to the definition of a Trust Domain an =
agreement on the destinations to which calls may be redirected. =
&nbsp;For example, the URI might have to match a given set of =
domains.</div><div class=3D"gmail_extra">
-- Add text to the Security Considerations describing the above attack, =
and REQUIREing that implementations enforce the limits described in the =
definition of their Trust Domain.</div><div =
class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">
Thanks,</div><div class=3D"gmail_extra">--Richard</div><div =
class=3D"gmail_extra"><br></div><div class=3D"gmail_extra"><br></div><div =
class=3D"gmail_extra"><br></div><div class=3D"gmail_extra"><br></div><div =
class=3D"gmail_extra"><br>
<br><div class=3D"gmail_quote">On Wed, Apr 17, 2013 at 1:53 PM, Richard =
Barnes <span dir=3D"ltr">&lt;<a href=3D"mailto:rlb@ipv.sx" =
target=3D"_blank">rlb@ipv.sx</a>&gt;</span> wrote:<br><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex">
<span =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
I have reviewed this document, and have a few questions before IETF =
LC:</span><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=


<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
Major:</div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
In a few places, for example Section 5.3., the document suggests that =
this event package could be used to communicate load filtering policies =
between domains. &nbsp;This seems like a bad idea for a few reasons. =
&nbsp;First, policies can be based on "P-Asserted-Identity", which is =
itself limited to use within a trust domain / Spec(T). &nbsp;It doesn't =
make sense to have policies based on these identifiers outside of the =
domain in which they are used. &nbsp;Second, inter-domain policies can =
create subtle and dangerous security risks. &nbsp;For example, according =
to the current specification, Domain A could tell Domain B to drop all =
calls between Domain B and Domain C. &nbsp;It's not clear how you would =
prevent these sorts of attacks, especially where "tel:" URIs are =
involved. &nbsp;I think both of these issues go away if this event =
package is limited in a similar way to P-Asserted-Identity, i.e., =
limited to use within a trust domain.</div>

<div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

Section 6.3., "SUBSCRIBE Bodies" doesn't actually say anything about =
what goes in the body of a SUBSCRIBE message. &nbsp;On the one hand, it =
implies that there could be a body (since the last sentence considers a =
request without a body as a special case), but it doesn't say what goes =
in the body if there is one. &nbsp;Please either (1) define what may go =
in the body, (2) explicitly say that this document does not specify what =
goes in SUBSCRIBE bodies, or (3) require that the body be empty. &nbsp; =
(Also, the first paragraph of this section seems out of place here, =
since it also has nothing to do with the body.)</div>

<div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

In Section 6.5., the last sentence is wrong. &nbsp;The presence of an =
Accept header indicates that the response body should be one of the =
indicated types. &nbsp;The indicated behavior would only be acceptable =
if the Accept header included "multipart/mixed". &nbsp;Suggest deleting =
the last sentence. &nbsp;(Also,&nbsp;&nbsp;it would be clearer to change =
"the request body will contain" to "the request body MUST =
contain".)</div>

<div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

In Section 7.3.1, you need to specify how a "tel:" URI is matched =
against a domain value starting with "+". &nbsp;Your examples seem to =
indicate simple string prefix matching, but I doubt that's what you =
actually want, since non-digit characters can break things. &nbsp;For =
example, "+1212" should match "<a href=3D"tel:%2B1-212-555-1212" =
value=3D"+12125551212" style=3D"color:rgb(17,85,204)" =
target=3D"_blank">+1-212-555-1212</a>". &nbsp;Please specify a matching =
algorithm here.</div>

<div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

In Section 7.3.2, please change "Non-initial requests ... are not =
subjected" to "Non-initial requests ... MUST NOT be =
subjected".</div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=


<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
Section 7.4. doesn't adequately define the actions to be taken. =
&nbsp;Each of the action elements (&lt;rate&gt;, &lt;window&gt;, =
&lt;percent&gt;) need to define a concrete action that the proxy should =
take.&nbsp;</div>

<div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

RFC 4745 allows rules to combine when multiple rules match a given call. =
&nbsp;This document needs to define combination rules for the actions =
defined here. &nbsp;</div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=


<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
What's the reason for having both the "drop" action and the "reject" =
action? &nbsp;It seems like the "drop" action is almost always harmful. =
&nbsp;With unreliable transport, it causes retransmits, and even with =
reliable transport, it causes the client to wait unnecessarily until the =
connection times out. &nbsp;In any case, the "simple drop" action is =
underspecified. &nbsp;For example, does the server simply ignore the SIP =
message, or does it close the transport connection?</div>

<div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
Minor:</div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
In Section 7.3, "we re-define" -- the document doesn't re-define any of =
the elements in RFC 4745 (that's good; redefinition is bad). =
&nbsp;Instead, you should say you define new identity elements.</div>

<div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

In Section 7.3.1, please break up paragraph starting "To include the two =
forms..." for greater readability. &nbsp;Suggested break points: Before =
"Note that the tradeoff...", and before "It should be noted..."</div>

<div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

In Section 7.3.3, it would be helpful to break up the paragraph starting =
"The following are two example...". &nbsp;Break before "Usecase I" and =
"Usecase II". &nbsp;Also, s/Usecase/Use case/g</div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=


<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
<br></div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=

Thanks,</div><div =
style=3D"color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">=
--Richard</div>
</blockquote></div><br></div></div>
_______________________________________________<br>sip-overload mailing =
list<br><a =
href=3D"mailto:sip-overload@ietf.org">sip-overload@ietf.org</a><br>https:/=
/www.ietf.org/mailman/listinfo/sip-overload<br></blockquote></div><br></bo=
dy></html>=

--Apple-Mail=_8C0EBAF7-6FEF-4A5E-8AF3-53D0DDD55E93--
