Eric Rescorla wrote:
At Sat, 07 Apr 2007 13:45:12 -0500,
Dean Willis wrote:

Eric Rescorla wrote:


You give the caller the sips: URI and I think the draft makes clear
that if you have a sips: URI you MUST NOT use SIP w/o TLS. The question
is what a proxy should do if a request comes in without TLS.

I'm not finding that. What I'm finding is text that says a user who is given a sips: URI can deduce a sip: URI from that and use it.


I don't agree with that interpretation of the text. The fact that
you *registered* both a SIP URI and a SIPS URI does not mean
that other users should convert a sips: URI to a SIP one.
Here's the relevant text from page 7:

   Although not mandated specifically in [RFC3261], the implication is
   that a resource described by a SIPS URI can not be "downgraded" to a
   SIP URI by just changing the scheme, unless it is the "last hop
   exception" described in Section 3.  This specification clarifies that
   a resource described by a SIPS URI MUST NOT be "downgraded" to a SIP
   URI by changing the scheme, or by sending the associated request over
   a non secure link, except for cases where the "last-hop exception"
   rule is in effect (in which case the Request-URI would be replaced by
   a SIP URI).

I believe that paragraph has changed in the current pre-draft to say:

   This specification mandates that a resource described by a SIPS
   Request-URI can not be "downgraded" to a SIP URI when a proxy is
   forwarding a request by changing the scheme, or by sending the
   associated request over a non secure link.  See Section 4.2.

This refers only to a PROXY making the downgrade, not a USER making the downgrade.


Section 3.2 Routing says:

   For example, consider the case of a UA that has registered with SIPS
   contact header field.  If a UAC later addresses a request using a SIP
   Request-URI, the proxy will forward the request addressed to a SIP
   Request-URI to the endpoint, as illustrated by message F13 in
   Section 5.3 and in Section 5.4.  The proxy forwards the request to
   the UA using a SIP Request-URI and not the SIPS Request-URI used in
   registration (and it does this by substituting the sip scheme to the
   sips scheme in the registered contact header field binding).  If the
   proxy did not do this, and instead used a SIPS Request-URI, then the
   response (e.g., a 200 to an INVITE) would have to include a SIPS
   contact header field.  That SIPS contact header field would then
   force the other UA to use a SIPS contact header field in any mid-
   dialog request, including the ACK (which wouldn't be possible if that
   UA did not support SIPS).

The preceding says that IF a user converts SIPS to SIP, then the proxies will forward the request. This is further supported in the following:

Section 4.1.2 page 12 says:

   Because registering with a SIPS contact header field implies a
   binding to both a SIPS Contact and a corresponding SIP Contact, a UA
   MUST NOT include both the SIPS and the SIP version of the same
   contact header field in a REGISTER: it MUST only use the SIPS version
   in this case.  Similarly, a UA SHOULD NOT register both a SIP contact
   header field and a SIPS contact header field in separate
   registrations as the SIP contact header field would be superfluous.
   Note however that a UA could register first with a SIP contact header
   field (meaning it does not support SIPS), and later register with a
   SIPS contact header field (meaning it now supports SIPS).

   If a UA wants to ensure that no requests are delivered without using
   TLS on that last hop, the UA MUST use [I-D.ietf-sip-outbound].

If we are in proxyless scenario, then we aren't using outbound, and the "last hop" is the UA to UA hop. Since the only way we have in the current text to assure that TLS is used on this last hop is to use outbound, and we aren't using outbound, then we have NO WAY to assure that this hop is done using TLS.

Later in 4.1.2 we have:

   Location services
   are therefore free to map from SIP to SIPS URIs as appropriate (see
   [RFC3261]/26.4.4).  When Bob registers, it therefore does not really
   matter if he is using a SIP or a SIPS AOR, since they both refer to
   the same user.

All of these, taken together, say to me that it is reasonable for a user who is handed a business card with only a SIPS URI on it to guess an equivalent SIP URI and use it, and that the infrastructure will route this request to the UAS. If that UAS is NOT using "outbound", then the last hop may well be traversed without TLS.

Consequently, in the case that (unknown to the orignating user) there ARE no proxies (such as a simple UAC-->Location Server(302)--->UAS flow,
the content of the request will be delivered unprotected toward the UAS.
If there is a tap on the Line (aka sniffer), then the conent of that request will be revealed.

This turns out to be pretty important in a P2PSIP world, where there might be a lot less proxies.

--
Dean




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

Reply via email to