[Security] Re: e2e feedback

Justin Karneges justin at affinix.com
Tue Mar 13 17:40:09 CDT 2007


On Tuesday 13 March 2007 2:32 pm, Peter Saint-Andre wrote:
> Justin Karneges wrote:
> >> based on our requirements, we could simply re-use TLS semantics in XMPP
> >> syntax rather than define a completely new security protocol
> >
> > This is not such a bad idea.  A good example of an adapted TLS already in
> > existence is DTLS (RFC 4347).  DTLS re-uses just about everything it can
> > from TLS, to provide security over an unreliable packetized session.
>
> Right. I was not creative enough to think of "XTLS" because I always
> thought that TLS was for transport layers like TCP and (with the DTLS
> modifications) UDP. We talk about XMPP as a transport technology, but
> it's at a different layer in the stack than TCP or UDP.

Also, we often treat established security protocols as untouchable 
building-blocks.  The notion of modifying them is the farthest from any of 
our minds.  It takes guts to even try, and clout within the security 
community to succeed.  It also helps if you're a co-author of RFC 4346. :)

> > Just to get the mind churning, we could use unmodified DTLS over XMPP
> > quite easily.  Just base64 encode DTLS packets, and ship them off.
> >
> > However, XMPP doesn't suffer from as many limitations as UDP.  We have no
> > hard limit on stanza size, and packets are not delivered out of order. 
> > Thus, we may want to find middleground between DTLS and TLS.
>
> That seems to be the best way.

I'd like to add that such a middleground could probably be built using DTLS as 
a primitive (e.g. on top of it), rather than proposing a new modified TLS.  
This is similar in nature to how you can build just about anything with UDP 
(including a TCP clone, see Google :) ).

This is, of course, if we even need a modified TLS.  It seems like we could 
use it unmodified, as discussed below.

> > Or... maybe TLS is enough?  We could establish a new <stream:stream>
> > between client endpoints, over IBB, protected with TLS.
>
> Yes, or that. And finally a use for IBB! :)

We'd probably design it such that it could ride over any reliable base 
transport.  But given the risk this could turn into a Jingle debate, let's 
say just IBB for now. :)

In order to do this, we'd need a negotiation for it (re-use XEP-155?), 
followed by IBB, followed by c2s (or a special variant of it, like what is 
found in Link-local).  The open question is how to handle authentication.  
X.509 is easy to do in this scenario, but I don't know about the rest (PGP, 
plain keys).

The nice thing about this proposal is that it should be relatively easy to 
implement.  It's not much beyond making your normal XMPP code run over IBB 
instead of TCP.

I'll let Ian catch up here before going further.

-Justin


More information about the Security mailing list