Subject: Re: End-to-end security (was RE: [Sip] Re: Wacky thead...

From: Cullen Jennings <[email-masked]>
Date: Wed, 31 May 2006 22:34:31 -0700

First some bad news - It's rough to figure out how to protect from  
evil proxies. If you start as an assumption that a proxy is needed at  
all because it is going to make a routing decisions that the UAC  
can't make itself, then if the proxy lies about this you will get  
misrouted. There is not that much you can do about that - perhaps  
query multiple independent sources for the routing decisions and  
compare answers. Theoretically interesting but not sure how practical  
that would be - might be more practical in the p2p work.

But now the good news - when you consider the possible attacks, you  
are unlike to use an evil proxy and it might turn out that the harm  
caused by misrouting was not all that bad as long as you knew you had  
been misrouted. What you would like to make sure is that if you did  
happen to end up connected to the right person a) you could tell you  
were connected to the right person b) you could have encrypted media  
to them that the evil proxy was not able to decrypt c) you would know  
if anyone along the path could decrypt your media. I think this is  
achievable and though we still end up trusting the proxies in certain  
ways such as routing, we don't have to trust them with everything.  
There are probably several ways we could achieve this but many of  
them tend to end up looking like SRTP with some sort of DH mode for  
keying and some secure verification of DH fingerprints that end up  
binding the fingerprint with the identity of the users.

On May 31, 2006, at 12:38 PM, [email-masked] wrote:

>
>
> Thinking a bit more about this end-to-end thing, I thought I would  
> float an idea that has probably been proposed before...
>
> First, it seems like the interposition of proxies as a basic  
> architectural element is a non-starter.  What I mean is, if there  
> are proxies in there somewhere, you can probably make an argument  
> that the proxy could be compromised.  If the signaling has to pass  
> through the proxy, you cannot guarantee end-to-end security.
>
> If you grant that, then an INVITE must go from the UAC to the UAS  
> directly.  The question is, how do you make that happen?  How do  
> you guarantee to the caller that the INVITE is not traversing any  
> proxies along the way?
>
> I'm wondering if there can't be some kind of end-to-end mode for  
> signaling?  Let's say that a UAC wants to make an end-to-end secure  
> call to an UAS.  Perhaps the UAC could query a presence service for  
> the actual endpoint address of the UAS.  Perhaps we could add some  
> presence bits that tell the presence server that a UAS is at this  
> address for direct access and then when the UAC queries for the  
> UAS, it gets that address.
>
> If this were done, the trust would be changed to trusting the UAS  
> and the presence server.  Is that better than trusting the proxies  
> during hop-by-hop signaling?
>
> FM
>
>
> _______________________________________________
> Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
> This list is for NEW development of the core SIP Protocol
> Use [email-masked] for questions on current sip
> Use [email-masked] for new developments on the application of sip

_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip