re: sasl in beep or payload

Keith Moore <[email protected]> Mon, 17 Dec 2001 13:25:37 -0500
Newsgroups gmane.ietf.sacred
Message-ID <[email protected]>
> From: Marshall Rose <[email protected]>
> To: <[email protected]>, ietf-sacred <[email protected]>
> Cc: Marshall Rose <[email protected]>
> Subject: Re: sasl in beep or payload...
> Date: Thu, 13 Dec 2001 17:26:09 -0800
> 
> 
> > Around 15 hands were raised in response to the question: "how
> > many are likely to implement sacred". Of those, all but one
> > agreed with the proposition that we should include the sasl
> > PDUs in the sacred payload. So, the concensus at the meeting
> > is to add new messages along the lines of the bind request
> > and response from Magnus' posting.
> >
> > If there are enough people unhappy with this, I'll start a
> > straw poll on the list in a few days so we can sort it out.
> 
> stephen - this analysis simply isn't germane (nor is the sampling
> methodology, but that's another issue).
> 
> the real issue isn't where the sasl payload goes. the real issue is whether
> we want to support http and/or whether we want to support multiple ways of
> exchanging sacred pdus.

these are separate issues.  the issue of where the sasl payload goes
mostly has to do with the coupling of the authentication mechanism and 
the application.  

having the authentication happen at the application layer rather than 
the session layer means that the application is responsible for doing 
authentication, rather than asking a lower layer to do it.  having this
done at the same layer potentially makes it easier for the application 
to specify exactly which authentication credentials are valid and what 
permissions should be granted to each principal.  it also potentially
makes the application code more portable.

(it might also allow the use of the application protocol over multiple
transports, but since running an application over multiple transports 
degrades interoperability and is likely to harm security, I don't 
consider that a justification.)

> 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.

> 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. 

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.  the HTTP 
application infrastructure is unreliable and unpredictable - there are 
several firewalls and filters in place that alter HTTP traffic. by the 
time you get HTTP to do what you need it takes more work - and more 
total code - to layer over HTTP than TCP.

reusing HTTP is a false economy, especially in the long run.

Keith