Entrust HSM Encryption
Protect Secrets Manager connection details locally with Entrust HSM

Keeper Secrets Manager integrates with Entrust HSM in order to provide encryption for Keeper Secrets Manager configuration files. With this integration, you can protect connection details on your machine while taking advantage of Keeper's zero-knowledge encryption of all you secret credentials.
Features
Encrypt and Decrypt your KSM configuration files with Entrust HSM
Protect against unauthorized access to your Secrets Manager connections
Requires only minor change to code for immediate protection. Works with all KSM Python SDK functionality
Prerequisites
Supports the Python Secrets Manager SDK
Requires Python 3.9.2+
The Python module needs to be built as a nShield native application using
nfpythonmodules from the SDK ISO image (Entrust nShield Security World 12.80 or later)Virtualenv is recommended
v1.1.0 Python version requirement: The umbrella keeper-secrets-manager-storage package requires Python 3.9.2+. The Entrust nShield SDK ships Python 3.8.5, which is incompatible with v1.1.0.
You have two options:
Stay on v1.0.x with the bundled Entrust Python 3.8.5: pin with
pip3 install "keeper-secrets-manager-storage<1.1.0".Upgrade to v1.1.0 using a separately installed Python 3.9.2+ interpreter (Linux or Windows) for your venv, then install
nfpython*.whlinto that venv. Contact Entrust Support for guidance on using nShield Python 3 support with a non-bundled Python interpreter.
Setup
1. Create and Configure Virtualenv
This step is optional, but recommended for development
Create a virtualenv environment to work in
/opt/nfast/python3/bin/python3 -m venv --copies venv
Activate the virtualenv environment before starting development
. venv/bin/activate
Create a virtualenv environment to work in
c:\Program Files\nCipher\nfast\python3\python --copies -m venv venv
Activate the virtualenv environment before starting development
venv\Scripts\activate.ps1
2. Install KSM Storage and nfpython Modules
The Secrets Manager HSM modules are located in the Keeper Secrets Manager storage module which can be installed using pip
The nfpython package also needs to be installed in order to utilize the Entrust HSM. This package is installed as part of the nShield package with your Entrust installation.
In Linux:
In Windows:
3. Add Entrust HSM Storage to Your Code
Use the HsmNfastKeyValueStorage as your Secrets Manager storage in the SecretsManager constructor.
The HsmNfastKeyValueStorage requires the method and identity ("simple" and "ksmkey" respectively in this example).
Upgrading from v1.0.x? v1.1.0 includes these behavioral changes:
decrypt_config()now defaults toautosave=False— calldecrypt_config(autosave=True)to preserve the previous behavior.Corrupt or empty decrypt output now raises
"is not a valid encrypted config file"instead of leakingJSONDecodeError.Non-UTF8 bytes that are not a valid encrypted blob also raise the same error.
Encrypt and decrypt failures now raise exceptions instead of silently corrupting storage state.
Config writes are now atomic (write-then-rename), so a failed write no longer truncates the existing config to zero bytes.
delete_all()now removes the encrypted config file from disk instead of writing an empty encrypted blob.HsmNfastKeyValueStorageis now thread-safe for concurrent reads and writes.
You're all set and ready to use Secrets Manager with Entrust NShield HSM
Using Secrets Manager with Entrust HSM
Once setup, the Secrets Manager Entrust integration supports all Secrets Manager SDK functionality. Your code will need to be able to access the nShield HSM in order to manage the decryption of the configuration file when run.
Check out the KSM SDKs documentation for more examples and functionality
Create an Encryption Key for Testing
In order to test encryption with the Entrust nShield HSM, use the following command:
Replace "ksmkey" in these examples with the identity in your HSM.
in Linux:
in Windows:
Last updated

