[Web-SIG] Secret keys (was: Session interface)
Ian Bicking
ianb at colorstudy.com
Wed Aug 17 00:22:50 CEST 2005
Phillip J. Eby wrote:
> Really the only "interesting" part of managing a hash-based signature is
> where to store the key such that all the server processes can access it,
> but it isn't part of your source code. You can do that with a file on a
> single server, but for multiple servers it's back to the DB or else you
> need a way to push out configuration to the servers. You also need key
> rotation such that your signatures indicate which key was used to sign
> them, so that people's keys don't suddenly stop working when you update
> your key.
It would be nice if there was a standard way to get the "server's"
secret key (or key(s)). Or, maybe more abstractly, to sign and confirm
the signature of an item, like:
signed_data = sign(data)
# Raises exception if there's a problem:
data = extract_signed_data(signed_data)
At that level any key rotation can be hidden. The mechanism is easy,
the key management is actually not "hard", but it depends on what your
definition of "server" is. That would be a ripe place for
standardization; easy to define, useful, multiple implementations
expected. But where do you stuff the functions? It almost seems best
to have server environments create or monkey patch some single module,
since I can't really think of a reason that a single process should have
multiple keys (except maybe in Zope, which has intraprocess security).
--
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Web-SIG
mailing list