SACRED over HTTP (was: RE: sasl in beep or payload)

"Gareth Richards" <[email protected]> Wed, 19 Dec 2001 10:51:40 -0000
Newsgroups gmane.ietf.sacred
Message-ID <[email protected]>

> > so, let's do this: let's all agree that we're going to have exactly one
way
> > of exchanging sacred pdus. if the working group reaches concensus that
it
> > should be http, then let's just scrap the beep part and move on. i can
> > certainly live with that.
>
> Agree with having exactly one way of exchanging PDUs.
>
> However, HTTP is *not* a viable candidate for one of those ways.
> So it's either BEEP or something else.
>

I believe that the argument in favour of HTTP is not that it is a protocol
ideally suited to the requirements of SACRED but a pragmatic one.  Many
SACRED platforms already support HTTP and since it can be used for our
needs then if SACRED is to be widely accepted it will probably need to
support HTTP as a transport.

> > 1. carrying sasl payloads in sacred pdus assumes that all of the
exchanges
> > will occur over a single persistent http connection, i.e., open an http
> > connection, send something, recv something, send something, recv
something,
> > close the http connection.
> >
> > unfortunately http proxies, caches, and the etc., invalidate this
> > assumption. the http client can't control this. what this means is that
it
> > is entirely possible to get one send/recv exchange done and then lose
the
> > http connection because of an intermediary.
>
> entirely true.  I'd also argue that expecting a persistent
> connection violates
> the HTTP standard.
>
> If you want to exchange multiple PDUs per transaction in HTTP, you
> essentially have to have each request (except the first) PDU contain a
> state identifier which was provided in the last response PDU received.
>

I don't see why carrying the sasl payload assumes a persistent connection
since, as Keith points out, we cannot assume this.  Part of the HTTP
binding document would be a definition of how state is maintained.  I would
expect that this would probably be done by adding an extra wrapping layer
to the PDU (which seems to be what Keith is suggesting) rather than by the
use of cookies (RFC2964 and RFC2965).

> but there are other problems with HTTP.  it's completely unacceptable to
> reuse port 80 or http: URIs for a new application, and bypassing site
> security policy (e.g. firewalls) is NOT a legitimate goal.

I can see that SACRED would be a new service and so should use a new port
etc but it can't be the only protocol considering using http in this way
(CMC and CMP have documented HTTP as a binding and do not seem to tackle
the reuse of port 80 or http: scheme).

> 2. exchanging sacred over http/ssl (without sasl) has its own problems,
> again due to the fact that the presence of firewalls and proxies are
> incompatible with the required end-to-end properties.

> for example, transparent man-in-the-middle attacks are possible if there
is
> "coordination" between the company that runs the firewall, that
> supplied/configured the client, and the certificate authority (obviously
the
> use of "coordination" is a euphemism, but the exploit is fairly
well-known).

The current I-D proposes to use SSL for the account creation and so
wouldn't it be susceptible to this attack?  This does not seem to be
specific to HTTP but to any system using SSL.  Our proposal would have the
same exposure through its use of SPKM-3 but in both cases this would only
be for account creation which should therefore only be implemented by
clients in more controlled environments.