Crypto4A QxEDGE Integration Guide
Overview
This guide configures a Crypto4A QxEDGE appliance so the CBOM Secure Discover_KMIP sensor can connect as a read-only KMIP client over mutual TLS on port 5696 and enumerate cryptographic metadata:
- Symmetric keys (AES, 3DES) with key length, algorithm, and activation/deactivation dates
- Asymmetric key pairs (RSA, EC) and public-key metadata
- Certificates in the KMIP object store
- Secret data and opaque data objects
- Key state (Pre-Active, Active, Deactivated, Compromised, Destroyed) and usage masks
No key material is ever retrieved — only metadata attributes are read.
Prerequisites
- A provisioned, powered-on QxEDGE appliance reachable on the network.
- Administrator access to the QxAdmin web interface (default HTTPS port 8443).
- QxEDGE firmware 3.2 or later (KMIP 1.2 support).
- The KMIP service enabled and listening on TCP 5696.
- Connectivity from the sensor host to port 5696, and OpenSSL 1.1.1+ on the host.
- The QxEDGE root CA certificate available from QxAdmin, and the Discover_KMIP sensor binary installed.
Step-by-Step Guide
Step 1: Verify KMIP Service and Export the Root CA
In QxAdmin (https://<appliance-ip>:8443), under Services → KMIP, confirm status Running, port 5696, KMIP 1.2+, and Mutual TLS (mTLS) enabled. Then under PKI → Certificate Authorities, export QxEDGE Root CA as PEM:
chmod 640 /etc/cbom/certs/qxedge-root-ca.pem chown cbom-svc:cbom-svc /etc/cbom/certs/qxedge-root-ca.pem openssl x509 -in /etc/cbom/certs/qxedge-root-ca.pem -noout -subject -dates
Step 2: Create a CryptoAuditor Role
Under Access Control → Roles → Add Role, create CryptoAuditor with only these KMIP operations enabled: Locate, Get Attributes, Get Attribute List, and Query. Ensure all write/destructive operations (Create, Register, Destroy, Activate, Revoke, Archive, Recover) are unchecked, and Save Role.
Step 3: Create the KMIP Service User
Under Access Control → Users → Add User, set Username cbom-auditor, Role CryptoAuditor, and Authentication Method Certificate, then Save.
Step 4: Generate and Export the Client Certificate
Select cbom-auditor → Generate Client Certificate with CN cbom-auditor, O CBOM-Services, RSA 2048 (or EC P-256), 365-day validity. Export the certificate and private key as PEM, transfer to the sensor host, and set permissions:
scp cbom-auditor-cert.pem cbom-auditor-key.pem \ cbom-user@<sensor-host>:/etc/cbom/certs/ chmod 640 /etc/cbom/certs/cbom-auditor-cert.pem chmod 600 /etc/cbom/certs/cbom-auditor-key.pem chown cbom-svc:cbom-svc /etc/cbom/certs/cbom-auditor-cert.pem chown cbom-svc:cbom-svc /etc/cbom/certs/cbom-auditor-key.pem
Step 5: Verify mTLS Connectivity
nc -zv <qxedge-appliance-ip> 5696 openssl s_client \ -connect <qxedge-appliance-ip>:5696 \ -cert /etc/cbom/certs/cbom-auditor-cert.pem \ -key /etc/cbom/certs/cbom-auditor-key.pem \ -CAfile /etc/cbom/certs/qxedge-root-ca.pem \ -verify_return_error # Expected: Verify return code: 0 (ok)
Step 6: Configure the CBOM Secure Sensor
sensor:
name: Discover_KMIP
enabled: true
schedule: "0 2 * * *" # daily at 02:00 UTC
connection:
protocol: KMIP
kmip_version: "1.2"
host: 192.168.10.45 # QxEDGE IP or FQDN
port: 5696
tls:
enabled: true
mutual_tls: true
ca_cert: /etc/cbom/certs/qxedge-root-ca.pem
client_cert: /etc/cbom/certs/cbom-auditor-cert.pem
client_key: /etc/cbom/certs/cbom-auditor-key.pem
verify_hostname: true
min_tls_version: "TLSv1.2"
discovery:
object_types: [SymmetricKey, PublicKey, PrivateKey, Certificate, SecretData, OpaqueData]
locate_batch_size: 100
max_objects: 50000
output:
cbom_endpoint: https://cbom-platform.internal:8443/api/v1/ingest
api_key_env: CBOM_API_KEY
tags: { source: Crypto4A-QxEDGE, environment: production }
export CBOM_API_KEY="<your-cbom-platform-api-key>"
Step 7: Validate
cbom-sensor run --sensor Discover_KMIP --dry-run --config /etc/cbom/sensors/discover_kmip.yaml cbom-sensor run --sensor Discover_KMIP --config /etc/cbom/sensors/discover_kmip.yaml
Confirm KMIP connection established … (KMIP 1.2, mTLS verified) and a discovered-object count. Cross-reference against QxAdmin → KMIP → Object Store → Statistics, and confirm the audit log shows only Locate, Get Attributes, Get Attribute List, and Query for cbom-auditor.
Common Errors
TLS handshake failure — certificate verify failed
Cause: ca_cert is incorrect or incomplete (e.g. an intermediate CA is missing).
Resolution: Export the full chain (Root + intermediates) as one bundled PEM from PKI → Certificate Authorities and replace the file.
KMIP permission denied on Locate
Cause: The CryptoAuditor role is missing Locate, or the role was not saved.
Resolution: Confirm Locate, Get Attributes, Get Attribute List, and Query are checked on the role, Save, and retry.
Connection refused on 5696
Cause: The KMIP service is not running, or a firewall blocks port 5696.
Resolution: Confirm the service is Running, test with nc -zv, and permit TCP 5696 in both directions.
Security Recommendations
- Limit client certificate validity to 365 days or less and rotate annually.
- Store the private key with mode 600, readable only by the sensor account; never commit it.
- Enforce TLS 1.2 minimum and reject TLS 1.0/1.1 on the appliance.
- Review the QxAdmin audit log for any operation beyond the four read operations.
- Use KMIP client IP allowlisting (sensor host only) where supported.
Conclusion
With a least-privilege CryptoAuditor user and a mutual-TLS client certificate, the Discover_KMIP sensor securely enumerates cryptographic key metadata over KMIP 1.2 on the QxEDGE appliance — collecting only attribute information, never key material — keeping CBOM Secure’s inventory current.
