Re: [MMUSIC] DTLS-SDP and JSEP Conflicts

Eric Rescorla <ekr@rtfm.com> Mon, 04 September 2017 11:08 UTC

Return-Path: <ekr@rtfm.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 DC1DD128D0F for <mmusic@ietfa.amsl.com>; Mon, 4 Sep 2017 04:08:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[AC_BR_BONANZA=0.001, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 TDwFEj4rBCnR for <mmusic@ietfa.amsl.com>; Mon, 4 Sep 2017 04:08:30 -0700 (PDT)
Received: from mail-yw0-x22c.google.com (mail-yw0-x22c.google.com [IPv6:2607:f8b0:4002:c05::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EE2B9126E64 for <mmusic@ietf.org>; Mon, 4 Sep 2017 04:08:29 -0700 (PDT)
Received: by mail-yw0-x22c.google.com with SMTP id i66so771496ywc.0 for <mmusic@ietf.org>; Mon, 04 Sep 2017 04:08:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=c98RZdxK8JJ1SUPO3VXJtw5v0fMe0RW5utw2qiO9nw0=; b=t4lyuqx+F2w5fDmdNNypiIGuBkSinpo/RbVEYlxRvMhVEbHiyRHU5H0GB95VD+7R9D Bee/yaXE13q39V55paBhCgRm62SpEKN83XilpvOMmWsi05Y3rcYsxJ1kA5k7V8wdFado PiWL4uJGfMZ52Qprb/7OLYwwXXCqc9X9sM5dWbCMVUH19bd5HgGYWm3uJVbzf5HKpuxP WcxihweOqUb9s66iXq1wAvp26pT2gZXX7QnoRfwoVnZ02LoZPQcL0zevFIxei5HFnEJ8 446pcoq6A4/7Y0O30LO7DyyERoI99upiA27HvXG1rMrAOEqaldYBCJMqEfo2zK3p3uLq x8LA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=c98RZdxK8JJ1SUPO3VXJtw5v0fMe0RW5utw2qiO9nw0=; b=MeWs4dlB9jbM8Nv3pIjD4kez3T2JNbV1OFhUEj4jADYaVpnL4P5xgZHDDY/jArZsZ4 757fam4x51ze0NjGmbEUJ0nn6P7M7BOme4PzCWaxN2iWxNgtQHs37A4ElwBiv6bjB3z6 sO3Hr5VTi7fqmroPtIjqIgKuL3Ap1dWnxtjTggQCfEDax+sa4uNV08zaO9h0Qut8o6PH AoWDqixNFsEi94WR5Y18rObx4QhwzE49KxrS/+E55+VT/tjRTVFPmfyL/wiIn5dn4dKN +cmwXty9uTVwvhiJFFXpNbneQQXdow7cejEr/mnAeajLCdjWfQZB7XJ1bDo0ZYCODcX0 msPw==
X-Gm-Message-State: AHPjjUhO7i1MAwWwBxV/gBfKO5EF79TyDJpGdHh4ofn/y4LsrJqPA7Xq wWQtqHMODYINPw7ORNTmYlmZCqvL7PH8
X-Google-Smtp-Source: ADKCNb7J5jNJMkUV4QQk/x//3z1gDQPSXcnfRssvCjq7AoX2GUBnLxleWKpBxCc4JpxHkz2B9VXrRRB7a1u5ATXYb0A=
X-Received: by 10.37.56.194 with SMTP id f185mr147817yba.249.1504523308997; Mon, 04 Sep 2017 04:08:28 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.218.130 with HTTP; Mon, 4 Sep 2017 04:07:48 -0700 (PDT)
In-Reply-To: <D5D30222.20F35%christer.holmberg@ericsson.com>
References: <f353ad39-4ee5-4661-8e99-7fab6e394e91@nostrum.com> <CAOW+2dtv8r7qTyNxWY8NacfEh+Ojk5ObVAXEur3D4GyMw89YaQ@mail.gmail.com> <CABcZeBOJgyva5e-ykH-RkKN=BJPrXVYLu8vZbbNBv0xscv6bOA@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B562818F7@ESESSMB109.ericsson.se> <CABcZeBNv4fdFTJ+tXeBkMDqbMCEw916Txt8owFY-X7ijX0-FcA@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B56282B43@ESESSMB109.ericsson.se> <CABcZeBNh9ep+tq4_wWHT6uqXZz=OS8VngrmtspPz5nJ=pZS0ow@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B562869A2@ESESSMB109.ericsson.se> <CABcZeBPj6e=rtYHr4nyqeaB58TDBEjyB0xYeJJ+P63rO0DSw+A@mail.gmail.com> <D5D30222.20F35%christer.holmberg@ericsson.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Mon, 04 Sep 2017 04:07:48 -0700
Message-ID: <CABcZeBOGsFkQbs5bRAckok0kKkjMdbR8nBK5JO=XJcChsyquQQ@mail.gmail.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>
Cc: Bernard Aboba <bernard.aboba@gmail.com>, "mmusic@ietf.org" <mmusic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c09336463b65605585b21ec"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/HYLtkMWYgca4PmU6tnBDEsZ__qI>
Subject: Re: [MMUSIC] DTLS-SDP and JSEP Conflicts
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: Mon, 04 Sep 2017 11:08:35 -0000

Yes, that seems like the logical extension of this. Note that this is only
in the edge case
where the offerer offers an ICE restart, because if the offerer does not,
we all agree that
you need to keep the existing fingerprint.

-Ekr


On Mon, Sep 4, 2017 at 3:14 AM, Christer Holmberg <
christer.holmberg@ericsson.com> wrote:

> Hi,
>
> >>> In my opinion, things should behave as follows. The semantics of the
> >>>indicators are
> >>> tls-id     old ufrag                    new ufrag
> >>>
> >>> ------     --------------------------------------------------
> >>>
> >>> none       No change                    ICE restart, same DTLS
> >>>
> >>> old        ICE restart                  ICE restart, same DTLS
> >>>
> >>> new        Error                        ICE restart, new DTLS
> >>>
> >>> However, in all cases but one, the answer MUST match the offer. I.e.,
> >>>the answer must
> >>> do an ICE restart iff the offer had one and a new DTLS connection iff
> >>>the offer had one.
> >>> However, if the answerer does not support tls-id, then it might
> >>>respond to a new tls-id
> >>> with no tls-id, which means it does not intend to make a new DTLS
> >>>connection. The offerer
> >>> can either accept that or tear everything down.
> >>>
> >>> I agree that the specs do not currently make this clear
> >>
>
> >> Because that¹s not how the procedures are currently written.
> >
> > Again, JSEP and this document are in conflict, hence it's unclear.
> >
>
> >> Now, based on your suggestion, if the offerer doesn¹t know whether the
> >>answerer supports tls-id, does that mean that the only way
> >> for the offerer to ensure that the re-offer will trigger a new DTLS
> >>association is by modifying the fingerprint set in the offer?
> >
> > That's true in any case, because we have implementations which behave
> >that way and we can't change them.
>
> On GitHub you also suggested
> (https://github.com/cdh4u/draft-dtls-sdp/issues/37) that the answerer,
> even if it supports tls-id, shall not be able to trigger a new DTLS
> association (read: change the tls-id value). I assume that means the
> answerer would not be able to change its fingerprint set either, or do
> anything else that would trigger a new DTLS association?
>
> Regards,
>
> Christer
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Sat, Sep 2, 2017 at 10:51 PM, Christer Holmberg
> <christer.holmberg@ericsson.com> wrote:
>
> Hi,
>
> >Yes. Indeed, that's the crux of the disagreement between JSEP and this
> >document
>
> So, just to clarify: in your opinion, if an endpoint receives an
> offer/answer WITHOUT a tls-id, but with a NEW ufrag (read: ICE restart),
> the new urfag will NOT trigger a new
>  DTLS association. Right?
>
> Regards,
>
> Christer
>
>
>
>
>
>
> On Sat, Sep 2, 2017 at 3:31 PM, Christer Holmberg
> <christer.holmberg@ericsson.com> wrote:
>
> Hi Ekr,
>
> What if the remote peer does not support/include the tls-id attribute?
>
> Regards,
>
> Christer
>
> From: mmusic [mailto:mmusic-bounces@ietf.org]
> On Behalf Of Eric Rescorla
> Sent: 02 September 2017 22:36
> To: Bernard Aboba <bernard.aboba@gmail.com>
> Cc: mmusic@ietf.org
> Subject: Re: [MMUSIC] DTLS-SDP and JSEP Conflicts
>
>
>
> On Tue, Aug 29, 2017 at 7:07 AM, Bernard Aboba <bernard.aboba@gmail.com>
> wrote:
>
> On Issue 1, Adam said:
>
>
> "
>
> 1.
> (Issue 1c) The crux of the matter: does ICE restart cause DTLS to restart?
> The primary rationale outlined in RFC5245 for restarting ICE is changing
> the destination (IP address or port) of an ongoing media stream -- which
>  would commonly involve changing to a different physical device. While it
> would, in theory, be possible to transfer the TLS state associated with
> the connection between devices, this is rather cumbersome (and, as far as
> I know, not generally supported by TLS
>  libraries). From that perspective, it is my opinion that the DTLS-SDP
> document is correct that an ICE restart necessitates a new DTLS
> connection; and I conclude that JSEP needs to change.
> "
>
>
>
> [BA] Agree that for consistency, it is best for an ICE restart to
> necessitate a new DTLS connection, since an ICE restart can result in
> connection to a different device (and the need for a new DTLS connection).
>
>
>
>
>
>
>
>
>
> I'm not persuaded by this: the primary reason for an ICE restart is not
> changing devices but rather trying to deal with topology changes and/or
> connectivity check failures. If you actually *do* change devices, then
> it's also quite probably
>  you will have a new certificate fingerprint, in which case you will get a
> new DTLS connection in any case. In other words, tls-id should be used to
> say "I want a new DTLS connection in spite of the fingerprint being the
> same" (what JSEP says), not "I want
>  to keep the DTLS connection even though I am doing an ICE restart"
>
>
>
> -Ekr
>
>
>
>
>
> On Fri, Aug 25, 2017 at 4:30 PM, Adam Roach <adam@nostrum.com> wrote:
>
>
>
> MMUSIC --
> [I will be posting a separate message to RTCWEB directing interested
> parties to discuss this issue on the MMUSIC mailing list]
> During the IESG review of draft-ietf-mmusic-dtls-sdp, EKR identified some
> conflicts between the procedures in DTLS-SDP and JSEP were identified.
> This note is an attempt to summarize them. I have also made an initial
> proposal, for each conflict, regarding
>  which document needs to change, in and which way.
> Issue 1 (quoting EKR), which raises a couple of additional sub-issues:
>
> 1. Assuming I understand this document correctly, it conflicts withthe
> guidance in JSEP. Specifically, S 4 says:    No default value is defined
> for the SDP 'tls-id' attribute.   Implementations that wish to use the
> attribute MUST explicitly   include it in SDP offers and answers.  If an
> offer or answer does not   contain a 'tls-id' attribute (this could happen
> if the offerer or   answerer represents an existing implementation that
> has not been   updated to support the 'tls-id' attribute), unless there is
> another   mechanism to explicitly indicate that a new DTLS association is
> to be   established, a modification of one or more of the following
> characteristics MUST be treated as an indication that an endpoint   wants
> to establish a new DTLS association:    o  DTLS setup role; or    o
> fingerprint set; or    o  local transport parameters; or    o  ICE ufrag
> value This seems to say that if there is no tls-id attribute, then an ICE
> restart(which necessitates a ufrag change) requires a DTLS restart. JSEP
> isn'tincredibly clear on this point, but 5.7.3 seems to say that
> tls-idneed not be present:       *  tls-id value, which MUST be set
> according to         [I-D.ietf-mmusic-dtls-sdp], Section 5.  If this is a
> re-offer         and the tls-id value is different from that presently in
> use,         the DTLS connection is not being continued and the remote
>     description MUST be part of an ICE restart, together with new
> ufrag and password values.  If this is an answer, the tls-id
> value, if present, MUST be the same as in the offer. I believe that the
> first sentence is in error, as we clearlycan't have JSEP implementations
> requiring that tls-id be present.    ...      o  If the remote DTLS
> fingerprint has been changed or the tls-id has      changed, tear down the
> DTLS connection.  This includes the case      when the PeerConnection
> state is "have-remote-pranswer".  If a      DTLS connection needs to be
> torn down but the answer does not      indicate an ICE restart or, in the
> case of "have-remote-pranswer",      new ICE credentials, an error MUST be
> generated.  If an ICE      restart is performed without a change in tls-id
> or fingerprint,      then the same DTLS connection is continued over the
> new ICE      channel.      I think the best interpretation of this is that
> if tls-id is not present(and hence unchanged) then ICE restart does not
> cause DTLS restart.This is also my memory of the consensus in RTCWEB. In
> any case, thesetwo documents clearly must match.
>
>
> My observations/recommendations:
>
> 1. (Issue 1a) EKR is correct that the first sentence of the bullet from
> JSEP needs to be removed so as to enable interoperation with non-JSEP
> implementations.
> 2. (Issue 1b) Additionally the final sentence of that bullet ("If this is
> an answer, the tls-id value, if present, MUST be the same as in the
> offer") conflicts with the definition of tls-id ("the offerer and answerer
>  generate their own local 'tls-id' attribute values, and the combination
> of both values identify the DTLS association"). In this case, the DTLS-SDP
> document would appear to be correct (the fact that the two parties choose
> different IDs is integral to the mechanism's
>  design), so JSEP needs to change.
> 3. (Issue 1c) The crux of the matter: does ICE restart cause DTLS to
> restart? The primary rationale outlined in RFC5245 for restarting ICE is
> changing the destination (IP address or port) of an ongoing media stream
> -- which would commonly
>  involve changing to a different physical device. While it would, in
> theory, be possible to transfer the TLS state associated with the
> connection between devices, this is rather cumbersome (and, as far as I
> know, not generally supported by TLS libraries). From
>  that perspective, it is my opinion that the DTLS-SDP document is correct
> that an ICE restart necessitates a new DTLS connection; and I conclude
> that JSEP needs to change.
>
>
> Issue 2 (quoting EKR):
>
> 2. S 4 says:    The mux category [I-D.ietf-mmusic-sdp-mux-attributes] for
> the 'tls-   id' attribute is 'IDENTICAL', which means that the attribute
> value   must be identical across all media descriptions being multiplexed
>  [I-D.ietf-mmusic-sdp-bundle-negotiation]. This is not actually what JSEP
> requires:    different categories.  To avoid unnecessary duplication when
>  bundling, attributes of category IDENTICAL or TRANSPORT MUST NOT be
> repeated in bundled m= sections, repeating the guidance from
> [I-D.ietf-mmusic-sdp-bundle-negotiation], Section 8.1.  This includes I
> suspect this is old text.
>
>
> (Issue 2) JSEP is aligned with
> draft-ietf-mmusic-sdp-bundle-negotiation-38, while DTLS-SDP does not. This
> is a largely aesthetic decision (although the JSEP/BUNDLE approach does
> save a tiny handful of bytes), but I think changing one document (DTLS-SDP)
>  makes more sense than changing two. (I suspect the BUNDLE formulation
> more closely tracks consensus anyway).
>
> /a
>
>
>
>
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic
>
>
>
>
>
>
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>