[Zope-dev] Proposed proposals: password encryption, ZODB RAM

Shane Hathaway shane@digicool.com
Mon, 18 Jun 2001 12:28:54 -0400


Here are a couple of ideas I'd like to toss out.  Proposals can take a 
lot of time to write and it might be easier this way to flesh out the 
details.

1) Optional password encryption.  Right now passwords are stored as 
clear text.  What's interesting is that Zope can already authenticate 
against SHA encrypted passwords, it just won't encrypt user passwords 
unless you force it to.  As a test of Zope's ability to authenticate 
against encrypted passwords, I sneakily implemented the "inituser" 
changes with SHA encryption by default.  That means that the password 
for the initial user stored in the database is not possible to decrypt 
and yet nobody has had any problems with it AFAIK.  Since it has been 
successful, I'd like to suggest we add a checkbox to basic user folders 
that enables encryption for new passwords, and have it turned on by 
default.  The risk is incompatibility with HTTP digest auth, which I 
imagine nobody is using right now.

2) If cPickle were to do something similar to "intern"-ing strings when 
loading objects from the ZODB, Zope might consume significantly less 
RAM on busy servers.  ZODB uses lots of strings.  ZODB caches cannot be 
shared among threads.  But strings, being immutable, can be safely 
shared.  We couldn't just intern the strings since that would make them 
immortal, but if we used weak references it could work.  The only risk 
is the speed impact during loading of objects.

Shane