Re: [MMUSIC] Thoughts on draft-ietf-mmusic-dtls-sdp-10 semantics

Christer Holmberg <christer.holmberg@ericsson.com> Wed, 09 March 2016 06:46 UTC

Return-Path: <christer.holmberg@ericsson.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 14C4612DA78 for <mmusic@ietfa.amsl.com>; Tue, 8 Mar 2016 22:46:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.22
X-Spam-Level:
X-Spam-Status: No, score=-4.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([127.0.0.1]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id C-CgDbLYhcux for <mmusic@ietfa.amsl.com>; Tue, 8 Mar 2016 22:46:42 -0800 (PST)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A1EC112D784 for <mmusic@ietf.org>; Tue, 8 Mar 2016 22:46:41 -0800 (PST)
X-AuditID: c1b4fb2d-f79836d000006396-ac-56dfc6cf7334
Received: from ESESSHC019.ericsson.se (Unknown_Domain [153.88.183.75]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 7D.78.25494.FC6CFD65; Wed, 9 Mar 2016 07:46:39 +0100 (CET)
Received: from ESESSMB209.ericsson.se ([169.254.9.122]) by ESESSHC019.ericsson.se ([153.88.183.75]) with mapi id 14.03.0248.002; Wed, 9 Mar 2016 07:46:38 +0100
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Justin Uberti <juberti@google.com>, Roman Shpount <roman@telurix.com>
Thread-Topic: [MMUSIC] Thoughts on draft-ietf-mmusic-dtls-sdp-10 semantics
Thread-Index: AQHRdaFP+cNXmgRYU0+t2YVBURWZqJ9IS0MAgAANvICAAAaHgIAEmEsAgACtzyCAAHSUAIAABVIAgAARjRn///ZkAIAABaaAgAACigCAABHyAIAAg0gAgAAj6oCAAFwbAIAA/QuAgAA8HwCAADWckA==
Date: Wed, 09 Mar 2016 06:46:38 +0000
Message-ID: <7594FB04B1934943A5C02806D1A2204B37E9FD1C@ESESSMB209.ericsson.se>
References: <CABcZeBNJ6jdL7SfLaatfr28X83dVOafpi=jrM6bSJ-qpmj4RuA@mail.gmail.com> <CAD5OKxuK9wBG47d+SwBH_f8-PgMQJuxFRmMg9E4omjgqO0tNbQ@mail.gmail.com> <56D8D2E1.2030306@alum.mit.edu> <CAOJ7v-2eWFFzK_rtSkT5Q12qv5Cdug_Do1z=cAWvfJsKi0U94Q@mail.gmail.com> <56DCB31A.1010502@alum.mit.edu> <7594FB04B1934943A5C02806D1A2204B37E818F9@ESESSMB209.ericsson.se> <56DDA6B2.5080403@alum.mit.edu> <CAD5OKxts-yfXS2nxTfoqMiDO2GLWu4AF6WJdvsE_tFtewmmmCg@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B37E8B57C@ESESSMB209.ericsson.se> <56DDB1D2.6000801@alum.mit.edu> <CAD5OKxuXiPGDZtNQvfhQGD0NdmDoCZ6hAgqQnih8-_p7GD56fQ@mail.gmail.com> <56DDB8B0.5030806@alum.mit.edu> <CAD5OKxtsPiakn+N7PhVv+7f4cJ=+jOoB-M3VmrN-HguWy-sKCQ@mail.gmail.com> <CAOJ7v-3vSkHikt0_bKBsdP=GoAt5wJ5X6tOcq_4z_51jMQKT=w@mail.gmail.com> <CAD5OKxvnHARirebUC+tBACdAF=NhGJgxGJROfDt5LZ44Q-MUXA@mail.gmail.com> <D30450D0.55D7%christer.holmberg@ericsson.com> <CAD5OKxvL-Lc9n=L4Z5MofhnYkaxL9i5hBFU4KnG2CLG=2SjX9Q@mail.gmail.com> <CAOJ7v-2OCjGPkiU6tH0nUPk8Sa65fJOpVg3nmbuVCePWQkQC1g@mail.gmail.com>
In-Reply-To: <CAOJ7v-2OCjGPkiU6tH0nUPk8Sa65fJOpVg3nmbuVCePWQkQC1g@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [153.88.183.148]
Content-Type: multipart/alternative; boundary="_000_7594FB04B1934943A5C02806D1A2204B37E9FD1CESESSMB209erics_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrEIsWRmVeSWpSXmKPExsUyM2K7t+75Y/fDDDbPVLbYOlXIYuryxywW KzYcYLWYcWEqswOLx9/3H5g8Fmwq9Viy5CeTx60pBQEsUVw2Kak5mWWpRfp2CVwZd/Z1Mhd8 msFU8fL5V5YGxiMTmboYOTkkBEwkpvQuZoawxSQu3FvP1sXIxSEkcJhRov/JBRYIZzGjxOP/ 71m7GDk42AQsJLr/aYM0iAh4SsxZ84ANxGYW8JV4ueAL2CBhoPjxcw8YIWq8JNp+doMNFRFY xijxZctLsM0sAioSF44fZgKZyQvUfHMqO8SuTRwSp3qmgO3iFAiU6FruBVLOCHTc91NrmCB2 iUvcejIf6gEBiSV7zkM9ICrx8vE/VghbSaJxyRNWiPp8iflzloLdwysgKHFy5hOWCYyis5CM moWkbBaSsllAVzALaEqs36UPUaIoMaX7ITuErSHROmcuO7L4Akb2VYyixanFxbnpRsZ6qUWZ ycXF+Xl6eaklmxiBMXlwy2/dHYyrXzseYhTgYFTi4S2IvB8mxJpYVlyZe4hRgoNZSYTXYT9Q iDclsbIqtSg/vqg0J7X4EKM0B4uSOC/bp8thQgLpiSWp2ampBalFMFkmDk6pBsaOH/KT/ly5 lBxtKMYb0jf9xiwDEyfGvXq9iQEev85eXlBfIMW0waOrUO/dAw3bx2cklH/1lZ4wv/t6Zcfi S9f6V0z7c773gIfVYZ65GdvzDaReuJ7coqU8+/6cwkSL518W6JtmGnKoLX/afHER98s3S30i H0U6eq0q69osrKv9x5DTU+K7Tq0SS3FGoqEWc1FxIgBumPGbxQIAAA==
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/99MvtyvDCRFOjFpaGeAeG7A4dz8>
Cc: "mmusic@ietf.org" <mmusic@ietf.org>, Paul Kyzivat <pkyzivat@alum.mit.edu>
Subject: Re: [MMUSIC] Thoughts on draft-ietf-mmusic-dtls-sdp-10 semantics
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mmusic/>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Mar 2016 06:46:46 -0000

So, alphanumeric it is :)

From: Justin Uberti [mailto:juberti@google.com]
Sent: 09 March 2016 06:35
To: Roman Shpount <roman@telurix.com>
Cc: Christer Holmberg <christer.holmberg@ericsson.com>; Paul Kyzivat <pkyzivat@alum.mit.edu>; mmusic@ietf.org
Subject: Re: [MMUSIC] Thoughts on draft-ietf-mmusic-dtls-sdp-10 semantics

I think the id should be alphanumeric, but how it is assigned can be left to the application.


On Tue, Mar 8, 2016 at 4:59 PM, Roman Shpount <roman@telurix.com<mailto:roman@telurix.com>> wrote:
I would make the dtls-association-id value random alphanumeric to keep it shorter.

I would also make dtls-association-id optional if any of the fingerprints is for a newly generated self-signed certificate which will not be reused for any other DTLS association.

Regards,

_____________
Roman Shpount

On Tue, Mar 8, 2016 at 2:54 AM, Christer Holmberg <christer.holmberg@ericsson.com<mailto:christer.holmberg@ericsson.com>> wrote:
Hi,

There is no need to track the “order” of DTLS associations, so I think we should use random value. I am not sure we need “+” and “-“. Would a numeric value be enough? The number of DTLS associations between the connected endpoints is going to be very small, so we shouldn’t over-engineer it.

Regarding the id being unique for a given fingerprint, keep in mind that we now allow multiple fingerprints.

Regards,

Christer

From: Roman Shpount <roman@telurix.com<mailto:roman@telurix.com>>
Date: Tuesday 8 March 2016 at 06:24
To: Justin Uberti <juberti@google.com<mailto:juberti@google.com>>
Cc: "pkyzivat@alum.mit.edu<mailto:pkyzivat@alum.mit.edu>" <pkyzivat@alum.mit.edu<mailto:pkyzivat@alum.mit.edu>>, Christer Holmberg <christer.holmberg@ericsson.com<mailto:christer.holmberg@ericsson.com>>, "mmusic@ietf.org<mailto:mmusic@ietf.org>" <mmusic@ietf.org<mailto:mmusic@ietf.org>>
Subject: Re: [MMUSIC] Thoughts on draft-ietf-mmusic-dtls-sdp-10 semantics

We need to make sure dtls-association-id works in cases of 3pcc where a new session can be connected to an existing session or two existing sessions can be connected with each other. In all of those cases new DTLS association must be established. The case of merging two existing sessions especially worry me if we chose monotonically increasing IDs. Imagine two sessions, each hitting IVR for an announcement, and then being connecting directly with each other. If monotonically increasing from zero ID is used, both sessions will have dtls-association-id=1, but clearly a new session would need to be established.

I think in general monotonically increasing IDs have a high chance of collision when unrelated end points are used. Randomly assigned IDs are safer in this regard.

Another option is to state that dtls-association-id should be unique for a given security certificate fingerprint. So if new certificate is created for each DTLS association, then dtls-association-id can stay at value 0 or be omitted. If certificate is reused a unique value should be used for each new DTLS association created with this certificate. This uniqueness can be achieved by using a counter associated with each self signed certificate or using sufficiently large random or pseudo random (server id + time stamp + per server counter would be an example of the pseudo random) value associated with pre-provisioned permanent certificates.

Does anybody else have any suggestions or concerns about dtls-association-id generation scheme?
______________
Roman Shpount

On Mon, Mar 7, 2016 at 9:15 PM, Justin Uberti <juberti@google.com<mailto:juberti@google.com>> wrote:
Keep in mind that this id value isn't actually sent anywhere. So it's not like the ICE ufrag that needs a certain amount of entropy. It can just as easily be a monotonically increasing number.

IOW, a string with a 1-byte minimum seems right.

On Mon, Mar 7, 2016 at 10:26 AM, Roman Shpount <roman@telurix.com<mailto:roman@telurix.com>> wrote:

On Mon, Mar 7, 2016 at 12:21 PM, Paul Kyzivat <pkyzivat@alum.mit.edu<mailto:pkyzivat@alum.mit.edu>> wrote:
On 3/7/16 12:12 PM, Roman Shpount wrote:
On Mon, Mar 7, 2016 at 11:52 AM, Paul Kyzivat <pkyzivat@alum.mit.edu<mailto:pkyzivat@alum.mit.edu>
<mailto:pkyzivat@alum.mit.edu<mailto:pkyzivat@alum.mit.edu>>> wrote:

    On 3/7/16 11:26 AM, Christer Holmberg wrote:

        I suggest dtls-association-id. In my opinion there is no longer
        the same
        need to be aligned with the name of the connection attribute.


    This seems plausible. But I want to reserve judgement until the
    detailed semantics of the attribute are worked out:

I wanted to model this attribute on ICE ufrag

    - is it numeric, or a token?


I was thinking something like this:
dtls-association-id-attr = "dtls-association-id" ":" dtls-association-id

dtls-association-id = 4*256dtls-association-id-char

dtls-association-id-char = ALPHA / DIGIT / "+" / "/"

Why this in particular? Is it your intent to reuse values that were generated for another purpose? Or to reuse code that is also used for another purpose?

This is reusing the definition (and generation code) from ice-ufrag attribute (https://tools.ietf.org/html/rfc5245#section-15.4).

    - any rules for how the value chosen?


The dtls-association-id attributes MUST be chosen randomly when new DTLS
association is requested.  The dtls-association-id attribute MUST
contain at least 24 bits of randomness.  This means that
the dtls-association-id  attribute will be at least 4 characters
long since the grammar for this attribute allows for 6 bits of
randomness per character.  The attribute MAY be longer than 4
characters, respectively, of course, up to 256 characters.  The upper
limit allows for buffer sizing in implementations.  Its large upper
limit allows for increased amounts of randomness to be added over time.

What is the reason for using random values, rather than some well defined sequence of values? (Where the sequence might start with a random value, or perhaps every sequence would start with 0.)

We are dealing with multiple end points which can be reconnected in more or less random order. Each end point needs to detect when it is talking to a new end point or to a new DTLS association. This is why I picked a random value. Once again, if this works for ICE, should work for DTLS just as well.

Let me know if you have a better idea for ID generation.

Regards,
_____________
Roman Shpount