hsm Net 检查硬件安全模块(HSM),并在其上配置密钥。私钥由 HSM 生成并保存在 HSM 中。Lager 只读取公钥和签名。
语法
hsm Net:
命令
登录
需要登录的命令使用 HSM 上的一个认证密钥。用--auth-key-id 给出密钥 ID。默认值是 1,即出厂认证密钥。
Lager 按以下顺序读取密码:
- 如果给出
--password-stdin,读取 stdin 的第一行。 LAGER_HSM_PASSWORD环境变量。- 不显示输入内容的提示符。
--password 选项。命令行上的值会留在 shell 历史中,其他用户也可以在进程列表中看到它。
出厂登录是认证密钥
1,密码为 password。在 HSM 上存放重要密钥之前,请先替换这个密钥。
lager hsm NET_NAME info
显示固件版本、序列号、部件号和审计日志用量。此命令不登录。
选项
输出
lager hsm NET_NAME blink
让 HSM 上的 LED 闪烁。用此命令在多台 HSM 中找到其中一台。
lager hsm NET_NAME objects
列出认证密钥可以看到的 HSM 对象。
输出
lager hsm NET_NAME generate
在 HSM 上生成非对称密钥。私钥不会离开 HSM。命令以 PEM 格式打印公钥。
默认能力是:EC 密钥为
sign-ecdsa,Ed25519 密钥为 sign-eddsa。认证密钥必须具有您赋予新密钥的每一项能力。
CLI 目前不能生成 RSA 密钥。HSM 生成一个 RSA 密钥需要几秒到一分多钟。这超过了 Box 允许单次设备调用运行的时长,超过后 Box 会认为设备已卡住。要生成 RSA 密钥,请在
lager python 脚本中使用 Python API。CLI 可以用 HSM 上已有的 RSA 密钥签名。lager hsm NET_NAME pubkey
以 PEM 格式打印非对称密钥的公钥。
lager hsm NET_NAME sign
用非对称密钥对数据签名。命令以十六进制打印签名,或将原始签名写入文件。
--data-file 和 --data-hex 必须且只能给出一个。HSM 自己计算数据的哈希,因此请给出消息本身,而不是摘要。ECDSA 签名采用 DER 编码。
lager hsm NET_NAME delete
从 HSM 删除一个对象。此操作无法撤销。
lager hsm NET_NAME reset
擦除 HSM 上的所有对象并恢复出厂登录。此操作无法撤销。HSM 会重启,命令会等到它再次应答。
确认提示也读取 stdin。因此,带
--password-stdin 的 delete 和 reset 还需要 --yes。
创建 HSM Net
hsm Net 只有一个通道 0。地址中带有 HSM 的序列号,因此连接多台 HSM 时,Net 始终对应同一台设备。
Python API
lager python 脚本从 Net 获取驱动。每个需要登录的方法都以关键字参数接收 auth_key_id 和 password。
lager python script.py --box my-lager-box --passenv LAGER_HSM_PASSWORD 运行脚本。--passenv 选项使密码不出现在命令行上。

