Nitrokeys HSM2 implementing CA in the same domain


I’d like to buy some Nitrokey HSM 2 to set up a CA used to sign certificate signing requests from a device we are going to manufacture.
I’ve understood that we can connect more Nitrokeys to the same domain and we can have all of them able to signa certificate with the same CA.
Is it possible to increase the number of keys belonging the same domain? Can I add 2 or 3 spare keys after let’s say 1 year and have all of them signing with the same CA?

Thanks in advance

Can you explain a bit more what do you mean here? What is the “domain”?

Nitrokey HSM 2 can exchange one key between 2 or more devices. The quote the reference manual of SMartCard-HSM, which is the SIM card inside of Nitrokey HSM 2:

Regarding this:

I don’t know how you exactly are going to issue certificates signing requests. As far as I know, in the X.509 world, there is one private key and it is used to sign its own certificate itself (for self-signed root certificates) or its used to sign other certificates. Whether a certificate chain could work for you - it depends how you want to design your device. I think this is out of scope of this forum.

Possible options:

  • Have all spare keys trusted by the devices. So for example you have 4 secret keys, you install all 4 certificates on the devices and provide revocation mechanism to say (“sorry key number 2 has been stolen”). Normally you can use only first secret key until it is compromised, then you switch to 2 etc.
    If you lose compromise 4 keys you either continue insecure operation, replace all devices in the field or shut down the business.

  • What some people do is to have a super secret key that is kept off line and very secure (not connected to the Internet). This key is used to sign, say 2-3 intermediate certificates that live on cryptographic tokens (HSMs) that are used to sign certificate signing requests as a part of a daily business. You should have a revocation mechanism for those 2-3 intermediate certificate in case one of them gets stolen/broken/whatever.

If all 3 intermediate certificates are broken, you can take off your super secret key and generate more intermediate ones. The advantage of this that the devices need only to know public key of the super secret key and do not need to know the intermediates.

It is not easy to store such a super secret key safely, and if it is rarely used (say, once or twice in 5 years) if it is stored on the hardware device maybe it gets broken or lost.

Hi Saper,
I’ve read a little bit better the documentation.
I was looking to a method to export provat keys to other Nitrokey HSM2 dongles.
I found the solution at SmartCardHSM · OpenSC/OpenSC Wiki · GitHub

1 Like