While at the University of Cambridge, we embarked on a task of reverse-engineering one of the most secure hardware security modules (HSM) at the time - Chrysalis Luna CA3. This HSM implements symmetric, as well as public-key cryptographic algorithms.

The main task of HSMs is to protect stored cryptographic keys and prevent export of keys via an interface facilitating secure operations with keys internally. This allows definition of policies specifying who can use which key for which operation.

The original design of Chrysalis Lune CA3 assumed that the manufacturer would generate a root public key certificate that would be used to sign keys for all HSMs necessary for cloning (copying all keys from one HSM) of HSMs. However, this design was breached by the addition of functions allowing use of any (even self-signed) public key certificates, which can be created in ten minutes with widely available tools.

Luna CA3 - FIPS140-1 Certified HSMLuna CA3 - Top Cover Removed

In the end we were able to do unauthorised exporting of all keys stored in the HSM, decrypt them and use them for arbitrary cryptographic operations, like encrypt, sign, or decrypt messages on our PC.

The attack still required authorisation of a Security Officer, but it reduced the security provided to the level of a PC, protecting stored keys with a password. Several organisations using Chrysalis Luna CA3 decided to revise their operational procedures to mitigate risks exposed by our attack.

More details of this project can be found in our report TR-592. Source codes used for the attack are also available online.


We would love to hear from you if you are interested in receiving more details: .