Having some trouble finding documentation open on the web on this so I’m asking for help here. When using a HSM (Gemalto G5) for a windows CA is the private key ever exposed to the windows server at any point? For example if I have a root CA and want to sign a request for a subordinate CA does the root CA send the request to the HSM and it returns a signed response? Or does the HSM when unlocked expose its key to the Windows server and it handles the signing?

  • 2
    HSMs tend to prefer not leaking the private key to host systems. In most cases the HSM provides a signing API to Windows via a KSP/CSP. Windows hands the data to be signed to the API, the API sends it to the HSM, the HSM signs it, and returns. – Steve Jan 29 '19 at 16:50
  • As Steve said, the whole point of an HSM is to protect your private keys by doing all private key operations on-board and returning the result. It's possible that that particular model has private key export / backup functionality, or known vulnerabilities in the firmware that leak the private key in certain situations, but that's a question you should ask Gemalto, not us. – Mike Ounsworth Jan 29 '19 at 17:35
  • As I expected then but wanted to be sure, thanks! – user2782999 Jan 29 '19 at 17:37
  • Just to make you worry a bit more than you are doing now: if you give full access to the private key then it may not matter much that it never leaves the HSM. For instance, DigiNotar never lost their private keys, but hackers could still sign any child cert. As that was the only thing the key was used for, obtaining the value of the key was simply not needed. The only advantage of not leaking the private key is that you can stop abuse of it when you detect an attack - but that might be too late. – Maarten Bodewes Feb 1 '19 at 23:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.