Configuring HSM for Key Storage
Overview
Hardware Security Modules (HSMs) are tamper-resistant physical devices that safeguard cryptographic keys and perform cryptographic operations in a hardened environment. Keys stored in an HSM never leave the device boundary, providing the highest level of key protection. This skill covers configuring HSMs using the PKCS#11 standard interface, including key generation, signing, encryption, and key management using both physical HSMs and SoftHSM2 for development.
Objectives
- Configure SoftHSM2 as a development PKCS#11 provider
- Generate and manage keys inside the HSM via PKCS#11
- Perform cryptographic operations (sign, verify, encrypt, decrypt) using HSM-resident keys
- Implement HSM-backed certificate authority operations
- Configure key access policies and user authentication
- Interface with cloud HSM services (AWS CloudHSM, Azure)
Key Concepts
HSM Compliance Levels
| FIPS Level |
Protection |
Use Case |
| FIPS 140-2 Level 1 |
Software only |
Development |
| FIPS 140-2 Level 2 |
Tamper-evident, role-based auth |
General production |
| FIPS 140-2 Level 3 |
Tamper-resistant, identity-based auth |
Financial, government |
| FIPS 140-2 Level 4 |
Physical tamper response |
Military, classified |
PKCS#11 Architecture
Application --> PKCS#11 API --> HSM Provider --> Hardware HSM
|
(SoftHSM2 for dev)
Key Objects in PKCS#11
| Object Type |
Description |
Operations |
| CKO_SECRET_KEY |
Symmetric keys (AES) |
Encrypt, Decrypt, Wrap |
| CKO_PUBLIC_KEY |
Public keys (RSA, EC) |
Verify, Encrypt, Wrap |
| CKO_PRIVATE_KEY |
Private keys (RSA, EC) |
Sign, Decrypt, Unwrap |
| CKO_CERTIFICATE |
X.509 certificates |
Storage, retrieval |
Security Considerations
- Never export private keys from HSM (use CKA_EXTRACTABLE=False)
- Use separate slots/partitions for different applications
- Implement multi-person key ceremony for CA root keys
- Enable audit logging for all HSM operations
- Implement HSM backup and disaster recovery
- Use strong PINs and enable SO (Security Officer) PIN
Validation Criteria
1---2name: configuring-hsm-for-key-storage3description: Hardware Security Modules (HSMs) are tamper-resistant physical devices that safeguard cryptographic keys and perform cryptographic operations in a hardened environment. Keys stored in an HSM never lea4domain: cybersecurity5subdomain: cryptography6tags: [cryptography, hsm, key-management, pkcs11, hardware-security]7version: "1.0"8author: mahipal9license: Apache-2.010---1112# Configuring HSM for Key Storage1314## Overview1516Hardware Security Modules (HSMs) are tamper-resistant physical devices that safeguard cryptographic keys and perform cryptographic operations in a hardened environment. Keys stored in an HSM never leave the device boundary, providing the highest level of key protection. This skill covers configuring HSMs using the PKCS#11 standard interface, including key generation, signing, encryption, and key management using both physical HSMs and SoftHSM2 for development.1718## Objectives1920- Configure SoftHSM2 as a development PKCS#11 provider21- Generate and manage keys inside the HSM via PKCS#1122- Perform cryptographic operations (sign, verify, encrypt, decrypt) using HSM-resident keys23- Implement HSM-backed certificate authority operations24- Configure key access policies and user authentication25- Interface with cloud HSM services (AWS CloudHSM, Azure)2627## Key Concepts2829### HSM Compliance Levels3031| FIPS Level | Protection | Use Case |32|-----------|-----------|----------|33| FIPS 140-2 Level 1 | Software only | Development |34| FIPS 140-2 Level 2 | Tamper-evident, role-based auth | General production |35| FIPS 140-2 Level 3 | Tamper-resistant, identity-based auth | Financial, government |36| FIPS 140-2 Level 4 | Physical tamper response | Military, classified |3738### PKCS#11 Architecture3940```41Application --> PKCS#11 API --> HSM Provider --> Hardware HSM42 |43 (SoftHSM2 for dev)44```4546### Key Objects in PKCS#114748| Object Type | Description | Operations |49|-------------|-------------|-----------|50| CKO_SECRET_KEY | Symmetric keys (AES) | Encrypt, Decrypt, Wrap |51| CKO_PUBLIC_KEY | Public keys (RSA, EC) | Verify, Encrypt, Wrap |52| CKO_PRIVATE_KEY | Private keys (RSA, EC) | Sign, Decrypt, Unwrap |53| CKO_CERTIFICATE | X.509 certificates | Storage, retrieval |5455## Security Considerations5657- Never export private keys from HSM (use CKA_EXTRACTABLE=False)58- Use separate slots/partitions for different applications59- Implement multi-person key ceremony for CA root keys60- Enable audit logging for all HSM operations61- Implement HSM backup and disaster recovery62- Use strong PINs and enable SO (Security Officer) PIN6364## Validation Criteria6566- [ ] SoftHSM2 initializes with token and user PIN67- [ ] AES key generates inside HSM68- [ ] RSA key pair generates inside HSM69- [ ] Encryption/decryption uses HSM-resident keys70- [ ] Signing/verification uses HSM-resident keys71- [ ] Keys cannot be exported (non-extractable)72- [ ] Key listing shows all HSM-stored objects