[Zope] CoreSessionTracking-based LoginMethod for LoginManager
Florent Guillaume
fg@nuxeo.com
15 Aug 2001 17:07:11 GMT
> 1. Start with the data you want to store
> 2. Append identifying information, eg the IPs of the client and
> server, and the current date/time.
> 3. Make a digest of this plus a secret string which only you know,
> and append that as a fingerprint.
I rewrite you 3. as computing as a fingerprint:
H(known-string || password).
This construction apparently still has some very slight cryptographic
weaknesses. Lifted from bugtraq sometime ago:
From: Michael Wojcik <Michael.Wojcik@merant.com>
Date: Mon, 16 Jul 2001 10:45:48 -0700
Schneier cites a private communication with Bart Preneel (author of
RIPE-MAC) on possible weaknesses of the obvious constructions
H(known-string || password)
H(password || known-string)
H(password || known-string || password)
H(password-1 || known-string || password-2)
and suggests one of the following instead (rewritten as password
hashes):
H(password-1 || H(password-2 || known-string))
H(password || H(password || known-string)) [ie. pw-1 == pw-2]
H(password || pad || known-string || password)
[pad pw to full block]
The simplest of these, in terms of retrofitting existing systems
that use one of the constructions Ishikawa mentions, is
H(password || H(password || known-string))
So I'd use that last one instead.
Florent Guillaume
Nuxeo