[secdir] secdir review of draft-ietf-avt-rapid-acquisition-for-rtp-16

Stephen Farrell <stephen.farrell@cs.tcd.ie> Mon, 25 October 2010 13:46 UTC

Return-Path: <stephen.farrell@cs.tcd.ie>
X-Original-To: secdir@core3.amsl.com
Delivered-To: secdir@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 973F93A683F; Mon, 25 Oct 2010 06:46:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level:
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ldOmPAUFprv7; Mon, 25 Oct 2010 06:46:32 -0700 (PDT)
Received: from scss.tcd.ie (hermes.cs.tcd.ie [IPv6:2001:770:10:200:21b:21ff:fe3a:3d50]) by core3.amsl.com (Postfix) with ESMTP id 1449A3A681B; Mon, 25 Oct 2010 06:46:24 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by hermes.scss.tcd.ie (Postfix) with ESMTP id A41D53E409E; Mon, 25 Oct 2010 14:48:08 +0100 (IST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; h= content-transfer-encoding:content-type:in-reply-to:references :subject:mime-version:user-agent:from:date:message-id:received :received:x-virus-scanned; s=cs; t=1288014488; bh=z8IYLVXo7GjQOb UTHQCjcm2ni99H/uvdF1RbsGKKrzU=; b=BubDLHrSAo87M73BA2Zjj7gWDFeH69 n5R9OTrst1gsa3Ks8GGuSe5pflRb1+wknG8Uy0WnHlRQWPh7D0lDcACMLwf5MdFp sS97K6MNI2osdy0bewpzNyED6j/vsSJWZyepFyBIHFxlLLQy0t/4mcClNTE7eQ5H meghiGUv79Zu1KXZhREQIXvCSczNpbePOm3HLRgXCU9PLZQFRh6JPqT2snVNG3K8 UXmpkVDIPQy5x3ObZinGgHdr1NifoCPcD4C218opHPX9SGEoQ00AIdBMOu2HEbvG J9tsgBIhwr/qMEt05L+cMKOQSwQPKI7if8Xz9iCpFSNl0euyjVDPQIsQ==
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
Received: from scss.tcd.ie ([127.0.0.1]) by localhost (scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10027) with ESMTP id iNucjfsyLiGv; Mon, 25 Oct 2010 14:48:08 +0100 (IST)
Received: from [192.168.46.103] (ip-193-142-112-98.inqbator.poznan.pl [193.142.112.98]) by smtp.scss.tcd.ie (Postfix) with ESMTPSA id 4B3713E407C; Mon, 25 Oct 2010 14:46:58 +0100 (IST)
Message-ID: <4CC58A1C.5020704@cs.tcd.ie>
Date: Mon, 25 Oct 2010 14:46:04 +0100
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.12) Gecko/20100915 Lightning/1.0b1 Thunderbird/3.0.8
MIME-Version: 1.0
To: "Ali C. Begen (abegen)" <abegen@cisco.com>
References: <4CAA07C8.4030806@cs.tcd.ie> <04CAD96D4C5A3D48B1919248A8FE0D540D758A5D@xmb-sjc-215.amer.cisco.com>
In-Reply-To: <04CAD96D4C5A3D48B1919248A8FE0D540D758A5D@xmb-sjc-215.amer.cisco.com>
X-Enigmail-Version: 1.0.1
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Cc: draft-ietf-avt-rapid-acquisition-for-rtp.all@tools.ietf.org, sec-ads@ietf.org, avt-chairs@ietf.org, secdir@ietf.org
Subject: [secdir] secdir review of draft-ietf-avt-rapid-acquisition-for-rtp-16
X-BeenThere: secdir@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Security Area Directorate <secdir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/secdir>, <mailto:secdir-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/secdir>
List-Post: <mailto:secdir@ietf.org>
List-Help: <mailto:secdir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/secdir>, <mailto:secdir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Oct 2010 13:46:34 -0000

Hi Ali,

On 19/10/10 16:18, Ali C. Begen (abegen) wrote:
> Sorry for not responding to this email earlier. 

Me too:-)

draft-ietf-avt-rapid-acquisition-for-rtp-16 seems to me to do a good
job of addressing my comments on -15, except, perhaps, for two.

The first is that this protocol is vulnerable to off-path DoS attacks
unless SRTP is used, and even where SRTP is used, additional (though
minor) constraints on how it is used are required to prevent
authorized receivers messing with one another.

The -16 version is clear enough (I think) about this, so my only
remaining question is whether or not SRTP, with the additional
constraints specified, is likely to be deployed or not.

I have no idea myself, but if its unlikely to really be deployed,
then the vulnerability could probably easily be exploited which
would be bad and would lead me at least to wonder whether it would
be wiser to try to design this so that it is less vulnerable to
off-path attacks. (Assuming that such a solution exists of course.)

The second one relates to the additional SRTP constraints. The new
text says that the BRS needs to keep a list of receiver certs (which
seems unlikely) or else must ensure that all receivers are certified
by some "trusted" CA. I don't think that really works - if the
problem is that authorized receivers could DoS one another then I
don't see how this fixes that. Or am I missing something?

S.

PS: The text quoted is from the response to my review of -15, I
guess it makes life easier to change the subject line to -16 for
this re-review but I might be wrong. If so, sorry;-)

> I thought I did. Thanks to Robert for reminding me.
> 
> All, 
> 
> We tried to address all the issues mentioned below in the latest version. I will respond line by line below.
> 
>> -----Original Message-----
>> From: Stephen Farrell [mailto:stephen.farrell@cs.tcd.ie]
>> Sent: Monday, October 04, 2010 12:59 PM
>> To: draft-ietf-avt-rapid-acquisition-for-rtp.all@tools.ietf.org; sec-ads@ietf.org
>> Cc: secdir@ietf.org; avt-chairs@ietf.org
>> Subject: secdir review of draft-ietf-avt-rapid-acquisition-for-rtp-15
>>
>>
>> #include <secdir-review-boilerplate.h>
>>
>> This document defines a way for multicast receivers (e.g. IPTV clients)
>> to rapidly acquire the reference information required to make sense of
>> the session data. Reference information is usually only sent
>> periodically within the session, so this document defines how to setup
>> a new unicast session with a server that transmits the reference
>> information to the client on request so as a result the client doesn't
>> have to wait so long.
>>
>> Overall, I'm a bit concerned that this might create new DoS exploit
>> potential, but I could be wrong (don't know enough about multicast) and
>> I see there has been a separate thread on ietf-discuss that had some
>> mention of that. (I've not read that thread in detail.) If an off-path
>> attacker could insert RAMS-* messages with values that are likely
>> to result in things happening then that, I think, would be quite bad,
>> but I'm not quite sure.
> 
> Yes, things may go wrong if an attacker sends RAMS control messages on behalf of others or an attacker modifies others' messages. We ack this problem and provide some solutions to deal with it.
>  
>> Detailed security-related issues/questions:
>>
>> - How does the client know that it has the right FT/BRS? (Does it
>> always get that from SDP?) What would happen if it has a bogus FT/BRS?
>> (Is that likely?)
> 
> The SDP should be only accepted from reliable sources. So, authentication and integrity checks are recommended. This applies to any application using SDP.
>  
>> - P17 says that the BRS may reject the RAMS-R request. Are there
>> security reasons that might cause rejection? If so, what?
> 
> Not really. The rejection reasons are mostly related to the ones already listed in section 7.3.1.
>  
>> - P18 says that the BRS can replace the SSRC from the RAMS-R with
>> something else. Wouldn't that allow a bad BRS to redirect an RTP_Rx to
>> some dodgy stream, instead of the one requested? Should the RTP_Rx
>> react to that somehow?
> 
> We need to have this since the SSRC that is known by the RTP_Rx may have changed and it has to trust to the server for the most up-to-date SSRC. Note that here we assume the server side (BRS) is not compromised. If it is, it does not matter. It can send junk data w/o changing the SSRC.
>  
>> - How are updated RAMS-R and RAMS-I related to originals? Is there a
>> way to insert these (maybe from off-path?) If there is, could a fake
>> RAMS-I mount a DoS on the RTP-Rx? (E.g. by supplying crap information.)
> 
> First of all, supporting the updated messages is an optional feature, which is highly discouraged anyway (due to various other reasons). In case, an implementation supports it, the security considerations are not much different. Section 10 makes some proposals to deal with this (e.g., source address validation, SRTP, policing, etc.).
>  
>> - Could I send a fake RTCP BYE pretending to be from some RTP_Rx in
>> order to DoS that client?
> 
> You can but you need to know the CNAME (which is possible). However, if RTCP messages are authenticated and source address is validated, you will fail.
>  
>> - Could I send a RAMS-R requesting a very high bitrate for a burst as
>> a way to DoS someone local to the (claimed) source of the RAMS-R? (The
>> max is 2^64 I guess)
> 
> Yeah, we added a text for it. The server should pay attention to what the client mentioned in that field. In any case, that is an upper limit and the server can transmit at much slower pace if it wants to.
>  
>> - p31: the Min RAMS buffer fill requirement seems to allow RTP-Rx to
>> request almost 50 days (2^32ms) of content in the unicast burst.  That
>> seems too much, from the p-o-v of potential DoS exploits. Maybe say
>> that the BRS SHOULD impose some limit as part of DoS mitigation?
> 
> Yes, we added text about this as well. The server can naturally reject the decision anyway if it computes that the client is better off by joining the mcast immediately (rather than first receiving the burst and then joining). The client then can join and build up a buffer as long as it wants to.
>  
>> - p35: the earliest join time is also a 32 bit millisecond counter.
>> Should the RTP_Rx also have some kind of sanity check if asked to wait
>> days? Same comment wrt burst duration.
> 
> Yes, see the new text in section 10.
> 
>>
>> - p42: Saying "adequate" security measures are "RECOMMENDED" to protect
>> SDP description, without saying what they might be, is very vague.
>> What's an implementer supposed to do?
> 
> This really depends on how SDP is distributed. It could be HTTP(S), RTSP or something else. 
>  
>> - p43 mentions SRTP as a SHOULD. How widely is that deployed and does
>> it make sense for this use-case? I think that should be clear. (If SRTP
>> isn't really used, or if its not going to be used here, then its not a
>> real countermeasure.)
> 
> Well, in managed networks such as IPTV networks, servers and clients are known by the system admin, configured properly, etc. so one may not need to implement SRTP. In non-managed environments, SRTP is a good tool and if they want protection, they better use it. 
>  
>> - p43 says RAMS itself brings no new attacks, but surely it does create
>> some new off-path DoS potential, if messages could be guessed?
> 
> And we tried to explain these *new* attacks in Section 10.
>  
>> - p43: what does "consider the security of such SRTP key sharing mean?"
>> I think this spec should say.
> 
> We revised that part. See the new text to see whether it works.
>  
>> Nits/Non-security things:
>>
>> - p8: CNAME is used without being defined.
> 
> Done.
>  
>> - p15: AVPF is used before being defined/expanded.
> 
> Done.
>  
>> - p18: Saying "If the RTP_Rx will issue a ..." seems confusing. Would
>> that be clear to an implementer? In other words ought the spec say
>> SHOULD somewhere here? (In which case, it'd also presumably say when
>> its ok not to follow the SHOULD.)
> 
> Rephrased this part.
>  
>> - p19: This says that if the BRS has given a 504 etc. reject, then the
>> RTP_Rx MUST NOT retry. Does that mean just for this stream or for any
>> stream? Its not clear to me if the "MUST NOT" is scoped to one "channel
>> change" button press, or many, and if many, how that'd ever be reset,
>> though that might be my ignorance of the use-case and multicast in
>> general:-)
> 
> The response codes have their own scopes. A client may not be authorized for any RAMS operation, or maybe RAMS is not enabled only for that stream. We explicitly say this now in the text.
>  
>> - p20 says the BRS "can" use the updated RAMS-R - that's not 2119
>> language, so I assume you mean "MAY" and the intent is to allow
>> implementers to handle updated RAMS-R in whatever way suits best, given
>> their internal state when the update arrives?
> 
> For some reason, we did not wanna use 2119 language here (I don't recall it now). But, the idea is that it is really up to the server whether to use the updated request or ignore it.
>  
>> - p21 says "there is no need" to send RAMS-T for rejected stuff.  Maybe
>> that'd be better as a MUST NOT or SHOULD NOT?
> 
> Why do we need to say any 2119 language here. The server is not expecting a RAMS-T for them, but the client could still send one.
>  
>> - p21: the mix of SHALL and MUST looks odd, I at least, would prefer
>> just MUSTs.
> 
> Fixed.
>  
>> - p21, typo s/and started/and has started/
> 
> Fixed.
>  
>> - p21, OSN-minus-one as a signal for the BRS to stop - can that OSN
>> wrap around?
> 
> Sure it does since it is an RTP seqnum and all rtp seqnum rules apply to it as well.
>  
>> - p34: what are "the regular wrapping rules" for MSN and how does
>> that work with an 8 bit field that is only zero when a new RAMS-R is
>> received?
> 
> Wrapping rules are known in general I think since nobody has asked before what they were :) and MSN is usually 0, but if it keeps increasing, after it has reached the max value, it will naturally wrap around (which is very unlikely to happen).
>  
>> - p38: saying support for rfc5576 "can also be needed" seems vague.
>> Better to specifically say when its needed.
> 
> Expanded the text to say when it would be needed.
> 
> Thanks much for the careful review.
> 
> -acbegen
>  
>> Regards,
>> Stephen.
>>
> 
>