Shared Control over Key Usage
Andreas Schwier | 10 Oct 2015
Cryptographic keys do not only need to be well protected from copying, it is just as important to control key access and usage. Placing keys on a hardware security module helps little, if it is easier to steal the hardware than it is to break into the software.
Cryptographic devices - in particular smart cards - typically use a PIN code for user authentication. Only after presentation of the correct PIN, access to contained keys is granted. A retry counter limits the number of wrong PIN presentation in order to prevent exhaustive PIN tries.
While this might be sufficient for simple applications, protecting important enterprise keys requires more control. Think of CA or code-signing keys, where you don’t want a single individual to have full control.
Shared control over key usage is a concept that has been around for quite a while, with the four-eye principle being one of the wider known controls.
A more practical control is the n-of-m threshold scheme, where n key custodians out of a group of m need to collaborate in order to enable key access. This control accomodates the fact, that the group of key custodians may change over time, that not all are available every time or that authentication means can get lost.
The new SmartCard-HSM EA+ version implements the n-of-m threshold scheme in combination with public key authentication. It replaces the user PIN with a list of authorized public keys for keys controlled by key custodians. The list of authorized keys is defined in a key ceremony during device initialization. It can not be changed once the device is placed in operation.
The actual authentication protocol is using a challenge-response mechanism in which a key custodian signs a challenge and the device id. The resulting signature is verified using the public key from the authorized list. If sufficient key custodians have authenticated the SmartCard-HSM enables key access.
Please see the attached presentation for more details.
Two other important controls that have been added are the
- key use counter and
- key use restriction list.
A key use counter can be associated with a cryptographic key for auditing purposes or to limited the number of cryptographic operations with that key. The counter can be in the range 1 to 4^32-2. A key with a key user counter is excempted from key backup operations.
A key use restriction list can be associated with a cryptographic key during generation to limit the algorithms that can be used in combination with the key. Using this list, certain encoding formats (e.g. PKCS#1 V1.5, PSS, Plain) can be enforced or key management operations restricted.