Hardware security module
A hardware security module (HSM) is a physical computing device that safeguards and manages digital keys for strong authentication and provides cryptoprocessing without revealing keying material. These modules traditionally come in the form of a plug-in card or an external security device that can be attached directly to a server or general purpose computer through a network or universal serial bus (USB) connection. Each module contains one or more secure cryptoprocessor chips to prevent tampering and bus probing. Modules are also deployed in the form of network HSMs to manage Transparent Data Encryption keys associated with some databases.
The goals of an HSM are:
- onboard secure cryptographic key generation
- onboard secure cryptographic key storage and management
- use of cryptographic and sensitive data material
- offloading application servers for complete asymmetric and symmetric cryptography.
HSMs provide both logical and physical protection of these materials, including cryptographic keys, from non-authorized use and potential adversaries.
The cryptographic material handled by most HSMs are asymmetric key pairs (and certificates) used in public-key cryptography. Some HSMs can also handle symmetric keys and other arbitrary data.
Many HSM systems have means to securely backup the keys they handle either in a wrapped form via the computer's operating system or externally using a smartcard or some other security token. HSMs should never allow for secrets' exportation in plaintext form, even during transmission between HSMs or performing backup operations.
Some HSM systems are also hardware cryptographic accelerators. They usually cannot beat the performance of hardware-only solutions for symmetric key operations. However, with performances ranges from 1 to 7,000 1024-bit RSA signs/second, HSMs can provide significant CPU offload for asymmetric key operations. Since NIST is recommending the use of 2,048 bit RSA keys from year 2010, performance at longer key sizes is becoming increasingly important. To address this issue, some HSMs now support elliptic curve cryptography (ECC), which delivers equivalent security at shorter key lengths.
Because HSMs are often part of a mission-critical infrastructure such as a public key infrastructure or online banking application, HSMs can typically be clustered for high availability. Some HSMs feature dual power supplies and field replaceable components such as cooling fans to conform to the high-availability requirements of data center environments and to enable business continuity.
A few of the HSMs available in the market have the ability to execute specially developed execution modules within the HSM's secure enclosure. Such ability is useful, for example, in cases where special algorithms or business logic has to be executed in a secured and controlled environment. The execution modules can be developed in native C language, in .NET, Java or other programming languages. While providing the benefit of securing application-specific code, these execution engines protect the status of an HSM's FIPS or Common Criteria validation.
Providing tamper evidence, physical tamper resistance, and response to tampering such as zeroing keys, are the major differences HSMs have from usual server computers acting as cryptographic accelerators.
HSM software APIs
Below is a list of popular cryptography APIs that can be used with hardware modules from different vendors.
- PKCS#11 – RSA's API, designed to be platform independent, defining a generic interface to HSMs. Also known as 'cryptoki'
- OpenSSL – OpenSSL engine API
- JCE/JCA – Java's cryptography API
- Microsoft CAPI – Microsoft's API as used by IIS, CA and others, also available in .NET.
- Microsoft CNG API – Microsoft's next-generation crypto API available for Windows Vista onwards, used by IIS, ADCS and others.
HSM main uses
HSMs can be employed in any application that uses digital keys. Typically the keys must be of high-value - meaning there would be a significant, negative impact to the owner of the key if it were compromised. The list of applications is endless, but some of the primary uses include:
PKI environment (CA HSMs)
On the PKI environment, the HSMs may be used by certification authorities (CAs) and registration authorities (RAs) to generate, store, and handle key pairs. In this scenario, there are some fundamental features a device must have, namely:
- Logical and physical high level protection
- Multi-part user authorization schema (see Blakley-Shamir secret sharing)
- Full audit and log traces
- Secure key backup
In the PKI environment, the device performance is much less important in both online and offline operations as Registration Authority procedures represent the performance bottleneck of the Infrastructure.
Card payment system HSMs (bank HSMs)
Limited-feature HSMs are used in card processing systems. These systems are usually less complex than CA HSMs and normally do not feature a standard API. These devices can be grouped in two main classes:
- to encrypt the personal identification number (PIN) entered when using the card
- to load keys into protected memory
Authorisation and personalisation modules may be used to:
- check an on-line PIN by comparing with an encrypted PIN block
- in conjunction with an ATM controller, verify credit/debit card transactions by checking card security codes or by performing host processing component of an EMV based transaction
- support a crypto-API with a smart card (such as an EMV)
- re-encrypt a PIN block to send it to another authorisation host
- support a protocol of POS ATM network management
- support de facto standards of host-host key|data exchange API
- generate and print a "PIN mailer"
- generate data for a magnetic stripe card (PVV, CVV)
- generate a card keyset and support the personalisation process for smart cards
The major organization that produces and maintains standards for HSMs on banking market is the Payment Card Industry Security Standards Council.
SSL connection establishment
Performance critical applications that have to use HTTPS (SSL/TLS), can benefit from the use of an SSL Acceleration HSM by moving the generation of the session key, which typically requires several large integer multiplications, from the host CPU to the HSM device. Typical HSM devices can perform about 50 to 1,000 1024-bit RSA operations/second. Some specialized HSM devices can reach numbers as high as +7,000 operations per second.
- Secure cryptoprocessor
- Electronic funds transfer
- Public key infrastructure
- Security token
- FIPS 140
- Transparent Data Encryption
Notes and references
- "Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths". NIST. January, 2011. Retrieved March 29, 2011.
|Wikimedia Commons has media related to Hardware security modules.|