Re: [MMUSIC] 1-week WGLC on recent changes in draft-ietf-mmusic-dtls-sdp

Christer Holmberg <christer.holmberg@ericsson.com> Thu, 27 April 2017 19:24 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 6E19F129B72; Thu, 27 Apr 2017 12:24:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level:
X-Spam-Status: No, score=-4.221 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sYv13-agSOSj; Thu, 27 Apr 2017 12:24:18 -0700 (PDT)
Received: from sesbmg22.ericsson.net (sesbmg22.ericsson.net [193.180.251.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CD1AC129ADE; Thu, 27 Apr 2017 12:20:48 -0700 (PDT)
X-AuditID: c1b4fb30-af94d9a000001047-2e-5902448e110a
Received: from ESESSHC020.ericsson.se (Unknown_Domain [153.88.183.78]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 2E.83.04167.E8442095; Thu, 27 Apr 2017 21:20:46 +0200 (CEST)
Received: from ESESSMB109.ericsson.se ([169.254.9.104]) by ESESSHC020.ericsson.se ([153.88.183.78]) with mapi id 14.03.0339.000; Thu, 27 Apr 2017 21:20:01 +0200
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Roman Shpount <roman@telurix.com>
CC: Flemming Andreasen <fandreas@cisco.com>, mmusic <mmusic@ietf.org>, "draft-ietf-mmusic-dtls-sdp@ietf.org" <draft-ietf-mmusic-dtls-sdp@ietf.org>
Thread-Topic: [MMUSIC] 1-week WGLC on recent changes in draft-ietf-mmusic-dtls-sdp
Thread-Index: AQHSuqBQpUS/reyYTkmSRPXLKwFJlKHXx2EAgAEJXoCAAJ2TAIAALZIg
Date: Thu, 27 Apr 2017 19:19:59 +0000
Message-ID: <7594FB04B1934943A5C02806D1A2204B4CB893FA@ESESSMB109.ericsson.se>
References: <580940e1-4248-2903-b6e0-9ea440d83867@cisco.com> <CAD5OKxs-w1bz-9jBX9sdh+OA8vfo8DM90ZbzHyDgU-7XF-4pUA@mail.gmail.com> <D5275E07.1BC2F%christer.holmberg@ericsson.com> <CAD5OKxvoa0GZwNsA7XBn79jBdfozfGEvMrmTmi5DRVJOom-3mg@mail.gmail.com>
In-Reply-To: <CAD5OKxvoa0GZwNsA7XBn79jBdfozfGEvMrmTmi5DRVJOom-3mg@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: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupkkeLIzCtJLcpLzFFi42KZGbHdT7fPhSnSYMYPa4v/E+ezWry/oGsx dfljFosZF6YyO7B4TPm9kdVjyZKfTB63phQEMEdx2aSk5mSWpRbp2yVwZbx4M5m1YJZTxYut LawNjAccuhg5OSQETCR233zJ1sXIxSEkcIRRYuKnS1DOEkaJ9Ts3sHYxcnCwCVhIdP/TBmkQ EVCV+Pt9MhNIDbPAFEaJPUtvMYIkhAWCJToWH2ODKAqR2HDpDjOE7Sax7c8lMJsFqHnhyRWs IDavgK/EzYsX2CGW/WGUuLP1LxNIglMgUKL16kZ2EJtRQEzi+6k1YHFmAXGJW0/mM0GcLSCx ZM95ZghbVOLl43+sELaSROOSJ2BHMwtoSqzfpQ/RqigxpfshO8ReQYmTM5+wTGAUnYVk6iyE jllIOmYh6VjAyLKKUbQ4tTgpN93ISC+1KDO5uDg/Ty8vtWQTIzCCDm75bbCD8eVzx0OMAhyM Sjy8CT8ZI4VYE8uKK3MPMUpwMCuJ8CobMUUK8aYkVlalFuXHF5XmpBYfYpTmYFES53XcdyFC SCA9sSQ1OzW1ILUIJsvEwSnVwOhV7t3HyT9Vb4L9wiCRiyyNmt7noyVXnc9e9XVGR/9jhfbd Sd6azlfPbX14yfzsyxOO5xaynT6ZzPajUdv6GutdVd17k+bP4Kjsne77I9eSrfHXA5H1/35J fP18e9l0Z9tvT4STIo8WitgJvGbNOaHmznUsUnH9H4+TPF8Lg0NXBLx8u7t05T4lluKMREMt 5qLiRABXIiOJnAIAAA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/lad8ge_lXOCD2nSR1tqiaNdT6sU>
Subject: Re: [MMUSIC] 1-week WGLC on recent changes in draft-ietf-mmusic-dtls-sdp
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.22
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: Thu, 27 Apr 2017 19:24:21 -0000

Hi,

>>3. I think in section 10 RFC Updates it would look better if the title of
>>the section would be formatted like
>>"10.2.1. Update to RFC 5763 Section 5: Establishing a Secure Channel² and
>>then "OLD TEXT:/NEW TEXT:" sections without
>>titles or section numbers. This way section numbers from previous RFC
>>will not interrupt section flow of the current
>>document. Also, "RFC 5763 Section 5" should reference to section 5 of RFC
>>5763, not to the unexciting section number in the current draft.
>
>How would you fix section 10.3.1, where the old text refers to multiple
>sections (4., 4.1., etc)?
>
>For the section 10.3.1 I would name it "Update to Section 4: SDP Offerer/Answerer Procedures". I will make sure that "Section 4" points to the RFC 7345 Section 4, not >Section 4 in the current document. Within OLD TEXT, I would not include "4. SDP Offerer/Answerer Procedures" since it is already part of the common header and I would >list sub-section heading, such as "General" and Generating The Initial Offer" without section numbers.
>
>I know this is not ideal but will remove the section number confusion. The other options are:
>
>a) Put prefix in front of each subsection such as "RFC 7345: 4.1. General"

I don't like that, since the NEW TEXT would be empty.

>b) For this particular update simply put "The content of RFC 7345 Section 4 SDP Offerer/Answerer Procedures is replaced in its entirety with the following text:" and then >put the new text without the heading.
>
>In the NEW TEXT I would put current text without "4. SDP Offerer/Answerer Procedures".

I'd prefer something like that: simply add text saying that sub-sections 4.1 - 4.5 are removed, without actually including the old text itself. 

-----
 
>>>4. I think there is a lot of confusion on the list about handling of
>>>ClientHello before the answer is received. Should we
>>>add the following text to section 5.2 or 5.4:
>>>
>>> If DTLS ClientHello message is received before the answer is received
>>>ClientHello message MUST be cached, but not
>>> processed. When the answer is received and if SDP 'setup' attribute in
>>>the answer is 'passive', then DTLS handshake
>>> MUST proceed by processing the cached DTLS ClientHello message. If SDP
>>>'setup' attribute in the answer is 'active¹,
>>> the cached DTLS ClientHello message must be discarded and offerer MUST
>>>initiate a new DTLS handshake by sending a
>>> DTLS ClientHello message towards the answerer.
>>
>>Is that supported by DTLS? Shouldn¹t it be considered an error if you
>>receive a ClientHello that you shouldn¹t receive?
>
>Also, has the WG community agreed on the procedure you suggest? This WGLC
>is not about adding new functionality that has not been discussed.
>
>>Let me rephrase this as a more generic question. Section 5.2 currently says:
>>If the offerer inserts the SDP 'setup' attribute with an 'actpass' or 'passive' attribute value, the 
>>offerer MUST be prepared to receive a DTLS ClientHello message (if a new DTLS association is 
>>established by the answerer) from the answerer before the offerer receives the SDP answer.
>>
>>What does offerer supposed to do with the ClientHello which is received before the answer? 
>>Does it suppose to proceed with the handshake or cache it? Or do we prefer not to specify?

We can point out that it can happen, but I don't think we should specify procedures how to handle it. 

>This is not a theoretical problem, since client will get DTLS ClientHello before the answer on a large portion
>of the calls, since DTLS ClientHello is sent at the same time as an answer. Answer typically needs to got to
>signaling server and then back to offerer. ClientHello is sent directly from answerer to offerer, so it has one
>less hop to travel. This is a race condition and ClientHello has a shorter path to travel, especially when two
>end points are located on the same local network, but the signaling server is remote.
>
>The problem with immediately proceeding with DTLS handshake is that in case of full ICE or "pure" UDP, 
>offerer does not know where to send ServerHello. In case of full ICE, remote password is not known so 
>consent to send cannot be obtained. In case of of "pure" UDP, remote address is not known, since end 
>points do not have to use the same IP:port to send and receive data.
>
>On the other hand, in case of ICE Lite, ICE TCP passive, and SCTP, offerer can send ServerHello. We can
>either allow offerer to proceed with DTLS Handshake in these cases or specify that CleintHello should
>be cached anyway and handshake should not be initiated until the answer is received.

With ICE, don't you have to do at least one successful connectivity check before you can send anything?

>Finally, there is the issue on what should be done if multiple ClientHello messages are received due to either
>forking (sequential or parallel) or due to a denial of service attack (if attacker knows that ClientHello can force
>end point to initiate connection which will prevent legitimate connection from running, it can spray the server
>with fake ClientHello messages). If ClientHello is cached, then in combination with SDP UKS, cached ClientHello
>messages can be correlated with answer SDP and fake ClientHello messages discarded. Caching ClientHello can
>also cleanly resolve on what should happen when answer with setup:passive is received after ClientHello (which
>could be due to attack or forking).

I think Martin's draft could say that SDP UKS can be used to detect fake ClientHello messages.

>I understand this issue should have been brought up earlier, but I have not thought about it until Bernard
>brought up the issue of unverified media. Which brings the question, should this draft propose the solution
>for the unverified media issue and can this solution be just caching ClientHello until answer is received?

As Martin said, the ClientHello will be re-transmitted, so I don't think we should mandate caching. As I said above, we can point out that it can occur, and it will then be an implementation issue how to handle it.

Regards,

Christer