Re: [MMUSIC] WGLC on draft-ietf-mmusic-sdp-uks-03

"Martin Thomson" <mt@lowentropy.net> Fri, 01 March 2019 06:03 UTC

Return-Path: <mt@lowentropy.net>
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 397FE1295D8; Thu, 28 Feb 2019 22:03:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=VwBUPYQx; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=bf+h2T9y
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 Msvi0ZpPWer1; Thu, 28 Feb 2019 22:03:45 -0800 (PST)
Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8AFC41311F1; Thu, 28 Feb 2019 22:03:45 -0800 (PST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id 40CCE3582; Fri, 1 Mar 2019 01:03:44 -0500 (EST)
Received: from imap2 ([10.202.2.52]) by compute1.internal (MEProxy); Fri, 01 Mar 2019 01:03:44 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=message-id:in-reply-to:references:date:from:to:cc:subject :content-type; s=fm1; bh=U4KT3KXYTXNjUva2Gl/O7K3NfQ+4UxPENa2xa6T eyl4=; b=VwBUPYQxLjjJ5eno9YVW0fo9v6KJr6ZctsBPOoFFrEjGmNd0Up03fAU x8QremN0ChAh+gj75b6XS41uHgEK0IS6FA5X+5OHomJz+e6aCPHcGBwjAqnWNpnk QUBoenhkXluOfmwFh3QzmBNjsu8MiXV2xBOz+poKO3LwI3P9bKNI/rsgeyAVQiYm DAz3H/N947NfQgTzG1y7gMqlLs98rLgcR3zCkypp1rMiV9RDCzGr/lg3ovUda/Er 5qH1ouAPbSW58Zd+jeh82V7fv1cHpDMRgze/NWzGIAqGmstzQ0Q/NmhbLjHcx4Nv aAZDotIlaD0u6QQPiwUoNG00QhcYykQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=U4KT3KXYTXNjUva2G l/O7K3NfQ+4UxPENa2xa6Teyl4=; b=bf+h2T9y0K6gEZVAmpwdwueHgqiiZVJ7h NpUnUx61AAa+OVdxtKS1x0DA1zr68A5lNGk0IzL1m0vRK6Uq+SL2hIrPm+ZO/aeT WUQ3An1UZiUNGajfM8lqxKL6+JIkuhndCyGx4TJ/odebjs/c5CXRuMs7EJipifRp 6IEwFGXrKl7u0IaD7ERCyqO5bWzKiNVmJMcL/eRIQbtLbLLQ5XHtMKkHLc9NXqlx ihAJCFmK4zqcLskSiWkgN65t4brXHSbltmZzpjPNCA1USnitCm+/NOF5D05xrSkw EM16I/Jo1UgjoAhiS+gUZF+5r9rzuaD1Ia02XU9J7KzvLz8/4KOlA==
X-ME-Sender: <xms:P8t4XMIh1MhOKjLciQy6qRPRkfFxMPgOZOztqSX3cCy6_vS5KarnWg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrvdeggdelgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgfkjghffffhvffutgesthdtredtreertdenucfhrhhomhepfdforghrthhi nhcuvfhhohhmshhonhdfuceomhhtsehlohifvghnthhrohhphidrnhgvtheqnecuffhomh grihhnpehgihhthhhusgdrtghomhenucfrrghrrghmpehmrghilhhfrhhomhepmhhtsehl ohifvghnthhrohhphidrnhgvthenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:P8t4XAahoxTcycmthbFPpbLIxTDF7SYLv_I1ELCsArjXt6V0bFEzzA> <xmx:P8t4XHvgiTMfHb_Mq6OR6fUzAUsLcSYdphFJFHI2bfb6q_zPAiS6Yw> <xmx:P8t4XNsfxnuq4FPBGsUiTZa0Fcf9RVCBzh5vnn8u-0RD7uLokgAl_g> <xmx:P8t4XHO8XMO38QxwLd3rCh8sS2ShIqX779sY7kgk0FvThNr7M0Ag2g>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 442F77C4CE; Fri, 1 Mar 2019 01:03:43 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-925-g644bf8c-fmstable-20190228v5
X-Me-Personality: 92534000
Message-Id: <bd9f46be-abee-438c-b3f8-52eafd7b1b2e@www.fastmail.com>
In-Reply-To: <HE1PR07MB3259FFC36B8E84EA647982728D7A0@HE1PR07MB3259.eurprd07.prod.outlook.com>
References: <ec74675d-c576-f728-0481-c9488fb13beb@cisco.com> <DB7PR07MB4988216B696D0E69ED14D5F095820@DB7PR07MB4988.eurprd07.prod.outlook.com> <1547691891.367836.1636707376.1C1427EE@webmail.messagingengine.com> <AM0PR07MB5793531D0F31BCDBEF95CE8695830@AM0PR07MB5793.eurprd07.prod.outlook.com> <1548111599.1648805.1640352152.40952394@webmail.messagingengine.com> <HE1PR07MB3259FFC36B8E84EA647982728D7A0@HE1PR07MB3259.eurprd07.prod.outlook.com>
Date: Fri, 01 Mar 2019 01:03:43 -0500
From: Martin Thomson <mt@lowentropy.net>
To: Bo Burman <bo.burman@ericsson.com>, mmusic <mmusic@ietf.org>
Cc: "draft-ietf-mmusic-sdp-uks@ietf.org" <draft-ietf-mmusic-sdp-uks@ietf.org>
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/EVaaXXjlKRXQ3BDQ1zWgc5NjAzw>
Subject: Re: [MMUSIC] WGLC on draft-ietf-mmusic-sdp-uks-03
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.29
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: Fri, 01 Mar 2019 06:03:48 -0000

Thanks for reviewing Bo,

I've got the changes I've made up at https://github.com/martinthomson/sdp-uks/pull/7

The changes look like a lot, but that is mostly because of some reordering of text.  I've reworded a few things to improve clarity.  I appreciate having a new set of eyes on this.  I find I tend to miss places where the text assumes too much prior knowledge.

I'll put a second PR up for Flemming's review shortly.  That will stack on top of this one.

On Tue, Feb 26, 2019, at 00:23, Bo Burman wrote:
> Hi Martin,
> 
> I've now also reviewed this and have a set of comments and questions, 
> after taking Magnus' comments and your suggested edits in response to 
> that into account:
> 
> Section 2.1:
> * In bullet 2, "complete communications" is slightly unclear (more so 
> if "complete" is used in other contexts further down in the text). Do 
> you with "complete" mean "accept", or perhaps "accept setting up"?

Yes, I can see how this could be confusing. Reworded to:

"2. No entity will successfully establish a session with a peer unless they are
   willing to participate in a session with that peer."

> * Don't understand what is meant with "...second condition..."; is it 
> bullet #2, or is it referring to "...joining two separate sessions"?

Bullet 2, but see below.

> * Also don't really understand in what way that second condition is 
> "not necessary"; to limit the attacker capabilities (related to bullet 
> #2), for the attacker to join two sessions, or something else like "for 
> the attack to succeed"?
>
> * Just to confirm, does "removing this constraint" refer to removing 
> use of an identity binding?

Does this make more sense?

"Systems that rely on strong identity bindings, such as those defined in
{{WEBRTC}} or {{!SIP-ID}}, have a different threat model, which admits the
possibility of attack by an entity with access to the signaling channel.
Attacks under these conditions are more feasible as an attacker is assumed to be
able to both observe and modify signaling messages."

> Section 3:
> * Is the "victim" of the first paragraph the same or another victim 
> compared to the one mentioned in the next paragraph?
> 
> * Is "another entity of the attacker's choice" also to be considered a victim?

Yes, there are really two victims here, so I've reworded to use first victim and second victim.

"An attacker causes an
identity binding to be created that binds an identity they control to the
fingerprint of a first victim.

"An attacker can thereby cause a second victim to believe that they are
communicating with an attacker-controlled identity, when they are really talking
to the first victim.  The attacker only needs to create an identity assertion
that covers a certificate fingerprint of the first victim."

> * The last paragraph in section 3, just before section 3.1 "The same 
> technique..." seems a bit misplaced, after text talking about a 
> solution. Should it perhaps be moved just before the paragraph "The 
> problem..." in section 3? Or, is this "same technique" referring to 
> what is described in section 4?

Yes, this was a little light.  I've moved it up with the attack synopsis.

"A variation on the same technique can be used to cause both victims to both
believe they are talking to the attacker when they are talking to each other.
In this case, the attacker performs the identity misbinding once for each
victim."
 
> Section 4:
> * First sentence, "similar attack"; similar to what?

Yeah, that lost context.  How about:

"Even where the integrity of session signaling can be relied upon, an attacker
might still be able to create a session where there is confusion about the
communicating endpoints by substituting the fingerprint of a communicating
endpoint."

> Section 4.1:
> * Believe it would be helpful for the reader to better understand why 
> "Mallory has no real interest in seeing that session complete"

The next sentence is intended to explain this point: Mallory needs Patsy to maintain her end of the communications, lest Norma believe that the session is broken.
 
> * Same sentence, does "session complete" mean "session setup complete"? 
> I first interpreted "complete" as "conclude" in the meaning "terminate".
> 
> * Same paragraph, should "call completion" be "call setup completion", 
> and "session completes" be "session setup completes"?
> 
> * Same paragraph, "will likely be discarded by Patsy"; believe it would 
> be helpful to say why.

Here's what I ended up with:

"Though Patsy needs to believe that the second signaling session has been
successfully established, Mallory has no real interest in seeing that session
also be established.  Mallory only needs to ensure that Patsy maintains the
active session and does not abandon the session prematurely.  For this reason,
it might be necessary to permit the signaling from Patsy to reach Norma to allow
Patsy to receive a call setup completion signal, such as a SIP ACK.  Once the
second session completes, Mallory might cause DTLS packets sent by Norma to
Patsy to be dropped.  It is likely that these DTLS packets will be discarded by
Patsy as Patsy will already have a successful DTLS connection established."

> Section 4.2:
> * I believe the first paragraph ("An attack on... ...vulnerable to 
> attack.") would also be helpful as first text of section 4. Move? Copy?

Good suggestion.  I moved it up.

> * "Validating that peers..." -> "Successful validation that peers..."?

Yep.  Expanded to

"Successful validation that the identifier matches the expected value means that
the connection corresponds to the signaled session and is therefore established
between the correct two endpoints."

> Section 4.3:
> * "When used with SDP, the value includes..." -> "When used with SDP, 
> the value MUST consist of..."?

Thanks.

> Section 5:
> * "Use of the "external_session_id"
>    does not guarantee that the identity of the peer at the TLS layer is
>    the same as the identity of the signaling peer"; sounds a bit 
> strange - isn't this what the draft is supposed to solve? Is "... when 
> used with session concatenation" meant? 

This is a fundamental restriction of the design and with DTLS-SRTP in the absence of some sort of identity bindings.  As described here, an attacker can establish two sessions, call them A and B, with two different parties, call them Alice and Bob if you like.  It can send Bob's connection parameters (ICE, fingerprints,etc...) to Alice, and forward Alice's details to Bob in the same way.  This creates two signaling sessions (or 3pcc if you like), one between Alice and Attacker, and one between Attacker and Bob.  But there is only one media session between Alice and Bob.

I've done some rearranging here in an attempt to improve the flow of the section.  There are a few more words.  Let me know if it makes sense.

> * "Similarly, data from one TLS connection..."; I assume "data" means 
> "security-related information", not "user data" (TLS payload)?

Yep, thanks.