At Fri, 06 Apr 2007 12:36:29 -0500, Dean Willis wrote: > > > I'm pre-reviewing Francois' latest sips draft, and I'm perplexed. > > Presume a UA wishes to receive only SIPS requests and not SIP requests. > > This is important if we do not wish to reveal information about the UAS > (most critically the identity of the user at this UAS) -- to > packet-sniffers on the wire between UAC and UAS. > > > Previously it could do this by registering only a SIPS contact and not a > SIP, and by using a SIPS AOR in registration. > > Because registering with a SIPS contact header field implies a > binding to both a SIPS Contact and a corresponding SIP Contact . . . > > means we simply can't satisfy this use case. > > Just waiting for a request and then rejecting it if it didn't come in > over TLS would not meet the requirement, since the plain text of the > request would already have been sent, potentially compromising > information about the UAS. > > Do we have a problem?
It's probably useful here to take an analogy from the Web. Amazon.com, to take one example, runs two web sites: - The HTTP-based one which runs their catalog. - The HTTPS-based one which they use for checkout. If you're shopping and you go to checkout, they redirect you to the HTTPS site. If you try to just go to the HTTPS site to shop they redirect you to the HTTP site. If you mistakenly try to do checkout with HTTPS, I suspect it pukes (many sites do), even though the exposure has already happened. This is sort of a necessary side effect of being willing to run both HTTPS and HTTP. If you're never willing to run HTTP, then you need your server not to listen on port 80. But actually this only helps against passive attacks, since if a stupid person tries to contact you over HTTP the attacker can just pose as you. And of course if you're running on some sort of shared hosting server, then the problem is even worse since the hosting server may allow HTTP for others but not you. So, even the refuse to listen on port 80 doesn't work. The only real defense against this sort of downgrade is to only give people URLs that start with https: and assume that they will do the right thing. So, mapping into the SIP domain, things look much more like the hosting service example. You are connected to a SIP proxy which may server SIP/TLS *and* SIP for other people. So, you can certainly tell the proxy "don't accept anything for me not over TLS" but as you say that only takes effect after he's received the request. As long as the proxy is willing to do SIP-not-over-TLS then you can always be subject to this problem (and even if it doesn't there's always the active attack I described above) and there's no instruction you could give the proxy that would help (though the instruction could of course restrict the proxy to talking to YOU via SIP/TLS). As with https: the fix is that your AOR has to somehow signal to everyone that you expect to be contacted over TLS. This is what sips: does (though of course it's not the only way to do it). -Ekr _______________________________________________ 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