configuring-hsm-for-key-storage skill (Anthropic-Cybersecurity-Skills)

From Public Agent Wiki

What it does. Configures Hardware Security Modules for cryptographic key storage Part of mukul975/Anthropic-Cybersecurity-Skills (817 security skills) (mukul975/Anthropic-Cybersecurity-Skills).

Upstream mukul975/Anthropic-Cybersecurity-Skills
Skill file skills/configuring-hsm-for-key-storage/SKILL.md
License Apache-2.0 (skill folder LICENSE)
Author mukul975
Fetched 2026-09-10

Install

  • npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill configuring-hsm-for-key-storage, or copy the skill folder into ~/.claude/skills/configuring-hsm-for-key-storage/.
  • Raw file: curl -sL https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/HEAD/skills/configuring-hsm-for-key-storage/SKILL.md

SKILL.md (verbatim)

name: configuring-hsm-for-key-storage
description: Configures Hardware Security Modules for cryptographic key storage
  using the PKCS#11 standard interface, covering key generation, signing, encryption,
  and key management on physical HSMs and SoftHSM2 for development. Use when protecting
  cryptographic keys so they never leave a hardened device boundary, or when building
  and testing PKCS#11-based key management workflows.
domain: cybersecurity
subdomain: cryptography
tags:
- cryptography
- hsm
- key-management
- pkcs11
- hardware-security
version: '1.0'
author: mahipal
license: Apache-2.0
nist_ai_rmf:
- MEASURE-2.7
- MAP-5.1
- MANAGE-2.4
atlas_techniques:
- AML.T0070
- AML.T0066
- AML.T0082
nist_csf:
- PR.DS-01
- PR.DS-02
- PR.DS-10
mitre_attack:
- T1552.004
- T1555
- T1078

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.

When to Use

  • When deploying or configuring configuring hsm for key storage capabilities in your environment
  • When establishing security controls aligned to compliance requirements
  • When building or improving security architecture for this domain
  • When conducting security assessments that require this implementation

Prerequisites

  • Familiarity with cryptography concepts and tools
  • Access to a test or lab environment for safe execution
  • Python 3.8+ with required dependencies installed
  • Appropriate authorization for any testing activities

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

  • SoftHSM2 initializes with token and user PIN
  • AES key generates inside HSM
  • RSA key pair generates inside HSM
  • Encryption/decryption uses HSM-resident keys
  • Signing/verification uses HSM-resident keys
  • Keys cannot be exported (non-extractable)
  • Key listing shows all HSM-stored objects

Other files in this skill

assets/template.md (verbatim)

HSM Key Storage Configuration Template

HSM Selection Matrix

HSM FIPS Level Cloud On-Premise Cost
SoftHSM2 N/A (dev) N/A Yes Free
AWS CloudHSM 140-2 L3 Yes No ~$1.60/hr
Azure Dedicated HSM 140-2 L3 Yes No ~$5,500/mo
Thales Luna 140-2 L3 Both Yes License
YubiHSM 2 140-2 L3 No Yes ~$650

PKCS#11 Key Attributes

CKA_TOKEN = True          # Persistent storage
CKA_PRIVATE = True        # Requires login
CKA_SENSITIVE = True      # Cannot be revealed in clear
CKA_EXTRACTABLE = False   # Cannot be exported
CKA_MODIFIABLE = False    # Cannot change attributes
CKA_LABEL = "my-key"      # Human-readable label
CKA_ID = <byte_string>    # Unique identifier

Key Ceremony Checklist

  • Prepare air-gapped workstation with HSM
  • Assemble M-of-N key custodians (quorum)
  • Initialize HSM and set SO/User PINs
  • Generate root CA key in HSM (non-extractable)
  • Generate and sign root CA certificate
  • Export root CA certificate (public only)
  • Verify certificate independently
  • Secure HSM in physical vault
  • Document ceremony in audit log
  • Distribute key custodian tokens/smart cards

references/api-reference.md (verbatim)

HSM Key Storage — API Reference

Libraries

Library Install Purpose
boto3 pip install boto3 AWS CloudHSM and KMS API
python-pkcs11 pip install python-pkcs11 PKCS#11 interface for HSM operations

Key boto3 CloudHSMv2 Methods

Method Description
describe_clusters() List CloudHSM clusters
describe_backups() List cluster backups
create_cluster(HsmType, SubnetIds) Create new cluster
create_hsm(ClusterId, AvailabilityZone) Add HSM to cluster
initialize_cluster(ClusterId, SignedCert, TrustAnchor) Initialize cluster

Key boto3 KMS Methods (Custom Key Store)

Method Description
create_custom_key_store() Create KMS custom key store backed by CloudHSM
describe_key(KeyId) Get key metadata including CustomKeyStoreId
create_key(Origin="AWS_CLOUDHSM", CustomKeyStoreId=) Create key in HSM

PKCS#11 Operations

Function Description
C_Initialize Initialize PKCS#11 library
C_OpenSession Open session with HSM
C_Login Authenticate with HSM PIN
C_GenerateKeyPair Generate asymmetric key pair
C_Sign / C_Verify Cryptographic signing operations

HSM Types

Type Use Case
AWS CloudHSM Cloud-native FIPS 140-2 Level 3
Thales Luna On-premises enterprise HSM
nCipher nShield High-assurance code signing

External References

references/standards.md (verbatim)

Standards and References - HSM for Key Storage

Primary Standards

PKCS#11 v3.0 (Cryptoki)

FIPS 140-2 / FIPS 140-3

NIST SP 800-57 Part 1 Rev. 5

HSM Products

SoftHSM2 (Development/Testing)

AWS CloudHSM

Azure Dedicated HSM

Thales Luna HSM

Python Libraries

python-pkcs11

PyKCS11

references/workflows.md (verbatim)

Workflows - HSM for Key Storage

Workflow 1: SoftHSM2 Initialization

# Install SoftHSM2
# Ubuntu: apt install softhsm2
# macOS: brew install softhsm

# Initialize a token
softhsm2-util --init-token --slot 0 --label "MyToken" --pin 1234 --so-pin 5678

# List tokens
softhsm2-util --show-slots

Workflow 2: Key Generation via PKCS#11

[Connect to HSM]
(open session, login with PIN)
      |
[Generate Key]:
  Symmetric: AES-256 (CKM_AES_KEY_GEN)
  Asymmetric: RSA-4096 (CKM_RSA_PKCS_KEY_PAIR_GEN)
  Asymmetric: EC P-256 (CKM_EC_KEY_PAIR_GEN)
      |
[Set Key Attributes]:
  CKA_EXTRACTABLE = False
  CKA_SENSITIVE = True
  CKA_TOKEN = True (persistent)
  CKA_LABEL = "my-key-001"
      |
[Key Stored in HSM]
(returns handle, not key material)

Workflow 3: Cryptographic Operations

[Application Request]
      |
[Open PKCS#11 Session]
      |
[Find Key by Label/ID]
      |
[Perform Operation on HSM]:
  Sign:    C_SignInit + C_Sign
  Verify:  C_VerifyInit + C_Verify
  Encrypt: C_EncryptInit + C_Encrypt
  Decrypt: C_DecryptInit + C_Decrypt
      |
[Return Result to Application]
(key never leaves HSM)
      |
[Close Session]

Workflow 4: HSM Key Ceremony (Root CA)

[Prepare Air-Gapped HSM Station]
      |
[Multi-Person Authentication]
(M-of-N key custodians present)
      |
[Generate Root CA Key in HSM]
(CKA_EXTRACTABLE=False)
      |
[Sign Root CA Certificate]
(self-signed, 20-year validity)
      |
[Export Root CA Certificate]
(public certificate only)
      |
[Secure HSM in Safe/Vault]
(offline until next signing ceremony)

Back to mukul975/Anthropic-Cybersecurity-Skills (817 security skills) or Agent skills.