On May 29, 2007, at 11:36 PM, Apache Devel wrote:
I'd like to start a discussion about Hardware Security Module (HSM) support formod_ssl. You may know that OpenSSL supports different HW engines. Thereis also support for PKCS#11 devices, a standard for communication with crypto devices -e.g. HSMs or Smartcards. Some HSM vendors support mod_ssl and their HSMwith a modified OpenSSL/mod_ssl version. But support is limited to 1.3.X versions of Apache as far as we know.
That's not entirely correct. Apache 2.0.x has experimental support for hardware crypto engines, and in Apache 2.2 that support is no longer experimental.
I agree though that Apache tends to think of certificates and keys very much as PEM files on disk and not really anything else, which stands in the way of working with HSMs in general. Even with that limitation, HSM support works with Apache for instance with nCipher's nShield and netHSM products (Disclosure: I work for nCipher).
There seems to be no standard interface for mod_ssl with HSMsupport for private key protection and operations. We decided to extendmod_ssl for usage with an HSM. We have a first prototype ("prealpha") with limited functionality now.
That sounds interesting. I think it is a good idea that mod_ssl grow capabilities to deal with key material other than PEM files on disk.
The limitations: - Supports only one virtual host
That would probably be a necessity.
- Supports no keys from files at the moment
Meaning you completely hacked that out, or just not in conjunction with HSM contained keys? We obviously couldn't do without the default PEM-files-on-disk case.
- Loads HSM PIN from the OpenSSL.cnf file (No handler implemented at themoment)
We *have* the passphrase dialog implementation for encrypted key files... could we leverage that to make the server ask for passphrases or PINs for HSM keys? That would not only benefit the P11 case, but also the existing CHIL support for the nCipher HSMs.
- Certificate comes from file (not really a limitation...)
Technically not, since the certificate is not sensitive data, but it could present problems from a management point of view. If you have multiple SSL hosts, how do you keep a particular certificate and its key together, and how would your successor or the remote hands guy in the data center at 3AM work that?
What it does: - Private key is no longer in a file, it's in the secure HSM store - Private key operations are processed on the HSM
Which is where we want them. Awesome.Did you intend to submit your patch for inclusion in the Apache code? Care to post some code so we can discuss it? It'd be easiest to discuss if you generated a patch against the Apache development trunk <http://svn.apache.org/repos/asf/httpd/httpd/trunk> instead of 2.2.
Regards, Sander -- Sander Temme [EMAIL PROTECTED] PGP FP: 51B4 8727 466A 0BC3 69F4 B7B8 B2BE BC40 1529 24AF
smime.p7s
Description: S/MIME cryptographic signature