Securosys Primus HSM Integration Guide
Overview
This guide configures a Securosys Primus HSM so the CBOM Secure HSM Sensor can discover cryptographic assets over PKCS#11, read-only:
- Symmetric keys (AES, DES, 3DES)
- Asymmetric key pairs (RSA, EC, Ed25519)
- X.509 certificates
- Secret and data objects in HSM partitions
Prerequisites
- A Securosys Primus HSM (E/S/X-Series), initialized and reachable.
- Security Officer or Administrator credentials for the Primus Management Console (PMC).
- The Primus HSM Client installed on the sensor host, with libprimusP11.so at /usr/local/lib/.
- Network access to the HSM (default TCP 2310); firmware 2.8.0+; a populated primus.cfg.
Step-by-Step Guide
Step 1: Create a Dedicated Partition
In the PMC (https://primus-hsm.example.com:2443) → HSM → Partitions → New Partition, create cbom-discovery with PKCS#11 access enabled and key export disabled. CLI alternative:
primusctl partition create \ --name cbom-discovery \ --label "CBOM Read-Only Partition" \ --pkcs11 enabled --key-export disabled
Step 2: Create the Partition Security Officer (PSO)
primusctl user create \ --partition cbom-discovery --username cbom-pso --role pso \ --password "$(openssl rand -base64 24)"
Note Store the PSO credential in a vault. The CBOM sensor never uses it. It is only required to create the Crypto User.
Step 3: Create a Read-Only Crypto User
primusctl user create \ --partition cbom-discovery --username cbom-sensor --role crypto-user \ --password "Cbom-Sensor-Primus-Pw" primusctl user set-permissions \ --partition cbom-discovery --username cbom-sensor \ --allow find-objects,get-attributes \ --deny generate,sign,verify,encrypt,decrypt,destroy
Step 4: Confirm Slot and Library
pkcs11-tool --module /usr/local/lib/libprimusP11.so --list-slots ls -lh /usr/local/lib/libprimusP11.so pkcs11-tool --module /usr/local/lib/libprimusP11.so --slot 0 \ --login --login-type user --pin "Cbom-Sensor-Primus-Pw" --list-objects
Confirm the sensor host is listed under HSM → Network → Authorized Clients, and that primus.cfg references the HSM device.
Step 5: Configure the CBOM Secure Sensor
sensors:
- name: Discover_HSM
type: hsm_pkcs11
enabled: true
connection:
pkcs11_library: /usr/local/lib/libprimusP11.so
slot: 0
token_label: CBOM Read-Only Partition
authentication:
login_type: user
username: cbom-sensor
pin: "${PRIMUS_CBOM_PIN}"
discovery:
object_types: [symmetric_keys, asymmetric_keys, certificates, secret_data]
include_sensitive_attributes: false
schedule:
interval: 6h
tags: { hsm_vendor: securosys, hsm_model: primus }
export PRIMUS_CBOM_PIN="Cbom-Sensor-Primus-Pw"
Step 6: Validate
cbom-sensor run --config /etc/cbom/sensors/primus.yaml --dry-run
Confirm the library loads, the slot connects, Crypto User login succeeds, and objects are enumerated; run live and verify under Assets → HSM.
Common Errors
CKR_PIN_INCORRECT
Cause: The PIN in the config/variable doesn’t match the Crypto User password.
Resolution: Reset the cbom-sensor password in the PMC and update PRIMUS_CBOM_PIN.
CKR_SLOT_ID_INVALID
Cause: The slot index doesn’t match the cbom-discovery partition (e.g. after a firmware upgrade).
Resolution: Re-run –list-slots and update slot, or use token_label matching.
Cannot open shared object file
Cause: The Primus client is not installed or the library is at a non-standard path.
Resolution: Install the Primus client; locate libprimusP11.so and update pkcs11_library.
Security Recommendations
- Restrict the Crypto User to C_FindObjects and C_GetAttributeValue; disable all generate/sign/encrypt/destroy mechanisms.
- Never configure the sensor with the PSO credential.
- Store the Crypto User PIN in a secrets manager and rotate every 90 days.
- Whitelist only the sensor host under HSM → Network → Authorized Clients.
- Use TLS in primus.cfg with a pinned CA; enable and review the Primus audit log.
Conclusion
The cbom-sensor Crypto User can enumerate all key, certificate, and data objects in the cbom-discovery partition read-only (with no ability to create, modify, export, or delete material), surfacing Securosys Primus assets in CBOM Secure.
