Subject: Re: [secdir] Security review of draft-ietf-avtext-rid-04

From: Adam Roach <[email-masked]>
Date: Thu, 6 Oct 2016 14:27:04 -0500

Thanks for the review! Responses inline.

On 8/9/16 01:02, Hilarie Orman wrote:
> "Abstract
>     This document defines and registers two new RTCP SDES items.  One,
>     named RtpStreamId, is used for unique identification of RTP streams.
>     The other, RepairedRtpStreamId, can be used to identify which stream
>     a redundancy RTP stream is to be used to repair.
>
> Security considerations:
>     The actual identifiers used for RtpStreamIds (and therefore
>     RepairedRtpStreamIds) are expected to be opaque."
>
> "Opaque" seems to mean "no one cares what it is."  Nonetheless, a
> protocol should give some guidance about this.  Taking the value from
> a global 64-bit counter, for example, could leak information about the
> global state of the machine.  Having a short counter for each session
> with a starting value of 0 would probably be OK.  Having a short
> counter start at a random value and wraps around would probably be OK.

Thanks! If you look at the -05 version (which came out back in July), 
you'll see that we added some more explicit text around these 
identifiers. That version and subsequent ones have indicated:

    In many cases, a one-byte identifier will be sufficient to
    distinguish streams in a session; implementations are strongly
    encouraged to use the shortest identifier that fits their purposes.
    Implementors are warned, in particular, not to include any
    information in the identifier that is derived from potentially user-
    identifying information, such as user ID or IP address.  To avoid
    identification of specific implementations based on their pattern of
    tag generation, implementations are encouraged to use a simple scheme
    that starts with the ASCII digit "1", and increments by one for each
    subsequent identifier.

In later versions, the security section was updated to call back to this 
recommended behavior:

    Although the identifiers defined in this document are limited to be
    strictly alphanumeric, SDES items have the potential to carry any
    string.  As a consequence, there exists a risk that it might carry
    privacy-sensitive information.  Implementations need to take care
    when generating identifiers so that they do not contain information
    that can identify the user or allow for long term tracking of the
    device.  Following the generation recommendations inSection 3.3 
<https://tools.ietf.org/html/draft-ietf-avtext-rid-08#section-3.3>  will
    result in non-instance-specific labels, with only minor
    fingerprinting possibilities in the total number of used RtpStreamIds
    and RepairedRtpStreamIds.

Does that seem a reasonable treatment to you, or would you like to see 
additional/different language?

> The "terminology" section could be improved by EAFMA and RUP
> (expanding a few more acronyms and removing unused phrases).  MSID and
> SSRC are not expanded; "encoded stream" is never used.

Good catch on "encoded stream"!

I have added additional text to the Terminology section:

    The following acronyms are also used:

    o  CNAME: Canonical End-Point Identifier, defined in [RFC3550]

    o  MID: Media Identification, defined in
       [I-D.ietf-mmusic-sdp-bundle-negotiation]

    o  MSID: Media Stream Identifier, defined in [I-D.ietf-mmusic-msid]

    o  RTCP: Real-time Transport Control Protocol, defined in [RFC3550]

    o  RTP: Real-time Transport Protocol, defined in [RFC3550]

    o  SDES: Source Description, defined in [RFC3550]

    o  SSRC: Synchronization Source, defined in [RFC3550]

/a