[ZODB-Dev] CHAP with ZEO

Jeremy Hylton jeremy@digicool.com
Tue, 22 May 2001 10:28:48 -0400 (EDT)


>>>>> "MP" == Michel Pelletier <michel@digicool.com> writes:

  MP> I'll have to read the RFC more closely.  Do you know of any
  MP> pre-existing digest auth python modules, perhaps from the work
  MP> done on Grail?

There's client-side support in urllib2.

  >> CHAP requires that the secret be available in plaintext
  >> form. Irreversably encrypted password databases commonly
  >> available cannot be used.

  MP> I don't see how digest auth beats this limitation. 

I didn't mean to suggest that it did.  The HTTP digest RFC goes out of
its way to explain the many problems of digest-style authentication.

  >> The HTTP digest authentication mechanism (RFC 2069) is a
  >> variation on the same theme, but seems to be designed more
  >> carefully.  Certainly, the operational environment for PPP
  >> servers is different than it is for HTTP servers.  A ZEO
  >> environment is more like HTTP than PPP.

  MP> Really?  I don't agree.

  MP> There isn't really anything PPP specific about CHAP, I imagine
  MP> it could be implemented over any protocol, simple, well-defined
  MP> shared-secret challenges and responses.

The operating environments are different.  A PPP server has far fewer
users than an HTTP server.  They perform different kinds of
interactions.

That said, the HTTP digest mechanism has, for example, a discussion of
the man-in-the-middle attacks that CHAP is vulnerable to and some
means to limit the vulnerability by choosing a challenge with some
information about who is being challenged.  I didn't see any of that
in CHAP.

Note that the CHAP protocol says that you should periodically
re-authentication the other side.  The HTTP digest mechanism does it
per request.  One or the other makes some sense.

  >> As Andrew said in an earlier message, we do a disservice to the
  >> community if we promote a system with a security infrastructure
  >> that we know is substandard.

  MP> CHAP is sub-standard weak authentication?

There is no question here.  People have been using Kerberos since the
last millenium :-).  For the kind of environment that Toby described,
it seems like a good solution.

Jeremy