Re: TSV-Dir Last Call review of draft-ietf-avt-rtp-cnames-02

Colin Perkins <csp@csperkins.org> Fri, 17 December 2010 17:58 UTC

Return-Path: <csp@csperkins.org>
X-Original-To: ietf@core3.amsl.com
Delivered-To: ietf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C64323A6975; Fri, 17 Dec 2010 09:58:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -103.158
X-Spam-Level:
X-Spam-Status: No, score=-103.158 tagged_above=-999 required=5 tests=[AWL=0.441, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1, 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 dLWrgH81ziON; Fri, 17 Dec 2010 09:58:06 -0800 (PST)
Received: from lon1-msapost-2.mail.demon.net (lon1-msapost-2.mail.demon.net [195.173.77.181]) by core3.amsl.com (Postfix) with ESMTP id 16AC63A6941; Fri, 17 Dec 2010 09:58:06 -0800 (PST)
Received: from mangole.dcs.gla.ac.uk ([130.209.247.112]) by lon1-post-2.mail.demon.net with esmtpsa (AUTH csperkins-dwh) (TLSv1:AES128-SHA:128) (Exim 4.69) id 1PTeav-0000lb-Zb; Fri, 17 Dec 2010 17:59:53 +0000
Subject: Re: TSV-Dir Last Call review of draft-ietf-avt-rtp-cnames-02
Mime-Version: 1.0 (Apple Message framework v1082)
Content-Type: text/plain; charset="us-ascii"
From: Colin Perkins <csp@csperkins.org>
In-Reply-To: <AANLkTikFu9pQtVGnvnALzR5gUd4Uc9_Q6UO7_nusmdMs@mail.gmail.com>
Date: Fri, 17 Dec 2010 17:59:51 +0000
Content-Transfer-Encoding: quoted-printable
Message-Id: <F26C8CAE-B1D6-46A9-B047-361FC41D4BA8@csperkins.org>
References: <C92C466F.1EBF%allison.mankin@jhuapl.edu> <AANLkTikFu9pQtVGnvnALzR5gUd4Uc9_Q6UO7_nusmdMs@mail.gmail.com>
To: Allison Mankin <allison.mankin@gmail.com>
X-Mailer: Apple Mail (2.1082)
Cc: Allison Mankin <mankin@psg.com>, Ali Begen <abegen@cisco.com>, IETF Discussion <ietf@ietf.org>, Transport Directorate <tsv-dir@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Dec 2010 17:58:07 -0000

Allison,

Thanks for the review. These all seem like reasonable suggestions, which we should incorporate. 

Colin



On 14 Dec 2010, at 02:56, Allison Mankin wrote:
> TSV-DIR Last Call review of "Guidelines for Chosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs)
> 
> I've reviewed this document as part of the transport area directorate's ongoing effort to review key IETF documents. These comments were written primarily for the transport area directors, but are copied to the document's authors for their information and to allow them to address any issues raised. The authors should consider this review together with any other last-call comments they receive.  Please always cc tsv-dir@ietf.org if you reply to or forward this review.
> 
> Summary: This draft is on the right track, but has open issues described in the review.
> 
> The review below gives my basis for three recommendations:
> 1. For long-term persistent CNAMEs, differentiate among the UUID "Versions" in RFC 4122
> 2. For short-term persistent CNAMEs, allow IPv4-only endpoints to generate a pseudo-random alternative to their MAC, if desired
> 3. For per-session CNAMEs, provide some guidance for the random value and the key, which are currently left underspecified.
> 
> Section 3 sets up the major requirement to be met, which is better uniqueness properties than those of the CNAME generation in RFC 3550. There's a hint in the last sentence of the section about an additional requirement to afford privacy support.  This sentence only mentions avoiding exposure of private addresses.  Avoidance of linkage among RTP streams due to the use of fixed CNAMEs comes up later.
> 
> Section 4 sets up the CNAME types, persistent versus per-session, and within persistent types, short-term IPv4-only, short-term IPv6-capable, and long-term.  The methods of generating these CNAMEs are distinct and I understand from the WG mailing list discussion of their AD review that they are to be specified as mandatory.   On December 2, Ali wrote to AVT that the next revision will change language in Section 4 from the existing:
> 
>    Other methods, beyond the three methods listed above, are not
>    compliant with this specification and SHOULD NOT be used.
> 
> To the following:
> 
>    It is believed that obtaining uniqueness is an important property that
>    requires careful evaluation of the method. This document provides a
>    number of methods, for which it is believed that at least one of them
>    would meet all deployment scenarios. This document therefore does not
>    provide for the implementor to define and select an alternative
>    method.
> 
>    A future specification might define an alternative method for
>    generating RTCP CNAMEs as long as the proposed method has appropriate
>    uniqueness, and there is consistency between the methods used for
>    multiple RTP sessions that are to be correlated. However, such a
>    specification needs to be reviewed and approved before deployment.
> 
> The second sentence of the first paragraph could be written better:
> 
>    This document provides a number of methods, at least one of which
>    should be suitable for all deployment scenarios.

Agreed.

> My remaining discussion is about making this statement more true.
> 
> First, all the methods should afford some access to privacy support, but as written, there is little or none for the long-term persistent and the IPv4-only short-term persistent CNAMEs.
> 
>                                      An implementation that wishes to
>   discourage this type of third-party monitoring can generate a unique
>   RTCP CNAME for each RTP session, or group of related RTP sessions,
>   that it joins.  Such a per-session RTCP CNAME cannot be used for
>   traffic analysis, and so provides some limited form of privacy
> 
> The above statement implies that a long-term persistent CNAME inherently cannot have privacy support.  It's not necessarily so: if the CNAME doesn't embed identifying information, observers get connections among multiple streams but they only don't have a fixed host identity, only a pseudonym.
> 
> Specific issues per CNAME method:
> 
> 1) Long-term persistent CNAMEs are required to be generated by an adaptation of RFC 4122 UUIDs (the adaptation is to leave off the string "urn:uuid:"). The draft references Section 3 of RFC 4122.  It should reference Section 4 instead because Section 3 does not detail the UUID components.  

Agreed. This looks like a typo that should be fixed.

> Moreover, it would be good for the draft to advise on usage among the four different versions of UUID that RFC 4122 covers:
> 
> + Version 1: generated from clock + MAC, or + MAC-format random number
> + Version 3: generated from namespace:name
> + Version 4: generated from "truly random or pseudo-random number"
> + Version 5: generated from hash of namespace:name
> 
> There needs to be some guidance because the use of the UUID Versions 3/5, derived from namespace:name, has the same problem with non-uniqueness of FQDNs as the RFC 3550 FQDN-based CNAMEs.  Perhaps this document should advise against using 3/5.  In addition, right now the draft is silent on mitigating identity exposure, but it could offer some guidance towards using the variant of Version 1 that does not expose the MAC or towards using Version 4.

This guidance seems appropriate, thanks.

> 2) Short-term persistent CNAMEs  are allowed to use a pseudo-randomly generated RFC 4941 IPv6 privacy address if the device is IPv6-capable, but are required to exposetheir MACs if the device is IPv4-only.  Why not allow IPv4-only endpoints to to generate pseudo-random MACs using the specification of doing so provided for the Version 1 variant in RFC 4122?

That seems like a reasonable addition.

> 3) Per-session CNAMEs are generated using SHA1-HMAC over the concatenation of the initially-used SSRC, the source and destination addresses and ports, and "a randomly generated value".  RFC 4086 is given as a reference for the randomly generated value.  I think an implementer would like to know how many bytes of randomly generated value should be used; this doesn't come out clearly from reading RFC 4086. Further, what are the requirements for the key for HMAC here?  In reading RFC 2104, the reference for HMAC, I end up with some ideas about the key length, but not about how long/where I can use the same key or whether there are problematic keys - to mention two questions that come to mind.  Keying would not normally be easy to under-specify this way because a security application would call for some keying details, but in this application there is no security use for the keys.  Either it would be good to add some guidance or perhaps SHA1-HMAC could be replaced with an "insecure hash."

We'll add some guidance in -03.

Thanks,
Colin

-- 
Colin Perkins
http://csperkins.org/