Both of them

--
Adrian


On Oct 14, 2010, at 17:58, Ben Campbell <b...@estacado.net> wrote:

> Hi Adrian,
> 
> Are you referring to the COMEDIA support in msrp-acm, the session matching 
> change in msrp-sessmatch, or both?
> 
> Thanks!
> 
> Ben.
> 
> On Oct 14, 2010, at 5:26 PM, Adrian Georgescu wrote:
> 
>> My two cents. Having implemented both models in Blink client (Blink is a 
>> free download if someone cares and wants to experiment with both MSRP 
>> models), I can comment that I do not like the acm model. The relay model is 
>> simply better, cleaner and more secure.
>> 
>> Adrian
>> 
>> 
>> On Oct 14, 2010, at 3: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 not 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 that 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
>>> 
>> 
>> _______________________________________________
>> Simple mailing list
>> sim...@ietf.org
>> https://www.ietf.org/mailman/listinfo/simple
> 
> _______________________________________________
> 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