In the message dated: Wed, 24 Aug 2011 20:44:37 PDT,
The pithy ruminations from da...@lang.hm on 
<Re: [lopsa-tech] MySQL and Encryption> were:

As will be abundantly clear in a few more words, I am not a crypto-expert...

=> 
=> it only protects against the machine being stolen if the decryption key is 
=> not also stored on the machine. This would mean that there needs to be a 
=> manual step (either to enter the key or to unlock the key) every time the 
=> machine boots. Since nobody does that (everyone wants the machine to boot 
=> up without requireing a sysadmin login to it) it's snake oil in that case 
=> as well.
=> 

I've been wondering about this problem. Why not have the database server use
public key encryption (unattended, automated, at boot time) to connect to
another machine in order to retrieve the decryption key? The db server would
have a public key from the other machine, and visa-versa. This would ensure
the authenticity of the two machines, and allow them to transfer keys.

I'm envisioning something like:

        dbserver boots up

        dbserver encrypts message using the keyservers public key, requesting
        database decryption keys

        dbserver sends message to the keyserver

        keyserver decrypts message, using it's own private key. If the message
        is from a valid source, and if the request is valid (ie., if the
        particular dbserver is allowed to get the key for the specified
        database), then the keyserver encrypts the key using the dbserver's
        public key and sends it to the dbserver

        the dbserver receives the key, decrypts it, and uses it to unlock the
        database, then "throws away" they key (overwrites that block of
        memory)

Vulnerabilities:
        the keyserver service is now a SPoF

        there's a greater chance for a DoS by blocking communication to/from
        the keyserver

        the decrypted key could be read from memory on the dbserver (same
        level of vulnerability as already exists)

Benefits
        centralized key management & authorization for "N" database (or other
        service) machines, connecting to one keyserver service (HA clustered,
        etc.).

        Easy management to invalidate access from remote machines.

        Manual key entry required on the "single" keyserver at boot time, as
        opposed to manual key entry on "N" distinct servers.


This scheme probably has more holes than a piece of Swiss cheese...but it may
be better than the alternatives of putting keys into text files to be read at
boot time, or manually entering many keys on different machines at 3AM.

What do you think?

Mark

=> 
=> David Lang
=> 
=> 
_______________________________________________
Tech mailing list
Tech@lists.lopsa.org
https://lists.lopsa.org/cgi-bin/mailman/listinfo/tech
This list provided by the League of Professional System Administrators
 http://lopsa.org/

Reply via email to