[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Sip] Ready for WGLC on SIPS draft? Any last thoughts on transport=tls?




On Jun 4, 2007, at 2:16 PM, Francois Audet wrote:



-----Original Message-----
From: Robert Sparks [mailto:rjsparks at nostrum.com]
Sent: Monday, June 04, 2007 11:08
To: Audet, Francois (SC100:3055)
Cc: Dean Willis; SIP IETF
Subject: Re: [Sip] Ready for WGLC on SIPS draft? Any last
thoughts on transport=tls?




UAC -----> Proxy 1 ------> Proxy 2 ------> UAS

How (if they don't have DNS) do they specify the use of TLS between Proxy1 and 2? More specifically - if Proxy1 retargets an initial request to Proxy2 based on either configuration or a registered contact, what's the RURI of the emitted request going to be? Then, what should it record route with?

I'm not sure I understand what we are trying to achieve here.

Say UAC sends initial INVITE.

It chooses TLS for transport. No transport parameter. UAC does not
use SIPS and therefore does not expect TLS on each hop.

Proxy 1 forwards the request to proxy 2. If may or may not
use TLS (although it should use TLS if possible). It inserts
a Record-Route (or modifies Request-URI). In either cases, it does
not need to put a transport parameter.

This is exactly where we are disagreeing.

How do you _tell_ P1 that you want to reach P2 using TLS in the first place.
As I said elsewhere in the thread, I don't think leaving this unspecified ("you just do this
with the configuration of the proxy") is the right answer. If you have DNS, you tell P1
about P2 using DNS. If you don't have DNS, using the transport parameter in the URI
you hand it seems pretty natural. That's how you're going to tell it to use udp or tcp...



Later, in-dialog request will be sent on each hop reusing the existing established connections (TLS or TCP) as per current RFC 3261 procedures.

Or are we talking pass each other?
Almost certainly. I hope the above helps us get to a common question.


If you put Request-URI of
sip:uas at example.com;transport=tls, to me, it
means the link between Proxy 2 and UAS would use TLS. I.e., the
parameter would apply to the
resource identified in the URI.   (I'm assuming
Record-Routing is used
here).

The first hop (between UAC and Proxy 1) is basically what you would
select before sending the message (or if a Route header was
used, it
would be in the Route header). To me, it's self-evident in
the actual
transport anyways.

I don't understand the last sentence - especially in the record-route/ route case.

I'm just saying the first hop is whatever is selected when you sent the message. Since it's the first hop, there the parameter would be useless.


Everytime I run into this issue, it seems to me that basically what people are asking for is just a way to select TLS for the
first hop.
We don't need protocol on the wire for this: just a config
option in
the UAC.

This is not what I'm pointing at.

I'm trying to understand what you are pointing at. Is it in-dialog requests? Is it forcing a specific hop (not the first or last one) to be TLS, but not all the hops?

I think I'm missing something...



2) Some have indicated they operate in large enterprise-like
networks, where the endpoint has an ephemeral address,
      one for which there's no way to populate NAPTR/SRVs
to indicate
a use of TLS when reaching that endpoint.
      Additionally, the endpoint has a cert (!).  They are
required
to register a contact that causes them to be reached
      with TLS, and are using transport=tls to do so.

Surely they need to register with TLS for this to be secure. The transport could be self-evident again, from the one used while performing the registration.

So the unusual case here is that it _is possible_ (and even meaningful) for the proxy to open a new connection to the UA if the old one is gone. Are you saying that you would like the proxy/registrar to remember that it should use TLS when it did so as a side-effect of the registration arriving over TLS?


That would be a way we could go (and we should go all the way and ignore what's in contact altogether if we go here), but you will have to explicitly make 3rd party registration and any registration that installs state that doesn't point exactly to the registering instance illegal. (I know several people think this is a good idea, but I don't think we've made that the official position of the working group yet have we?)

I was not thinking specifically of the Mutual-TLS case which is what you are pointing to.

In the server-provided certificate case, the client would be responsible
to re-establish the TLS connection. The way to do this for
server-provided
certificate environments is using sip-outbound which does exactly what
you said (i.e., ignore the contact). The the registrar doesn't
"remember" anything: it just uses existing connections.


I tought that was agreed (in Montreal). I don't see any other way to be
honest.


Now, you do bring up a really good point for environments where people
use Mutual-TLS between a proxy and a UA. I guess we could still use an
outbound
model for this case. Or we could use some indication in the protocol.
Not sure it's worth it to add a transport parameter for that. Seems to
me to
be overly complex, and it wouldn't allow you to indicate that you
support many different transport.

The third party registration case with the transport parameter is weird
to
me. It would allow a UA to send a Registration unseculily (over TCP or
UDP), and
create a binding for a third party using TLS. Seems like it would make
the TLS
connection pointless (unless somehow the first party is secure some
other way).



_______________________________________________ Sip mailing list https://www1.ietf.org/mailman/listinfo/sip This list is for NEW development of the core SIP Protocol Use sip-implementors at cs.columbia.edu for questions on current sip Use sipping at ietf.org for new developments on the application of sip