[As SIMPLE co-chair]

draft-ietf-simple-msrp-sessmatch has some significant additions from the 
version for which we originally requested publication. I implore everyone who 
cares one way or another about this draft to re-review it as soon as they are 
able.

Thanks!

Ben.

On Oct 15, 2010, at 5:07 AM, Gonzalo Camarillo wrote:

> Hi,
> 
> I am going to send this draft back to the SIMPLE WG so that they discuss
> these issues. Once the WG reaches (rough) consensus on what to do, I
> will be issuing a second IETF LC so that everybody is on the same page.
> 
> Cheers,
> 
> Gonzalo
> 
> On 14/10/2010 11:27 PM, Cullen Jennings wrote:
>> 
>> The new draft is clearer but I still don't think it addresses my concerns. I 
>> would say at this point they could be summarized as
>> 
>> 1) The draft is very hard to review without doing the diffs to 4975. To try 
>> and help instead of just complain, I'm willing to go back patch these 
>> changes into the last XML for 4975 and provide a draft that we can actually 
>> read to see what this all means. I can't do that till after the -01 deadline.
>> 
>> 2) As far as I can tell, this does change the security of 4975 in a pretty 
>> significant way in that this allows a MITM to masquerade with the wrong to 
>> and from path that may be in the cert. It is not clear how it work when the 
>> end points are not using self signed certs and changes the preferred 
>> deployment mode from using certs rooted in a trust anchor to self signed. 
>> All this seems to significantly weaken the security of 4975 which concerns 
>> me and I have not seen relevant discussion of all this. I am open to the 
>> idea that it does not making this much worse than they currently are in 4975 
>> and that it is a reasonable trade off but I'd like to see concrete 
>> discussion of the issues and tradeoffs. How bad is it? how much worse is it? 
>> People says it is no worse but I and several others remain unconvinced that 
>> it is the same as 4975. I'd rather see a very explicitly discussion with 
>> people like the security reviewer about how much this changes things and if 
>> it is acceptable. It's n
> ot easy to sort this all out - it actually might be acceptable - I'm just not 
> convinced yet and the "there is no problem because there is not change" form 
> of argument is not convincing me - clearly there is a a change and at causal 
> glance the point of that change seems to be to insert a MITM.
>> 
>> 3) The backwards comparability issue seems huge. Some people have said an 
>> endpoint using this draft will not talk with one that only does 4975. Yet if 
>> this draft if published as an RFC would basically depreciate the 4975 and 
>> replace it with a the result of applying this diff to 4795. So if one person 
>> implements the pre update version, and another person the post - it's not 
>> clear to me how we migrate from old to new on the existing deployments. A 
>> flag day is obviously not going to work. The more I look at this, the more I 
>> think this draft needs to be  recast as a backwards compatible extension to 
>> 4975 and not a draft that update 4975. When I look at how this changes 4975 
>> it seems to mostly relax the existing security but not disallow things that 
>> used to work so I think it should be possible to do this. On a side note, I 
>> phoned a few people who I know that have MSRP implementation and none of 
>> them had any plans to implement this and were surprised to hear there was a 
>> draft t
> hat would update in 4975 with a change like this. To me this combined with 
> the no backwards compatibility issue argues strongly for figuring out how to 
> make this an extension instead of a change to MSRP.
>> 
>> 4) When I search the email lists, I find more more people who see 
>> significant problems with this than I find people that seem to think it is 
>> OK. I don't think it has consensus -I think it just has people who stopped 
>> care.  The changes that needed to happen in IETF LC to fix this draft so it 
>> had any chance of working at all more or less convinced me the WG did not 
>> read this draft. The ietf@ietf.org list is not an ideal location for 
>> discussion that rewrites pretty much all of the normative text of this draft 
>> (which is what is happening here).
>> 
>> Cullen
>> 
>> 
>> 
>> On Oct 5, 2010, at 1:33 AM, Gonzalo Camarillo wrote:
>> 
>>> Hi,
>>> 
>>> Christer has submitted a new revision of this draft:
>>> 
>>> https://datatracker.ietf.org/doc/draft-ietf-simple-msrp-sessmatch/
>>> 
>>> Those of you who sent IETF LC comments on this draft, could you please
>>> have a look at the new version and let Christer know if he has addressed
>>> your concerns?
>>> 
>>> Thanks,
>>> 
>>> Gonzalo
>>> 
>>> 
>>> On 31/08/2010 8:39 PM, Christer Holmberg wrote:
>>>> Hi,
>>>> 
>>>> The purpose of this e-mail is to address the secdir comments given by 
>>>> Richard
>>>> Barnes and Ted Hardie. Due to summer vacations, standardization meetings
>>>> etc it took a while to put the e-mail together, and we appologise for that.
>>>> 
>>>> GENERAL
>>>> =======
>>>> 
>>>> First, the draft does NOT propose any changes to the TLS authentication
>>>> procedures – that will be clarified. The changes are only related to the
>>>> procedure for matching an incoming MSRP message to an MSRP session that
>>>> has been negotiated using SDP – once any TLS authentication procedure has
>>>> already taken place.
>>>> 
>>>> So, in case of TLS and name based authentication, if an SBC/ALG modifies
>>>> the a=path MSRP URI, the TLS authentication WILL fail. That is the current
>>>> behavior, and sessmatch doesn’t change that.
>>>> 
>>>> We understand that this fact needs to be clearly indicated in the draft.
>>>> 
>>>> Basically sessmatch allows so that, when using peer to peer MSRP, SIP SBCs
>>>> and SIP aware firewalls can be in the SIP signaling path without acting as
>>>> MSRP B2BUAs. But, for an SBC or ALG to interwork correctly with MSRP relays
>>>> the SBC/ALG needs to act as MSRP B2BUA, as today.
>>>> 
>>>> Sessmatch aims to extend the usability of MSRP peer to peer communication 
>>>> to
>>>> scenarios where simple ALGs/SBCs are used, and at least in our experience
>>>> customer interest for standard MSRP has grown (from more or less zero)
>>>> dramatically due to sessmatch. And, OMA, which previously used a 
>>>> *non-standard*
>>>> version of MSRP (with no interoperability with standard MSRP), has also 
>>>> agreed
>>>> to switch to sessmatch (even if it required a number of changes in their
>>>> specifications).
>>>> 
>>>> Second, the intention of sessmatch is not to modify the MSRP URI matching 
>>>> rules,
>>>> but rather to not use MSRP URI matching for session matching.
>>>> 
>>>> Please also note that when we talk about SBCs/ALGs, we refer to entities 
>>>> that
>>>> normally do NOT have the capability to act as MSRP B2BUAs.
>>>> 
>>>> We will comment the individual comments based on the assumptions above.
>>>> 
>>>> 
>>>> Comments from Richard
>>>> =====================
>>>> 
>>>>> I have reviewed this document as part of the security directorate's 
>>>>> ongoing
>>>>> effort to review all IETF documents being processed by the IESG. These
>>>>> comments were written primarily for the benefit of the security area 
>>>>> directors.
>>>>> Document editors and WG chairs should treat these comments just like any 
>>>>> other
>>>>> last call comments.
>>>>> 
>>>>> This document changes the URI matching algorithm used in MSRP.  MSRP 
>>>>> sessions
>>>>> are typically initiated using SDP bodies in SIP.  These SDP
>>>>> bodies contain MSRP URIs that the peers use to contact each other.
>>>>> When one peer receives a request to initiate a session, he verifies that 
>>>>> the
>>>>> URI being requested is one that he initiated in SDP, thereby using the 
>>>>> URI as a
>>>>> shared secret to authenticate that the originator of the session actually
>>>>> received the SDP body in question.
>>>>> 
>>>>> According to the current SDP specification, this comparison is performed 
>>>>> over
>>>>> the whole URI; this document restricts the comparison to the "session-id"
>>>>> component, omitting the host, port, and transport components.  The goal 
>>>>> of the
>>>>> document is to facilitate a certain class of man-in-the-middle attack, 
>>>>> namely
>>>>> to allow a signaling intermediary to insert a media intermediary.  The
>>>>> restriction on the URI comparison is needed in order for the media 
>>>>> intermediary
>>>>> not to have to modify URIs in MSRP packets to reflect the modifications 
>>>>> to URIs
>>>>> in SDP bodies performed to redirect traffic through the media 
>>>>> intermediary.
>>>> 
>>>> When an MSRP UA receives an MSRP packet it performs msrp session matching 
>>>> in order
>>>> to verify that the msrp packet belongs to an existing SDP negotiated msrp 
>>>> session
>>>> at the UA. RFC4975 prescribes that URI matching should be used for session 
>>>> matching.
>>>> We argue that the namespace scoping of the session-id values that use of 
>>>> URI matching
>>>> brings is unnecessary. The 80-bit randomness of the session-id and the 
>>>> fact that it
>>>> was the UA itself that decided on the session-id value and can ensure that 
>>>> it is
>>>> unique within the UA makes the session-id sufficiently unique for session 
>>>> matching.
>>>> Sessmatch is not changing the MSRP URI matching algorithm, it is changing 
>>>> the session
>>>> matching algorithm not to use MSRP URI matching.
>>>> 
>>>>> I have a few significant reservations about this document:
>>>>> 
>>>>> 1) This extension makes it more difficult for MSRP entities to secure 
>>>>> their
>>>>> communications against attackers in the signaling path.  The current model
>>>>> provides a basic integrity protection, in that signaling intermediaries 
>>>>> cannot
>>>>> redirect traffic to an arbitrary third party; they must at least advise 
>>>>> the
>>>>> third party about how to modify MSRP packets. The proposed modification 
>>>>> would
>>>>> remove even this cost.
>>>> 
>>>> If we do not introduce the sessmatch change then the only alternative for 
>>>> MSRP
>>>> connections to be able to be set up when SBCs or SIP aware firewalls are 
>>>> in the
>>>> SIP signaling path is for these to introduce MSRP B2BUA support. This is 
>>>> probably
>>>> not feasible for most SBCs and SIP aware firewalls, and if it actually were
>>>> feasible then it would mean as big a security problem, or even bigger, than
>>>> sessmatch. The choice is thus to not use MSRP at all in presence of such 
>>>> devices
>>>> or to introduce sessmatch. Not to fix this probably would mean that use of 
>>>> MSRP
>>>> will be marginalized.
>>>> 
>>>>> 2) Moreover, it raises the cost of providing integrity protection to 
>>>>> messages,
>>>>> since Alice must now employ both integrity and confidentiality 
>>>>> protections on
>>>>> an end-to-end basis; if her messages are only integrity-protected, then a 
>>>>> proxy
>>>>> can remove the integrity protection and redirect traffic without it being
>>>>> observable to Alice.
>>>>> 
>>>>> The document needs to clarify what the impacts are for authentication in 
>>>>> secure
>>>>> modes of MSRP.  In particular:
>>>>> -- The distinction between "self-signed" and "public" certificates is
>>>>> inappropriate.  The proper distinction is between the name-based 
>>>>> authentication
>>>>> in Section 14.2 of RFC 4975 and the fingerprint-based authentication in 
>>>>> Section
>>>>> 14.4.
>>>> 
>>>> We cannot find the terminology “name-based” authentication in RFC 4975. 
>>>> The RFC talks
>>>> about TLS authentication using either certificates from well-known 
>>>> certificate
>>>> authorities, or using self-signed certificates together with certificate 
>>>> fingerprints.
>>>> 
>>>> Having said that, however, we DO agree that the terminology you suggest is 
>>>> more
>>>> appropriate than what we have used and we will introduce this terminology 
>>>> and explain
>>>> it in the Convention section of the sessmatch draft.
>>>> 
>>>>> -- In either case, changing the host name need not result in an 
>>>>> authentication
>>>>> failure, since the media intermediary can simply authenticate as itself 
>>>>> to both
>>>>> endpoints, having changed the respective MSRP URIs appropriately.
>>>> 
>>>> A media intermediary can only do this if it is an MSRP B2BUA, and 
>>>> sessmatch was
>>>> introduced just to avoid most SBCs and ALGs having to implement an MSRP 
>>>> B2BUA in order
>>>> to allow standard MSRP deployment.
>>>> 
>>>>> -- There is currently no requirement that an endpoint identity in the 
>>>>> To-Path
>>>>> URI matches the endpoint identity authenticated at the TLS layer, because 
>>>>> these
>>>>> two are required to be the same.  This document changes that assumption, 
>>>>> and
>>>>> should note that these two identities can differ.
>>>> 
>>>> We will explicitly mention this.
>>>> 
>>>>> The document also precludes any name-based multiplexing, where a single 
>>>>> MSRP
>>>>> process (single IP address and port) directs requests to different virtual
>>>>> recipients based on the domain name in the To-Path header. (In analogy to
>>>>> Host-based multiplexing in HTTP, which is very widely deployed.) Since 
>>>>> with
>>>>> this extension, the domain in the To- Path is completely unpredictable 
>>>>> from the
>>>>> recipient's perspective, it is useless to the recipient.
>>>> 
>>>> That is correct, but there should be no problem for a single MSRP process 
>>>> (single
>>>> IP address and port) to direct requests to different virtual recipients - 
>>>> based
>>>> on the session-id instead. It is only needed for the different virtual 
>>>> recipients
>>>> to inform the receiver process on which session-ids that are currently 
>>>> negotiated
>>>> instead of informing it on which domain name the virtual recipient shall be
>>>> associated with.
>>>> 
>>>>> The document has no backward-compatibility. MSRP implementations that do 
>>>>> not
>>>>> support this extension will not be able to receive MSRP sessions from
>>>>> implementations that do. In that regard, this document seems more like a 
>>>>> new
>>>>> version of MSRP rather than an update.
>>>> 
>>>> It is not true that there is no backwards compatibility. If there are no
>>>> SIP ALGs/SBCs in the SIP/SDP signalling path then there is no problem for 
>>>> MSRP
>>>> implementations that do not support the sessmatch extension to receive MSRP
>>>> sessions from implementations that do.
>>>> 
>>>> MSRP implementations that do not support the sessmatch extension are 
>>>> however not
>>>> able to establish MSRP end to end conversations if there are ALGs/SBCs in 
>>>> the
>>>> session path (unless these implement MSRP B2BUA) and sessmatch does not 
>>>> change this
>>>> fact – it will not work disregarding if the other endpoint supports 
>>>> sessmatch or not.
>>>> 
>>>>>>> I also note that the security considerations, in addition to having
>>>>>>> some fairly disingenuous language about the impact of this change,
>>>>>>> seems to fail to mention MSRPS URIs and what, if any, impact this
>>>>>>> would have on them.
>>>>>> 
>>>>>> There are no impacts to MSRPS URIs. I assumed it would be implicitly
>>>>>> understood since MSRPS URIs are not mentioned in the draft.
>>>>>> 
>>>>>> However, we could explicitly make it clear by modifying the first
>>>>>> sentences of section 5:
>>>>>> 
>>>>>> "The change of session matching procedure does not impact the
>>>>>> format of MSRP URIs, disregarding if the "msrp" scheme or the "msrps" 
>>>>>> scheme
>>>>>> is used. However, MSRP endpoints can only check that the session-id part 
>>>>>> of
>>>>>> the MSRP URI..."
>>>>> 
>>>>> The conflict here is that with MRSPS authentication, the name in the
>>>>> certificate is checked against the domain name in the URI, which was OK 
>>>>> when
>>>>> the URI in the message was required to be the same. By allowing the domain
>>>>> name in the message to change, this draft removes man-in-the-middle 
>>>>> protection
>>>>> from MSRPS.
>>>>> 
>>>>> The document notes that a SIP MitM can already direct the user to another
>>>>> destination.  However, if the peers use MSRPS with the current 
>>>>> authentication
>>>>> scheme, the MitM will not be able to be a part of the resulting MSRPS 
>>>>> session,
>>>>> since he can't authenticate as one of the endpoints. If only the session 
>>>>> ID is
>>>>> used in comparisons, the MitM can patch himself in by changing the domain 
>>>>> in
>>>>> the MSRPS URI. (Which actually seems to be the intended use case for this 
>>>>> >draft.)
>>>>> 
>>>>> So the current document does introduce a new MitM vulnerability to MSRPS.
>>>> 
>>>> Sessmatch does not change the fact that name based TLS authentication for 
>>>> MSRPS
>>>> will fail if an SBC or ALG has modified the hostname value in the MSRP URI 
>>>> in the
>>>> SDP a=path attribute without also acting as MSRP B2BUA.
>>>> 
>>>> 
>>>> Comments from Ted
>>>> =================
>>>> 
>>>>> I join Richard in believing that this document makes changes beyond that 
>>>>> which
>>>>> could be understood as "updating" the MSRP URI scheme processing.
>>>>> 
>>>>> ...
>>>>> 
>>>>> I also note that the security considerations, in addition to having some 
>>>>> fairly
>>>>> disingenuous language about the impact of this change, seems to fail to 
>>>>> mention
>>>>> MSRPS URIs and what, if any, impact this would have on them.
>>>> 
>>>> We will clarify what impacts there are.
>>>> 
>>>> -------
>>>> 
>>>>>>> To highlight one particular aspect, RFC 4975 does not require
>>>>>>> session-ids to be present, a fact noted both in the ABNF and in this
>>>>>>> text:
>>>>>>> 
>>>>>>> 4. The session-id part is compared as case sensitive.  A URI without
>>>>>>> a session-id part is never equivalent to one that includes one.
>>>>>>> 
>>>>>>> A matching scheme which relies on a URI section which is not
>>>>>>> guaranteed to be present has some interesting problems ahead of it. If
>>>>>>> this effectively makes their use mandatory, that requires a change to
>>>>>>> the fundamental ABNF and text.
>>>>>> 
>>>>>> An MSRP URI in an SDP offer or answer for an MSRP session MUST include a
>>>>>> session-id part, so I believe the comment is
>>>>>> based on incorrect assumptions.
>>>>> 
>>>>> This is not indicated in the URI matching section
>>>> 
>>>> We will clarify that sessmatch conformant UAs do not use MSRP URI matching 
>>>> in
>>>> order to perform MSRP session matching.
>>>> 
>>>>>> Section 6 of RFC 4975 says:
>>>>>> 
>>>>>> "The session-id part identifies a particular session of the
>>>>>> participant. The absence of the session-id
>>>>>> part indicates a reference to an MSRP host device, but does not refer to 
>>>>>> a
>>>>>> particular session at that device."
>>>>>> 
>>>>> 
>>>>> The full section from which that quote is taken is:
>>>>> 
>>>>> The MSRP URI authority field identifies a participant in a particular
>>>>> MSRP session.  If the authority field contains a numeric IP address,
>>>>> it MUST also contain a port.  The session-id part identifies a
>>>>> particular session of the participant.  The absence of the session-id
>>>>> part indicates a reference to an MSRP host device, but does not refer
>>>>> to a particular session at that device.  A particular value of
>>>>> session-id is only meaningful in the context of the associated
>>>>> authority; thus, the authority component can be thought of as
>>>>> identifying the "authority" governing a namespace for the session-id.
>>>>> 
>>>>> This proposal changes the concept of a namespace authority present in the 
>>>>> URI
>>>>> matching section of RFC 4975. I am sorry if my wry reference to this in my
>>>>> previous message was hard to follow; I should have known better.
>>>>> 
>>>>> To be more plain, this proposal fundamentally changes the matching 
>>>>> semantics of
>>>>> the URI set out in RFC 4975, by requiring a match on only a portion of 
>>>>> the URI.
>>>>> At a bare minimum, this would require noting a normative update to 
>>>>> section 6
>>>>> and 6.1 of RFC 4975, which this draft does not do.  In reality, this is
>>>>> unlikely to be sufficient, as URI matching semantics do not generally 
>>>>> have the
>>>>> concept of ignoring the authority in providing a match (at least in my 
>>>>> reading
>>>>> of the RFC 3986 "ladder of comparison" text).  That means you'd have to 
>>>>> special
>>>>> case the MSRP matching semantics, rather than have the URI be parsed and
>>>>> compared using a standard library.
>>>> 
>>>> Sessmatch removes the URI matching as a means to do MSRP session matching, 
>>>> and
>>>> replaces it with a pure session-id matching. There is no need to create a 
>>>> new
>>>> URI scheme that does not re-use the authority component. We believe the 
>>>> minimum
>>>> 80-bit randomness of the session-id, together with the fact that the UA 
>>>> itself
>>>> generates the session-id it matches on, to be enough for the session-id to 
>>>> be
>>>> unique in the scope of the sessions that are active at the UA.
>>>> 
>>>> Also, the security of the matching is not particularly decreased, since it 
>>>> is
>>>> relatively easy to find out the authority name anyway.
>>>> 
>>>>>>> I also note that the security considerations, in addition to having
>>>>>>> some fairly disingenuous language about the impact of this change,
>>>>>>> seems to fail to mention MSRPS URIs and what, if any, impact this
>>>>>>> would have on them.
>>>>>> 
>>>>>> There are no impacts to MSRPS URIs. I assumed it would be implicitly 
>>>>>> understood
>>>>>> since MSRPS URIs are not mentioned in the draft.
>>>>>> 
>>>>>> However, we could explicitly make it clear by modifying the first 
>>>>>> sentences of
>>>>>> section 5:
>>>>>> 
>>>>>> "The change of session matching procedure does not impact the format of 
>>>>>> MSRP
>>>>>> URIs, disregarding if the "msrp" scheme or the "msrps" scheme is used.
>>>>>> However, MSRP endpoints can only check that the session-id part of the 
>>>>>> MSRP
>>>>>> URI..."
>>>>>> 
>>>>> This doesn't seem to me to actually work, based on Richard's comments, 
>>>>> unless
>>>>> what you mean to say is "if MSRPS is in use, nothing in this draft can be
>>>>> used". That gives you different matching semantics for MSRPS (authority 
>>>>> must
>>>>> be present and must be matched using TLS semantics) vs MSRP (only 
>>>>> session-id is
>>>>> checked) which is at the very least a violation of the principle of least
>>>>> surprise (no other foo over TLS protocol works that way that I know of ).
>>>> 
>>>> Session matching is done when receiving MSRP packets on an already 
>>>> established TCP
>>>> or TCP/TLS connection, and there will not be any different session 
>>>> matching procedure
>>>> depending on if the connection uses TLS or plain TCP.
>>>> 
>>>> Regards,
>>>> 
>>>> Christer
>>>> 
>>> _______________________________________________
>>> Ietf mailing list
>>> Ietf@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ietf
>> 
>> 
> _______________________________________________
> Simple mailing list
> sim...@ietf.org
> https://www.ietf.org/mailman/listinfo/simple

_______________________________________________
Ietf mailing list
Ietf@ietf.org
https://www.ietf.org/mailman/listinfo/ietf

Reply via email to